diff --git a/DEPS b/DEPS index 169c18f..fde7a2e 100644 --- a/DEPS +++ b/DEPS
@@ -96,11 +96,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '6bbd386a0e4bf13cd7abb887900018a56e24091b', + 'skia_revision': '81f60ecd9cc0e7c507f9e1f05862bee6a19ee0c6', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'df9ba269106f9660bbfdcf71e7b68b906e9339da', + 'v8_revision': '324a3e4449522dfec8ea9d9b23d7e33f16afe61a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -108,7 +108,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'a00ef3144f7039b54ea7dbfe255b85b6f4d11224', + 'angle_revision': '01e83581864b153a21f0621a4500df7f2e99f524', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. @@ -156,7 +156,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '075ca3000abfdd522bd4faf668cae4b7c820dd64', + 'catapult_revision': 'a8692f3255c2bd61195a48f031de8d75995f81e6', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -523,7 +523,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'babd098f3684f1bc965a0f72f96cb701eec91e52', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'cbf0204555fe07fda96d20456e03f105e2922005', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -968,7 +968,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '7c0541da63f571512c49758cbc0767117997a270', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '5702736f7e46383dcb5b5386608a8ad3fbc551c5', # commit position 21742 + Var('webrtc_git') + '/src.git' + '@' + 'ef75ebef55207d770bc3712004e0680e0fe261f2', # commit position 21742 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d', @@ -1897,7 +1897,7 @@ { 'name': 'Fetch Android AFDO profile', 'pattern': '.', - 'condition': 'checkout_android', + 'condition': 'checkout_android or checkout_linux', 'action': ['vpython', 'src/chrome/android/profiles/update_afdo_profile.py'], }, {
diff --git a/WATCHLISTS b/WATCHLISTS index 58bca45..89c8d94 100644 --- a/WATCHLISTS +++ b/WATCHLISTS
@@ -1757,7 +1757,6 @@ 'dmazzoni@chromium.org', 'dougt+watch@chromium.org', 'je_julie.kim@chromium.org', - 'katie+watch@chromium.org', 'nektar@chromium.org'], 'blink_animation': ['alexis.menard@intel.com', 'blink-reviews-animation@chromium.org',
diff --git a/android_webview/browser/aw_browser_manifest_overlay.json b/android_webview/browser/aw_browser_manifest_overlay.json index dc34bfb..ae928e11 100644 --- a/android_webview/browser/aw_browser_manifest_overlay.json +++ b/android_webview/browser/aw_browser_manifest_overlay.json
@@ -4,11 +4,11 @@ "service_manager:connector": { "provides": { "renderer": [ - "safe_browsing::mojom::SafeBrowsing", - "spellcheck::mojom::SpellCheckHost" + "safe_browsing.mojom.SafeBrowsing", + "spellcheck.mojom.SpellCheckHost" ], "profiling_client": [ - "heap_profiling::mojom::ProfilingClient" + "heap_profiling.mojom.ProfilingClient" ] }, "requires": { @@ -19,10 +19,10 @@ "navigation:frame": { "provides": { "renderer": [ - "autofill::mojom::AutofillDriver", - "autofill::mojom::PasswordManagerDriver", - "blink::mojom::TextSuggestionHost", - "web_restrictions::mojom::WebRestrictions" + "autofill.mojom.AutofillDriver", + "autofill.mojom.PasswordManagerDriver", + "blink.mojom.TextSuggestionHost", + "web_restrictions.mojom.WebRestrictions" ] } }
diff --git a/android_webview/browser/aw_contents_client_bridge.cc b/android_webview/browser/aw_contents_client_bridge.cc index 76d1cd5..aeb0656 100644 --- a/android_webview/browser/aw_contents_client_bridge.cc +++ b/android_webview/browser/aw_contents_client_bridge.cc
@@ -73,6 +73,10 @@ } // namespace +AwContentsClientBridge::HttpErrorInfo::HttpErrorInfo() : status_code(0) {} + +AwContentsClientBridge::HttpErrorInfo::~HttpErrorInfo() {} + // static void AwContentsClientBridge::Associate(WebContents* web_contents, AwContentsClientBridge* handler) { @@ -478,7 +482,7 @@ void AwContentsClientBridge::OnReceivedHttpError( const AwWebResourceRequest& request, - const scoped_refptr<const net::HttpResponseHeaders>& response_headers) { + std::unique_ptr<HttpErrorInfo> http_error_info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); @@ -488,42 +492,48 @@ AwWebResourceRequest::AwJavaWebResourceRequest java_web_resource_request; AwWebResourceRequest::ConvertToJava(env, request, &java_web_resource_request); - vector<std::string> response_header_names; - vector<std::string> response_header_values; - - { - size_t headers_iterator = 0; - std::string header_name, header_value; - while (response_headers->EnumerateHeaderLines( - &headers_iterator, &header_name, &header_value)) { - response_header_names.push_back(header_name); - response_header_values.push_back(header_value); - } - } - - std::string mime_type, encoding; - response_headers->GetMimeTypeAndCharset(&mime_type, &encoding); ScopedJavaLocalRef<jstring> jstring_mime_type = - ConvertUTF8ToJavaString(env, mime_type); + ConvertUTF8ToJavaString(env, http_error_info->mime_type); ScopedJavaLocalRef<jstring> jstring_encoding = - ConvertUTF8ToJavaString(env, encoding); - int status_code = response_headers->response_code(); + ConvertUTF8ToJavaString(env, http_error_info->encoding); ScopedJavaLocalRef<jstring> jstring_reason = - ConvertUTF8ToJavaString(env, response_headers->GetStatusText()); + ConvertUTF8ToJavaString(env, http_error_info->status_text); ScopedJavaLocalRef<jobjectArray> jstringArray_response_header_names = - ToJavaArrayOfStrings(env, response_header_names); + ToJavaArrayOfStrings(env, http_error_info->response_header_names); ScopedJavaLocalRef<jobjectArray> jstringArray_response_header_values = - ToJavaArrayOfStrings(env, response_header_values); + ToJavaArrayOfStrings(env, http_error_info->response_header_values); Java_AwContentsClientBridge_onReceivedHttpError( env, obj, java_web_resource_request.jurl, request.is_main_frame, request.has_user_gesture, java_web_resource_request.jmethod, java_web_resource_request.jheader_names, java_web_resource_request.jheader_values, jstring_mime_type, - jstring_encoding, status_code, jstring_reason, + jstring_encoding, http_error_info->status_code, jstring_reason, jstringArray_response_header_names, jstringArray_response_header_values); } +// static +std::unique_ptr<AwContentsClientBridge::HttpErrorInfo> +AwContentsClientBridge::ExtractHttpErrorInfo( + const net::HttpResponseHeaders* response_headers) { + auto http_error_info = std::make_unique<HttpErrorInfo>(); + { + size_t headers_iterator = 0; + std::string header_name, header_value; + while (response_headers->EnumerateHeaderLines( + &headers_iterator, &header_name, &header_value)) { + http_error_info->response_header_names.push_back(header_name); + http_error_info->response_header_values.push_back(header_value); + } + } + + response_headers->GetMimeTypeAndCharset(&http_error_info->mime_type, + &http_error_info->encoding); + http_error_info->status_code = response_headers->response_code(); + http_error_info->status_text = response_headers->GetStatusText(); + return http_error_info; +} + void AwContentsClientBridge::ConfirmJsResult(JNIEnv* env, const JavaRef<jobject>&, int id,
diff --git a/android_webview/browser/aw_contents_client_bridge.h b/android_webview/browser/aw_contents_client_bridge.h index 9a764c7..bbe9d38 100644 --- a/android_webview/browser/aw_contents_client_bridge.h +++ b/android_webview/browser/aw_contents_client_bridge.h
@@ -43,6 +43,20 @@ // any references. class AwContentsClientBridge { public: + // Used to package up information needed by OnReceivedHttpError for transfer + // between IO and UI threads. + struct HttpErrorInfo { + HttpErrorInfo(); + ~HttpErrorInfo(); + + int status_code; + std::string status_text; + std::string mime_type; + std::string encoding; + std::vector<std::string> response_header_names; + std::vector<std::string> response_header_values; + }; + using CertErrorCallback = base::OnceCallback<void(content::CertificateRequestResultType)>; using SafeBrowsingActionCallback = @@ -110,9 +124,12 @@ SafeBrowsingActionCallback callback); // Called when a response from the server is received with status code >= 400. - void OnReceivedHttpError( - const AwWebResourceRequest& request, - const scoped_refptr<const net::HttpResponseHeaders>& response_headers); + void OnReceivedHttpError(const AwWebResourceRequest& request, + std::unique_ptr<HttpErrorInfo> error_info); + + // This should be called from IO thread. + static std::unique_ptr<HttpErrorInfo> ExtractHttpErrorInfo( + const net::HttpResponseHeaders* response_headers); // Methods called from Java. void ProceedSslError(JNIEnv* env,
diff --git a/android_webview/browser/aw_field_trial_creator.cc b/android_webview/browser/aw_field_trial_creator.cc index 1f81d4d..3c5e9f5 100644 --- a/android_webview/browser/aw_field_trial_creator.cc +++ b/android_webview/browser/aw_field_trial_creator.cc
@@ -23,6 +23,7 @@ #include "components/variations/entropy_provider.h" #include "components/variations/pref_names.h" #include "components/variations/service/safe_seed_manager.h" +#include "components/variations/service/variations_service.h" namespace android_webview { namespace { @@ -76,7 +77,7 @@ variations::prefs::kVariationsPermanentConsistencyCountry, std::make_unique<base::ListValue>()); - variations::SafeSeedManager::RegisterPrefs(pref_registry.get()); + variations::VariationsService::RegisterPrefs(pref_registry.get()); pref_service_factory_.set_user_prefs( base::MakeRefCounted<InMemoryPrefStore>());
diff --git a/android_webview/browser/aw_renderer_manifest_overlay.json b/android_webview/browser/aw_renderer_manifest_overlay.json index 7ab8e21..ef3340e7 100644 --- a/android_webview/browser/aw_renderer_manifest_overlay.json +++ b/android_webview/browser/aw_renderer_manifest_overlay.json
@@ -4,12 +4,12 @@ "navigation:frame": { "provides": { "browser": [ - "autofill::mojom::AutofillAgent", - "autofill::mojom::PasswordAutofillAgent", - "autofill::mojom::PasswordGenerationAgent", + "autofill.mojom.AutofillAgent", + "autofill.mojom.PasswordAutofillAgent", + "autofill.mojom.PasswordGenerationAgent", // TODO(crbug.com/811567): Remove this once AwSafeBrowsingBlockingPage // no longer sends a GetThreatDOMDetails IPC. - "safe_browsing::mojom::ThreatReporter" + "safe_browsing.mojom.ThreatReporter" ] } }
diff --git a/android_webview/browser/aw_utility_manifest_overlay.json b/android_webview/browser/aw_utility_manifest_overlay.json index 65cf914..24a09c7 100644 --- a/android_webview/browser/aw_utility_manifest_overlay.json +++ b/android_webview/browser/aw_utility_manifest_overlay.json
@@ -4,7 +4,7 @@ "service_manager:connector": { "provides": { "browser": [ - "heap_profiling::mojom::ProfilingClient" + "heap_profiling.mojom.ProfilingClient" ] } }
diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webview/browser/net/aw_network_delegate.cc index 658b142..d7affed 100644 --- a/android_webview/browser/net/aw_network_delegate.cc +++ b/android_webview/browser/net/aw_network_delegate.cc
@@ -28,7 +28,7 @@ void OnReceivedHttpErrorOnUiThread( const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, const AwWebResourceRequest& request, - scoped_refptr<const net::HttpResponseHeaders> original_response_headers) { + std::unique_ptr<AwContentsClientBridge::HttpErrorInfo> http_error_info) { AwContentsClientBridge* client = AwContentsClientBridge::FromWebContentsGetter(web_contents_getter); if (!client) { @@ -36,7 +36,7 @@ << request.url; return; } - client->OnReceivedHttpError(request, original_response_headers); + client->OnReceivedHttpError(request, std::move(http_error_info)); } } // namespace @@ -74,14 +74,16 @@ // A request info may not exist for requests not originating from content. if (request_info == nullptr) return net::OK; - // keep a ref before binding and posting to UI thread. - scoped_refptr<const net::HttpResponseHeaders> response_headers( - original_response_headers); + + // extract out the info we need before posting to UI thread. + std::unique_ptr<AwContentsClientBridge::HttpErrorInfo> error_info = + AwContentsClientBridge::ExtractHttpErrorInfo(original_response_headers); + BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, base::BindOnce(&OnReceivedHttpErrorOnUiThread, request_info->GetWebContentsGetterForRequest(), - AwWebResourceRequest(*request), response_headers)); + AwWebResourceRequest(*request), std::move(error_info))); } return net::OK; }
diff --git a/android_webview/support_library/PRESUBMIT.py b/android_webview/support_library/PRESUBMIT.py new file mode 100644 index 0000000..9d1ea3a --- /dev/null +++ b/android_webview/support_library/PRESUBMIT.py
@@ -0,0 +1,58 @@ +# 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. +"""Presubmit tests for android_webview/support_library/ + +Runs various style checks before upload. +""" + +def CheckChangeOnUpload(input_api, output_api): + results = [] + results.extend(_CheckAnnotatedInvocationHandlers(input_api, output_api)) + return results + +def _CheckAnnotatedInvocationHandlers(input_api, output_api): + """Checks that all references to InvocationHandlers are annotated with a + comment describing the class the InvocationHandler represents. This does not + check .../support_lib_boundary/util/, because this has legitimate reasons to + refer to InvocationHandlers without them standing for a specific type. + """ + + invocation_handler_str = r'\bInvocationHandler\b' + annotation_str = r'/\* \w+ \*/\s+' + invocation_handler_import_pattern = input_api.re.compile( + r'^import.*' + invocation_handler_str + ';$') + possibly_annotated_handler_pattern = input_api.re.compile( + r'(' + annotation_str + r')?(' + invocation_handler_str + r')') + + errors = [] + + sources = lambda affected_file: input_api.FilterSourceFile( + affected_file, + black_list=(input_api.DEFAULT_BLACK_LIST + + (r'.*support_lib_boundary[\\\/]util[\\\/].*',)), + white_list=(r'.*\.java$',)) + + for f in input_api.AffectedSourceFiles(sources): + for line_num, line in f.ChangedContents(): + if not invocation_handler_import_pattern.search(line): + for match in possibly_annotated_handler_pattern.findall(line): + annotation = match[0] + if not annotation: + # Note: we intentionally double-count lines which have multiple + # mistakes, since we require each mention of 'InvocationHandler' to + # be annotated. + errors.append("%s:%d" % (f.LocalPath(), line_num)) + + results = [] + + if errors: + results.append(output_api.PresubmitPromptWarning(""" +All references to InvocationHandlers should be annotated with the type they +represent using a comment, e.g.: + +/* RetType */ InvocationHandler method(/* ParamType */ InvocationHandler param); +""", + errors)) + + return results
diff --git a/android_webview/tools/system_webview_shell/test/data/webexposed/global-interface-listing-expected.txt b/android_webview/tools/system_webview_shell/test/data/webexposed/global-interface-listing-expected.txt index b23dbc6..f0fafb61 100644 --- a/android_webview/tools/system_webview_shell/test/data/webexposed/global-interface-listing-expected.txt +++ b/android_webview/tools/system_webview_shell/test/data/webexposed/global-interface-listing-expected.txt
@@ -386,6 +386,7 @@ method getContextAttributes method getImageData method getLineDash + method getTransform method isPointInPath method isPointInStroke method lineTo
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 5e346cf..df8699ab 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -93,8 +93,6 @@ "app_list/app_list_view_delegate_mash.cc", "app_list/app_list_view_delegate_mash.h", "ash_export.h", - "ash_layout_constants.cc", - "ash_layout_constants.h", "ash_service.cc", "ash_service.h", "ash_view_ids.h", @@ -110,6 +108,8 @@ "assistant/ui/assistant_bubble.h", "assistant/ui/assistant_bubble_view.cc", "assistant/ui/assistant_bubble_view.h", + "assistant/ui/dialog_plate/action_view.cc", + "assistant/ui/dialog_plate/action_view.h", "assistant/ui/dialog_plate/dialog_plate.cc", "assistant/ui/dialog_plate/dialog_plate.h", "autoclick/autoclick_controller.cc", @@ -239,6 +239,7 @@ "frame/detached_title_area_renderer.h", "frame/frame_border_hit_test.cc", "frame/frame_border_hit_test.h", + "frame/frame_header.cc", "frame/frame_header.h", "frame/frame_header_origin_text.cc", "frame/frame_header_origin_text.h", @@ -535,6 +536,8 @@ "sticky_keys/sticky_keys_overlay.cc", "sticky_keys/sticky_keys_overlay.h", "sticky_keys/sticky_keys_state.h", + "system/accessibility/dictation_button_tray.cc", + "system/accessibility/dictation_button_tray.h", "system/accessibility/select_to_speak_tray.cc", "system/accessibility/select_to_speak_tray.h", "system/audio/audio_detailed_view.cc", @@ -580,8 +583,6 @@ "system/date/system_info_default_view.h", "system/date/tray_system_info.cc", "system/date/tray_system_info.h", - "system/dictation/dictation_button_tray.cc", - "system/dictation/dictation_button_tray.h", "system/display_scale/scale_detailed_view.cc", "system/display_scale/scale_detailed_view.h", "system/display_scale/scale_view.cc", @@ -1685,6 +1686,7 @@ "shell_unittest.cc", "sticky_keys/sticky_keys_overlay_unittest.cc", "sticky_keys/sticky_keys_unittest.cc", + "system/accessibility/dictation_button_tray_unittest.cc", "system/accessibility/select_to_speak_tray_unittest.cc", "system/audio/tray_audio_unittest.cc", "system/bluetooth/bluetooth_power_controller_unittest.cc", @@ -1693,7 +1695,6 @@ "system/caps_lock_notification_controller_unittest.cc", "system/date/date_view_unittest.cc", "system/date/system_info_default_view_unittest.cc", - "system/dictation/dictation_button_tray_unittest.cc", "system/enterprise/tray_enterprise_unittest.cc", "system/flag_warning/flag_warning_tray_unittest.cc", "system/ime/tray_ime_chromeos_unittest.cc", @@ -1850,6 +1851,7 @@ "//chromeos:power_manager_proto", "//chromeos:test_support", "//chromeos:test_support_without_gmock", + "//chromeos/services/assistant:test_support", "//chromeos/services/multidevice_setup/public/mojom", "//components/account_id", "//components/password_manager/core/browser:hash_password_manager",
diff --git a/ash/DEPS b/ash/DEPS index fcf1edd..75cdf85 100644 --- a/ash/DEPS +++ b/ash/DEPS
@@ -79,6 +79,7 @@ # TODO(jamescook): Eliminate this. http://crbug.com/644355 "+chromeos/network", "+chromeos/services/assistant/public" , + "+chromeos/services/assistant/test_support", "+chromeos/services/multidevice_setup/public/mojom", # TODO(jamescook): Eliminate this. http://crbug.com/644361 "+chromeos/settings/timezone_settings.h",
diff --git a/ash/app_list/app_list_controller_impl.cc b/ash/app_list/app_list_controller_impl.cc index 9d52608..67bccb0 100644 --- a/ash/app_list/app_list_controller_impl.cc +++ b/ash/app_list/app_list_controller_impl.cc
@@ -187,6 +187,21 @@ // data may not contain valid position or icon. Preserve it in this case. if (!data->position.IsValid()) data->position = item->position(); + + // Update the item's position and name based on the metadata. + if (!data->position.Equals(item->position())) + model_.SetItemPosition(item, data->position); + + if (data->short_name.empty()) { + if (data->name != item->name()) { + model_.SetItemName(item, data->name); + } + } else { + if (data->name != item->name() || data->short_name != item->short_name()) { + model_.SetItemNameAndShortName(item, data->name, data->short_name); + } + } + // Folder icon is generated on ash side and chrome side passes a null // icon here. Skip it. if (data->icon.isNull())
diff --git a/ash/assistant/assistant_controller.cc b/ash/assistant/assistant_controller.cc index 16fefb5..7eaa7d9 100644 --- a/ash/assistant/assistant_controller.cc +++ b/ash/assistant/assistant_controller.cc
@@ -93,19 +93,11 @@ } void AssistantController::StartInteraction() { - // TODO(dmblack): Instruct underlying service to start listening if current - // input modality is VOICE. - if (assistant_interaction_model_.interaction_state() == - InteractionState::kInactive) { - OnInteractionStarted(); - } + OnInteractionStarted(); } void AssistantController::StopInteraction() { - if (assistant_interaction_model_.interaction_state() != - InteractionState::kInactive) { - OnInteractionDismissed(); - } + assistant_interaction_model_.SetInteractionState(InteractionState::kInactive); } void AssistantController::ToggleInteraction() { @@ -119,13 +111,16 @@ void AssistantController::OnInteractionStateChanged( InteractionState interaction_state) { - if (interaction_state == InteractionState::kInactive) { - assistant_interaction_model_.ClearInteraction(); + if (interaction_state == InteractionState::kActive) + return; - // TODO(dmblack): Input modality should default back to the user's - // preferred input modality. - assistant_interaction_model_.SetInputModality(InputModality::kVoice); - } + // When the user-facing interaction is dismissed, we instruct the service to + // terminate any listening, speaking, or query in flight. + DCHECK(assistant_); + assistant_->StopActiveInteraction(); + + assistant_interaction_model_.ClearInteraction(); + assistant_interaction_model_.SetInputModality(InputModality::kVoice); } void AssistantController::OnHighlighterEnabledChanged( @@ -139,20 +134,62 @@ } } +void AssistantController::OnInputModalityChanged(InputModality input_modality) { + if (input_modality == InputModality::kVoice) + return; + + // When switching to a non-voice input modality we instruct the underlying + // service to terminate any listening, speaking, or in flight voice query. We + // do not do this when switching to voice input modality because initiation of + // a voice interaction will automatically interrupt any pre-existing activity. + // Stopping the active interaction here for voice input modality would + // actually have the undesired effect of stopping the voice interaction. + if (assistant_interaction_model_.query().type() == + AssistantQueryType::kVoice) { + DCHECK(assistant_); + assistant_->StopActiveInteraction(); + } +} + void AssistantController::OnInteractionStarted() { assistant_interaction_model_.SetInteractionState(InteractionState::kActive); } void AssistantController::OnInteractionFinished( - AssistantInteractionResolution resolution) {} + AssistantInteractionResolution resolution) { + // When a voice query is interrupted we do not receive any follow up speech + // recognition events but the mic is closed. + if (resolution == AssistantInteractionResolution::kInterruption) { + assistant_interaction_model_.SetMicState(MicState::kClosed); + } +} -void AssistantController::OnInteractionDismissed() { - assistant_interaction_model_.SetInteractionState(InteractionState::kInactive); +void AssistantController::OnDialogPlateActionPressed(const std::string& text) { + InputModality input_modality = assistant_interaction_model_.input_modality(); - // When the user-facing interaction is dismissed, we instruct the service to - // terminate any listening, speaking, or query in flight. + // When using keyboard input modality, pressing the dialog plate action is + // equivalent to a commit. + if (input_modality == InputModality::kKeyboard) { + OnDialogPlateContentsCommitted(text); + return; + } + DCHECK(assistant_); - assistant_->StopActiveInteraction(); + + // It should not be possible to press the dialog plate action when not using + // keyboard or voice input modality. + DCHECK(input_modality == InputModality::kVoice); + + // When using voice input modality, pressing the dialog plate action will + // toggle the voice interaction state. + switch (assistant_interaction_model_.mic_state()) { + case MicState::kClosed: + assistant_->StartVoiceInteraction(); + break; + case MicState::kOpen: + assistant_->StopActiveInteraction(); + break; + } } void AssistantController::OnDialogPlateContentsChanged( @@ -162,16 +199,6 @@ // voice so that we will show the mic icon in the UI. assistant_interaction_model_.SetInputModality(InputModality::kVoice); } else { - // If switching to keyboard modality from voice, we instruct the service to - // terminate any listening, speaking, or query in flight. - // TODO(dmblack): We probably want this same logic when switching to any - // modality from voice. Handle this instead in OnInputModalityChanged, but - // we will need to add a previous modality parameter to that API. - if (assistant_interaction_model_.input_modality() == - InputModality::kVoice) { - DCHECK(assistant_); - assistant_->StopActiveInteraction(); - } assistant_interaction_model_.SetInputModality(InputModality::kKeyboard); assistant_interaction_model_.SetMicState(MicState::kClosed); } @@ -179,6 +206,15 @@ void AssistantController::OnDialogPlateContentsCommitted( const std::string& text) { + // TODO(dmblack): Handle an empty text query more gracefully by showing a + // helpful message to the user. Currently we just reset state and pretend as + // if nothing happened. + if (text.empty()) { + assistant_interaction_model_.ClearInteraction(); + assistant_interaction_model_.SetInputModality(InputModality::kVoice); + return; + } + assistant_interaction_model_.ClearInteraction(); assistant_interaction_model_.SetQuery( std::make_unique<AssistantTextQuery>(text)); @@ -234,6 +270,8 @@ assistant_interaction_model_.ClearInteraction(); assistant_interaction_model_.SetInputModality(InputModality::kVoice); assistant_interaction_model_.SetMicState(MicState::kOpen); + assistant_interaction_model_.SetQuery( + std::make_unique<AssistantVoiceQuery>()); } void AssistantController::OnSpeechRecognitionIntermediateResult(
diff --git a/ash/assistant/assistant_controller.h b/ash/assistant/assistant_controller.h index 4dd99c5..6f19b1a9 100644 --- a/ash/assistant/assistant_controller.h +++ b/ash/assistant/assistant_controller.h
@@ -76,6 +76,9 @@ void StopInteraction(); void ToggleInteraction(); + // Invoked on dialog plate action pressed event. + void OnDialogPlateActionPressed(const std::string& text); + // Invoked on dialog plate contents changed event. void OnDialogPlateContentsChanged(const std::string& text); @@ -86,6 +89,7 @@ void OnSuggestionChipPressed(int id); // AssistantInteractionModelObserver: + void OnInputModalityChanged(InputModality input_modality) override; void OnInteractionStateChanged(InteractionState interaction_state) override; // HighlighterController::Observer: @@ -115,8 +119,6 @@ mojom::AssistantCardRendererPtr assistant_card_renderer) override; private: - void OnInteractionDismissed(); - mojo::Binding<mojom::AssistantController> assistant_controller_binding_; mojo::Binding<chromeos::assistant::mojom::AssistantEventSubscriber> assistant_event_subscriber_binding_;
diff --git a/ash/assistant/assistant_controller_unittest.cc b/ash/assistant/assistant_controller_unittest.cc index d76dd79c..9b97e3a 100644 --- a/ash/assistant/assistant_controller_unittest.cc +++ b/ash/assistant/assistant_controller_unittest.cc
@@ -4,12 +4,16 @@ #include "ash/assistant/assistant_controller.h" +#include <memory> + #include "ash/highlighter/highlighter_controller.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "base/macros.h" #include "base/test/scoped_feature_list.h" #include "chromeos/chromeos_switches.h" +#include "chromeos/services/assistant/test_support/mock_assistant.h" +#include "mojo/public/cpp/bindings/binding.h" namespace ash { @@ -25,6 +29,15 @@ AshTestBase::SetUp(); controller_ = Shell::Get()->assistant_controller(); DCHECK(controller_); + + // Mock Assistant. + assistant_ = std::make_unique<chromeos::assistant::MockAssistant>(); + assistant_binding_ = + std::make_unique<mojo::Binding<chromeos::assistant::mojom::Assistant>>( + assistant_.get()); + chromeos::assistant::mojom::AssistantPtr assistant; + assistant_binding_->Bind(mojo::MakeRequest(&assistant)); + controller_->SetAssistant(std::move(assistant)); } const AssistantInteractionModel* interaction_model() { @@ -35,6 +48,10 @@ base::test::ScopedFeatureList scoped_feature_list_; AssistantController* controller_ = nullptr; + std::unique_ptr<chromeos::assistant::MockAssistant> assistant_; + std::unique_ptr<mojo::Binding<chromeos::assistant::mojom::Assistant>> + assistant_binding_; + DISALLOW_COPY_AND_ASSIGN(AssistantControllerTest); };
diff --git a/ash/assistant/model/assistant_interaction_model.cc b/ash/assistant/model/assistant_interaction_model.cc index f8e3e088..8811c75 100644 --- a/ash/assistant/model/assistant_interaction_model.cc +++ b/ash/assistant/model/assistant_interaction_model.cc
@@ -11,10 +11,7 @@ namespace ash { AssistantInteractionModel::AssistantInteractionModel() - : query_(std::make_unique<AssistantEmptyQuery>()) { - // TODO(dmblack): Default input modality should be read from user preferences. - input_modality_ = InputModality::kVoice; -} + : query_(std::make_unique<AssistantEmptyQuery>()) {} AssistantInteractionModel::~AssistantInteractionModel() = default;
diff --git a/ash/assistant/model/assistant_interaction_model.h b/ash/assistant/model/assistant_interaction_model.h index ce6edf8..8ad0efe 100644 --- a/ash/assistant/model/assistant_interaction_model.h +++ b/ash/assistant/model/assistant_interaction_model.h
@@ -117,7 +117,7 @@ void NotifySuggestionsCleared(); InteractionState interaction_state_ = InteractionState::kInactive; - InputModality input_modality_; + InputModality input_modality_ = InputModality::kVoice; MicState mic_state_ = MicState::kClosed; std::unique_ptr<AssistantQuery> query_; std::vector<AssistantSuggestionPtr> suggestions_;
diff --git a/ash/assistant/ui/assistant_bubble.cc b/ash/assistant/ui/assistant_bubble.cc index d78c397..75306f6 100644 --- a/ash/assistant/ui/assistant_bubble.cc +++ b/ash/assistant/ui/assistant_bubble.cc
@@ -127,6 +127,12 @@ } void AssistantBubble::OnWidgetDestroying(views::Widget* widget) { + // We need to be sure that the Assistant interaction is stopped when the + // widget is closed. Special cases, such as closing the widget via the |ESC| + // key might otherwise go unhandled, causing inconsistencies between the + // widget visibility state and the underlying interaction model state. + assistant_controller_->StopInteraction(); + container_view_->GetWidget()->RemoveObserver(this); container_view_ = nullptr; }
diff --git a/ash/assistant/ui/dialog_plate/action_view.cc b/ash/assistant/ui/dialog_plate/action_view.cc new file mode 100644 index 0000000..748ae41c --- /dev/null +++ b/ash/assistant/ui/dialog_plate/action_view.cc
@@ -0,0 +1,101 @@ +// 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 "ash/assistant/ui/dialog_plate/action_view.h" + +#include "ash/assistant/assistant_controller.h" +#include "ui/gfx/canvas.h" + +namespace ash { + +namespace { + +// Appearance. +constexpr int kPreferredSizeDip = 24; + +// TODO(dmblack): Remove after LogoView is implemented. +// Temporary colors to represent states. +constexpr SkColor kKeyboardColor = SkColorSetRGB(0x4C, 0x8B, 0xF5); // Blue +constexpr SkColor kMicOpenColor = SkColorSetRGB(0xDD, 0x51, 0x44); // Red +constexpr SkColor kMicClosedColor = SkColorSetA(SK_ColorBLACK, 0x1F); // Grey + +} // namespace + +ActionView::ActionView(AssistantController* assistant_controller, + ActionViewListener* listener) + : assistant_controller_(assistant_controller), listener_(listener) { + // The Assistant controller indirectly owns the view hierarchy to which + // ActionView belongs so is guaranteed to outlive it. + assistant_controller_->AddInteractionModelObserver(this); + + // Set initial state. + UpdateState(); +} + +ActionView::~ActionView() { + assistant_controller_->RemoveInteractionModelObserver(this); +} + +gfx::Size ActionView::CalculatePreferredSize() const { + return gfx::Size(kPreferredSizeDip, kPreferredSizeDip); +} + +// TODO(dmblack): Remove after LogoView is implemented. +void ActionView::OnPaintBackground(gfx::Canvas* canvas) { + cc::PaintFlags flags; + flags.setAntiAlias(true); + flags.setColor(color_); + canvas->DrawRoundRect(GetContentsBounds(), kPreferredSizeDip / 2, flags); +} + +void ActionView::OnGestureEvent(ui::GestureEvent* event) { + if (event->type() != ui::ET_GESTURE_TAP) + return; + + event->SetHandled(); + + if (listener_) + listener_->OnActionPressed(); +} + +bool ActionView::OnMousePressed(const ui::MouseEvent& event) { + if (listener_) + listener_->OnActionPressed(); + return true; +} + +void ActionView::OnInputModalityChanged(InputModality input_modality) { + UpdateState(); +} + +void ActionView::OnMicStateChanged(MicState mic_state) { + UpdateState(); +} + +// TODO(dmblack): Currently state is being indicated by painting a different +// background color. This will be replaced once the stateful LogoView has been +// implemented (b/78191547). +void ActionView::UpdateState() { + const AssistantInteractionModel* interaction_model = + assistant_controller_->interaction_model(); + + if (interaction_model->input_modality() == InputModality::kKeyboard) { + color_ = kKeyboardColor; + SchedulePaint(); + return; + } + + switch (interaction_model->mic_state()) { + case MicState::kClosed: + color_ = kMicClosedColor; + break; + case MicState::kOpen: + color_ = kMicOpenColor; + break; + } + + SchedulePaint(); +} + +} // namespace ash
diff --git a/ash/assistant/ui/dialog_plate/action_view.h b/ash/assistant/ui/dialog_plate/action_view.h new file mode 100644 index 0000000..7e21df5 --- /dev/null +++ b/ash/assistant/ui/dialog_plate/action_view.h
@@ -0,0 +1,62 @@ +// 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 ASH_ASSISTANT_UI_DIALOG_PLATE_ACTION_VIEW_H_ +#define ASH_ASSISTANT_UI_DIALOG_PLATE_ACTION_VIEW_H_ + +#include "ash/assistant/model/assistant_interaction_model_observer.h" +#include "base/macros.h" +#include "ui/views/view.h" + +namespace ash { + +class ActionView; +class AssistantController; + +// Listener which receives notification of action view events. +class ActionViewListener { + public: + // Invoked when the action is pressed. + virtual void OnActionPressed() = 0; + + protected: + virtual ~ActionViewListener() = default; +}; + +// TODO(dmblack): Wire up LogoView once implemented. +// A stateful view belonging to DialogPlate which delivers notification of press +// events. +class ActionView : public views::View, + public AssistantInteractionModelObserver { + public: + ActionView(AssistantController* assistant_controller, + ActionViewListener* listener); + ~ActionView() override; + + // views::View: + gfx::Size CalculatePreferredSize() const override; + void OnGestureEvent(ui::GestureEvent* event) override; + bool OnMousePressed(const ui::MouseEvent& event) override; + void OnPaintBackground(gfx::Canvas* canvas) override; + + // AssistantInteractionModelObserver: + void OnInputModalityChanged(InputModality input_modality) override; + void OnMicStateChanged(MicState mic_state) override; + + private: + void UpdateState(); + + AssistantController* const assistant_controller_; // Owned by Shell. + ActionViewListener* listener_; + + // TODO(dmblack): Remove after LogoView is implemented. + // Temporarily used to represent state. + SkColor color_; + + DISALLOW_COPY_AND_ASSIGN(ActionView); +}; + +} // namespace ash + +#endif // ASH_ASSISTANT_UI_DIALOG_PLATE_ACTION_VIEW_H_
diff --git a/ash/assistant/ui/dialog_plate/dialog_plate.cc b/ash/assistant/ui/dialog_plate/dialog_plate.cc index b41f4d5..eab3254 100644 --- a/ash/assistant/ui/dialog_plate/dialog_plate.cc +++ b/ash/assistant/ui/dialog_plate/dialog_plate.cc
@@ -21,7 +21,6 @@ // Appearance. constexpr SkColor kBorderColor = SkColorSetA(SK_ColorBLACK, 0x1F); constexpr int kBorderSizeDip = 1; -constexpr int kIconSizeDip = 24; constexpr int kPaddingHorizontalDip = 14; constexpr int kPaddingVerticalDip = 8; constexpr int kPreferredHeightDip = 48; @@ -31,40 +30,9 @@ constexpr SkColor kTextColorHint = SkColorSetA(SK_ColorBLACK, 0x42); constexpr SkColor kTextColorPrimary = SkColorSetA(SK_ColorBLACK, 0xDE); -// TODO(dmblack): Remove after implementing stateful icon. -// Background colors to represent icon states. -constexpr SkColor kKeyboardColor = SkColorSetRGB(0x4C, 0x8B, 0xF5); // Blue -constexpr SkColor kMicOpenColor = SkColorSetRGB(0xDD, 0x51, 0x44); // Red -constexpr SkColor kMicClosedColor = SkColorSetA(SK_ColorBLACK, 0x1F); // Grey - // TODO(b/77638210): Replace with localized resource strings. constexpr char kHint[] = "Type a message"; -// TODO(dmblack): Remove after removing placeholders. -// RoundRectBackground --------------------------------------------------------- - -class RoundRectBackground : public views::Background { - public: - RoundRectBackground(SkColor color, int corner_radius) - : color_(color), corner_radius_(corner_radius) {} - - ~RoundRectBackground() override = default; - - // views::Background: - void Paint(gfx::Canvas* canvas, views::View* view) const override { - cc::PaintFlags flags; - flags.setAntiAlias(true); - flags.setColor(color_); - canvas->DrawRoundRect(view->GetContentsBounds(), corner_radius_, flags); - } - - private: - const SkColor color_; - const int corner_radius_; - - DISALLOW_COPY_AND_ASSIGN(RoundRectBackground); -}; - } // namespace // DialogPlate ----------------------------------------------------------------- @@ -72,17 +40,11 @@ DialogPlate::DialogPlate(AssistantController* assistant_controller) : assistant_controller_(assistant_controller), textfield_(new views::Textfield()), - icon_(new views::View()) { + action_view_(new ActionView(assistant_controller, this)) { InitLayout(); - - // The Assistant controller indirectly owns the view hierarchy to which - // DialogPlate belongs, so is guaranteed to outlive it. - assistant_controller_->AddInteractionModelObserver(this); } -DialogPlate::~DialogPlate() { - assistant_controller_->RemoveInteractionModelObserver(this); -} +DialogPlate::~DialogPlate() = default; gfx::Size DialogPlate::CalculatePreferredSize() const { return gfx::Size(INT_MAX, kPreferredHeightDip); @@ -118,28 +80,18 @@ layout->SetFlexForView(textfield_, 1); - // TODO(dmblack): Replace w/ stateful icon. - // Icon. - icon_->SetPreferredSize(gfx::Size(kIconSizeDip, kIconSizeDip)); - AddChildView(icon_); - - // TODO(dmblack): Remove once the icon has been replaced. Only needed to - // force the background for the initial state. - UpdateIcon(); + // Action. + AddChildView(action_view_); } -void DialogPlate::OnInputModalityChanged(InputModality input_modality) { - // TODO(dmblack): When the stylus is selected we will hide the dialog plate - // and so should suspend any ongoing animations once the stateful icon is - // implemented. - if (input_modality == InputModality::kStylus) - return; +void DialogPlate::OnActionPressed() { + const base::StringPiece16& trimmed_text = + base::TrimWhitespace(textfield_->text(), base::TrimPositions::TRIM_ALL); - UpdateIcon(); -} + assistant_controller_->OnDialogPlateActionPressed( + base::UTF16ToUTF8(trimmed_text)); -void DialogPlate::OnMicStateChanged(MicState mic_state) { - UpdateIcon(); + textfield_->SetText(base::string16()); } void DialogPlate::ContentsChanged(views::Textfield* textfield, @@ -156,48 +108,26 @@ if (key_event.type() != ui::EventType::ET_KEY_PRESSED) return false; - const base::StringPiece16& text = - base::TrimWhitespace(textfield->text(), base::TrimPositions::TRIM_ALL); + const base::string16& text = textfield_->text(); + // We filter out committing an empty string here but do allow committing a + // whitespace only string. If the user commits a whitespace only string, we + // want to be able to show a helpful message. This is taken care of in + // AssistantController's handling of the commit event. if (text.empty()) return false; - assistant_controller_->OnDialogPlateContentsCommitted( - base::UTF16ToUTF8(text)); + const base::StringPiece16& trimmed_text = + base::TrimWhitespace(text, base::TrimPositions::TRIM_ALL); - textfield->SetText(base::string16()); + assistant_controller_->OnDialogPlateContentsCommitted( + base::UTF16ToUTF8(trimmed_text)); + + textfield_->SetText(base::string16()); return true; } -// TODO(dmblack): Revise this method to update the state of the stateful icon -// once it has been implemented. For the time being, we represent state by -// modifying the background color of the placeholder icon. -void DialogPlate::UpdateIcon() { - const AssistantInteractionModel* interaction_model = - assistant_controller_->interaction_model(); - - if (interaction_model->input_modality() == InputModality::kKeyboard) { - icon_->SetBackground(std::make_unique<RoundRectBackground>( - kKeyboardColor, kIconSizeDip / 2)); - SchedulePaint(); - return; - } - - switch (interaction_model->mic_state()) { - case MicState::kClosed: - icon_->SetBackground(std::make_unique<RoundRectBackground>( - kMicClosedColor, kIconSizeDip / 2)); - break; - case MicState::kOpen: - icon_->SetBackground(std::make_unique<RoundRectBackground>( - kMicOpenColor, kIconSizeDip / 2)); - break; - } - - SchedulePaint(); -} - void DialogPlate::RequestFocus() { textfield_->RequestFocus(); }
diff --git a/ash/assistant/ui/dialog_plate/dialog_plate.h b/ash/assistant/ui/dialog_plate/dialog_plate.h index bdb751b..c9ed1920 100644 --- a/ash/assistant/ui/dialog_plate/dialog_plate.h +++ b/ash/assistant/ui/dialog_plate/dialog_plate.h
@@ -5,7 +5,7 @@ #ifndef ASH_ASSISTANT_UI_DIALOG_PLATE_DIALOG_PLATE_H_ #define ASH_ASSISTANT_UI_DIALOG_PLATE_DIALOG_PLATE_H_ -#include "ash/assistant/model/assistant_interaction_model_observer.h" +#include "ash/assistant/ui/dialog_plate/action_view.h" #include "base/macros.h" #include "ui/views/controls/textfield/textfield_controller.h" #include "ui/views/view.h" @@ -16,7 +16,7 @@ class DialogPlate : public views::View, public views::TextfieldController, - public AssistantInteractionModelObserver { + public ActionViewListener { public: explicit DialogPlate(AssistantController* assistant_controller); ~DialogPlate() override; @@ -25,23 +25,22 @@ gfx::Size CalculatePreferredSize() const override; void RequestFocus() override; - // AssistantInteractionModelObserver: - void OnInputModalityChanged(InputModality input_modality) override; - void OnMicStateChanged(MicState mic_state) override; - // views::TextfieldController: void ContentsChanged(views::Textfield* sender, const base::string16& new_contents) override; bool HandleKeyEvent(views::Textfield* sender, const ui::KeyEvent& key_event) override; + // ActionViewListener: + void OnActionPressed() override; + private: void InitLayout(); void UpdateIcon(); AssistantController* const assistant_controller_; // Owned by Shell. views::Textfield* textfield_; // Owned by view hierarchy. - views::View* icon_; // Owned by view hierarchy. + ActionView* action_view_; // Owned by view hierarchy. DISALLOW_COPY_AND_ASSIGN(DialogPlate); };
diff --git a/ash/components/autoclick/manifest.json b/ash/components/autoclick/manifest.json index bf53922..f453f3d8 100644 --- a/ash/components/autoclick/manifest.json +++ b/ash/components/autoclick/manifest.json
@@ -5,8 +5,8 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "mash:launchable": [ "mash::mojom::Launchable" ], - "chromeos:autoclick": [ "autoclick::mojom::AutoclickController" ] + "mash:launchable": [ "mash.mojom.Launchable" ], + "chromeos:autoclick": [ "autoclick.mojom.AutoclickController" ] }, "requires": { "*": [ "app" ],
diff --git a/ash/components/quick_launch/manifest.json b/ash/components/quick_launch/manifest.json index e844679..7ae12d28 100644 --- a/ash/components/quick_launch/manifest.json +++ b/ash/components/quick_launch/manifest.json
@@ -4,7 +4,7 @@ "sandbox_type": "none", "interface_provider_specs": { "service_manager:connector": { - "provides": { "mash:launchable": [ "mash::mojom::Launchable" ] }, + "provides": { "mash:launchable": [ "mash.mojom.Launchable" ] }, "requires": { "*": [ "app", "mash:launchable" ], "catalog": [
diff --git a/ash/components/strings/ash_components_strings_am.xtb b/ash/components/strings/ash_components_strings_am.xtb index 86c582a..7cf4ee0 100644 --- a/ash/components/strings/ash_components_strings_am.xtb +++ b/ash/components/strings/ash_components_strings_am.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">ገጽ ወደላይ</translation> <translation id="6228457605945141550">ብሩህነትን ቀንስ</translation> <translation id="6276708887952587684">የገጽ ምንጭን ይመልከቱ</translation> +<translation id="6296325018964936845">የሙሉ ማያ ገጽ ማጉያውን ያብሩ ወይም ያጥፉ</translation> <translation id="6321940490215594447">የታሪክ ገጹን ይክፈቱ</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">ጽሑፍን እስከ የመስመሩ መጨረሻ ይምረጡ</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">ከፍለጋ ሁነታ ይውጡ</translation> <translation id="85690795166292698">አገናኙን በአዲስ ትር ውስጥ ይክፈቱ</translation> <translation id="8609384513243082612">አዲስ ትር ይክፈቱ</translation> +<translation id="8642453848560580159">የተተከለውን ማጉያ ያብሩ ወይም ያጥፉ</translation> <translation id="8644639153978066712">በፋይሎች መተግበሪያ ውስጥ የተደበቁ ፋይሎችን አሳይ</translation> <translation id="8717459106217102612">ቀዳሚውን ቃል ወይም ፊደል ይምረጡ</translation> <translation id="8727232706774971183">የእርስዎን ማሳወቂያዎች ይመልከቱ</translation>
diff --git a/ash/components/strings/ash_components_strings_bg.xtb b/ash/components/strings/ash_components_strings_bg.xtb index a31b395..8fe6820 100644 --- a/ash/components/strings/ash_components_strings_bg.xtb +++ b/ash/components/strings/ash_components_strings_bg.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Страница нагоре</translation> <translation id="6228457605945141550">Намаляване на яркостта</translation> <translation id="6276708887952587684">Преглед на изходния код на страницата</translation> +<translation id="6296325018964936845">Включване или изключване на лупата за увеличаване на целия екран</translation> <translation id="6321940490215594447">Отваряне на страницата „История“</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Избиране на текста до края на реда</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Изход от режима на търсене</translation> <translation id="85690795166292698">Отваряне на връзката в нов раздел</translation> <translation id="8609384513243082612">Отваряне на нов раздел</translation> +<translation id="8642453848560580159">Включване или изключване на лупата в прикрепен режим</translation> <translation id="8644639153978066712">Показване на скритите файлове в приложението Файлове</translation> <translation id="8717459106217102612">Избиране на предишната дума или буква</translation> <translation id="8727232706774971183">Преглед на известията ви</translation>
diff --git a/ash/components/strings/ash_components_strings_cs.xtb b/ash/components/strings/ash_components_strings_cs.xtb index d512c9b..fc9bf11c9 100644 --- a/ash/components/strings/ash_components_strings_cs.xtb +++ b/ash/components/strings/ash_components_strings_cs.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">O stránku nahoru</translation> <translation id="6228457605945141550">Snížit jas</translation> <translation id="6276708887952587684">Zobrazit zdrojový kód stránky</translation> +<translation id="6296325018964936845">Zapnout nebo vypnout lupu celé obrazovky</translation> <translation id="6321940490215594447">Otevřít stránku Historie</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Vybrat text až do konce řádku</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Opustit režim vyhledávání</translation> <translation id="85690795166292698">Otevřít odkaz na nové kartě</translation> <translation id="8609384513243082612">Otevřít novou kartu</translation> +<translation id="8642453848560580159">Zapnout nebo vypnout zadokovanou lupu</translation> <translation id="8644639153978066712">Zobrazit v aplikaci Soubory skryté soubory</translation> <translation id="8717459106217102612">Vybrat předchozí slovo nebo písmeno.</translation> <translation id="8727232706774971183">Zobrazit oznámení</translation>
diff --git a/ash/components/strings/ash_components_strings_da.xtb b/ash/components/strings/ash_components_strings_da.xtb index a214f6b..2e4bcbb 100644 --- a/ash/components/strings/ash_components_strings_da.xtb +++ b/ash/components/strings/ash_components_strings_da.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Gå en side op</translation> <translation id="6228457605945141550">Skru ned for lysstyrken</translation> <translation id="6276708887952587684">Se sidekilden</translation> +<translation id="6296325018964936845">Slå forstørrelse af fuld skærm til eller fra</translation> <translation id="6321940490215594447">Åbn siden Historik</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Markér teksten til slutningen af linjen</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Afslut søgetilstand</translation> <translation id="85690795166292698">Åbn linket på en ny fane</translation> <translation id="8609384513243082612">Åbn en ny fane</translation> +<translation id="8642453848560580159">Slå fastgjort lupvindue til eller fra</translation> <translation id="8644639153978066712">Vis skjulte filer i appen Filer</translation> <translation id="8717459106217102612">Markér det forrige ord eller bogstav</translation> <translation id="8727232706774971183">Se dine underretninger</translation>
diff --git a/ash/components/strings/ash_components_strings_de.xtb b/ash/components/strings/ash_components_strings_de.xtb index 7f365c1..42900280 100644 --- a/ash/components/strings/ash_components_strings_de.xtb +++ b/ash/components/strings/ash_components_strings_de.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Bildlauf nach oben</translation> <translation id="6228457605945141550">Helligkeit verringern</translation> <translation id="6276708887952587684">Quelltext der Seite ansehen</translation> +<translation id="6296325018964936845">Vollbildlupe ein- oder ausschalten</translation> <translation id="6321940490215594447">Verlauf öffnen</translation> <translation id="6359811074279051077">"<ph name="MODIFIER" />" <ph name="SEPARATOR" /> "<ph name="KEY" />"</translation> <translation id="6395172954772765143">Text bis zum Zeilenende markieren</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Suchmodus beenden</translation> <translation id="85690795166292698">Link in einem neuen Tab öffnen</translation> <translation id="8609384513243082612">Neuen Tab öffnen</translation> +<translation id="8642453848560580159">Angedockte Lupe ein- oder ausschalten</translation> <translation id="8644639153978066712">Verborgene Dateien in der App "Dateien" anzeigen</translation> <translation id="8717459106217102612">Vorheriges Wort oder vorherigen Buchstaben markieren</translation> <translation id="8727232706774971183">Benachrichtigungen ansehen</translation>
diff --git a/ash/components/strings/ash_components_strings_en-GB.xtb b/ash/components/strings/ash_components_strings_en-GB.xtb index 0936d806..a3f174c 100644 --- a/ash/components/strings/ash_components_strings_en-GB.xtb +++ b/ash/components/strings/ash_components_strings_en-GB.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Page up</translation> <translation id="6228457605945141550">Turn brightness down</translation> <translation id="6276708887952587684">View page source</translation> +<translation id="6296325018964936845">Toggle the Fullscreen Magnifier on or off</translation> <translation id="6321940490215594447">Open the History page</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Select text to the end of the line</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Exit search mode</translation> <translation id="85690795166292698">Open the link in a new tab</translation> <translation id="8609384513243082612">Open new tab</translation> +<translation id="8642453848560580159">Toggle the Docked Magnifier on or off</translation> <translation id="8644639153978066712">Display hidden files in the Files app</translation> <translation id="8717459106217102612">Select previous word or letter</translation> <translation id="8727232706774971183">See your notifications</translation>
diff --git a/ash/components/strings/ash_components_strings_es.xtb b/ash/components/strings/ash_components_strings_es.xtb index 93dc093c..89c7f113 100644 --- a/ash/components/strings/ash_components_strings_es.xtb +++ b/ash/components/strings/ash_components_strings_es.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Retroceder página</translation> <translation id="6228457605945141550">Reducir el brillo</translation> <translation id="6276708887952587684">Ver el código fuente de la página</translation> +<translation id="6296325018964936845">Activar o desactivar la lupa de pantalla completa</translation> <translation id="6321940490215594447">Abrir la página Historial</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Seleccionar texto hasta el final de la línea</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Salir del modo de búsqueda</translation> <translation id="85690795166292698">Abrir el enlace en una pestaña nueva</translation> <translation id="8609384513243082612">Abrir nueva pestaña</translation> +<translation id="8642453848560580159">Activar o desactivar la lupa fijada</translation> <translation id="8644639153978066712">Mostrar archivos ocultos en la aplicación Archivos</translation> <translation id="8717459106217102612">Seleccionar la palabra o la letra anterior</translation> <translation id="8727232706774971183">Ver las notificaciones</translation>
diff --git a/ash/components/strings/ash_components_strings_et.xtb b/ash/components/strings/ash_components_strings_et.xtb index 3a992c30..09e4b9c3 100644 --- a/ash/components/strings/ash_components_strings_et.xtb +++ b/ash/components/strings/ash_components_strings_et.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Lehel üles</translation> <translation id="6228457605945141550">Heleduse vähendamine</translation> <translation id="6276708887952587684">Lehe allika kuvamine</translation> +<translation id="6296325018964936845">Saate täisekraani luubi sisse või välja lülitada</translation> <translation id="6321940490215594447">Ajaloolehe avamine</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /> <ph name="SEPARATOR" /> <ph name="KEY" /></translation> <translation id="6395172954772765143">Teksti valimine kuni rea lõpuni</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Välju otsingurežiimist</translation> <translation id="85690795166292698">Lingi avamine uuel vahelehel</translation> <translation id="8609384513243082612">Uue vahelehe avamine</translation> +<translation id="8642453848560580159">Saate dokitud luubi sisse või välja lülitada</translation> <translation id="8644639153978066712">Peidetud failide kuvamine rakenduses Failid</translation> <translation id="8717459106217102612">Eelmise sõna või tähe valimine</translation> <translation id="8727232706774971183">Märguannete vaatamine</translation>
diff --git a/ash/components/strings/ash_components_strings_fi.xtb b/ash/components/strings/ash_components_strings_fi.xtb index 542e4da..ec8948d 100644 --- a/ash/components/strings/ash_components_strings_fi.xtb +++ b/ash/components/strings/ash_components_strings_fi.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Sivu ylös</translation> <translation id="6228457605945141550">Vähennä kirkkautta</translation> <translation id="6276708887952587684">Näytä sivun lähdekoodi</translation> +<translation id="6296325018964936845">Ota koko näytön suurennus käyttöön tai poista se käytöstä</translation> <translation id="6321940490215594447">Avaa Historia-sivu</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Valitse teksti rivin loppuun asti</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Poistu hakutilasta</translation> <translation id="85690795166292698">Avaa linkki uudella välilehdellä</translation> <translation id="8609384513243082612">Avaa uusi välilehti</translation> +<translation id="8642453848560580159">Ota kiinnitetty suurennus käyttöön tai poista se käytöstä</translation> <translation id="8644639153978066712">Näytä piilotetut tiedostot Tiedostot-sovelluksessa</translation> <translation id="8717459106217102612">Valitse edellinen sana tai kirjain</translation> <translation id="8727232706774971183">Näytä ilmoitukset</translation>
diff --git a/ash/components/strings/ash_components_strings_hi.xtb b/ash/components/strings/ash_components_strings_hi.xtb index 9ef5689..1d2a9ea 100644 --- a/ash/components/strings/ash_components_strings_hi.xtb +++ b/ash/components/strings/ash_components_strings_hi.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Page up</translation> <translation id="6228457605945141550">स्क्रीन की रोशनी कम करें</translation> <translation id="6276708887952587684">पेज का स्रोत देखें</translation> +<translation id="6296325018964936845">पूरी स्क्रीन वाले आवर्धक को चालू या बंद पर टॉगल करें</translation> <translation id="6321940490215594447">इतिहास पेज खोलें</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">पंक्ति के आखिर तक का लेख चुनें</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">खोज मोड से बाहर निकलें</translation> <translation id="85690795166292698">लिंक को नए टैब में खोलें</translation> <translation id="8609384513243082612">नया टैब खोलें</translation> +<translation id="8642453848560580159">डॉक किए गए आवर्धक को चालू या बंद पर टॉगल करें</translation> <translation id="8644639153978066712">फ़ाइल ऐप्लिकेशन में छिपी हुई फ़ाइलें दिखाएं</translation> <translation id="8717459106217102612">पिछला शब्द या अक्षर चुनें</translation> <translation id="8727232706774971183">अपनी सूचनाएं देखें</translation>
diff --git a/ash/components/strings/ash_components_strings_hr.xtb b/ash/components/strings/ash_components_strings_hr.xtb index 81500ea..9166ec6 100644 --- a/ash/components/strings/ash_components_strings_hr.xtb +++ b/ash/components/strings/ash_components_strings_hr.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Stranica prema gore</translation> <translation id="6228457605945141550">Smanjivanje svjetline</translation> <translation id="6276708887952587684">Prikaz izvora stranice</translation> +<translation id="6296325018964936845">Uključivanje ili isključivanje povećala za cijeli zaslon</translation> <translation id="6321940490215594447">Otvaranje stranice povijesti</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Odabir teksta do kraja retka</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Izlaz iz načina pretraživanja</translation> <translation id="85690795166292698">Otvaranje veze u novoj kartici</translation> <translation id="8609384513243082612">Otvaranje nove kartice</translation> +<translation id="8642453848560580159">Uključivanje ili isključivanje usidrenog povećala</translation> <translation id="8644639153978066712">Prikazivanje skrivenih datoteka u aplikaciji Datoteke</translation> <translation id="8717459106217102612">Odabir prethodne riječi ili slova</translation> <translation id="8727232706774971183">Pregled obavijesti</translation>
diff --git a/ash/components/strings/ash_components_strings_hu.xtb b/ash/components/strings/ash_components_strings_hu.xtb index e6a9a0b..8eac1e3 100644 --- a/ash/components/strings/ash_components_strings_hu.xtb +++ b/ash/components/strings/ash_components_strings_hu.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Lapozás felfelé</translation> <translation id="6228457605945141550">A fényerő csökkentése</translation> <translation id="6276708887952587684">Az oldal forrásának megtekintése</translation> +<translation id="6296325018964936845">A teljes képernyős nagyító be- vagy kikapcsolása</translation> <translation id="6321940490215594447">Az Előzmények oldal megnyitása</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Szöveg kijelölése a sor végéig</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Kilépés a keresési módból</translation> <translation id="85690795166292698">Link megnyitása új lapon</translation> <translation id="8609384513243082612">Új lap megnyitása</translation> +<translation id="8642453848560580159">A dokkolt nagyító be- vagy kikapcsolása</translation> <translation id="8644639153978066712">Rejtett fájlok megjelenítése a Fájlok alkalmazásban</translation> <translation id="8717459106217102612">Az előző szó vagy betű kijelölése</translation> <translation id="8727232706774971183">Az értesítések megtekintése</translation>
diff --git a/ash/components/strings/ash_components_strings_id.xtb b/ash/components/strings/ash_components_strings_id.xtb index f29a974d..cebbd5c 100644 --- a/ash/components/strings/ash_components_strings_id.xtb +++ b/ash/components/strings/ash_components_strings_id.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Page up</translation> <translation id="6228457605945141550">Mengurangi kecerahan</translation> <translation id="6276708887952587684">Melihat sumber halaman</translation> +<translation id="6296325018964936845">Mengaktifkan atau menonaktifkan Kaca Pembesar Layar Penuh</translation> <translation id="6321940490215594447">Membuka halaman Histori</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Memilih teks sampai akhir baris</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Keluar dari mode penelusuran</translation> <translation id="85690795166292698">Membuka link di tab baru</translation> <translation id="8609384513243082612">Membuka tab baru</translation> +<translation id="8642453848560580159">Mengaktifkan atau menonaktifkan Kaca Pembesar yang Dipasang di Dok</translation> <translation id="8644639153978066712">Menampilkan file tersembunyi dalam aplikasi File</translation> <translation id="8717459106217102612">Memilih kata atau huruf sebelumnya</translation> <translation id="8727232706774971183">Melihat notifikasi</translation>
diff --git a/ash/components/strings/ash_components_strings_it.xtb b/ash/components/strings/ash_components_strings_it.xtb index 336b883b..95bc1843 100644 --- a/ash/components/strings/ash_components_strings_it.xtb +++ b/ash/components/strings/ash_components_strings_it.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Pagina su</translation> <translation id="6228457605945141550">Diminuisce la luminosità</translation> <translation id="6276708887952587684">Visualizza il codice sorgente della pagina</translation> +<translation id="6296325018964936845">Attiva o disattiva la lente d'ingrandimento a schermo intero</translation> <translation id="6321940490215594447">Apre la pagina Cronologia</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Seleziona il testo alla fine della riga</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Esci dalla modalità di ricerca</translation> <translation id="85690795166292698">Apre il link in una nuova scheda</translation> <translation id="8609384513243082612">Apre una nuova scheda</translation> +<translation id="8642453848560580159">Attiva o disattiva la lente d'ingrandimento ancorata</translation> <translation id="8644639153978066712">Visualizza i file nascosti nell'app File</translation> <translation id="8717459106217102612">Seleziona la parola o la lettera precedente</translation> <translation id="8727232706774971183">Visualizza le notifiche</translation>
diff --git a/ash/components/strings/ash_components_strings_iw.xtb b/ash/components/strings/ash_components_strings_iw.xtb index e8df027..d62918b8 100644 --- a/ash/components/strings/ash_components_strings_iw.xtb +++ b/ash/components/strings/ash_components_strings_iw.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Page up</translation> <translation id="6228457605945141550">הפחתת הבהירות</translation> <translation id="6276708887952587684">הצגת מקור הדף</translation> +<translation id="6296325018964936845">הפעלה או השבתה של הזכוכית המגדלת במסך מלא.</translation> <translation id="6321940490215594447">פתיחת הדף 'היסטוריה'</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">בחירת הטקסט עד סוף השורה</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">יציאה ממצב חיפוש</translation> <translation id="85690795166292698">פתיחת הקישור בכרטיסייה חדשה</translation> <translation id="8609384513243082612">פתיחת כרטיסייה חדשה</translation> +<translation id="8642453848560580159">הפעלת או השבתה של הזכוכית המגדלת במצב עגינה.</translation> <translation id="8644639153978066712">הצגת קבצים מוסתרים באפליקציה 'קבצים'</translation> <translation id="8717459106217102612">בחירת המילה או האות הקודמת</translation> <translation id="8727232706774971183">הצגת ההודעות שלך</translation>
diff --git a/ash/components/strings/ash_components_strings_lv.xtb b/ash/components/strings/ash_components_strings_lv.xtb index c3c192cd..83fcae5 100644 --- a/ash/components/strings/ash_components_strings_lv.xtb +++ b/ash/components/strings/ash_components_strings_lv.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Augšup</translation> <translation id="6228457605945141550">Samazināt spilgtumu</translation> <translation id="6276708887952587684">Skatīt lapas avotu</translation> +<translation id="6296325018964936845">Ieslēdz vai izslēdz pilnekrāna lupu</translation> <translation id="6321940490215594447">Atvērt lapu Vēsture</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Atlasīt tekstu līdz rindiņas beigām</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Iziet no meklēšanas režīma</translation> <translation id="85690795166292698">Atvērt saiti jaunā cilnē</translation> <translation id="8609384513243082612">Atvērt jaunu cilni</translation> +<translation id="8642453848560580159">Ieslēdz vai izslēdz dokoto lupu</translation> <translation id="8644639153978066712">Rādīt paslēptos failus lietotnē Faili</translation> <translation id="8717459106217102612">Atlasīt iepriekšējo vārdu vai burtu</translation> <translation id="8727232706774971183">Skatīt paziņojumus</translation>
diff --git a/ash/components/strings/ash_components_strings_ms.xtb b/ash/components/strings/ash_components_strings_ms.xtb index 0204820..254fbe19 100644 --- a/ash/components/strings/ash_components_strings_ms.xtb +++ b/ash/components/strings/ash_components_strings_ms.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Halaman atas</translation> <translation id="6228457605945141550">Kurangkan kecerahan</translation> <translation id="6276708887952587684">Lihat sumber halaman</translation> +<translation id="6296325018964936845">Togol Penggadang Skrin Penuh kepada hidup atau mati</translation> <translation id="6321940490215594447">Buka halaman Sejarah</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Pilih teks di penghujung baris</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Keluar daripada mod carian</translation> <translation id="85690795166292698">Buka pautan dalam tab baharu</translation> <translation id="8609384513243082612">Buka tab baharu</translation> +<translation id="8642453848560580159">Togol Penggadang yang Didok kepada hidup atau mati</translation> <translation id="8644639153978066712">Paparkan fail tersembunyi dalam apl Fail</translation> <translation id="8717459106217102612">Pilih perkataan atau huruf sebelumnya</translation> <translation id="8727232706774971183">Lihat pemberitahuan anda</translation>
diff --git a/ash/components/strings/ash_components_strings_nl.xtb b/ash/components/strings/ash_components_strings_nl.xtb index 617dcae1..6dd7d52 100644 --- a/ash/components/strings/ash_components_strings_nl.xtb +++ b/ash/components/strings/ash_components_strings_nl.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Page Up</translation> <translation id="6228457605945141550">Helderheid verlagen</translation> <translation id="6276708887952587684">Paginabron weergeven</translation> +<translation id="6296325018964936845">'Volledig scherm vergroten' in- of uitschakelen</translation> <translation id="6321940490215594447">De pagina Geschiedenis openen</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Tekst tot het einde van de regel selecteren</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Zoekmodus afsluiten</translation> <translation id="85690795166292698">De link openen op een nieuw tabblad</translation> <translation id="8609384513243082612">Nieuw tabblad openen</translation> +<translation id="8642453848560580159">'Gedockt vergrootglas' in- of uitschakelen</translation> <translation id="8644639153978066712">Verborgen bestanden in de app Bestanden weergeven</translation> <translation id="8717459106217102612">Het vorige woord of de vorige letter selecteren</translation> <translation id="8727232706774971183">Je meldingen bekijken</translation>
diff --git a/ash/components/strings/ash_components_strings_pl.xtb b/ash/components/strings/ash_components_strings_pl.xtb index 2b127efe..ee405e3f 100644 --- a/ash/components/strings/ash_components_strings_pl.xtb +++ b/ash/components/strings/ash_components_strings_pl.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Strona do góry</translation> <translation id="6228457605945141550">Zmniejsz jasność</translation> <translation id="6276708887952587684">Wyświetl źródło strony</translation> +<translation id="6296325018964936845">Włącz lub wyłącz lupę pełnego ekranu</translation> <translation id="6321940490215594447">Otwórz stronę Historia</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Zaznacz tekst do końca wiersza</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Zamknij tryb wyszukiwania</translation> <translation id="85690795166292698">Otwórz link w nowej karcie</translation> <translation id="8609384513243082612">Otwórz nową kartę</translation> +<translation id="8642453848560580159">Włącz lub wyłącz lupę zadokowaną</translation> <translation id="8644639153978066712">Pokaż ukryte pliki w aplikacji Pliki</translation> <translation id="8717459106217102612">Zaznacz poprzednie słowo lub znak</translation> <translation id="8727232706774971183">Zobacz powiadomienia</translation>
diff --git a/ash/components/strings/ash_components_strings_ru.xtb b/ash/components/strings/ash_components_strings_ru.xtb index e8bbff4..a7473184 100644 --- a/ash/components/strings/ash_components_strings_ru.xtb +++ b/ash/components/strings/ash_components_strings_ru.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">На страницу вверх</translation> <translation id="6228457605945141550">Уменьшить яркость</translation> <translation id="6276708887952587684">Посмотреть исходный код страницы</translation> +<translation id="6296325018964936845">Включить или отключить полноэкранную лупу</translation> <translation id="6321940490215594447">Открыть страницу "История"</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Выделить текст до конца строки</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Выйти из режима поиска</translation> <translation id="85690795166292698">Открыть ссылку в новой вкладке</translation> <translation id="8609384513243082612">Открыть новую вкладку</translation> +<translation id="8642453848560580159">Включить или отключить закрепленную лупу</translation> <translation id="8644639153978066712">Показать скрытые файлы в приложении "Файлы"</translation> <translation id="8717459106217102612">Выбрать предыдущее слово или букву</translation> <translation id="8727232706774971183">Посмотреть уведомления</translation>
diff --git a/ash/components/strings/ash_components_strings_sk.xtb b/ash/components/strings/ash_components_strings_sk.xtb index 02bedee..dd7334d 100644 --- a/ash/components/strings/ash_components_strings_sk.xtb +++ b/ash/components/strings/ash_components_strings_sk.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Posunúť o stránku nahor</translation> <translation id="6228457605945141550">Zníženie jasu</translation> <translation id="6276708887952587684">Zobrazenie zdrojového kódu stránky</translation> +<translation id="6296325018964936845">Zapnutie alebo vypnutie lupy na celú obrazovku</translation> <translation id="6321940490215594447">Otvorenie stránky História</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Výber textu do konca riadka</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Ukončiť režim vyhľadávania</translation> <translation id="85690795166292698">Otvorenie odkazu na novej karte</translation> <translation id="8609384513243082612">Otvorenie novej karty</translation> +<translation id="8642453848560580159">Zapnutie alebo vypnutie ukotvenej lupy</translation> <translation id="8644639153978066712">Zobrazenie skrytých súborov v aplikácii Súbory</translation> <translation id="8717459106217102612">Výber predchádzajúceho slova alebo písmena</translation> <translation id="8727232706774971183">Zobrazenie upozornení</translation>
diff --git a/ash/components/strings/ash_components_strings_sr.xtb b/ash/components/strings/ash_components_strings_sr.xtb index de8c702..22334f54 100644 --- a/ash/components/strings/ash_components_strings_sr.xtb +++ b/ash/components/strings/ash_components_strings_sr.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Страница нагоре</translation> <translation id="6228457605945141550">Смањите осветљеност</translation> <translation id="6276708887952587684">Прегледајте извор странице</translation> +<translation id="6296325018964936845">Укључује или искључује лупу за цео екран</translation> <translation id="6321940490215594447">Отворите страницу Историја</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Изаберите текст до краја реда</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Изађи из режима претраге</translation> <translation id="85690795166292698">Отворите линк на новој картици</translation> <translation id="8609384513243082612">Отворите нову картицу</translation> +<translation id="8642453848560580159">Укључује или искључује монтирану лупу екрана</translation> <translation id="8644639153978066712">Прикажите скривене датотеке у апликацији Датотеке</translation> <translation id="8717459106217102612">Изаберите претходну реч или слово</translation> <translation id="8727232706774971183">Прегледајте обавештења</translation>
diff --git a/ash/components/strings/ash_components_strings_sv.xtb b/ash/components/strings/ash_components_strings_sv.xtb index 1ce27b50..0634b9bc 100644 --- a/ash/components/strings/ash_components_strings_sv.xtb +++ b/ash/components/strings/ash_components_strings_sv.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Uppåt en sida</translation> <translation id="6228457605945141550">Minska ljusstyrkan</translation> <translation id="6276708887952587684">Visa sidkälla</translation> +<translation id="6296325018964936845">Aktivera och inaktivera helskärmsförstoring.</translation> <translation id="6321940490215594447">Öppna sidan Historik</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Markera text till radens slut</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Avsluta sökläget</translation> <translation id="85690795166292698">Öppna länken på en ny flik</translation> <translation id="8609384513243082612">Öppna ny flik</translation> +<translation id="8642453848560580159">Aktivera och inaktivera dockad skärmförstoring.</translation> <translation id="8644639153978066712">Visa dolda filer i appen Filer</translation> <translation id="8717459106217102612">Markera föregående ord eller bokstav</translation> <translation id="8727232706774971183">Visa dina aviseringar</translation>
diff --git a/ash/components/strings/ash_components_strings_ta.xtb b/ash/components/strings/ash_components_strings_ta.xtb index 24323abd..a5a7a70 100644 --- a/ash/components/strings/ash_components_strings_ta.xtb +++ b/ash/components/strings/ash_components_strings_ta.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">பக்கத்தின் மேலே</translation> <translation id="6228457605945141550">ஒளிர்வைக் குறைக்கும்</translation> <translation id="6276708887952587684">பக்கத்தின் மூலத்தைக் காட்டும்</translation> +<translation id="6296325018964936845">முழுத்திரைப் பெரிதாக்கியை இயக்கும் அல்லது முடக்கும்.</translation> <translation id="6321940490215594447">வரலாற்றுப் பக்கத்தைத் திறக்கும்</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">வரியின் இறுதியில் உள்ள உரையைத் தேர்ந்தெடுக்கும்</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">தேடல் பயன்முறையிலிருந்து வெளியேறவும்</translation> <translation id="85690795166292698">இணைப்பை புதிய தாவலில் திறக்கும்</translation> <translation id="8609384513243082612">புதிய தாவலைத் திறக்கும்</translation> +<translation id="8642453848560580159">டாக் செய்யப்பட்ட பெரிதாக்கியை இயக்கும் அல்லது முடக்கும்.</translation> <translation id="8644639153978066712">கோப்புகள் பயன்பாட்டில் உள்ள மறைக்கப்பட்ட கோப்புகளைக் காண்பிக்கும்</translation> <translation id="8717459106217102612">முந்தைய சொல்லை அல்லது எழுத்தைத் தேர்ந்தெடுக்கும்</translation> <translation id="8727232706774971183">உங்கள் அறிவிப்புகளைக் காட்டும்</translation>
diff --git a/ash/components/strings/ash_components_strings_th.xtb b/ash/components/strings/ash_components_strings_th.xtb index 21e1af1e..c6b0e171 100644 --- a/ash/components/strings/ash_components_strings_th.xtb +++ b/ash/components/strings/ash_components_strings_th.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">เลื่อนหน้าขึ้น</translation> <translation id="6228457605945141550">ลดความสว่าง</translation> <translation id="6276708887952587684">ดูที่มาของหน้าเว็บ</translation> +<translation id="6296325018964936845">สลับแว่นขยายทั้งหน้าจอเป็นเปิดหรือปิด</translation> <translation id="6321940490215594447">เปิดหน้าประวัติการเข้าชม</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">เลือกข้อความไปจนสุดบรรทัด</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">ออกจากโหมดค้นหา</translation> <translation id="85690795166292698">เปิดลิงก์ในแท็บใหม่</translation> <translation id="8609384513243082612">เปิดแท็บใหม่</translation> +<translation id="8642453848560580159">สลับแว่นขยายหน้าจอบางส่วนเป็นเปิดหรือปิด</translation> <translation id="8644639153978066712">แสดงไฟล์ที่ซ่อนอยู่ในแอปไฟล์</translation> <translation id="8717459106217102612">เลือกคำหรืออักษรก่อนหน้า</translation> <translation id="8727232706774971183">ดูการแจ้งเตือน</translation>
diff --git a/ash/components/strings/ash_components_strings_tr.xtb b/ash/components/strings/ash_components_strings_tr.xtb index fbc3d90..d31aa7d 100644 --- a/ash/components/strings/ash_components_strings_tr.xtb +++ b/ash/components/strings/ash_components_strings_tr.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Bir sayfa yukarı</translation> <translation id="6228457605945141550">Parlaklığı azaltır</translation> <translation id="6276708887952587684">Sayfa kaynağını görüntüler</translation> +<translation id="6296325018964936845">Tam Ekran Büyüteç işlevini açar veya kapatır</translation> <translation id="6321940490215594447">Geçmiş sayfasını açar</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Metni satırın sonuna kadar seçer</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Arama modundan çık</translation> <translation id="85690795166292698">Bağlantıyı yeni bir sekmede açar</translation> <translation id="8609384513243082612">Yeni sekme açar</translation> +<translation id="8642453848560580159">Yerleştirilmiş Büyüteç işlevini açar veya kapatır</translation> <translation id="8644639153978066712">Dosyalar uygulamasındaki gizli dosyaları görüntüler</translation> <translation id="8717459106217102612">Önceki kelimeyi veya harfi seçer</translation> <translation id="8727232706774971183">Bildirimlerinizi gösterir</translation>
diff --git a/ash/components/strings/ash_components_strings_uk.xtb b/ash/components/strings/ash_components_strings_uk.xtb index c4d026fb..3890691 100644 --- a/ash/components/strings/ash_components_strings_uk.xtb +++ b/ash/components/strings/ash_components_strings_uk.xtb
@@ -123,6 +123,7 @@ <translation id="6185696379715117369">Сторінка вгору</translation> <translation id="6228457605945141550">Зменшити яскравість</translation> <translation id="6276708887952587684">Переглянути джерело сторінки</translation> +<translation id="6296325018964936845">Вмикає або вимикає лупу для всього екрана</translation> <translation id="6321940490215594447">Відкрити сторінку історії</translation> <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation> <translation id="6395172954772765143">Виділити текст до кінця рядка</translation> @@ -173,6 +174,7 @@ <translation id="8537650670971624753">Вийти з режиму пошуку</translation> <translation id="85690795166292698">Відкрити посилання в новій вкладці</translation> <translation id="8609384513243082612">Відкрити нову вкладку</translation> +<translation id="8642453848560580159">Вмикає або вимикає закріплену лупу</translation> <translation id="8644639153978066712">Показати сховані файли в додатку Файли</translation> <translation id="8717459106217102612">Виділити попереднє слово або літеру</translation> <translation id="8727232706774971183">Переглянути сповіщення</translation>
diff --git a/ash/components/touch_hud/DEPS b/ash/components/touch_hud/DEPS index 0042293b..87e7aff 100644 --- a/ash/components/touch_hud/DEPS +++ b/ash/components/touch_hud/DEPS
@@ -7,5 +7,6 @@ "+services/service_manager/public", "+services/ui/public", "+ui/aura", + "+ui/display", "+ui/views", ]
diff --git a/ash/components/touch_hud/manifest.json b/ash/components/touch_hud/manifest.json index 062eaeaf..ed4c8175 100644 --- a/ash/components/touch_hud/manifest.json +++ b/ash/components/touch_hud/manifest.json
@@ -4,7 +4,7 @@ "sandbox_type": "none", "interface_provider_specs": { "service_manager:connector": { - "provides": { "mash:launchable": [ "mash::mojom::Launchable" ] }, + "provides": { "mash:launchable": [ "mash.mojom.Launchable" ] }, "requires": { "*": [ "app" ], "service_manager": [ "service_manager:service_manager" ]
diff --git a/ash/components/touch_hud/touch_hud_application.cc b/ash/components/touch_hud/touch_hud_application.cc index 7f43902a..717d585 100644 --- a/ash/components/touch_hud/touch_hud_application.cc +++ b/ash/components/touch_hud/touch_hud_application.cc
@@ -15,6 +15,8 @@ #include "services/ui/public/cpp/property_type_converters.h" #include "services/ui/public/interfaces/window_manager_constants.mojom.h" #include "ui/aura/mus/property_converter.h" +#include "ui/display/display.h" +#include "ui/display/screen.h" #include "ui/views/mus/aura_init.h" #include "ui/views/mus/mus_client.h" #include "ui/views/mus/pointer_watcher_event_router.h" @@ -23,6 +25,7 @@ #include "ui/views/widget/widget_delegate.h" namespace touch_hud { +namespace { // TouchHudUI handles events on the widget of the touch-hud app. After // receiving touch events from PointerWatcher, it calls ash::TouchHudRenderer to @@ -31,7 +34,8 @@ public views::PointerWatcher { public: explicit TouchHudUI(views::Widget* widget) - : touch_hud_renderer_(new ash::TouchHudRenderer(widget)) { + : touch_hud_renderer_(std::make_unique<ash::TouchHudRenderer>(widget)) { + // Watches moves so the user can drag around a touch point. views::MusClient::Get()->pointer_watcher_event_router()->AddPointerWatcher( this, true /* want_moves */); } @@ -52,21 +56,31 @@ void OnPointerEventObserved(const ui::PointerEvent& event, const gfx::Point& location_in_screen, gfx::NativeView target) override { - if (event.IsTouchPointerEvent()) - touch_hud_renderer_->HandleTouchEvent(event); + if (!event.IsTouchPointerEvent()) + return; + + // Ignore taps on other displays. + if (!GetWidget()->GetWindowBoundsInScreen().Contains(location_in_screen)) + return; + + touch_hud_renderer_->HandleTouchEvent(event); } - // TODO(jamescook): Don't leak this. - ash::TouchHudRenderer* touch_hud_renderer_; + std::unique_ptr<ash::TouchHudRenderer> touch_hud_renderer_; DISALLOW_COPY_AND_ASSIGN(TouchHudUI); }; +} // namespace + TouchHudApplication::TouchHudApplication() : binding_(this) { registry_.AddInterface<mash::mojom::Launchable>(base::BindRepeating( &TouchHudApplication::Create, base::Unretained(this))); } -TouchHudApplication::~TouchHudApplication() = default; + +TouchHudApplication::~TouchHudApplication() { + display::Screen::GetScreen()->RemoveObserver(this); +} void TouchHudApplication::OnStart() { const bool register_path_provider = running_standalone_; @@ -78,6 +92,7 @@ context()->QuitNow(); return; } + display::Screen::GetScreen()->AddObserver(this); Launch(mash::mojom::kWindow, mash::mojom::LaunchMode::DEFAULT); } @@ -89,25 +104,43 @@ } void TouchHudApplication::Launch(uint32_t what, mash::mojom::LaunchMode how) { - if (!widget_) { - widget_ = new views::Widget; - views::Widget::InitParams params( - views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); - params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; - params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; - params.accept_events = false; - params.delegate = new TouchHudUI(widget_); - params.mus_properties[ui::mojom::WindowManager::kContainerId_InitProperty] = - mojo::ConvertTo<std::vector<uint8_t>>( - static_cast<int32_t>(ash::kShellWindowId_OverlayContainer)); - params.show_state = ui::SHOW_STATE_FULLSCREEN; - widget_->Init(params); - widget_->Show(); - } else { - widget_->Activate(); + for (const display::Display& display : + display::Screen::GetScreen()->GetAllDisplays()) { + CreateWidgetForDisplay(display.id()); } } +void TouchHudApplication::OnDisplayAdded(const display::Display& new_display) { + CreateWidgetForDisplay(new_display.id()); +} + +void TouchHudApplication::OnDisplayRemoved( + const display::Display& old_display) { + // Deletes the widget. + display_id_to_widget_.erase(old_display.id()); +} + +void TouchHudApplication::CreateWidgetForDisplay(int64_t display_id) { + std::unique_ptr<views::Widget> widget = std::make_unique<views::Widget>(); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; + params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; + params.accept_events = false; + params.delegate = new TouchHudUI(widget.get()); + params.mus_properties[ui::mojom::WindowManager::kContainerId_InitProperty] = + mojo::ConvertTo<std::vector<uint8_t>>( + static_cast<int32_t>(ash::kShellWindowId_OverlayContainer)); + params.mus_properties[ui::mojom::WindowManager::kDisplayId_InitProperty] = + mojo::ConvertTo<std::vector<uint8_t>>(display_id); + params.show_state = ui::SHOW_STATE_FULLSCREEN; + params.name = "TouchHud"; + widget->Init(params); + widget->Show(); + display_id_to_widget_[display_id] = std::move(widget); +} + void TouchHudApplication::Create(mash::mojom::LaunchableRequest request) { binding_.Close(); binding_.Bind(std::move(request));
diff --git a/ash/components/touch_hud/touch_hud_application.h b/ash/components/touch_hud/touch_hud_application.h index d199f69..3c539dd 100644 --- a/ash/components/touch_hud/touch_hud_application.h +++ b/ash/components/touch_hud/touch_hud_application.h
@@ -5,11 +5,17 @@ #ifndef ASH_COMPONENTS_TOUCH_HUD_TOUCH_HUD_APPLICATION_H_ #define ASH_COMPONENTS_TOUCH_HUD_TOUCH_HUD_APPLICATION_H_ +#include <stdint.h> + +#include <map> +#include <memory> + #include "base/macros.h" #include "mash/public/mojom/launchable.mojom.h" #include "mojo/public/cpp/bindings/binding.h" #include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/service.h" +#include "ui/display/display_observer.h" namespace views { class AuraInit; @@ -18,8 +24,11 @@ namespace touch_hud { +// Application that paints touch tap points as circles. Creates a fullscreen +// transparent widget on each display to draw the taps. class TouchHudApplication : public service_manager::Service, - public mash::mojom::Launchable { + public mash::mojom::Launchable, + public display::DisplayObserver { public: TouchHudApplication(); ~TouchHudApplication() override; @@ -36,11 +45,20 @@ // mojom::Launchable: void Launch(uint32_t what, mash::mojom::LaunchMode how) override; + // display::DisplayObserver: + void OnDisplayAdded(const display::Display& new_display) override; + void OnDisplayRemoved(const display::Display& old_display) override; + + // Creates the touch HUD widget for a display. + void CreateWidgetForDisplay(int64_t display_id); + void Create(mash::mojom::LaunchableRequest request); service_manager::BinderRegistry registry_; mojo::Binding<mash::mojom::Launchable> binding_; - views::Widget* widget_ = nullptr; + + // Maps display::Display::id() to the touch HUD widget for that display. + std::map<int64_t, std::unique_ptr<views::Widget>> display_id_to_widget_; std::unique_ptr<views::AuraInit> aura_init_;
diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc index 932818a8..db50e497 100644 --- a/ash/display/display_manager_unittest.cc +++ b/ash/display/display_manager_unittest.cc
@@ -3376,8 +3376,97 @@ DISALLOW_COPY_AND_ASSIGN(FontTestHelper); }; +bool IsTextSubpixelPositioningEnabled() { + gfx::FontRenderParams params = + gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr); + return params.subpixel_positioning; +} + +gfx::FontRenderParams::Hinting GetFontHintingParams() { + gfx::FontRenderParams params = + gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr); + return params.hinting; +} + } // namespace +using DisplayManagerFontTest = testing::Test; + +TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100Internal) { + FontTestHelper helper(1.0f, FontTestHelper::INTERNAL); + ASSERT_DOUBLE_EQ( + 1.0f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); + EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); +} + +TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200Internal) { + FontTestHelper helper(2.0f, FontTestHelper::INTERNAL); + ASSERT_DOUBLE_EQ( + 2.0f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); + EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); + + display::test::DisplayManagerTestApi(helper.display_manager()) + .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(), + 2.0f); + + ASSERT_DOUBLE_EQ( + 1.0f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); + EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); +} + +TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf100External) { + FontTestHelper helper(1.0f, FontTestHelper::EXTERNAL); + ASSERT_DOUBLE_EQ( + 1.0f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); + EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); +} + +TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf125External) { + FontTestHelper helper(1.25f, FontTestHelper::EXTERNAL); + ASSERT_DOUBLE_EQ( + 1.25f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); + EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); +} + +TEST_F(DisplayManagerFontTest, TextSubpixelPositioningWithDsf200External) { + FontTestHelper helper(2.0f, FontTestHelper::EXTERNAL); + ASSERT_DOUBLE_EQ( + 2.0f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); + EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); +} + +TEST_F(DisplayManagerFontTest, + TextSubpixelPositioningWithDsf125InternalWithScaling) { + FontTestHelper helper(1.25f, FontTestHelper::INTERNAL); + ASSERT_DOUBLE_EQ( + 1.0f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_FALSE(IsTextSubpixelPositioningEnabled()); + EXPECT_NE(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); + + display::test::DisplayManagerTestApi(helper.display_manager()) + .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(), + 0.8f); + + ASSERT_DOUBLE_EQ( + 1.25f, + display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); + EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); + EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); +} + TEST_F(DisplayManagerTest, CheckInitializationOfRotationProperty) { int64_t id = display_manager()->GetDisplayAt(0).id(); display_manager()->RegisterDisplayProperty(
diff --git a/ash/frame/caption_buttons/frame_back_button.cc b/ash/frame/caption_buttons/frame_back_button.cc index e513120..c772dc4 100644 --- a/ash/frame/caption_buttons/frame_back_button.cc +++ b/ash/frame/caption_buttons/frame_back_button.cc
@@ -4,8 +4,8 @@ #include "ash/frame/caption_buttons/frame_back_button.h" -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_caption_button.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h" #include "ui/aura/window.h"
diff --git a/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc b/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc index 59e84d62..17deb81 100644 --- a/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc +++ b/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
@@ -4,8 +4,8 @@ #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_caption_button.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/frame/caption_buttons/frame_size_button_unittest.cc b/ash/frame/caption_buttons/frame_size_button_unittest.cc index ad9e0e8a..2e3e050 100644 --- a/ash/frame/caption_buttons/frame_size_button_unittest.cc +++ b/ash/frame/caption_buttons/frame_size_button_unittest.cc
@@ -4,9 +4,9 @@ #include "ash/frame/caption_buttons/frame_size_button.h" -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_caption_button.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/vector_icons/vector_icons.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h"
diff --git a/ash/frame/custom_frame_header.cc b/ash/frame/custom_frame_header.cc index 89b710d..2f656c33 100644 --- a/ash/frame/custom_frame_header.cc +++ b/ash/frame/custom_frame_header.cc
@@ -4,10 +4,9 @@ #include "ash/frame/custom_frame_header.h" -#include "ash/ash_layout_constants.h" -#include "ash/frame/caption_buttons/frame_caption_button.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" #include "ash/frame/frame_header_util.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/vector_icons/vector_icons.h" #include "base/logging.h" #include "third_party/skia/include/core/SkCanvas.h" @@ -15,11 +14,9 @@ #include "third_party/skia/include/core/SkPaint.h" #include "third_party/skia/include/core/SkPath.h" #include "ui/gfx/canvas.h" -#include "ui/gfx/font_list.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/scoped_canvas.h" -#include "ui/gfx/skia_util.h" #include "ui/views/view.h" #include "ui/views/widget/native_widget_aura.h" #include "ui/views/widget/widget.h" @@ -33,9 +30,6 @@ const SkColor kNormalWindowTitleTextColor = SkColorSetRGB(40, 40, 40); const SkColor kIncognitoWindowTitleTextColor = SK_ColorWHITE; -// Duration of crossfade animation for activating and deactivating frame. -const int kActivationCrossfadeDurationMs = 200; - // Creates a path with rounded top corners. SkPath MakeRoundRectPath(const gfx::Rect& bounds, int top_left_corner_radius, @@ -137,163 +131,49 @@ DCHECK(appearance_provider); DCHECK(caption_button_container); - view_ = view; + set_view(view); appearance_provider_ = appearance_provider; is_incognito_ = incognito; - caption_button_container_ = caption_button_container; - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_MINIMIZE, - kWindowControlMinimizeIcon); - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_CLOSE, - kWindowControlCloseIcon); - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_LEFT_SNAPPED, - kWindowControlLeftSnappedIcon); - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_RIGHT_SNAPPED, - kWindowControlRightSnappedIcon); -} - -int CustomFrameHeader::GetMinimumHeaderWidth() const { - // Ensure we have enough space for the window icon and buttons. We allow - // the title string to collapse to zero width. - return GetTitleBounds().x() + - caption_button_container_->GetMinimumSize().width(); -} - -void CustomFrameHeader::PaintHeader(gfx::Canvas* canvas, Mode mode) { - Mode old_mode = mode_; - mode_ = mode; - - if (mode_ != old_mode) { - if (!initial_paint_ && FrameHeaderUtil::CanAnimateActivation(GetWidget())) { - activation_animation_.SetSlideDuration(kActivationCrossfadeDurationMs); - if (mode_ == MODE_ACTIVE) - activation_animation_.Show(); - else - activation_animation_.Hide(); - } else { - if (mode_ == MODE_ACTIVE) - activation_animation_.Reset(1); - else - activation_animation_.Reset(0); - } - initial_paint_ = false; - } - - PaintFrameImages(canvas, false); - PaintFrameImages(canvas, true); - - if (GetWidget()->widget_delegate() && - GetWidget()->widget_delegate()->ShouldShowWindowTitle()) { - PaintTitleBar(canvas); - } -} - -void CustomFrameHeader::LayoutHeader() { - LayoutHeaderInternal(); - // Default to the header height; owning code may override via - // SetHeaderHeightForPainting(). - painted_height_ = GetHeaderHeight(); -} - -int CustomFrameHeader::GetHeaderHeight() const { - return caption_button_container_->height(); -} - -int CustomFrameHeader::GetHeaderHeightForPainting() const { - return painted_height_; -} - -void CustomFrameHeader::SetHeaderHeightForPainting(int height) { - painted_height_ = height; -} - -void CustomFrameHeader::SchedulePaintForTitle() { - view_->SchedulePaintInRect(GetTitleBounds()); -} - -void CustomFrameHeader::SetPaintAsActive(bool paint_as_active) { - SkColor frame_color = - appearance_provider_->GetFrameHeaderColor(paint_as_active); - caption_button_container_->SetPaintAsActive(paint_as_active); - caption_button_container_->SetBackgroundColor(frame_color); - if (back_button_) { - back_button_->set_paint_as_active(paint_as_active); - back_button_->SetBackgroundColor(frame_color); - } -} - -void CustomFrameHeader::OnShowStateChanged(ui::WindowShowState show_state) { - if (show_state == ui::SHOW_STATE_MINIMIZED) - return; - - // Call LayoutHeaderInternal() instead of LayoutHeader() here because - // |show_state| shouldn't cause |painted_height_| change. - LayoutHeaderInternal(); -} - -void CustomFrameHeader::SetLeftHeaderView(views::View* left_header_view) { - window_icon_ = left_header_view; -} - -void CustomFrameHeader::SetBackButton(FrameCaptionButton* back_button) { - back_button_ = back_button; -} - -FrameCaptionButton* CustomFrameHeader::GetBackButton() const { - return back_button_; -} - -void CustomFrameHeader::SetFrameColors(SkColor active_frame_color, - SkColor inactive_frame_color) { - view_->SchedulePaintInRect(GetPaintedBounds()); + SetCaptionButtonContainer(caption_button_container); } /////////////////////////////////////////////////////////////////////////////// -// gfx::AnimationDelegate overrides: +// CustomFrameHeader, protected: -void CustomFrameHeader::AnimationProgressed(const gfx::Animation* animation) { - view_->SchedulePaintInRect(GetPaintedBounds()); +void CustomFrameHeader::DoPaintHeader(gfx::Canvas* canvas) { + PaintFrameImages(canvas, false /* active */); + PaintFrameImages(canvas, true /* active */); + PaintTitleBar(canvas); +} + +AshLayoutSize CustomFrameHeader::GetButtonLayoutSize() const { + return GetWidget()->IsMaximized() || GetWidget()->IsFullscreen() || + appearance_provider_->IsTabletMode() + ? AshLayoutSize::kBrowserCaptionMaximized + : AshLayoutSize::kBrowserCaptionRestored; +} + +SkColor CustomFrameHeader::GetTitleColor() const { + return is_incognito_ ? kIncognitoWindowTitleTextColor + : kNormalWindowTitleTextColor; +} + +SkColor CustomFrameHeader::GetCurrentFrameColor() const { + return appearance_provider_->GetFrameHeaderColor(mode() == MODE_ACTIVE); +} + +void CustomFrameHeader::DoSetFrameColors(SkColor active_frame_color, + SkColor inactive_frame_color) { + UpdateCaptionButtonColors(); + view()->SchedulePaint(); } /////////////////////////////////////////////////////////////////////////////// // CustomFrameHeader, private: -void CustomFrameHeader::LayoutHeaderInternal() { - caption_button_container_->SetButtonImage( - CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, - GetWidget()->IsMaximized() || GetWidget()->IsFullscreen() - ? kWindowControlRestoreIcon - : kWindowControlMaximizeIcon); - - const AshLayoutSize button_size_type = - GetWidget()->IsMaximized() || GetWidget()->IsFullscreen() || - appearance_provider_->IsTabletMode() - ? AshLayoutSize::kBrowserCaptionMaximized - : AshLayoutSize::kBrowserCaptionRestored; - caption_button_container_->SetButtonSize(GetAshLayoutSize(button_size_type)); - - const gfx::Size caption_button_container_size = - caption_button_container_->GetPreferredSize(); - caption_button_container_->SetBounds( - view_->width() - caption_button_container_size.width(), 0, - caption_button_container_size.width(), - caption_button_container_size.height()); - - caption_button_container_->Layout(); - - if (!window_icon_) - return; - - // Vertically center the window icon with respect to the caption button - // container. - const gfx::Size icon_size(window_icon_->GetPreferredSize()); - const int icon_offset_y = (GetHeaderHeight() - icon_size.height()) / 2; - window_icon_->SetBounds(FrameHeaderUtil::GetLeftViewXInset(), icon_offset_y, - icon_size.width(), icon_size.height()); -} - void CustomFrameHeader::PaintFrameImages(gfx::Canvas* canvas, bool active) { - int alpha = activation_animation_.CurrentValueBetween(0, 0xFF); + int alpha = activation_animation().CurrentValueBetween(0, 0xFF); if (!active) alpha = 0xFF - alpha; @@ -318,29 +198,4 @@ FrameHeaderUtil::GetThemeBackgroundXInset()); } -void CustomFrameHeader::PaintTitleBar(gfx::Canvas* canvas) { - // The window icon is painted by its own views::View. - canvas->DrawStringRectWithFlags( - GetWidget()->widget_delegate()->GetWindowTitle(), - views::NativeWidgetAura::GetWindowTitleFontList(), - is_incognito_ ? kIncognitoWindowTitleTextColor - : kNormalWindowTitleTextColor, - view_->GetMirroredRect(GetTitleBounds()), - gfx::Canvas::NO_SUBPIXEL_RENDERING); -} - -gfx::Rect CustomFrameHeader::GetPaintedBounds() const { - return gfx::Rect(view_->width(), painted_height_); -} - -gfx::Rect CustomFrameHeader::GetTitleBounds() const { - views::View* left_view = window_icon_ ? window_icon_ : back_button_; - return FrameHeaderUtil::GetAvailableTitleBounds( - left_view, caption_button_container_, GetHeaderHeight()); -} - -views::Widget* CustomFrameHeader::GetWidget() { - return view_->GetWidget(); -} - } // namespace ash
diff --git a/ash/frame/custom_frame_header.h b/ash/frame/custom_frame_header.h index 561d3732..24b3806 100644 --- a/ash/frame/custom_frame_header.h +++ b/ash/frame/custom_frame_header.h
@@ -9,28 +9,13 @@ #include "ash/frame/frame_header.h" #include "base/callback.h" #include "base/macros.h" -#include "ui/gfx/animation/animation_delegate.h" -#include "ui/gfx/animation/slide_animation.h" - -namespace gfx { -class ImageSkia; -class Rect; -} // namespace gfx - -namespace views { -class View; -class Widget; -} // namespace views +#include "ui/gfx/image/image_skia.h" namespace ash { -class FrameCaptionButton; -class FrameCaptionButtonContainerView; - // Helper class for drawing a custom frame (such as for a themed Chrome Browser // frame). -class ASH_EXPORT CustomFrameHeader : public FrameHeader, - public gfx::AnimationDelegate { +class ASH_EXPORT CustomFrameHeader : public FrameHeader { public: class AppearanceProvider { public: @@ -52,67 +37,25 @@ bool incognito, FrameCaptionButtonContainerView* caption_button_container); - // FrameHeader overrides: - int GetMinimumHeaderWidth() const override; - void PaintHeader(gfx::Canvas* canvas, Mode mode) override; - void LayoutHeader() override; - int GetHeaderHeight() const override; - int GetHeaderHeightForPainting() const override; - void SetHeaderHeightForPainting(int height) override; - void SchedulePaintForTitle() override; - void SetPaintAsActive(bool paint_as_active) override; - void OnShowStateChanged(ui::WindowShowState show_state) override; - void SetLeftHeaderView(views::View* left_header_view) override; - void SetBackButton(FrameCaptionButton* back_button) override; - FrameCaptionButton* GetBackButton() const override; - void SetFrameColors(SkColor active_frame_color, - SkColor inactive_frame_color) override; + protected: + // FrameHeader: + void DoPaintHeader(gfx::Canvas* canvas) override; + void DoSetFrameColors(SkColor active_frame_color, + SkColor inactive_frame_color) override; + AshLayoutSize GetButtonLayoutSize() const override; + SkColor GetTitleColor() const override; + SkColor GetCurrentFrameColor() const override; private: - // gfx::AnimationDelegate override: - void AnimationProgressed(const gfx::Animation* animation) override; - - // Does the actual work of layouting header. - void LayoutHeaderInternal(); - // Paints the frame image for the |active| state based on the current value of // the activation animation. void PaintFrameImages(gfx::Canvas* canvas, bool active); - // Paints the title bar, primarily the title string. - void PaintTitleBar(gfx::Canvas* canvas); - - // Returns bounds of the region in |view_| which is painted with the header - // images. The region is assumed to start at the top left corner of |view_| - // and to have the same width as |view_|. - gfx::Rect GetPaintedBounds() const; - - // Returns the bounds for the title. - gfx::Rect GetTitleBounds() const; - - views::Widget* GetWidget(); - - // The view that owns |this|, into which the header is painted. - views::View* view_ = nullptr; - AppearanceProvider* appearance_provider_ = nullptr; // Whether the header is for an incognito browser window. bool is_incognito_ = false; - views::View* window_icon_ = nullptr; - FrameCaptionButton* back_button_ = nullptr; - FrameCaptionButtonContainerView* caption_button_container_ = nullptr; - int painted_height_ = 0; - - // Whether the header is painted for the first time. - bool initial_paint_ = true; - - // Whether the header should be painted as active. - Mode mode_ = MODE_INACTIVE; - - gfx::SlideAnimation activation_animation_{this}; - DISALLOW_COPY_AND_ASSIGN(CustomFrameHeader); };
diff --git a/ash/frame/custom_frame_view_ash_unittest.cc b/ash/frame/custom_frame_view_ash_unittest.cc index c7175f3..64d5933 100644 --- a/ash/frame/custom_frame_view_ash_unittest.cc +++ b/ash/frame/custom_frame_view_ash_unittest.cc
@@ -7,11 +7,11 @@ #include <memory> #include "ash/accelerators/accelerator_controller.h" -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_caption_button.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" #include "ash/frame/header_view.h" #include "ash/frame/wide_frame_view.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/immersive/immersive_fullscreen_controller.h" #include "ash/public/cpp/vector_icons/vector_icons.h" #include "ash/public/cpp/window_properties.h" @@ -217,7 +217,8 @@ // new visibility. TEST_F(CustomFrameViewAshTest, HeaderViewNotifiedOfChildSizeChange) { TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate; - std::unique_ptr<views::Widget> widget = CreateTestWidget(delegate); + std::unique_ptr<views::Widget> widget = CreateTestWidget( + delegate, kShellWindowId_DefaultContainer, gfx::Rect(0, 0, 400, 500)); const gfx::Rect initial = delegate->GetFrameCaptionButtonContainerViewBounds(); @@ -336,7 +337,8 @@ TEST_F(CustomFrameViewAshTest, HeaderVisibilityInOverviewMode) { auto* delegate = new CustomFrameTestWidgetDelegate(); - std::unique_ptr<views::Widget> widget = CreateTestWidget(delegate); + std::unique_ptr<views::Widget> widget = CreateTestWidget( + delegate, kShellWindowId_DefaultContainer, gfx::Rect(0, 0, 400, 500)); // Verify the header is not painted in overview mode and painted when not in // overview mode. @@ -465,7 +467,8 @@ TestButtonModel* model_ptr = model.get(); auto* delegate = new CustomFrameTestWidgetDelegate(); - std::unique_ptr<views::Widget> widget = CreateTestWidget(delegate); + std::unique_ptr<views::Widget> widget = CreateTestWidget( + delegate, kShellWindowId_DefaultContainer, gfx::Rect(0, 0, 400, 500)); ui::Accelerator accelerator_back_press(ui::VKEY_BROWSER_BACK, ui::EF_NONE); accelerator_back_press.set_key_state(ui::Accelerator::KeyState::PRESSED); @@ -491,7 +494,8 @@ // Back button is disabled, so clicking on it should not should // generate back key sequence. ui::test::EventGenerator& generator = GetEventGenerator(); - generator.MoveMouseTo(header_view->GetBoundsInScreen().CenterPoint()); + generator.MoveMouseTo( + header_view->GetBackButton()->GetBoundsInScreen().CenterPoint()); generator.ClickLeftButton(); EXPECT_EQ(0u, target_back_press.count()); EXPECT_EQ(0u, target_back_release.count()); @@ -626,7 +630,8 @@ TEST_F(CustomFrameViewAshTest, WideFrame) { auto* delegate = new CustomFrameTestWidgetDelegate(); - std::unique_ptr<views::Widget> widget = CreateTestWidget(delegate); + std::unique_ptr<views::Widget> widget = CreateTestWidget( + delegate, kShellWindowId_DefaultContainer, gfx::Rect(0, 0, 400, 500)); CustomFrameViewAsh* custom_frame_view = delegate->custom_frame_view(); HeaderView* header_view =
diff --git a/ash/frame/default_frame_header.cc b/ash/frame/default_frame_header.cc index e18a32b..8f69390 100644 --- a/ash/frame/default_frame_header.cc +++ b/ash/frame/default_frame_header.cc
@@ -4,26 +4,18 @@ #include "ash/frame/default_frame_header.h" -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/caption_button_model.h" -#include "ash/frame/caption_buttons/frame_caption_button.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" #include "ash/frame/frame_header_util.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/vector_icons/vector_icons.h" #include "ash/resources/vector_icons/vector_icons.h" -#include "ash/shell.h" -#include "ash/wm/tablet_mode/tablet_mode_controller.h" -#include "base/debug/leak_annotations.h" #include "base/logging.h" // DCHECK #include "third_party/skia/include/core/SkPath.h" -#include "ui/gfx/animation/slide_animation.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_utils.h" -#include "ui/gfx/font_list.h" #include "ui/gfx/geometry/rect.h" -#include "ui/gfx/image/image.h" #include "ui/gfx/scoped_canvas.h" -#include "ui/gfx/skia_util.h" #include "ui/views/view.h" #include "ui/views/widget/native_widget_aura.h" #include "ui/views/widget/widget.h" @@ -36,8 +28,6 @@ // Color for the window title text. const SkColor kTitleTextColor = SkColorSetRGB(40, 40, 40); const SkColor kLightTitleTextColor = SK_ColorWHITE; -// Duration of crossfade animation for activating and deactivating frame. -const int kActivationCrossfadeDurationMs = 200; // Tiles an image into an area, rounding the top corners. void TileRoundRect(gfx::Canvas* canvas, @@ -67,161 +57,60 @@ // DefaultFrameHeader, public: DefaultFrameHeader::DefaultFrameHeader( - views::Widget* frame, views::View* header_view, FrameCaptionButtonContainerView* caption_button_container) - : frame_(frame), - view_(header_view), - back_button_(nullptr), - left_header_view_(nullptr), - active_frame_color_(GetDefaultFrameColor()), - inactive_frame_color_(GetDefaultFrameColor()), - caption_button_container_(caption_button_container), - painted_height_(0), - mode_(MODE_INACTIVE), - initial_paint_(true), - activation_animation_(new gfx::SlideAnimation(this)) { - DCHECK(frame); + : active_frame_color_(GetDefaultFrameColor()), + inactive_frame_color_(GetDefaultFrameColor()) { DCHECK(header_view); DCHECK(caption_button_container); - caption_button_container_->SetButtonSize( - GetAshLayoutSize(AshLayoutSize::kNonBrowserCaption)); - UpdateAllButtonImages(); + set_view(header_view); + SetCaptionButtonContainer(caption_button_container); } DefaultFrameHeader::~DefaultFrameHeader() = default; -int DefaultFrameHeader::GetMinimumHeaderWidth() const { - // Ensure we have enough space for the window icon and buttons. We allow - // the title string to collapse to zero width. - return GetAvailableTitleBounds().x() + - caption_button_container_->GetMinimumSize().width(); +void DefaultFrameHeader::SetThemeColor(SkColor theme_color) { + set_button_color_mode(FrameCaptionButton::ColorMode::kThemed); + SetFrameColorsImpl(theme_color, theme_color); } -void DefaultFrameHeader::PaintHeader(gfx::Canvas* canvas, Mode mode) { - Mode old_mode = mode_; - mode_ = mode; +/////////////////////////////////////////////////////////////////////////////// +// DefaultFrameHeader, protected: - if (mode_ != old_mode) { - UpdateAllButtonImages(); - if (!initial_paint_ && FrameHeaderUtil::CanAnimateActivation(frame_)) { - activation_animation_->SetSlideDuration(kActivationCrossfadeDurationMs); - if (mode_ == MODE_ACTIVE) - activation_animation_->Show(); - else - activation_animation_->Hide(); - } else { - if (mode_ == MODE_ACTIVE) - activation_animation_->Reset(1); - else - activation_animation_->Reset(0); - } - initial_paint_ = false; - } - - int corner_radius = (frame_->IsMaximized() || frame_->IsFullscreen()) - ? 0 - : FrameHeaderUtil::GetTopCornerRadiusWhenRestored(); +void DefaultFrameHeader::DoPaintHeader(gfx::Canvas* canvas) { + int corner_radius = + (GetWidget()->IsMaximized() || GetWidget()->IsFullscreen()) + ? 0 + : FrameHeaderUtil::GetTopCornerRadiusWhenRestored(); cc::PaintFlags flags; - int active_alpha = activation_animation_->CurrentValueBetween(0, 255); + int active_alpha = activation_animation().CurrentValueBetween(0, 255); flags.setColor(color_utils::AlphaBlend(active_frame_color_, inactive_frame_color_, active_alpha)); flags.setAntiAlias(true); - TileRoundRect(canvas, flags, GetLocalBounds(), corner_radius); + TileRoundRect(canvas, flags, GetPaintedBounds(), corner_radius); - if (frame_->widget_delegate()->ShouldShowWindowTitle() && !GetTitle().empty()) - PaintTitleBar(canvas); + PaintTitleBar(canvas); } -void DefaultFrameHeader::LayoutHeader() { - caption_button_container_->SetBackgroundColor(GetCurrentFrameColor()); - caption_button_container_->SetColorMode(button_color_mode_); - UpdateSizeButtonImages(); - - gfx::Size caption_button_container_size = - caption_button_container_->GetPreferredSize(); - caption_button_container_->SetBounds( - view_->width() - caption_button_container_size.width(), 0, - caption_button_container_size.width(), - caption_button_container_size.height()); - - int origin = 0; - if (back_button_) { - back_button_->SetBackgroundColor(GetCurrentFrameColor()); - back_button_->SetColorMode(button_color_mode_); - gfx::Size size = back_button_->GetPreferredSize(); - back_button_->SetBounds(0, 0, size.width(), - caption_button_container_size.height()); - origin = back_button_->bounds().right(); - } - - if (left_header_view_) { - // Vertically center the left header view with respect to the caption button - // container. - // Floor when computing the center of |caption_button_container_|. - gfx::Size size = left_header_view_->GetPreferredSize(); - int icon_offset_y = - caption_button_container_->height() / 2 - size.height() / 2; - left_header_view_->SetBounds(FrameHeaderUtil::GetLeftViewXInset() + origin, - icon_offset_y, size.width(), size.height()); - } - - // The header/content separator line overlays the caption buttons. - SetHeaderHeightForPainting(caption_button_container_->height()); -} - -int DefaultFrameHeader::GetHeaderHeight() const { - return caption_button_container_->height(); -} - -int DefaultFrameHeader::GetHeaderHeightForPainting() const { - return painted_height_; -} - -void DefaultFrameHeader::SetHeaderHeightForPainting(int height) { - painted_height_ = height; -} - -void DefaultFrameHeader::SchedulePaintForTitle() { - view_->SchedulePaintInRect(GetAvailableTitleBounds()); -} - -void DefaultFrameHeader::SetPaintAsActive(bool paint_as_active) { - caption_button_container_->SetPaintAsActive(paint_as_active); - if (back_button_) - back_button_->set_paint_as_active(paint_as_active); -} - -void DefaultFrameHeader::OnShowStateChanged(ui::WindowShowState show_state) { - if (show_state == ui::SHOW_STATE_MINIMIZED) - return; - LayoutHeader(); -} - -void DefaultFrameHeader::SetLeftHeaderView(views::View* left_header_view) { - left_header_view_ = left_header_view; -} - -void DefaultFrameHeader::SetBackButton(FrameCaptionButton* back_button) { - back_button_ = back_button; -} - -FrameCaptionButton* DefaultFrameHeader::GetBackButton() const { - return back_button_; -} - -void DefaultFrameHeader::SetFrameColors(SkColor active_frame_color, - SkColor inactive_frame_color) { - button_color_mode_ = FrameCaptionButton::ColorMode::kDefault; +void DefaultFrameHeader::DoSetFrameColors(SkColor active_frame_color, + SkColor inactive_frame_color) { + set_button_color_mode(FrameCaptionButton::ColorMode::kDefault); SetFrameColorsImpl(active_frame_color, inactive_frame_color); } -void DefaultFrameHeader::SetThemeColor(SkColor theme_color) { - button_color_mode_ = FrameCaptionButton::ColorMode::kThemed; - SetFrameColorsImpl(theme_color, theme_color); +AshLayoutSize DefaultFrameHeader::GetButtonLayoutSize() const { + return AshLayoutSize::kNonBrowserCaption; } +SkColor DefaultFrameHeader::GetTitleColor() const { + return color_utils::IsDark(GetCurrentFrameColor()) ? kLightTitleTextColor + : kTitleTextColor; +} + +/////////////////////////////////////////////////////////////////////////////// +// DefaultFrameHeader, private: + void DefaultFrameHeader::SetFrameColorsImpl(SkColor active_frame_color, SkColor inactive_frame_color) { bool updated = false; @@ -235,102 +124,13 @@ } if (updated) { - UpdateAllButtonImages(); - view_->SchedulePaint(); + UpdateCaptionButtonColors(); + view()->SchedulePaint(); } } -SkColor DefaultFrameHeader::GetTitleColor() const { - return color_utils::IsDark(GetCurrentFrameColor()) ? kLightTitleTextColor - : kTitleTextColor; -} - -// static -SkColor DefaultFrameHeader::GetDefaultFrameColor() { - return SkColorSetRGB(0xFD, 0xFE, 0xFF); -} - -/////////////////////////////////////////////////////////////////////////////// -// gfx::AnimationDelegate overrides: - -void DefaultFrameHeader::AnimationProgressed(const gfx::Animation* animation) { - view_->SchedulePaintInRect(GetLocalBounds()); -} - -/////////////////////////////////////////////////////////////////////////////// -// DefaultFrameHeader, private: - -void DefaultFrameHeader::PaintTitleBar(gfx::Canvas* canvas) { - // The window icon is painted by its own views::View. - gfx::Rect title_bounds = GetAvailableTitleBounds(); - title_bounds.set_x(view_->GetMirroredXForRect(title_bounds)); - canvas->DrawStringRect(GetTitle(), - views::NativeWidgetAura::GetWindowTitleFontList(), - GetTitleColor(), title_bounds); -} - -void DefaultFrameHeader::UpdateAllButtonImages() { - caption_button_container_->SetBackgroundColor(GetCurrentFrameColor()); - caption_button_container_->SetColorMode(button_color_mode_); - if (back_button_) { - back_button_->SetBackgroundColor(GetCurrentFrameColor()); - back_button_->SetColorMode(button_color_mode_); - back_button_->SetImage(CAPTION_BUTTON_ICON_BACK, - FrameCaptionButton::ANIMATE_NO, - kWindowControlBackIcon); - } - - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_MINIMIZE, - kWindowControlMinimizeIcon); - - UpdateSizeButtonImages(); - - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_MENU, - kWindowControlMenuIcon); - - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_CLOSE, - kWindowControlCloseIcon); - - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_LEFT_SNAPPED, - kWindowControlLeftSnappedIcon); - - caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_RIGHT_SNAPPED, - kWindowControlRightSnappedIcon); -} - -void DefaultFrameHeader::UpdateSizeButtonImages() { - // When |frame_| minimized, avoid tablet mode toggling to update caption - // buttons as it would cause mismatch beteen window state and size button. - if (frame_->IsMinimized()) - return; - bool use_zoom_icons = caption_button_container_->model()->InZoomMode(); - const gfx::VectorIcon& restore_icon = - use_zoom_icons ? kWindowControlDezoomIcon : kWindowControlRestoreIcon; - const gfx::VectorIcon& maximize_icon = - use_zoom_icons ? kWindowControlZoomIcon : kWindowControlMaximizeIcon; - const gfx::VectorIcon& icon = frame_->IsMaximized() || frame_->IsFullscreen() - ? restore_icon - : maximize_icon; - caption_button_container_->SetButtonImage( - CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, icon); -} - -gfx::Rect DefaultFrameHeader::GetLocalBounds() const { - return gfx::Rect(view_->width(), painted_height_); -} - -gfx::Rect DefaultFrameHeader::GetAvailableTitleBounds() const { - views::View* left_view = left_header_view_ ? left_header_view_ : back_button_; - return FrameHeaderUtil::GetAvailableTitleBounds( - left_view, caption_button_container_, GetHeaderHeight()); -} - -base::string16 DefaultFrameHeader::GetTitle() const { - return frame_->widget_delegate()->GetWindowTitle(); -} - SkColor DefaultFrameHeader::GetCurrentFrameColor() const { - return mode_ == MODE_ACTIVE ? active_frame_color_ : inactive_frame_color_; + return mode() == MODE_ACTIVE ? active_frame_color_ : inactive_frame_color_; } } // namespace ash
diff --git a/ash/frame/default_frame_header.h b/ash/frame/default_frame_header.h index 59fcc12..3ae735d 100644 --- a/ash/frame/default_frame_header.h +++ b/ash/frame/default_frame_header.h
@@ -8,122 +8,45 @@ #include <memory> #include "ash/ash_export.h" -#include "ash/frame/caption_buttons/frame_caption_button.h" #include "ash/frame/frame_header.h" #include "base/compiler_specific.h" // override #include "base/gtest_prod_util.h" #include "base/macros.h" -#include "base/strings/string16.h" -#include "third_party/skia/include/core/SkColor.h" -#include "ui/gfx/animation/animation_delegate.h" - -namespace gfx { -class Rect; -class SlideAnimation; -} // namespace gfx - -namespace views { -class View; -class Widget; -} // namespace views namespace ash { -class FrameCaptionButton; -class FrameCaptionButtonContainerView; -// Helper class for managing the default window header. -class ASH_EXPORT DefaultFrameHeader : public FrameHeader, - public gfx::AnimationDelegate { +// Helper class for managing the default window header, which is used for +// Chrome apps (but not bookmark apps), for example. +class ASH_EXPORT DefaultFrameHeader : public FrameHeader { public: // DefaultFrameHeader does not take ownership of any of the parameters. - DefaultFrameHeader(views::Widget* frame, - views::View* header_view, + DefaultFrameHeader(views::View* header_view, FrameCaptionButtonContainerView* caption_button_container); ~DefaultFrameHeader() override; - // FrameHeader overrides: - int GetMinimumHeaderWidth() const override; - void PaintHeader(gfx::Canvas* canvas, Mode mode) override; - void LayoutHeader() override; - int GetHeaderHeight() const override; - int GetHeaderHeightForPainting() const override; - void SetHeaderHeightForPainting(int height) override; - void SchedulePaintForTitle() override; - void SetPaintAsActive(bool paint_as_active) override; - void OnShowStateChanged(ui::WindowShowState show_state) override; - void SetLeftHeaderView(views::View* left_header_view) override; - void SetBackButton(FrameCaptionButton* back_button) override; - FrameCaptionButton* GetBackButton() const override; - void SetFrameColors(SkColor active_frame_color, - SkColor inactive_frame_color) override; - void SetThemeColor(SkColor theme_color); - // Gets the color of the title text. - SkColor GetTitleColor() const; - - // The default frame color for both active and inactive. - static SkColor GetDefaultFrameColor(); - SkColor active_frame_color_for_testing() { return active_frame_color_; } SkColor inactive_frame_color_for_testing() { return inactive_frame_color_; } protected: + // FrameHeader: + void DoPaintHeader(gfx::Canvas* canvas) override; + void DoSetFrameColors(SkColor active_frame_color, + SkColor inactive_frame_color) override; + AshLayoutSize GetButtonLayoutSize() const override; + SkColor GetTitleColor() const override; + SkColor GetCurrentFrameColor() const override; + + private: + FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, FrameColors); + // Updates the frame colors and ensures buttons are up to date. void SetFrameColorsImpl(SkColor active_frame_color, SkColor inactive_frame_color); - // Paints the title bar, primarily the title string. - virtual void PaintTitleBar(gfx::Canvas* canvas); - - // Returns the bounds for the title. - gfx::Rect GetAvailableTitleBounds() const; - - views::View* view() { return view_; } - - private: - FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, BackButtonAlignment); - FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, TitleIconAlignment); - FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, FrameColors); - - // gfx::AnimationDelegate override: - void AnimationProgressed(const gfx::Animation* animation) override; - - // Update all the images in the caption buttons. - void UpdateAllButtonImages(); - - // Updates the size button's images. - void UpdateSizeButtonImages(); - - // Returns the header bounds in the coordinates of |view_|. The header is - // assumed to be positioned at the top left corner of |view_| and to have the - // same width as |view_|. - gfx::Rect GetLocalBounds() const; - - base::string16 GetTitle() const; - - SkColor GetCurrentFrameColor() const; - - views::Widget* frame_; - views::View* view_; - FrameCaptionButton* back_button_; // May be nullptr. - views::View* left_header_view_; // May be nullptr. - FrameCaptionButton::ColorMode button_color_mode_ = - FrameCaptionButton::ColorMode::kDefault; SkColor active_frame_color_; SkColor inactive_frame_color_; - FrameCaptionButtonContainerView* caption_button_container_; - - // The height of the header to paint. - int painted_height_; - - // Whether the header should be painted as active. - Mode mode_; - - // Whether the header is painted for the first time. - bool initial_paint_; - - std::unique_ptr<gfx::SlideAnimation> activation_animation_; DISALLOW_COPY_AND_ASSIGN(DefaultFrameHeader); };
diff --git a/ash/frame/default_frame_header_unittest.cc b/ash/frame/default_frame_header_unittest.cc index 90ac002d..c91e0845 100644 --- a/ash/frame/default_frame_header_unittest.cc +++ b/ash/frame/default_frame_header_unittest.cc
@@ -31,11 +31,11 @@ w->SetBounds(gfx::Rect(0, 0, 500, 500)); w->Show(); - DefaultFrameHeader frame_header(w.get(), w->non_client_view()->frame_view(), + DefaultFrameHeader frame_header(w->non_client_view()->frame_view(), &container); frame_header.SetLeftHeaderView(&window_icon); frame_header.LayoutHeader(); - gfx::Rect title_bounds = frame_header.GetAvailableTitleBounds(); + gfx::Rect title_bounds = frame_header.GetTitleBounds(); EXPECT_EQ(window_icon.bounds().CenterPoint().y(), title_bounds.CenterPoint().y()); } @@ -46,11 +46,11 @@ FrameCaptionButtonContainerView container(w.get()); FrameBackButton back; - DefaultFrameHeader frame_header(w.get(), w->non_client_view()->frame_view(), + DefaultFrameHeader frame_header(w->non_client_view()->frame_view(), &container); frame_header.SetBackButton(&back); frame_header.LayoutHeader(); - gfx::Rect title_bounds = frame_header.GetAvailableTitleBounds(); + gfx::Rect title_bounds = frame_header.GetTitleBounds(); // The back button should be positioned at the left edge, and // vertically centered. EXPECT_EQ(back.bounds().CenterPoint().y(), title_bounds.CenterPoint().y()); @@ -67,7 +67,7 @@ w->SetBounds(gfx::Rect(0, 0, 500, 500)); w->Show(); - DefaultFrameHeader frame_header(w.get(), w->non_client_view()->frame_view(), + DefaultFrameHeader frame_header(w->non_client_view()->frame_view(), &container); // Check frame color is sensitive to mode.
diff --git a/ash/frame/frame_header.cc b/ash/frame/frame_header.cc new file mode 100644 index 0000000..bb7956c --- /dev/null +++ b/ash/frame/frame_header.cc
@@ -0,0 +1,248 @@ +// 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 "ash/frame/frame_header.h" + +#include "ash/frame/caption_buttons/caption_button_model.h" +#include "ash/frame/caption_buttons/frame_caption_button_container_view.h" +#include "ash/frame/frame_header_util.h" +#include "ash/public/cpp/ash_layout_constants.h" +#include "ash/public/cpp/vector_icons/vector_icons.h" +#include "ash/resources/vector_icons/vector_icons.h" +#include "base/logging.h" // DCHECK +#include "ui/gfx/canvas.h" +#include "ui/gfx/color_utils.h" +#include "ui/gfx/font_list.h" +#include "ui/gfx/geometry/rect.h" +#include "ui/gfx/scoped_canvas.h" +#include "ui/views/view.h" +#include "ui/views/widget/native_widget_aura.h" +#include "ui/views/widget/widget.h" +#include "ui/views/widget/widget_delegate.h" + +namespace ash { + +namespace { +// Duration of crossfade animation for activating and deactivating frame. +const int kActivationCrossfadeDurationMs = 200; +} // namespace + +/////////////////////////////////////////////////////////////////////////////// +// FrameHeader, public: + +FrameHeader::~FrameHeader() = default; + +int FrameHeader::GetMinimumHeaderWidth() const { + // Ensure we have enough space for the window icon and buttons. We allow + // the title string to collapse to zero width. + return GetTitleBounds().x() + + caption_button_container_->GetMinimumSize().width(); +} + +void FrameHeader::PaintHeader(gfx::Canvas* canvas, Mode mode) { + Mode old_mode = mode_; + mode_ = mode; + + if (mode_ != old_mode) { + UpdateCaptionButtonColors(); + + if (!initial_paint_ && FrameHeaderUtil::CanAnimateActivation(GetWidget())) { + activation_animation_.SetSlideDuration(kActivationCrossfadeDurationMs); + if (mode_ == MODE_ACTIVE) + activation_animation_.Show(); + else + activation_animation_.Hide(); + } else { + if (mode_ == MODE_ACTIVE) + activation_animation_.Reset(1); + else + activation_animation_.Reset(0); + } + initial_paint_ = false; + } + + DoPaintHeader(canvas); +} + +void FrameHeader::LayoutHeader() { + LayoutHeaderInternal(); + // Default to the header height; owning code may override via + // SetHeaderHeightForPainting(). + painted_height_ = GetHeaderHeight(); +} + +int FrameHeader::GetHeaderHeight() const { + return caption_button_container_->height(); +} + +int FrameHeader::GetHeaderHeightForPainting() const { + return painted_height_; +} + +void FrameHeader::SetHeaderHeightForPainting(int height) { + painted_height_ = height; +} + +void FrameHeader::SchedulePaintForTitle() { + view_->SchedulePaintInRect(GetTitleBounds()); +} + +void FrameHeader::SetPaintAsActive(bool paint_as_active) { + caption_button_container_->SetPaintAsActive(paint_as_active); + if (back_button_) + back_button_->set_paint_as_active(paint_as_active); + UpdateCaptionButtonColors(); +} + +void FrameHeader::OnShowStateChanged(ui::WindowShowState show_state) { + if (show_state == ui::SHOW_STATE_MINIMIZED) + return; + + LayoutHeaderInternal(); +} + +void FrameHeader::SetLeftHeaderView(views::View* left_header_view) { + left_header_view_ = left_header_view; +} + +void FrameHeader::SetBackButton(FrameCaptionButton* back_button) { + back_button_ = back_button; + if (back_button_) { + back_button_->SetColorMode(button_color_mode_); + back_button_->SetBackgroundColor(GetCurrentFrameColor()); + back_button_->SetImage(CAPTION_BUTTON_ICON_BACK, + FrameCaptionButton::ANIMATE_NO, + kWindowControlBackIcon); + } +} + +FrameCaptionButton* FrameHeader::GetBackButton() const { + return back_button_; +} + +void FrameHeader::SetFrameColors(SkColor active_frame_color, + SkColor inactive_frame_color) { + DoSetFrameColors(active_frame_color, inactive_frame_color); +} + +/////////////////////////////////////////////////////////////////////////////// +// gfx::AnimationDelegate overrides: + +void FrameHeader::AnimationProgressed(const gfx::Animation* animation) { + view_->SchedulePaintInRect(GetPaintedBounds()); +} + +// static +SkColor FrameHeader::GetDefaultFrameColor() { + return SkColorSetRGB(0xFD, 0xFE, 0xFF); +} + +/////////////////////////////////////////////////////////////////////////////// +// FrameHeader, protected: + +FrameHeader::FrameHeader() = default; + +views::Widget* FrameHeader::GetWidget() { + return view_->GetWidget(); +} + +const views::Widget* FrameHeader::GetWidget() const { + return view_->GetWidget(); +} + +gfx::Rect FrameHeader::GetPaintedBounds() const { + return gfx::Rect(view_->width(), painted_height_); +} + +void FrameHeader::UpdateCaptionButtonColors() { + caption_button_container_->SetColorMode(button_color_mode_); + caption_button_container_->SetBackgroundColor(GetCurrentFrameColor()); + if (back_button_) { + back_button_->SetColorMode(button_color_mode_); + back_button_->SetBackgroundColor(GetCurrentFrameColor()); + } +} + +void FrameHeader::PaintTitleBar(gfx::Canvas* canvas) { + if (GetWidget()->widget_delegate() && + GetWidget()->widget_delegate()->ShouldShowWindowTitle() && + !GetWidget()->widget_delegate()->GetWindowTitle().empty()) { + canvas->DrawStringRectWithFlags( + GetWidget()->widget_delegate()->GetWindowTitle(), + views::NativeWidgetAura::GetWindowTitleFontList(), GetTitleColor(), + GetTitleBounds(), gfx::Canvas::NO_SUBPIXEL_RENDERING); + } +} + +void FrameHeader::SetCaptionButtonContainer( + FrameCaptionButtonContainerView* caption_button_container) { + caption_button_container_ = caption_button_container; + caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_MINIMIZE, + kWindowControlMinimizeIcon); + caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_MENU, + kWindowControlMenuIcon); + caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_CLOSE, + kWindowControlCloseIcon); + caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_LEFT_SNAPPED, + kWindowControlLeftSnappedIcon); + caption_button_container_->SetButtonImage(CAPTION_BUTTON_ICON_RIGHT_SNAPPED, + kWindowControlRightSnappedIcon); +} + +/////////////////////////////////////////////////////////////////////////////// +// FrameHeader, private: + +void FrameHeader::LayoutHeaderInternal() { + if (!GetWidget()) + return; + + bool use_zoom_icons = caption_button_container()->model()->InZoomMode(); + const gfx::VectorIcon& restore_icon = + use_zoom_icons ? kWindowControlDezoomIcon : kWindowControlRestoreIcon; + const gfx::VectorIcon& maximize_icon = + use_zoom_icons ? kWindowControlZoomIcon : kWindowControlMaximizeIcon; + const gfx::VectorIcon& icon = + GetWidget()->IsMaximized() || GetWidget()->IsFullscreen() ? restore_icon + : maximize_icon; + caption_button_container()->SetButtonImage( + CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, icon); + + caption_button_container()->SetButtonSize( + GetAshLayoutSize(GetButtonLayoutSize())); + + const gfx::Size caption_button_container_size = + caption_button_container()->GetPreferredSize(); + caption_button_container()->SetBounds( + view_->width() - caption_button_container_size.width(), 0, + caption_button_container_size.width(), + caption_button_container_size.height()); + + caption_button_container()->Layout(); + + int origin = 0; + if (back_button_) { + gfx::Size size = back_button_->GetPreferredSize(); + back_button_->SetBounds(0, 0, size.width(), + caption_button_container_size.height()); + origin = back_button_->bounds().right(); + } + + if (left_header_view_) { + // Vertically center the left header view (typically the window icon) with + // respect to the caption button container. + const gfx::Size icon_size(left_header_view_->GetPreferredSize()); + const int icon_offset_y = (GetHeaderHeight() - icon_size.height()) / 2; + left_header_view_->SetBounds(FrameHeaderUtil::GetLeftViewXInset() + origin, + icon_offset_y, icon_size.width(), + icon_size.height()); + } +} + +gfx::Rect FrameHeader::GetTitleBounds() const { + views::View* left_view = left_header_view_ ? left_header_view_ : back_button_; + return view_->GetMirroredRect(FrameHeaderUtil::GetAvailableTitleBounds( + left_view, caption_button_container_, GetHeaderHeight())); +} + +} // namespace ash
diff --git a/ash/frame/frame_header.h b/ash/frame/frame_header.h index 0878a5a..060ee64 100644 --- a/ash/frame/frame_header.h +++ b/ash/frame/frame_header.h
@@ -6,64 +6,152 @@ #define ASH_FRAME_FRAME_HEADER_H_ #include "ash/ash_export.h" +#include "ash/frame/caption_buttons/frame_caption_button.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/ui_base_types.h" +#include "ui/gfx/animation/animation_delegate.h" +#include "ui/gfx/animation/slide_animation.h" namespace gfx { class Canvas; +class Rect; } namespace views { class View; +class Widget; } namespace ash { -class FrameCaptionButton; +enum class AshLayoutSize; + +class FrameCaptionButtonContainerView; // Helper class for managing the window header. -class ASH_EXPORT FrameHeader { +class ASH_EXPORT FrameHeader : public gfx::AnimationDelegate { public: enum Mode { MODE_ACTIVE, MODE_INACTIVE }; - virtual ~FrameHeader() {} + ~FrameHeader() override; // Returns the header's minimum width. - virtual int GetMinimumHeaderWidth() const = 0; + int GetMinimumHeaderWidth() const; // Paints the header. - virtual void PaintHeader(gfx::Canvas* canvas, Mode mode) = 0; + void PaintHeader(gfx::Canvas* canvas, Mode mode); // Performs layout for the header. - virtual void LayoutHeader() = 0; + void LayoutHeader(); // Get the height of the header. - virtual int GetHeaderHeight() const = 0; + int GetHeaderHeight() const; // Gets / sets how much of the header is painted. This allows the header to // paint under things (like the tabstrip) which have transparent / // non-painting sections. This height does not affect LayoutHeader(). - virtual int GetHeaderHeightForPainting() const = 0; - virtual void SetHeaderHeightForPainting(int height_for_painting) = 0; + int GetHeaderHeightForPainting() const; + void SetHeaderHeightForPainting(int height_for_painting); // Schedule a re-paint of the entire title. - virtual void SchedulePaintForTitle() = 0; + void SchedulePaintForTitle(); // True to instruct the frame header to paint the header as an active // state. - virtual void SetPaintAsActive(bool paint_as_active) = 0; + void SetPaintAsActive(bool paint_as_active); // Called when frame show state is changed. - virtual void OnShowStateChanged(ui::WindowShowState show_state) = 0; + void OnShowStateChanged(ui::WindowShowState show_state); - virtual void SetLeftHeaderView(views::View* view) = 0; - virtual void SetBackButton(FrameCaptionButton* view) = 0; - virtual FrameCaptionButton* GetBackButton() const = 0; + void SetLeftHeaderView(views::View* view); + void SetBackButton(FrameCaptionButton* view); + FrameCaptionButton* GetBackButton() const; // Sets the active and inactive frame colors. Note the inactive frame color // will have some transparency added when the frame is drawn. - virtual void SetFrameColors(SkColor active_frame_color, - SkColor inactive_frame_color) = 0; + void SetFrameColors(SkColor active_frame_color, SkColor inactive_frame_color); + + // gfx::AnimationDelegate: + void AnimationProgressed(const gfx::Animation* animation) override; + + // The default frame color for both active and inactive. + static SkColor GetDefaultFrameColor(); + + protected: + FrameHeader(); + + views::Widget* GetWidget(); + const views::Widget* GetWidget() const; + + // Returns bounds of the region in |view_| which is painted with the header + // images. The region is assumed to start at the top left corner of |view_| + // and to have the same width as |view_|. + gfx::Rect GetPaintedBounds() const; + + void UpdateCaptionButtonColors(); + + void PaintTitleBar(gfx::Canvas* canvas); + + void SetCaptionButtonContainer( + FrameCaptionButtonContainerView* caption_button_container); + + void set_view(views::View* view) { view_ = view; } + + void set_button_color_mode(FrameCaptionButton::ColorMode button_color_mode) { + button_color_mode_ = button_color_mode; + } + + views::View* view() { return view_; } + + FrameCaptionButtonContainerView* caption_button_container() { + return caption_button_container_; + } + + Mode mode() const { return mode_; } + + const gfx::SlideAnimation& activation_animation() { + return activation_animation_; + } + + virtual void DoPaintHeader(gfx::Canvas* canvas) = 0; + // Updates the frame colors. The parameters may or may not be ignored. + // TODO(estade): remove these parameters and instead always set them via Aura + // window properties, as is done with CustomFrameHeader. + virtual void DoSetFrameColors(SkColor active_frame_color, + SkColor inactive_frame_color) = 0; + virtual AshLayoutSize GetButtonLayoutSize() const = 0; + virtual SkColor GetTitleColor() const = 0; + virtual SkColor GetCurrentFrameColor() const = 0; + + private: + FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, BackButtonAlignment); + FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, TitleIconAlignment); + FRIEND_TEST_ALL_PREFIXES(DefaultFrameHeaderTest, FrameColors); + + void LayoutHeaderInternal(); + + gfx::Rect GetTitleBounds() const; + + // The view into which |this| paints. + views::View* view_ = nullptr; + FrameCaptionButton* back_button_ = nullptr; // May be nullptr. + views::View* left_header_view_ = nullptr; // May be nullptr. + FrameCaptionButton::ColorMode button_color_mode_ = + FrameCaptionButton::ColorMode::kDefault; + FrameCaptionButtonContainerView* caption_button_container_ = nullptr; + + // The height of the header to paint. + int painted_height_ = 0; + + // Whether the header should be painted as active. + Mode mode_ = MODE_INACTIVE; + + // Whether the header is painted for the first time. + bool initial_paint_ = true; + + gfx::SlideAnimation activation_animation_{this}; + + DISALLOW_COPY_AND_ASSIGN(FrameHeader); }; } // namespace ash
diff --git a/ash/frame/header_view.cc b/ash/frame/header_view.cc index fd2e094..310d3af 100644 --- a/ash/frame/header_view.cc +++ b/ash/frame/header_view.cc
@@ -78,8 +78,8 @@ AddChildView(caption_button_container_); if (window_style == mojom::WindowStyle::DEFAULT) { - frame_header_ = std::make_unique<DefaultFrameHeader>( - target_widget_, this, caption_button_container_); + frame_header_ = + std::make_unique<DefaultFrameHeader>(this, caption_button_container_); } else { DCHECK_EQ(mojom::WindowStyle::BROWSER, window_style); DCHECK_EQ(Config::MASH, Shell::GetAshConfig());
diff --git a/ash/frame/wide_frame_view.cc b/ash/frame/wide_frame_view.cc index 95d5138..17861746 100644 --- a/ash/frame/wide_frame_view.cc +++ b/ash/frame/wide_frame_view.cc
@@ -4,10 +4,10 @@ #include "ash/frame/wide_frame_view.h" -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" #include "ash/frame/custom_frame_view_ash.h" #include "ash/frame/header_view.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/immersive/immersive_fullscreen_controller.h" #include "ash/public/cpp/window_properties.h" #include "ui/aura/window.h"
diff --git a/ash/highlighter/highlighter_controller.h b/ash/highlighter/highlighter_controller.h index 5931002..bbfd627f 100644 --- a/ash/highlighter/highlighter_controller.h +++ b/ash/highlighter/highlighter_controller.h
@@ -67,7 +67,6 @@ void SetExitCallback(base::OnceClosure callback, bool require_success); // Update highlighter enabled |state| and notify observers. - // TODO(warx): add UpdateEnabledState test cases. void UpdateEnabledState(HighlighterEnabledState enabled_state); void BindRequest(mojom::HighlighterControllerRequest request);
diff --git a/ash/highlighter/highlighter_controller_unittest.cc b/ash/highlighter/highlighter_controller_unittest.cc index b64adfae..87368ac 100644 --- a/ash/highlighter/highlighter_controller_unittest.cc +++ b/ash/highlighter/highlighter_controller_unittest.cc
@@ -10,6 +10,9 @@ #include "ash/highlighter/highlighter_controller_test_api.h" #include "ash/public/cpp/config.h" #include "ash/shell.h" +#include "ash/system/palette/mock_palette_tool_delegate.h" +#include "ash/system/palette/palette_tool.h" +#include "ash/system/palette/tools/metalayer_mode.h" #include "ash/test/ash_test_base.h" #include "base/strings/stringprintf.h" #include "ui/aura/window_tree_host.h" @@ -19,6 +22,31 @@ namespace ash { namespace { +class TestHighlighterObserver : public HighlighterController::Observer { + public: + TestHighlighterObserver() = default; + ~TestHighlighterObserver() override = default; + + // HighlighterController::Observer: + void OnHighlighterEnabledChanged(HighlighterEnabledState state) override { + if (state == HighlighterEnabledState::kEnabled) { + ++enabled_count_; + } else if (state == HighlighterEnabledState::kDisabledByUser) { + ++disabled_by_user_count_; + } else { + DCHECK_EQ(HighlighterEnabledState::kDisabledBySessionEnd, state); + ++disabled_by_session_end_; + } + } + + int enabled_count_ = 0; + int disabled_by_user_count_ = 0; + int disabled_by_session_end_ = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(TestHighlighterObserver); +}; + class HighlighterControllerTest : public AshTestBase { public: HighlighterControllerTest() = default; @@ -28,9 +56,13 @@ AshTestBase::SetUp(); controller_test_api_ = std::make_unique<HighlighterControllerTestApi>( Shell::Get()->highlighter_controller()); + + palette_tool_delegate_ = std::make_unique<MockPaletteToolDelegate>(); + tool_ = std::make_unique<MetalayerMode>(palette_tool_delegate_.get()); } void TearDown() override { + tool_.reset(); // This needs to be called first to reset the controller state before the // shell instance gets torn down. controller_test_api_.reset(); @@ -61,6 +93,8 @@ } std::unique_ptr<HighlighterControllerTestApi> controller_test_api_; + std::unique_ptr<MockPaletteToolDelegate> palette_tool_delegate_; + std::unique_ptr<PaletteTool> tool_; private: DISALLOW_COPY_AND_ASSIGN(HighlighterControllerTest); @@ -461,4 +495,37 @@ EXPECT_TRUE(controller_test_api_->HandleSelectionCalled()); } +// Test enabling/disabling metalayer mode by selecting/deselecting on palette +// tool and calling UpdateEnabledState notify observers properly. +TEST_F(HighlighterControllerTest, UpdateEnabledState) { + HighlighterController* controller = Shell::Get()->highlighter_controller(); + TestHighlighterObserver observer; + controller->AddObserver(&observer); + + ASSERT_EQ(0, observer.enabled_count_); + ASSERT_EQ(0, observer.disabled_by_user_count_); + ASSERT_EQ(0, observer.disabled_by_session_end_); + tool_->OnEnable(); + EXPECT_EQ(1, observer.enabled_count_); + EXPECT_EQ(0, observer.disabled_by_user_count_); + EXPECT_EQ(0, observer.disabled_by_session_end_); + + tool_->OnDisable(); + EXPECT_EQ(1, observer.enabled_count_); + EXPECT_EQ(1, observer.disabled_by_user_count_); + EXPECT_EQ(0, observer.disabled_by_session_end_); + + tool_->OnEnable(); + EXPECT_EQ(2, observer.enabled_count_); + EXPECT_EQ(1, observer.disabled_by_user_count_); + EXPECT_EQ(0, observer.disabled_by_session_end_); + controller->UpdateEnabledState( + HighlighterEnabledState::kDisabledBySessionEnd); + EXPECT_EQ(2, observer.enabled_count_); + EXPECT_EQ(1, observer.disabled_by_user_count_); + EXPECT_EQ(1, observer.disabled_by_session_end_); + + controller->RemoveObserver(&observer); +} + } // namespace ash
diff --git a/ash/manifest.json b/ash/manifest.json index 2024ec8..7b6c2d5 100644 --- a/ash/manifest.json +++ b/ash/manifest.json
@@ -8,51 +8,51 @@ // Modifications here should correspond with changes to // chrome_content_browser_manifest_overlay.json. "system_ui": [ - "app_list::mojom::AppList", - "ash::mojom::AcceleratorController", - "ash::mojom::AccessibilityController", - "ash::mojom::AccessibilityFocusRingController", - "ash::mojom::AppListController", - "ash::mojom::AshMessageCenterController", - "ash::mojom::AssistantController", - "ash::mojom::CastConfig", - "ash::mojom::CrosDisplayConfigController", - "ash::mojom::DockedMagnifierController", - "ash::mojom::EventRewriterController", - "ash::mojom::FirstRunHelper", - "ash::mojom::HighlighterController", - "ash::mojom::ImeController", - "ash::mojom::LocaleNotificationController", - "ash::mojom::LoginScreen", - "ash::mojom::MediaController", - "ash::mojom::NewWindowController", - "ash::mojom::NightLightController", - "ash::mojom::NoteTakingController", - "ash::mojom::ProcessCreationTimeRecorder", - "ash::mojom::SessionController", - "ash::mojom::ShelfController", - "ash::mojom::ShutdownController", - "ash::mojom::SplitViewController", - "ash::mojom::SystemTray", - "ash::mojom::TabletModeController", - "ash::mojom::TrayAction", - "ash::mojom::VoiceInteractionController", - "ash::mojom::VpnList", - "ash::mojom::WallpaperController" + "app_list.mojom.AppList", + "ash.mojom.AcceleratorController", + "ash.mojom.AccessibilityController", + "ash.mojom.AccessibilityFocusRingController", + "ash.mojom.AppListController", + "ash.mojom.AshMessageCenterController", + "ash.mojom.AssistantController", + "ash.mojom.CastConfig", + "ash.mojom.CrosDisplayConfigController", + "ash.mojom.DockedMagnifierController", + "ash.mojom.EventRewriterController", + "ash.mojom.FirstRunHelper", + "ash.mojom.HighlighterController", + "ash.mojom.ImeController", + "ash.mojom.LocaleNotificationController", + "ash.mojom.LoginScreen", + "ash.mojom.MediaController", + "ash.mojom.NewWindowController", + "ash.mojom.NightLightController", + "ash.mojom.NoteTakingController", + "ash.mojom.ProcessCreationTimeRecorder", + "ash.mojom.SessionController", + "ash.mojom.ShelfController", + "ash.mojom.ShutdownController", + "ash.mojom.SplitViewController", + "ash.mojom.SystemTray", + "ash.mojom.TabletModeController", + "ash.mojom.TrayAction", + "ash.mojom.VoiceInteractionController", + "ash.mojom.VpnList", + "ash.mojom.WallpaperController" ], // Test-only interfaces. "test": [ - "ash::mojom::ShelfTestApi", - "ash::mojom::ShellTestApi", - "ash::mojom::StatusAreaWidgetTestApi", - "ash::mojom::SystemTrayTestApi", - "ash::mojom::TimeToFirstPresentRecorderTestApi" + "ash.mojom.ShelfTestApi", + "ash.mojom.ShellTestApi", + "ash.mojom.StatusAreaWidgetTestApi", + "ash.mojom.SystemTrayTestApi", + "ash.mojom.TimeToFirstPresentRecorderTestApi" ], // Only chrome is allowed to use this (required as dbus runs in Chrome). "display": [ - "ash::mojom::AshDisplayController" + "ash.mojom.AshDisplayController" ], - "mus:window_manager": [ "ui::mojom::AcceleratorRegistrar" ] + "mus:window_manager": [ "ui.mojom.AcceleratorRegistrar" ] }, "requires": { "*": [ "accessibility", "app" ],
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn index 0d05e11e..6f3da07 100644 --- a/ash/public/cpp/BUILD.gn +++ b/ash/public/cpp/BUILD.gn
@@ -33,6 +33,8 @@ "ash_constants.h", "ash_features.cc", "ash_features.h", + "ash_layout_constants.cc", + "ash_layout_constants.h", "ash_pref_names.cc", "ash_pref_names.h", "ash_public_export.h",
diff --git a/ash/ash_layout_constants.cc b/ash/public/cpp/ash_layout_constants.cc similarity index 92% rename from ash/ash_layout_constants.cc rename to ash/public/cpp/ash_layout_constants.cc index 591762b..e68075f 100644 --- a/ash/ash_layout_constants.cc +++ b/ash/public/cpp/ash_layout_constants.cc
@@ -2,11 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/ash_layout_constants.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "base/logging.h" #include "ui/base/material_design/material_design_controller.h" +namespace ash { + gfx::Size GetAshLayoutSize(AshLayoutSize size) { constexpr int kButtonWidth = 32; const int mode = ui::MaterialDesignController::GetMode(); @@ -29,3 +31,5 @@ NOTREACHED(); return gfx::Size(); } + +} // namespace ash
diff --git a/ash/ash_layout_constants.h b/ash/public/cpp/ash_layout_constants.h similarity index 62% rename from ash/ash_layout_constants.h rename to ash/public/cpp/ash_layout_constants.h index 5951396..98907d5 100644 --- a/ash/ash_layout_constants.h +++ b/ash/public/cpp/ash_layout_constants.h
@@ -2,12 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef ASH_ASH_LAYOUT_CONSTANTS_H_ -#define ASH_ASH_LAYOUT_CONSTANTS_H_ +#ifndef ASH_PUBLIC_CPP_ASH_LAYOUT_CONSTANTS_H_ +#define ASH_PUBLIC_CPP_ASH_LAYOUT_CONSTANTS_H_ -#include "ash/ash_export.h" +#include "ash/public/cpp/ash_public_export.h" #include "ui/gfx/geometry/size.h" +namespace ash { + enum class AshLayoutSize { // Size of a caption button in a maximized browser window. kBrowserCaptionMaximized, @@ -19,6 +21,8 @@ kNonBrowserCaption, }; -ASH_EXPORT gfx::Size GetAshLayoutSize(AshLayoutSize size); +ASH_PUBLIC_EXPORT gfx::Size GetAshLayoutSize(AshLayoutSize size); -#endif // ASH_ASH_LAYOUT_CONSTANTS_H_ +} // namespace ash + +#endif // ASH_PUBLIC_CPP_ASH_LAYOUT_CONSTANTS_H_
diff --git a/ash/shelf/app_list_button.h b/ash/shelf/app_list_button.h index 273b0f4..c79c6df 100644 --- a/ash/shelf/app_list_button.h +++ b/ash/shelf/app_list_button.h
@@ -86,7 +86,7 @@ void InitializeVoiceInteractionOverlay(); // True if the app list is currently showing for this display. - // This is useful because other IsApplistVisible functions aren't per-display. + // This is useful because other app_list_visible functions aren't per-display. bool is_showing_app_list_ = false; InkDropButtonListener* listener_;
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index f36db683..a142b9b1 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">የሌሊት ብርሃን፦ <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">ሲም ካርድ ተዘግቷል</translation> <translation id="2653659639078652383">አስገባ</translation> -<translation id="2675319268637823299">አንድ አስተዳዳሪ ለ<ph name="USER_EMAIL" /> በርካታ በመለያ መግባቶችን ከልክሏል። -ለመቀጠል ሁሉም ተጠቃሚዎች ዘግተው መውጣት አለባቸው።</translation> <translation id="2696763960464195425">ዘግተው ሲወጡ የእርስዎ መረጃ ይወገዳል። <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">የእርስዎን ቁልፍ ሰሌዳ ያቀናብሩ</translation> <translation id="2718395828230677721">የምሽት ብርሃን</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">የመዳፊት ጠቋሚን አድምቅ</translation> <translation id="3513798432020909783">መለያው በ<ph name="MANAGER_EMAIL" /> ነው የሚቀናበረው</translation> <translation id="3573179567135747900">ወደ «<ph name="FROM_LOCALE" />» መልሰህ ቀይር (ዳግም ማስጀመር ይፈልጋል)</translation> -<translation id="3582792037806681688">በበርካታ መለያ መግባት በዚህ ክፍለ ጊዜ ውስጥ ላለ ተጠቃሚ ተከልክሏል</translation> <translation id="3595596368722241419">ባትሪ ሙሉ ነው</translation> <translation id="3606978283550408104">የብሬይል ማሳያ ተገናኝቷል።</translation> <translation id="3621202678540785336">ግብዓት</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">የUSB-C መሣሪያ (የቀኝ ጎን የኋላ ወደብ)</translation> <translation id="4017989525502048489">የሌዘር ጨረር</translation> <translation id="4072264167173457037">መካከለኛ ሲግናል</translation> +<translation id="4217571870635786043">በቃል ማስጻፍ</translation> <translation id="4279490309300973883">በማንጸባረቅ ላይ</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome ስርዓተ ክወና</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">የብሉቱዝ መሣሪያ «<ph name="DEVICE_NAME" />» ለመጣመር ፍቃድ ይፈልጋል።</translation> <translation id="453661520163887813"><ph name="TIME" /> ሙሉ እስከሚሆን ድረስ</translation> <translation id="4544944664594876241">የመቆለፊያ ገጹ የሚቆለፍበት አቋራጭ ተቀይሯል። እባክዎ ከ<ph name="OLD_SHORTCUT" /> ይልቅ <ph name="NEW_SHORTCUT" />ን ይጠቀሙ።</translation> +<translation id="4570957409596482333">ለመናገር-ይምረጡ አዝራር</translation> <translation id="4659419629803378708">ChromeVox ነቅቷል</translation> <translation id="4776917500594043016">የ<ph name="USER_EMAIL_ADDRESS" /> ይለፍ ቃል</translation> <translation id="479989351350248267">ፈልግ</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (ባለቤት)</translation> <translation id="7647488630410863958">የእርስዎን ማሳወቂያዎች ለማየት መሣሪያውን ይክፈቱ</translation> <translation id="7649070708921625228">እገዛ</translation> +<translation id="7654687942625752712">የሚነገር ግብረመልስን ለማሰናከል ለአምስት ሰከንዶች ሁለቱንም የድምፅ ቁልፎች ተጭነው ያይዙ።</translation> <translation id="7658239707568436148">ይቅር</translation> <translation id="7692480393933218409">የተገናኙ የUSB-C መሣሪያዎችን ኃይል በመሙላት ላይ</translation> <translation id="776344839111254542">የዝማኔ ዝርዝሮችን ለማየት ጠቅ ያድርጉ</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 2d326c7e..8d002691 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">إضاءة ليلية: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">تم قفل شريحة SIM</translation> <translation id="2653659639078652383">إرسال</translation> -<translation id="2675319268637823299">منع أحد المشرفين الدخول المتعدد لـ <ph name="USER_EMAIL" />. - يجب على جميع المستخدمين تسجيل الخروج للمتابعة.</translation> <translation id="2696763960464195425">ستتم إزالة معلوماتك عند تسجيل الخروج. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">تعيين لوحة المفاتيح</translation> <translation id="2718395828230677721">الإضاءة الليلية</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">تمييز مؤشر الماوس</translation> <translation id="3513798432020909783">يُدير <ph name="MANAGER_EMAIL" /> الحساب.</translation> <translation id="3573179567135747900">التغيير مرة أخرى إلى "<ph name="FROM_LOCALE" />" (يتطلب إعادة التشغيل)</translation> -<translation id="3582792037806681688">تم منع الدخول المتعدد لمستخدم في هذه الجلسة</translation> <translation id="3595596368722241419">البطارية ممتلئة</translation> <translation id="3606978283550408104">تم توصيل شاشة برايل.</translation> <translation id="3621202678540785336">الإدخال</translation> @@ -285,7 +282,7 @@ <translation id="7536035074519304529">عنوان IP: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> غير متوافق مع <ph name="SPECIFIED_RESOLUTION" />. تم تغيير الدقة إلى <ph name="FALLBACK_RESOLUTION" /></translation> <translation id="7562368315689366235">لوحة ألوان الرموز التعبيرية</translation> -<translation id="7564874036684306347">قد ينتج عن نقل النوافذ إلى سطح مكتب آخر سلوك غير متوقع. ربما يتم تقسيم مربعات الحوار والنوافذ والإشعارات المتتالية بين سطحي المكتب.</translation> +<translation id="7564874036684306347">قد ينتج عن نقل النوافذ إلى سطح مكتب آخر سلوك غير متوقع. من الممكن أن يتم تقسيم مربعات الحوار والنوافذ والإشعارات المتتالية بين سطحَي المكتب.</translation> <translation id="7569509451529460200">تم تفعيل Braille وChromeVox</translation> <translation id="7593891976182323525">مفتاح البحث أو Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (المالك)</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 95782e5..28f7b89 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Нощно осветление: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM картата е заключена</translation> <translation id="2653659639078652383">Изпращане</translation> -<translation id="2675319268637823299">Администратор е деактивирал централизирания вход за <ph name="USER_EMAIL" />. -За да продължите, всички потребители трябва да излязат.</translation> <translation id="2696763960464195425">Информацията ви ще бъде премахната, когато излезете от профила си. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Задайте клавиатура</translation> <translation id="2718395828230677721">Нощно осветление</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Открояване на курсора на мишката</translation> <translation id="3513798432020909783">Профилът се управлява от <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Връщане към „<ph name="FROM_LOCALE" />“ (изисква рестартиране)</translation> -<translation id="3582792037806681688">Централизираният вход е забранен за потребител в тази сесия</translation> <translation id="3595596368722241419">Батерията е заредена</translation> <translation id="3606978283550408104">Брайловият дисплей е свързан.</translation> <translation id="3621202678540785336">Вход</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">устройство с USB-C (задният десен порт)</translation> <translation id="4017989525502048489">Лазерна показалка</translation> <translation id="4072264167173457037">умерен сигнал</translation> +<translation id="4217571870635786043">Диктуване</translation> <translation id="4279490309300973883">Дублиране</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Устройството с Bluetooth „<ph name="DEVICE_NAME" />“ иска разрешение за сдвояване.</translation> <translation id="453661520163887813"><ph name="TIME" /> до пълно зареждане</translation> <translation id="4544944664594876241">Комбинацията за заключване на екрана е променена. Моля, използвайте „<ph name="NEW_SHORTCUT" />“ вместо „<ph name="OLD_SHORTCUT" />“.</translation> +<translation id="4570957409596482333">Бутон за функцията Прочитане на глас</translation> <translation id="4659419629803378708">Активирахте ChromeVox</translation> <translation id="4776917500594043016">Парола за <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (собственик)</translation> <translation id="7647488630410863958">Отключете устройството, за да прегледате известията си</translation> <translation id="7649070708921625228">Помощ</translation> +<translation id="7654687942625752712">Натиснете и двата бутона за силата на звука и ги задръжте за пет секунди, за да деактивирате обратната връзка с говор.</translation> <translation id="7658239707568436148">Отказ</translation> <translation id="7692480393933218409">Свързаните устройства с USB-C се зареждат</translation> <translation id="776344839111254542">Кликнете, за да видите подробности за актуализацията</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 9037369..dd7c04cd 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -12,7 +12,7 @@ <translation id="1247372569136754018">মাইক্রোফোন (অভ্যন্তরীণ)</translation> <translation id="1252999807265626933"><ph name="POWER_SOURCE" /> থেকে চার্জ হচ্ছে</translation> <translation id="1267032506238418139">শর্টকাটে পরিবর্তন</translation> -<translation id="1270290102613614947">অন-স্ক্রীন কীবোর্ড অক্ষম করা রয়েছে</translation> +<translation id="1270290102613614947">অন-স্ক্রিন কীবোর্ড অক্ষম করা রয়েছে</translation> <translation id="1272079795634619415">বন্ধ</translation> <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation> <translation id="1290331692326790741">সিগন্যালটি ভাল নয়</translation> @@ -35,7 +35,7 @@ <translation id="170389796989115980">ডিভাইসের অ্যাডমিন আপনার অ্যাক্টিভিটি নিরীক্ষণ করতে পারেন।</translation> <translation id="1734367976349034509">এই ডিভাইসটি এন্টারপ্রাইজ পরিচালিত</translation> <translation id="1746730358044914197">আপনার প্রশাসক ইনপুটের পদ্ধতিগুলি কনফিগার করে।</translation> -<translation id="1747827819627189109">অন-স্ক্রীন কীবোর্ড সক্ষম করা রয়েছে</translation> +<translation id="1747827819627189109">অন-স্ক্রিন কীবোর্ড সক্ষম করা রয়েছে</translation> <translation id="1823873187264960516">ইথারনেট: <ph name="ADDRESS" /></translation> <translation id="1836215606488044471">সহায়ক (লোড হচ্ছে...)</translation> <translation id="1850504506766569011">ওয়াই-ফাই বন্ধ আছে৷</translation> @@ -82,8 +82,6 @@ <translation id="2597972630681408282">নাইট লাইট: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">সিম কার্ড লক করা আছে</translation> <translation id="2653659639078652383">জমা দিন</translation> -<translation id="2675319268637823299">একজন প্রশাসক <ph name="USER_EMAIL" /> এর জন্য একাধিক সাইন-ইন বাতিল করেছেন। - চালিয়ে যাওয়ার জন্য, সব ব্যবহারকারীকে অবশ্যই সাইন-আউট করতে হবে।</translation> <translation id="2696763960464195425">আপনি সাইন-আউট করলে আপনার তথ্য সরিয়ে দেওয়া হবে। <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">আপনার কীবোর্ড সেট করুন</translation> <translation id="2718395828230677721">নাইট লাইট</translation> @@ -99,7 +97,7 @@ <translation id="2878884018241093801">কোনও সাম্প্রতিক আইটেম নেই</translation> <translation id="2903844815300039659"><ph name="NAME" /> এর সাথে সংযুক্ত আছে, <ph name="STRENGTH" /></translation> <translation id="2911940648265863620">আপনি স্ক্রিন শেয়ার করছেন</translation> -<translation id="2942516765047364088">তাকের অবস্থান</translation> +<translation id="2942516765047364088">তাকের লোকেশন</translation> <translation id="2946119680249604491">সংযোগ জুড়ুন</translation> <translation id="2963773877003373896">mod3</translation> <translation id="2999742336789313416"><ph name="DISPLAY_NAME" /> হল <ph name="DOMAIN" /> এর দ্বারা পরিচালিত একটি সর্বজনীন সেশন</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">মাউস কার্সার হাইলাইট করুন</translation> <translation id="3513798432020909783">অ্যাকাউন্টটি <ph name="MANAGER_EMAIL" /> পরিচালনা করছেন</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" তে ফেরান (পুনর্সূচনা প্রয়োজন)</translation> -<translation id="3582792037806681688">একটি ব্যবহারকারীর জন্য এই সেশনে একাধিক প্রবেশ অননুমোদিত হয়েছে</translation> <translation id="3595596368722241419">ব্যাটারি পুরো চার্জ</translation> <translation id="3606978283550408104">ব্রেইল প্রদর্শন সংযুক্ত হয়েছে৷</translation> <translation id="3621202678540785336">ইনপুট</translation> @@ -161,14 +158,15 @@ <translation id="4351433414020964307">সহায়ক লোড হচ্ছে...</translation> <translation id="4378551569595875038">সংযুক্ত হচ্ছে...</translation> <translation id="4379531060876907730">এগুলি হল আপনার স্টাইলাস টুল</translation> -<translation id="4421231901400348175">রিমোট সহায়কের মাধ্যমে <ph name="HELPER_NAME" />-এর সাথে আপনার স্ক্রীন নিয়ন্ত্রন ভাগ করুন৷</translation> +<translation id="4421231901400348175">রিমোট সহায়কের মাধ্যমে <ph name="HELPER_NAME" />-এর সাথে আপনার স্ক্রিন নিয়ন্ত্রন ভাগ করুন৷</translation> <translation id="4430019312045809116">ভলিউম</translation> +<translation id="4450893287417543264">আর দেখতে চাই না</translation> <translation id="4479639480957787382">ইথারনেট</translation> <translation id="4481530544597605423">বিযুক্ত করা ডিভাইসগুলি</translation> <translation id="4508225577814909926"><ph name="NAME" />: সংযুক্ত হচ্ছে...</translation> <translation id="4527045527269911712">ব্লুটুথ ডিভাইস "<ph name="DEVICE_NAME" />" যুক্ত করার অনুমতি চাইছে।</translation> <translation id="453661520163887813">সম্পূর্ণ হতে <ph name="TIME" /> বাকি</translation> -<translation id="4544944664594876241">স্ক্রীন লক করার শর্টকাটটি পরিবর্তিত হয়েছে। <ph name="OLD_SHORTCUT" /> এর পরিবর্তে দয়া করে <ph name="NEW_SHORTCUT" /> ব্যবহার করুন।</translation> +<translation id="4544944664594876241">স্ক্রিন লক করার শর্টকাটটি পরিবর্তিত হয়েছে। <ph name="OLD_SHORTCUT" /> এর পরিবর্তে দয়া করে <ph name="NEW_SHORTCUT" /> ব্যবহার করুন।</translation> <translation id="4659419629803378708">ChromeVox সক্ষম করা আছে</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />-এর জন্য পাসওয়ার্ড</translation> <translation id="479989351350248267">search</translation> @@ -179,7 +177,7 @@ <translation id="4895488851634969361">ব্যাটারি পূর্ণ৷</translation> <translation id="4905614135390995787">উচ্চ কনট্রাস্ট মোড টগল করার শর্টকাটটি পরিবর্তিত হয়েছে। <ph name="OLD_SHORTCUT" /> এর পরিবর্তে অনুগ্রহ করে <ph name="NEW_SHORTCUT" /> ব্যবহার করুন।</translation> <translation id="4918086044614829423">স্বীকার</translation> -<translation id="4961318399572185831">স্ক্রীন কাস্ট করুন</translation> +<translation id="4961318399572185831">স্ক্রিন কাস্ট করুন</translation> <translation id="5136175204352732067">বিভিন্ন কীবোর্ড কানেক্ট করা হয়েছে</translation> <translation id="5168181903108465623">কাস্ট ডিভাইসগুলি উপলব্ধ</translation> <translation id="5207949376430453814">পাঠ্যের কার্সার হাইলাইট করুন</translation> @@ -195,13 +193,14 @@ <translation id="54609108002486618">পরিচালিত</translation> <translation id="553675580533261935">সেশন থেকে প্রস্থান করছে</translation> <translation id="5548285847212963613">"<ph name="EXTENSION_NAME" />" এক্সটেনশানটি এই নেটওয়ার্কের সাথে সংযোগ স্থাপন করতে সাহায্য করতে পারে৷</translation> +<translation id="554893713779400387">ডিক্টেশন চালু বা বন্ধ করুন</translation> <translation id="5571066253365925590">ব্লুটুথ সক্ষমিত</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">কথ্য প্রতিক্রিয়া অক্ষম করতে Ctrl + Alt + Z টিপুন।</translation> <translation id="5648021990716966815">মাইক জ্যাক</translation> <translation id="5673434351075758678">সেটিংস সিঙ্ক করার পরে "<ph name="FROM_LOCALE" />" থেকে "<ph name="TO_LOCALE" />" সেট করা হয়েছে।</translation> <translation id="5744083938413354016">ট্যাপ করে টেনে আনা</translation> -<translation id="5777841717266010279">স্ক্রীন শেয়ার করা থামাবেন?</translation> +<translation id="5777841717266010279">স্ক্রিন শেয়ার করা থামাবেন?</translation> <translation id="57838592816432529">নিঃশব্দ করুন</translation> <translation id="5820394555380036790">Chromium OS</translation> <translation id="5832805196449965646">একজন ব্যক্তিকে যোগ করুন</translation> @@ -215,19 +214,19 @@ <translation id="5957083217255311415">মোবাইল ডেটা বন্ধ করা আছে।</translation> <translation id="5958529069007801266">তত্ত্বাবধানে থাকা ব্যবহারকারী</translation> <translation id="5977415296283489383">হেডফোন</translation> -<translation id="5978382165065462689">রিমোট সহায়কের মাধ্যমে আপনার স্ক্রীন নিয়ন্ত্রণ ভাগ করুন৷</translation> +<translation id="5978382165065462689">রিমোট সহায়কের মাধ্যমে আপনার স্ক্রিন নিয়ন্ত্রণ ভাগ করুন৷</translation> <translation id="5980301590375426705">অতিথি থেকে প্রস্থান</translation> <translation id="598882571027504733">আপডেট পেতে, অ্যাটাচ করা কীবোর্ডের মাধ্যমে আপনার Chromebook রিস্টার্ট করুন।</translation> <translation id="5992218262414051481">উচ্চ কনট্রাস্ট মোড সক্ষম করা হয়েছে। টগল করে বন্ধ করার জন্য Ctrl+Search+H টিপুন।</translation> <translation id="6018164090099858612">মিরর মোড থেকে প্রস্থান করছে</translation> <translation id="6043212731627905357">এই মনিটরটি আপনার <ph name="DEVICE_TYPE" /> এর সাথে তাল মেলাতে পারছে না (মনিটরটি সমর্থিত নয়)।</translation> <translation id="6043994281159824495">এখনই প্রস্থান করুন</translation> -<translation id="6047696787498798094">যখন আপনি অন্য ব্যবহারকারীতে পাল্টাবেন তখন স্ক্রীন শেয়ার করা বন্ধ হবে৷ আপনি কি চালিয়ে যেতে চান?</translation> +<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="6106745654298855237"><ph name="POWER_SOURCE" /> চার্জ হচ্ছে</translation> -<translation id="615957422585914272">অন-স্ক্রীন কীবোর্ড প্রদর্শন করুন</translation> +<translation id="615957422585914272">অন-স্ক্রিন কীবোর্ড প্রদর্শন করুন</translation> <translation id="6164005077879661055">একবার এই তত্ত্বাবধানে থাকা ব্যবহারকারী সরানো হলে এর সঙ্গে সংশ্লিষ্ট সমস্ত ফাইল এবং স্থানীয় ডেটা স্থায়ীভাবে মুছে ফেলা হবে৷ এই তত্ত্বাবধানে থাকা ব্যবহারকারীর জন্য পরিদর্শিত এবং সেটিংস <ph name="MANAGEMENT_URL" /> এ পরিচালকের কাছে এখনো দৃশ্যমান হতে পারে৷</translation> <translation id="6165508094623778733">আরও জানুন</translation> @@ -241,12 +240,12 @@ <translation id="643147933154517414">সব সম্পন্ন!</translation> <translation id="6452181791372256707">প্রত্যাখ্যান</translation> <translation id="6453179446719226835">ভাষা পরিবর্তন করা হয়েছে</translation> -<translation id="6459472438155181876">স্ক্রীন <ph name="DISPLAY_NAME" /> তে প্রসারিত হচ্ছে</translation> +<translation id="6459472438155181876">স্ক্রিন <ph name="DISPLAY_NAME" /> তে প্রসারিত হচ্ছে</translation> <translation id="6490471652906364588">USB-C ডিভাইস (ডান পোর্ট)</translation> -<translation id="6501401484702599040"><ph name="RECEIVER_NAME" /> এ স্ক্রীন কাস্ট করা হচ্ছে</translation> +<translation id="6501401484702599040"><ph name="RECEIVER_NAME" /> এ স্ক্রিন কাস্ট করা হচ্ছে</translation> <translation id="6521655319214113338">হাতে লেখা ইনপুট</translation> <translation id="6528179044667508675">বিরক্ত করবেন না</translation> -<translation id="6537270692134705506">স্ক্রীন ক্যাপচার করুন</translation> +<translation id="6537270692134705506">স্ক্রিন ক্যাপচার করুন</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> @@ -283,6 +282,7 @@ <translation id="7536035074519304529">IP ঠিকানা: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />, <ph name="SPECIFIED_RESOLUTION" /> সমর্থন করে না৷ রেজোলিউশন <ph name="FALLBACK_RESOLUTION" /> এ পরিবর্তিত হয়েছে</translation> <translation id="7562368315689366235">ইমোজি প্যালেট</translation> +<translation id="7564874036684306347">কোনও উইন্ডো অন্য ডেস্কটপে সরানো হলে সেটির আচরণে অপ্রত্যাশিত পরিবর্তন হতে পারে। পরবর্তী বিজ্ঞপ্তি, উইন্ডো এবং ডায়ালগ দুটি ডেস্কটপ মিলিয়ে দেখানো হতে পারে।</translation> <translation id="7569509451529460200">ব্রেল এবং ChromeVox সক্ষম করেছেন</translation> <translation id="7593891976182323525">Search অথবা Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (মালিক)</translation> @@ -295,6 +295,7 @@ <translation id="7798302898096527229">Search টিপুন বা বাতিল করতে Shift টিপুন</translation> <translation id="7814236020522506259"><ph name="HOUR" /> এবং <ph name="MINUTE" /></translation> <translation id="7829386189513694949">জোরালো সিগন্যাল</translation> +<translation id="7842569679327885685">সতর্কতা: পরীক্ষামূলক বৈশিষ্ট্য</translation> <translation id="7904094684485781019">এই অ্যাকাউন্টের প্রশাসক একাধিক প্রবেশ করুন অননুমোদিত করেছেন৷</translation> <translation id="7933084174919150729">Google সহায়ক শুধুমাত্র প্রাথমিক প্রোফাইলেই ব্যবহার করা যায়।</translation> <translation id="79341161159229895">অ্যাকাউন্টটি <ph name="FIRST_PARENT_EMAIL" /> এবং <ph name="SECOND_PARENT_EMAIL" /> পরিচালনা করছেন</translation> @@ -303,7 +304,7 @@ <translation id="7994370417837006925">একাধিক সাইন-ইন</translation> <translation id="8000066093800657092">কোনও নেটওয়ার্ক নেই</translation> <translation id="8054466585765276473">ব্যাটারি সময় গণনা করা হচ্ছে।</translation> -<translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> এ স্ক্রীন কাস্ট করা বন্ধ করুন</translation> +<translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> এ স্ক্রিন কাস্ট করা বন্ধ করুন</translation> <translation id="8132793192354020517"><ph name="NAME" /> তে সংযুক্ত</translation> <translation id="813913629614996137">আরম্ভ হচ্ছে…</translation> <translation id="8142699993796781067">ব্যক্তিগত নেটওয়ার্ক</translation> @@ -334,8 +335,8 @@ <translation id="8828714802988429505">৯০°</translation> <translation id="8841375032071747811">ফিরে যাওয়ার বোতাম</translation> <translation id="8850991929411075241">Search+Esc</translation> -<translation id="8870509716567206129">অ্যাপ্লিকেশনটি বিভক্ত-স্ক্রীন সমর্থন করে না৷</translation> -<translation id="8878886163241303700">স্ক্রীন সম্প্রসারণ করা হচ্ছে</translation> +<translation id="8870509716567206129">অ্যাপ্লিকেশনটি বিভক্ত-স্ক্রিন সমর্থন করে না৷</translation> +<translation id="8878886163241303700">স্ক্রিন সম্প্রসারণ করা হচ্ছে</translation> <translation id="8921624153894383499">Google সহায়ক এই ভাষায় কথা বলে না।</translation> <translation id="8938800817013097409">USB-C ডিভাইস (পিছনের ডান পোর্ট)</translation> <translation id="8940956008527784070">(<ph name="PERCENTAGE" />%) কম ব্যাটারি</translation> @@ -347,11 +348,12 @@ <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> প্রদর্শন সরানো হয়েছে</translation> <translation id="9111102763498581341">আনলক</translation> <translation id="9151726767154816831">আপডেট করার জন্য আবার শুরু করুন এবং পাওয়ারওয়াশ করুন</translation> +<translation id="9179259655489829027">এই বৈশিষ্ট্যের মাধ্যমে আপনি কোনও পাসওয়ার্ড ছাড়াই সাইন-ইন করা যেকোনও ব্যবহারকারীকে দ্রুত অ্যাক্সেস করতে পারেন। এটি শুধুমাত্র বিশ্বস্ত অ্যাকাউন্টেই ব্যবহার করুন।</translation> <translation id="9194617393863864469">অন্য ব্যবহারকারীকে প্রবেশ করান...</translation> <translation id="9201131092683066720">ব্যাটারি <ph name="PERCENTAGE" />% পূর্ণ৷</translation> <translation id="9210037371811586452">সমন্বিত ডেস্কটপ মোড থেকে প্রস্থান করছে</translation> <translation id="9215934040295798075">ওয়ালপেপার সেট করুন</translation> <translation id="923686485342484400">প্রস্থান করার জন্য দুবার Control Shift Q টিপুন৷</translation> -<translation id="945522503751344254">প্রতিক্রিয়া পাঠান</translation> +<translation id="945522503751344254">মতামত জানান</translation> <translation id="98515147261107953">ল্যান্ডস্কেপ</translation> </translationbundle> \ No newline at end of file
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 560f961f..ea48026 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Llum nocturna: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">La targeta SIM està bloquejada</translation> <translation id="2653659639078652383">Envia</translation> -<translation id="2675319268637823299">Un administrador ha desactivat l'inici de sessió múltiple per a <ph name="USER_EMAIL" />. - Tots els usuaris han de tancar la sessió per continuar.</translation> <translation id="2696763960464195425">La teva informació se suprimirà quan tanquis la sessió. <ph name="LEARN_MORE" />.</translation> <translation id="2700493154570097719">Defineix el teu teclat</translation> <translation id="2718395828230677721">Llum nocturna</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Ressalta el cursor del ratolí</translation> <translation id="3513798432020909783">Compte gestionat per <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Torna a canviar a "<ph name="FROM_LOCALE" />" (requereix reiniciar)</translation> -<translation id="3582792037806681688">S'ha desactivat l'inici de sessió múltiple en aquesta sessió a causa d'un usuari.</translation> <translation id="3595596368722241419">Bateria carregada.</translation> <translation id="3606978283550408104">S'ha connectat la pantalla Braille.</translation> <translation id="3621202678540785336">Entrada</translation> @@ -190,7 +187,7 @@ <translation id="5331975486040154427">Dispositiu USB-C (port posterior esquerre)</translation> <translation id="5397578532367286026">El gestor (<ph name="MANAGER_EMAIL" />) pot revisar l'ús i l'historial d'aquest usuari a chrome.com.</translation> <translation id="5430931332414098647">Compartició de xarxa instantània</translation> -<translation id="5431825016875453137">VPN oberta / L2TP</translation> +<translation id="5431825016875453137">OpenVPN/L2TP</translation> <translation id="544691375626129091">Ja s'han afegit tots els usuaris disponibles a aquesta sessió.</translation> <translation id="5457599981699367932">Navega com a convidat</translation> <translation id="54609108002486618">Gestionat</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 91ee90f2..9ee0f5e6 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Noční režim: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM karta je uzamčena</translation> <translation id="2653659639078652383">Odeslat</translation> -<translation id="2675319268637823299">Administrátor vícenásobné přihlášení pro účet <ph name="USER_EMAIL" /> zakázal. - Všichni uživatelé se před pokračováním musejí odhlásit.</translation> <translation id="2696763960464195425">Informace budou po odhlášení odstraněny. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Nastavit klávesnici</translation> <translation id="2718395828230677721">Noční režim</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Zvýraznit ukazatel myši</translation> <translation id="3513798432020909783">Správce účtu: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Změnit zpět na jazyk <ph name="FROM_LOCALE" /> (vyžaduje restart)</translation> -<translation id="3582792037806681688">Některému uživateli v této relaci bylo zakázáno vícenásobné přihlášení.</translation> <translation id="3595596368722241419">Baterie je nabitá</translation> <translation id="3606978283550408104">Je připojen hmatový displej.</translation> <translation id="3621202678540785336">Vstup</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Zařízení USB Type-C (pravý zadní port)</translation> <translation id="4017989525502048489">Laserové ukazovátko</translation> <translation id="4072264167173457037">Střední signál</translation> +<translation id="4217571870635786043">Diktování</translation> <translation id="4279490309300973883">Zrcadlení</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Zařízení Bluetooth „<ph name="DEVICE_NAME" />“ žádá o povolení ke spárování.</translation> <translation id="453661520163887813"><ph name="TIME" /> do úplného nabití</translation> <translation id="4544944664594876241">Zkratka k odemknutí obrazovky se změnila. Namísto zkratky <ph name="OLD_SHORTCUT" /> používejte zkratku <ph name="NEW_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Tlačítko pro poslech vybraného textu</translation> <translation id="4659419629803378708">Funkce ChromeVox je zapnutá</translation> <translation id="4776917500594043016">Heslo pro účet <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (vlastník)</translation> <translation id="7647488630410863958">Chcete-li zobrazit oznámení, odemkněte zařízení</translation> <translation id="7649070708921625228">Nápověda</translation> +<translation id="7654687942625752712">Hlasovou odezvu vypnete podržením obou tlačítek hlasitosti po dobu pěti sekund.</translation> <translation id="7658239707568436148">Zrušit</translation> <translation id="7692480393933218409">Nabíjení připojených zařízení USB Type-C</translation> <translation id="776344839111254542">Kliknutím zobrazíte podrobnosti o aktualizaci</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index 5e6af169..4ffa101 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nattelys: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-kortet er låst</translation> <translation id="2653659639078652383">Indsend</translation> -<translation id="2675319268637823299">En administrator har afvist samlet login fra flere konti for <ph name="USER_EMAIL" />. - Alle brugere skal logge ud for at fortsætte.</translation> <translation id="2696763960464195425">Dine oplysninger fjernes, når du logger ud. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Angiv dit tastatur</translation> <translation id="2718395828230677721">Nattelys</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Fremhæv musemarkør</translation> <translation id="3513798432020909783">Kontoen administreres af <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Skift tilbage til "<ph name="FROM_LOCALE" />" (kræver genstart)</translation> -<translation id="3582792037806681688">Samlet login fra flere konti er blevet deaktiveret for en bruger i denne session</translation> <translation id="3595596368722241419">Batteri helt opladet</translation> <translation id="3606978283550408104">Der er tilsluttet en brailleskærm.</translation> <translation id="3621202678540785336">Input</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C-enhed (porten bagpå i højre side)</translation> <translation id="4017989525502048489">Laserpegepind</translation> <translation id="4072264167173457037">Middel signal</translation> +<translation id="4217571870635786043">Diktering</translation> <translation id="4279490309300973883">Spejling</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth-enheden "<ph name="DEVICE_NAME" />" vil gerne have parringstilladelse.</translation> <translation id="453661520163887813">Fuldt opladet om <ph name="TIME" /></translation> <translation id="4544944664594876241">Genvejen til at låse skærmen er ændret. Brug <ph name="NEW_SHORTCUT" /> i stedet for <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Knap for Tekstoplæsning</translation> <translation id="4659419629803378708">ChromeVox er aktiveret</translation> <translation id="4776917500594043016">Adgangskode for <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">søg</translation> @@ -291,6 +290,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (ejer)</translation> <translation id="7647488630410863958">Lås enheden op for at se dine underretninger</translation> <translation id="7649070708921625228">Hjælp</translation> +<translation id="7654687942625752712">Tryk på begge lydstyrketaster, og hold dem nede i fem sekunder for at deaktivere oplæsning.</translation> <translation id="7658239707568436148">Annuller</translation> <translation id="7692480393933218409">Oplader tilsluttede USB-C-enheder</translation> <translation id="776344839111254542">Klik for at se opdateringsoplysninger</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 2767210..d69ed97 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nachtlicht: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-Karte ist gesperrt</translation> <translation id="2653659639078652383">Senden</translation> -<translation id="2675319268637823299">Ein Administrator hat die Mehrfachanmeldung für <ph name="USER_EMAIL" /> deaktiviert. - Alle Nutzer müssen sich abmelden, um fortfahren zu können.</translation> <translation id="2696763960464195425">Ihre Informationen werden bei der Abmeldung entfernt. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Tastatur einrichten</translation> <translation id="2718395828230677721">Nachtlicht</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Mauszeiger hervorheben</translation> <translation id="3513798432020909783">Konto verwaltet von <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Zurücksetzen auf "<ph name="FROM_LOCALE" />" (Neustart erforderlich)</translation> -<translation id="3582792037806681688">Die Mehrfachanmeldung wurde für einen Nutzer in dieser Sitzung deaktiviert.</translation> <translation id="3595596368722241419">Akku voll</translation> <translation id="3606978283550408104">Verbindung zur Braillezeile hergestellt</translation> <translation id="3621202678540785336">Eingang</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C-Gerät (Port hinten rechts)</translation> <translation id="4017989525502048489">Laserpointer</translation> <translation id="4072264167173457037">Durchschnittliches Signal</translation> +<translation id="4217571870635786043">Spracheingabe</translation> <translation id="4279490309300973883">Spiegelung</translation> <translation id="4321179778687042513">Strg</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Das Bluetooth-Gerät "<ph name="DEVICE_NAME" />" bittet um Erlaubnis für Kopplung.</translation> <translation id="453661520163887813">Vollständig geladen in <ph name="TIME" /> h</translation> <translation id="4544944664594876241">Die Tastenkombination zum Sperren des Bildschirms hat sich geändert. Bitte drücken Sie <ph name="NEW_SHORTCUT" /> statt <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Vorlese-Schaltfläche</translation> <translation id="4659419629803378708">ChromeVox aktiviert</translation> <translation id="4776917500594043016">Passwort für <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">Suchen</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (Eigentümer)</translation> <translation id="7647488630410863958">Gerät entsperren, um Benachrichtigungen zu sehen</translation> <translation id="7649070708921625228">Hilfe</translation> +<translation id="7654687942625752712">Sie können gesprochenes Feedback deaktivieren, indem Sie die beiden Lautstärketasten fünf Sekunden lang gedrückt halten.</translation> <translation id="7658239707568436148">Abbrechen</translation> <translation id="7692480393933218409">Verbundene USB-C-Geräte werden geladen</translation> <translation id="776344839111254542">Zum Aufrufen von Aktualisierungsdetails klicken</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 60fddf2..3e4355b 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Νυχτερινός φωτισμός: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Η κάρτα SIM είναι κλειδωμένη</translation> <translation id="2653659639078652383">Υποβολή</translation> -<translation id="2675319268637823299">Ένας διαχειριστής δεν επιτρέπει τη σύνδεση σε πολλούς λογαριασμούς για τον χρήστη <ph name="USER_EMAIL" />. - Όλοι οι χρήστες πρέπει να αποσυνδεθούν για να συνεχίσετε.</translation> <translation id="2696763960464195425">Οι πληροφορίες σας θα διαγραφούν κατά την αποσύνδεση. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Ρύθμιση του πληκτρολογίου σας</translation> <translation id="2718395828230677721">Νυχτερινός φωτισμός</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Επισήμανση δείκτη ποντικιού</translation> <translation id="3513798432020909783">Ο λογαριασμός είναι διαχειριζόμενος από τον χρήστη <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Αλλάξτε το πάλι σε "<ph name="FROM_LOCALE" />" (απαιτείται επανεκκίνηση)</translation> -<translation id="3582792037806681688">Δεν επιτρέπονται ο πολλαπλές συνδέσεις για έναν χρήστη σε αυτήν την περίοδο σύνδεσης</translation> <translation id="3595596368722241419">Μπαταρία πλήρης</translation> <translation id="3606978283550408104">Συνδέθηκε η οθόνη Braille.</translation> <translation id="3621202678540785336">Είσοδος</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index 5642e46..33c3d45 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Night Light: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM card is locked</translation> <translation id="2653659639078652383">Submit</translation> -<translation id="2675319268637823299">An administrator has dismissed multiple sign-ins for <ph name="USER_EMAIL" />. - All users must sign out to continue.</translation> <translation id="2696763960464195425">Your information will be removed when you sign out. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Set your keyboard</translation> <translation id="2718395828230677721">Night Light</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Highlight mouse cursor</translation> <translation id="3513798432020909783">Account managed by <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Change back to "<ph name="FROM_LOCALE" />" (requires restart)</translation> -<translation id="3582792037806681688">Multiple sign-in has been disallowed for a user in this session</translation> <translation id="3595596368722241419">Battery full</translation> <translation id="3606978283550408104">Braille display connected.</translation> <translation id="3621202678540785336">Input</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C device (right-hand-side back port)</translation> <translation id="4017989525502048489">Laser pointer</translation> <translation id="4072264167173457037">Medium signal</translation> +<translation id="4217571870635786043">Dictation</translation> <translation id="4279490309300973883">Mirroring</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth device "<ph name="DEVICE_NAME" />" would like permission to pair.</translation> <translation id="453661520163887813"><ph name="TIME" /> until full</translation> <translation id="4544944664594876241">The shortcut to lock the screen has changed. Please use <ph name="NEW_SHORTCUT" /> instead of <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Select-to-Speak button</translation> <translation id="4659419629803378708">ChromeVox enabled</translation> <translation id="4776917500594043016">Password for <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (owner)</translation> <translation id="7647488630410863958">Unlock device to view your notifications</translation> <translation id="7649070708921625228">Help</translation> +<translation id="7654687942625752712">Press and hold both volume keys for five seconds to disable spoken feedback.</translation> <translation id="7658239707568436148">Cancel</translation> <translation id="7692480393933218409">Charging connected USB-C devices</translation> <translation id="776344839111254542">Click to view update details</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index 429ae504..49a08935 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Luz nocturna: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">La tarjeta SIM está bloqueada</translation> <translation id="2653659639078652383">Enviar</translation> -<translation id="2675319268637823299">Un administrador inhabilitó el acceso múltiple para <ph name="USER_EMAIL" />. - Todos los usuarios deben salir de sus cuentas para continuar.</translation> <translation id="2696763960464195425">Se borrará tu información cuando salgas de la cuenta. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Establecer el teclado</translation> <translation id="2718395828230677721">Luz nocturna</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Resaltar el cursor del mouse</translation> <translation id="3513798432020909783">Cuenta administrada por <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Volver a "<ph name="FROM_LOCALE" />" (debes reiniciar).</translation> -<translation id="3582792037806681688">Se inhabilitó el acceso múltiple para un usuario en esta sesión.</translation> <translation id="3595596368722241419">Batería completa</translation> <translation id="3606978283550408104">Dispositivo braille conectado</translation> <translation id="3621202678540785336">Entrada</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 4db58d5..02da6d8 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Luz nocturna: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">La tarjeta SIM está bloqueada</translation> <translation id="2653659639078652383">Enviar</translation> -<translation id="2675319268637823299">Un administrador ha inhabilitado el inicio de sesión múltiple para <ph name="USER_EMAIL" />. - Todos los usuarios deben cerrar sesión para continuar.</translation> <translation id="2696763960464195425">Tu información se eliminará cuando cierres la sesión. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Elegir el teclado</translation> <translation id="2718395828230677721">Luz nocturna</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Resaltar el cursor del ratón</translation> <translation id="3513798432020909783">Cuenta gestionada por <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Cambiar de nuevo por "<ph name="FROM_LOCALE" />" (requiere reiniciar)</translation> -<translation id="3582792037806681688">Se ha inhabilitado el inicio de sesión múltiple para un usuario en esta sesión</translation> <translation id="3595596368722241419">Batería al máximo</translation> <translation id="3606978283550408104">La pantalla braille está conectada.</translation> <translation id="3621202678540785336">Entrada</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Dispositivo USB tipo C (puerto trasero derecho)</translation> <translation id="4017989525502048489">Puntero láser</translation> <translation id="4072264167173457037">Señal media</translation> +<translation id="4217571870635786043">Dictado</translation> <translation id="4279490309300973883">Duplicando</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para vincularse.</translation> <translation id="453661520163887813"><ph name="TIME" /> para completar la carga</translation> <translation id="4544944664594876241">La combinación de teclas para bloquear la pantalla ha cambiado. Utiliza <ph name="NEW_SHORTCUT" /> en lugar de <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Botón Enunciar Selección</translation> <translation id="4659419629803378708">ChromeVox habilitado</translation> <translation id="4776917500594043016">Contraseña de <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">buscar</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario)</translation> <translation id="7647488630410863958">Desbloquear el dispositivo para ver las notificaciones</translation> <translation id="7649070708921625228">Ayuda</translation> +<translation id="7654687942625752712">Mantén pulsadas ambas teclas de volumen durante cinco segundos para inhabilitar los mensajes de voz.</translation> <translation id="7658239707568436148">Cancelar</translation> <translation id="7692480393933218409">Cargando los dispositivos USB tipo C conectados</translation> <translation id="776344839111254542">Haz clic para ver los detalles de la actualización</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 1ad8eb2..e829c71 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Öövalgus: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-kaart on lukustatud</translation> <translation id="2653659639078652383">Esita</translation> -<translation id="2675319268637823299">Administraator on keelanud e-posti aadressi <ph name="USER_EMAIL" /> puhul mitmele kontole sisselogimise. - Jätkamiseks peavad kõik kasutajad välja logima.</translation> <translation id="2696763960464195425">Teie teave eemaldatakse väljalogimisel. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Valige klaviatuur</translation> <translation id="2718395828230677721">Öövalgus</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Hiirekursori esiletõstmine</translation> <translation id="3513798432020909783">Kontohaldur: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Muuda tagasi seadele <ph name="FROM_LOCALE" /> (nõuab taaskäivitust)</translation> -<translation id="3582792037806681688">Selle seanssi kasutaja jaoks on mitmele kontole sisselogimine keelatud</translation> <translation id="3595596368722241419">Aku on täis</translation> <translation id="3606978283550408104">Punktkirja ekraanikuva on ühendatud.</translation> <translation id="3621202678540785336">Sisend</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">C-tüüpi USB-seade (tagumine parempoolne port)</translation> <translation id="4017989525502048489">Laserkursor</translation> <translation id="4072264167173457037">Keskmine signaal</translation> +<translation id="4217571870635786043">Dikteerimine</translation> <translation id="4279490309300973883">Peegeldamine</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetoothi seade „<ph name="DEVICE_NAME" />” küsib luba sidumiseks.</translation> <translation id="453661520163887813"><ph name="TIME" /> täislaadimiseni</translation> <translation id="4544944664594876241">Ekraani lukustamise otseteed on muudetud. Kasutage vana otsetee <ph name="OLD_SHORTCUT" /> asemel uut otseteed <ph name="NEW_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Nupp Vali ja kuula</translation> <translation id="4659419629803378708">ChromeVox on lubatud</translation> <translation id="4776917500594043016">Kasutaja <ph name="USER_EMAIL_ADDRESS" /> parool</translation> <translation id="479989351350248267">otsing</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (omanik)</translation> <translation id="7647488630410863958">Märguannete vaatamiseks avage seade</translation> <translation id="7649070708921625228">Abi</translation> +<translation id="7654687942625752712">Suulise tagasiside keelamiseks vajutage ja hoidke mõlemat helitugevuse nuppu viis sekundit all.</translation> <translation id="7658239707568436148">Tühista</translation> <translation id="7692480393933218409">Ühendatud C-tüüpi USB-seadmete laadimine</translation> <translation id="776344839111254542">Klõpsake värskenduse üksikasjade vaatamiseks</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 186659b05..47640f6 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">«نور شب»: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">سیمکارت قفل است</translation> <translation id="2653659639078652383">ارائه</translation> -<translation id="2675319268637823299">یکی از سرپرستها ورود چندگانه به سیستم را برای <ph name="USER_EMAIL" /> غیرمجاز کرده است. - برای ادامه دادن، همه کاربران باید از سیستم خارج شوند.</translation> <translation id="2696763960464195425">هنگامیکه از سیستم خارج شوید، اطلاعاتتان حذف خواهد شد. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">تنظیم صفحهکلید</translation> <translation id="2718395828230677721">نور شب</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">برجسته کردن نشانگر موشواره</translation> <translation id="3513798432020909783">حساب تحت مدیریت <ph name="MANAGER_EMAIL" /> است</translation> <translation id="3573179567135747900">به "<ph name="FROM_LOCALE" />" تغییر دهید (به راهاندازی دوباره نیاز دارد)</translation> -<translation id="3582792037806681688">ورود چندگانه به سیستم برای یک کاربر در این جلسه مجاز نیست</translation> <translation id="3595596368722241419">باتری پر است</translation> <translation id="3606978283550408104">صفحهنمایش بریل متصل شد.</translation> <translation id="3621202678540785336">ورودی</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 0748041..5f8c34b 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Yövalo: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-kortti on lukittu.</translation> <translation id="2653659639078652383">Lähetä</translation> -<translation id="2675319268637823299">Järjestelmänvalvoja on kieltänyt käyttäjää <ph name="USER_EMAIL" /> kirjautumasta sisään useille tileille. - Kaikkien käyttäjien on kirjauduttava ulos jatkaakseen käyttöä.</translation> <translation id="2696763960464195425">Tietosi poistetaan, kun kirjaudut ulos. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Määritä näppäimistö</translation> <translation id="2718395828230677721">Yövalo</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Korosta hiiren osoitin</translation> <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> hallinnoi tiliä</translation> <translation id="3573179567135747900">Vaihda takaisin kieleksi <ph name="FROM_LOCALE" /> (vaatii uudelleenkäynnistyksen)</translation> -<translation id="3582792037806681688">Useisiin tileihin kirjautuminen on kielletty yhdeltä tämän istunnon käyttäjistä</translation> <translation id="3595596368722241419">Akku täynnä</translation> <translation id="3606978283550408104">Pistekirjoitusnäyttö on yhdistetty.</translation> <translation id="3621202678540785336">Äänitulo:</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">C-tyypin USB-laite (oikean sivun taaimmainen portti)</translation> <translation id="4017989525502048489">Laserosoitin</translation> <translation id="4072264167173457037">Keskitasoinen signaali</translation> +<translation id="4217571870635786043">Sanelu</translation> <translation id="4279490309300973883">Peilaus päällä</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS @@ -171,6 +169,7 @@ <translation id="4527045527269911712">Bluetooth-laite <ph name="DEVICE_NAME" /> pyytää lupaa laiteparin muodostamiseen.</translation> <translation id="453661520163887813"><ph name="TIME" /> jäljellä, kunnes akku on täynnä</translation> <translation id="4544944664594876241">Näytön lukituksen pikanäppäin on muuttunut. Käytä uutta pikanäppäintä <ph name="NEW_SHORTCUT" /> vanhan (<ph name="OLD_SHORTCUT" />) sijaan.</translation> +<translation id="4570957409596482333">Teksti puhuttuna ‑painike</translation> <translation id="4659419629803378708">ChromeVox käytössä</translation> <translation id="4776917500594043016">Osoitteen <ph name="USER_EMAIL_ADDRESS" /> salasana</translation> <translation id="479989351350248267">haku</translation> @@ -293,6 +292,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (omistaja)</translation> <translation id="7647488630410863958">Katso ilmoitukset avaamalla laitteesi lukitus.</translation> <translation id="7649070708921625228">Ohje</translation> +<translation id="7654687942625752712">Poista äänipalaute käytöstä painamalla molempia äänenvoimakkuuspainikkeita viiden sekunnin ajan.</translation> <translation id="7658239707568436148">Peruuta</translation> <translation id="7692480393933218409">Ladataan yhdistettyjä C-tyypin USB-laitteita</translation> <translation id="776344839111254542">Klikkaa nähdäksesi päivityksen tiedot</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index c28424b..229df050 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Night Light: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Naka-lock ang SIM card</translation> <translation id="2653659639078652383">Isumite</translation> -<translation id="2675319268637823299">Hindi pinayagan ng administrator ang maraming pag-sign in para sa <ph name="USER_EMAIL" />. -Dapat mag-sign out ang lahat ng user upang magpatuloy.</translation> <translation id="2696763960464195425">Aalisin ang iyong impormasyon kapag nag-sign out ka. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Itakda ang iyong keyboard</translation> <translation id="2718395828230677721">Night Light</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">I-highlight ang cursor ng mouse</translation> <translation id="3513798432020909783">Pinamamahalaan ni <ph name="MANAGER_EMAIL" /> ang account</translation> <translation id="3573179567135747900">Palitan pabalik sa "<ph name="FROM_LOCALE" />" (kailangang i-restart)</translation> -<translation id="3582792037806681688">Hindi pinayagan ang multiple na pag-sign in para sa isang user sa session na ito</translation> <translation id="3595596368722241419">Puno na ang baterya</translation> <translation id="3606978283550408104">Nagkonekta ng braille display.</translation> <translation id="3621202678540785336">Input</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index ebade7d..cffea91 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Éclairage nocturne : <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">La carte SIM est verrouillée</translation> <translation id="2653659639078652383">Valider</translation> -<translation id="2675319268637823299">Un administrateur a désactivé la connexion multicompte pour <ph name="USER_EMAIL" />. - Tous les utilisateurs doivent se déconnecter pour continuer.</translation> <translation id="2696763960464195425">Les informations vous concernant sont supprimées lorsque vous vous déconnectez. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Définir votre clavier</translation> <translation id="2718395828230677721">Éclairage nocturne</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Mettre le curseur de la souris en surbrillance</translation> <translation id="3513798432020909783">Compte géré par <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Revenir à "<ph name="FROM_LOCALE" />" (redémarrage requis)</translation> -<translation id="3582792037806681688">La connexion multicompte a été désactivée pour un utilisateur de cette session.</translation> <translation id="3595596368722241419">Batterie pleine</translation> <translation id="3606978283550408104">La plage braille est connectée.</translation> <translation id="3621202678540785336">Entrée</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 0d91bf4..7e7109c 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">રાત્રિ પ્રકાશ: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM કાર્ડ લૉક કરેલ છે</translation> <translation id="2653659639078652383">સબમિટ કરો</translation> -<translation id="2675319268637823299">વ્યવસ્થાપકે <ph name="USER_EMAIL" /> માટે બહુવિધ સાઇન ઇનને નામંજૂર કર્યું છે. - ચાલુ રાખવા માટે બધા વપરાશકર્તાઓએ સાઇન આઉટ કરવું જરૂરી છે.</translation> <translation id="2696763960464195425">જ્યારે તમે સાઇન આઉટ કરશો, ત્યારે તમારી માહિતી કાઢી નાખવામાં આવશે. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">તમારું કીબોર્ડ સેટ કરો</translation> <translation id="2718395828230677721">રાત્રિ પ્રકાશ</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">માઉસ કર્સરને હાઇલાઇટ કરો</translation> <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> દ્વારા મેનેજ કરાતું એકાઉન્ટ</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" પર પાછાં જાઓ (પુનર્પ્રારંભની જરૂર છે)</translation> -<translation id="3582792037806681688">આ સત્રમાં કોઈ વપરાશકર્તા માટે બહુવિધ સાઇન-ઇન નામંજૂર કરવામાં આવેલ છે</translation> <translation id="3595596368722241419">બૅટરી પૂર્ણ ચાર્જ</translation> <translation id="3606978283550408104">બ્રેઇલ પ્રદર્શન કનેક્ટ થયું.</translation> <translation id="3621202678540785336">ઇનપુટ</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 3be68a0..98a45141 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">नाइट लाइट: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">सिम कार्ड लॉक है</translation> <translation id="2653659639078652383">सबमिट करें</translation> -<translation id="2675319268637823299">किसी एडमिन ने <ph name="USER_EMAIL" /> के लिए एक से ज़्यादा साइन-इन की अनुमति नहीं दी है. - जारी रखने के लिए सभी उपयोगकर्ताओं को साइन आउट करना होगा.</translation> <translation id="2696763960464195425">जब आप साइन आउट करेंगे तो आपकी जानकारी हटा दी जाएगी. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">अपना कीबोर्ड सेट करें</translation> <translation id="2718395828230677721">नाइट लाइट</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">माउस कर्सर को हाइलाइट करें</translation> <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> खाता संभालते हैं</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" में पुन: बदलें (फिर से आरंभ करने की आवश्यकता है)</translation> -<translation id="3582792037806681688">इस सत्र के उपयोगकर्ता के लिए एकाधिक प्रवेश को अक्षम कर दिया गया है</translation> <translation id="3595596368722241419">बैटरी पूर्ण</translation> <translation id="3606978283550408104">ब्रेल डिस्प्ले कनेक्ट हो गया.</translation> <translation id="3621202678540785336">इनपुट</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C डिवाइस (दायां पिछला पोर्ट)</translation> <translation id="4017989525502048489">लेज़र पॉइंटर</translation> <translation id="4072264167173457037">मध्यम सिग्नल</translation> +<translation id="4217571870635786043">लिखवाना</translation> <translation id="4279490309300973883">मिरर करना</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -163,12 +161,14 @@ <translation id="4379531060876907730">ये आपके स्टाइलस टूल हैं</translation> <translation id="4421231901400348175">आपकी स्क्रीन का नियंत्रण दूरस्थ सहायक के द्वारा <ph name="HELPER_NAME" /> से साझा किया जा रहा है.</translation> <translation id="4430019312045809116">मात्रा</translation> +<translation id="4450893287417543264">फिर से न दिखाएं</translation> <translation id="4479639480957787382">इथरनेट</translation> <translation id="4481530544597605423">अयुग्मित किए गए डिवाइस</translation> <translation id="4508225577814909926"><ph name="NAME" />: कनेक्ट हो रहा है...</translation> <translation id="4527045527269911712">ब्लूटूथ डिवाइस "<ph name="DEVICE_NAME" />" युग्मित करने की अनुमति चाहता है.</translation> <translation id="453661520163887813">पूरी तरह चार्ज होने में <ph name="TIME" /></translation> <translation id="4544944664594876241">स्क्रीन को लॉक करने का शॉर्टकट बदल गया है. कृपया <ph name="OLD_SHORTCUT" /> के बजाय <ph name="NEW_SHORTCUT" /> का उपयोग करें.</translation> +<translation id="4570957409596482333">चुनें और सुनें बटन</translation> <translation id="4659419629803378708">ChromeVox सक्षम है</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> के लिए पासवर्ड</translation> <translation id="479989351350248267">search</translation> @@ -195,6 +195,7 @@ <translation id="54609108002486618">प्रबंधित</translation> <translation id="553675580533261935">सत्र से बाहर निकलें</translation> <translation id="5548285847212963613">"<ph name="EXTENSION_NAME" />" एक्सटेंशन इस नेटवर्क से कनेक्ट करने में सहायता कर सकता है.</translation> +<translation id="554893713779400387">डिक्टेशन (आप जो बोलते हैं उसे लिखना) टॉगल करें</translation> <translation id="5571066253365925590">ब्लूटूथ सक्षम किया गया</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">बोला गया फ़ीडबैक अक्षम करने के लिए Ctrl + Alt + Z दबाएं.</translation> @@ -282,11 +283,13 @@ <translation id="7536035074519304529">IP पता: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> <ph name="SPECIFIED_RESOLUTION" /> का समर्थन नहीं करता. रिज़ॉल्यूशन को <ph name="FALLBACK_RESOLUTION" /> में बदल दिया गया था</translation> <translation id="7562368315689366235">इमोजी पैलेट</translation> +<translation id="7564874036684306347">विंडो को किसी दूसरे डेस्कटॉप पर ले जाने से अनचाहा बर्ताव हो सकता है. इसके बाद की सूचनाएं, विंडो और संवाद डेस्कटॉप के बीच बंट सकती हैं.</translation> <translation id="7569509451529460200">ब्रेल और ChromeVox सक्षम हैं</translation> <translation id="7593891976182323525">Search या Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालिक)</translation> <translation id="7647488630410863958">अपने नोटिफ़िकेशन देखने के लिए डिवाइस अनलॉक करें</translation> <translation id="7649070708921625228">सहायता</translation> +<translation id="7654687942625752712">कंप्यूटर का बोलकर दिया गया जवाब बंद करने के लिए दोनों वॉल्यूम की पांच सेकंड तक दबाकर रखें.</translation> <translation id="7658239707568436148">अभी नहीं</translation> <translation id="7692480393933218409">कनेक्ट किए गए USB-C डिवाइस चार्ज कर रहा है</translation> <translation id="776344839111254542">अपडेट के विवरण देखने के लिए क्लिक करें</translation> @@ -294,6 +297,7 @@ <translation id="7798302898096527229">रद्द करने के लिए Search या Shift दबाएं.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> और <ph name="MINUTE" /></translation> <translation id="7829386189513694949">मज़बूत सिग्नल</translation> +<translation id="7842569679327885685">चेतावनी: यह फ़ीचर प्रयोग के लिए है</translation> <translation id="7904094684485781019">इस खाते के व्यवस्थापक ने एकाधिक प्रवेश को अस्वीकार कर दिया है.</translation> <translation id="7933084174919150729">Google Assistant सिर्फ़ प्राथमिक प्रोफ़ाइल के लिए उपलब्ध है.</translation> <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> और <ph name="SECOND_PARENT_EMAIL" /> खाता संभालते हैं</translation> @@ -346,6 +350,7 @@ <translation id="9091626656156419976">प्रदर्शन <ph name="DISPLAY_NAME" /> निकाला जा रहा है</translation> <translation id="9111102763498581341">अनलॉक करें</translation> <translation id="9151726767154816831">अपडेट करने के लिए पुनः प्रारंभ करें और पावरवॉश करें</translation> +<translation id="9179259655489829027">यह फ़ीचर आपको पासवर्ड की ज़रूरत के बिना किसी भी साइन इन किए हुए उपयोगकर्ता को जल्दी से एक्सेस करने देता है. इस फ़ीचर का इस्तेमाल सिर्फ़ अपने भरोसेमंद खातों के साथ करें.</translation> <translation id="9194617393863864469">किसी अन्य उपयोगकर्ता में प्रवेश करें...</translation> <translation id="9201131092683066720">बैटरी <ph name="PERCENTAGE" />% भरी हुई है.</translation> <translation id="9210037371811586452">संयुक्त डेस्कटॉप मोड से बाहर निकाला जा रहा है</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index 4c8a9519..a60ac93 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Noćno svjetlo: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM kartica je zaključana</translation> <translation id="2653659639078652383">Pošalji</translation> -<translation id="2675319268637823299">Administrator je onemogućio višestruku prijavu za <ph name="USER_EMAIL" />. - Svi se korisnici moraju odjaviti za nastavak.</translation> <translation id="2696763960464195425">Vaši će podaci biti uklonjeni kada se odjavite. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Postavite tipkovnicu</translation> <translation id="2718395828230677721">Noćno svjetlo</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Istakni pokazivač miša</translation> <translation id="3513798432020909783">Računom upravlja <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Vratite na "<ph name="FROM_LOCALE" />" (zahtijeva ponovno pokretanje)</translation> -<translation id="3582792037806681688">Višestruka prijava odbijena je za korisnika u ovoj sesiji</translation> <translation id="3595596368722241419">Baterija je puna</translation> <translation id="3606978283550408104">Brajev je redak povezan.</translation> <translation id="3621202678540785336">Ulaz</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C uređaj (stražnji desni priključak)</translation> <translation id="4017989525502048489">Laserski pokazivač</translation> <translation id="4072264167173457037">Signal srednje jačine</translation> +<translation id="4217571870635786043">Diktat</translation> <translation id="4279490309300973883">Zrcaljenje</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth uređaj "<ph name="DEVICE_NAME" />" traži dopuštenje za uparivanje.</translation> <translation id="453661520163887813"><ph name="TIME" /> do potpune napunjenosti</translation> <translation id="4544944664594876241">Promijenio se prečac za zaključavanje zaslona. Upotrijebite <ph name="NEW_SHORTCUT" /> umjesto <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Gumb Odabira za govor</translation> <translation id="4659419629803378708">ChromeVox omogućen</translation> <translation id="4776917500594043016">Zaporka za adresu <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (vlasnik)</translation> <translation id="7647488630410863958">Otključajte uređaj da biste vidjeli obavijesti</translation> <translation id="7649070708921625228">Pomoć</translation> +<translation id="7654687942625752712">Pritisnite i zadržite tipke za glasnoću pet sekundi da biste onemogućili govorne povratne informacije.</translation> <translation id="7658239707568436148">Odustani</translation> <translation id="7692480393933218409">Punjenje povezanih USB-C uređaja</translation> <translation id="776344839111254542">Kliknite da biste vidjeli pojedinosti o ažuriranju</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index 8205e7eb..0d5e75e 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Éjszakai fény: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">A SIM-kártya zárolva van</translation> <translation id="2653659639078652383">Elküldés</translation> -<translation id="2675319268637823299">A rendszergazda letiltotta a többfiókos bejelentkezést <ph name="USER_EMAIL" /> számára. - Az összes felhasználónak ki kell jelentkeznie a folytatáshoz.</translation> <translation id="2696763960464195425">Adatait kijelentkezéskor eltávolítjuk. <ph name="LEARN_MORE" />.</translation> <translation id="2700493154570097719">Billentyűzetet beállítása</translation> <translation id="2718395828230677721">Éjszakai fény</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Egérmutató kiemelése</translation> <translation id="3513798432020909783">A fiókot a(z) <ph name="MANAGER_EMAIL" /> kezeli</translation> <translation id="3573179567135747900">Visszatérés ehhez: "<ph name="FROM_LOCALE" />" (újraindítás szükséges)</translation> -<translation id="3582792037806681688">A többfiókos bejelentkezés le van tiltva egy felhasználó miatt ebben a munkamenetben</translation> <translation id="3595596368722241419">Akkumulátor feltöltve</translation> <translation id="3606978283550408104">Braille-kijelző csatlakoztatva.</translation> <translation id="3621202678540785336">Bemenet</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">C típusú USB-vel kompatibilis eszköz (jobb hátsó port)</translation> <translation id="4017989525502048489">Lézermutató</translation> <translation id="4072264167173457037">Közepes jel</translation> +<translation id="4217571870635786043">Diktálás</translation> <translation id="4279490309300973883">Tükrözés</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">A(z) „<ph name="DEVICE_NAME" />” Bluetooth-eszköz engedélyt kér a párosításra.</translation> <translation id="453661520163887813"><ph name="TIME" /> a teljes feltöltésig</translation> <translation id="4544944664594876241">Megváltozott a képernyőzárolás billentyűkódja. A <ph name="OLD_SHORTCUT" /> helyett használja a következőt: <ph name="NEW_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Felolvasás gomb</translation> <translation id="4659419629803378708">ChromeVox bekapcsolva</translation> <translation id="4776917500594043016">A(z) <ph name="USER_EMAIL_ADDRESS" /> fiókhoz tartozó jelszó</translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (tulajdonos)</translation> <translation id="7647488630410863958">Az eszköz zárolásának feloldása az értesítések megtekintéséhez</translation> <translation id="7649070708921625228">Súgó</translation> +<translation id="7654687942625752712">A hangos visszajelzés kikapcsolásához öt másodpercig tartsa lenyomva mindkét hangerőgombot.</translation> <translation id="7658239707568436148">Mégse</translation> <translation id="7692480393933218409">C típusú USB-vel kompatibilis eszközök töltése</translation> <translation id="776344839111254542">Kattintson a frissítés részleteinek megtekintéséhez</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index ecb997f..ab38811 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Cahaya Malam: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Kartu SIM terkunci</translation> <translation id="2653659639078652383">Kirim</translation> -<translation id="2675319268637823299">Administrator tidak mengizinkan penggunaan login multipel untuk <ph name="USER_EMAIL" />. - Semua pengguna harus logout untuk melanjutkan.</translation> <translation id="2696763960464195425">Informasi akan dihapus saat Anda logout. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Setel keyboard Anda</translation> <translation id="2718395828230677721">Cahaya Malam</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Sorot kursor mouse</translation> <translation id="3513798432020909783">Akun dikelola oleh <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Ubah kembali ke "<ph name="FROM_LOCALE" />" (harus dinyalakan ulang)</translation> -<translation id="3582792037806681688">Fitur masuk banyak akun telah dilarang untuk pengguna di sesi ini</translation> <translation id="3595596368722241419">Baterai penuh</translation> <translation id="3606978283550408104">Layar Braille tersambung.</translation> <translation id="3621202678540785336">Masukan</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Perangkat USB-C (port belakang sebelah kanan)</translation> <translation id="4017989525502048489">Penunjuk laser</translation> <translation id="4072264167173457037">Sinyal sedang</translation> +<translation id="4217571870635786043">Dikte</translation> <translation id="4279490309300973883">Mencerminkan</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Perangkat Bluetooth "<ph name="DEVICE_NAME" />" meminta izin untuk bersanding.</translation> <translation id="453661520163887813"><ph name="TIME" /> sampai penuh</translation> <translation id="4544944664594876241">Pintasan untuk mengunci layar telah berubah. Gunakan <ph name="NEW_SHORTCUT" /> sebagai gantinya <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Tombol Klik untuk Diucapkan</translation> <translation id="4659419629803378708">ChromeVox diaktifkan</translation> <translation id="4776917500594043016">Sandi untuk <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -284,12 +283,13 @@ <translation id="7536035074519304529">Alamat IP: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> tidak mendukung <ph name="SPECIFIED_RESOLUTION" />. Resolusi diubah menjadi <ph name="FALLBACK_RESOLUTION" /></translation> <translation id="7562368315689366235">Palet emoji</translation> -<translation id="7564874036684306347">Memindahkan jendela ke desktop lain dapat mengakibatkan perilaku tak terduga. Notifikasi, jendela, dan dialog berikutnya dapat terpisah antar-desktop.</translation> +<translation id="7564874036684306347">Memindahkan jendela ke desktop lain dapat mengakibatkan perilaku tak terduga. Notifikasi, jendela, dan dialog berikutnya dapat terpisah antardesktop.</translation> <translation id="7569509451529460200">Braille dan ChromeVox diaktifkan</translation> <translation id="7593891976182323525">Telusuri atau Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation> <translation id="7647488630410863958">Buka kunci perangkat untuk melihat notifikasi</translation> <translation id="7649070708921625228">Bantuan</translation> +<translation id="7654687942625752712">Tekan dan tahan kedua tombol volume selama 5 detik untuk menonaktifkan masukan lisan.</translation> <translation id="7658239707568436148">Batal</translation> <translation id="7692480393933218409">Mengisi daya perangkat USB-C yang tersambung</translation> <translation id="776344839111254542">Klik untuk melihat detail update</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index cceb70a..4bab480 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Luminosità notturna: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">La scheda SIM è bloccata</translation> <translation id="2653659639078652383">Invia</translation> -<translation id="2675319268637823299">Un amministratore ha vietato l'accesso simultaneo per <ph name="USER_EMAIL" />. - Per continuare, devono disconnettersi tutti gli utenti.</translation> <translation id="2696763960464195425">Le tue informazioni verranno rimosse all'uscita dall'account. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Imposta la tastiera</translation> <translation id="2718395828230677721">Luminosità notturna</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Evidenzia il puntatore del mouse</translation> <translation id="3513798432020909783">Account gestito da <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Torna a "<ph name="FROM_LOCALE" />" (è necessario riavviare)</translation> -<translation id="3582792037806681688">L'accesso simultaneo è stato vietato per un utente di questa sessione</translation> <translation id="3595596368722241419">Batteria carica</translation> <translation id="3606978283550408104">Display Braille collegato.</translation> <translation id="3621202678540785336">Ingresso</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Dispositivo USB-C (porta posteriore destra)</translation> <translation id="4017989525502048489">Puntatore laser</translation> <translation id="4072264167173457037">Segnale medio</translation> +<translation id="4217571870635786043">Dettatura</translation> <translation id="4279490309300973883">Mirroring</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Il dispositivo Bluetooth "<ph name="DEVICE_NAME" />" chiede l'autorizzazione per essere accoppiato.</translation> <translation id="453661520163887813"><ph name="TIME" /> alla ricarica completa</translation> <translation id="4544944664594876241">La scorciatoia per bloccare lo schermo è cambiata. Utilizza <ph name="NEW_SHORTCUT" /> invece di <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Pulsante Seleziona per ascoltare</translation> <translation id="4659419629803378708">ChromeVox attivato</translation> <translation id="4776917500594043016">Password per <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">ricerca</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietario)</translation> <translation id="7647488630410863958">Sblocca il dispositivo per visualizzare le notifiche</translation> <translation id="7649070708921625228">Guida</translation> +<translation id="7654687942625752712">Tieni premuti entrambi i tasti del volume per cinque secondi per disattivare la funzione di lettura vocale.</translation> <translation id="7658239707568436148">Annulla</translation> <translation id="7692480393933218409">Dispositivi USB-C collegati in carica</translation> <translation id="776344839111254542">Fai clic per visualizzare i dettagli dell'aggiornamento</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index bf90e65..44c6b062 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">תאורת לילה: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">כרטיס ה-SIM נעול</translation> <translation id="2653659639078652383">שלח</translation> -<translation id="2675319268637823299">מנהל מערכת ביטל את ההרשאה של <ph name="USER_EMAIL" /> לכניסה עם מספר חשבונות. - כדי להמשיך, כל המשתמשים חייבים לבצע יציאה.</translation> <translation id="2696763960464195425">כשיוצאים מהחשבון הפרטים מוסרים. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">בחירת מקלדת</translation> <translation id="2718395828230677721">תאורת לילה</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">הדגשה של סמן העכבר</translation> <translation id="3513798432020909783">החשבון מנוהל על-ידי <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">שנה בחזרה ל"<ph name="FROM_LOCALE" />" (דורש הפעלה מחדש)</translation> -<translation id="3582792037806681688">בוטלה הרשאת הכניסה עם מספר חשבונות למשתמש בהפעלה זו</translation> <translation id="3595596368722241419">סוללה מלאה</translation> <translation id="3606978283550408104">צג ברייל מחובר</translation> <translation id="3621202678540785336">קלט</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">מכשיר עם יציאת USB-C (יציאה ימנית-אחורית)</translation> <translation id="4017989525502048489">סמן לייזר</translation> <translation id="4072264167173457037">אות בינוני</translation> +<translation id="4217571870635786043">הכתבה</translation> <translation id="4279490309300973883">שיקוף</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">מכשיר ה-Bluetooth "<ph name="DEVICE_NAME" />" מבקש הרשאה לבצע התאמה.</translation> <translation id="453661520163887813"><ph name="TIME" /> עד למילוי</translation> <translation id="4544944664594876241">מקש הקיצור לנעילת המסך השתנה. השתמש ב-<ph name="NEW_SHORTCUT" /> במקום ב-<ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">לחצן הקראה</translation> <translation id="4659419629803378708">ChromeVox הופעל</translation> <translation id="4776917500594043016">סיסמה עבור <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">Search</translation> @@ -196,7 +195,7 @@ <translation id="54609108002486618">מנוהל</translation> <translation id="553675580533261935">יציאה מההפעלה</translation> <translation id="5548285847212963613">התוסף "<ph name="EXTENSION_NAME" />" יכול לעזור בהתחברות אל הרשת הזו.</translation> -<translation id="554893713779400387">החלפת מצב הכתבה</translation> +<translation id="554893713779400387">הפעלת הכתבה או הפסקתה</translation> <translation id="5571066253365925590">Bluetooth מופעל</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">הקש על Ctrl + Alt + Z כדי להשבית את המשוב הקולי.</translation> @@ -292,6 +291,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (בעלים)</translation> <translation id="7647488630410863958">בטל את נעילת המכשיר כדי להציג את ההודעות</translation> <translation id="7649070708921625228">עזרה</translation> +<translation id="7654687942625752712">כדי להשבית את קורא המסך הקולי, צריך ללחוץ על שני לחצני עוצמת הקול למשך חמש שניות.</translation> <translation id="7658239707568436148">ביטול</translation> <translation id="7692480393933218409">טעינת מכשירים מחוברים עם יציאת USB-C</translation> <translation id="776344839111254542">לחץ כדי להציג את פרטי העדכון</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 0604232..5e9fb369 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">読書灯: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM カードはロックされています</translation> <translation id="2653659639078652383">送信</translation> -<translation id="2675319268637823299"><ph name="USER_EMAIL" /> のマルチログインは、管理者によって禁止されています。 - 続行するには、すべてのユーザーがログアウトする必要があります。</translation> <translation id="2696763960464195425">ログアウトすると利用時の情報は削除されます。<ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">キーボードを設定</translation> <translation id="2718395828230677721">読書灯</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">マウスカーソルをハイライト表示する</translation> <translation id="3513798432020909783">このアカウントは <ph name="MANAGER_EMAIL" /> により管理されています</translation> <translation id="3573179567135747900">「<ph name="FROM_LOCALE" />」に戻します(再起動が必要です)</translation> -<translation id="3582792037806681688">このセッションで 1 人のユーザーに対するマルチ ログインは禁止されています。</translation> <translation id="3595596368722241419">バッテリー残量: 満</translation> <translation id="3606978283550408104">ブライユ点字ディスプレイが接続されています。</translation> <translation id="3621202678540785336">入力</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index fe612992..9c031e6 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">ನೈಟ್ ಲೈಟ್: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">ಸಿಮ್ ಕಾರ್ಡ್ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="2653659639078652383">ಸಲ್ಲಿಸು</translation> -<translation id="2675319268637823299"><ph name="USER_EMAIL" /> ಗೆ ಬಹು ಸೈನ್-ಇನ್ ಅನುಮತಿಯನ್ನು ನಿರ್ವಾಹಕರು ರದ್ದುಗೊಳಿಸಿದ್ದಾರೆ. -ಮುಂದುವರಿಯಲು ಎಲ್ಲ ಬಳಕೆದಾರರು ಸೈನ್ ಔಟ್ ಮಾಡಬೇಕು.</translation> <translation id="2696763960464195425">ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ</translation> <translation id="2718395828230677721">ನೈಟ್ ಲೈಟ್</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">ಮೌಸ್ ಕರ್ಸರ್ ಎದ್ದುಗಾಣಿಸಿ</translation> <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> ಮೂಲಕ ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" ಗೆ ಮರುಬದಲಾಯಿಸಿ (ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ)</translation> -<translation id="3582792037806681688">ಬಹು ಸೈನ್-ಇನ್ ಅನುಮತಿಯನ್ನು ಈ ಸೆಷನ್ನಲ್ಲಿ ಬಳಕೆದಾರರೊಬ್ಬರಿಗೆ ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="3595596368722241419">ಬ್ಯಾಟರಿ ಭರ್ತಿಯಾಗಿದೆ</translation> <translation id="3606978283550408104">ಬ್ರೇಲ್ ಪ್ರದರ್ಶನವನ್ನು ಸಂಪರ್ಕಗೊಳಿಸಲಾಗಿದೆ.</translation> <translation id="3621202678540785336">ಇನ್ಪುಟ್</translation> @@ -163,6 +160,7 @@ <translation id="4379531060876907730">ಇವುಗಳು ನಿಮ್ಮ ಸ್ಟೈಲಸ್ ಪರಿಕರಗಳಾಗಿವೆ</translation> <translation id="4421231901400348175">ರಿಮೋಟ್ ಸಹಾಯದ ಮೂಲಕ <ph name="HELPER_NAME" /> ಜೊತೆಗೆ ನಿಮ್ಮ ಪರದೆಯ ನಿಯಂತ್ರಣವನ್ನು ಹಂಚಲಾಗುತ್ತಿದೆ.</translation> <translation id="4430019312045809116">ವಾಲ್ಯೂಮ್</translation> +<translation id="4450893287417543264">ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ</translation> <translation id="4479639480957787382">ಈಥರ್ನೆಟ್</translation> <translation id="4481530544597605423">ಜೋಡಿಯಾಗಿರದ ಸಾಧನಗಳು</translation> <translation id="4508225577814909926"><ph name="NAME" />: ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ...</translation> @@ -195,6 +193,7 @@ <translation id="54609108002486618">ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> <translation id="553675580533261935">ಸೆಷನ್ ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="5548285847212963613">ಈ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ಸಹಾಯ ಮಾಡಬಹುದು.</translation> +<translation id="554893713779400387">ಡಿಕ್ಟೇಶನ್ ಟಾಗಲ್ ಮಾಡಿ</translation> <translation id="5571066253365925590">ಬ್ಲೂಟೂತ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು Ctrl + Alt + Z ಒತ್ತಿ.</translation> @@ -283,6 +282,7 @@ <translation id="7536035074519304529">ಐಪಿ ವಿಳಾಸ: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="SPECIFIED_RESOLUTION" /> ಅನ್ನು <ph name="DISPLAY_NAME" /> ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು <ph name="FALLBACK_RESOLUTION" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ</translation> <translation id="7562368315689366235">ಎಮೋಜಿ ಪ್ಯಾಲೆಟ್</translation> +<translation id="7564874036684306347">ವಿಂಡೋಗಳನ್ನು ಇತರ ಡೆಸ್ಕ್ಟಾಪ್ಗೆ ಸರಿಸಿದರೆ, ಅದು ಅನಿರೀಕ್ಷಿತ ವರ್ತನೆಗೆ ಕಾರಣವಾಗಬಹುದು. ಆನಂತರ ಬರುವ ಅಧಿಸೂಚನೆಗಳು, ವಿಂಡೋಗಳು ಮತ್ತು ಡೈಲಾಗ್ಗಳು ಡೆಸ್ಕ್ಟಾಪ್ಗಳ ನಡುವೆ ವಿಭಜನೆಯಾಗಬಹುದು.</translation> <translation id="7569509451529460200">ಬ್ರೈಲ್ ಹಾಗೂ ChromeVox ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="7593891976182323525">ಹುಡುಕಾಟ ಅಥವಾ Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (ಮಾಲೀಕರು)</translation> @@ -295,6 +295,7 @@ <translation id="7798302898096527229">ರದ್ದುಗೊಳಿಸಲು 'ಹುಡುಕಾಟ' ಅಥವಾ Shift ಅನ್ನು ಒತ್ತಿರಿ.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> ಮತ್ತು <ph name="MINUTE" /></translation> <translation id="7829386189513694949">ಪ್ರಬಲ ಸಿಗ್ನಲ್</translation> +<translation id="7842569679327885685">ಎಚ್ಚರಿಕೆ: ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯ</translation> <translation id="7904094684485781019">ಈ ಖಾತೆಗಾಗಿ ನಿರ್ವಾಹಕರು ಬಹುವಿಧದ ಸೈನ್ ಇನ್ ಅನುಮತಿಸಿಲ್ಲ.</translation> <translation id="7933084174919150729">ಪ್ರಾಥಮಿಕ ಪ್ರೊಫೈಲ್ಗೆ ಮಾತ್ರ Google ಸಹಾಯಕ ಲಭ್ಯವಿದೆ.</translation> <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> ಮತ್ತು <ph name="SECOND_PARENT_EMAIL" /> ಮೂಲಕ ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> @@ -347,6 +348,7 @@ <translation id="9091626656156419976">ಪ್ರದರ್ಶನ <ph name="DISPLAY_NAME" /> ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation> <translation id="9111102763498581341">ಅನ್ಲಾಕ್</translation> <translation id="9151726767154816831">ನವೀಕರಿಸಲು ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಪವರ್ವಾಶ್ ಮಾಡಿ</translation> +<translation id="9179259655489829027">ಸೈನ್-ಇನ್ ಮಾಡಿರುವ ಯಾವುದೇ ಬಳಕೆದಾರನಿಗೆ, ಪಾಸ್ವರ್ಡ್ ಇಲ್ಲದೆಯೇ ಪ್ರವೇಶ ಪಡೆಯಲು ಈ ವೈಶಿಷ್ಟ್ಯವು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ನಿಮಗೆ ವಿಶ್ವಾಸವಿರುವ ಖಾತೆಗಳೊಂದಿಗೆ ಮಾತ್ರ ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಿ.</translation> <translation id="9194617393863864469">ಮತ್ತೊಂದು ಬಳಕೆದಾರರಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ...</translation> <translation id="9201131092683066720">ಬ್ಯಾಟರಿ <ph name="PERCENTAGE" />% ಪೂರ್ಣವಾಗಿದೆ.</translation> <translation id="9210037371811586452">ಏಕೀಕೃತ ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್ನಿಂದ ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index 27fbdb9..ce5e35e 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">야간 조명: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM 카드가 잠겨 있습니다.</translation> <translation id="2653659639078652383">제출</translation> -<translation id="2675319268637823299">관리자가 <ph name="USER_EMAIL" />의 멀티 로그인을 허용하지 않았습니다. - 계속하려면 모든 사용자가 로그아웃해야 합니다.</translation> <translation id="2696763960464195425">로그아웃하면 사용자 정보가 삭제됩니다. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">키보드 설정</translation> <translation id="2718395828230677721">야간 조명</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">마우스 커서 강조표시</translation> <translation id="3513798432020909783">계정 관리자: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">'<ph name="FROM_LOCALE" />'(으)로 다시 변경(다시 시작해야 함)</translation> -<translation id="3582792037806681688">이 세션의 사용자에게 멀티 로그인이 허용되지 않습니다.</translation> <translation id="3595596368722241419">배터리 충전 완료</translation> <translation id="3606978283550408104">점자 디스플레이가 연결되었습니다.</translation> <translation id="3621202678540785336">입력</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 2b18aa88..a6e31e9 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nakties šviesa: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM kortelė užrakinta</translation> <translation id="2653659639078652383">Pateikti</translation> -<translation id="2675319268637823299">Administratorius neleido <ph name="USER_EMAIL" /> prisijungti prie kelių paskyrų. - Kad būtų galima tęsti, visi naudotojai turi atsijungti.</translation> <translation id="2696763960464195425">Jūsų informacija bus pašalinta, kai atsijungsite. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Klaviatūros nustatymas</translation> <translation id="2718395828230677721">Nakties šviesa</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Paryškinti pelės žymeklį</translation> <translation id="3513798432020909783">Paskyrą tvarko: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Pakeisti atgal į „<ph name="FROM_LOCALE" />“ (reikia paleisti iš naujo)</translation> -<translation id="3582792037806681688">Šioje sesijoje naudotojui neleidžiama prisijungti prie kelių paskyrų</translation> <translation id="3595596368722241419">Akumuliatorius įkrautas</translation> <translation id="3606978283550408104">Brailio ekranas prijungtas.</translation> <translation id="3621202678540785336">Įvestis</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index c2b2615..753098b53 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nakts režīms: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM karte ir bloķēta.</translation> <translation id="2653659639078652383">Iesniegt</translation> -<translation id="2675319268637823299">Administrators ir aizliedzis lietotājam <ph name="USER_EMAIL" /> vairākkārtēju pierakstīšanos. - Lai turpinātu, visiem lietotājiem ir jāizrakstās.</translation> <translation id="2696763960464195425">Kad izrakstīsieties, jūsu informācija tiks noņemta. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Iestatiet savu tastatūru</translation> <translation id="2718395828230677721">Nakts režīms</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Izcelt peles kursoru</translation> <translation id="3513798432020909783">Kontu pārvalda <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Mainīt atpakaļ uz <ph name="FROM_LOCALE" /> (nepieciešama restartēšana)</translation> -<translation id="3582792037806681688">Lietotāja vairākkārtēja pierakstīšanās šajā sesijā tika aizliegta.</translation> <translation id="3595596368722241419">Akumulators pilns</translation> <translation id="3606978283550408104">Savienojums ar Braila displeju ir izveidots.</translation> <translation id="3621202678540785336">Ievade</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C ierīce (pieslēgvieta labajā pusē aizmugurē)</translation> <translation id="4017989525502048489">Lāzera rādītājs</translation> <translation id="4072264167173457037">Vidēji spēcīgs signāls</translation> +<translation id="4217571870635786043">Diktēšana</translation> <translation id="4279490309300973883">Spoguļošana</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth ierīce “<ph name="DEVICE_NAME" />” vēlas saņemt atļauju, lai izveidotu savienojumu pārī.</translation> <translation id="453661520163887813">Līdz pilnai uzlādei: <ph name="TIME" /></translation> <translation id="4544944664594876241">Tika mainīti īsinājumtaustiņi, ar kuriem var bloķēt ekrānu. Lūdzu, turpmāk izmantojiet <ph name="NEW_SHORTCUT" />, nevis <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Poga “Atlasīt, lai izrunātu”</translation> <translation id="4659419629803378708">ChromeVox iespējots</translation> <translation id="4776917500594043016">Parole e-pasta adresei <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">meklēt</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (īpašnieks)</translation> <translation id="7647488630410863958">Atbloķējiet ierīci, lai skatītu paziņojumus.</translation> <translation id="7649070708921625228">Palīdzība</translation> +<translation id="7654687942625752712">Lai atspējotu balss komentārus, nospiediet un piecas sekundes turiet abas skaļuma pogas.</translation> <translation id="7658239707568436148">Atcelt</translation> <translation id="7692480393933218409">Notiek pievienoto USB-C ierīču uzlāde</translation> <translation id="776344839111254542">Noklikšķiniet, lai skatītu atjauninājuma datus.</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 250c3db..bf2833c 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">നൈറ്റ് ലൈറ്റ്: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">സിം കാർഡ് ലോക്കുചെയ്തു</translation> <translation id="2653659639078652383">സമര്പ്പിക്കൂ</translation> -<translation id="2675319268637823299"><ph name="USER_EMAIL" /> എന്ന ഇമെയിലിലേക്ക് ഒന്നിലധികം പേർ സൈൻ ഇൻ ചെയ്യുന്നത് ഒരു അഡ്മിനിസ്ട്രേറ്റർ വിലക്കിയിരിക്കുന്നു. - തുടരാൻ, എല്ലാ ഉപയോക്താക്കളും സൈൻ ഔട്ട് ചെയ്യണം.</translation> <translation id="2696763960464195425">സൈൻ ഔട്ട് ചെയ്യുമ്പോൾ നിങ്ങളുടെ വിവരങ്ങൾ നീക്കം ചെയ്യപ്പെടും. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">നിങ്ങളുടെ കീബോഡ് സജ്ജീകരിക്കുക</translation> <translation id="2718395828230677721">നൈറ്റ് ലൈറ്റ്</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">മൗസ് കഴ്സർ ഹൈലൈറ്റുചെയ്യുക</translation> <translation id="3513798432020909783">അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="MANAGER_EMAIL" /> ആണ്</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" എന്നതിലേക്ക് തിരികെ മാറുക (റീസ്റ്റാര്ട്ട് ആവശ്യമാണ്)</translation> -<translation id="3582792037806681688">ഈ സെഷനിൽ ഒരു ഉപയോക്താവിനായി ഒന്നിലധികം സൈൻ ഇൻ അനുവദനീയമല്ല.</translation> <translation id="3595596368722241419">ബാറ്ററി നിറഞ്ഞു</translation> <translation id="3606978283550408104">ബ്രെയ്ലി ഡിസ്പ്ലേ കണക്റ്റുചെയ്തു.</translation> <translation id="3621202678540785336">ഇൻപുട്ട്</translation> @@ -163,6 +160,7 @@ <translation id="4379531060876907730">ഇവയാണ് നിങ്ങളുടെ സ്റ്റൈലസ് ടൂളുകൾ</translation> <translation id="4421231901400348175"><ph name="HELPER_NAME" /> ഉപയോഗിച്ച് നിങ്ങളുടെ വിദൂര സഹായി മുഖേന സ്ക്രീനിന്റെ നിയന്ത്രണം പങ്കിടുക.</translation> <translation id="4430019312045809116">അളവ്</translation> +<translation id="4450893287417543264">വീണ്ടും കാണിക്കരുത്</translation> <translation id="4479639480957787382">എതെര്നെറ്റ്</translation> <translation id="4481530544597605423">ജോടി മാറ്റിയ ഉപകരണങ്ങൾ</translation> <translation id="4508225577814909926"><ph name="NAME" />: കണക്റ്റുചെയ്യുന്നു...</translation> @@ -195,6 +193,7 @@ <translation id="54609108002486618">നിയന്ത്രിതം</translation> <translation id="553675580533261935">സെഷനിൽ നിന്ന് പുറത്തുകടക്കുന്നു</translation> <translation id="5548285847212963613">ഈ നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാൻ "<ph name="EXTENSION_NAME" />" വിപുലീകരണത്തിന് സഹായിക്കാനാകും.</translation> +<translation id="554893713779400387">പറഞ്ഞ് കൊടുക്കൽ മാറ്റുക</translation> <translation id="5571066253365925590">Bluetooth പ്രാപ്തമാക്കി</translation> <translation id="5597451508971090205"><ph name="SHORT_WEEKDAY" />, <ph name="DATE" /></translation> <translation id="5600837773213129531">സംഭാഷണ ഫീഡ്ബാക്ക് പ്രവർത്തനരഹിതമാക്കാൻ Ctrl + Alt + Z അമർത്തുക.</translation> @@ -282,6 +281,7 @@ <translation id="7536035074519304529">IP വിലാസം: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" />, <ph name="SPECIFIED_RESOLUTION" /> എന്നതിനെ പിന്തുണയ്ക്കുന്നില്ല. റസലൂഷൻ <ph name="FALLBACK_RESOLUTION" /> എന്നതിലേക്ക് മാറ്റി.</translation> <translation id="7562368315689366235">ഇമോജി പാലറ്റ്</translation> +<translation id="7564874036684306347">മറ്റൊരു ഡെസ്ക്ടോപ്പിലേക്ക് വിൻഡോകൾ നീക്കുന്നത് അപ്രതീക്ഷിതമായ പ്രവർത്തനരീതിയ്ക്ക് ഇടയാക്കാം. തുടർന്നുള്ള അറിയിപ്പുകൾ, വിൻഡോകൾ, ഡയലോഗുകൾ എന്നിവ ഡെസ്ക്ടോപ്പുകൾക്കിടയിൽ വിഭജിക്കപ്പെടാം.</translation> <translation id="7569509451529460200">Braille, ChromeVox എന്നിവ പ്രവർത്തനക്ഷമമാക്കി</translation> <translation id="7593891976182323525">തിരയൽ അല്ലെങ്കിൽ Shift</translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (ഉടമ)</translation> @@ -294,6 +294,7 @@ <translation id="7798302898096527229">റദ്ദാക്കാൻ 'തിരയൽ' അല്ലെങ്കിൽ Shift അമർത്തുക.</translation> <translation id="7814236020522506259"><ph name="HOUR" />, <ph name="MINUTE" /></translation> <translation id="7829386189513694949">ശക്തിയുള്ള സിഗ്നൽ</translation> +<translation id="7842569679327885685">മുന്നറിയിപ്പ്: പരീക്ഷണാത്മക ഫീച്ചർ</translation> <translation id="7904094684485781019">ഈ അക്കൗണ്ടിന്റെ അഡ്മിനിസ്ട്രേറ്റർ ഒന്നിലധികം സൈൻ-ഇൻ അനുവദിക്കുന്നില്ല.</translation> <translation id="7933084174919150729">പ്രാഥമിക പ്രൊഫൈലിന് മാത്രമേ Google സഹായി ലഭ്യമാകൂ.</translation> <translation id="79341161159229895">അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="FIRST_PARENT_EMAIL" />, <ph name="SECOND_PARENT_EMAIL" /> എന്നിവരാണ്</translation> @@ -346,6 +347,7 @@ <translation id="9091626656156419976"><ph name="DISPLAY_NAME" /> ഡിസ്പ്ലേ നീക്കംചെയ്തു</translation> <translation id="9111102763498581341">അണ്ലോക്ക് ചെയ്യുക</translation> <translation id="9151726767154816831">അപ്ഡേറ്റുചെയ്യാൻ, പുനരാരംഭിച്ച് പവർവാഷുചെയ്യുക</translation> +<translation id="9179259655489829027">സൈൻ ഇൻ ചെയ്ത ഏതൊരു ഉപയോക്താവിനെയും പാസ്വേഡ് ഇല്ലാതെ തന്നെ വേഗത്തിൽ ആക്സസ് ചെയ്യാൻ ഈ ഫീച്ചർ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾക്ക് വിശ്വാസമുള്ള അക്കൗണ്ടുകളിൽ മാത്രം ഈ ഫീച്ചർ ഉപയോഗിക്കുക.</translation> <translation id="9194617393863864469">മറ്റൊരു ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യുക...</translation> <translation id="9201131092683066720">ബാറ്ററി <ph name="PERCENTAGE" />% നിറഞ്ഞു.</translation> <translation id="9210037371811586452">ഏകീകൃത ഡെസ്ക്ടോപ്പ് മോഡിൽ നിന്ന് പുറത്തുകടക്കുന്നു</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 71cdaeb..796090f2 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">रात्रीचा प्रकाश: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">सिम कार्ड लॉक केले आहे</translation> <translation id="2653659639078652383">सबमिट करा</translation> -<translation id="2675319268637823299">अॅडमिनिस्ट्रेटरने <ph name="USER_EMAIL" /> साठी एकाधिक साइन इनची अनुमती दिली नाही. -सुरू ठेवण्यासाठी सर्व वापरकर्त्यांनी साइन आउट करणे आवश्यक आहे.</translation> <translation id="2696763960464195425">तुम्ही साइन आउट करता तेव्हा तुमची माहिती काढली जाईल. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">तुमचा कीबोर्ड सेट करा</translation> <translation id="2718395828230677721">रात्रीचा प्रकाश</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">माउसचा कर्सर हायलाइट करा</translation> <translation id="3513798432020909783">खाते <ph name="MANAGER_EMAIL" /> ने व्यवस्थापित केले आहे</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" मध्ये परत बदला (रीस्टार्ट करणे आवश्यक)</translation> -<translation id="3582792037806681688">या सत्रात वापरकर्त्यासाठी एकाधिक साइन इनची अनुमती रद्द केली गेली आहे</translation> <translation id="3595596368722241419">बॅटरी पूर्ण चार्ज</translation> <translation id="3606978283550408104">ब्रेल प्रदर्शन कनेक्ट केले.</translation> <translation id="3621202678540785336">इनपुट</translation> @@ -228,7 +225,7 @@ <translation id="607652042414456612">आपला कॉंप्युटर जवळपासच्या Bluetooth डिव्हाइसेसवर शोधण्यायोग्य आहे आणि <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> +<translation id="6164005077879661055">एकदा हा पर्यवेक्षी वापरकर्ता काढल्यानंतर पर्यवेक्षी वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटवला जाईल. या पर्यवेक्षी वापरकर्त्यासाठी भेट दिलेल्या वेबसाइट आणि सेटिंग्ज तरीही <ph name="MANAGEMENT_URL" /> वर व्यवस्थापकाद्वारे दृश्यमान असू शकतात.</translation> <translation id="6165508094623778733">अधिक जाणून घ्या</translation> <translation id="6267036997247669271"><ph name="NAME" />: सक्रिय करत आहे...</translation> <translation id="6284232397434400372">रीझोल्युशन बदलले</translation> @@ -261,7 +258,7 @@ <translation id="6857811139397017780">सक्रिय करा<ph name="NETWORKSERVICE" /></translation> <translation id="6911468394164995108">दुसरीकडे सामील व्हा...</translation> <translation id="6981982820502123353">प्रवेशयोग्यता</translation> -<translation id="698231206551913481">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटविला जाईल.</translation> +<translation id="698231206551913481">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटवला जाईल.</translation> <translation id="7029814467594812963">सत्र निर्गमन करा</translation> <translation id="7034339000180558234"><ph name="RECEIVER_NAME" /> वर <ph name="TAB_NAME" /> कास्ट करीत आहे</translation> <translation id="7066646422045619941">हे नेटवर्क आपल्या प्रशासकाने अक्षम केले आहे.</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 2a03ee6..36ad1976 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Lampu Malam: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Kad SIM dikunci</translation> <translation id="2653659639078652383">Serah</translation> -<translation id="2675319268637823299">Pentadbir telah melarang log masuk berbilang untuk <ph name="USER_EMAIL" />. - Semua pengguna mesti log keluar untuk meneruskan.</translation> <translation id="2696763960464195425">Maklumat anda akan dialih keluar apabila anda log keluar. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Tetapkan papan kekunci anda</translation> <translation id="2718395828230677721">Cahaya Malam</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Serlahkan kursor tetikus</translation> <translation id="3513798432020909783">Akaun diurus oleh <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Tukar kembali kepada "<ph name="FROM_LOCALE" />" (perlu dimulakan semula)</translation> -<translation id="3582792037806681688">Log masuk berbilang tidak dibenarkan untuk pengguna dalam sesi ini</translation> <translation id="3595596368722241419">Bateri penuh</translation> <translation id="3606978283550408104">Paparan Braille disambungkan.</translation> <translation id="3621202678540785336">Input</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Peranti USB-C (port belakang sebelah kanan)</translation> <translation id="4017989525502048489">Penuding laser</translation> <translation id="4072264167173457037">Isyarat sederhana</translation> +<translation id="4217571870635786043">Pengimlakan</translation> <translation id="4279490309300973883">Pencerminan</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">OS Chrome</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Peranti Bluetooth "<ph name="DEVICE_NAME" />" ingin kebenaran untuk berpasangan.</translation> <translation id="453661520163887813"><ph name="TIME" /> sehingga penuh</translation> <translation id="4544944664594876241">Pintasan untuk mengunci skrin telah berubah. Sila gunakan <ph name="NEW_SHORTCUT" /> dan bukannya <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Butang Pilih untuk Bercakap</translation> <translation id="4659419629803378708">ChromeVox didayakan</translation> <translation id="4776917500594043016">Kata laluan untuk <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation> <translation id="7647488630410863958">Buka kunci peranti untuk melihat pemberitahuan anda</translation> <translation id="7649070708921625228">Bantuan</translation> +<translation id="7654687942625752712">Tekan dan tahan kedua-dua kekunci kelantangan selama lima saat untuk melumpuhkan maklum balas yang dituturkan.</translation> <translation id="7658239707568436148">Batal</translation> <translation id="7692480393933218409">Mengecas peranti USB-C yang disambungkan</translation> <translation id="776344839111254542">Klik untuk melihat butiran kemas kini</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index 7d726bc6..10e8751 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nachtverlichting: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Simkaart is vergrendeld</translation> <translation id="2653659639078652383">Verzenden</translation> -<translation id="2675319268637823299">Een beheerder heeft <ph name="USER_EMAIL" /> geen toestemming gegeven voor toegang tot meerdere accounts. - Alle gebruikers moet uitloggen om door te gaan.</translation> <translation id="2696763960464195425">Je informatie wordt verwijderd wanneer je uitlogt. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Je toetsenbord instellen</translation> <translation id="2718395828230677721">Nachtverlichting</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Muisaanwijzer markeren</translation> <translation id="3513798432020909783">Account wordt beheerd door <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Teruggaan naar '<ph name="FROM_LOCALE" />' (opnieuw starten vereist)</translation> -<translation id="3582792037806681688">Toegang tot meerdere accounts is niet toegestaan voor een gebruiker in deze sessie</translation> <translation id="3595596368722241419">Batterij is vol</translation> <translation id="3606978283550408104">Braillescherm gekoppeld.</translation> <translation id="3621202678540785336">Ingang</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C-apparaat (poort rechts aan de achterkant)</translation> <translation id="4017989525502048489">Laserpen</translation> <translation id="4072264167173457037">Normaal signaal</translation> +<translation id="4217571870635786043">Dicteren</translation> <translation id="4279490309300973883">Mirroring</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth-apparaat '<ph name="DEVICE_NAME" />' wil toestemming om te koppelen.</translation> <translation id="453661520163887813"><ph name="TIME" /> tot volledig opgeladen</translation> <translation id="4544944664594876241">De sneltoets om het scherm te vergrendelen is gewijzigd. Gebruik <ph name="NEW_SHORTCUT" /> in plaats van <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Knop 'Selecteer om uitgesproken te worden'</translation> <translation id="4659419629803378708">ChromeVox ingeschakeld</translation> <translation id="4776917500594043016">Wachtwoord voor <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">zoeken</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (eigenaar)</translation> <translation id="7647488630410863958">Ontgrendel het apparaat om je meldingen weer te geven</translation> <translation id="7649070708921625228">Help</translation> +<translation id="7654687942625752712">Houd beide volumetoetsen gedurende vijf seconden ingedrukt om gesproken feedback uit te schakelen.</translation> <translation id="7658239707568436148">Annuleren</translation> <translation id="7692480393933218409">De aangesloten USB-C-apparaten worden opgeladen</translation> <translation id="776344839111254542">Klik om updategegevens te bekijken</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 4e19d56..f9ceb1aa 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nattlys: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-kortet er låst</translation> <translation id="2653659639078652383">Send</translation> -<translation id="2675319268637823299">En administrator har deaktivert multipålogging for <ph name="USER_EMAIL" />. - Alle brukere må logge av for å fortsette.</translation> <translation id="2696763960464195425">Informasjonen din fjernes når du logger av. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Velg tastatur</translation> <translation id="2718395828230677721">Nattlys</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Fremhev musemarkøren</translation> <translation id="3513798432020909783">Kontoen er administrert av <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Endre tilbake til <ph name="FROM_LOCALE" /> (krever omstart)</translation> -<translation id="3582792037806681688">Multipålogging har blitt deaktivert for en bruker i denne økten.</translation> <translation id="3595596368722241419">Batteriet er fullt</translation> <translation id="3606978283550408104">En leselist er tilkoblet.</translation> <translation id="3621202678540785336">Inndata</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index ce11093..05a9924 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Podświetlenie nocne: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Karta SIM jest zablokowana</translation> <translation id="2653659639078652383">Prześlij</translation> -<translation id="2675319268637823299">Administrator nie zezwolił na wielokrotne logowanie użytkownika <ph name="USER_EMAIL" />. - Aby kontynuować, wszyscy użytkownicy muszą się wylogować.</translation> <translation id="2696763960464195425">Gdy się wylogujesz, Twoje dane zostaną usunięte. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Ustaw klawiaturę</translation> <translation id="2718395828230677721">Podświetlenie nocne</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Podświetlaj wskaźnik myszy</translation> <translation id="3513798432020909783">Kontem zarządza <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Zmień z powrotem na „<ph name="FROM_LOCALE" />” (wymaga ponownego uruchomienia)</translation> -<translation id="3582792037806681688">Wielokrotne logowanie użytkownika w tej sesji zostało zabronione</translation> <translation id="3595596368722241419">Bateria naładowana</translation> <translation id="3606978283550408104">Podłączono monitor brajlowski.</translation> <translation id="3621202678540785336">Urządzenie wejściowe</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Urządzenie USB-C (tylny port na prawym boku)</translation> <translation id="4017989525502048489">Wskaźnik laserowy</translation> <translation id="4072264167173457037">średni sygnał</translation> +<translation id="4217571870635786043">Dyktowanie</translation> <translation id="4279490309300973883">Odbicie lustrzane</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS @@ -171,6 +169,7 @@ <translation id="4527045527269911712">Urządzenie Bluetooth „<ph name="DEVICE_NAME" />” chce się sparować.</translation> <translation id="453661520163887813"><ph name="TIME" /> do pełnego naładowania</translation> <translation id="4544944664594876241">Zmieniliśmy skrót, który blokuje ekran. Zamiast <ph name="OLD_SHORTCUT" /> używaj teraz <ph name="NEW_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Przycisk Przeczytaj na głos</translation> <translation id="4659419629803378708">Włączono ChromeVox</translation> <translation id="4776917500594043016">Hasło dla <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -291,6 +290,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (właściciel)</translation> <translation id="7647488630410863958">Odblokuj urządzenie, by zobaczyć swoje powiadomienia</translation> <translation id="7649070708921625228">Pomoc</translation> +<translation id="7654687942625752712">Naciśnij i przytrzymaj przez pięć sekund oba klawisze głośności, by wyłączyć komunikaty głosowe.</translation> <translation id="7658239707568436148">Anuluj</translation> <translation id="7692480393933218409">Ładowanie urządzeń podłączonych do portu USB-C</translation> <translation id="776344839111254542">Kliknij, by wyświetlić szczegóły aktualizacji</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index 09caf9c..e73763d0 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Modo noturno: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">O cartão SIM está bloqueado</translation> <translation id="2653659639078652383">Enviar</translation> -<translation id="2675319268637823299">Um administrador desativou o login múltiplo para <ph name="USER_EMAIL" />. - Todos os usuários precisam sair para continuar.</translation> <translation id="2696763960464195425">Suas informações serão removidas quando você sair. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Configurar teclado</translation> <translation id="2718395828230677721">Modo noturno</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Destacar cursor do mouse</translation> <translation id="3513798432020909783">Conta gerenciada por <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Voltar a "<ph name="FROM_LOCALE" />" (exige reinicialização)</translation> -<translation id="3582792037806681688">O login múltiplo foi desativado para um usuário nesta sessão</translation> <translation id="3595596368722241419">Bateria carregada</translation> <translation id="3606978283550408104">Display em braille conectado.</translation> <translation id="3621202678540785336">Entrada</translation> @@ -285,7 +282,7 @@ <translation id="7526573455193969409">A rede pode ser monitorada</translation> <translation id="7536035074519304529">Endereço IP: <ph name="ADDRESS" /></translation> <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> não suporta <ph name="SPECIFIED_RESOLUTION" />. A resolução foi alterada para <ph name="FALLBACK_RESOLUTION" /></translation> -<translation id="7562368315689366235">Paleta de emoticons</translation> +<translation id="7562368315689366235">Teclado de emojis</translation> <translation id="7564874036684306347">A movimentação de janelas para outra área de trabalho pode resultar em comportamentos inesperados. Notificações posteriores, janelas e caixas de diálogo podem ser divididas entre as áreas de trabalho.</translation> <translation id="7569509451529460200">Braille e ChromeVox estão ativados</translation> <translation id="7593891976182323525">Pesquisar ou Shift</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 324c787..ca1fe7a 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Luz noturna: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">O cartão SIM está bloqueado</translation> <translation id="2653659639078652383">Submeter</translation> -<translation id="2675319268637823299">Um administrador não permitiu o início de sessão integrado para <ph name="USER_EMAIL" />. - Todos os utilizadores têm de terminar sessão para continuar.</translation> <translation id="2696763960464195425">As suas informações serão removidas quando terminar sessão. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Definir o teclado</translation> <translation id="2718395828230677721">Luz noturna</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Realçar cursor do rato</translation> <translation id="3513798432020909783">Conta gerida por <ph name="MANAGER_EMAIL" />.</translation> <translation id="3573179567135747900">Reverter alteração para <ph name="FROM_LOCALE" /> (requer reinicio)</translation> -<translation id="3582792037806681688">O início de sessão integrado foi desativado para um utilizador nesta sessão</translation> <translation id="3595596368722241419">Bateria carregada</translation> <translation id="3606978283550408104">Visualização em braille ligada.</translation> <translation id="3621202678540785336">Entrada</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 43eeb78..8f7cd78 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Lumină de noapte: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Cardul SIM este blocat</translation> <translation id="2653659639078652383">Trimite</translation> -<translation id="2675319268637823299">Un administrator a interzis conectarea multiplă pentru <ph name="USER_EMAIL" />. - Toți utilizatorii trebuie să se deconecteze pentru a continua.</translation> <translation id="2696763960464195425">Informațiile tale vor fi eliminate după ce te deconectezi. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Setează tastatura</translation> <translation id="2718395828230677721">Lumină de noapte</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Evidențiază cursorul mouse-ului</translation> <translation id="3513798432020909783">Cont gestionat de <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Modifică înapoi la „<ph name="FROM_LOCALE" />” (este necesară repornirea)</translation> -<translation id="3582792037806681688">Conectarea multiplă a fost interzisă pentru un utilizator din această sesiune</translation> <translation id="3595596368722241419">Baterie încărcată</translation> <translation id="3606978283550408104">Afișajul Braille este conectat.</translation> <translation id="3621202678540785336">Intrări</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index d418fc2..9d35a6ee 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Ночной режим: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-карта заблокирована</translation> <translation id="2653659639078652383">Отправить</translation> -<translation id="2675319268637823299">Администратор отключил множественный вход для аккаунта <ph name="USER_EMAIL" />. - Чтобы вы смогли войти в этот аккаунт, все остальные пользователи должны выйти из него.</translation> <translation id="2696763960464195425">После выхода из аккаунта ваши данные будут удалены. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Выберите раскладку</translation> <translation id="2718395828230677721">Ночной режим</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Выделять указатель мыши</translation> <translation id="3513798432020909783">Администратор аккаунта: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Вернуться к языку: "<ph name="FROM_LOCALE" />" (потребуется перезагрузка)</translation> -<translation id="3582792037806681688">Множественный вход для пользователя запрещен в этом сеансе</translation> <translation id="3595596368722241419">Аккумулятор заряжен</translation> <translation id="3606978283550408104">Брайлевский дисплей подключен</translation> <translation id="3621202678540785336">Вход</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Устройство USB-C (дальний порт справа)</translation> <translation id="4017989525502048489">Лазерная указка</translation> <translation id="4072264167173457037">сигнал средней мощности</translation> +<translation id="4217571870635786043">Голосовой ввод</translation> <translation id="4279490309300973883">Отражение</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Устройству <ph name="DEVICE_NAME" /> требуется разрешение на подключение через Bluetooth.</translation> <translation id="453661520163887813">До полной зарядки <ph name="TIME" /></translation> <translation id="4544944664594876241">Изменились быстрые клавиши для блокировки экрана. Используйте <ph name="NEW_SHORTCUT" /> вместо <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Кнопка "Озвучивание при нажатии"</translation> <translation id="4659419629803378708">Функция ChromeVox включена</translation> <translation id="4776917500594043016">Пароль для адреса электронной почты <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">поиск</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (владелец)</translation> <translation id="7647488630410863958">Чтобы просмотреть уведомления, разблокируйте устройство</translation> <translation id="7649070708921625228">Справка</translation> +<translation id="7654687942625752712">Чтобы отключить озвучивание текста на экране, удерживайте обе кнопки громкости в течение пяти секунд.</translation> <translation id="7658239707568436148">Отмена</translation> <translation id="7692480393933218409">Подключенные устройства USB-C заряжаются</translation> <translation id="776344839111254542">Нажмите, чтобы просмотреть информацию об обновлении</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index 2ddd26d..900e13d 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nočný režim: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM karta je uzamknutá</translation> <translation id="2653659639078652383">Odoslať</translation> -<translation id="2675319268637823299">Správca zakázal viacnásobné prihlásenie pre používateľa <ph name="USER_EMAIL" />. -Všetci používatelia sa musia odhlásiť a až potom môžu pokračovať.</translation> <translation id="2696763960464195425">Vaše informácie sa po odhlásení odstránia. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Nastavenie klávesnice</translation> <translation id="2718395828230677721">Nočný režim</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Zvýrazniť ukazovateľ myši</translation> <translation id="3513798432020909783">Správca účtu: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Zmeniť späť na miestne nastavenie „<ph name="FROM_LOCALE" />“ (vyžaduje sa reštart)</translation> -<translation id="3582792037806681688">Pre používateľa v tejto relácii bolo viacnásobné prihlásenie zakázané</translation> <translation id="3595596368722241419">Batéria je nabitá</translation> <translation id="3606978283550408104">Bola pripojená Braillova obrazovka.</translation> <translation id="3621202678540785336">Vstup</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">zariadenia USB-C (port vpravo vzadu)</translation> <translation id="4017989525502048489">Laserový ukazovateľ</translation> <translation id="4072264167173457037">Stredne silný signál</translation> +<translation id="4217571870635786043">Diktovanie</translation> <translation id="4279490309300973883">Zrkadlenie</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Zariadenie Bluetooth s názvom <ph name="DEVICE_NAME" /> žiada o povolenie párovania.</translation> <translation id="453661520163887813"><ph name="TIME" /> do úplného nabitia</translation> <translation id="4544944664594876241">Skratka uzamknutia obrazovky bola zmenená. Namiesto skratky <ph name="OLD_SHORTCUT" /> používajte kombináciu klávesov <ph name="NEW_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Tlačidlo počúvania vybraného textu</translation> <translation id="4659419629803378708">Funkcia ChromeVox je povolená</translation> <translation id="4776917500594043016">Heslo pre účet <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (vlastník)</translation> <translation id="7647488630410863958">Ak si chcete zobraziť upozornenia, odomknite zariadenie</translation> <translation id="7649070708921625228">Pomocník</translation> +<translation id="7654687942625752712">Ak chcete deaktivovať hovorenú spätnú väzbu, pridržte päť sekúnd obidva klávesy hlasitosti.</translation> <translation id="7658239707568436148">Zrušiť</translation> <translation id="7692480393933218409">Nabíjajú sa pripojené zariadenia USB-C</translation> <translation id="776344839111254542">Kliknutím zobrazíte podrobnosti o aktualizácii</translation> @@ -297,7 +297,7 @@ <translation id="7798302898096527229">Ak to chcete zrušiť, stlačte kláves Hľadať alebo Shift.</translation> <translation id="7814236020522506259"><ph name="HOUR" /> a <ph name="MINUTE" /></translation> <translation id="7829386189513694949">Silný signál</translation> -<translation id="7842569679327885685">Upozornenie: experimentálna funkcia</translation> +<translation id="7842569679327885685">Upozornenie: Experimentálna funkcia</translation> <translation id="7904094684485781019">Správca tohto účtu zakázal viacnásobné prihlásenie.</translation> <translation id="7933084174919150729">Asistent Google je k dispozícii iba pre primárny profil.</translation> <translation id="79341161159229895">Správcovia účtu: <ph name="FIRST_PARENT_EMAIL" /> a <ph name="SECOND_PARENT_EMAIL" /></translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index cde7f23..5764f05 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nočna svetloba: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Kartica SIM je zaklenjena</translation> <translation id="2653659639078652383">Pošlji</translation> -<translation id="2675319268637823299">Skrbnik je prepovedal prijavo z več računi za <ph name="USER_EMAIL" />. - Če želite nadaljevati, morajo biti odjavljeni vsi uporabniki.</translation> <translation id="2696763960464195425">Vaši podatki bodo odstranjeni, ko se odjavite. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Nastavitev tipkovnice</translation> <translation id="2718395828230677721">Nočna svetloba</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Označitev miškinega kazalca</translation> <translation id="3513798432020909783">Račun upravlja <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Spremeni nazaj v jezik »<ph name="FROM_LOCALE" />« (potreben vnovični zagon)</translation> -<translation id="3582792037806681688">V tej seji uporabniku ni dovoljena uporaba prijave z več računi</translation> <translation id="3595596368722241419">Baterija je polna</translation> <translation id="3606978283550408104">Povezava z braillovo vrstico je vzpostavljena.</translation> <translation id="3621202678540785336">Vhod</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index d6e1cb4..c656167d 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Ноћно светло: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM картица је закључана</translation> <translation id="2653659639078652383">Пошаљи</translation> -<translation id="2675319268637823299">Администратор је забранио вишеструко пријављивање за <ph name="USER_EMAIL" />. - Сви корисници морају да се одјаве да бисмо наставили са сесијом.</translation> <translation id="2696763960464195425">Информације ће бити уклоњене када се одјавите. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Подесите тастатуру</translation> <translation id="2718395828230677721">Ноћно светло</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Истакни курсор миша</translation> <translation id="3513798432020909783">Налогом управља <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Врати на „<ph name="FROM_LOCALE" />“ (потребно је поновно покретање)</translation> -<translation id="3582792037806681688">Вишеструко пријављивање је забрањено за корисника у овој сесији</translation> <translation id="3595596368722241419">Батерија је пуна</translation> <translation id="3606978283550408104">Повезан је екран са Брајевом азбуком.</translation> <translation id="3621202678540785336">Улаз</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">Уређај са USB прикључком типа C (десни задњи порт)</translation> <translation id="4017989525502048489">Ласерски показивач</translation> <translation id="4072264167173457037">Сигнал средње јачине</translation> +<translation id="4217571870635786043">Диктирање</translation> <translation id="4279490309300973883">Пресликавање</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome ОС</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth уређај „<ph name="DEVICE_NAME" />“ жели дозволу за упаривање.</translation> <translation id="453661520163887813"><ph name="TIME" /> док се не напуни</translation> <translation id="4544944664594876241">Пречица за закључавање екрана је промењена. Користите <ph name="NEW_SHORTCUT" /> уместо <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Дугме Изаберите за говор</translation> <translation id="4659419629803378708">ChromeVox је омогућен</translation> <translation id="4776917500594043016">Лозинка за <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (власник)</translation> <translation id="7647488630410863958">Откључајте уређај да бисте прегледали обавештења</translation> <translation id="7649070708921625228">Помоћ</translation> +<translation id="7654687942625752712">Притисните оба тастера за јачину звука и задржите их пет секунди да бисте онемогућили говорне повратне информације.</translation> <translation id="7658239707568436148">Откажи</translation> <translation id="7692480393933218409">Пуњење повезаних уређаја са USB прикључком типа C</translation> <translation id="776344839111254542">Кликните за приказ детаља ажурирања</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index c901247..c4df144 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Nattljus: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-kortet är låst</translation> <translation id="2653659639078652383">Skicka</translation> -<translation id="2675319268637823299">En administratör har förbjudit multiinloggning för <ph name="USER_EMAIL" />. - Alla användare måste logga ut för att fortsätta.</translation> <translation id="2696763960464195425">Dina uppgifter tas bort när du loggar ut. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Ställ in tangentbord</translation> <translation id="2718395828230677721">Nattljus</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Markera muspekaren</translation> <translation id="3513798432020909783">Kontot hanteras av <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Byt tillbaka till "<ph name="FROM_LOCALE" />" (kräver omstart)</translation> -<translation id="3582792037806681688">Multiinloggning tillåts inte för en användare i den här sessionen</translation> <translation id="3595596368722241419">Batteriet är fulladdat</translation> <translation id="3606978283550408104">Punktskriftsskärm ansluten.</translation> <translation id="3621202678540785336">Ingång</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C-enhet (bakre porten på högra sidan)</translation> <translation id="4017989525502048489">Laserpekare</translation> <translation id="4072264167173457037">medelstark signal</translation> +<translation id="4217571870635786043">Diktering</translation> <translation id="4279490309300973883">Spegling</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Bluetooth-enheten <ph name="DEVICE_NAME" /> har begärt tillstånd för koppling.</translation> <translation id="453661520163887813"><ph name="TIME" /> tills batteriet är fullt</translation> <translation id="4544944664594876241">Kortkommandot för att låsa skärmen har ändrats. Använd <ph name="NEW_SHORTCUT" /> i stället för <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Knappen Textuppläsning</translation> <translation id="4659419629803378708">ChromeVox har aktiverats</translation> <translation id="4776917500594043016">Lösenord för <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">sök</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (ägare)</translation> <translation id="7647488630410863958">Lås upp enheten om du vill visa aviseringarna</translation> <translation id="7649070708921625228">Hjälp</translation> +<translation id="7654687942625752712">Inaktivera talad feedback genom att hålla båda volymknapparna nedtryckta i fem sekunder.</translation> <translation id="7658239707568436148">Avbryt</translation> <translation id="7692480393933218409">Laddar anslutna USB-C-enheter</translation> <translation id="776344839111254542">Klicka här om du vill se mer information om uppdateringen</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index fccbf8b..5bd9f42 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Mwanga wa Usiku: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM kadi imefungwa</translation> <translation id="2653659639078652383">Wasilisha</translation> -<translation id="2675319268637823299">Msimamizi amezuia uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja kwa kutumia <ph name="USER_EMAIL" />. - Ni lazima watumiaji wote waondoke katika akaunti ili uendelee.</translation> <translation id="2696763960464195425">Maelezo yako yataondolewa wakati unaondoka kwenye akaunti. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Weka kibodi yako</translation> <translation id="2718395828230677721">Mwanga wa Usiku</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Angazia kiteuzi cha kipanya</translation> <translation id="3513798432020909783">Akaunti inasimamiwa na <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Badilisha hadi "<ph name="FROM_LOCALE" />" (inahitaji uzime na uwashe)</translation> -<translation id="3582792037806681688">Uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja umezimwa kwa mtumiaji katika kipindi hiki</translation> <translation id="3595596368722241419">Betri imejaa</translation> <translation id="3606978283550408104">Onyesho la breli limeunganishwa.</translation> <translation id="3621202678540785336">Ingizo</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index a09d851..ede1347 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">இரவு ஒளி: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">சிம் கார்டு பூட்டப்பட்டுள்ளது</translation> <translation id="2653659639078652383">சமர்ப்பி</translation> -<translation id="2675319268637823299"><ph name="USER_EMAIL" />க்கு, பல உள்நுழைவை நிர்வாகி அனுமதிக்கவில்லை. - தொடர, எல்லாப் பயனர்களும் வெளியேற வேண்டும்.</translation> <translation id="2696763960464195425">நீங்கள் வெளியேறியதும், உங்கள் தகவல் அகற்றப்படும். <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">எனது விசைப்பலகையை அமை</translation> <translation id="2718395828230677721">இரவு ஒளி</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">மவுஸ் கர்சரைத் தனிப்படுத்து</translation> <translation id="3513798432020909783">கணக்கை நிர்வகிப்பது: <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" க்கு மீண்டும் மாற்று (மறுதொடக்கம் தேவை)</translation> -<translation id="3582792037806681688">இந்த அமர்வில் பயனருக்கான பல உள்நுழைவு மறுக்கப்பட்டுள்ளது</translation> <translation id="3595596368722241419">பேட்டரி நிரம்பியது</translation> <translation id="3606978283550408104">பிரெய்ல் திரை இணைக்கப்பட்டது.</translation> <translation id="3621202678540785336">உள்ளீடு</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C சாதனம் (வலது பக்கம் பின்னே இருக்கும் போர்ட்)</translation> <translation id="4017989525502048489">லேசர் பாயிண்டர்</translation> <translation id="4072264167173457037">நடுத்தரமான சிக்னல்</translation> +<translation id="4217571870635786043">சொல்வதை எழுதுவது</translation> <translation id="4279490309300973883">பிரதிபலிக்கிறது</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">புளூடூத் சாதனம் "<ph name="DEVICE_NAME" />", இணைப்பதற்கான அனுமதியை விரும்புகிறது.</translation> <translation id="453661520163887813">முழு சார்ஜாக <ph name="TIME" /> ஆகும்</translation> <translation id="4544944664594876241">திரையைப் பூட்டுவதற்கான குறுக்குவழி மாற்றப்பட்டது. <ph name="OLD_SHORTCUT" /> க்குப் பதிலாக <ph name="NEW_SHORTCUT" /> ஐப் பயன்படுத்தவும்.</translation> +<translation id="4570957409596482333">பேசும் திரைக்கான பொத்தான்</translation> <translation id="4659419629803378708">ChromeVox இயக்கப்பட்டது</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> க்கான கடவுச்சொல்</translation> <translation id="479989351350248267">Search</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (உரிமையாளர்)</translation> <translation id="7647488630410863958">அறிவிப்புகளைப் பார்க்க, சாதனத்தைத் திறக்கவும்</translation> <translation id="7649070708921625228">உதவி</translation> +<translation id="7654687942625752712">பேச்சுவடிவ கருத்தை முடக்க, ஐந்து வினாடிகளுக்கு இரண்டு ஒலியளவு விசைகளையும் அழுத்திப் பிடித்திருக்கவும்.</translation> <translation id="7658239707568436148">ரத்து செய்</translation> <translation id="7692480393933218409">இணைக்கப்பட்ட USB-C சாதனங்களுக்குச் சார்ஜ் ஏற்றப்படுகிறது</translation> <translation id="776344839111254542">புதுப்பிப்பு விவரங்களைப் பார்க்க, கிளிக் செய்யவும்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 3fbaea28..e8e7aed 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">రాత్రి కాంతి: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM కార్డ్ లాక్ అయింది</translation> <translation id="2653659639078652383">సమర్పించు</translation> -<translation id="2675319268637823299">ఒక నిర్వాహకుడు <ph name="USER_EMAIL" /> కోసం బహుళ సైన్-ఇన్ అనుమతిని తిరస్కరించారు. - కొనసాగించాలంటే అందరు వినియోగదారులు తప్పనిసరిగా సైన్ అవుట్ చేయాలి.</translation> <translation id="2696763960464195425">మీరు సైన్ అవుట్ చేసినప్పుడు మీ సమాచారం తీసివేయబడుతుంది. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">మీ కీబోర్డ్ని సెట్ చేయండి</translation> <translation id="2718395828230677721">రాత్రి కాంతి</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">మౌస్ కర్సర్ని హైలైట్ చేయి</translation> <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> ద్వారా ఖాతా నిర్వహించబడుతోంది</translation> <translation id="3573179567135747900">"<ph name="FROM_LOCALE" />"కు వెనుకకి మార్చండి (పునఃప్రారంభం అవసరం)</translation> -<translation id="3582792037806681688">ఈ సెషన్లో వినియోగదారు కోసం బహుళ సైన్-ఇన్ అనుమతించబడలేదు</translation> <translation id="3595596368722241419">బ్యాటరీ నిండింది</translation> <translation id="3606978283550408104">బ్రెయిలీ డిస్ప్లే కనెక్ట్ చేయబడింది.</translation> <translation id="3621202678540785336">ఇన్పుట్</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index 6d469e9..2c5b0901 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">แสงตอนกลางคืน: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">ซิมการ์ดถูกล็อก</translation> <translation id="2653659639078652383">ส่ง</translation> -<translation id="2675319268637823299">ผู้ดูแลระบบไม่อนุญาตให้ <ph name="USER_EMAIL" /> ลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชี - ผู้ใช้ทุกคนต้องออกจากระบบเพื่อดำเนินการต่อ</translation> <translation id="2696763960464195425">ระบบจะนำข้อมูลของคุณออกเมื่อออกจากระบบ <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">ตั้งค่าแป้นพิมพ์</translation> <translation id="2718395828230677721">แสงตอนกลางคืน</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">ไฮไลต์เคอร์เซอร์เมาส์</translation> <translation id="3513798432020909783">บัญชีที่จัดการโดย <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">เปลี่ยนกลับเป็น "<ph name="FROM_LOCALE" />" (จำเป็นต้องรีสตาร์ต)</translation> -<translation id="3582792037806681688">การลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชีไม่ได้รับอนุญาตสำหรับผู้ใช้ในเซสชันนี้</translation> <translation id="3595596368722241419">แบตเตอรี่เต็ม</translation> <translation id="3606978283550408104">เชื่อมต่ออุปกรณ์แสดงผลอักษรเบรลล์แล้ว</translation> <translation id="3621202678540785336">อินพุต</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">อุปกรณ์ USB-C (พอร์ตด้านหลังขวา)</translation> <translation id="4017989525502048489">ตัวชี้เลเซอร์</translation> <translation id="4072264167173457037">สัญญาณแรงปานกลาง</translation> +<translation id="4217571870635786043">การพิมพ์ตามคำบอก</translation> <translation id="4279490309300973883">กำลังแสดงผล</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS @@ -171,6 +169,7 @@ <translation id="4527045527269911712">อุปกรณ์บลูทูธ "<ph name="DEVICE_NAME" />" ต้องการสิทธิ์ในการจับคู่</translation> <translation id="453661520163887813">อีก <ph name="TIME" /> จะเต็ม</translation> <translation id="4544944664594876241">มีการเปลี่ยนแปลงทางลัดที่ใช้ล็อกหน้าจอ โปรดใช้ <ph name="NEW_SHORTCUT" /> แทน <ph name="OLD_SHORTCUT" /></translation> +<translation id="4570957409596482333">ปุ่มเลือกเพื่อให้อ่าน</translation> <translation id="4659419629803378708">เปิดใช้ ChromeVox แล้ว</translation> <translation id="4776917500594043016">รหัสผ่านของ <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">ค้นหา</translation> @@ -291,6 +290,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (เจ้าของ)</translation> <translation id="7647488630410863958">ปลดล็อกอุปกรณ์เพื่อดูการแจ้งเตือน</translation> <translation id="7649070708921625228">ช่วยเหลือ</translation> +<translation id="7654687942625752712">กดแป้นปรับระดับเสียงค้างไว้ 5 วินาทีเพื่อปิดใช้การอธิบายและอ่านออกเสียง</translation> <translation id="7658239707568436148">ยกเลิก</translation> <translation id="7692480393933218409">กำลังชาร์จอุปกรณ์ USB-C ที่เชื่อมต่ออยู่</translation> <translation id="776344839111254542">คลิกเพื่อดูรายละเอียดการอัปเดต</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index f6763ae3..43ba2d2 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Gece Işığı: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM kart kilitli</translation> <translation id="2653659639078652383">Gönder</translation> -<translation id="2675319268637823299">Bir yönetici <ph name="USER_EMAIL" /> için çoklu oturum açmayı engellemiş. - Tüm kullanıcılar devam etmek için çıkış yapmalıdır.</translation> <translation id="2696763960464195425">Oturumunuzu kapattığınızda bilgileriniz kaldırılır. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Klavyenizi ayarlayın</translation> <translation id="2718395828230677721">Gece Işığı</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Fare imlecini vurgula</translation> <translation id="3513798432020909783">Hesap <ph name="MANAGER_EMAIL" /> tarafından yönetiliyor</translation> <translation id="3573179567135747900">Tekrar "<ph name="FROM_LOCALE" />" ayarına dön (yeniden başlatmak gerekir)</translation> -<translation id="3582792037806681688">Bu oturumdaki bir kullanıcı için çoklu oturum açma engellendi</translation> <translation id="3595596368722241419">Pil tam dolu</translation> <translation id="3606978283550408104">Braille ekranı bağlandı.</translation> <translation id="3621202678540785336">Giriş</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">USB-C cihaz (sağ arka bağlantı noktası)</translation> <translation id="4017989525502048489">Lazer işaretçi</translation> <translation id="4072264167173457037">Orta düzeyde sinyal</translation> +<translation id="4217571870635786043">Dikte</translation> <translation id="4279490309300973883">Yansıtılıyor</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" adlı Bluetooth cihaz eşleme izni istiyor.</translation> <translation id="453661520163887813">Dolması için gereken süre: <ph name="TIME" /></translation> <translation id="4544944664594876241">Ekranı kilitleme kısayolu değişti. Lütfen <ph name="OLD_SHORTCUT" /> yerine <ph name="NEW_SHORTCUT" /> kısayolunu kullanın.</translation> +<translation id="4570957409596482333">Seç ve Dinle düğmesi</translation> <translation id="4659419629803378708">ChromeVox etkinleştirildi</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> için şifre</translation> <translation id="479989351350248267">ara</translation> @@ -291,6 +290,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (cihaz sahibi)</translation> <translation id="7647488630410863958">Bildirimlerinizi görüntülemek için cihazınızın kilidini açın</translation> <translation id="7649070708921625228">Yardım</translation> +<translation id="7654687942625752712">Sesli geri bildirimi beş saniyeliğine devre dışı bırakmak için her iki ses ayarı tuşunu basılı tutun.</translation> <translation id="7658239707568436148">İptal</translation> <translation id="7692480393933218409">Bağlı USB-C cihazlar şarj ediliyor</translation> <translation id="776344839111254542">Güncelleme ayrıntılarını görüntülemek için tıklayın</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index 59c4ab6..2c752954 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Нічний режим: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM-карту заблоковано</translation> <translation id="2653659639078652383">Надіслати</translation> -<translation id="2675319268637823299">Адміністратор заборонив паралельний вхід користувачу <ph name="USER_EMAIL" />. - Щоб продовжити, усі користувачі повинні вийти.</translation> <translation id="2696763960464195425">Коли ви вийдете з облікового запису, вашу інформацію буде вилучено. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Вибрати клавіатуру</translation> <translation id="2718395828230677721">Нічний режим</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Підсвічувати курсор миші</translation> <translation id="3513798432020909783">Обліковим записом керує <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Повернутися до мови "<ph name="FROM_LOCALE" />" (потрібно перезавантажитися)</translation> -<translation id="3582792037806681688">Паралельний вхід для користувача в цьому сеансі заборонено</translation> <translation id="3595596368722241419">Акумулятор заряджено</translation> <translation id="3606978283550408104">Брайлівський дисплей під’єднано.</translation> <translation id="3621202678540785336">Вхід</translation> @@ -154,6 +151,7 @@ <translation id="3995138139523574647">пристрій, під’єднаний до порту USB-C (праворуч на задній панелі)</translation> <translation id="4017989525502048489">Лазерний вказівник</translation> <translation id="4072264167173457037">середній сигнал</translation> +<translation id="4217571870635786043">Диктування</translation> <translation id="4279490309300973883">Дзеркальне відображення</translation> <translation id="4321179778687042513">ctrl</translation> <translation id="4331809312908958774">ОС Chrome</translation> @@ -170,6 +168,7 @@ <translation id="4527045527269911712">Пристрою Bluetooth "<ph name="DEVICE_NAME" />" потрібен дозвіл на підключення.</translation> <translation id="453661520163887813"><ph name="TIME" /> до повного заряду</translation> <translation id="4544944664594876241">Комбінація клавіш для блокування екрана змінилася. Тепер це <ph name="NEW_SHORTCUT" />, а не <ph name="OLD_SHORTCUT" />.</translation> +<translation id="4570957409596482333">Кнопка "Читання з екрана"</translation> <translation id="4659419629803378708">ChromeVox увімкнено</translation> <translation id="4776917500594043016">Пароль користувача <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="479989351350248267">пошук</translation> @@ -290,6 +289,7 @@ <translation id="7645176681409127223"><ph name="USER_NAME" /> (власник)</translation> <translation id="7647488630410863958">Розблокуйте пристрій, щоб переглянути сповіщення</translation> <translation id="7649070708921625228">Довідка</translation> +<translation id="7654687942625752712">Утримуйте обидві клавіші гучності впродовж п’яти секунд, щоб вимкнути голосові підказки.</translation> <translation id="7658239707568436148">Скасувати</translation> <translation id="7692480393933218409">Заряджає пристрої, під’єднанї до порту USB-C</translation> <translation id="776344839111254542">Натисніть, щоб переглянути деталі оновлення</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index db060dd2..ded8b35 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">Chế độ ánh sáng ban đêm: <ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">Thẻ SIM bị khóa</translation> <translation id="2653659639078652383">Gửi</translation> -<translation id="2675319268637823299">Quản trị viên không cho phép đăng nhập nhiều tài khoản đối với <ph name="USER_EMAIL" />. - Tất cả người dùng phải đăng xuất để tiếp tục.</translation> <translation id="2696763960464195425">Thông tin sẽ bị xóa khi bạn đăng xuất. <ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">Đặt bàn phím</translation> <translation id="2718395828230677721">Chế độ ánh sáng ban đêm</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">Đánh dấu con trỏ chuột</translation> <translation id="3513798432020909783">Tài khoản được quản lý bởi <ph name="MANAGER_EMAIL" /></translation> <translation id="3573179567135747900">Thay đổi lại thành "<ph name="FROM_LOCALE" />" (yêu cầu khởi động lại)</translation> -<translation id="3582792037806681688">Đã bỏ cho phép đăng nhập nhiều tài khoản đối với người dùng trong phiên này</translation> <translation id="3595596368722241419">Pin đầy</translation> <translation id="3606978283550408104">Đã kết nối màn hình Braille.</translation> <translation id="3621202678540785336">Thiết bị vào</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index b42cfe3..cb887f8 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">夜间模式:<ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM 卡已被锁定</translation> <translation id="2653659639078652383">提交</translation> -<translation id="2675319268637823299">管理员已禁止 <ph name="USER_EMAIL" /> 使用多帐号登录功能。 - 所有用户都必须先退出帐号才能继续。</translation> <translation id="2696763960464195425">当您退出后,系统即会移除您的信息。<ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">设置键盘</translation> <translation id="2718395828230677721">夜间模式</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">突出显示鼠标光标</translation> <translation id="3513798432020909783">该帐号由 <ph name="MANAGER_EMAIL" /> 管理</translation> <translation id="3573179567135747900">重新更改为“<ph name="FROM_LOCALE" />”(需要重启)</translation> -<translation id="3582792037806681688">由于有用户退出了此次会话,多帐号登录已被禁止</translation> <translation id="3595596368722241419">电池已充满</translation> <translation id="3606978283550408104">已连接盲文显示屏。</translation> <translation id="3621202678540785336">输入</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index 2a8ac13..446ce75 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -82,8 +82,6 @@ <translation id="2597972630681408282">夜燈功能:<ph name="NIGHT_LIGHT_STATUS" /></translation> <translation id="2617342710774726426">SIM 卡已鎖定</translation> <translation id="2653659639078652383">提交</translation> -<translation id="2675319268637823299">管理員已禁止 <ph name="USER_EMAIL" /> 的多重登入功能。 - 所有使用者都必須登出,才能繼續操作。</translation> <translation id="2696763960464195425">登出帳戶後,系統將移除你的資訊。<ph name="LEARN_MORE" /></translation> <translation id="2700493154570097719">設定鍵盤</translation> <translation id="2718395828230677721">夜燈</translation> @@ -129,7 +127,6 @@ <translation id="3510164367642747937">醒目顯示滑鼠游標</translation> <translation id="3513798432020909783">這個帳戶是由 <ph name="MANAGER_EMAIL" /> 管理</translation> <translation id="3573179567135747900">改回「<ph name="FROM_LOCALE" />」(需要重新啟動)</translation> -<translation id="3582792037806681688">這個工作階段的使用者已遭禁用多重登入</translation> <translation id="3595596368722241419">電池已充滿</translation> <translation id="3606978283550408104">已連接點字顯示器。</translation> <translation id="3621202678540785336">輸入</translation>
diff --git a/ash/system/dictation/dictation_button_tray.cc b/ash/system/accessibility/dictation_button_tray.cc similarity index 97% rename from ash/system/dictation/dictation_button_tray.cc rename to ash/system/accessibility/dictation_button_tray.cc index 317b26f8..a5fa1a78 100644 --- a/ash/system/dictation/dictation_button_tray.cc +++ b/ash/system/accessibility/dictation_button_tray.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 "ash/system/dictation/dictation_button_tray.h" +#include "ash/system/accessibility/dictation_button_tray.h" #include "ash/accessibility/accessibility_controller.h" #include "ash/resources/vector_icons/vector_icons.h"
diff --git a/ash/system/dictation/dictation_button_tray.h b/ash/system/accessibility/dictation_button_tray.h similarity index 92% rename from ash/system/dictation/dictation_button_tray.h rename to ash/system/accessibility/dictation_button_tray.h index 7e2699b..f12e115 100644 --- a/ash/system/dictation/dictation_button_tray.h +++ b/ash/system/accessibility/dictation_button_tray.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 ASH_SYSTEM_DICTATION_DICTATION_BUTTON_TRAY_H_ -#define ASH_SYSTEM_DICTATION_DICTATION_BUTTON_TRAY_H_ +#ifndef ASH_SYSTEM_ACCESSIBILITY_DICTATION_BUTTON_TRAY_H_ +#define ASH_SYSTEM_ACCESSIBILITY_DICTATION_BUTTON_TRAY_H_ #include "ash/accelerators/accelerator_controller.h" #include "ash/accessibility/accessibility_observer.h" @@ -72,4 +72,4 @@ } // namespace ash -#endif // ASH_SYSTEM_DICTATION_DICTATION_BUTTON_TRAY_H_ +#endif // ASH_SYSTEM_ACCESSIBILITY_DICTATION_BUTTON_TRAY_H_
diff --git a/ash/system/dictation/dictation_button_tray_unittest.cc b/ash/system/accessibility/dictation_button_tray_unittest.cc similarity index 98% rename from ash/system/dictation/dictation_button_tray_unittest.cc rename to ash/system/accessibility/dictation_button_tray_unittest.cc index 9f1b2589..c22199a2 100644 --- a/ash/system/dictation/dictation_button_tray_unittest.cc +++ b/ash/system/accessibility/dictation_button_tray_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ash/system/dictation/dictation_button_tray.h" +#include "ash/system/accessibility/dictation_button_tray.h" #include "ash/accessibility/accessibility_controller.h" #include "ash/accessibility/test_accessibility_controller_client.h"
diff --git a/ash/system/status_area_widget.cc b/ash/system/status_area_widget.cc index b85c2087..6af163b 100644 --- a/ash/system/status_area_widget.cc +++ b/ash/system/status_area_widget.cc
@@ -9,8 +9,8 @@ #include "ash/session/session_controller.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" +#include "ash/system/accessibility/dictation_button_tray.h" #include "ash/system/accessibility/select_to_speak_tray.h" -#include "ash/system/dictation/dictation_button_tray.h" #include "ash/system/flag_warning/flag_warning_tray.h" #include "ash/system/ime_menu/ime_menu_tray.h" #include "ash/system/message_center/notification_tray.h"
diff --git a/ash/wm/non_client_frame_controller.cc b/ash/wm/non_client_frame_controller.cc index a9e3aa5b..424b909 100644 --- a/ash/wm/non_client_frame_controller.cc +++ b/ash/wm/non_client_frame_controller.cc
@@ -10,10 +10,10 @@ #include <string> #include <vector> -#include "ash/ash_layout_constants.h" #include "ash/frame/custom_frame_view_ash.h" #include "ash/frame/detached_title_area_renderer.h" #include "ash/public/cpp/ash_constants.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/immersive/immersive_fullscreen_controller_delegate.h" #include "ash/public/cpp/window_properties.h" #include "ash/wm/move_event_handler.h"
diff --git a/ash/wm/non_client_frame_controller_unittest.cc b/ash/wm/non_client_frame_controller_unittest.cc index 22f12f3..de758b9 100644 --- a/ash/wm/non_client_frame_controller_unittest.cc +++ b/ash/wm/non_client_frame_controller_unittest.cc
@@ -4,7 +4,7 @@ #include "ash/wm/non_client_frame_controller.h" -#include "ash/ash_layout_constants.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/test/ash_test_base.h" #include "ash/test/ash_test_helper.h" #include "ash/window_manager.h"
diff --git a/ash/wm/overview/window_grid.cc b/ash/wm/overview/window_grid.cc index ab31036..d55120c 100644 --- a/ash/wm/overview/window_grid.cc +++ b/ash/wm/overview/window_grid.cc
@@ -331,7 +331,7 @@ overview_bounds.set_width(right_bound - total_bounds.x()); bool windows_fit = FitWindowRectsInBounds( overview_bounds, std::min(kMaxHeight + 2 * kWindowMargin, height), - &rects, &max_bottom, &min_right, &max_right); + ignored_item, &rects, &max_bottom, &min_right, &max_right); if (height_fixed) { if (!windows_fit) { @@ -376,25 +376,21 @@ if (make_last_adjustment) { gfx::Rect overview_bounds(total_bounds); overview_bounds.set_width(right_bound - total_bounds.x()); - FitWindowRectsInBounds(overview_bounds, - std::min(kMaxHeight + 2 * kWindowMargin, height), - &rects, &max_bottom, &min_right, &max_right); + FitWindowRectsInBounds( + overview_bounds, std::min(kMaxHeight + 2 * kWindowMargin, height), + ignored_item, &rects, &max_bottom, &min_right, &max_right); } // Position the windows centering the left-aligned rows vertically. Do not // position |ignored_item| if it is not nullptr and matches a item in // |window_list_|. gfx::Vector2d offset(0, (total_bounds.bottom() - max_bottom) / 2); - for (size_t i = 0, j = 0; i < window_list_.size(); ++i, ++j) { - if (ignored_item != nullptr && window_list_[i].get() == ignored_item) { - // Decrement the |rects| index so that after repositioning there will not - // be a gap where the ignored item was supposed to be. - --j; + for (size_t i = 0; i < window_list_.size(); ++i) { + if (ignored_item != nullptr && window_list_[i].get() == ignored_item) continue; - } const bool should_animate = window_list_[i]->ShouldAnimateWhenEntering(); window_list_[i]->SetBounds( - rects[j] + offset, + rects[i] + offset, animate && should_animate ? OverviewAnimationType::OVERVIEW_ANIMATION_LAY_OUT_SELECTOR_ITEMS : OverviewAnimationType::OVERVIEW_ANIMATION_NONE); @@ -911,11 +907,12 @@ bool WindowGrid::FitWindowRectsInBounds(const gfx::Rect& bounds, int height, - std::vector<gfx::Rect>* rects, - int* max_bottom, - int* min_right, - int* max_right) { - rects->resize(window_list_.size()); + WindowSelectorItem* ignored_item, + std::vector<gfx::Rect>* out_rects, + int* out_max_bottom, + int* out_min_right, + int* out_max_right) { + out_rects->resize(window_list_.size()); bool windows_fit = true; // Start in the top-left corner of |bounds|. @@ -923,18 +920,25 @@ int top = bounds.y(); // Keep track of the lowest coordinate. - *max_bottom = bounds.y(); + *out_max_bottom = bounds.y(); // Right bound of the narrowest row. - *min_right = bounds.right(); + *out_min_right = bounds.right(); // Right bound of the widest row. - *max_right = bounds.x(); + *out_max_right = bounds.x(); // All elements are of same height and only the height is necessary to // determine each item's scale. const gfx::Size item_size(0, height); size_t i = 0; for (const auto& window : window_list_) { + if (ignored_item && ignored_item == window.get()) { + // Increment the index anyways. PositionWindows will handle skipping this + // entry. + ++i; + continue; + } + const gfx::Rect target_bounds = window->GetTargetBoundsInScreen(); int width = std::max(1, gfx::ToFlooredInt(target_bounds.width() * window->GetItemScale(item_size)) + @@ -954,10 +958,10 @@ if (left + width > bounds.right()) { // Move to the next row if possible. - if (*min_right > left) - *min_right = left; - if (*max_right < left) - *max_right = left; + if (*out_min_right > left) + *out_min_right = left; + if (*out_max_right < left) + *out_max_right = left; top += height; // Check if the new row reaches the bottom or if the first item in the new @@ -971,19 +975,19 @@ } // Position the current rect. - (*rects)[i].SetRect(left, top, width, height); + (*out_rects)[i].SetRect(left, top, width, height); // Increment horizontal position using sanitized positive |width()|. - left += (*rects)[i].width(); + left += (*out_rects)[i].width(); - if (++i == window_list_.size()) { + if (++i == out_rects->size()) { // Update the narrowest and widest row width for the last row. - if (*min_right > left) - *min_right = left; - if (*max_right < left) - *max_right = left; + if (*out_min_right > left) + *out_min_right = left; + if (*out_max_right < left) + *out_max_right = left; } - *max_bottom = top + height; + *out_max_bottom = top + height; } return windows_fit; }
diff --git a/ash/wm/overview/window_grid.h b/ash/wm/overview/window_grid.h index 1963544..3a115ce1 100644 --- a/ash/wm/overview/window_grid.h +++ b/ash/wm/overview/window_grid.h
@@ -218,21 +218,23 @@ // Moves the selection widget to the targeted window. void MoveSelectionWidgetToTarget(bool animate); - // Attempts to fit all |rects| inside |bounds|. The method ensures that - // the |rects| vector has appropriate size and populates it with the values - // placing Rects next to each other left-to-right in rows of equal |height|. - // While fitting |rects| several metrics are collected that can be used by the - // caller. |max_bottom| specifies the bottom that the rects are extending to. - // |min_right| and |max_right| report the right bound of the narrowest and the - // widest rows respectively. In-values of the |max_bottom|, |min_right| and - // |max_right| parameters are ignored and their values are always initialized - // inside this method. Returns true on success and false otherwise. + // Attempts to fit all |out_rects| inside |bounds|. The method ensures that + // the |out_rects| vector has appropriate size and populates it with the + // values placing rects next to each other left-to-right in rows of equal + // |height|. While fitting |out_rects| several metrics are collected that can + // be used by the caller. |out_max_bottom| specifies the bottom that the rects + // are extending to. |out_min_right| and |out_max_right| report the right + // bound of the narrowest and the widest rows respectively. In-values of the + // |out_max_bottom|, |out_min_right| and |out_max_right| parameters are + // ignored and their values are always initialized inside this method. Returns + // true on success and false otherwise. bool FitWindowRectsInBounds(const gfx::Rect& bounds, int height, - std::vector<gfx::Rect>* rects, - int* max_bottom, - int* min_right, - int* max_right); + WindowSelectorItem* ignored_item, + std::vector<gfx::Rect>* out_rects, + int* out_max_bottom, + int* out_min_right, + int* out_max_right); // Sets |selector_item|'s |should_animate_when_entering_|, // |should_animate_when_exiting_| and |should_be_observed_when_exiting_|.
diff --git a/ash/wm/overview/window_selector_item.cc b/ash/wm/overview/window_selector_item.cc index 9c39f38..678e6ba 100644 --- a/ash/wm/overview/window_selector_item.cc +++ b/ash/wm/overview/window_selector_item.cc
@@ -843,6 +843,8 @@ } void WindowSelectorItem::AnimateAndCloseWindow(bool up) { + base::RecordAction(base::UserMetricsAction("WindowSelector_SwipeToClose")); + window_selector_->PositionWindows(/*animate=*/true, /*ignored_item=*/this); caption_container_view_->listener_button()->ResetListener(); close_button_->ResetListener();
diff --git a/ash/wm/overview/window_selector_unittest.cc b/ash/wm/overview/window_selector_unittest.cc index bcf5ce8..967e0a40 100644 --- a/ash/wm/overview/window_selector_unittest.cc +++ b/ash/wm/overview/window_selector_unittest.cc
@@ -3042,6 +3042,35 @@ EXPECT_TRUE(shadow_controller->IsShadowVisibleForWindow(window.get())); } +// Tests the PositionWindows function works as expected. +TEST_F(WindowSelectorTest, PositionWindows) { + const gfx::Rect bounds(200, 200); + std::unique_ptr<aura::Window> window1(CreateWindow(bounds)); + std::unique_ptr<aura::Window> window2(CreateWindow(bounds)); + std::unique_ptr<aura::Window> window3(CreateWindow(bounds)); + + ToggleOverview(); + WindowSelectorItem* item1 = GetWindowItemForWindow(0, window1.get()); + WindowSelectorItem* item2 = GetWindowItemForWindow(0, window2.get()); + WindowSelectorItem* item3 = GetWindowItemForWindow(0, window3.get()); + const gfx::Rect bounds1 = item1->target_bounds(); + const gfx::Rect bounds2 = item2->target_bounds(); + const gfx::Rect bounds3 = item3->target_bounds(); + + // Verify that the bounds remain the same when calling PositionWindows again. + window_selector()->PositionWindows(/*animate=*/false); + EXPECT_EQ(bounds1, item1->target_bounds()); + EXPECT_EQ(bounds2, item2->target_bounds()); + EXPECT_EQ(bounds3, item3->target_bounds()); + + // Verify that |item2| and |item3| change bounds when calling PositionWindows + // while ignoring |item1|. + window_selector()->PositionWindows(/*animate=*/false, item1); + EXPECT_EQ(bounds1, item1->target_bounds()); + EXPECT_NE(bounds2, item2->target_bounds()); + EXPECT_NE(bounds3, item3->target_bounds()); +} + class SplitViewWindowSelectorTest : public WindowSelectorTest { public: SplitViewWindowSelectorTest() = default;
diff --git a/ash/wm/panels/panel_frame_view.cc b/ash/wm/panels/panel_frame_view.cc index fa11e4a60..fd35c07 100644 --- a/ash/wm/panels/panel_frame_view.cc +++ b/ash/wm/panels/panel_frame_view.cc
@@ -51,8 +51,8 @@ caption_button_container_ = new FrameCaptionButtonContainerView(frame_); AddChildView(caption_button_container_); - frame_header_ = std::make_unique<DefaultFrameHeader>( - frame_, this, caption_button_container_); + frame_header_ = + std::make_unique<DefaultFrameHeader>(this, caption_button_container_); GetWidgetWindow()->SetProperty(aura::client::kTopViewColor, DefaultFrameHeader::GetDefaultFrameColor());
diff --git a/base/android/java/src/org/chromium/base/EarlyTraceEvent.java b/base/android/java/src/org/chromium/base/EarlyTraceEvent.java index 9a79d6a..0f64fc2 100644 --- a/base/android/java/src/org/chromium/base/EarlyTraceEvent.java +++ b/base/android/java/src/org/chromium/base/EarlyTraceEvent.java
@@ -106,7 +106,8 @@ @VisibleForTesting static volatile int sState = STATE_DISABLED; // Not final as these object are not likely to be used at all. @VisibleForTesting static List<Event> sCompletedEvents; - @VisibleForTesting static Map<String, Event> sPendingEvents; + @VisibleForTesting + static Map<String, Event> sPendingEventByKey; @VisibleForTesting static List<AsyncEvent> sAsyncEvents; @VisibleForTesting static List<String> sPendingAsyncEvents; @@ -138,7 +139,7 @@ synchronized (sLock) { if (sState != STATE_DISABLED) return; sCompletedEvents = new ArrayList<Event>(); - sPendingEvents = new HashMap<String, Event>(); + sPendingEventByKey = new HashMap<String, Event>(); sAsyncEvents = new ArrayList<AsyncEvent>(); sPendingAsyncEvents = new ArrayList<String>(); sState = STATE_ENABLED; @@ -183,7 +184,7 @@ Event conflictingEvent; synchronized (sLock) { if (!enabled()) return; - conflictingEvent = sPendingEvents.put(name, event); + conflictingEvent = sPendingEventByKey.put(makeEventKeyForCurrentThread(name), event); } if (conflictingEvent != null) { throw new IllegalArgumentException( @@ -196,7 +197,7 @@ if (!isActive()) return; synchronized (sLock) { if (!isActive()) return; - Event event = sPendingEvents.remove(name); + Event event = sPendingEventByKey.remove(makeEventKeyForCurrentThread(name)); if (event == null) return; event.end(); sCompletedEvents.add(event); @@ -231,7 +232,7 @@ static void resetForTesting() { sState = EarlyTraceEvent.STATE_DISABLED; sCompletedEvents = null; - sPendingEvents = null; + sPendingEventByKey = null; sAsyncEvents = null; sPendingAsyncEvents = null; } @@ -245,9 +246,9 @@ dumpAsyncEvents(sAsyncEvents); sAsyncEvents.clear(); } - if (sPendingEvents.isEmpty() && sPendingAsyncEvents.isEmpty()) { + if (sPendingEventByKey.isEmpty() && sPendingAsyncEvents.isEmpty()) { sState = STATE_FINISHED; - sPendingEvents = null; + sPendingEventByKey = null; sCompletedEvents = null; sPendingAsyncEvents = null; sAsyncEvents = null; @@ -279,6 +280,16 @@ return nativeNowNanos - javaNowNanos; } + /** + * Returns a key which consists of |name| and the ID of the current thread. + * The key is used with pending events making them thread-specific, thus avoiding + * an exception when similarly named events are started from multiple threads. + */ + @VisibleForTesting + static String makeEventKeyForCurrentThread(String name) { + return name + "@" + Process.myTid(); + } + private static native void nativeRecordEarlyEvent(String name, long beginTimNanos, long endTimeNanos, int threadId, long threadDurationMillis); private static native void nativeRecordEarlyStartAsyncEvent(
diff --git a/base/android/javatests/src/org/chromium/base/EarlyTraceEventTest.java b/base/android/javatests/src/org/chromium/base/EarlyTraceEventTest.java index e93848e6..ff3ed2c 100644 --- a/base/android/javatests/src/org/chromium/base/EarlyTraceEventTest.java +++ b/base/android/javatests/src/org/chromium/base/EarlyTraceEventTest.java
@@ -50,7 +50,7 @@ long afterNanos = Event.elapsedRealtimeNanos(); Assert.assertEquals(1, EarlyTraceEvent.sCompletedEvents.size()); - Assert.assertTrue(EarlyTraceEvent.sPendingEvents.isEmpty()); + Assert.assertTrue(EarlyTraceEvent.sPendingEventByKey.isEmpty()); Event event = EarlyTraceEvent.sCompletedEvents.get(0); Assert.assertEquals(EVENT_NAME, event.mName); Assert.assertEquals(myThreadId, event.mThreadId); @@ -71,7 +71,7 @@ long afterNanos = Event.elapsedRealtimeNanos(); Assert.assertEquals(2, EarlyTraceEvent.sAsyncEvents.size()); - Assert.assertTrue(EarlyTraceEvent.sPendingEvents.isEmpty()); + Assert.assertTrue(EarlyTraceEvent.sPendingEventByKey.isEmpty()); AsyncEvent eventStart = EarlyTraceEvent.sAsyncEvents.get(0); AsyncEvent eventEnd = EarlyTraceEvent.sAsyncEvents.get(1); Assert.assertEquals(EVENT_NAME, eventStart.mName); @@ -111,7 +111,7 @@ long afterNanos = Event.elapsedRealtimeNanos(); Assert.assertEquals(1, EarlyTraceEvent.sCompletedEvents.size()); - Assert.assertTrue(EarlyTraceEvent.sPendingEvents.isEmpty()); + Assert.assertTrue(EarlyTraceEvent.sPendingEventByKey.isEmpty()); Event event = EarlyTraceEvent.sCompletedEvents.get(0); Assert.assertEquals(EVENT_NAME, event.mName); Assert.assertEquals(myThreadId, event.mThreadId); @@ -129,15 +129,16 @@ EarlyTraceEvent.begin(EVENT_NAME); Assert.assertTrue(EarlyTraceEvent.sCompletedEvents.isEmpty()); - Assert.assertEquals(1, EarlyTraceEvent.sPendingEvents.size()); - EarlyTraceEvent.Event event = EarlyTraceEvent.sPendingEvents.get(EVENT_NAME); + Assert.assertEquals(1, EarlyTraceEvent.sPendingEventByKey.size()); + EarlyTraceEvent.Event event = EarlyTraceEvent.sPendingEventByKey.get( + EarlyTraceEvent.makeEventKeyForCurrentThread(EVENT_NAME)); Assert.assertEquals(EVENT_NAME, event.mName); } @Test @SmallTest @Feature({"Android-AppBase"}) - public void testNoDuplicatePendingEvents() { + public void testNoDuplicatePendingEventsFromSameThread() { EarlyTraceEvent.enable(); EarlyTraceEvent.begin(EVENT_NAME); try { @@ -152,6 +153,21 @@ @Test @SmallTest @Feature({"Android-AppBase"}) + public void testDuplicatePendingEventsFromDifferentThreads() throws Exception { + EarlyTraceEvent.enable(); + + Thread otherThread = new Thread(() -> { EarlyTraceEvent.begin(EVENT_NAME); }); + otherThread.start(); + otherThread.join(); + + // At this point we have a pending event with EVENT_NAME name. But events are per + // thread, so we should be able to start EVENT_NAME event in a different thread. + EarlyTraceEvent.begin(EVENT_NAME); + } + + @Test + @SmallTest + @Feature({"Android-AppBase"}) public void testIgnoreEventsWhenDisabled() { EarlyTraceEvent.begin(EVENT_NAME); EarlyTraceEvent.end(EVENT_NAME); @@ -182,7 +198,7 @@ EarlyTraceEvent.begin(EVENT_NAME2); EarlyTraceEvent.end(EVENT_NAME2); - Assert.assertEquals(1, EarlyTraceEvent.sPendingEvents.size()); + Assert.assertEquals(1, EarlyTraceEvent.sPendingEventByKey.size()); Assert.assertTrue(EarlyTraceEvent.sCompletedEvents.isEmpty()); }
diff --git a/base/json/json_parser.cc b/base/json/json_parser.cc index 0d31ba8..dfe246c4 100644 --- a/base/json/json_parser.cc +++ b/base/json/json_parser.cc
@@ -8,7 +8,6 @@ #include <utility> #include <vector> -#include "base/debug/alias.h" #include "base/logging.h" #include "base/macros.h" #include "base/numerics/safe_conversions.h" @@ -327,16 +326,6 @@ } Optional<Value> JSONParser::ConsumeDictionary() { - // Attempt to alias 4KB of the buffer about to be read. Need to alias multiple - // sites as the crashpad heuristics only grab a few hundred bytes in - // front/behind heap pointers on the stack. - // TODO(gab): Remove this after diagnosis of https://crbug.com/791487 is - // complete. - const char* initial_pos[16]; - for (size_t i = 0; i < arraysize(initial_pos); ++i) - initial_pos[i] = pos() + i * 256; - debug::Alias(&initial_pos); - if (ConsumeChar() != '{') { ReportError(JSONReader::JSON_UNEXPECTED_TOKEN, 1); return nullopt;
diff --git a/base/metrics/histogram_functions.h b/base/metrics/histogram_functions.h index c9632fa2..44dcf60 100644 --- a/base/metrics/histogram_functions.h +++ b/base/metrics/histogram_functions.h
@@ -54,7 +54,7 @@ static_assert(std::is_enum<T>::value, "Non enum passed to UmaHistogramEnumeration"); DCHECK_LE(static_cast<uintmax_t>(enum_size), static_cast<uintmax_t>(INT_MAX)); - DCHECK_LE(static_cast<uintmax_t>(sample), static_cast<uintmax_t>(enum_size)); + DCHECK_LT(static_cast<uintmax_t>(sample), static_cast<uintmax_t>(enum_size)); return UmaHistogramExactLinear(name, static_cast<int>(sample), static_cast<int>(enum_size)); }
diff --git a/base/time/time_unittest.cc b/base/time/time_unittest.cc index 8f300715..62501b72 100644 --- a/base/time/time_unittest.cc +++ b/base/time/time_unittest.cc
@@ -1291,8 +1291,10 @@ EXPECT_TRUE(TimeDelta::FromSecondsD(std::numeric_limits<double>::infinity()) .is_max()); - constexpr double max_d = max_int; - constexpr double min_d = min_int; + // Note that max_int/min_int will be rounded when converted to doubles - they + // can't be exactly represented. + constexpr double max_d = static_cast<double>(max_int); + constexpr double min_d = static_cast<double>(min_int); static_assert( TimeDelta::FromSecondsD(max_d / Time::kMicrosecondsPerSecond + 1)
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc index 5fd36a5..da5b9f4 100644 --- a/base/trace_event/trace_log.cc +++ b/base/trace_event/trace_log.cc
@@ -1251,6 +1251,13 @@ subtle::NoBarrier_Load(&trace_event_override_)); if (trace_event_override) { TraceEvent new_trace_event; + // If we have an override in place for events, rather than sending + // them to the tracelog, we don't have a way of going back and updating + // the duration of _COMPLETE events. Instead, we emit separate _BEGIN + // and _END events. + if (phase == TRACE_EVENT_PHASE_COMPLETE) + phase = TRACE_EVENT_PHASE_BEGIN; + new_trace_event.Initialize(thread_id, offset_event_timestamp, thread_now, phase, category_group_enabled, name, scope, id, bind_id, num_args, arg_names, arg_types, @@ -1447,6 +1454,26 @@ std::string console_message; if (category_group_enabled_local & TraceCategory::ENABLED_FOR_RECORDING) { + AddTraceEventOverrideCallback trace_event_override = + reinterpret_cast<AddTraceEventOverrideCallback>( + subtle::NoBarrier_Load(&trace_event_override_)); + + // If we send events off to an override instead of the TraceBuffer, + // we don't have way of updating the prior event so we'll emit a + // separate _END event instead. + if (trace_event_override) { + TraceEvent new_trace_event; + new_trace_event.Initialize( + static_cast<int>(base::PlatformThread::CurrentId()), now, thread_now, + TRACE_EVENT_PHASE_END, category_group_enabled, name, + trace_event_internal::kGlobalScope, + trace_event_internal::kNoId /* id */, + trace_event_internal::kNoId /* bind_id */, 0, nullptr, nullptr, + nullptr, nullptr, TRACE_EVENT_FLAG_NONE); + trace_event_override(new_trace_event); + return; + } + OptionalAutoLock lock(&lock_); TraceEvent* trace_event = GetEventByHandleInternal(handle, &lock);
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index 8d88654..ed5e654 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -115,8 +115,8 @@ # We currently only have default profiles for Chromium in-tree, so we disable # this by default for all downstream projects, since these profiles are likely # nonsensical for said projects. - clang_use_default_sample_profile = - build_with_chromium && is_official_build && is_android + clang_use_default_sample_profile = build_with_chromium && is_official_build && + (is_android || is_desktop_linux) # Turn this on to have the compiler output extra timing information. compiler_timing = false @@ -1999,7 +1999,8 @@ } else if (clang_use_default_sample_profile) { assert(build_with_chromium, "Our default profiles currently only apply to Chromium") - assert(is_android, "The current platform has no default profile") + assert(is_android || is_desktop_linux, + "The current platform has no default profile") _clang_sample_profile = rebase_path("//chrome/android/profiles/afdo.prof") } }
diff --git a/build/fuchsia/sdk.sha1 b/build/fuchsia/sdk.sha1 index 306646c4..9743c55 100644 --- a/build/fuchsia/sdk.sha1 +++ b/build/fuchsia/sdk.sha1
@@ -1 +1 @@ -fd0d6e393b2f1b9f15debf14275d0d2483977864 \ No newline at end of file +9c359b0a1a7a7dbef1f7d895f631300048417e8a \ No newline at end of file
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 2c452ce1..96a6134 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -1896,10 +1896,33 @@ metadata.device_scale_factor = active_tree_->painted_device_scale_factor() * active_tree_->device_scale_factor(); metadata.viewport_size_in_pixels = device_viewport_size(); - const viz::LocalSurfaceId& local_surface_id = + metadata.top_controls_height = + browser_controls_offset_manager_->TopControlsHeight(); + metadata.top_controls_shown_ratio = + browser_controls_offset_manager_->TopControlsShownRatio(); + metadata.bottom_controls_height = + browser_controls_offset_manager_->BottomControlsHeight(); + metadata.bottom_controls_shown_ratio = + browser_controls_offset_manager_->BottomControlsShownRatio(); + + bool allocate_new_local_surface_id = + last_draw_render_frame_metadata_ && + (last_draw_render_frame_metadata_->top_controls_height != + metadata.top_controls_height || + last_draw_render_frame_metadata_->top_controls_shown_ratio != + metadata.top_controls_shown_ratio || + last_draw_render_frame_metadata_->bottom_controls_height != + metadata.bottom_controls_height || + last_draw_render_frame_metadata_->bottom_controls_shown_ratio != + metadata.bottom_controls_shown_ratio); + + viz::LocalSurfaceId local_surface_id = child_local_surface_id_allocator_.GetCurrentLocalSurfaceId(); - if (local_surface_id.is_valid()) + if (local_surface_id.is_valid()) { + if (allocate_new_local_surface_id) + local_surface_id = child_local_surface_id_allocator_.GenerateId(); metadata.local_surface_id = local_surface_id; + } active_tree_->GetViewportSelection(&metadata.selection); metadata.is_mobile_optimized = IsMobileOptimized(active_tree_.get()); @@ -1980,9 +2003,9 @@ active_tree()->FinishSwapPromises(&metadata, &frame_token_allocator_); if (render_frame_metadata_observer_) { - RenderFrameMetadata render_frame_metadata = MakeRenderFrameMetadata(); + last_draw_render_frame_metadata_ = MakeRenderFrameMetadata(); render_frame_metadata_observer_->OnRenderFrameSubmission( - std::move(render_frame_metadata)); + *last_draw_render_frame_metadata_); } metadata.latency_info.emplace_back(ui::SourceEventType::FRAME);
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h index 5a962b0..1dff5795 100644 --- a/cc/trees/layer_tree_host_impl.h +++ b/cc/trees/layer_tree_host_impl.h
@@ -41,6 +41,7 @@ #include "cc/trees/layer_tree_settings.h" #include "cc/trees/managed_memory_policy.h" #include "cc/trees/mutator_host_client.h" +#include "cc/trees/render_frame_metadata.h" #include "cc/trees/task_runner_provider.h" #include "cc/trees/ukm_manager.h" #include "components/viz/common/frame_sinks/begin_frame_args.h" @@ -76,7 +77,6 @@ class PendingTreeRasterDurationHistogramTimer; class RasterTilePriorityQueue; class RasterBufferProvider; -class RenderFrameMetadata; class RenderFrameMetadataObserver; class RenderingStatsInstrumentation; class ResourcePool; @@ -1056,6 +1056,7 @@ uint32_t last_presentation_token_ = 0u; viz::LocalSurfaceId last_draw_local_surface_id_; + base::Optional<RenderFrameMetadata> last_draw_render_frame_metadata_; viz::ChildLocalSurfaceIdAllocator child_local_surface_id_allocator_; const int default_color_space_id_;
diff --git a/cc/trees/render_frame_metadata.cc b/cc/trees/render_frame_metadata.cc index b8a0500b..5678f5c 100644 --- a/cc/trees/render_frame_metadata.cc +++ b/cc/trees/render_frame_metadata.cc
@@ -25,7 +25,11 @@ rfm1.is_mobile_optimized != rfm2.is_mobile_optimized || rfm1.device_scale_factor != rfm2.device_scale_factor || rfm1.viewport_size_in_pixels != rfm2.viewport_size_in_pixels || - rfm1.local_surface_id != rfm2.local_surface_id; + rfm1.local_surface_id != rfm2.local_surface_id || + rfm1.top_controls_height != rfm2.top_controls_height || + rfm1.top_controls_shown_ratio != rfm2.top_controls_shown_ratio || + rfm1.bottom_controls_height != rfm2.bottom_controls_height || + rfm1.bottom_controls_shown_ratio != rfm2.bottom_controls_shown_ratio; } RenderFrameMetadata& RenderFrameMetadata::operator=( @@ -42,7 +46,11 @@ is_mobile_optimized == other.is_mobile_optimized && device_scale_factor == other.device_scale_factor && viewport_size_in_pixels == other.viewport_size_in_pixels && - local_surface_id == other.local_surface_id; + local_surface_id == other.local_surface_id && + top_controls_height == other.top_controls_height && + top_controls_shown_ratio == other.top_controls_shown_ratio && + bottom_controls_height == other.bottom_controls_height && + bottom_controls_shown_ratio == other.bottom_controls_shown_ratio; } bool RenderFrameMetadata::operator!=(const RenderFrameMetadata& other) const {
diff --git a/cc/trees/render_frame_metadata.h b/cc/trees/render_frame_metadata.h index 94f768c..d07d7d4 100644 --- a/cc/trees/render_frame_metadata.h +++ b/cc/trees/render_frame_metadata.h
@@ -66,6 +66,16 @@ // The last viz::LocalSurfaceId used to submit a CompositorFrame. base::Optional<viz::LocalSurfaceId> local_surface_id; + + // Used to position the Android location top bar and page content, whose + // precise position is computed by the renderer compositor. + float top_controls_height = 0.f; + float top_controls_shown_ratio = 0.f; + + // Used to position Android bottom bar, whose position is computed by the + // renderer compositor. + float bottom_controls_height = 0.f; + float bottom_controls_shown_ratio = 0.f; }; } // namespace cc
diff --git a/chrome/android/java/res/drawable-v21/ntp_search_box.xml b/chrome/android/java/res/drawable-v21/ntp_search_box.xml index c9f99d8..7e1f7b2 100644 --- a/chrome/android/java/res/drawable-v21/ntp_search_box.xml +++ b/chrome/android/java/res/drawable-v21/ntp_search_box.xml
@@ -5,9 +5,9 @@ found in the LICENSE file. --> <ripple xmlns:android="http://schemas.android.com/apk/res/android" - android:color="@android:color/white" > + android:color="@color/google_grey_400" > <item android:drawable="@drawable/modern_toolbar_background"/> -</ripple> \ No newline at end of file +</ripple>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java index 94067d1..f92f090c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
@@ -322,7 +322,7 @@ } @Override - public void onSuccess(boolean success) { + public void onSuccess() { tasks.start(false); } });
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotifier.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotifier.java index a83dbcb..2a3ea02a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotifier.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotifier.java
@@ -503,7 +503,7 @@ if (!browserStartup.isStartupSuccessfullyCompleted()) { browserStartup.addStartupCompletedObserver(new StartupCallback() { @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { flushCachedMetrics(); } @Override
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 8ff23b5..e61e09a6 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
@@ -7,6 +7,7 @@ import android.graphics.Canvas; import android.graphics.Point; import android.graphics.Rect; +import android.graphics.drawable.Drawable; import android.support.v4.view.ViewCompat; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -418,6 +419,15 @@ } /** + * Set the search box background drawable. + * + * @param drawable The search box background. + */ + public void setSearchBoxBackground(Drawable drawable) { + mNewTabPageView.setSearchBoxBackground(drawable); + } + + /** * @return Whether the location bar is shown in the NTP. */ public boolean isLocationBarShownInNTP() {
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 0514d83..af71ea5 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
@@ -9,6 +9,7 @@ import android.graphics.Canvas; import android.graphics.Point; import android.graphics.Rect; +import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.RecyclerView; @@ -775,6 +776,15 @@ } /** + * Set the search box background drawable. + * + * @param drawable The search box background. + */ + public void setSearchBoxBackground(Drawable drawable) { + mSearchBoxView.setBackground(drawable); + } + + /** * Get the bounds of the search box in relation to the top level NewTabPage view. * * @param bounds The current drawing location of the search box.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java index ad6c9fc..b3f6eb1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
@@ -658,6 +658,15 @@ } /** + * Determines if the page is in one of the user requested download namespaces. + * @param nameSpace Namespace of the page in question. + * @return true if the page is in a user requested download namespace. + */ + public boolean isUserRequestedDownloadNamespace(String nameSpace) { + return nativeIsUserRequestedDownloadNamespace(mNativeOfflinePageBridge, nameSpace); + } + + /** * Checks if the supplied file path is in a private dir internal to chrome. * @param file_path Path of the file to check. * @return True if the file is in a private directory. @@ -873,6 +882,8 @@ long nativeOfflinePageBridge, WebContents webContents); private native boolean nativeIsInPrivateDirectory( long nativeOfflinePageBridge, String filePath); + private native boolean nativeIsUserRequestedDownloadNamespace( + long nativeOfflinePageBridge, String nameSpace); private native OfflinePageItem nativeGetOfflinePage( long nativeOfflinePageBridge, WebContents webContents); private native void nativeCheckForNewOfflineContent(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java index 3d45e94..81c69f5 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
@@ -20,6 +20,7 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeActivity; +import org.chromium.chrome.browser.FileProviderHelper; import org.chromium.chrome.browser.UrlConstants; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareParams; @@ -389,8 +390,18 @@ String offlinePath = offlinePage.getFilePath(); final String pageUrl = tab.getUrl(); + // We share temporary pages by content URI to prevent unanticipated side effects in the + // public directory. Temporary pages are ones not in a user requested download namespace. + Uri uri; + if (!offlinePageBridge.isUserRequestedDownloadNamespace( + offlinePage.getClientId().getNamespace())) { + File file = new File(offlinePage.getFilePath()); + uri = (new FileProviderHelper()).getContentUriFromFile(file); + } else { + uri = Uri.parse(pageUrl); + } - if (!isOfflinePageShareable(offlinePageBridge, offlinePage, pageUrl)) return false; + if (!isOfflinePageShareable(offlinePageBridge, offlinePage, uri)) return false; // The file access permission is needed since we may need to publish the archive file // if it resides in internal directory. @@ -409,7 +420,8 @@ final String pageTitle = tab.getTitle(); final File offlinePageFile = new File(offlinePath); - sharePage(activity, pageUrl, pageTitle, offlinePath, offlinePageFile, shareCallback); + sharePage(activity, uri.toString(), pageTitle, offlinePath, offlinePageFile, + shareCallback); }); return true; @@ -423,22 +435,14 @@ * @return true if this page can be shared. */ public static boolean isOfflinePageShareable( - OfflinePageBridge offlinePageBridge, OfflinePageItem offlinePage, String pageUri) { + OfflinePageBridge offlinePageBridge, OfflinePageItem offlinePage, Uri uri) { // Return false if there is no offline page or sharing is not enabled. if (offlinePage == null || !OfflinePageBridge.isPageSharingEnabled()) return false; - // We share temporary pages by URL instead of sharing the page to prevent unanticipated side - // effects in the public directory. - // TODO(petewil): https://crbug.com/831780 - Desired long term behavior is to share the page - // with a content URI instead of as a URL, so all offline pages are shared as MHTML. - if (isTemporaryNamespace(offlinePage.getClientId().getNamespace())) return false; - String offlinePath = offlinePage.getFilePath(); - Uri uri = Uri.parse(pageUri); // If we have a content or file Uri, then we can share the page. if (isSchemeContentOrFile(uri)) { - assert offlinePath.isEmpty(); return true; } @@ -464,17 +468,6 @@ return isContentScheme || isFileScheme; } - /** - * Determines if the page is in one of the temporary namespaces. - * @param namespace Namespace of the page in question. - * @return true if the page is in a temporary namespace. - */ - public static boolean isTemporaryNamespace(String namespace) { - return namespace.equals(OfflinePageBridge.BOOKMARK_NAMESPACE) - || namespace.equals(OfflinePageBridge.LAST_N_NAMESPACE) - || namespace.equals(OfflinePageBridge.CCT_NAMESPACE) - || namespace.equals(OfflinePageBridge.SUGGESTED_ARTICLES_NAMESPACE); - } /** * For internal pages, we must publish them, then share them.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchedPagesNotifier.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchedPagesNotifier.java index 9f1d7cfb..5d508eb 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchedPagesNotifier.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchedPagesNotifier.java
@@ -176,7 +176,7 @@ if (!browserStartup.isStartupSuccessfullyCompleted()) { browserStartup.addStartupCompletedObserver(new StartupCallback() { @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { r.run(); } @Override
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 90465629..c43739e 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
@@ -188,7 +188,7 @@ private Runnable mRequestSuggestions; private ViewGroup mOmniboxResultsContainer; - protected FadingBackgroundView mFadingView; + private FadingBackgroundView mFadingView; private boolean mSuggestionsShown; private boolean mUrlHasFocus; @@ -1108,8 +1108,8 @@ listener.onUrlFocusChange(hasFocus); } - updateOmniboxResultsContainer(); - if (hasFocus) updateFadingBackgroundView(true); + maybeShowOmniboxResultsContainer(); + updateFadingBackgroundView(hasFocus, false); } /** @@ -1713,7 +1713,7 @@ mSuggestionList.setVisibility(GONE); } } - updateOmniboxResultsContainer(); + maybeShowOmniboxResultsContainer(); } /** @@ -2291,12 +2291,10 @@ mOmniboxResultsContainer = (ViewGroup) overlayStub.inflate(); } - private void updateOmniboxResultsContainer() { + private void maybeShowOmniboxResultsContainer() { if (mSuggestionsShown || mUrlHasFocus) { initOmniboxResultsContainer(); updateOmniboxResultsContainerVisibility(true); - } else if (mOmniboxResultsContainer != null) { - updateFadingBackgroundView(false); } } @@ -2313,21 +2311,10 @@ } } - /** - * Initialize the fading background for when the omnibox is focused. - */ - protected void initFadingOverlayView() { - mFadingView = - (FadingBackgroundView) getRootView().findViewById(R.id.fading_focus_target); - mFadingView.addObserver(this); - } - @Override public void onFadingViewClick() { setUrlBarFocus(false); - - // If the bottom sheet is used, it will control the fading view. - if (mBottomSheet == null) updateFadingBackgroundView(false); + updateFadingBackgroundView(false, false); } @Override @@ -2348,23 +2335,22 @@ * Update the fading background view that shows when the omnibox is focused. If Chrome Home is * enabled, this method is a no-op. * @param visible Whether the background should be made visible. + * @param ignoreNtpChecks Whether the checks for the ntp should be considered when updating the + * scrim. */ - private void updateFadingBackgroundView(boolean visible) { - if (mFadingView == null) initFadingOverlayView(); - - // If Chrome Home is enabled (the bottom sheet is not null), it will be controlling the - // fading view, so block any updating here. - if (mToolbarDataProvider == null || mBottomSheet != null) return; - + protected void updateFadingBackgroundView(boolean visible, boolean ignoreNtpChecks) { + if (mFadingView == null) mFadingView = getRootView().findViewById(R.id.fading_focus_target); NewTabPage ntp = mToolbarDataProvider.getNewTabPageForCurrentTab(); boolean locationBarShownInNTP = ntp != null && ntp.isLocationBarShownInNTP(); - if (visible && !locationBarShownInNTP) { + if (visible && (!locationBarShownInNTP || ignoreNtpChecks)) { + mFadingView.addObserver(this); // If the location bar is shown in the NTP, the toolbar will eventually trigger a // fade in. mFadingView.showFadingOverlay(); } else { mFadingView.hideFadingOverlay(!locationBarShownInNTP); + mFadingView.removeObserver(this); } }
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 9016b336..a6b4016 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
@@ -188,8 +188,7 @@ NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); if (hasFocus && ntp != null && ntp.isLocationBarShownInNTP() && mBottomSheet == null) { - if (mFadingView == null) initFadingOverlayView(); - mFadingView.showFadingOverlay(); + updateFadingBackgroundView(true, true); } } @@ -201,6 +200,9 @@ } private void updateGoogleG() { + // Inflation might not be finished yet during startup. + if (mGoogleGContainer == null) return; + // The toolbar data provider can be null during startup, before the ToolbarManager has been // initialized. ToolbarDataProvider toolbarDataProvider = getToolbarDataProvider();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java index 2629620..667d74f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java
@@ -255,7 +255,7 @@ .addStartupCompletedObserver( new BrowserStartupController.StartupCallback() { @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { ensureNativeSideInitialized(); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java index fdaf21a..a0eba9eab 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java
@@ -63,18 +63,17 @@ @Override public void run() { BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER) - .addStartupCompletedObserver( - new StartupCallback() { - @Override - public void onSuccess(boolean alreadyStarted) { - task.run(); - } + .addStartupCompletedObserver(new StartupCallback() { + @Override + public void onSuccess() { + task.run(); + } - @Override - public void onFailure() { - // Startup failed. - } - }); + @Override + public void onFailure() { + // Startup failed. + } + }); } }); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java index f64b9b30..b20295a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java
@@ -28,6 +28,7 @@ import android.support.annotation.Nullable; import android.support.v4.graphics.drawable.DrawableCompat; import android.support.v4.view.animation.FastOutSlowInInterpolator; +import android.support.v7.graphics.drawable.DrawableWrapper; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Property; @@ -191,6 +192,8 @@ * focused or the NTP search box is being scrolled up. Note that in the latter case, the actual * width of the omnibox is not interpolated linearly from this value. The value will be the * maximum of {@link #mUrlFocusChangePercent} and {@link #mNtpSearchBoxScrollPercent}. + * + * 0.0 == no expansion, 1.0 == fully expanded. */ @ViewDebug.ExportedProperty(category = "chrome") protected float mUrlExpansionPercent; @@ -212,7 +215,8 @@ protected ColorDrawable mToolbarBackground; /** The omnibox background (white with a shadow). */ - protected Drawable mLocationBarBackground; + private Drawable mLocationBarBackground; + private Drawable mActiveLocationBarBackground; protected boolean mForceDrawLocationBarBackground; private TabSwitcherDrawable mTabSwitcherButtonDrawable; @@ -407,6 +411,7 @@ mLocationBarBackgroundPadding.top, mLocationBarBackgroundPadding.right, mLocationBarBackgroundPadding.bottom); } + mActiveLocationBarBackground = mLocationBarBackground; } /** @@ -913,6 +918,11 @@ } } + @Override + protected boolean verifyDrawable(Drawable who) { + return super.verifyDrawable(who) || who == mActiveLocationBarBackground; + } + // NewTabPage.OnSearchBoxScrollListener @Override public void onNtpScrollChanged(float scrollPercentage) { @@ -1162,6 +1172,7 @@ */ protected void resetNtpAnimationValues() { mLocationBarBackgroundNtpOffset.setEmpty(); + mActiveLocationBarBackground = mLocationBarBackground; mNtpSearchBoxTranslation.set(0, 0); mLocationBar.setTranslationY(0); if (!mUrlFocusChangeInProgress) { @@ -1197,12 +1208,12 @@ // Skip if in or entering tab switcher mode. if (mTabSwitcherState == TAB_SWITCHER || mTabSwitcherState == ENTERING_TAB_SWITCHER) return; - setAncestorsShouldClipChildren(mUrlExpansionPercent == 0f); - if (!mToolbarShadowPermanentlyHidden - && !(mLocationBar.useModernDesign() && mUrlFocusChangeInProgress)) { + boolean isExpanded = mUrlExpansionPercent > 0f; + boolean useModern = mLocationBar.useModernDesign(); + setAncestorsShouldClipChildren(!isExpanded); + if (!mToolbarShadowPermanentlyHidden && !(useModern && mUrlFocusChangeInProgress)) { float alpha = 0.f; - if (mLocationBar.useModernDesign() && !mUrlBar.hasFocus() - && mNtpSearchBoxScrollPercent == 1.f) { + if (useModern && !mUrlBar.hasFocus() && mNtpSearchBoxScrollPercent == 1.f) { alpha = 1.f; } mToolbarShadow.setAlpha(alpha); @@ -1225,7 +1236,7 @@ int leftBoundDifference = mNtpSearchBoxBounds.left - mLocationBarBackgroundBounds.left; int rightBoundDifference = mNtpSearchBoxBounds.right - mLocationBarBackgroundBounds.right; int verticalInset = 0; - if (mLocationBar.useModernDesign()) { + if (useModern) { verticalInset = (int) (getResources().getDimensionPixelSize( R.dimen.ntp_search_box_bounds_vertical_inset_modern) * (1.f - mUrlExpansionPercent)); @@ -1245,13 +1256,18 @@ mLocationBarNtpOffsetRight = (rightBoundDifference + mLocationBarBackgroundCornerRadius) * shrinkage; - mLocationBarBackgroundAlpha = mUrlExpansionPercent > 0f ? 255 : 0; + mLocationBarBackgroundAlpha = isExpanded ? 255 : 0; mForceDrawLocationBarBackground = mLocationBarBackgroundAlpha > 0; float relativeAlpha = mLocationBarBackgroundAlpha / 255f; mLocationBar.setAlpha(relativeAlpha); // The search box on the NTP is visible if our omnibox is invisible, and vice-versa. ntp.setSearchBoxAlpha(1f - relativeAlpha); + if (!mForceDrawLocationBarBackground) { + if (mActiveLocationBarBackground instanceof NtpSearchBoxDrawable) { + ((NtpSearchBoxDrawable) mActiveLocationBarBackground).resetBoundsToLastNonToolbar(); + } + } updateToolbarBackground(mVisualState); } @@ -1494,7 +1510,11 @@ mLocationBarBackground.setAlpha(backgroundAlpha); if (shouldDrawLocationBarBackground()) { - mLocationBarBackground.setBounds( + if (mActiveLocationBarBackground instanceof NtpSearchBoxDrawable) { + ((NtpSearchBoxDrawable) mActiveLocationBarBackground) + .markPendingBoundsUpdateFromToolbar(); + } + mActiveLocationBarBackground.setBounds( mLocationBarBackgroundBounds.left + mLocationBarBackgroundNtpOffset.left - mLocationBarBackgroundPadding.left, mLocationBarBackgroundBounds.top + mLocationBarBackgroundNtpOffset.top @@ -1503,7 +1523,7 @@ + mLocationBarBackgroundPadding.right, mLocationBarBackgroundBounds.bottom + mLocationBarBackgroundNtpOffset.bottom + mLocationBarBackgroundPadding.bottom); - mLocationBarBackground.draw(canvas); + mActiveLocationBarBackground.draw(canvas); } float locationBarClipLeft = @@ -2338,6 +2358,11 @@ mVisibleNewTabPage = getToolbarDataProvider().getNewTabPageForCurrentTab(); if (mVisibleNewTabPage != null && mVisibleNewTabPage.isLocationBarShownInNTP()) { mVisibleNewTabPage.setSearchBoxScrollListener(this); + if (mLocationBar.useModernDesign()) { + NtpSearchBoxDrawable ntpSearchBox = new NtpSearchBoxDrawable(getContext(), this); + mVisibleNewTabPage.setSearchBoxBackground(ntpSearchBox); + mActiveLocationBarBackground = ntpSearchBox; + } requestLayout(); } else if (wasShowingNtp) { // Convert the previous NTP scroll percentage to URL focus percentage because that @@ -2708,4 +2733,73 @@ mFullscreenCalloutToken); } } + + /** + * Custom drawable that allows sharing the NTP search box drawable between the toolbar and the + * NTP. This allows animations to continue as the drawable is switched between the two owning + * views. + */ + private static class NtpSearchBoxDrawable extends DrawableWrapper { + private final Drawable.Callback mCallback; + + private int mBoundsLeft, mBoundsTop, mBoundsRight, mBoundsBottom; + private boolean mPendingBoundsUpdateFromToolbar; + private boolean mDrawnByNtp; + + /** + * Constructs the NTP search box drawable. + * + * @param context The context used to inflate the drawable. + * @param callback The callback to be notified on changes ot the drawable. + */ + public NtpSearchBoxDrawable(Context context, Drawable.Callback callback) { + super(ApiCompatibilityUtils.getDrawable( + context.getResources(), R.drawable.ntp_search_box)); + mCallback = callback; + setCallback(mCallback); + } + + /** + * Mark that the pending bounds update is coming from the toolbar. + */ + void markPendingBoundsUpdateFromToolbar() { + mPendingBoundsUpdateFromToolbar = true; + } + + /** + * Reset the bounds of the drawable to the last bounds received that was not marked from + * the toolbar. + */ + void resetBoundsToLastNonToolbar() { + setBounds(mBoundsLeft, mBoundsTop, mBoundsRight, mBoundsBottom); + } + + @Override + public void setBounds(int left, int top, int right, int bottom) { + super.setBounds(left, top, right, bottom); + if (!mPendingBoundsUpdateFromToolbar) { + mBoundsLeft = left; + mBoundsTop = top; + mBoundsRight = right; + mBoundsBottom = bottom; + mDrawnByNtp = true; + } else { + mDrawnByNtp = false; + } + mPendingBoundsUpdateFromToolbar = false; + } + + @Override + public boolean setVisible(boolean visible, boolean restart) { + // Ignore visibility changes. The NTP can toggle the visibility based on the scroll + // position of the page, so we simply ignore all of this as we expect the drawable to + // be visible at all times of the NTP. + return false; + } + + @Override + public Callback getCallback() { + return mDrawnByNtp ? super.getCallback() : mCallback; + } + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java index 71f2252a..71e6063 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
@@ -788,8 +788,6 @@ */ public static VrClassesWrapper getVrClassesWrapper() { if (sVrClassesWrapper == null) sVrClassesWrapper = createVrClassesWrapper(); - // Disable VR on standalone VR devices (https://crbug.com/841850). - if (sVrClassesWrapper != null && sVrClassesWrapper.bootsToVr()) return null; return sVrClassesWrapper; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java index 18473571..e6f2c2c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java
@@ -58,6 +58,7 @@ import org.chromium.content_public.browser.ContentViewCore; import org.chromium.content_public.browser.ImeAdapter; import org.chromium.content_public.browser.LoadUrlParams; +import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.BrowserControlsState; import org.chromium.ui.base.PermissionCallback; import org.chromium.ui.base.WindowAndroid; @@ -216,6 +217,9 @@ @Override public void onWebContentsSwapped(Tab tab, boolean didStartLoad, boolean didFinishLoad) { onContentChanged(tab); + // It is not needed to restore IME for old web contents as it is going away and + // replaced by the new web contents. + configWebContentsImeForVr(tab.getWebContents()); } @Override @@ -426,41 +430,41 @@ mTabObserver.onContentChanged(mTab); } + private void configWebContentsImeForVr(WebContents webContents) { + if (webContents == null) return; + + ImeAdapter imeAdapter = ImeAdapter.fromWebContents(webContents); + if (imeAdapter == null) return; + + mInputMethodManagerWrapper = new VrInputMethodManagerWrapper(mActivity, this); + imeAdapter.setInputMethodManagerWrapper(mInputMethodManagerWrapper); + } + + private void restoreWebContentsImeFromVr(WebContents webContents) { + if (webContents == null) return; + + ImeAdapter imeAdapter = ImeAdapter.fromWebContents(webContents); + if (imeAdapter == null) return; + + imeAdapter.setInputMethodManagerWrapper( + ImeAdapter.createDefaultInputMethodManagerWrapper(mActivity)); + mInputMethodManagerWrapper = null; + } + private void initializeTabForVR() { if (mTab == null) return; // Make sure we are not redirecting to another app, i.e. out of VR mode. mNonVrTabRedirectHandler = mTab.getTabRedirectHandler(); mTab.setTabRedirectHandler(mTabRedirectHandler); assert mTab.getWindowAndroid() == mContentVrWindowAndroid; - initializeImeForVr(); - } - - private void initializeImeForVr() { - assert mTab != null; - if (mTab.getWebContents() == null) return; - ImeAdapter imeAdapter = ImeAdapter.fromWebContents(mTab.getWebContents()); - if (imeAdapter != null) { - mInputMethodManagerWrapper = new VrInputMethodManagerWrapper(mActivity, this); - imeAdapter.setInputMethodManagerWrapper(mInputMethodManagerWrapper); - } - } - - private void uninitializeImeForVr() { - assert mTab != null; - if (mTab.getWebContents() == null) return; - ImeAdapter imeAdapter = ImeAdapter.fromWebContents(mTab.getWebContents()); - if (imeAdapter != null) { - imeAdapter.setInputMethodManagerWrapper( - ImeAdapter.createDefaultInputMethodManagerWrapper(mActivity)); - } - mInputMethodManagerWrapper = null; + configWebContentsImeForVr(mTab.getWebContents()); } private void restoreTabFromVR() { if (mTab == null) return; mTab.setTabRedirectHandler(mNonVrTabRedirectHandler); mNonVrTabRedirectHandler = null; - uninitializeImeForVr(); + restoreWebContentsImeFromVr(mTab.getWebContents()); } private void reparentAllTabs(WindowAndroid window) { @@ -717,7 +721,7 @@ if (mTab != null) { mTab.removeObserver(mTabObserver); restoreTabFromVR(); - uninitializeImeForVr(); + restoreWebContentsImeFromVr(mTab.getWebContents()); if (mTab.getContentViewCore() != null) { View parent = mTab.getContentView(); mTab.getWebContents().setSize(parent.getWidth(), parent.getHeight());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java index a65240b..e90d0132 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java
@@ -172,6 +172,14 @@ mObservers.addObserver(observer); } + /** + * Removes an observer to this fading view. + * @param observer The observer to be removed. + */ + public void removeObserver(FadingViewObserver observer) { + mObservers.removeObserver(observer); + } + @Override public void onClick(View view) { for (FadingViewObserver o : mObservers) o.onFadingViewClick();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java index d02f41a4..841f0609 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java
@@ -164,6 +164,14 @@ } }); + final BottomSheetObserver scrimAlphaSheetObserver = new EmptyBottomSheetObserver() { + @Override + public void onTransitionPeekToHalf(float transitionFraction) { + fadingBackgroundView.setViewAlpha(transitionFraction); + } + }; + + // Handles attaching the observer that controls the placement and visibility of the scrim. mBottomSheet.addObserver(new EmptyBottomSheetObserver() { /** * The index of the scrim in the view hierarchy prior to being moved for the bottom @@ -172,13 +180,8 @@ private int mOriginalScrimIndexInParent; @Override - public void onTransitionPeekToHalf(float transitionFraction) { - if (!mBottomSheet.isSheetOpen()) return; - fadingBackgroundView.setViewAlpha(transitionFraction); - } - - @Override public void onSheetOpened(@BottomSheet.StateChangeReason int reason) { + mBottomSheet.addObserver(scrimAlphaSheetObserver); mOriginalScrimIndexInParent = UiUtils.getChildIndexInParent(fadingBackgroundView); ViewGroup parent = (ViewGroup) fadingBackgroundView.getParent(); UiUtils.removeViewFromParent(fadingBackgroundView); @@ -187,10 +190,12 @@ @Override public void onSheetClosed(@BottomSheet.StateChangeReason int reason) { + mBottomSheet.removeObserver(scrimAlphaSheetObserver); assert mOriginalScrimIndexInParent >= 0; ViewGroup parent = (ViewGroup) fadingBackgroundView.getParent(); UiUtils.removeViewFromParent(fadingBackgroundView); parent.addView(fadingBackgroundView, mOriginalScrimIndexInParent); + fadingBackgroundView.setViewAlpha(0); } @Override
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 c6d213e..047f6ee 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">የሙሉ ማያ ገጽ ጣቢያ መቆጣጠሪያዎች</translation> <translation id="2038563949887743358">የዴስክቶፕ ጣቢያን ጠይቅን አብራ</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> ጊባ ሌሎች መተግበሪያዎች</translation> +<translation id="2063713494490388661">ለመፈለግ መታ ያድርጉ</translation> <translation id="2079545284768500474">ቀልብስ</translation> <translation id="2082238445998314030">ውጤት <ph name="RESULT_NUMBER" /> ከ<ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">በGoogle የሚጠቆም ግላዊነት የተላበሰ ይዘትን ለማግኘት በመለያ ወደ Chrome ይግቡ።</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">ታሪክን በመለያ ከገቡ ሁሉም መሣሪያዎች ላይ ያጸዳል። የእርስዎ Google መለያ <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ ዓይነቶች ሊኖረው ይችላል</translation> <translation id="3600792891314830896">ድምጽን በሚያጫውቱ ጣቢያዎች ላይ ድምጸ-ከል አድርግ</translation> <translation id="360207483134687714">የVR ተሞክሮን በChrome ለማሻሻል ያግዙ</translation> -<translation id="360480449234699036">ገጹን ትተው ሳይሄዱ በድር ጣቢያዎች ላይ ስላሉ ርዕሶች ይወቁ። ለመፈለግ ይንኩ አንድ ቃል እና በዙሪያው ያለውን አውድ ወደ Google ፍለጋ ይልክና ትርጓሜዎችን፣ ስዕሎችን የፍለጋ ውጤቶችን እና ሌሎች ዝርዝሮችን ይመልሳል። - -የፍለጋ ቃልዎን ለማስተካከል ለመምረጥ በረዥሙ ይጫኑ። ፍለጋዎን ይበልጥ ለማጥራት መቃኑን እስከ ላይ ድረስ ያንሸራትቱት እና የፍለጋ ሳጥኑን ይንኩ።</translation> <translation id="3616113530831147358">ድምጽ</translation> <translation id="3620176948598597475">ዳግም ማስጀመር የተጎበኙ ጣቢያዎች ዝርዝርን ጨምሮ የውሂብ ቆጣቢ ታሪክን ይደመስሳል።</translation> <translation id="3632295766818638029">የይለፍ ቃልን ግለጥ</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">ውሂብ ቆጣቢ ዳግም ይጀመር?</translation> <translation id="3714981814255182093">የአግኝ አሞሌን ክፈት</translation> <translation id="3716182511346448902">ይህ ገጽ በጣም ብዙ ማህደረ ትውስታን ይጠቀማል፣ ስለዚህ Chrome ባለበት አቁሞታል።</translation> -<translation id="3738139272394829648">ለመፈለግ ይንኩ</translation> <translation id="3739899004075612870">በ<ph name="PRODUCT_NAME" /> ውስጥ ዕልባት ተቀምጦለታል</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> ሜባ ሌሎች መተግበሪያዎች</translation> <translation id="3744111561329211289">የዳራ ስምረት</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">የገጽ ግመታዎችን ይጠቀሙ</translation> <translation id="4412992751769744546">የሶስተኛ ወገን ኩኪዎችን ፍቀድ</translation> <translation id="4432792777822557199">በ<ph name="SOURCE_LANGUAGE" /> ያሉ ገጾች ወደ <ph name="TARGET_LANGUAGE" /> ከአሁን በኋላ ይተረጎማሉ</translation> +<translation id="4434045419905280838">ብቅ-ባዮች እና አቅጣጫ ማዞሮች</translation> <translation id="4445444302979002552">ቃላትን እና የድር ጣቢያዎችን ለመጠቆም የመገመቻ አገልግሎቶችን ይጠቀሙ</translation> <translation id="4452411734226507615">የ<ph name="TAB_TITLE" /> ትር ዝጋ</translation> <translation id="4452548195519783679"><ph name="FOLDER_NAME" /> ላይ ዕልባት ተደርጓል</translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">መግለጫ</translation> <translation id="5777170031995031090">Google ፍለጋን፣ ማስታወቂያዎችን እና ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ ብሎ የአሰሳ ታሪክዎን እንዴት እንደሚጠቀምበት ይቆጣጠሩት።</translation> <translation id="5779929835642192302">የሚገኙ የአስተያየት ጥቆማዎች</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> ከ<ph name="SPACE_AVAILABLE" /> በመጠቀም ላይ</translation> <translation id="5804241973901381774">ፍቃዶች</translation> <translation id="5809361687334836369">{HOURS,plural, =1{ከ# ሰዓት በፊት}one{ከ# ሰዓቶች በፊት}other{ከ# ሰዓቶች በፊት}}</translation> <translation id="5817918615728894473">አጣምር</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">ጣቢያ ጣልቃ ገቢ ማስታወቂያዎችን የማሳየት አዝማሚያ ካለው አግድ (የሚመከር)</translation> <translation id="6560414384669816528">ከSogou ጋር ይፈልጉ</translation> <translation id="6566259936974865419">Chrome <ph name="GIGABYTES" /> ጊባ ቆጥቦልዎታል</translation> +<translation id="6573096386450695060">ሁልጊዜ ፍቀድ</translation> <translation id="6573431926118603307">በሌሎች መሣሪያዎችዎ ላይ ባለ Chrome ላይ የከፈቷቸው ትሮች እዚህ ይመጣሉ።</translation> <translation id="6575643671698722332">ዳግም ማስጀመር አልተሳካም። የእርስዎ መሣሪያ መስመር ላይ መሆኑን ያረጋግጡና እንደገና ይሞክሩ።</translation> <translation id="6583199322650523874">የአሁኑን ገጽ ዕልባት አድርግበት</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">አሥምር ወደ</translation> <translation id="7034608350006174882">Google Payን የሚጠቀሙ ካርዶች እና አድራሻዎች</translation> <translation id="7053983685419859001">አግድ</translation> +<translation id="7055152154916055070">አቅጣጫ ማዞር ታግዷል፦</translation> <translation id="7062545763355031412">ይቀበሉ እና መለያዎችን ይቀይሩ</translation> <translation id="7063006564040364415">ከማመሳሰያ አገልጋዩ ጋር መገናኘት አልተቻለም።</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 ተመርጧል}one{# ተመርጠዋል}other{# ተመርጠዋል}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">በአድራሻ አሞሌው ላይ ታሪክን እና ራስ-ማጠናቀቆችን ያጸዳል። የእርስዎ Google መለያ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ አይነቶች ሊኖሩት ይችላል።</translation> <translation id="7128222689758636196">አሁን ላለው የፍለጋ ፕሮግራም ፍቀድ</translation> <translation id="7138678301420049075">ሌላ</translation> +<translation id="7141896414559753902">ጣቢያዎች ብቅ-ባዮችን እንዳያሳዩ ያግዱ (የሚመከር)</translation> <translation id="7144878232160441200">እንደገና ሞክር</translation> <translation id="7149893636342594995">ባለፉት 24 ሰዓቶች</translation> <translation id="7177466738963138057">ይሄንን በኋላ ቅንብሮች ውስጥ ሊለውጡት ይችላሉ</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">ተዛማጅ ገጾችን ይጠቁሙ</translation> <translation id="8116925261070264013">ድምፀ ከል ተደርጓል</translation> <translation id="813082847718468539">የጣቢያ መረጃን ይመልከቱ</translation> -<translation id="8137558756159375272">ፍለጋ ላይ መንካት የተመረጠ ቃልን እና አሁን ያለውን ገጽ ወደ Google ፍለጋ ይልካል። በ<ph name="BEGIN_LINK" />ቅንብሮች<ph name="END_LINK" /> ውስጥ ሊያጠፉት ይችላሉ።</translation> <translation id="8168435359814927499">ይዘት</translation> <translation id="8186512483418048923"><ph name="FILES" /> ፋይሎች ይቀራሉ</translation> <translation id="8190358571722158785">1 ቀን ይቀራል</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">መነሻ</translation> <translation id="932599481871055447">ውሂብ ይቆጥቡና በበለጠ ፍጥነት ያስሱ</translation> <translation id="938850635132480979">ስህተት፦ <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">በኤስዲ ካርድ ላይ በቂ ቦታ የለም</translation> <translation id="945522503751344254">ግብረ መልስ ላክ</translation> <translation id="945632385593298557">የእርስዎን ማይክሮፎን ይድረሱ</translation> <translation id="951339005376969845">ነባሩን ውሂብ ይሰርዙ። ወደ <ph name="FROM_ACCOUNT" /> መልሰው በመቀየር ሰርስረው ሊያወጡት ይችላሉ።</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 5f6ee4c..2132521 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">عناصر التحكم لموقع في وضع ملء الشاشة</translation> <translation id="2038563949887743358">تشغيل طلب موقع الويب لسطح المكتب</translation> <translation id="2045104531052923016">تطبيقات أخرى بحجم <ph name="GIGABYTES" /> غيغابايت</translation> +<translation id="2063713494490388661">انقر للبحث</translation> <translation id="2079545284768500474">تراجع</translation> <translation id="2082238445998314030">النتيجة <ph name="RESULT_NUMBER" /> من <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">للحصول على محتوى مخصص اقترحته Google، سجِّلْ الدخول إلى Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">يمسح السجل من كل الأجهزة التي تم تسجيل الدخول عليها. وقد يتضمن حسابك في Google نماذج أخرى من سجل التصفح في <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">كتم صوت المواقع التي تُشغّل الصوت</translation> <translation id="360207483134687714">المساعدة في تحسين تجربة الواقع الافتراضي (VR) في Chrome</translation> -<translation id="360480449234699036">اعرف مواضيع معنية بمواقع الويب بدون مغادرة الصفحة. تُرسل ميزة "المس للبحث" الكلمة والسياق المحيط بها إلى بحث Google، والتعريفات العائدة، والصور، ونتائج البحث، وتفاصيل أخرى. - -لضبط عبارة البحث، اضغط مع الاستمرار للتحديد. لتحسين البحث، مرّر اللوحة للأعلى والمس مربع البحث.</translation> <translation id="3616113530831147358">الصوت</translation> <translation id="3620176948598597475">تؤدي إعادة الضبط إلى محو سجلّ توفير البيانات، بما في ذلك قائمة المواقع التي تمت زيارتها.</translation> <translation id="3632295766818638029">كشف كلمة المرور</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">أترغب في إعادة ضبط توفير البيانات؟</translation> <translation id="3714981814255182093">فتح شريط البحث</translation> <translation id="3716182511346448902">تستهلك هذه الصفحة مساحة كبيرة من الذاكرة، لذلك أوقفها Chrome مؤقتًا.</translation> -<translation id="3738139272394829648">المس للبحث</translation> <translation id="3739899004075612870">تمت إضافة إشارة مرجعية في <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">تطبيقات أخرى بحجم <ph name="MEGABYTES" /> ميغابايت</translation> <translation id="3744111561329211289">مزامنة الخلفية</translation> @@ -780,7 +777,6 @@ <translation id="8105951947646329362">اقتراح الصفحات ذات الصلة</translation> <translation id="8116925261070264013">مواقع الويب التي تم كتم الصوت فيها</translation> <translation id="813082847718468539">عرض معلومات الموقع</translation> -<translation id="8137558756159375272">يرسل "المس للبحث" الكلمة المحددة والصفحة الحالية كسياق إلى بحث Google. يمكنك إيقافه في <ph name="BEGIN_LINK" />الإعدادات<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">المحتوى</translation> <translation id="8186512483418048923"><ph name="FILES" /> من الملفات المتبقية</translation> <translation id="8190358571722158785">يتبقى يوم واحد</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 cc1f296a..fa1eb143 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Контроли за сайтове на цял екран</translation> <translation id="2038563949887743358">Включване на функцията за заявяване на настолни сайтове</translation> <translation id="2045104531052923016">Други приложения: <ph name="GIGABYTES" /> ГБ</translation> +<translation id="2063713494490388661">Търсене с докосване</translation> <translation id="2079545284768500474">Отмяна</translation> <translation id="2082238445998314030">Резултат <ph name="RESULT_NUMBER" /> от <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">За да получавате персонализирано съдържание, предлагано от Google, влезте в Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Изчиства историята от всички устройства, на които сте влезли в профила си в Google. В него може да има други видове история на сърфиране, съхранявани на адрес <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Спиране на звука, възпроизвеждан от сайтовете</translation> <translation id="360207483134687714">Помогнете да подобрим сърфирането във VR с Chrome</translation> -<translation id="360480449234699036">Научавайте за темите в уебсайтовете, без да напускате страницата. Функцията за търсене с докосване изпраща до Google Търсене определени думи и заобикалящия ги текст и така извежда определения, снимки, резултати и други подробности. - -За да коригирате думата си за търсене, натиснете продължително за избор. За да прецизирате заявката, плъзнете панела нагоре докрай и докоснете полето за търсене.</translation> <translation id="3616113530831147358">Аудио</translation> <translation id="3620176948598597475">Така ще изтриете историята на разширението, включително списъка с посетени сайтове.</translation> <translation id="3632295766818638029">Показване на паролата</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Да се нулира ли статистиката от Икономия на данни?</translation> <translation id="3714981814255182093">Отваряне на лентата за търсене</translation> <translation id="3716182511346448902">Тази страница използва твърде много памет, така че Chrome я постави на пауза.</translation> -<translation id="3738139272394829648">Търсене чрез докосване</translation> <translation id="3739899004075612870">Отметката бе запазена в/ъв <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">Други приложения: <ph name="MEGABYTES" /> МБ</translation> <translation id="3744111561329211289">Синхронизиране на заден план</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Използване на предвижданията за страници</translation> <translation id="4412992751769744546">Разрешаване на „бисквитките“ на трети страни</translation> <translation id="4432792777822557199">От сега нататък страниците на <ph name="SOURCE_LANGUAGE" /> ще се превеждат на <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Изскач. прозорци и пренасочвания</translation> <translation id="4445444302979002552">Използвайте услугите за предвиждане, за да получавате предложения за думи за търсене и уебсайтове</translation> <translation id="4452411734226507615">Затваряне на раздела „<ph name="TAB_TITLE" />“</translation> <translation id="4452548195519783679">Отметката бе запазена в/ъв „<ph name="FOLDER_NAME" />“</translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Описание:</translation> <translation id="5777170031995031090">Контролирайте начина, по който използваме историята ви на сърфиране, за да персонализираме търсенето, рекламите и други услуги на Google.</translation> <translation id="5779929835642192302">Налице са предложения</translation> +<translation id="5793665092639000975">Използвано място: <ph name="SPACE_USED" /> от <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Разрешения</translation> <translation id="5809361687334836369">{HOURS,plural, =1{преди # час}other{преди # часа}}</translation> <translation id="5817918615728894473">Сдвояване</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Блокиране, ако на сайта обикновено се показват натрапчиви реклами (препоръчително)</translation> <translation id="6560414384669816528">Търсене със Sogou</translation> <translation id="6566259936974865419">Chrome ви спести <ph name="GIGABYTES" /> ГБ</translation> +<translation id="6573096386450695060">Разрешаване винаги</translation> <translation id="6573431926118603307">Тук ще се показват разделите, които сте отворили в Chrome на другите си устройства.</translation> <translation id="6575643671698722332">Нулирането не бе успешно. Уверете се, че устройството е онлайн, и опитайте пак.</translation> <translation id="6583199322650523874">Запазване на отметка към текущата страница</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Синхронизиране със</translation> <translation id="7034608350006174882">Карти и адреси посредством Google Pay</translation> <translation id="7053983685419859001">Блокиране</translation> +<translation id="7055152154916055070">Блокирано бе пренасочване:</translation> <translation id="7062545763355031412">Приемане и превключване на профилите</translation> <translation id="7063006564040364415">Не можа да се установи връзка със синхронизиращия сървър.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Избран е 1 елемент}other{Избрани са # елемента}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Изчиства историята и автоматичните довършвания в адресната лента. В профила ви в Google може да има други видове история на сърфиране, съхранявани на адрес <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Разрешаване за текущата търсеща машина</translation> <translation id="7138678301420049075">Друго</translation> +<translation id="7141896414559753902">Блокиране на показването на изскачащи прозорци и пренасочвания от сайтовете (препоръчително)</translation> <translation id="7144878232160441200">Нов опит</translation> <translation id="7149893636342594995">Последните 24 часа</translation> <translation id="7177466738963138057">Можете да промените това по-късно от настройките</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Предложения за сродни страници</translation> <translation id="8116925261070264013">Заглушени</translation> <translation id="813082847718468539">Преглед на информацията за сайта</translation> -<translation id="8137558756159375272">При търсене с докосване избраната дума и текущата страница се изпращат като контекст до Google Търсене. Можете да изключите функцията от <ph name="BEGIN_LINK" />Настройки<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Съдържание</translation> <translation id="8186512483418048923">Остават <ph name="FILES" /> файла</translation> <translation id="8190358571722158785">Остава 1 ден</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Начална страница</translation> <translation id="932599481871055447">Пестете данни и сърфирайте по-бързо</translation> <translation id="938850635132480979">Грешка: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Няма достатъчно място на SD картата</translation> <translation id="945522503751344254">Изпращане на отзиви</translation> <translation id="945632385593298557">Достъп до микрофона</translation> <translation id="951339005376969845">Изтриване на съществуващите данни. Можете да ги извлечете, като превключите обратно към <ph name="FROM_ACCOUNT" />.</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 a4e19e1..fe12367 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Controls de pantalla completa</translation> <translation id="2038563949887743358">Activa Mostra com a ordinador</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB en altres aplicacions</translation> +<translation id="2063713494490388661">Tocar per cercar</translation> <translation id="2079545284768500474">Desfés</translation> <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Inicia la sessió a Chrome perquè Google et suggereixi contingut personalitzat</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Esborra l'historial de tots els dispositius en què tinguis iniciada la sessió. A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />, trobaràs altres maneres d'explorar l'historial del teu compte de Google.</translation> <translation id="3600792891314830896">Silencia els llocs web que reprodueixen so</translation> <translation id="360207483134687714">Ajuda a millorar l'experiència de RV a Chrome</translation> -<translation id="360480449234699036">Consulteu més informació sobre els temes en altres llocs web sense sortir de la pàgina. La funció Toca per cercar envia una paraula i el seu context a la Cerca de Google i torna definicions, imatges, resultats de la cerca i altres detalls. - -Per ajustar el terme de la cerca, manteniu-lo premut per seleccionar-lo. Per definir millor la cerca, feu lliscar el tauler cap amunt tot el que pugueu i toqueu el quadre de cerca.</translation> <translation id="3616113530831147358">Àudio</translation> <translation id="3620176948598597475">En restablir l'extensió Economitzador de dades, se n'esborrarà l'historial, inclosa la llista de llocs web visitats.</translation> <translation id="3632295766818638029">Mostra la contrasenya</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Vols restablir l'extensió Economitzador de dades?</translation> <translation id="3714981814255182093">Obre la Barra de cerca</translation> <translation id="3716182511346448902">Com que aquesta pàgina fa servir massa memòria, Chrome l'ha posat en pausa.</translation> -<translation id="3738139272394829648">Toca per cercar</translation> <translation id="3739899004075612870">Afegit a les adreces de: <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB en altres aplicacions</translation> <translation id="3744111561329211289">Sincronització en segon pla</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Suggereix pàgines relacionades</translation> <translation id="8116925261070264013">Silenciats</translation> <translation id="813082847718468539">Mostra la informació del lloc</translation> -<translation id="8137558756159375272">La funció Toca per cercar envia la paraula seleccionada i la pàgina actual com a context a la Cerca de Google. La podeu desactivar a <ph name="BEGIN_LINK" />Configuració<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Contingut</translation> <translation id="8186512483418048923">Queden <ph name="FILES" /> fitxers</translation> <translation id="8190358571722158785">Queda 1 dia</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 42ebd827..c5a5b54 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Ovládání webu na celé obrazovce</translation> <translation id="2038563949887743358">Zapnout funkci Verze webu pro PC</translation> <translation id="2045104531052923016">Ostatní aplikace: <ph name="GIGABYTES" /> GB</translation> +<translation id="2063713494490388661">Vyhledání klepnutím</translation> <translation id="2079545284768500474" /> <translation id="2082238445998314030">Výsledek <ph name="RESULT_NUMBER" /> z <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Chcete-li od Googlu získat personalizované návrhy obsahu, přihlaste se do Chromu.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Vymaže historii ze všech zařízení, na kterých jste přihlášeni. Na stránce <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google.</translation> <translation id="3600792891314830896">Ztlumit weby, které přehrávají zvuky</translation> <translation id="360207483134687714">Pomozte zlepšit virtuální realitu v Chromu</translation> -<translation id="360480449234699036">Vyhledávejte informace o tématech zmíněných na stránce, aniž byste stránku museli opustit. Klepnutím na Vyhledat odešlete slovo a okolní kontext do Vyhledávání Google, které vrátí definice, obrázky, výsledky vyhledávání a další podrobnosti. - -Chcete-li vyhledávací dotaz upravit, proveďte výběr dlouhým stisknutím. Chcete-li upřesnit vyhledávací dotaz, přejeďte po panelu až nahoru a klepněte na vyhledávací pole.</translation> <translation id="3616113530831147358">Zvuk</translation> <translation id="3620176948598597475">Resetováním vymažete historii Spořiče dat, včetně seznamu navštívených webů.</translation> <translation id="3632295766818638029">Zrušit maskování hesla</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Resetovat Spořič dat?</translation> <translation id="3714981814255182093">Otevřít lištu Najít</translation> <translation id="3716182511346448902">Tato stránka využívá příliš mnoho paměti, proto ji Chrome pozastavil.</translation> -<translation id="3738139272394829648">Vyhledání klepnutím</translation> <translation id="3739899004075612870">Přidáno do záložek (<ph name="PRODUCT_NAME" />)</translation> <translation id="3744111309925758534">Ostatní aplikace: <ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">Synchronizace na pozadí</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Předvídat stránky</translation> <translation id="4412992751769744546">Povolit cookies třetích stran</translation> <translation id="4432792777822557199">Stránky v jazyce <ph name="SOURCE_LANGUAGE" /> od teď budou překládány do jazyka <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Vyskakovací okna a přesměrování</translation> <translation id="4445444302979002552">Používat služby předpovídání k zobrazování návrhů vyhledávacích dotazů a webů</translation> <translation id="4452411734226507615">Zavřít kartu <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Záložka přidána do složky <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Popis:</translation> <translation id="5777170031995031090">Nastavte, jak má Google využívat vaši historii procházení k personalizaci Vyhledávání, reklam a dalších služeb Google.</translation> <translation id="5779929835642192302">Jsou k dispozici návrhy</translation> +<translation id="5793665092639000975">Je využito <ph name="SPACE_USED" /> z <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Oprávnění</translation> <translation id="5809361687334836369">{HOURS,plural, =1{před # hodinou}few{před # hodinami}many{před # hodiny}other{před # hodinami}}</translation> <translation id="5817918615728894473">Spárovat</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokovat, pokud web často zobrazuje rušivé reklamy (doporučeno)</translation> <translation id="6560414384669816528">Vyhledávat pomocí Sogou</translation> <translation id="6566259936974865419">Chrome vám ušetřil <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Vždy povolit</translation> <translation id="6573431926118603307">Zde se objeví karty, které jste otevřeli v Chromu ve svých ostatních zařízeních.</translation> <translation id="6575643671698722332">Resetování se nezdařilo. Zkontrolujte, zda je zařízení online, a zkuste to znovu.</translation> <translation id="6583199322650523874">Přidat aktuální stránku do záložek</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Synchronizace s účty</translation> <translation id="7034608350006174882">Karty a adresy pomocí služby Google Pay</translation> <translation id="7053983685419859001">Blokovat</translation> +<translation id="7055152154916055070">Bylo zablokováno přesměrování:</translation> <translation id="7062545763355031412">Přijmout a přepnout účet</translation> <translation id="7063006564040364415">K synchronizačnímu serveru se nelze připojit.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Vybráno: 1}few{Vybráno: #}many{Vybráno: #}other{Vybráno: #}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Vymaže historii a automatická dokončení v adresním řádku. Na stránce <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google.</translation> <translation id="7128222689758636196">Povolit pro aktuální vyhledávač</translation> <translation id="7138678301420049075">Ostatní</translation> +<translation id="7141896414559753902">Bránit webům v zobrazování vyskakovacích oken a v přesměrování (doporučeno)</translation> <translation id="7144878232160441200">Opakovat</translation> <translation id="7149893636342594995">Posledních 24 hodin</translation> <translation id="7177466738963138057">Svoji volbu můžete později změnit v nabídce Nastavení</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Navrhovat související stránky</translation> <translation id="8116925261070264013">Ztlumeno</translation> <translation id="813082847718468539">Zobrazit informace o stránkách</translation> -<translation id="8137558756159375272">Vyhledání klepnutím odešle vybrané slovo a aktuální stránku jako kontext do Vyhledávání Google. Tuto funkci můžete vypnout v <ph name="BEGIN_LINK" />Nastavení<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Obsah</translation> <translation id="8186512483418048923">Zbývající soubory: <ph name="FILES" /></translation> <translation id="8190358571722158785">Zbývá: 1 d</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Domovská stránka</translation> <translation id="932599481871055447">Ušetřete data a surfujte rychleji</translation> <translation id="938850635132480979">Chyba: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Na SD kartě není dost místa</translation> <translation id="945522503751344254">Odeslat zpětnou vazbu</translation> <translation id="945632385593298557">Přístup k mikrofonu</translation> <translation id="951339005376969845">Smazat existující data. Můžete je znovu načíst tím, že přepnete zpět na účet <ph name="FROM_ACCOUNT" />.</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 bc470ce9..5cca7e13 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Kontrolelementer på website i fuld skærm</translation> <translation id="2038563949887743358">Slå computerversionen af websitet til</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB af andre apps</translation> +<translation id="2063713494490388661">Tryk for at søge</translation> <translation id="2079545284768500474">Fortryd</translation> <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> af <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Log ind på Chrome for at hente brugertilpasset indhold, som er foreslået af Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Rydder historikken på alle enheder, hvor du er logget ind. Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Lyden slås fra for websites, der afspiller lyd</translation> <translation id="360207483134687714">Hjælp med at forbedre VR-oplevelsen i Chrome</translation> -<translation id="360480449234699036">Få oplysninger om emner på websites uden at forlade siden. "Tryk for at søge" sender et ord og ordets kontekst til Google Søgning og giver dig definitioner, billeder, søgeresultater og andre oplysninger. - -Tryk længe på din søgeterm for at vælge den og tilpasse den. Du kan afgrænse din søgning ved at skyde panelet hele vejen op og trykke i søgefeltet.</translation> <translation id="3616113530831147358">Lyd</translation> <translation id="3620176948598597475">Hvis du nulstiller, slettes historikken for Datasparefunktion samt listen over besøgte websites.</translation> <translation id="3632295766818638029">Vis adgangskoden</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Vil du nulstille Datasparefunktion?</translation> <translation id="3714981814255182093">Åbn søgefeltet</translation> <translation id="3716182511346448902">Denne side anvender for meget hukommelse, så Chrome har sat den på pause.</translation> -<translation id="3738139272394829648">Tryk for at søge</translation> <translation id="3739899004075612870">Tilføjet som bogmærke i <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB af andre apps</translation> <translation id="3744111561329211289">Synkronisering i baggrunden</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Brug sideforslag</translation> <translation id="4412992751769744546">Tillad tredjepartscookies</translation> <translation id="4432792777822557199">Sider på <ph name="SOURCE_LANGUAGE" /> oversættes fremover til <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Pop op-vinduer og omdirigeringer</translation> <translation id="4445444302979002552">Brug forslagstjenester til at foreslå søgetermer og websites</translation> <translation id="4452411734226507615">Luk fanen <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Bogmærket er gemt i <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Beskrivelse:</translation> <translation id="5777170031995031090">Kontrollér, hvordan Google bruger din browserhistorik til at personliggøre Søgning, annoncer og andre Google-tjenester.</translation> <translation id="5779929835642192302">Tilgængelige forslag</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> af <ph name="SPACE_AVAILABLE" /> i brug</translation> <translation id="5804241973901381774">Tilladelser</translation> <translation id="5809361687334836369">{HOURS,plural, =1{For 1 time siden}one{For # time siden}other{For # timer siden}}</translation> <translation id="5817918615728894473">Start parring</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokér, hvis websitet har tendens til at vise påtrængende annoncer (anbefales)</translation> <translation id="6560414384669816528">Søg via Sogou</translation> <translation id="6566259936974865419">Chrome har sparet dig <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Tillad altid</translation> <translation id="6573431926118603307">Faner, du har åbnet i Chrome på dine andre enheder, vises her.</translation> <translation id="6575643671698722332">Nulstillingsfejl. Sørg for, at enheden er online, og prøv igen.</translation> <translation id="6583199322650523874">Føj et bogmærke til den aktuelle side</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Synkroniser til</translation> <translation id="7034608350006174882">Kort og adresser, der bruger Google Pay</translation> <translation id="7053983685419859001">Bloker</translation> +<translation id="7055152154916055070">Omdirigeringen blev blokeret:</translation> <translation id="7062545763355031412">Acceptér, og skift konto</translation> <translation id="7063006564040364415">Der kunne ikke oprettes forbindelse til synkroniseringsserveren.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 er valgt}one{# er valgt}other{# er valgt}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Rydder historikken og autofuldførelser i adresselinjen. Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Tillad for den aktuelle søgemaskine</translation> <translation id="7138678301420049075">Andet</translation> +<translation id="7141896414559753902">Bloker visning af pop up-vinduer på websites og omdirigeringer (anbefalet)</translation> <translation id="7144878232160441200">Prøv igen</translation> <translation id="7149893636342594995">De seneste 24 timer</translation> <translation id="7177466738963138057">Du kan ændre dette senere i Indstillinger</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Foreslå relaterede sider</translation> <translation id="8116925261070264013">Websites, hvor lyden er slået fra</translation> <translation id="813082847718468539">Se websiteoplysninger</translation> -<translation id="8137558756159375272">Funktionen "Tryk for at søge" sender det markerede ord og den aktuelle side som kontekst til Google Søgning. Du kan slå den fra under <ph name="BEGIN_LINK" />Indstillinger<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Indhold</translation> <translation id="8186512483418048923"><ph name="FILES" /> filer tilbage</translation> <translation id="8190358571722158785">1 dag tilbage</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Start</translation> <translation id="932599481871055447">Gem data, og få en hurtigere browsingoplevelse</translation> <translation id="938850635132480979">Fejl: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Ikke nok plads på SD-kort</translation> <translation id="945522503751344254">Send feedback</translation> <translation id="945632385593298557">Adgang til din mikrofon</translation> <translation id="951339005376969845">Slet eksisterende data. Du kan hente dem ved at skifte tilbage til <ph name="FROM_ACCOUNT" />.</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 7422f5b..b73a9fa 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Vollbild-Steuerelemente</translation> <translation id="2038563949887743358">"Desktopversion ansehen" aktivieren</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB sonstiger Apps</translation> +<translation id="2063713494490388661">Zum Suchen tippen</translation> <translation id="2079545284768500474">Rückgängig machen</translation> <translation id="2082238445998314030">Ergebnis <ph name="RESULT_NUMBER" /> von <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Melden Sie sich in Chrome an, um personalisierte, von Google vorgeschlagene Inhalte zu erhalten.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Löscht den Verlauf bei allen angemeldeten Geräten. Möglicherweise verfügt Ihr Google-Konto unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> über andere Browserverläufe.</translation> <translation id="3600792891314830896">Websites stummschalten, die Ton wiedergeben</translation> <translation id="360207483134687714">Unterstütze uns dabei, VR in Chrome zu verbessern</translation> -<translation id="360480449234699036">Erfahren Sie mehr über Themen auf einer Website, ohne die Seite verlassen zu müssen. Mit der Option "Zum Suchen tippen" werden ein Wort sowie dessen Kontext an die Google-Suche gesendet. Daraufhin erhalten Sie Definitionen, Bilder, Suchergebnisse und andere Details. - -Zur Anpassung des Suchbegriffs drücken Sie einige Sekunden lang auf den entsprechenden Begriff. Sie können Ihre Suche auch verfeinern, indem Sie das Feld ganz nach oben schieben und auf das Suchfeld tippen.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Durch das Zurücksetzen wird der Verlauf des Datensparmodus gelöscht, einschließlich der Liste besuchter Websites.</translation> <translation id="3632295766818638029">Passwort anzeigen</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Datensparmodus zurücksetzen?</translation> <translation id="3714981814255182093">Suchleiste öffnen</translation> <translation id="3716182511346448902">Diese Seite benötigt zu viel Arbeitsspeicher und wurde daher von Chrome angehalten.</translation> -<translation id="3738139272394829648">Zum Suchen tippen</translation> <translation id="3739899004075612870">Als Lesezeichen in <ph name="PRODUCT_NAME" /> gespeichert</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB sonstiger Apps</translation> <translation id="3744111561329211289">Hintergrundsync</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Vervollständigungen für Seiten verwenden</translation> <translation id="4412992751769744546">Cookies Dritter zulassen</translation> <translation id="4432792777822557199">Seiten auf <ph name="SOURCE_LANGUAGE" /> werden ab jetzt auf <ph name="TARGET_LANGUAGE" /> übersetzt</translation> +<translation id="4434045419905280838">Pop-ups und Weiterleitungen</translation> <translation id="4445444302979002552">Vorhersagedienste verwenden, um Vorschläge für Suchbegriffe und Websites zu erhalten </translation> <translation id="4452411734226507615">Tab "<ph name="TAB_TITLE" />" schließen</translation> @@ -520,6 +518,7 @@ <translation id="5765780083710877561">Beschreibung:</translation> <translation id="5777170031995031090">Sie können festlegen, wie Google Ihren Browserverlauf nutzt, um die Suche, Werbung und andere Google-Dienste zu personalisieren.</translation> <translation id="5779929835642192302">Vorschläge verfügbar</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> von <ph name="SPACE_AVAILABLE" /> werden verwendet</translation> <translation id="5804241973901381774">Berechtigungen</translation> <translation id="5809361687334836369">{HOURS,plural, =1{Vor # Stunde}other{Vor # Stunden}}</translation> <translation id="5817918615728894473">Koppeln</translation> @@ -604,6 +603,7 @@ <translation id="6556716549745717622">Blockieren, wenn Website für gewöhnlich aufdringliche Werbung anzeigt (empfohlen)</translation> <translation id="6560414384669816528">Suche mit Sogou</translation> <translation id="6566259936974865419">Dank Chrome haben Sie <ph name="GIGABYTES" /> GB eingespart</translation> +<translation id="6573096386450695060">Immer zulassen</translation> <translation id="6573431926118603307">Hier werden Tabs angezeigt, die Sie auf Ihren anderen Geräten in Chrome geöffnet haben.</translation> <translation id="6575643671698722332">Fehler beim Zurücksetzen, da das Gerät nicht online ist. Versuchen Sie es erneut.</translation> <translation id="6583199322650523874">Aktuelle Seite als Lesezeichen speichern</translation> @@ -663,6 +663,7 @@ <translation id="7031882061095297553">Synchronisieren mit</translation> <translation id="7034608350006174882">Karten und Adressen aus Google Pay</translation> <translation id="7053983685419859001">Blockieren</translation> +<translation id="7055152154916055070">Weiterleitung blockiert:</translation> <translation id="7062545763355031412">Akzeptieren und Konto wechseln</translation> <translation id="7063006564040364415">Verbindung zum Synchronisierungsserver konnte nicht hergestellt werden.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 ausgewählt}other{# ausgewählt}}</translation> @@ -671,6 +672,7 @@ <translation id="7121362699166175603">Löscht den Verlauf und Autovervollständigungen in der Adressleiste. Möglicherweise verfügt Ihr Google-Konto unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> über andere Browserverläufe.</translation> <translation id="7128222689758636196">Für aktuelle Suchmaschine zulassen</translation> <translation id="7138678301420049075">Sonstiges</translation> +<translation id="7141896414559753902">Anzeige von Pop-ups und Weiterleitungen für Websites blockieren (empfohlen)</translation> <translation id="7144878232160441200">Wiederholen</translation> <translation id="7149893636342594995">Letzte 24 Stunden</translation> <translation id="7177466738963138057">Dies kann später in den Einstellungen geändert werden</translation> @@ -780,7 +782,6 @@ <translation id="8105951947646329362">Ähnliche Seiten vorschlagen</translation> <translation id="8116925261070264013">Stummgeschaltet</translation> <translation id="813082847718468539">Website-Informationen anzeigen</translation> -<translation id="8137558756159375272">Mit "Zum Suchen tippen" werden das ausgewählte Wort und die aktuelle Seite als Kontext an die Google-Suche gesendet. Sie können die Funktion in den <ph name="BEGIN_LINK" />Einstellungen<ph name="END_LINK" /> deaktivieren.</translation> <translation id="8168435359814927499">Inhalte</translation> <translation id="8186512483418048923">Noch <ph name="FILES" /> Dateien</translation> <translation id="8190358571722158785">1 Tag übrig</translation> @@ -888,6 +889,7 @@ <translation id="932327136139879170">Privat</translation> <translation id="932599481871055447">Geringerer Datenverbrauch und schnelleres Surfen</translation> <translation id="938850635132480979">Fehler: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Nicht genug Speicherplatz auf SD-Karte</translation> <translation id="945522503751344254">Feedback geben</translation> <translation id="945632385593298557">Mikrofonzugriff</translation> <translation id="951339005376969845">Vorhandene Daten werden gelöscht. Wenn Sie Ihre vorhandenen Daten abrufen möchten, wechseln Sie zurück zu <ph name="FROM_ACCOUNT" />.</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 5f143fa9..ace9fc6 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Στοιχ. ελέγ. σε πλήρη οθόνη</translation> <translation id="2038563949887743358">Ενεργοποίηση αιτήματος ιστότοπου για υπολογιστές</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB από άλλες εφαρμογές</translation> +<translation id="2063713494490388661">Πατήστε για αναζήτηση</translation> <translation id="2079545284768500474">Αναίρεση</translation> <translation id="2082238445998314030">Αποτέλεσμα <ph name="RESULT_NUMBER" /> από <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Για να λάβετε εξατομικευμένο περιεχόμενο που προτείνεται από την Google, συνδεθείτε στο Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Διαγράφει το ιστορικό από όλες τις συνδεδεμένες συσκευές. Ο Λογαριασμός σας Google ενδέχεται να διαθέτει άλλες μορφές ιστορικού περιήγησης στη διεύθυνση <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Σίγαση ιστοτόπων που αναπαράγουν ήχο</translation> <translation id="360207483134687714">Συμβάλλετε στη βελτίωση της εμπειρίας VR στο Chrome</translation> -<translation id="360480449234699036">Ενημερωθείτε σχετικά με τα θέματα των ιστοτόπων, χωρίς να αποχωρήσετε από τη σελίδα. Η λειτουργία "Αγγίξτε για αναζήτηση" στέλνει μια λέξη και τα συμφραζόμενά της στην Αναζήτηση Google και εμφανίζει ορισμούς, εικόνες, αποτελέσματα αναζήτησης και άλλες λεπτομέρειες. - -Για να τροποποιήσετε τον όρο αναζήτησης, πατήστε παρατεταμένα για να τον επιλέξετε. Για να κάνετε την αναζήτησή σας πιο συγκεκριμένη, σύρετε το παράθυρο εντελώς προς τα επάνω και αγγίξτε το πλαίσιο αναζήτησης.</translation> <translation id="3616113530831147358">Ήχος</translation> <translation id="3620176948598597475">Με την επαναφορά, το ιστορικό της Εξοικονόμησης δεδομένων θα διαγραφεί, συμπεριλαμβανομένης της λίστας των ιστοτόπων που έχετε επισκεφτεί.</translation> <translation id="3632295766818638029">Αποκάλυψη κωδικού πρόσβασης</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Επαναφορά δεδομένων Εξοικονόμησης δεδομένων;</translation> <translation id="3714981814255182093">Άνοιγμα της γραμμής εύρεσης</translation> <translation id="3716182511346448902">Αυτή η σελίδα χρησιμοποιεί πάρα πολλή μνήμη. Για αυτόν τον λόγο, το Chrome την έθεσε σε παύση.</translation> -<translation id="3738139272394829648">Αγγίξτε για αναζήτηση</translation> <translation id="3739899004075612870">Ο σελιδοδείκτης προστέθηκε στο <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB από άλλες εφαρμογές</translation> <translation id="3744111561329211289">Συγχρονισμός παρασκηνίου</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Προτάσεις για σχετικές σελίδες</translation> <translation id="8116925261070264013">Σε σίγαση</translation> <translation id="813082847718468539">Προβολή πληροφοριών τοποθεσίας</translation> -<translation id="8137558756159375272">Η λειτουργία "Αγγίξτε για αναζήτηση" αποστέλλει την επιλεγμένη λέξη και την τρέχουσα σελίδα ως περιβάλλον στην Αναζήτηση Google. Μπορείτε να την απενεργοποιήσετε στις <ph name="BEGIN_LINK" />Ρυθμίσεις<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Περιεχόμενο</translation> <translation id="8186512483418048923"><ph name="FILES" /> αρχεία απομένουν</translation> <translation id="8190358571722158785">Απομένει 1 ημέρα</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 3d9ed1e..943ddf41 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
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Full screen site controls</translation> <translation id="2038563949887743358">Turn on Request desktop site</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB other apps</translation> +<translation id="2063713494490388661">Tap to Search</translation> <translation id="2079545284768500474">Undo</translation> <translation id="2082238445998314030">Result <ph name="RESULT_NUMBER" /> of <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">To get personalised content suggested by Google, sign in to Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Clears history from all signed-in devices. Your Google account may have other forms of browsing history at <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Mute sites that play sound</translation> <translation id="360207483134687714">Help improve the VR experience in Chrome</translation> -<translation id="360480449234699036">Learn about topics on websites without leaving the page. Touch to Search sends a word and its surrounding context to Google Search, returning definitions, pictures, search results and other details. - -To adjust your search term, long press to select. To refine your search, slide the panel all the way up and touch the search box.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Resetting erases Data Saver history, including the list of visited sites.</translation> <translation id="3632295766818638029">Unmask password</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Reset Data Saver?</translation> <translation id="3714981814255182093">Open the Find Bar</translation> <translation id="3716182511346448902">This page uses too much memory, so Chrome paused it.</translation> -<translation id="3738139272394829648">Touch to Search</translation> <translation id="3739899004075612870">Bookmarked in <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB other apps</translation> <translation id="3744111561329211289">Background sync</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Use page predictions</translation> <translation id="4412992751769744546">Allow third-party cookies</translation> <translation id="4432792777822557199">Pages in <ph name="SOURCE_LANGUAGE" /> will be translated to <ph name="TARGET_LANGUAGE" /> from now on</translation> +<translation id="4434045419905280838">Pop-ups and redirects</translation> <translation id="4445444302979002552">Use prediction services to suggest search terms and websites</translation> <translation id="4452411734226507615">Close <ph name="TAB_TITLE" /> tab</translation> <translation id="4452548195519783679">Bookmarked to <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Description:</translation> <translation id="5777170031995031090">Control how Google uses your browsing history to personalise Search, ads and other Google services.</translation> <translation id="5779929835642192302">Suggestions available</translation> +<translation id="5793665092639000975">Using <ph name="SPACE_USED" /> of <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Permissions</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# hour ago}other{# hours ago}}</translation> <translation id="5817918615728894473">Pair</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Block if site tends to show intrusive ads (recommended)</translation> <translation id="6560414384669816528">Search with Sogou</translation> <translation id="6566259936974865419">Chrome has saved you <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Always allow</translation> <translation id="6573431926118603307">Tabs that you've opened in Chrome on your other devices will appear here.</translation> <translation id="6575643671698722332">Reset failed. Ensure that your device is online and try again.</translation> <translation id="6583199322650523874">Bookmark the current page</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Sync to</translation> <translation id="7034608350006174882">Cards and addresses using Google Pay</translation> <translation id="7053983685419859001">Block</translation> +<translation id="7055152154916055070">Redirect blocked:</translation> <translation id="7062545763355031412">Accept and switch accounts</translation> <translation id="7063006564040364415">Could not connect to the sync server.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 selected}other{# selected}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Clears history and autocompletions in the address bar. Your Google account may have other forms of browsing history at <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Allow for current search engine</translation> <translation id="7138678301420049075">Other</translation> +<translation id="7141896414559753902">Block sites from showing pop-ups and redirects (recommended)</translation> <translation id="7144878232160441200">Retry</translation> <translation id="7149893636342594995">Last 24 Hours</translation> <translation id="7177466738963138057">You can change this later in Settings</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Suggest related pages</translation> <translation id="8116925261070264013">Muted</translation> <translation id="813082847718468539">View site information</translation> -<translation id="8137558756159375272">Touch to Search sends the selected word and the current page as context to Google Search. You can turn it off in <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Content</translation> <translation id="8186512483418048923"><ph name="FILES" /> files left</translation> <translation id="8190358571722158785">1 day left</translation> @@ -885,6 +886,7 @@ <translation id="932327136139879170">Home</translation> <translation id="932599481871055447">Save data and browse faster</translation> <translation id="938850635132480979">Error: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Not enough space on SD card</translation> <translation id="945522503751344254">Send feedback</translation> <translation id="945632385593298557">Access your microphone</translation> <translation id="951339005376969845">Delete existing data. You can retrieve it by switching back to <ph name="FROM_ACCOUNT" />.</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 75d0846..cece71f 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
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Controles en pantalla completa</translation> <translation id="2038563949887743358">Activar la opción para solicitar versión de escritorio</translation> <translation id="2045104531052923016">Otras apps: <ph name="GIGABYTES" /> gigabytes</translation> +<translation id="2063713494490388661">Presionar para buscar</translation> <translation id="2079545284768500474">Deshacer</translation> <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Para obtener contenido personalizado y sugerido por Google, accede a tu cuenta en Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Borra el historial de todos los dispositivos en los que accediste. Es posible que tu cuenta de Google tenga otros formularios del historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Silenciar los sitios que reproducen sonido</translation> <translation id="360207483134687714">Ayuda a mejorar la experiencia de RV en Chrome</translation> -<translation id="360480449234699036">Obtén información acerca de temas en sitios web sin salir de la página. Tocar para buscar envía una palabra y el contexto en el que se encuentra a la Búsqueda de Google, y muestra definiciones, fotos, resultados de la búsqueda y otros detalles. - -Para ajustar el término de búsqueda, mantén presionado el texto y selecciónalo. Para perfeccionar la búsqueda, desliza el panel hacia arriba y toca el cuadro de búsqueda.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Si se restablece el Ahorro de datos, se borra su historial, incluida la lista de sitios visitados.</translation> <translation id="3632295766818638029">Quitar máscara de la contraseña</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">¿Deseas restablecer Ahorro de datos?</translation> <translation id="3714981814255182093">Abrir la barra de búsqueda</translation> <translation id="3716182511346448902">Chrome pausó esta página porque usa demasiada memoria.</translation> -<translation id="3738139272394829648">Tocar para buscar</translation> <translation id="3739899004075612870">Agregado a favoritos en <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">Otras apps: <ph name="MEGABYTES" /> megabytes</translation> <translation id="3744111561329211289">Sincronización en segundo plano</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Sugerir páginas relacionadas</translation> <translation id="8116925261070264013">Silenciados</translation> <translation id="813082847718468539">Consulta la información del sitio</translation> -<translation id="8137558756159375272">La función Tocar para buscar envía la palabra seleccionada y la página actual como contexto a la Búsqueda de Google. Para desactivarla, accede a <ph name="BEGIN_LINK" />Configuración<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Contenido</translation> <translation id="8186512483418048923">Quedan <ph name="FILES" /> archivos</translation> <translation id="8190358571722158785">1 día restante</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 90fba687..e9f88ec1 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Controles de pantalla completa</translation> <translation id="2038563949887743358">Activar opción para ver como ordenador</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB de otras aplicaciones</translation> +<translation id="2063713494490388661">Tocar para buscar</translation> <translation id="2079545284768500474">Deshacer</translation> <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Para obtener contenido personalizado sugerido por Google, inicia sesión en Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Borra el historial de todos los dispositivos en los que hayas iniciado sesión. Es posible que tu cuenta de Google tenga otros tipos de historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Silenciar los sitios web que reproducen sonidos</translation> <translation id="360207483134687714">Ayuda a mejorar la experiencia de RV en Chrome</translation> -<translation id="360480449234699036">Obtén información sobre los temas que aparecen en los sitios web sin salir de la página. La función Tocar para buscar permite enviar una palabra y su contexto a la Búsqueda de Google para ver definiciones, imágenes, resultados de búsqueda y otra información. - -Para ajustar el término de búsqueda, mantén pulsado el texto para seleccionarlo. Para restringir la búsqueda, desliza el panel hacia arriba y toca el cuadro de búsqueda.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Se borrará el historial de la extensión Ahorro de Datos, incluidos los sitios web a los que has accedido.</translation> <translation id="3632295766818638029">Mostrar contraseña</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">¿Quieres vaciar el historial de ahorro de datos?</translation> <translation id="3714981814255182093">Abre la barra de búsqueda</translation> <translation id="3716182511346448902">Esta página utiliza demasiada memoria y Chrome la ha pausado.</translation> -<translation id="3738139272394829648">Tocar para Buscar</translation> <translation id="3739899004075612870">Marcador añadido a <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB de otras aplicaciones</translation> <translation id="3744111561329211289">Sincronización en segundo plano</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Utilizar predicciones de página</translation> <translation id="4412992751769744546">Permitir cookies de terceros</translation> <translation id="4432792777822557199">Las páginas en <ph name="SOURCE_LANGUAGE" /> se traducirán al <ph name="TARGET_LANGUAGE" /> a partir de ahora</translation> +<translation id="4434045419905280838">Ventanas emergentes y redirecciones</translation> <translation id="4445444302979002552">Utiliza servicios de predicción para sugerir términos de búsqueda y sitios web</translation> <translation id="4452411734226507615">Cerrar la pestaña <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Marcador añadido a <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Descripción:</translation> <translation id="5777170031995031090">Controla cómo utiliza Google tu historial de navegación para personalizar la Búsqueda, los anuncios y otros servicios de Google.</translation> <translation id="5779929835642192302">Sugerencias disponibles</translation> +<translation id="5793665092639000975">Usando <ph name="SPACE_USED" /> de <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Permisos</translation> <translation id="5809361687334836369">{HOURS,plural, =1{Hace # hora}other{Hace # horas}}</translation> <translation id="5817918615728894473">Vincular</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Bloquear si el sitio web suele mostrar anuncios invasivos (recomendado)</translation> <translation id="6560414384669816528">Realizar búsquedas con Sogou</translation> <translation id="6566259936974865419">Chrome te ha permitido ahorrar <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Permitir siempre</translation> <translation id="6573431926118603307">Aquí aparecen las pestañas que hayas abierto en Chrome en otros dispositivos.</translation> <translation id="6575643671698722332">Error al restablecer. Comprueba la conexión y vuelve a intentarlo.</translation> <translation id="6583199322650523874">Añade la página actual a marcadores</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Sincronizar con</translation> <translation id="7034608350006174882">Tarjetas y direcciones con Google Pay</translation> <translation id="7053983685419859001">Bloquear</translation> +<translation id="7055152154916055070">Redirección bloqueada:</translation> <translation id="7062545763355031412">Aceptar y cambiar de cuenta</translation> <translation id="7063006564040364415">No se ha podido conectar con el servidor de sincronización.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 seleccionado}other{# seleccionados}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Borra el historial y los autocompletados de la barra de direcciones. Es posible que tu cuenta de Google tenga otros tipos de historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Permitirlo para el motor de búsqueda actual</translation> <translation id="7138678301420049075">Otro</translation> +<translation id="7141896414559753902">Impedir que los sitios web muestren ventanas emergentes y redirecciones (recomendado)</translation> <translation id="7144878232160441200">Volver a intentar</translation> <translation id="7149893636342594995">Últimas 24 horas</translation> <translation id="7177466738963138057">Puedes cambiar esta opción más tarde en Configuración</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Sugerir páginas relacionadas</translation> <translation id="8116925261070264013">Silenciados</translation> <translation id="813082847718468539">Ver información del sitio</translation> -<translation id="8137558756159375272">La función Tocar para buscar envía la palabra seleccionada y la página actual como contexto a la Búsqueda de Google. Puedes desactivarla en la <ph name="BEGIN_LINK" />configuración<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Contenido</translation> <translation id="8186512483418048923">Archivos restantes: <ph name="FILES" /></translation> <translation id="8190358571722158785">Queda 1 día</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Página principal</translation> <translation id="932599481871055447">Ahorra datos y navega más rápido</translation> <translation id="938850635132480979">Error: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">No hay espacio suficiente en la tarjeta SD</translation> <translation id="945522503751344254">Enviar comentarios</translation> <translation id="945632385593298557">Acceder al micrófono</translation> <translation id="951339005376969845">Elimina los datos actuales. Para recuperarlos, cambia a <ph name="FROM_ACCOUNT" />.</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 17e78f7..8af0606 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">کنترلهای سایت تمامصفحه</translation> <translation id="2038563949887743358">روشن کردن درخواست سایت رایانهای</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> گیگابایت توسط سایر برنامهها</translation> +<translation id="2063713494490388661">ضربه برای جستجو</translation> <translation id="2079545284768500474">لغو</translation> <translation id="2082238445998314030"><ph name="RESULT_NUMBER" /> نتیجه از <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">برای دریافت محتوای شخصیسازیشده پیشنهادی Google، به Chrome وارد شوید.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">سابقه را از همه دستگاههای به سیستم واردشده پاک میکند. ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد.</translation> <translation id="3600792891314830896">سایتهایی که صدا پخش میکنند بیصدا شوند</translation> <translation id="360207483134687714">به بهبود تجربه «واقعیت مجازی» در Chrome کمک کنید</translation> -<translation id="360480449234699036">بدون ترک صفحه با موضوعات موجود در وبسایتها آشنا شوید. لمس کردن برای جستجو، کلمه و نوشتار اطراف آن را به جستجوی Google ارسال میکند و معانی، تصاویر، نتایج جستجو و سایر جزئیات را برمیگرداند. - -برای تنظیم عبارت جستجویتان، به مدت طولانی فشار دهید تا انتخاب شود. برای تصحیح جستجویتان، پانل را بهطور کامل به بالا بلغزانید و کادر جستجو را لمس کنید.</translation> <translation id="3616113530831147358">صوتی</translation> <translation id="3620176948598597475">بازنشانی، سابقه صرفهجویی داده (ازجمله فهرست سایتهای بازدید شده) را پاک میکند.</translation> <translation id="3632295766818638029">نمایش گذرواژه</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">صرفهجویی داده بازنشانی شود؟</translation> <translation id="3714981814255182093">باز کردن «نوار پیدا کردن»</translation> <translation id="3716182511346448902">این صفحه از حافظه بسیار زیادی استفاده میکند، بنابراین Chrome موقتاً آن را متوقف کرد.</translation> -<translation id="3738139272394829648">لمس کردن برای جستجو</translation> <translation id="3739899004075612870">در <ph name="PRODUCT_NAME" /> نشانکگذاری شد</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> مگابایت توسط برنامههای دیگر</translation> <translation id="3744111561329211289">همگامسازی پسزمینه</translation> @@ -778,7 +775,6 @@ <translation id="8105951947646329362">پیشنهاد صفحههای مرتبط</translation> <translation id="8116925261070264013">صامتشده</translation> <translation id="813082847718468539">مشاهدهٔ اطلاعات سایت</translation> -<translation id="8137558756159375272">«لمس برای جستجو» کلمه انتخاب شده و صفحه کنونی را به عنوان محتوای زمینه به جستجوی Google ارسال میکند. میتوانید آن را در <ph name="BEGIN_LINK" />تنظیمات<ph name="END_LINK" /> خاموش کنید.</translation> <translation id="8168435359814927499">محتوا</translation> <translation id="8186512483418048923"><ph name="FILES" /> فایل باقی مانده است</translation> <translation id="8190358571722158785">۱ روز باقیمانده است</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 a85bf97..7b6a8f4 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Ohjaimet koko näytön tilassa</translation> <translation id="2038563949887743358">Ota käyttöön Käytä tietokoneversiota</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> Gt muita sovelluksia</translation> +<translation id="2063713494490388661">Hae napauttamalla</translation> <translation id="2079545284768500474">Kumoa</translation> <translation id="2082238445998314030">Tulos <ph name="RESULT_NUMBER" />/<ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Kirjaudu Chromeen, niin voit lisätä Googlen suosittelemaa sisältöä.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Tyhjentää kaikkien sisäänkirjautuneiden laitteiden historian. Google-tililläsi voi olla muuta toimintaa osoitteessa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Mykistä ääniä toistavat sivustot</translation> <translation id="360207483134687714">Auta parantamaan Chromen virtuaalikokemusta.</translation> -<translation id="360480449234699036">Lue lisätietoja verkkosivujen aiheista poistumatta sivulta. Koskettamalla hakeminen lähettää sanan ja sen asiayhteyden Google-hakuun ja palauttaa määritelmiä, kuvia, hakutuloksia ja muita tietoja. - -Muokkaa hakutermiä valitsemalla se pitkällä painalluksella. Tarkenna hakua liu'uttamalla paneeli yläasentoon ja koskettamalla hakukenttää.</translation> <translation id="3616113530831147358">Ääni</translation> <translation id="3620176948598597475">Nollaaminen tyhjentää Data Saverin historian, mukaan lukien avattujen sivustojen luettelon.</translation> <translation id="3632295766818638029">Paljasta salasana</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Nollataanko Data Saver?</translation> <translation id="3714981814255182093">Avaa hakupalkki</translation> <translation id="3716182511346448902">Tämä sivu käyttää liikaa muistia, joten Chrome keskeytti sen.</translation> -<translation id="3738139272394829648">Koskettamalla hakeminen</translation> <translation id="3739899004075612870">Lisätty kirjanmerkkeihin: <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> Mt muita sovelluksia</translation> <translation id="3744111561329211289">Taustasynkronointi</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Sivujen ennakoivan esilatauksen käyttö</translation> <translation id="4412992751769744546">Salli kolmannen osapuolen evästeet</translation> <translation id="4432792777822557199">Kielellä <ph name="SOURCE_LANGUAGE" /> kirjoitetut sivut käännetään tästä lähtien kielelle <ph name="TARGET_LANGUAGE" />.</translation> +<translation id="4434045419905280838">Ponnahdusikk. ja uudelleenohj.</translation> <translation id="4445444302979002552">Käytä ennakointipalveluita hakutermien ja verkkosivustojen ehdottamiseen.</translation> <translation id="4452411734226507615">Sulje välilehti <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Lisätty kirjanmerkiksi kansioon <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Kuvaus:</translation> <translation id="5777170031995031090">Hallinnoi tapaa, jolla Google käyttää selaushistoriaasi haun, mainosten ja muiden Googlen palveluiden muokkaamiseen.</translation> <translation id="5779929835642192302">Ehdotuksia on saatavilla.</translation> +<translation id="5793665092639000975">Käytössä <ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Käyttöluvat</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# tunti sitten}other{# tuntia sitten}}</translation> <translation id="5817918615728894473">Muodosta laitepari</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Estä, jos sivusto näyttää häiritseviä mainoksia toistuvasti (suositus)</translation> <translation id="6560414384669816528">Käytä Sogouta</translation> <translation id="6566259936974865419">Chrome on säästänyt <ph name="GIGABYTES" /> Gt tilaa</translation> +<translation id="6573096386450695060">Salli aina</translation> <translation id="6573431926118603307">Muilla laitteilla Chromessa avaamasi välilehdet näytetään täällä.</translation> <translation id="6575643671698722332">Nollaus epäonnistui. Varmista verkkoyhteys ja yritä uudelleen.</translation> <translation id="6583199322650523874">Lisää nykyinen sivu kirjanmerkkeihin</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Synkronoi tilille</translation> <translation id="7034608350006174882">Kortit ja osoitteet Google Paysta</translation> <translation id="7053983685419859001">Estä</translation> +<translation id="7055152154916055070">Uudelleenohjaus estetty:</translation> <translation id="7062545763355031412">Hyväksy ja vaihda tiliä</translation> <translation id="7063006564040364415">Synkronointipalvelimeen ei saada yhteyttä.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 valittu}other{# valittu}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Tyhjentää historian ja osoitekentän automaattiset täydennykset. Google-tililläsi voi olla muita selaushistoriatietoja osoitteessa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Salli nykyiselle hakukoneelle</translation> <translation id="7138678301420049075">Muu</translation> +<translation id="7141896414559753902">Estä ponnahdusikkunoiden näyttäminen sivustoilla (suositus)</translation> <translation id="7144878232160441200">Yritä uudelleen</translation> <translation id="7149893636342594995">Viimeiset 24 tuntia</translation> <translation id="7177466738963138057">Voit muuttaa tätä myöhemmin Asetuksista.</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Ehdota aiheeseen liittyviä sivuja</translation> <translation id="8116925261070264013">Mykistetty</translation> <translation id="813082847718468539">Näytä sivuston tiedot</translation> -<translation id="8137558756159375272">Koskettamalla hakeminen lähettää valitun sanan ja nykyisen sivun Google-haulle haun kontekstina. Voit poistaa ominaisuuden käytöstä <ph name="BEGIN_LINK" />asetuksissa<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Sisältö</translation> <translation id="8186512483418048923"><ph name="FILES" /> tiedostoa jäljellä</translation> <translation id="8190358571722158785">1 päivä jäljellä</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Etusivu</translation> <translation id="932599481871055447">Käytä vähemmän dataa ja selaa nopeammin</translation> <translation id="938850635132480979">(Virhe: <ph name="ERROR_CODE" />)</translation> +<translation id="945360730947989880">Ei tarpeeksi tilaa SD-kortilla</translation> <translation id="945522503751344254">Lähetä palautetta</translation> <translation id="945632385593298557">Mikrofonin käyttöoikeus</translation> <translation id="951339005376969845">Poistaa olemassa olevat tiedot. Voit palauttaa nykyiset tiedot kirjautumalla takaisin tilille <ph name="FROM_ACCOUNT" />.</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 f0a2481..5e9f158 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Control ng full screen sa site</translation> <translation id="2038563949887743358">I-on ang Hilingin ang site sa desktop</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB na iba pang mga app</translation> +<translation id="2063713494490388661">Mag-tap upang Maghanap</translation> <translation id="2079545284768500474">I-undo</translation> <translation id="2082238445998314030">Resulta <ph name="RESULT_NUMBER" /> sa <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Upang makakuha ng naka-personalize na content na iminumungkahi ng Google, mag-sign in sa Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Kini-clear ang history sa lahat ng naka-sign in na device. 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="3600792891314830896">I-mute ang mga site na nagpe-play ng tunog</translation> <translation id="360207483134687714">Tumulong na mapaganda ang karanasan sa VR sa Chrome</translation> -<translation id="360480449234699036">Matuto tungkol sa mga paksa sa mga website nang hindi umaalis sa page. Ipapadala ng Touch to Search ang isang salita at ang konteksto nito sa Google Search, at magbibigay ito ng mga pagpapakahulugan, larawan, resulta ng paghahanap at iba pang mga detalye. - -Upang baguhin ang iyong termino para sa paghahanap, pindutin ito nang matagal upang mapili ito. Upang pinuhin ang iyong paghahanap, i-slide ang panel hanggang sa pinakaitaas at pindutin ang box para sa paghahanap.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Kapag nag-reset, mabubura ang history ng Data Saver, kabilang ang listahan ng mga binisitang site.</translation> <translation id="3632295766818638029">I-unmask ang password</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">I-reset ang Data Saver?</translation> <translation id="3714981814255182093">Buksan ang Bar sa Paghahanap</translation> <translation id="3716182511346448902">Masyadong malaki ang ginagamit na memory ng page na ito kaya na-pause ito ng Chrome.</translation> -<translation id="3738139272394829648">Pindutin upang Hanapin</translation> <translation id="3739899004075612870">Naka-bookmark sa <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB na iba pang mga app</translation> <translation id="3744111561329211289">Pag-sync sa background</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Magmungkahi ng mga nauugnay na page</translation> <translation id="8116925261070264013">Naka-mute</translation> <translation id="813082847718468539">Tingnan ang impormasyon ng site</translation> -<translation id="8137558756159375272">Ipinadadala ng Pindutin upang Hanapin ang piniling salita at ang kasalukuyang page bilang konteksto sa Paghahanap sa Google. Maaari mo itong i-off sa <ph name="BEGIN_LINK" />Mga Setting<ph name="END_LINK" />.</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>
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 5245ec75..a4cf659e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Commandes du site en plein écran</translation> <translation id="2038563949887743358">Activer "Voir version ordinateur"</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> Go par d'autres applis</translation> +<translation id="2063713494490388661">Appuyer pour rechercher</translation> <translation id="2079545284768500474">Annuler</translation> <translation id="2082238445998314030">Résultat <ph name="RESULT_NUMBER" /> sur <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Pour obtenir une recommandation de contenu personnalisé de la part de Google, connectez-vous à Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Efface l'historique de tous les appareils sur lesquels vous êtes connecté à votre compte Google. Ce dernier peut conserver d'autres formes d'historique de navigation sur la page <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Couper le son des sites</translation> <translation id="360207483134687714">Contribuer à améliorer l'expérience de RV dans Chrome</translation> -<translation id="360480449234699036">Découvrez les thèmes abordés sur les sites Web sans quitter la page. La fonctionnalité Appuyer pour rechercher envoie un mot et son contexte à la recherche Google, qui renvoie à son tour des définitions, des images, des résultats de recherche et d'autres informations. - -Pour modifier le terme de recherche, appuyez sur celui-ci de manière prolongée afin de le sélectionner. Pour affiner la recherche, faites glisser le panneau jusqu'en haut et appuyez sur le champ de recherche.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Le processus de réinitialisation efface l'historique de l'économiseur de données, y compris la liste des sites consultés.</translation> <translation id="3632295766818638029">Afficher le mot de passe</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Réinitialiser l'économiseur de données ?</translation> <translation id="3714981814255182093">Ouvrir la barre de recherche</translation> <translation id="3716182511346448902">Cette page utilise trop de mémoire, Chrome a donc interrompu son chargement.</translation> -<translation id="3738139272394829648">Appuyer pour rechercher</translation> <translation id="3739899004075612870">Favori ajouté dans <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> Mo par d'autres applis</translation> <translation id="3744111561329211289">Synchronisation en arrière-plan</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Suggérer des pages associées</translation> <translation id="8116925261070264013">Son coupé</translation> <translation id="813082847718468539">Afficher des informations à propos du site</translation> -<translation id="8137558756159375272">La fonction "Appuyer pour rechercher" transmet le mot sélectionné et la page actuelle en tant que contexte vers la fonction de recherche Google. Vous pouvez la désactiver dans les <ph name="BEGIN_LINK" />paramètres<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Contenu</translation> <translation id="8186512483418048923"><ph name="FILES" /> fichiers restants</translation> <translation id="8190358571722158785">1 jour restant</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 eb56b71..299cbfc 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -82,10 +82,12 @@ <translation id="1718835860248848330">अंतिम घंटा</translation> <translation id="1729516292547892356">आभासी वास्तविकता वाली सामग्री देखने के लिए, Google VR सेवाएं अपडेट करें</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" /> - <ph name="TIME_SINCE_UPDATE" /> अपडेट किया गया</translation> +<translation id="1743802530341753419">साइटों को डिवाइस से कनेक्ट करने की मंज़ूरी देने से पहले पूछें (सुझाया गया)</translation> <translation id="1749561566933687563">अपने बुकमार्क समन्वयित करें</translation> <translation id="17513872634828108">टैब खोलें</translation> <translation id="1756600373018374892">अपने टैब पर तुरंत एक्सेस के लिए यह बटन टैप करें.</translation> <translation id="1779089405699405702">चित्र डीकोडर</translation> +<translation id="1792959175193046959">डिफ़ॉल्ट डाउनलोड स्थान किसी भी समय बदलें</translation> <translation id="1807246157184219062">हल्का</translation> <translation id="1829244130665387512">पेज में ढूंढें</translation> <translation id="1832521218263067499">सुरक्षा संबंधी घटनाएं</translation> @@ -113,6 +115,7 @@ <translation id="2021896219286479412">पूरी स्क्रीन के साइट नियंत्रण</translation> <translation id="2038563949887743358">अनुरोध डेस्कटॉप साइट चालू करें</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB अन्य ऐप्लिकेशन</translation> +<translation id="2063713494490388661">खोजने के लिए टैप करें</translation> <translation id="2079545284768500474">वापस लाएं</translation> <translation id="2082238445998314030"><ph name="TOTAL_RESULTS" /> में से <ph name="RESULT_NUMBER" /> परिणाम</translation> <translation id="2086652334978798447">Google द्वारा सुझाई गई वैयक्तिकृत सामग्री प्राप्त करने के लिए, Chrome में प्रवेश करें.</translation> @@ -269,9 +272,6 @@ <translation id="3599863153486145794">प्रवेश किए हुए सभी डिवाइसों से इतिहास साफ़ कर देता है. आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर अन्य प्रकार के ब्राउज़िंग इतिहास हो सकतेे हैं.</translation> <translation id="3600792891314830896">आवाज़ चलाने वाली साइटों की आवाज़ बंद करें</translation> <translation id="360207483134687714">Chrome में VR अनुभव को बेहतर बनाने में सहायता करें</translation> -<translation id="360480449234699036">पृष्ठ को छोड़े बिना वेबसाइटों पर मौजूद विषयों के बारे में जानें. स्पर्श करने के लिए खोजें, Google खोज को एक शब्द और उसके आस-पास का संदर्भ भेजता है, जिससे वह परिभाषाएं, चित्र, खोज परिणाम और अन्य विवरण लौटाता है. - -अपने खोज शब्द को एडजस्ट करने के लिए, चुनने हेतु देर तक दबाएं. अपनी खोज को परिष्कृत करने के लिए, फलक को सीधे ऊपर स्लाइड करें और खोज बॉक्स को स्पर्श करें.</translation> <translation id="3616113530831147358">ऑडियो</translation> <translation id="3620176948598597475">रीसेट करने से आपकी देखी गई साइटों की सूची के साथ, डेटा बचाने के साधन का इतिहास हमेशा के लिए मिट जाता है.</translation> <translation id="3632295766818638029">पासवर्ड दिखाएं</translation> @@ -283,7 +283,6 @@ <translation id="3712575778697986964">डेटा बचाने का साधन रीसेट करें?</translation> <translation id="3714981814255182093">ढूंढें बार खोलें</translation> <translation id="3716182511346448902">यह पेज बहुत ज़्यादा मेमोरी का इस्तेमाल करता है, इसलिए Chrome ने इसे रोक दिया है.</translation> -<translation id="3738139272394829648">खोजने के लिए स्पर्श करें</translation> <translation id="3739899004075612870"><ph name="PRODUCT_NAME" /> में बुकमार्क किया गया</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB अन्य ऐप्लिकेशन</translation> <translation id="3744111561329211289">पृष्ठभूमि समन्वयन</translation> @@ -350,6 +349,7 @@ <translation id="4409723563706114196">पेज पूर्वानुमानों का इस्तेमाल करें</translation> <translation id="4412992751769744546">तृतीय-पक्ष कुकी को अनुमति दें</translation> <translation id="4432792777822557199">अब से <ph name="SOURCE_LANGUAGE" /> भाषा के पेज का अनुवाद <ph name="TARGET_LANGUAGE" /> भाषा में किया जाएगा</translation> +<translation id="4434045419905280838">पॉप-अप और रीडायरेक्ट</translation> <translation id="4445444302979002552">खोज शब्द और वेबसाइट का सुझाव देने के लिए पूर्वानुमान सेवाओं का उपयोग करें</translation> <translation id="4452411734226507615"><ph name="TAB_TITLE" /> टैब बंद करें</translation> <translation id="4452548195519783679"><ph name="FOLDER_NAME" /> में बुकमार्क किया गया</translation> @@ -517,6 +517,7 @@ <translation id="5765780083710877561">वर्णन:</translation> <translation id="5777170031995031090">नियंत्रित करें कि खोज, विज्ञापन और अन्य Google सेवाओं को वैयक्तिकृत करने के लिए Google आपके ब्राउज़िंग इतिहास का उपयोग कैसे करता है.</translation> <translation id="5779929835642192302">सुझाव उपलब्ध हैं</translation> +<translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> में से <ph name="SPACE_USED" /> का इस्तेमाल किया जा रहा है</translation> <translation id="5804241973901381774">अनुमतियां</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# घंटा पहले}one{# घंटे पहले}other{# घंटे पहले}}</translation> <translation id="5817918615728894473">युग्मित करें</translation> @@ -601,6 +602,7 @@ <translation id="6556716549745717622">अगर साइट तंग करने वाले विज्ञापन दिखाने के लिए जानी जाती है, तो ब्लॉक करें (सुझाया गया)</translation> <translation id="6560414384669816528">Sogou से खोजें</translation> <translation id="6566259936974865419">Chrome ने आपके <ph name="GIGABYTES" /> GB की बचत की</translation> +<translation id="6573096386450695060">हमेशा मंज़ूरी दें</translation> <translation id="6573431926118603307">आपके द्वारा अपने अन्य डिवाइस पर खोले गए टैब यहां दिखाई देंगे.</translation> <translation id="6575643671698722332">रीसेट विफल रहा. डिवाइस ऑनलाइन होना सुनिश्चित करें और पुन: प्रयास करें.</translation> <translation id="6583199322650523874">वर्तमान पेज को बुकमार्क करें</translation> @@ -642,6 +644,7 @@ <translation id="6910211073230771657">हटाया गया</translation> <translation id="6912998170423641340">साइटों को क्लिपबोर्ड से लेख और इमेज पढ़ने से ब्लॉक करें</translation> <translation id="6914783257214138813">आपके पासवर्ड, निर्यात की गई फ़ाइल देख पाने वाले सभी व्यक्तियों को दिखाई देंगे.</translation> +<translation id="6942665639005891494">सेटिंग मेन्यू विकल्प का इस्तेमाल करके डिफ़ॉल्ट डाउनलोड स्थान किसी भी समय बदलें</translation> <translation id="6945221475159498467">चुनें</translation> <translation id="6963766334940102469">बुकमार्क हटाएं</translation> <translation id="6965382102122355670">ठीक है</translation> @@ -659,6 +662,7 @@ <translation id="7031882061095297553">इसमें समन्वयित करें</translation> <translation id="7034608350006174882">Google Pay का इस्तेमाल करने वाले कार्ड और पते</translation> <translation id="7053983685419859001">अवरोधित करें</translation> +<translation id="7055152154916055070">रीडायरेक्ट ब्लॉक किया गया:</translation> <translation id="7062545763355031412">स्वीकार करें और खातों को बदलें</translation> <translation id="7063006564040364415">समन्वयन सर्वर से कनेक्ट नहीं किया जा सका.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 चुना गया}one{# चुने गए}other{# चुने गए}}</translation> @@ -667,6 +671,7 @@ <translation id="7121362699166175603">पता बार में स्वत: पूर्णता और इतिहास को हटाता है. आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर अन्य प्रकार के ब्राउज़िंग इतिहास हो सकतेे हैं.</translation> <translation id="7128222689758636196">वर्तमान खोज इंजन के लिए अनुमति दें</translation> <translation id="7138678301420049075">अन्य</translation> +<translation id="7141896414559753902">साइटों को पॉप-अप और रीडायरेक्ट दिखाने से ब्लॉक करें (सुझाया गया)</translation> <translation id="7144878232160441200">पुन: प्रयास करें</translation> <translation id="7149893636342594995">पिछले 24 घंटे</translation> <translation id="7177466738963138057">आप इसे बाद में सेटिंग में जाकर बदल सकते हैं</translation> @@ -776,7 +781,6 @@ <translation id="8105951947646329362">मिलते-जुलते पेज सुझाएं</translation> <translation id="8116925261070264013">आवाज़ बंद की गई</translation> <translation id="813082847718468539">साइट जानकारी देखें</translation> -<translation id="8137558756159375272">खोजने के लिए स्पर्श करें चयनित शब्द और वर्तमान पृष्ठ को संदर्भ के रूप में Google खोज पर भेजती है. आप उसे <ph name="BEGIN_LINK" />सेटिंग<ph name="END_LINK" /> में बंद कर सकते हैं.</translation> <translation id="8168435359814927499">सामग्री</translation> <translation id="8186512483418048923"><ph name="FILES" /> फ़ाइलें बची हैं</translation> <translation id="8190358571722158785">1 दिन शेष</translation> @@ -809,6 +813,7 @@ <translation id="8503813439785031346">उपयोगकर्ता नाम</translation> <translation id="8514477925623180633">Chrome के ज़रिए संग्रहित पासवर्ड निर्यात करें</translation> <translation id="8514577642972634246">गुप्त मोड में प्रवेश करें</translation> +<translation id="851751545965956758">साइटों को डिवाइसों से कनेक्ट करने से ब्लॉक करें</translation> <translation id="8523928698583292556">संग्रहित पासवर्ड हटाएं</translation> <translation id="854522910157234410">यह पेज खोलें</translation> <translation id="8559990750235505898">अन्य भाषाओं में पेज का अनुवाद करना ऑफ़र करें</translation> @@ -883,6 +888,7 @@ <translation id="932327136139879170">मुख्यपृष्ठ</translation> <translation id="932599481871055447">डेटा बचाएं और तेज़ी से ब्राउज़ करें</translation> <translation id="938850635132480979">गड़बड़ी: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">SD कार्ड पर जगह काफ़ी नहीं है</translation> <translation id="945522503751344254">सुझाव भेजें</translation> <translation id="945632385593298557">अपना माइक्रोफ़ोन एक्सेस करें</translation> <translation id="951339005376969845">मौजूदा डेटा हटाएं. आप <ph name="FROM_ACCOUNT" /> पर वापस जाकर उसे पुनर्प्राप्त कर सकते हैं.</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 3833c104..277adca 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Kontrole web-lokacije na cijelom zaslonu</translation> <translation id="2038563949887743358">Uključivanje zahtjeva za prikaz klasične web-lokacije</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB ostale aplikacije</translation> +<translation id="2063713494490388661">Dodirnite za pretraživanje</translation> <translation id="2079545284768500474">Poništi</translation> <translation id="2082238445998314030"><ph name="RESULT_NUMBER" /> od <ph name="TOTAL_RESULTS" /> rezultata</translation> <translation id="2086652334978798447">Prijavite se u Chrome ako želite da vam Google predlaže sadržaje.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Briše povijest na svim uređajima na kojima ste prijavljeni. 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="3600792891314830896">Isključen je zvuk na web-lokacijama koje ga reproduciraju</translation> <translation id="360207483134687714">Pomognite poboljšati doživljaj VR-a u Chromeu</translation> -<translation id="360480449234699036">Saznajte više o temama na web-lokacijama bez zatvaranja stranice. "Dodirnite za pretraživanje" Google pretraživanju šalje riječ i njen kontekst, a vraća definicije, slike, rezultate pretraživanja i druge pojedinosti. - -Da biste prilagodili pojam za pretraživanje, dugo pritisnite za odabir. Da biste precizirali pretraživanje, kliznite ploču prema gore do vrha i dodirnite okvir za pretraživanje.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Vraćanjem na zadano briše se povijest Uštede podataka, uključujući popis posjećenih web-lokacija.</translation> <translation id="3632295766818638029">Prikaži zaporku</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Želite li vratiti Uštedu podataka na zadano?</translation> <translation id="3714981814255182093">Otvaranje Trake za traženje</translation> <translation id="3716182511346448902">Ova stranica upotrebljava previše memorije, pa ju je Chrome pauzirao.</translation> -<translation id="3738139272394829648">Dodirnite za pretraživanje</translation> <translation id="3739899004075612870">Označeno u pregledniku <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB ostale aplikacije</translation> <translation id="3744111561329211289">Sinkronizacija u pozadini</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Upotrebljavajte predviđanja za stranice</translation> <translation id="4412992751769744546">Dopusti kolačiće trećih strana</translation> <translation id="4432792777822557199">Odsada će se <ph name="SOURCE_LANGUAGE" /> prevoditi na <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Skočni prozori i preusmjeravanja</translation> <translation id="4445444302979002552">Upotreba usluga predviđanja za predlaganje pojmova za pretraživanje i web-lokacija</translation> <translation id="4452411734226507615">Zatvori karticu <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Oznaka dodana u mapu <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Opis:</translation> <translation id="5777170031995031090">Upravljajte načinom na koji Google upotrebljava vašu povijest pregledavanja za prilagodbu Pretraživanja, oglasa i drugih Googleovih usluga.</translation> <translation id="5779929835642192302">Dostupni su prijedlozi</translation> +<translation id="5793665092639000975">Upotrebljava se <ph name="SPACE_USED" /> od <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Dozvoljeno</translation> <translation id="5809361687334836369">{HOURS,plural, =1{prije # sata}one{prije # sata}few{prije # sata}other{prije # sati}}</translation> <translation id="5817918615728894473">Upari</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokiraj ako web-lokacija često prikazuje ometajuće oglase (preporučeno)</translation> <translation id="6560414384669816528">Pretražujte na usluzi Sogou</translation> <translation id="6566259936974865419">Chrome vam je uštedio <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Dopusti uvijek</translation> <translation id="6573431926118603307">Ovdje će se prikazati kartice koje ste otvorili u Chromeu na svojim ostalim uređajima.</translation> <translation id="6575643671698722332">Poništavanje nije uspjelo. Provjerite je li uređaj na mreži i ponovite.</translation> <translation id="6583199322650523874">Označavanje trenutačne stranice</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Sinkronizacija s računima</translation> <translation id="7034608350006174882">Kartice i adrese s Google Paya</translation> <translation id="7053983685419859001">Blokiraj</translation> +<translation id="7055152154916055070">Preusmjeravanje je blokirano:</translation> <translation id="7062545763355031412">Prihvati i promijeni račun</translation> <translation id="7063006564040364415">Nije uspjelo povezivanje s poslužiteljem za sinkronizaciju.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 odabrana stavka}one{# odabrana stavka}few{# odabrane stavke}other{# odabranih stavki}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Briše povijest i automatska dovršavanja u adresnoj traci. 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="7128222689758636196">Dopusti za trenutačnu tražilicu</translation> <translation id="7138678301420049075">Ostalo</translation> +<translation id="7141896414559753902">Web-lokacijama nije dopušteno prikazivanje skočnih prozora i preusmjeravanja (preporučeno)</translation> <translation id="7144878232160441200">Pokušaj ponovo</translation> <translation id="7149893636342594995">Posljednja 24 sata</translation> <translation id="7177466738963138057">Kasnije to možete promijeniti u odjeljku Postavke</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Predloži povezane stranice</translation> <translation id="8116925261070264013">Bez zvuka</translation> <translation id="813082847718468539">Prikaz informacija o web-mjestu</translation> -<translation id="8137558756159375272">Značajka Dodirnite za pretraživanje Google pretraživanju šalje odabranu riječ i trenutačnu stranicu kao kontekst. Možete je isključiti u <ph name="BEGIN_LINK" />Postavkama<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Sadržaj</translation> <translation id="8186512483418048923">Preostalo datoteka: <ph name="FILES" /></translation> <translation id="8190358571722158785">Još 1 dan</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Početna stranica</translation> <translation id="932599481871055447">Štedite podatke i pregledavajte brže</translation> <translation id="938850635132480979">Pogreška: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Nema dovoljno prostora na SD kartici</translation> <translation id="945522503751344254">Slanje povratnih informacija</translation> <translation id="945632385593298557">Pristup mikrofonu</translation> <translation id="951339005376969845">Postojeći će se podaci izbrisati. Dohvatiti ih možete tako da se vratite na <ph name="FROM_ACCOUNT" />.</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 e56d347..c31898f 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Teljes képernyős oldal vezérlői</translation> <translation id="2038563949887743358">Kapcsolja be az Asztali webhely kérése funkciót</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB más alkalmazások által</translation> +<translation id="2063713494490388661">A Keresés koppintással funkció</translation> <translation id="2079545284768500474">Visszavonás</translation> <translation id="2082238445998314030">Eredmény: <ph name="RESULT_NUMBER" />/<ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">A Google által javasolt, személyre szabott tartalmak fogadásához jelentkezzen be a Chrome-ba.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Törli az előzményeket valamennyi bejelentkezett eszközről. 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="3600792891314830896">Elnémítja a hangot lejátszó webhelyeket</translation> <translation id="360207483134687714">Segítsen továbbfejleszteni a virtuális valósággal kapcsolatos élményt Chrome-ban</translation> -<translation id="360480449234699036">Megtudhatja a webhelyek témáit anélkül, hogy elhagyná az oldalt. A Keresés érintéssel funkció elküld egy szót és annak kontextusát a Google Keresés számára, majd meghatározásokat, képeket, keresési eredményeket és egyéb részleteket ad vissza. - -A keresési kifejezés módosításához hosszú nyomva tartással hajthat végre kiválasztást. A keresés finomításához csúsztassa a panelt teljesen fel, majd érintse meg a keresőmezőt.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Az alaphelyzetbe állítás törli az Adatforgalom-csökkentő előzményeit, így a felkeresett webhelyek listáját is.</translation> <translation id="3632295766818638029">Jelszó megjelenítése</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Alaphelyzetbe állítja az Adatforgalom-csökkentőt?</translation> <translation id="3714981814255182093">A keresősáv megnyitása</translation> <translation id="3716182511346448902">Ez az oldal túl sok memóriát használ, ezért a Chrome szünetelteti.</translation> -<translation id="3738139272394829648">Érintéssel keresés</translation> <translation id="3739899004075612870">Felvéve a(z) <ph name="PRODUCT_NAME" /> könyvjelzői közé</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB más alkalmazások által</translation> <translation id="3744111561329211289">Szinkronizálás a háttérben</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Várható oldalak használata</translation> <translation id="4412992751769744546">Harmadik felektől származó cookie-k engedélyezése</translation> <translation id="4432792777822557199">A(z) <ph name="SOURCE_LANGUAGE" /> nyelvű oldalak mostantól le lesznek fordítva <ph name="TARGET_LANGUAGE" /> nyelvre</translation> +<translation id="4434045419905280838">Előugró ablakok és átirányítások</translation> <translation id="4445444302979002552">A várható kifejezés szolgáltatások használata keresőkifejezések és webhelyek javasolásához</translation> <translation id="4452411734226507615"><ph name="TAB_TITLE" /> lap bezárása</translation> <translation id="4452548195519783679">Könyvjelzők közé téve itt: <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Leírás:</translation> <translation id="5777170031995031090">Annak szabályozása, hogy a Google hogyan használhatja fel az Ön böngészési előzményeit a Keresés, a hirdetések és más Google-szolgáltatások személyre szabására.</translation> <translation id="5779929835642192302">Javaslatok állnak rendelkezésre</translation> +<translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" />/<ph name="SPACE_USED" /> használatban</translation> <translation id="5804241973901381774">Engedélyek</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# órája}other{# órája}}</translation> <translation id="5817918615728894473">Párosítás</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Letiltás, ha a webhely jellemzően tolakodó hirdetéseket jelenít meg (ajánlott)</translation> <translation id="6560414384669816528">Keresés a Sogou használatával</translation> <translation id="6566259936974865419">A Chrome megspórolt Önnek <ph name="GIGABYTES" /> GB-ot</translation> +<translation id="6573096386450695060">Engedélyezés mindig</translation> <translation id="6573431926118603307">A más eszközökön futó Chrome böngészőben megnyitott lapok itt jelennek meg.</translation> <translation id="6575643671698722332">Nem sikerült. Ellenőrizze a hálózatot, és próbálja újra.</translation> <translation id="6583199322650523874">Az aktuális oldal felvétele a könyvjelzők közé</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Szinkronizálás a következőknél</translation> <translation id="7034608350006174882">A Google Pay szolgáltatásban használt kártyák és címek</translation> <translation id="7053983685419859001">Letiltás</translation> +<translation id="7055152154916055070">Átirányítás letiltva:</translation> <translation id="7062545763355031412">Elfogadás és fiókváltás</translation> <translation id="7063006564040364415">Nem sikerült csatlakozni a szinkronizálószerverhez.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 elem kijelölve}other{# elem kijelölve}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Törli a címsávban található előzményeket és automatikus kiegészítéseket. 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="7128222689758636196">Engedélyezi a jelenlegi keresőmotor számára</translation> <translation id="7138678301420049075">Egyéb</translation> +<translation id="7141896414559753902">Előugró ablakok és átirányítások letiltása a webhelyeken (ajánlott)</translation> <translation id="7144878232160441200">Újra</translation> <translation id="7149893636342594995">Az elmúlt 24 órából</translation> <translation id="7177466738963138057">Ezt később módosíthatja a beállítások között.</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Kapcsolódó oldalak ajánlása</translation> <translation id="8116925261070264013">Némítva</translation> <translation id="813082847718468539">Az oldalinformációk megtekintése</translation> -<translation id="8137558756159375272">Az Érintéssel keresés elküldi a kiválasztott szót és az aktuális oldalt kontextusként a Google Keresés számára. A funkciót a <ph name="BEGIN_LINK" />Beállítások<ph name="END_LINK" /> szakaszban kikapcsolhatja.</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> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Főoldal</translation> <translation id="932599481871055447">Csökkentheti az adatforgalmat, és gyorsabban böngészhet</translation> <translation id="938850635132480979">Hiba: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Nincs elég tárhely az SD-kártyán</translation> <translation id="945522503751344254">Visszajelzés küldése</translation> <translation id="945632385593298557">Hozzáférés a mikrofonhoz</translation> <translation id="951339005376969845">Meglévő adatok törlése. Ezeket úgy hívhatja le, hogy visszavált a következő fiókra: <ph name="FROM_ACCOUNT" />.</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 4c7a39b..30c2f7d 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Kontrol situs layar penuh</translation> <translation id="2038563949887743358">Aktifkan Ubah situs desktop</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB aplikasi lain</translation> +<translation id="2063713494490388661">Ketuk untuk Menelusuri</translation> <translation id="2079545284768500474">Urungkan</translation> <translation id="2082238445998314030">Hasil <ph name="RESULT_NUMBER" /> dari <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Untuk mendapatkan konten hasil personalisasi yang disarankan oleh Google, masuk ke Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Menghapus histori dari semua perangkat yang dibuat login. Akun Google Anda mungkin memiliki bentuk histori browsing lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Mematikan suara situs yang memutar suara</translation> <translation id="360207483134687714">Bantu membuat VR di Chrome menjadi lebih baik</translation> -<translation id="360480449234699036">Pelajari tentang topik di situs web tanpa meninggalkan halaman. Sentuh untuk Menelusuri mengirimkan kata dan konteks di sekitarnya ke Google Penelusuran, mengembalikan definisi, gambar, hasil penelusuran, serta detail lainnya. - -Untuk menyesuaikan istilah penelusuran, tekan lama untuk memilih. Untuk menyaring penelusuran, geser panel ke atas kemudian sentuh kotak telusur.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Menyetel ulang akan menghapus histori Penghemat Kuota Internet, termasuk daftar situs yang dikunjungi.</translation> <translation id="3632295766818638029">Tampilkan sandi</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Setel ulang Penghemat Kuota Internet?</translation> <translation id="3714981814255182093">Membuka Bilah Cari</translation> <translation id="3716182511346448902">Halaman ini menggunakan terlalu banyak memori, sehingga Chrome menjedanya.</translation> -<translation id="3738139272394829648">Sentuh untuk Menelusuri</translation> <translation id="3739899004075612870">Dibookmark di <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB aplikasi lain</translation> <translation id="3744111561329211289">Sinkronisasi latar belakang</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Gunakan prediksi halaman</translation> <translation id="4412992751769744546">Izinkan cookie pihak ketiga</translation> <translation id="4432792777822557199">Mulai sekarang, halaman dalam bahasa <ph name="SOURCE_LANGUAGE" /> akan diterjemahkan ke <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Pop-up dan pengalihan</translation> <translation id="4445444302979002552">Menggunakan layanan prediksi untuk menyarankan situs dan istilah penelusuran</translation> <translation id="4452411734226507615">Tutup tab <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Dibookmark ke <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Deskripsi:</translation> <translation id="5777170031995031090">Kontrol cara Google menggunakan histori penjelajahan Anda untuk mempersonalisasi Penelusuran, iklan, dan layanan Google lainnya.</translation> <translation id="5779929835642192302">Saran yang tersedia</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> terpakai dari <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Izin</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# jam yang lalu}other{# jam yang lalu}}</translation> <translation id="5817918615728894473">Sandingkan</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokir jika situs cenderung menampilkan iklan mengganggu (direkomendasikan)</translation> <translation id="6560414384669816528">Menelusuri menggunakan Sogou</translation> <translation id="6566259936974865419">Chrome telah menghemat <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Selalu izinkan</translation> <translation id="6573431926118603307">Tab yang telah dibuka di Chrome pada perangkat lainnya akan muncul di sini.</translation> <translation id="6575643671698722332">Gagal menyetel ulang. Pastikan perangkat tersambung ke internet dan coba lagi.</translation> <translation id="6583199322650523874">Membookmark halaman saat ini</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Sinkronkan ke</translation> <translation id="7034608350006174882">Kartu dan alamat yang menggunakan Google Pay</translation> <translation id="7053983685419859001">Blokir</translation> +<translation id="7055152154916055070">Pengalihan diblokir:</translation> <translation id="7062545763355031412">Terima dan beralih akun</translation> <translation id="7063006564040364415">Tidak dapat menyambung ke server sinkronisasi.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 dipilih}other{# dipilih}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Menghapus histori dan pelengkapan otomatis di kolom URL. Akun Google Anda mungkin memiliki bentuk histori browsing lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Mengizinkan mesin telusur saat ini</translation> <translation id="7138678301420049075">Lainnya</translation> +<translation id="7141896414559753902">Blokir situs agar tidak menampilkan pop-up dan pengalihan (disarankan)</translation> <translation id="7144878232160441200">Coba lagi</translation> <translation id="7149893636342594995">24 jam terakhir</translation> <translation id="7177466738963138057">Anda dapat mengubah ini nanti di Setelan</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Sarankan halaman terkait</translation> <translation id="8116925261070264013">Dinonaktifkan</translation> <translation id="813082847718468539">Lihat informasi situs</translation> -<translation id="8137558756159375272">Sentuh untuk Menelusuri mengirimkan kata yang dipilih dan halaman yang dibuka sebagai konteks ke Google Penelusuran. Anda dapat menonaktifkannya di <ph name="BEGIN_LINK" />Setelan<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Konten</translation> <translation id="8186512483418048923"><ph name="FILES" /> file tersisa</translation> <translation id="8190358571722158785">1 hari lagi</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Beranda</translation> <translation id="932599481871055447">Hemat data dan akses lebih cepat</translation> <translation id="938850635132480979">Kesalahan: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Ruang penyimpanan di kartu SD tidak cukup</translation> <translation id="945522503751344254">Kirim masukan</translation> <translation id="945632385593298557">Akses mikrofon Anda</translation> <translation id="951339005376969845">Hapus data yang sudah ada. Anda dapat mengambilnya dengan beralih ke <ph name="FROM_ACCOUNT" />.</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 beafb7e..5925f62 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Controlli sito a schermo intero</translation> <translation id="2038563949887743358">Attiva Richiedi sito desktop</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB per altre app</translation> +<translation id="2063713494490388661">Tocca per cercare</translation> <translation id="2079545284768500474">Annulla</translation> <translation id="2082238445998314030">Risultato <ph name="RESULT_NUMBER" /> di <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Per ricevere contenuti suggeriti appositamente per te da Google, accedi a Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Consente di cancellare la cronologia da tutti i dispositivi su cui hai eseguito l'accesso. 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="3600792891314830896">Disattiva l'audio nei siti che riproducono suoni</translation> <translation id="360207483134687714">Contribuisci a migliorare l'esperienza di realtà virtuale in Chrome</translation> -<translation id="360480449234699036">Scopri gli argomenti dei siti web senza lasciare la pagina. La funzione Tocca per cercare consente di inviare una parola e il relativo contesto alla Ricerca Google; vengono restituiti risultati di ricerca, immagini, definizioni e altri dettagli. - -Per modificare il termine di ricerca, premi a lungo per selezionarlo. Per perfezionare la ricerca, fai scorrere completamente il riquadro verso l'alto e tocca la casella di ricerca.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">La cronologia del Risparmio dati, incluso l'elenco dei siti visitati, verrà eliminata.</translation> <translation id="3632295766818638029">Visualizza password</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Vuoi reimpostare il Risparmio dati?</translation> <translation id="3714981814255182093">Apri la barra Trova</translation> <translation id="3716182511346448902">Questa pagina è stata messa in pausa da Chromium perché utilizza troppa memoria.</translation> -<translation id="3738139272394829648">Tocca per cercare</translation> <translation id="3739899004075612870">Aggiunto ai preferiti di <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB per altre app</translation> <translation id="3744111561329211289">Sincronizzazione in background</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Usa previsioni di pagina</translation> <translation id="4412992751769744546">Consenti cookie di terze parti</translation> <translation id="4432792777822557199">Le pagine in <ph name="SOURCE_LANGUAGE" /> verranno tradotte in <ph name="TARGET_LANGUAGE" /> d'ora in poi</translation> +<translation id="4434045419905280838">Popup e reindirizzamenti</translation> <translation id="4445444302979002552">Utilizza i servizi di previsione per suggerire termini di ricerca e siti web</translation> <translation id="4452411734226507615">Chiudi la scheda <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Preferito aggiunto in: <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Descrizione:</translation> <translation id="5777170031995031090">Controlla il modo in cui Google utilizza la tua cronologia di navigazione per personalizzare la Ricerca, gli annunci e altri servizi Google.</translation> <translation id="5779929835642192302">Suggerimenti disponibili</translation> +<translation id="5793665092639000975">Spazio utilizzato: <ph name="SPACE_USED" /> di <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Autorizzazioni</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# ora fa}other{# ore fa}}</translation> <translation id="5817918615728894473">Accoppia</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blocca se il sito tende a mostrare annunci invasivi (opzione consigliata)</translation> <translation id="6560414384669816528">Ricerche con Sogou</translation> <translation id="6566259936974865419">Chrome ti ha fatto risparmiare <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Consenti sempre</translation> <translation id="6573431926118603307">Le schede aperte in Chrome sugli altri dispositivi verranno visualizzate qui.</translation> <translation id="6575643671698722332">Reimpostazione non riuscita. Verifica che il dispositivo sia online e riprova.</translation> <translation id="6583199322650523874">Aggiungi la pagina corrente ai Preferiti</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Sincronizza con</translation> <translation id="7034608350006174882">Carte e indirizzi che utilizzano Google Pay</translation> <translation id="7053983685419859001">Blocca</translation> +<translation id="7055152154916055070">Reindirizzamento bloccato:</translation> <translation id="7062545763355031412">Accetta e cambia account</translation> <translation id="7063006564040364415">Impossibile collegarsi al server di sincronizzazione.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 elemento selezionato}other{# elementi selezionati}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Consente di cancellare la cronologia e i completamenti automatici nella barra degli indirizzi. 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="7128222689758636196">Consenti motore di ricerca corrente</translation> <translation id="7138678301420049075">Altro</translation> +<translation id="7141896414559753902">Impedisci ai siti di mostrare popup e reindirizzamenti (opzione consigliata)</translation> <translation id="7144878232160441200">Riprova</translation> <translation id="7149893636342594995">Ultimo giorno</translation> <translation id="7177466738963138057">Puoi cambiarlo in un secondo momento nelle Impostazioni</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Suggerisci pagine correlate</translation> <translation id="8116925261070264013">Con audio disattivato</translation> <translation id="813082847718468539">Visualizza informazioni sul sito</translation> -<translation id="8137558756159375272">La funzione Tocca per cercare invia la parola selezionata e la pagina corrente come contesto alla Ricerca Google. Puoi disattivare la funzione nelle <ph name="BEGIN_LINK" />Impostazioni<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Contenuti</translation> <translation id="8186512483418048923"><ph name="FILES" /> file rimanenti</translation> <translation id="8190358571722158785">1 giorno rimanente</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Home page</translation> <translation id="932599481871055447">Risparmia dati e naviga più velocemente</translation> <translation id="938850635132480979">Errore: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Spazio sulla scheda SD insufficiente</translation> <translation id="945522503751344254">Invia feedback</translation> <translation id="945632385593298557">Accesso al microfono</translation> <translation id="951339005376969845">Elimina i dati esistenti. Puoi recuperarli tornando all'account <ph name="FROM_ACCOUNT" />.</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 bab6989..e6697d2 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -82,12 +82,12 @@ <translation id="1718835860248848330">מהשעה האחרונה</translation> <translation id="1729516292547892356">עליך לעדכן את Google VR Services כדי שתוכל להציג תוכן של מציאות מדומה</translation> <translation id="1733116627827457509"><ph name="FILE_SIZE" /> - עודכן <ph name="TIME_SINCE_UPDATE" /></translation> -<translation id="1743802530341753419">הצגת בקשה לפני מתן אישור לאתרים להתחבר אל מכשיר (מומלץ)</translation> +<translation id="1743802530341753419">הצגת בקשה לפני מתן אישור לאתרים להתחבר להתקן (מומלץ)</translation> <translation id="1749561566933687563">סנכרון הסימניות שלך</translation> <translation id="17513872634828108">כרטיסיות פתוחות</translation> <translation id="1756600373018374892">לחץ על לחצן זה כדי לקבל גישה מהירה לכרטיסיות שלך.</translation> <translation id="1779089405699405702">מפענח התמונות</translation> -<translation id="1792959175193046959">אפשר לשנות את מיקום ההורדות בכל עת</translation> +<translation id="1792959175193046959">אפשר תמיד לשנות את מיקום ההורדות</translation> <translation id="1807246157184219062">בהיר</translation> <translation id="1829244130665387512">חפש בדף</translation> <translation id="1832521218263067499">תקריות אבטחה</translation> @@ -115,6 +115,7 @@ <translation id="2021896219286479412">פקדי אתר במסך מלא</translation> <translation id="2038563949887743358">הפעל את 'בקש אתר עבור מחשב שולחני'</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB ליישומים אחרים</translation> +<translation id="2063713494490388661">הקש כדי לחפש</translation> <translation id="2079545284768500474">בטל פעולה</translation> <translation id="2082238445998314030">תוצאה <ph name="RESULT_NUMBER" /> מתוך <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">כדי לקבל מ-Google הצעות לתוכן מותאם אישית, היכנס אל Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">ניקוי ההיסטוריה מכל המכשירים שבהם המשתמש נכנס לחשבון. ייתכן שלחשבון Google שלך יהיו צורות אחרות של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">השתקת אתרים שמשמיעים צלילים</translation> <translation id="360207483134687714">עזור לשפר את חוויית VR ב-Chrome</translation> -<translation id="360480449234699036">קבל מידע על נושאים באתרים מבלי לצאת מהדף. התכונה 'גע כדי לחפש' שולחת מילה ואת ההקשר שלה אל חיפוש Google, המחזיר הגדרות, תמונות, תוצאות חיפוש ופרטים אחרים. - -כדי לשנות את מונח החיפוש, גע נגיעה ארוכה במונח כדי לבחור בו. כדי לצמצם את החיפוש, הסט את החלונית עד למעלה וגע בתיבת החיפוש.</translation> <translation id="3616113530831147358">אודיו</translation> <translation id="3620176948598597475">האיפוס מוחק את ההיסטוריה של חוסך הנתונים (Data Saver), כולל רשימת האתרים שבהם ביקרת.</translation> <translation id="3632295766818638029">חשוף סיסמה</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">לאפס את חוסך הנתונים (Data Saver)?</translation> <translation id="3714981814255182093">פתח את סרגל החיפוש</translation> <translation id="3716182511346448902">הדף הזה מנצל יותר מדי זיכרון, כך שהוא הושהה על-ידי Chrome.</translation> -<translation id="3738139272394829648">גע כדי לחפש</translation> <translation id="3739899004075612870">נוסף לסימניות ב-<ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB ליישומים אחרים</translation> <translation id="3744111561329211289">סינכרון ברקע</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">שימוש בחיזויי דפים</translation> <translation id="4412992751769744546">התר קובצי Cookie של צד שלישי</translation> <translation id="4432792777822557199">דפים ב<ph name="SOURCE_LANGUAGE" /> יתורגמו ל<ph name="TARGET_LANGUAGE" /> מעכשיו והלאה</translation> +<translation id="4434045419905280838">חלונות קופצים והפניות אוטומטיות</translation> <translation id="4445444302979002552">בעזרת שירותי חיזוי ניתן להציג הצעות למונחי חיפוש ולאתרים</translation> <translation id="4452411734226507615">סגירת הכרטיסייה <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">התווסף לסימניות ב-<ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">תיאור:</translation> <translation id="5777170031995031090">שלוט באופן שבו חברת Google משתמשת בהיסטוריית הגלישה לצורך התאמה אישית של חיפוש Google, מודעות Google ושירותי Google אחרים.</translation> <translation id="5779929835642192302">הצעות זמינות</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> מתוך <ph name="SPACE_AVAILABLE" /> נמצאים בשימוש</translation> <translation id="5804241973901381774">הרשאות</translation> <translation id="5809361687334836369">{HOURS,plural, =1{לפני שעה}two{לפני שעתיים}many{לפני # שעות}other{לפני # שעות}}</translation> <translation id="5817918615728894473">התאם</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">חסום אם האתר נוטה להציג מודעות שמפריעות (מומלץ)</translation> <translation id="6560414384669816528">השתמש ב-Sogou לחיפוש</translation> <translation id="6566259936974865419">Chrome חסך לך <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">אני רוצה לאפשר תמיד</translation> <translation id="6573431926118603307">כרטיסיות שפתחת ב-Chrome במכשירים האחרים שלך יופיעו כאן.</translation> <translation id="6575643671698722332">האיפוס נכשל. ודא שהמכשיר שלך במצב מקוון ונסה שוב.</translation> <translation id="6583199322650523874">סמן את הדף הנוכחי בסימנייה</translation> @@ -644,7 +644,7 @@ <translation id="6910211073230771657">נמחק</translation> <translation id="6912998170423641340">חסימת היכולת של אתרים לקרוא טקסט ותמונות מלוח העריכה</translation> <translation id="6914783257214138813">כל מי שיוכל לגשת אל הקובץ המיוצא יוכל לראות את הסיסמאות שלך.</translation> -<translation id="6942665639005891494">ניתן לשנות את מיקום ברירת המחדל להורדות בכל עת דרך האפשרות 'הגדרות' בתפריט</translation> +<translation id="6942665639005891494">ניתן תמיד לשנות את מיקום ברירת המחדל להורדות דרך האפשרות 'הגדרות' בתפריט</translation> <translation id="6945221475159498467">בחר</translation> <translation id="6963766334940102469">מחק סימניות</translation> <translation id="6965382102122355670">אישור</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">סינכרון עם</translation> <translation id="7034608350006174882">כרטיסים וכתובות דרך Google Pay</translation> <translation id="7053983685419859001">חסום</translation> +<translation id="7055152154916055070">הפניה אוטומטית נחסמה:</translation> <translation id="7062545763355031412">קבל והחלף חשבונות</translation> <translation id="7063006564040364415">לא ניתן היה להתחבר אל שרת הסנכרון.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{נבחר אחד}two{נבחרו #}many{נבחרו #}other{נבחרו #}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">ניקוי ההיסטוריה וההשלמות האוטומטיות בסרגל הכתובות. ייתכן שלחשבון Google שלך יהיו צורות אחרות של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">התר למנוע החיפוש הנוכחי</translation> <translation id="7138678301420049075">אחר</translation> +<translation id="7141896414559753902">חסימה של חלונות קופצים והפניות אוטומטיות באתרים (מומלץ)</translation> <translation id="7144878232160441200">נסה שוב</translation> <translation id="7149893636342594995">מהיום האחרון</translation> <translation id="7177466738963138057">אפשר לשנות את ההגדרה הזו מאוחר יותר ב'הגדרות'</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">הצעת דפים קשורים</translation> <translation id="8116925261070264013">מושתקים</translation> <translation id="813082847718468539">הצג נתוני אתר</translation> -<translation id="8137558756159375272">'גע כדי לחפש' שולח אל חיפוש Google את המילה הנבחרת, יחד עם הדף הנוכחי בתור הקשר. תוכל לכבות זאת ב<ph name="BEGIN_LINK" />הגדרות<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">תוכן</translation> <translation id="8186512483418048923">נותרו עוד <ph name="FILES" /> קבצים</translation> <translation id="8190358571722158785">נותר יום אחד</translation> @@ -812,7 +813,7 @@ <translation id="8503813439785031346">שם משתמש</translation> <translation id="8514477925623180633">ייצוא סיסמאות המאוחסנות ב-Chrome</translation> <translation id="8514577642972634246">עבור למצב גלישה בסתר</translation> -<translation id="851751545965956758">חסימת התחברות של אתרים אל מכשירים</translation> +<translation id="851751545965956758">חסימת התחברות של אתרים אל התקנים</translation> <translation id="8523928698583292556">מחק את הסיסמה השמורה</translation> <translation id="854522910157234410">פתח דף זה</translation> <translation id="8559990750235505898">הצעה לתרגם דפים בשפות אחרות</translation> @@ -885,6 +886,7 @@ <translation id="932327136139879170">בית</translation> <translation id="932599481871055447">חיסכון בנתונים שמוביל לגלישה מהירה יותר</translation> <translation id="938850635132480979">שגיאה: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">אין מספיק מקום בכרטיס ה-SD</translation> <translation id="945522503751344254"> שליחת משוב</translation> <translation id="945632385593298557">גישה למיקרופון שלך</translation> <translation id="951339005376969845">מחק נתונים קיימים. כדי לאחזר אותם, חזור אל <ph name="FROM_ACCOUNT" />.</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 7cee0e1..ba351fb4 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">全画面表示時のサイトの操作項目</translation> <translation id="2038563949887743358">[PC 版サイトを見る] をオンにします</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB を他のアプリで使用中</translation> +<translation id="2063713494490388661">タップして検索</translation> <translation id="2079545284768500474">元に戻す</translation> <translation id="2082238445998314030">結果 <ph name="TOTAL_RESULTS" /> 件中 <ph name="RESULT_NUMBER" /> 件目</translation> <translation id="2086652334978798447">ユーザーに合わせた Google からのおすすめコンテンツを表示するには、Chrome にログインします。</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">ログインしているすべての端末の履歴を削除します。お使いの Google アカウントの <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> に、他の形式の閲覧履歴が記録されている場合があります。</translation> <translation id="3600792891314830896">音声が再生されるサイトをミュートする</translation> <translation id="360207483134687714">Chrome の VR モードの改善にご協力ください</translation> -<translation id="360480449234699036">ウェブサイト上のトピックについてページを移動せずに調べられます。[タップして検索] を使用すると、単語とその周囲のコンテキストが Google 検索に送信され、定義、画像、検索結果などの情報が返されます。 - -検索用語を押し続けるとその用語が選択され、選択範囲を調整できます。検索結果を絞り込むには、パネルを上にスライドして検索ボックスをタップします。</translation> <translation id="3616113530831147358">音声</translation> <translation id="3620176948598597475">リセットすると、アクセスしたサイトのリストなど、データセーバーの履歴が削除されます。</translation> <translation id="3632295766818638029">パスワードを表示</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">データセーバーをリセットしますか?</translation> <translation id="3714981814255182093">検索バーを開く</translation> <translation id="3716182511346448902">このページは大量のメモリを使用しているため、Chrome により一時停止されました。</translation> -<translation id="3738139272394829648">タップして検索</translation> <translation id="3739899004075612870"><ph name="PRODUCT_NAME" /> にブックマークしました</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB を他のアプリで使用中</translation> <translation id="3744111561329211289">バックグラウンド同期</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">関連ページを表示する</translation> <translation id="8116925261070264013">ミュート中</translation> <translation id="813082847718468539">サイト情報を表示</translation> -<translation id="8137558756159375272">「タップして検索」では選択したキーワードと現在のページがコンテキストとして Google 検索に送信されます。これは [<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />] で無効にすることができます。</translation> <translation id="8168435359814927499">コンテンツ</translation> <translation id="8186512483418048923">残り <ph name="FILES" /> ファイル</translation> <translation id="8190358571722158785">残り 1 日</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 0c1fac30..0974742 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">전체화면 사이트 컨트롤</translation> <translation id="2038563949887743358">데스크톱 버전으로 보기 사용 설정</translation> <translation id="2045104531052923016">기타 앱 <ph name="GIGABYTES" />GB</translation> +<translation id="2063713494490388661">탭하여 검색</translation> <translation id="2079545284768500474">실행취소</translation> <translation id="2082238445998314030">전체 결과 <ph name="TOTAL_RESULTS" />개 중 <ph name="RESULT_NUMBER" />개</translation> <translation id="2086652334978798447">Google에서 추천한 맞춤설정 콘텐츠를 받으려면 Chrome에 로그인합니다.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">로그인된 모든 기기에서 방문 기록을 지웁니다. Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 사용 기록이 다른 형식으로 남아 있을 수도 있습니다.</translation> <translation id="3600792891314830896">소리를 재생하는 사이트 음소거</translation> <translation id="360207483134687714">Chrome의 VR 환경을 개선할 수 있도록 도와주세요.</translation> -<translation id="360480449234699036">페이지에 남아 웹사이트의 주제에 대해 알아보세요. 터치하여 검색 기능은 Google 검색에 단어와 관련 컨텍스트를 전송하여 정의, 사진, 검색결과, 기타 자세한 사항을 반환합니다. - -검색어를 조정하려면 길게 눌러 선택하세요. 검색을 세분화하려면 패널을 위로 끝까지 슬라이드하여 검색창을 터치합니다.</translation> <translation id="3616113530831147358">오디오</translation> <translation id="3620176948598597475">초기화하면 방문한 사이트 목록 등 데이터 절약 모드 기록이 삭제됩니다.</translation> <translation id="3632295766818638029">비밀번호 공개</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">데이터 절약 모드를 초기화하시겠습니까?</translation> <translation id="3714981814255182093">찾기 창 열기</translation> <translation id="3716182511346448902">페이지에서 너무 많은 메모리를 사용하므로 Chrome에서 페이지를 일시중지했습니다.</translation> -<translation id="3738139272394829648">터치하여 검색</translation> <translation id="3739899004075612870"><ph name="PRODUCT_NAME" />에 북마크됨</translation> <translation id="3744111309925758534">기타 앱 <ph name="MEGABYTES" />MB</translation> <translation id="3744111561329211289">백그라운드 동기화</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">관련 페이지 추천</translation> <translation id="8116925261070264013">음소거됨</translation> <translation id="813082847718468539">사이트 정보 보기</translation> -<translation id="8137558756159375272">터치하여 검색에서 선택한 단어와 현재 페이지를 Google 검색에 컨텍스트로 발송하세요. <ph name="BEGIN_LINK" />설정<ph name="END_LINK" />에서 이 기능을 사용 중지할 수 있습니다.</translation> <translation id="8168435359814927499">콘텐츠</translation> <translation id="8186512483418048923">파일 <ph name="FILES" />개가 남았습니다.</translation> <translation id="8190358571722158785">1일 남음</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 bd9c4d2..fd05484 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Viso ekrano svetainės valdikliai</translation> <translation id="2038563949887743358">Įjungti stalinio kompiuterio svetainės užklausą</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB užima kitos programos</translation> +<translation id="2063713494490388661">Paliesti ir ieškoti</translation> <translation id="2079545284768500474">Anuliuoti</translation> <translation id="2082238445998314030">Rezultatų: <ph name="RESULT_NUMBER" /> iš <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Jei norite gauti „Google“ siūlomo suasmeninto turinio, prisijunkite prie „Chrome“.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Išvaloma visų įrenginių, prie kurių prisijungta, istorija. „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="3600792891314830896">Nutildyti svetaines, kurios leidžia garsą</translation> <translation id="360207483134687714">Padėkite pagerinti VR patirtį „Chrome“</translation> -<translation id="360480449234699036">Sužinokite apie temas svetainėse, neišėję iš puslapio. Naudojant funkciją „Paieška palietus“ siunčiamas žodis ir jo kontekstas „Google“ paieškai, kuri pateikia apibrėžimų, nuotraukų, paieškos rezultatų ir kitos išsamios informacijos. - -Jei norite koreguoti paieškos terminą, paspauskite ir laikykite, kad jį pasirinktumėte. Kad patikslintumėte paiešką, slinkite skydeliu į viršų ir palieskite paieškos laukelį.</translation> <translation id="3616113530831147358">Garsas</translation> <translation id="3620176948598597475">Iš naujo nustačius bus ištrinta Duomenų taupymo priemonės istorija, įskaitant lankytų svetainių sąrašą.</translation> <translation id="3632295766818638029">Rodyti slaptažodį</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Iš naujo nustatyti Duomenų taupymo priemonę?</translation> <translation id="3714981814255182093">Atidaryti radimo juostą</translation> <translation id="3716182511346448902">Šis puslapis naudoja per daug atminties, todėl „Chrome“ jį pristabdė.</translation> -<translation id="3738139272394829648">Paieška palietus</translation> <translation id="3739899004075612870">Pažymėta naršyklėje „<ph name="PRODUCT_NAME" />“</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB užima kitos programos</translation> <translation id="3744111561329211289">Fono sinchronizavimas</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Siūlyti susijusius puslapius</translation> <translation id="8116925261070264013">Išjungta</translation> <translation id="813082847718468539">Žiūrėti svetainės informaciją</translation> -<translation id="8137558756159375272">Paieška palietus siunčia pasirinktą žodį ir esamą puslapį kaip kontekstą „Google“ paieškai. Galite išjungti šią funkciją <ph name="BEGIN_LINK" />nustatymuose<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Turinys</translation> <translation id="8186512483418048923">Liko failų: <ph name="FILES" /></translation> <translation id="8190358571722158785">Liko 1 d.</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 95a5ad92..4a92ab5de 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Pilnekrāna vietnes vadīklas</translation> <translation id="2038563949887743358">Ieslēgt iestatījumu “Pieprasīt datora vietni”</translation> <translation id="2045104531052923016">Citas lietotnes: <ph name="GIGABYTES" /> GB</translation> +<translation id="2063713494490388661">Pieskarties, lai meklētu</translation> <translation id="2079545284768500474">Atsaukt</translation> <translation id="2082238445998314030"><ph name="RESULT_NUMBER" />. rezultāts no <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Lai saņemtu Google ieteikto personalizēto saturu, pierakstieties pārlūkā Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Notīra vēsturi no visām ierīcēm, kurās esat pierakstījies. Jūsu Google kontam vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> var būt citu veidu pārlūkošanas vēstures dati.</translation> <translation id="3600792891314830896">Izslēgt skaņu vietnēm, kurās tiek atskaņota skaņa</translation> <translation id="360207483134687714">Palīdziet uzlabot virtuālās realitātes pieredzi pārlūkā Chrome.</translation> -<translation id="360480449234699036">Uzziniet par vietņu tēmām, neizejot no lapas. Pieskaroties vienumam “Meklēt”, vārds un tā konteksts tiek nosūtīts pakalpojumam Google meklēšana, un tiek iegūtas definīcijas, attēli, meklēšanas rezultāti un cita informācija. - -Lai pielāgotu meklēšanas vienumu, nospiediet un turiet to. Lai veiktu precīzāku meklēšanu, velciet paneli augšup līdz galam un pieskarieties meklēšanas lodziņam.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Veicot atiestatīšanu, tiek dzēsta datu lietojuma samazinātāja vēsture, tostarp apmeklēto vietņu saraksts.</translation> <translation id="3632295766818638029">Parādīt paroli</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Vai atiestatīt datu lietojuma samazinātāju?</translation> <translation id="3714981814255182093">Atvērt atrašanas joslu</translation> <translation id="3716182511346448902">Šī lapa izmanto pārāk daudz atmiņas, tādēļ Chrome to apturēja.</translation> -<translation id="3738139272394829648">Meklēšana pieskaroties</translation> <translation id="3739899004075612870">Pievienota grāmatzīme pārlūkā <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">Citas lietotnes: <ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">Sinhronizācija fonā</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Lapu ieteikumu izmantošana</translation> <translation id="4412992751769744546">Atļaut trešo pušu sīkfailus</translation> <translation id="4432792777822557199">Turpmāk lapas šādā valodā: <ph name="SOURCE_LANGUAGE" /> tiks tulkotas šādā valodā: <ph name="TARGET_LANGUAGE" />.</translation> +<translation id="4434045419905280838">Uznirstošie elem. un novirzīšana</translation> <translation id="4445444302979002552">Izmantojiet prognožu pakalpojumus, lai saņemtu meklēšanas vienumu un vietņu ieteikumus.</translation> <translation id="4452411734226507615">Aizvērt cilni <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Grāmatzīme saglabāta mapē <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Apraksts:</translation> <translation id="5777170031995031090">Kontrolējiet to, kā Google izmanto jūsu pārlūkošanas vēsturi, lai personalizētu Meklēšanu, reklāmas un citus Google pakalpojumus.</translation> <translation id="5779929835642192302">Pieejami ieteikumi</translation> +<translation id="5793665092639000975">Izmantotais apjoms: <ph name="SPACE_USED" /> no <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Atļaujas</translation> <translation id="5809361687334836369">{HOURS,plural, =1{pirms # stundas}zero{pirms # stundām}one{pirms # stundas}other{pirms # stundām}}</translation> <translation id="5817918615728894473">Savienot pārī</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Bloķēt, ja vietnē parasti tiek rādītas traucējošas reklāmas (ieteicams)</translation> <translation id="6560414384669816528">Meklēšana, izmantojot Sogou</translation> <translation id="6566259936974865419">Pārlūkā Chrome esat ietaupījis <ph name="GIGABYTES" /> GB.</translation> +<translation id="6573096386450695060">Vienmēr atļaut</translation> <translation id="6573431926118603307">Šeit būs redzamas cilnes, kuras esat atvēris pārlūkā Chrome citās ierīcēs.</translation> <translation id="6575643671698722332">Atiestatīšana neizdevās. Nodrošiniet, ka ierīce ir tiešsaistē, un mēģiniet vēlreiz.</translation> <translation id="6583199322650523874">Pievienot pašreizējo lapu grāmatzīmēm</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Sinhronizēt ar:</translation> <translation id="7034608350006174882">Kartes un adreses, kurās tiek izmantots pakalpojums Google Pay</translation> <translation id="7053983685419859001">Bloķēt</translation> +<translation id="7055152154916055070">Novirzīšana ir bloķēta:</translation> <translation id="7062545763355031412">Piekrist un pārslēgt kontus</translation> <translation id="7063006564040364415">Nevarēja izveidot savienojumu ar sinhronizācijas serveri.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Atlasīts 1 vienums}zero{Atlasīti # vienumi}one{Atlasīts # vienums}other{Atlasīti # vienumi}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Notīra vēsturi un automātiskās pabeigšanas datus adreses joslā. Jūsu Google kontam var būt cita veida pārlūkošanas vēstures dati vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Atļaut pašreizējai meklētājprogrammai</translation> <translation id="7138678301420049075">Cits</translation> +<translation id="7141896414559753902">Neļaut vietnēm novirzīt un rādīt uznirstošos elementus (ieteicams)</translation> <translation id="7144878232160441200">Mēģināt vēlreiz</translation> <translation id="7149893636342594995">Pēdējās 24 stundas</translation> <translation id="7177466738963138057">Vēlāk varēsiet to mainīt iestatījumos</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Saistīto lapu ieteikšana</translation> <translation id="8116925261070264013">Izslēgta skaņa</translation> <translation id="813082847718468539">Skatīt informāciju par vietni</translation> -<translation id="8137558756159375272">Izmantojot meklēšanu pieskaroties, atlasītais vārds un pašreiz skatītā lapa tiek nosūtīta kā konteksts pakalpojumam Google meklēšana. Varat to izslēgt lapā <ph name="BEGIN_LINK" />Iestatījumi<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Saturs</translation> <translation id="8186512483418048923">Atlikuši faili: <ph name="FILES" /></translation> <translation id="8190358571722158785">Atlikusi 1 diena</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Sākums</translation> <translation id="932599481871055447">Saglabājiet datus un paātriniet pārlūkošanu</translation> <translation id="938850635132480979">Kļūda: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">SD kartē nepietiek vietas</translation> <translation id="945522503751344254">Sūtīt atsauksmes</translation> <translation id="945632385593298557">Piekļuve mikrofonam</translation> <translation id="951339005376969845">Dzēst esošos datus. Varat tos izgūt, pārslēdzoties atpakaļ uz kontu <ph name="FROM_ACCOUNT" />.</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 53a035eb..512e24b5e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Siteopties op volledig scherm</translation> <translation id="2038563949887743358">'Desktopsite aanvragen' inschakelen</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB voor andere apps</translation> +<translation id="2063713494490388661">Tikken om te zoeken</translation> <translation id="2079545284768500474">Ongedaan maken</translation> <translation id="2082238445998314030">Resultaat <ph name="RESULT_NUMBER" /> van <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Log in bij Chrome om suggesties met gepersonaliseerde content van Google te ontvangen.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Hiermee wordt de geschiedenis van alle ingelogde apparaten gewist. Er kunnen andere vormen van browsegeschiedenis zijn opgeslagen voor je Google-account op <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Sites dempen die geluid afspelen</translation> <translation id="360207483134687714">Help bij het verbeteren van de VR-functionaliteit in Chrome</translation> -<translation id="360480449234699036">Meer informatie over onderwerpen op websites zonder dat je de pagina hoeft te verlaten. 'Tikken om te zoeken' stuurt een woord en contextuele informatie voor het woord naar Google Zoeken, waarna er definities, afbeeldingen, zoekresultaten en andere gegevens worden geretourneerd. - -Als je de zoekterm wilt aanpassen, houd je deze aangeraakt om de term te selecteren. Als je je zoekopdracht wilt verfijnen, veeg je het deelvenster helemaal naar boven en tik je op het zoekvak.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Als je Databesparing reset, wordt de geschiedenis van Databesparing gewist, waaronder de lijst met bezochte sites.</translation> <translation id="3632295766818638029">Maskering van wachtwoord ongedaan maken</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Databesparing resetten?</translation> <translation id="3714981814255182093">De zoekbalk openen</translation> <translation id="3716182511346448902">Omdat deze pagina te veel geheugen gebruikt, heeft Chrome de pagina onderbroken.</translation> -<translation id="3738139272394829648">Tikken om te zoeken</translation> <translation id="3739899004075612870">Bladwijzer toegevoegd in <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB voor andere apps</translation> <translation id="3744111561329211289">Synchronisatie op de achtergrond</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Paginavoorspellingen gebruiken</translation> <translation id="4412992751769744546">Cookies van derden toestaan</translation> <translation id="4432792777822557199">Pagina's in het <ph name="SOURCE_LANGUAGE" /> worden vanaf nu vertaald naar het <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Pop-ups en omleidingen</translation> <translation id="4445444302979002552">Voorspellingsservices gebruiken om zoektermen en websites voor te stellen</translation> <translation id="4452411734226507615">Tabblad <ph name="TAB_TITLE" /> sluiten</translation> <translation id="4452548195519783679">Bladwijzer gemaakt in <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Beschrijving:</translation> <translation id="5777170031995031090">Beheer hoe Google je browsegeschiedenis gebruikt om Google Zoeken, advertenties en andere Google-services te personaliseren.</translation> <translation id="5779929835642192302">Beschikbare suggesties</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> van <ph name="SPACE_AVAILABLE" /> wordt gebruikt</translation> <translation id="5804241973901381774">Rechten</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# uur geleden}other{# uur geleden}}</translation> <translation id="5817918615728894473">Koppelen</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokkeren als de site opdringerige advertenties vertoont (aanbevolen)</translation> <translation id="6560414384669816528">Zoeken met Sogou</translation> <translation id="6566259936974865419">Chrome bespaart je <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Altijd toestaan</translation> <translation id="6573431926118603307">Tabbladen die je op andere apparaten in Chrome hebt geopend, worden hier weergegeven.</translation> <translation id="6575643671698722332">Herstel mislukt. Kijk of apparaat online is en probeer opnieuw.</translation> <translation id="6583199322650523874">Een bladwijzer toevoegen voor de huidige pagina</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Synchroniseren met</translation> <translation id="7034608350006174882">Kaarten en adressen die Google Pay gebruiken</translation> <translation id="7053983685419859001">Blokkeren</translation> +<translation id="7055152154916055070">Omleiding geblokkeerd:</translation> <translation id="7062545763355031412">Accepteren en account wijzigen</translation> <translation id="7063006564040364415">Kan geen verbinding maken met synchronisatieserver.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 geselecteerd}other{# geselecteerd}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Hiermee worden de geschiedenis en automatische aanvullingen voor de adresbalk gewist. Er kunnen andere vormen van browsegeschiedenis zijn opgeslagen voor je Google-account op <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Toestaan voor huidige zoekmachine</translation> <translation id="7138678301420049075">Overige</translation> +<translation id="7141896414559753902">Sites niet toestaan pop-ups weer te geven en omleidingen uit te voeren (aanbevolen)</translation> <translation id="7144878232160441200">Opnieuw proberen</translation> <translation id="7149893636342594995">Afgelopen 24 uur</translation> <translation id="7177466738963138057">Je kunt dit later wijzigen in Instellingen</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Gerelateerde pagina's voorstellen</translation> <translation id="8116925261070264013">Gedempt</translation> <translation id="813082847718468539">Sitegegevens bekijken</translation> -<translation id="8137558756159375272">Met 'Tikken om te zoeken' worden het geselecteerde woord en de huidige pagina als context naar Google Zoeken verzonden. Je kunt deze functie uitschakelen via <ph name="BEGIN_LINK" />Instellingen<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Content</translation> <translation id="8186512483418048923"><ph name="FILES" /> bestanden over</translation> <translation id="8190358571722158785">1 dag resterend</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Homepage</translation> <translation id="932599481871055447">Data besparen en sneller browsen</translation> <translation id="938850635132480979">Fout: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Onvoldoende ruimte op SD-kaart</translation> <translation id="945522503751344254">Feedback verzenden</translation> <translation id="945632385593298557">Toegang tot je microfoon</translation> <translation id="951339005376969845">Bestaande gegevens verwijderen. Je kunt ze terugkrijgen door weer over te schakelen naar <ph name="FROM_ACCOUNT" />.</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 5f4425fa..8039b9b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Navigering i full skjerm</translation> <translation id="2038563949887743358">Slå på Bruk skrivebordsversjon</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB andre apper</translation> +<translation id="2063713494490388661">Trykk for å søke</translation> <translation id="2079545284768500474">Angre</translation> <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> av <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">For å få forslag om personlig tilpasset innhold fra Google, logg på Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Tømmer loggen på alle påloggede enheter. Det kan hende Google-kontoen din har andre typer nettlesingslogger på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Kutt lyden for nettsteder som spiller av lyd</translation> <translation id="360207483134687714">Hjelp til med å forbedre VR-opplevelsen i Chrome</translation> -<translation id="360480449234699036">Finn ut mer om emner på nettsteder uten å forlate siden. «Trykk for å søke» sender et ord og den omkringliggende konteksten til Google Søk, slik at definisjoner, bilder, søkeresultater og annen informasjon blir sendt tilbake. - -Hvis du vil endre søkeordet, kan du trykke på det og holde for å merke det. Hvis du vil finstemme søket, kan du dra panelet helt opp til toppen og trykke på søkefeltet.</translation> <translation id="3616113530831147358">Lyd</translation> <translation id="3620176948598597475">Tilbakestilling gjør at datasparingsloggen tømmes, inkludert listen over besøkte nettsteder.</translation> <translation id="3632295766818638029">Vis passordet</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Vil du tilbakestille Datasparing?</translation> <translation id="3714981814255182093">Åpne søkeraden</translation> <translation id="3716182511346448902">Denne siden bruker for mye minne, så Chrome har satt den på pause.</translation> -<translation id="3738139272394829648">Trykk for å søke</translation> <translation id="3739899004075612870">Satt som bokmerke i <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB andre apper</translation> <translation id="3744111561329211289">Bakgrunnssynkronisering</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Foreslå relaterte sider</translation> <translation id="8116925261070264013">Kuttet lyd</translation> <translation id="813082847718468539">Vis nettstedsinformasjon</translation> -<translation id="8137558756159375272">Trykk for å søke sender det valgte ordet og den aktive siden som kontekst til Google Søk. Du kan slå av dette i <ph name="BEGIN_LINK" />Innstillinger<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Innhold</translation> <translation id="8186512483418048923"><ph name="FILES" /> filer gjenstår</translation> <translation id="8190358571722158785">1 dag igjen</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 f5bebef..7987b5a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Elementy sterowania stroną na pełnym ekranie</translation> <translation id="2038563949887743358">Włącz opcję „Wersja na komputer”</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB innych aplikacji</translation> +<translation id="2063713494490388661">Kliknij, by wyszukać</translation> <translation id="2079545284768500474">Cofnij</translation> <translation id="2082238445998314030">Wynik <ph name="RESULT_NUMBER" /> z <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Aby uzyskać dostęp do spersonalizowanej treści proponowanej przez Google, zaloguj się w Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Usuwa historię ze wszystkich urządzeń, na których jesteś zalogowany. 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="3600792891314830896">Wycisz strony, które odtwarzają dźwięk</translation> <translation id="360207483134687714">Pomóż ulepszyć korzystanie z Chrome w rzeczywistości wirtualnej</translation> -<translation id="360480449234699036">Poznaj tematy w witrynach bez opuszczania strony. Funkcja Dotknij, by wyszukać kopiuje słowo wraz z kontekstem i wkleja je w wyszukiwarce Google, dzięki czemu otrzymujesz definicje, grafiki, wyniki wyszukiwania i inne informacje. - -Aby dostosować wyszukiwane hasło, naciśnij je i przytrzymaj, by je zaznaczyć. Aby doprecyzować wyszukiwanie, przesuń panel do samej góry i kliknij pole wyszukiwania.</translation> <translation id="3616113530831147358">Dźwięk</translation> <translation id="3620176948598597475">Zresetowanie spowoduje usunięcie historii Oszczędzania danych, w tym listy odwiedzonych stron.</translation> <translation id="3632295766818638029">Pokaż hasło</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Zresetować Oszczędzanie danych?</translation> <translation id="3714981814255182093">Otwórz pasek wyszukiwania</translation> <translation id="3716182511346448902">Ta strona używa zbyt dużo pamięci, dlatego została wstrzymana w Chrome.</translation> -<translation id="3738139272394829648">Dotknij, by wyszukać</translation> <translation id="3739899004075612870">Utworzono zakładkę w: <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB innych aplikacji</translation> <translation id="3744111561329211289">Synchronizacja w tle</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Używaj przewidywania stron</translation> <translation id="4412992751769744546">Zezwalaj na pliki cookie innych firm</translation> <translation id="4432792777822557199">Od teraz strony, których językiem jest <ph name="SOURCE_LANGUAGE" />, będą tłumaczone na <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Pop-upy i przekierowania</translation> <translation id="4445444302979002552">Używaj usług przewidywania, by podpowiadać strony internetowe i wyszukiwane słowa</translation> <translation id="4452411734226507615">Zamknij kartę <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Utworzono zakładkę w folderze <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Opis:</translation> <translation id="5777170031995031090">Określ, jak Google może korzystać z Twojej historii przeglądania, by dostosowywać wyniki wyszukiwania, reklamy i działanie innych usług.</translation> <translation id="5779929835642192302">Dostępne są sugestie</translation> +<translation id="5793665092639000975">Zajmują <ph name="SPACE_USED" /> z <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Uprawnienia</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# godzinę temu}few{# godziny temu}many{# godzin temu}other{# godziny temu}}</translation> <translation id="5817918615728894473">Sparuj</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokuj, jeśli na stronie wyświetlają się uciążliwe reklamy (zalecane)</translation> <translation id="6560414384669816528">Szukaj w Sogou</translation> <translation id="6566259936974865419">Chrome pozwolił Ci zaoszczędzić <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Zawsze zezwalaj</translation> <translation id="6573431926118603307">Tutaj wyświetlą się karty otwarte w Chrome na innych urządzeniach.</translation> <translation id="6575643671698722332">Błąd resetowania. Upewnij się, że urządzenie jest online, i spróbuj ponownie.</translation> <translation id="6583199322650523874">Dodaj bieżącą stronę do zakładek</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Synchronizuj z</translation> <translation id="7034608350006174882">Karty i adresy z Google Pay</translation> <translation id="7053983685419859001">Blokuj</translation> +<translation id="7055152154916055070">Zablokowano przekierowanie:</translation> <translation id="7062545763355031412">Zaakceptuj i przełącz konta</translation> <translation id="7063006564040364415">Nie udało się nawiązać połączenia z serwerem synchronizacji.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Wybrano 1}few{Wybrano #}many{Wybrano #}other{Wybrano #}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Usuwa historię i pamięć autouzupełniania na pasku adresu. 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="7128222689758636196">Zezwalaj na dostęp obecnej wyszukiwarce</translation> <translation id="7138678301420049075">Inne</translation> +<translation id="7141896414559753902">Blokuj wyskakujące okienka i przekierowania na stronach (zalecane)</translation> <translation id="7144878232160441200">Ponów próbę</translation> <translation id="7149893636342594995">Ostatnie 24 godziny</translation> <translation id="7177466738963138057">Możesz zmienić to później w Ustawieniach</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Sugeruj powiązane strony</translation> <translation id="8116925261070264013">Wyciszone</translation> <translation id="813082847718468539">Wyświetl informacje o witrynie</translation> -<translation id="8137558756159375272">Funkcja „Dotknij, by wyszukać” wysyła zaznaczone słowo i bieżącą stronę jako kontekst do wyszukiwarki Google. Możesz ją wyłączyć w <ph name="BEGIN_LINK" />ustawieniach<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Treści</translation> <translation id="8186512483418048923">Pozostałe pliki: <ph name="FILES" /></translation> <translation id="8190358571722158785">Pozostał dzień</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Strona główna</translation> <translation id="932599481871055447">Zapisuj dane i szybciej przeglądaj strony</translation> <translation id="938850635132480979">Błąd: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Za mało miejsca na karcie SD</translation> <translation id="945522503751344254">Wyślij zgłoszenie</translation> <translation id="945632385593298557">Dostęp do mikrofonu</translation> <translation id="951339005376969845">Usuń istniejące dane. Aby je pobrać, przełącz się z powrotem na konto <ph name="FROM_ACCOUNT" />.</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 aa49541..d47de084 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
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Controles de site em tela cheia</translation> <translation id="2038563949887743358">Ativar "Ver versão para Web"</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB de outros apps</translation> +<translation id="2063713494490388661">Tocar para pesquisar</translation> <translation id="2079545284768500474">Desfazer</translation> <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Para receber conteúdo personalizado sugerido pelo Google, faça login no Chrome.</translation> @@ -271,8 +272,6 @@ <translation id="3599863153486145794">Limpa o histórico de todos os dispositivos conectados. 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="3600792891314830896">Silenciar sites que reproduzem sons</translation> <translation id="360207483134687714">Ajude a melhorar a experiência de realidade virtual no Chrome</translation> -<translation id="360480449234699036">Saiba mais sobre tópicos em websites sem sair da página. Quando você toca em uma palavra em um site e mantém pressionado, o Google faz uma pesquisa em contexto para você. Definições, imagens, resultados de pesquisa e outros detalhes serão mostrados. -Para selecionar o termo que quer pesquisar, toque no termo e mantenha-o pressionado. Para refinar a pesquisa, acesse a caixa de pesquisa deslizando o dedo da parte de cima da tela até embaixo.</translation> <translation id="3616113530831147358">Áudio</translation> <translation id="3620176948598597475">A redefinição limpa o histórico da Economia de dados, incluindo a lista de sites visitados.</translation> <translation id="3632295766818638029">Reautenticar para ver senha</translation> @@ -284,7 +283,6 @@ <translation id="3712575778697986964">Redefinir a Economia de dados?</translation> <translation id="3714981814255182093">Abrir a barra Localizar</translation> <translation id="3716182511346448902">Como esta página usa muita memória, o Chrome a pausou.</translation> -<translation id="3738139272394829648">Tocar para pesquisar</translation> <translation id="3739899004075612870">Adicionado aos favoritos no <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB de outros apps</translation> <translation id="3744111561329211289">Sincronização em segundo plano</translation> @@ -778,7 +776,6 @@ <translation id="8105951947646329362">Sugerir páginas relacionadas</translation> <translation id="8116925261070264013">Com som desativado</translation> <translation id="813082847718468539">Visualizar informações do site</translation> -<translation id="8137558756159375272">"Toque para pesquisar" envia a palavra selecionada e a página atual como contexto para a Pesquisa Google. Desative esse recurso em <ph name="BEGIN_LINK" />Configurações<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Conteúdo</translation> <translation id="8186512483418048923"><ph name="FILES" /> arquivos restantes</translation> <translation id="8190358571722158785">Um dia restante</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 3f8e01a..617b5c7 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
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Controlos de site em ecrã int.</translation> <translation id="2038563949887743358">Ativar Pedir site para computador</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB de outras aplicações</translation> +<translation id="2063713494490388661">Tocar para pesquisar</translation> <translation id="2079545284768500474">Anular</translation> <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Para obter conteúdo personalizado sugerido pelo Google, inicie sessão no Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Limpa o histórico de todos os dispositivos com sessão iniciada. A sua Conta Google pode ter outras formas do histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Desativar o som dos sites que reproduzem som</translation> <translation id="360207483134687714">Ajude a melhorar a experiência de RV no Chrome</translation> -<translation id="360480449234699036">Saiba mais acerca dos tópicos nos Sites sem sair da página. A funcionalidade Tocar para pesquisar envia uma palavra e o respetivo contexto circundante para a Pesquisa Google, que devolve definições, imagens, resultados da pesquisa e outros detalhes. - -Para ajustar o termo de pesquisa, prima continuamente para selecionar. Para refinar a sua pesquisa, deslize lentamente o painel totalmente para cima e toque na caixa de pesquisa.</translation> <translation id="3616113530831147358">Áudio</translation> <translation id="3620176948598597475">A reposição apaga o histórico da Poupança de dados, incluindo a lista de sites visitados.</translation> <translation id="3632295766818638029">Desmascarar palavra-passe</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Pretende repor a Poupança de dados?</translation> <translation id="3714981814255182093">Abrir a barra Localizar</translation> <translation id="3716182511346448902">Esta página utiliza demasiada memória, pelo que o Chrome a colocou em pausa.</translation> -<translation id="3738139272394829648">Tocar para pesquisar</translation> <translation id="3739899004075612870">Adicionado aos marcadores no <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB de outras aplicações</translation> <translation id="3744111561329211289">Sincronização em segundo plano</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Páginas relacionadas sugeridas</translation> <translation id="8116925261070264013">Com som desativado</translation> <translation id="813082847718468539">Ver informações do Web site</translation> -<translation id="8137558756159375272">Tocar para pesquisar envia a palavra selecionada e a página atual como contexto para a Pesquisa Google. Pode desativá-la em <ph name="BEGIN_LINK" />Definições<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Conteúdo</translation> <translation id="8186512483418048923">Faltam <ph name="FILES" /> ficheiros</translation> <translation id="8190358571722158785">Falta 1 dia</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 eb21140a..68e8b9536 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Comenzi site în ecran complet</translation> <translation id="2038563949887743358">Activează opțiunea Versiune site pentru desktop</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB pentru alte aplicații</translation> +<translation id="2063713494490388661">Atinge pentru a căuta</translation> <translation id="2079545284768500474">Anulează</translation> <translation id="2082238445998314030">Rezultatul <ph name="RESULT_NUMBER" /> din <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Pentru a obține sugestii de conținut personalizat de la Google, conectează-te la Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Șterge istoricul de pe toate dispozitivele conectate. Contul Google poate să ofere alte forme ale istoricului de navigare la <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Dezactivează sunetul pentru site-urile care îl redau</translation> <translation id="360207483134687714">Ajută la îmbunătățirea experienței RV în Chrome</translation> -<translation id="360480449234699036">Află despre subiectele de pe site-uri fără să părăsești pagina. Funcția „Atinge pentru a căuta” trimite un cuvânt și contextul aferent către Căutarea Google, afișând definiții, imagini, rezultate ale căutării și alte detalii. - -Pentru a ajusta termenii căutării, apasă lung pentru a selecta. Pentru a rafina căutarea, glisează panoul până în partea de sus și atinge caseta de căutare.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Prin resetare se șterge istoricul Economizorului de date, inclusiv lista site-urilor accesate.</translation> <translation id="3632295766818638029">Afișează parola</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Resetezi Economizorul de date?</translation> <translation id="3714981814255182093">Deschide Bara de căutare</translation> <translation id="3716182511346448902">Această pagină folosește prea multă memorie, prin urmare Chrome a întrerupt-o.</translation> -<translation id="3738139272394829648">Atinge pentru a căuta</translation> <translation id="3739899004075612870">Marcat în <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB pentru alte aplicații</translation> <translation id="3744111561329211289">Sincronizare în fundal</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Sugerează pagini similare</translation> <translation id="8116925261070264013">Cu sunetul dezactivat</translation> <translation id="813082847718468539">Afișează informațiile privind site-ul</translation> -<translation id="8137558756159375272">Funcția Atinge pentru a căuta trimite cuvântul selectat și pagina actuală drept context către Căutare Google. Poți dezactiva această funcție din <ph name="BEGIN_LINK" />Setări<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Conținut</translation> <translation id="8186512483418048923"><ph name="FILES" /> fișiere rămase</translation> <translation id="8190358571722158785">1 zi rămasă</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 c883e50..d2f21c31 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Настройки полноэкранного режима</translation> <translation id="2038563949887743358">Включить полную версию сайта</translation> <translation id="2045104531052923016">Другие приложения: <ph name="GIGABYTES" /> ГБ</translation> +<translation id="2063713494490388661">Нажмите для поиска</translation> <translation id="2079545284768500474">Отмена</translation> <translation id="2082238445998314030">Результат <ph name="RESULT_NUMBER" />, всего <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Чтобы мы могли рекомендовать вам интересный контент, войдите в свой аккаунт в Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Удаление истории со всех устройств, на которых выполнен вход в аккаунт. Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Отключить звуки на сайтах</translation> <translation id="360207483134687714">Помогите улучшить VR-режим в Chrome</translation> -<translation id="360480449234699036">Ищите картинки, определения и другую информацию, не покидая выбранную страницу. Просто выберите слово, и оно будет отправлено в Google Поиск вместе с контекстом. - -Чтобы задать новый поисковый запрос, нажмите на нужное слово и не отпускайте палец. Чтобы уточнить запрос, прокрутите панель вверх и коснитесь поисковой строки.</translation> <translation id="3616113530831147358">Аудио</translation> <translation id="3620176948598597475">Будет удалена информация о сэкономленном трафике, в том числе список просмотренных сайтов.</translation> <translation id="3632295766818638029">Показать пароль</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Сбросить статистику?</translation> <translation id="3714981814255182093">Открыть панель поиска</translation> <translation id="3716182511346448902">Эта страница расходовала слишком много памяти, поэтому работа ее скриптов была приостановлена.</translation> -<translation id="3738139272394829648">Быстрый поиск</translation> <translation id="3739899004075612870"><ph name="PRODUCT_NAME" />: добавлена закладка</translation> <translation id="3744111309925758534">Другие приложения: <ph name="MEGABYTES" /> МБ</translation> <translation id="3744111561329211289">Фоновая синхронизация</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Загружать страницы предварительно</translation> <translation id="4412992751769744546">Разрешить сторонним сайтам сохранять файлы cookie</translation> <translation id="4432792777822557199">Страницы на этом языке (<ph name="SOURCE_LANGUAGE" />) будут автоматически переводиться на <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Всплывающие окна и переадресация</translation> <translation id="4445444302979002552">Включить рекомендации поисковых запросов и веб-сайтов.</translation> <translation id="4452411734226507615">Закрыть вкладку "<ph name="TAB_TITLE" />"</translation> <translation id="4452548195519783679">Закладка добавлена в папку "<ph name="FOLDER_NAME" />"</translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Описание:</translation> <translation id="5777170031995031090">Укажите, как Google может использовать историю просмотров для персонализации Поиска, Рекламы и других сервисов.</translation> <translation id="5779929835642192302">Доступны подходящие варианты</translation> +<translation id="5793665092639000975">Использовано <ph name="SPACE_USED" /> из <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Разрешения</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# час назад}one{# час назад}few{# часа назад}many{# часов назад}other{# часа назад}}</translation> <translation id="5817918615728894473">Подключить</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Блокировать, если на сайте много навязчивой рекламы (рекомендуется)</translation> <translation id="6560414384669816528">Поиск в Sogou</translation> <translation id="6566259936974865419">Благодаря Chrome вы сэкономили <ph name="GIGABYTES" /> ГБ свободного места</translation> +<translation id="6573096386450695060">Разрешать всегда</translation> <translation id="6573431926118603307">Здесь появятся вкладки, открытые в Chrome на других устройствах.</translation> <translation id="6575643671698722332">Ошибка сброса. Подключитесь к Интернету и повторите попытку.</translation> <translation id="6583199322650523874">Добавить страницу в закладки</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Выберите аккаунт</translation> <translation id="7034608350006174882">Банковские карты и адреса из Google Pay</translation> <translation id="7053983685419859001">Блокировать</translation> +<translation id="7055152154916055070">Заблокирована попытка переадресации:</translation> <translation id="7062545763355031412">Принять и переключиться</translation> <translation id="7063006564040364415">Не удалось связаться с сервером синхронизации</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Выбран 1 объект}one{Выбран # объект}few{Выбрано # объекта}many{Выбрано # объектов}other{Выбрано # объекта}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Удаление истории и вариантов автозаполнения в адресной строке. Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Открыть доступ текущей поисковой системе</translation> <translation id="7138678301420049075">Другое</translation> +<translation id="7141896414559753902">Блокировать всплывающие окна и переадресацию на сайтах (рекомендуется)</translation> <translation id="7144878232160441200">Повторить попытку</translation> <translation id="7149893636342594995">Последние 24 часа</translation> <translation id="7177466738963138057">Вы всегда можете изменить свой выбор в настройках</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Предлагать похожие страницы</translation> <translation id="8116925261070264013">Сайты с отключенным звуком</translation> <translation id="813082847718468539">Сведения о сайте</translation> -<translation id="8137558756159375272">Функция "Нажмите для поиска" отправляет в Google выбранное слово, а также текущую страницу в качестве контекста. Включить или отключить эту функцию можно в <ph name="BEGIN_LINK" />настройках<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Контент</translation> <translation id="8186512483418048923">Осталось файлов: <ph name="FILES" /></translation> <translation id="8190358571722158785">Остался 1 день</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Главная страница</translation> <translation id="932599481871055447">Просматривайте веб-страницы быстрее и экономьте трафик</translation> <translation id="938850635132480979">Ошибка <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Недостаточно места на SD-карте.</translation> <translation id="945522503751344254">Отправить отзыв</translation> <translation id="945632385593298557">Доступ к микрофону</translation> <translation id="951339005376969845">Удалить сохраненные данные. Чтобы снова получить к ним доступ, переключитесь на аккаунт <ph name="FROM_ACCOUNT" />.</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 47ad8e5..16c7dd20 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Ovládanie webu na celú obrazovku</translation> <translation id="2038563949887743358">Zapnutie žiadosti o verziu stránok pre počítače</translation> <translation id="2045104531052923016">Ďalšie aplikácie: <ph name="GIGABYTES" /> GB</translation> +<translation id="2063713494490388661">Vyhľadávanie klepnutím</translation> <translation id="2079545284768500474">Späť</translation> <translation id="2082238445998314030">Výsledok <ph name="RESULT_NUMBER" /> z <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Ak chcete získavať prispôsobený obsah navrhnutý Googlom, prihláste sa do Chromu.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Vymaže históriu zo všetkých prihlásených zariadení. 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="3600792891314830896">Vypnutie zvuku webov, ktoré prehrávajú zvuk</translation> <translation id="360207483134687714">Pomôžte zlepšiť prostredie VR v Chrome</translation> -<translation id="360480449234699036">Získajte informácie o témach na weboch bez toho, aby ste danú stránku museli opustiť. Funkcia Vyhľadávanie klepnutím odošle slovo a súvisiaci kontext do Vyhľadávania Google a vráti definície, obrázky, výsledky vyhľadávania a ďalšie podrobnosti. - -Ak chcete upraviť hľadaný výraz, vyberte ho dlhým stlačením. Ak chcete vyhľadávanie spresniť, posuňte panel úplne hore a klepnite na vyhľadávacie pole.</translation> <translation id="3616113530831147358">Zvuk</translation> <translation id="3620176948598597475">Resetovaním vymažete históriu Šetriča dát vrátane zoznamu navštívených webov.</translation> <translation id="3632295766818638029">Odhaliť heslo</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Resetovať Šetrič dát?</translation> <translation id="3714981814255182093">Otvorenie Panela vyhľadávania</translation> <translation id="3716182511346448902">Táto stránka využíva príliš veľa pamäte, a preto ju Chrome pozastavil.</translation> -<translation id="3738139272394829648">Vyhľadávanie klepnutím</translation> <translation id="3739899004075612870">Pridané do záložiek <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">Ďalšie aplikácie: <ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">Synchronizácia na pozadí</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Používať predpovede stránok</translation> <translation id="4412992751769744546">Povoliť súbory cookie tretích strán</translation> <translation id="4432792777822557199">Stránky v jazyku <ph name="SOURCE_LANGUAGE" /> budú odteraz prekladané do jazyka <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Kontextové okná a presmerovania</translation> <translation id="4445444302979002552">Používanie služieb predpovedí na poskytovanie návrhov hľadaných výrazov a webových stránok</translation> <translation id="4452411734226507615">Zavrieť kartu <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Uložené ako záložka v priečinku <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Popis:</translation> <translation id="5777170031995031090">Ovládajte, ako Google môže používať vašu históriu prehliadania na prispôsobenie Vyhľadávania, reklám a ďalších služieb Google.</translation> <translation id="5779929835642192302">Sú k dispozícii návrhy</translation> +<translation id="5793665092639000975">Využité: <ph name="SPACE_USED" /> z <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Povolenia</translation> <translation id="5809361687334836369">{HOURS,plural, =1{pred # hodinou}few{pred # hodinami}many{pred # hodinou}other{pred # hodinami}}</translation> <translation id="5817918615728894473">Párovať</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blokovať, ak web zvykne zobrazovať obťažujúce reklamy (odporúčané)</translation> <translation id="6560414384669816528">Vyhľadávať pomocou Sogou</translation> <translation id="6566259936974865419">Chrome ušetril <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Vždy povoliť</translation> <translation id="6573431926118603307">Tu sa zobrazia karty, ktoré ste otvorili v Chrome na iných zariadeniach.</translation> <translation id="6575643671698722332">Resetovanie zlyhalo. Uistite sa, že je zariadenie online, a skúste to znova.</translation> <translation id="6583199322650523874">Pridanie aktuálnej stránky medzi záložky</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Kam synchronizovať</translation> <translation id="7034608350006174882">Karty a adresy pomocou služby Google Pay</translation> <translation id="7053983685419859001">Blokovať</translation> +<translation id="7055152154916055070">Presmerovanie bolo zablokované:</translation> <translation id="7062545763355031412">Prijať a prepnúť účty</translation> <translation id="7063006564040364415">Nepodarilo sa pripojiť k synchronizačnému serveru.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 vybratá položka}few{# vybraté položky}many{Niekoľko (#) vybratých položiek}other{# vybratých položiek}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Vymaže históriu a záznamy automatického dopĺňania v paneli s adresou. 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="7128222689758636196">Povoliť pre aktuálny vyhľadávač</translation> <translation id="7138678301420049075">Ostatné</translation> +<translation id="7141896414559753902">Blokovať na weboch zobrazovanie kontextových okien a presmerovania (odporúčané)</translation> <translation id="7144878232160441200">Skúsiť znova</translation> <translation id="7149893636342594995">Posledných 24 hodín</translation> <translation id="7177466738963138057">Zmeniť to môžete neskôr v časti Nastavenia</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Navrhovať súvisiace stránky</translation> <translation id="8116925261070264013">Zvuk bol vypnutý</translation> <translation id="813082847718468539">Zobraziť informácie o stránkach</translation> -<translation id="8137558756159375272">Funkcia vyhľadávania klepnutím odošle vybrané slovo a súčasnú stránku ako kontext do Vyhľadávania Google. Môžete ju vypnúť v <ph name="BEGIN_LINK" />Nastaveniach<ph name="END_LINK" />.</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> @@ -885,6 +886,7 @@ <translation id="932327136139879170">Domov</translation> <translation id="932599481871055447">Šetrite dáta a prehliadajte rýchlejšie</translation> <translation id="938850635132480979">Chyba: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Na SD karte nie je dostatok miesta</translation> <translation id="945522503751344254">Poslať spätnú väzbu</translation> <translation id="945632385593298557">Prístup k mikrofónu</translation> <translation id="951339005376969845">Odstrániť existujúce údaje. Načítate ich prepnutím späť na účet <ph name="FROM_ACCOUNT" />.</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 0a623bf..517d2cb1 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Kontrol. za mesto v celo. načinu</translation> <translation id="2038563949887743358">Vklop možnosti »Zahteva za namizno spletno mesto«</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB drugih aplikacij</translation> +<translation id="2063713494490388661">Iskanje z dotikom</translation> <translation id="2079545284768500474">Razveljavi</translation> <translation id="2082238445998314030"><ph name="RESULT_NUMBER" />. rezultat od <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Če želite prejemati prilagojeno vsebino, ki jo predlaga Google, se prijavite v Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Izbriše zgodovino iz vseh naprav, v katerih ste prijavljeni. V Google Računu so morda druge vrste zgodovine brskanja na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Izklop zvoka na spletnih mestih, ki predvajajo zvok</translation> <translation id="360207483134687714">Pomagajte izboljšati uporabo navidezne resničnosti v Chromu</translation> -<translation id="360480449234699036">Več informacij o temah na spletnih mestih, ne da bi zapustili stran. Možnost »Dotaknite se za iskanje« pošlje besedo in njeno sobesedilo Iskanju Google in vrne definicije, slike, rezultate iskanja in druge podrobnosti. - -Če želite prilagoditi iskalno poizvedbo, jo izberite z daljšim dotikom. Če želite podrobneje nastaviti iskanje, potisnite podokno povsem navzgor in se dotaknite iskalnega polja.</translation> <translation id="3616113530831147358">Zvok</translation> <translation id="3620176948598597475">Ponastavitev izbriše zgodovino varčevanja s podatki, vključno s seznamom obiskanih spletnih mest.</translation> <translation id="3632295766818638029">Razkritje gesla</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Želite ponastaviti varčevanje s podatki?</translation> <translation id="3714981814255182093">Odpiranje vrstice za iskanje</translation> <translation id="3716182511346448902">Ta stran uporablja preveč pomnilnika, zato jo je Chrome zaustavil.</translation> -<translation id="3738139272394829648">Dotaknite se za iskanje</translation> <translation id="3739899004075612870">Dodano med zaznamke v izdelku <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB drugih aplikacij</translation> <translation id="3744111561329211289">Sinhroniziranje v ozadju</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Predlaganje sorodnih strani</translation> <translation id="8116925261070264013">Prezrto</translation> <translation id="813082847718468539">Ogled podatkov o mestu</translation> -<translation id="8137558756159375272">»Dotaknite se za iskanje« pošlje izbrano besedo in trenutno strank kot kontekst Iskanju Google. To lahko izklopite v <ph name="BEGIN_LINK" />nastavitvah<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Vsebina</translation> <translation id="8186512483418048923">Še toliko datotek: <ph name="FILES" /></translation> <translation id="8190358571722158785">Še 1 dan</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 f08d1dd..500f9e9 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Контроле сајта на целом екрану</translation> <translation id="2038563949887743358">Укључи захтевање верзије сајта за рачунаре</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB – друге апликације</translation> +<translation id="2063713494490388661">Додирните за претрагу</translation> <translation id="2079545284768500474">Опозови</translation> <translation id="2082238445998314030"><ph name="RESULT_NUMBER" />. од <ph name="TOTAL_RESULTS" /> резултата</translation> <translation id="2086652334978798447">Да бисте добијали персонализовани садржај који предлаже Google, пријавите се у Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Брише историју са свих уређаја на којима сте пријављени. Google налог може да има друге облике историје прегледања на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Искључи звук сајтова који пуштају звук</translation> <translation id="360207483134687714">Помозите нам да побољшамо доживљај виртуалне реалности у Chrome-у</translation> -<translation id="360480449234699036">Сазнајте више о темама на веб-сајтовима без напуштања странице. Функција Додирните за претрагу шаље реч и околни контекст у Google претрагу и приказује дефиниције, слике, резултате претраге и друге детаље. - -Да бисте прилагодили термин за претрагу, притисните и задржите да бисте га изабрали. Да бисте прецизирали претрагу, превуците таблу нагоре до краја и додирните оквир за претрагу.</translation> <translation id="3616113530831147358">Аудио</translation> <translation id="3620176948598597475">Ресетовањем се брише историја Уштеде података, укључујући листу сајтова које сте посетили.</translation> <translation id="3632295766818638029">Откриј лозинку</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Желите ли да ресетујете Уштеду података?</translation> <translation id="3714981814255182093">Отварање траке за тражење</translation> <translation id="3716182511346448902">Ова страница користи превише меморије, па ју је Chrome паузирао.</translation> -<translation id="3738139272394829648">Додирни за претрагу</translation> <translation id="3739899004075612870">Обележено у <ph name="PRODUCT_NAME" />-у</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB – друге апликације</translation> <translation id="3744111561329211289">Синхронизација у позадини</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Користите предвиђања страница</translation> <translation id="4412992751769744546">Дозволи колачиће треће стране</translation> <translation id="4432792777822557199">Странице на језику <ph name="SOURCE_LANGUAGE" /> ће се од сада преводити на <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Искачући прозори и преусмеравања</translation> <translation id="4445444302979002552">Помоћу услуга предвиђања приказује предлоге за термине за претрагу и веб-сајтове</translation> <translation id="4452411734226507615">Затвори картицу <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Обележивач је додат у <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Опис:</translation> <translation id="5777170031995031090">Контролишите како Google користи историју прегледања за персонализацију Претраге, огласа и других Google услуга.</translation> <translation id="5779929835642192302">Доступни су предлози</translation> +<translation id="5793665092639000975">Користи се <ph name="SPACE_USED" /> од <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Дозволе</translation> <translation id="5809361687334836369">{HOURS,plural, =1{Пре # сата}one{Пре # сата}few{Пре # сата}other{Пре # сати}}</translation> <translation id="5817918615728894473">Упари</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Блокирај ако сајт приказује огласе који ометају (препоручено)</translation> <translation id="6560414384669816528">Претрага помоћу Sogou-а</translation> <translation id="6566259936974865419">Chrome вам је уштедео <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">Увек дозволи</translation> <translation id="6573431926118603307">Овде ће се приказати картице које отворите у Chrome-у на другим уређајима.</translation> <translation id="6575643671698722332">Ресетовање није успело. Уверите се да је уређај онлајн и покушајте поново.</translation> <translation id="6583199322650523874">Обележавање тренутне странице</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Синхронизујте са</translation> <translation id="7034608350006174882">Картице и адресе које из Google Pay-а</translation> <translation id="7053983685419859001">Блокирај</translation> +<translation id="7055152154916055070">Блокирано је преусмеравање:</translation> <translation id="7062545763355031412">Прихватам, промени налог</translation> <translation id="7063006564040364415">Није могуће повезивање са сервером за синхронизацију.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Изабрано: 1}one{Изабрано: #}few{Изабрано: #}other{Изабрано: #}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Брише историју и аутоматска довршавања у траци за адресу. Google налог може да има друге облике историје прегледања на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Дозволи за актуелни претраживач</translation> <translation id="7138678301420049075">Друго</translation> +<translation id="7141896414559753902">Блокирај приказивање искачућих прозора и преусмеравања на сајтовима (препоручено)</translation> <translation id="7144878232160441200">Пробај поново</translation> <translation id="7149893636342594995">Последња 24 сата</translation> <translation id="7177466738963138057">То можете да промените касније у подешавањима</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Приказуј предлоге сродних страница</translation> <translation id="8116925261070264013">Звук је искључен</translation> <translation id="813082847718468539">Погледајте информације о сајту</translation> -<translation id="8137558756159375272">Функција Додирните за претрагу шаље изабрану реч и актуелну страницу као контекст у Google претрагу. Можете да је искључите у <ph name="BEGIN_LINK" />Подешавањима<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Садржај</translation> <translation id="8186512483418048923">Преостале датотеке: <ph name="FILES" /></translation> <translation id="8190358571722158785">Још 1 дан</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Почетна</translation> <translation id="932599481871055447">Уштедите на подацима и прегледајте брже</translation> <translation id="938850635132480979">Грешка: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Нема довољно простора на SD картици</translation> <translation id="945522503751344254">Пошаљи повратне информације</translation> <translation id="945632385593298557">Приступ микрофону</translation> <translation id="951339005376969845">Избришите постојеће податке. Можете да их вратите ако се вратите на <ph name="FROM_ACCOUNT" />.</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 cd3b46f..180c537 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Helskärmskontroller på webbsidan</translation> <translation id="2038563949887743358">Aktivera begäran av skrivbordsversion</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB används av övriga appar</translation> +<translation id="2063713494490388661">Tryck för att söka</translation> <translation id="2079545284768500474">Ångra</translation> <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> av <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Logga in i Chrome om du vill få förslag på anpassat innehåll från Google.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Historik rensas från alla inloggade enheter. Det kan finnas andra former av webbhistorik i Google-kontot på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Stäng av ljudet på webbplatser</translation> <translation id="360207483134687714">Hjälp oss att förbättra VR-upplevelsen i Chrome</translation> -<translation id="360480449234699036">Läs om olika ämnen på webbplatser utan att lämna sidan. När du trycker på Sök skickas ett ord och dess sammanhang till Google Sök och definitioner, bilder, sökresultat och annan information visas. - -Om du vill ändra söktermen trycker du länge för att välja. Om du vill förfina sökningen drar du panelen ända upp och trycker på sökrutan.</translation> <translation id="3616113530831147358">Ljud</translation> <translation id="3620176948598597475">Om du återställer raderas historiken för Databesparing, inklusive listan med besökta webbplatser.</translation> <translation id="3632295766818638029">Visa lösenord</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Vill du återställa Databesparing?</translation> <translation id="3714981814255182093">Öppna sökfältet</translation> <translation id="3716182511346448902">Den här sidan har pausats i Chrome eftersom den använder för mycket minne.</translation> -<translation id="3738139272394829648">Tryck för att söka</translation> <translation id="3739899004075612870">Bokmärket har lagts till i <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB används av övriga appar</translation> <translation id="3744111561329211289">Synkronisera i bakgrunden</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Använd sidförslag</translation> <translation id="4412992751769744546">Tillåt cookies från tredje part</translation> <translation id="4432792777822557199">Sidor på <ph name="SOURCE_LANGUAGE" /> översätts till <ph name="TARGET_LANGUAGE" /> från och med nu</translation> +<translation id="4434045419905280838">Popup-fönster och omdirigeringar</translation> <translation id="4445444302979002552">Med förslagstjänster får du förslag på söktermer och webbplatser</translation> <translation id="4452411734226507615">Stäng fliken <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Bokmärkt i <ph name="FOLDER_NAME" /></translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Beskrivning:</translation> <translation id="5777170031995031090">Styr hur Google anpassar Sök, annonser och andra Google-tjänster utifrån webbhistoriken.</translation> <translation id="5779929835642192302">Förslag tillgängliga</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> av <ph name="SPACE_AVAILABLE" /> används</translation> <translation id="5804241973901381774">Behörigheter</translation> <translation id="5809361687334836369">{HOURS,plural, =1{för # timme sedan}other{för # timmar sedan}}</translation> <translation id="5817918615728894473">Koppla</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Blockera om påträngande annonser brukar visas på webbplatsen (rekommenderas)</translation> <translation id="6560414384669816528">Sök med Sogou</translation> <translation id="6566259936974865419">Du har sparat <ph name="GIGABYTES" /> GB med Chrome</translation> +<translation id="6573096386450695060">Tillåt alltid</translation> <translation id="6573431926118603307">Här visas flikar som du har öppnat i Chrome på andra enheter.</translation> <translation id="6575643671698722332">Fel vid återställning. Kolla att enheten är online. Försök igen.</translation> <translation id="6583199322650523874">Infoga ett bokmärke för den aktuella sidan</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Synkronisera med</translation> <translation id="7034608350006174882">Kort och adresser som används med Google Pay</translation> <translation id="7053983685419859001">Blockera</translation> +<translation id="7055152154916055070">Omdirigeringen blockerades:</translation> <translation id="7062545763355031412">Godkänn och byt konto</translation> <translation id="7063006564040364415">Det gick inte att ansluta till synkroniseringsservern.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 har valts}other{# har valts}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Historik och autoslutföranden i adressfältet rensas. Det kan finnas andra former av webbhistorik i Google-kontot på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="7128222689758636196">Tillåt för den nuvarande sökmotorn</translation> <translation id="7138678301420049075">Övrigt</translation> +<translation id="7141896414559753902">Blockera webbplatser från att visa popup-fönster (rekommenderas)</translation> <translation id="7144878232160441200">Försök igen</translation> <translation id="7149893636342594995">Senaste 24 timmarna</translation> <translation id="7177466738963138057">Du kan ändra detta senare i inställningarna</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Föreslå relaterade sidor</translation> <translation id="8116925261070264013">Ljudet avstängt</translation> <translation id="813082847718468539">Visa information om webbplatsen</translation> -<translation id="8137558756159375272">Funktionen Tryck för att söka skickar det markerade ordet till Google Sök med den aktuella sidan som kontext. Du kan stänga av funktionen i <ph name="BEGIN_LINK" />Inställningar<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Innehåll</translation> <translation id="8186512483418048923"><ph name="FILES" /> filer återstår</translation> <translation id="8190358571722158785">1 dag kvar</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Startsida</translation> <translation id="932599481871055447">Spara data och bläddra snabbare</translation> <translation id="938850635132480979">Fel: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">Inte tillräckligt med utrymme på SD-kortet</translation> <translation id="945522503751344254">Skicka synpunkter</translation> <translation id="945632385593298557">Tillgång till din mikrofon</translation> <translation id="951339005376969845">Radera befintlig data. Om du byter tillbaka till <ph name="FROM_ACCOUNT" /> finns den kvar där.</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 d59101b..cebf647 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Vidhibiti vya tovuti vya skrini nzima</translation> <translation id="2038563949887743358">Washa Omba Tovuti ya Eneo-kazi</translation> <translation id="2045104531052923016">Programu nyingine za GB <ph name="GIGABYTES" /></translation> +<translation id="2063713494490388661">Gusa ili Utafute</translation> <translation id="2079545284768500474">Tendua</translation> <translation id="2082238445998314030">Tokeo <ph name="RESULT_NUMBER" /> kati ya <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Ili Google ikupendekezee maudhui yanayokufaa, ingia katika Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Hufuta historia kwenye vifaa vyote ulivyotumia kuingia katika akaunti. Huenda Akaunti yako ya Google ikawa na aina nyingine za historia ya kuvinjari kwenye <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Zima sauti katika tovuti</translation> <translation id="360207483134687714">Tusaidie kuboresha hali ya utumiaji wa VR katika Chrome kwa kutoa maoni yako</translation> -<translation id="360480449234699036">Pata maelezo kuhusu mada kwenye tovuti bila kuondoka kwenye ukurasa. Gusa ili Kutafuta inatuma neno na muktadha wake uliopo kwenye Tafuta na Google, kurejesha ufafanuzi, picha, matokeo ya utafutaji, na maelezo mengine. - -Ili kurekebisha hoja yako ya utafutaji, bonyeza kwa muda mrefu ili kuchagua. Ili kuchuja utafutaji wako, telezesha paneli hadi juu na uguse kisanduku cha utafutaji.</translation> <translation id="3616113530831147358">Sauti</translation> <translation id="3620176948598597475">Kuweka upya takwimu hufuta historia ya Kiokoa Data ikiwa ni pamoja na orodha ya tovuti ulizotembelea.</translation> <translation id="3632295766818638029">Onyesha nenosiri</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Ungependa kuweka upya takwimu za Kiokoa Data?</translation> <translation id="3714981814255182093">Fungua Upau wa Kutafuta</translation> <translation id="3716182511346448902">Ukurasa huu unatumia hifadhi kubwa zaidi, kwa hivyo Chrome imeusitisha.</translation> -<translation id="3738139272394829648">Gusa ili Utafute</translation> <translation id="3739899004075612870">Imealamishwa katika <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">Programu nyingine za MB <ph name="MEGABYTES" /></translation> <translation id="3744111561329211289">Usawazishaji wa chini chini</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Pendekeza kurasa zinazohusiana</translation> <translation id="8116925261070264013">Imezimwa</translation> <translation id="813082847718468539">Angalia maelezo ya tovuti</translation> -<translation id="8137558756159375272">Kipengele cha Gusa ili Kutafuta hutuma neno lililochaguliwa na ukurasa wa sasa kama muktadha kwa huduma ya Tafuta na Google. Unaweza kuzima kipengele hiki katika <ph name="BEGIN_LINK" />Mipangilio<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Maudhui</translation> <translation id="8186512483418048923">Zimesalia faili <ph name="FILES" /></translation> <translation id="8190358571722158785">Imesalia siku 1</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 dce8937..b2b6d19e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">ส่วนควบคุมเว็บไซต์แบบเต็มหน้าจอ</translation> <translation id="2038563949887743358">เปิดการขอเว็บไซต์เดสก์ท็อป</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB จากแอปอื่นๆ</translation> +<translation id="2063713494490388661">แตะเพื่อค้นหา</translation> <translation id="2079545284768500474">เลิกทำ</translation> <translation id="2082238445998314030">ผลลัพธ์ <ph name="RESULT_NUMBER" /> จาก <ph name="TOTAL_RESULTS" /> รายการ</translation> <translation id="2086652334978798447">หากต้องการรับคำแนะนำเนื้อหาที่เหมาะสำหรับคุณจาก Google ให้ลงชื่อเข้าใช้ Chrome</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">ล้างประวัติจากอุปกรณ์ที่ลงชื่อเข้าใช้ทั้งหมด บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="3600792891314830896">ปิดเสียงไซต์ที่เล่นเสียง</translation> <translation id="360207483134687714">ช่วยปรับปรุงประสบการณ์ VR ใน Chrome</translation> -<translation id="360480449234699036">เรียนรู้เกี่ยวกับหัวข้อบนเว็บไซต์โดยไม่ต้องออกจากหน้า แตะเพื่อค้นหาจะส่งคำและบริบทที่อยู่ข้างเคียงไปยัง Google Search เพื่อแสดงคำจำกัดความ รูปภาพ ผลการค้นหา และรายละเอียดอื่นๆ - -หากต้องการแก้ไขข้อความค้นหา ให้กดค้างไว้เพื่อเลือก หากต้องการปรับการค้นหา ให้เลื่อนแผงขึ้นและแตะช่องค้นหา</translation> <translation id="3616113530831147358">เสียง</translation> <translation id="3620176948598597475">การรีเซ็ตจะลบประวัติโปรแกรมประหยัดอินเทอร์เน็ต รวมถึงรายการไซต์ที่เข้าชม</translation> <translation id="3632295766818638029">เปิดเผยรหัสผ่าน</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">รีเซ็ตโปรแกรมประหยัดอินเทอร์เน็ตไหม</translation> <translation id="3714981814255182093">เปิดแถบค้นหา</translation> <translation id="3716182511346448902">หน้านี้ใช้หน่วยความจำมากเกินไป Chrome จึงหยุดหน้าชั่วคราว</translation> -<translation id="3738139272394829648">แตะเพื่อค้นหา</translation> <translation id="3739899004075612870">บุ๊กมาร์กไว้ใน <ph name="PRODUCT_NAME" /> แล้ว</translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> MB จากแอปอื่นๆ</translation> <translation id="3744111561329211289">ซิงค์ในแบ็กกราวด์</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">ใช้การคาดคะเนหน้า</translation> <translation id="4412992751769744546">อนุญาตคุกกี้ของบุคคลที่สาม</translation> <translation id="4432792777822557199">จากนี้ไประบบจะแปลหน้าภาษา<ph name="SOURCE_LANGUAGE" />เป็นภาษา<ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">ป๊อปอัปและการเปลี่ยนเส้นทาง</translation> <translation id="4445444302979002552">ใช้บริการการคาดคะเนเพื่อแนะนำข้อความค้นหาและเว็บไซต์</translation> <translation id="4452411734226507615">ปิดแท็บ <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">เพิ่มบุ๊กมาร์กไปยัง <ph name="FOLDER_NAME" /> แล้ว</translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">คำอธิบาย:</translation> <translation id="5777170031995031090">ควบคุมวิธีที่ Google ใช้ประวัติการท่องเว็บของคุณเพื่อปรับเปลี่ยนการค้นหา โฆษณา และบริการอื่นๆ ของ Google ในแบบของคุณ</translation> <translation id="5779929835642192302">มีคำแนะนำ</translation> +<translation id="5793665092639000975">ใช้ไป <ph name="SPACE_USED" /> จาก <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">การอนุญาต</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# ชั่วโมงที่ผ่านมา}other{# ชั่วโมงที่ผ่านมา}}</translation> <translation id="5817918615728894473">จับคู่</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">บล็อกหากไซต์มักแสดงโฆษณาที่แทรก (แนะนำ)</translation> <translation id="6560414384669816528">ค้นหาด้วย Sogou</translation> <translation id="6566259936974865419">Chrome ได้ประหยัดพื้นที่ให้คุณไป <ph name="GIGABYTES" /> GB</translation> +<translation id="6573096386450695060">อนุญาตเสมอ</translation> <translation id="6573431926118603307">แท็บที่คุณเปิดไว้ใน Chrome ในอุปกรณ์เครื่องอื่นๆ จะปรากฏที่นี่</translation> <translation id="6575643671698722332">การรีเซ็ตล้มเหลว ตรวจสอบว่าอุปกรณ์ของคุณออนไลน์และลองอีกครั้ง</translation> <translation id="6583199322650523874">บุ๊กมาร์กหน้าปัจจุบัน</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">ซิงค์กับ</translation> <translation id="7034608350006174882">ใช้ข้อมูลบัตรและที่อยู่จาก Google Pay</translation> <translation id="7053983685419859001">บล็อก</translation> +<translation id="7055152154916055070">การเปลี่ยนเส้นทางถูกบล็อก</translation> <translation id="7062545763355031412">ยอมรับและเปลี่ยนบัญชี</translation> <translation id="7063006564040364415">ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์การซิงค์</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{เลือก 1 รายการ}other{เลือก # รายการ}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">ล้างประวัติและการเติมข้อความอัตโนมัติในแถบที่อยู่เว็บ บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="7128222689758636196">อนุญาตสำหรับเครื่องมือค้นหาปัจจุบัน</translation> <translation id="7138678301420049075">อื่นๆ</translation> +<translation id="7141896414559753902">บล็อกเว็บไซต์ไม่ให้แสดงป๊อปอัปและการเปลี่ยนเส้นทาง (แนะนำ)</translation> <translation id="7144878232160441200">ลองอีกครั้ง</translation> <translation id="7149893636342594995">24 ชั่วโมงที่แล้ว</translation> <translation id="7177466738963138057">คุณสามารถเปลี่ยนค่านี้ภายหลังใน "การตั้งค่า"</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">แนะนำหน้าเว็บที่เกี่ยวข้อง</translation> <translation id="8116925261070264013">ปิดเสียง</translation> <translation id="813082847718468539">ดูข้อมูลเว็บไซต์</translation> -<translation id="8137558756159375272">แตะเพื่อค้นหาจะส่งคำที่เลือกและหน้าปัจจุบันเป็นบริบทไปยัง Google Search คุณสามารถปิดฟีเจอร์นี้ใน<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" /></translation> <translation id="8168435359814927499">เนื้อหา</translation> <translation id="8186512483418048923">เหลืออีก <ph name="FILES" /> ไฟล์</translation> <translation id="8190358571722158785">เหลือ 1 วัน</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">หน้าแรก</translation> <translation id="932599481871055447">ประหยัดเน็ตมือถือและท่องเว็บได้เร็วขึ้น</translation> <translation id="938850635132480979">ข้อผิดพลาด: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">การ์ด SD มีพื้นที่ว่างไม่พอ</translation> <translation id="945522503751344254">ส่งความคิดเห็น</translation> <translation id="945632385593298557">เข้าถึงไมโครโฟน</translation> <translation id="951339005376969845">ลบข้อมูลที่มีอยู่ คุณสามารถดึงข้อมูลกลับมาโดยเปลี่ยนกลับไปเป็น <ph name="FROM_ACCOUNT" /></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 67dc97b..bcb3c82 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Tam ekran site kontrolleri</translation> <translation id="2038563949887743358">Masaüstü sitesi iste işlevini etkinleştir</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB diğer uygulamalar</translation> +<translation id="2063713494490388661">Aramak İçin Hafifçe Dokunma</translation> <translation id="2079545284768500474">Geri al</translation> <translation id="2082238445998314030"><ph name="TOTAL_RESULTS" /> sonuçtan <ph name="RESULT_NUMBER" /> numaralı sonuç</translation> <translation id="2086652334978798447">Google tarafından önerilen kişiselleştirilmiş içeriği almak için Chrome'da oturum açın.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Oturumunuzun açık olduğu tüm cihazlarda geçmişi temizler. Google Hesabınızın <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> adresinde başka biçimlerde tarama geçmişi olabilir.</translation> <translation id="3600792891314830896">Ses çalan sitelerin sesini kapat</translation> <translation id="360207483134687714">Chrome'da Sanal Gerçeklik deneyimini iyileştirmeye yardımcı olun</translation> -<translation id="360480449234699036">Sayfadan ayrılmadan web siteleriyle ilgili konuları öğrenin. Ara'ya dokunduğunuzda bir kelime ve içinde bulunduğu bağlamı oluşturan metin Google Arama'ya gönderilerek ilgili tanımlar, resimler, arama sonuçları ve diğer ayrıntılar sonuç olarak döndürülür. - -Arama teriminizi düzeltmek için uzun basarak terimi seçin. Aramanızı ayrıntılı hale getirmek için paneli tümüyle yukarı kaydırın ve arama kutusuna dokunun.</translation> <translation id="3616113530831147358">Ses</translation> <translation id="3620176948598597475">Sıfırlama işlemi, ziyaret edilen sitelerin listesi de dahil olmak üzere Veri Tasarrufu geçmişini siler.</translation> <translation id="3632295766818638029">Şifreyi göster</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Veri Tasarrufu sıfırlansın mı?</translation> <translation id="3714981814255182093">Bulma Çubuğu'nu açar</translation> <translation id="3716182511346448902">Bu sayfa, bellekte çok fazla yer kapladığından Chrome tarafından duraklatıldı.</translation> -<translation id="3738139272394829648">Dokun ve Ara</translation> <translation id="3739899004075612870"><ph name="PRODUCT_NAME" /> üzerinde yer işareti koyuldu</translation> <translation id="3744111309925758534">Diğer uygulamalar <ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">Arka plan senkronizasyonu</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Sayfa tahminlerini kullan</translation> <translation id="4412992751769744546">Üçüncü taraf çerezlere izin ver</translation> <translation id="4432792777822557199"><ph name="SOURCE_LANGUAGE" /> dilindeki sayfalar artık <ph name="TARGET_LANGUAGE" /> diline çevrilecek</translation> +<translation id="4434045419905280838">Pop-up'lar ve yönlendirmeler</translation> <translation id="4445444302979002552">Arama terimleri ve web siteleri önermek için tahmin hizmetlerini kullan</translation> <translation id="4452411734226507615"><ph name="TAB_TITLE" /> sekmesini kapat</translation> <translation id="4452548195519783679">Yer işareti <ph name="FOLDER_NAME" /> klasörüne eklendi</translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Açıklama:</translation> <translation id="5777170031995031090">Google'ın Arama, reklamlar ve diğer Google hizmetlerini kişiselleştirmek için tarama geçmişinizi nasıl kullanacağını kontrol edin.</translation> <translation id="5779929835642192302">Öneri mevcut</translation> +<translation id="5793665092639000975"><ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /> kullanılıyor</translation> <translation id="5804241973901381774">İzinler</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# saat önce}other{# saat önce}}</translation> <translation id="5817918615728894473">Eşle</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Site, araya giren reklamlar gösterme eğiliminde olduğunda engelle (önerilen)</translation> <translation id="6560414384669816528">Sogou ile arama</translation> <translation id="6566259936974865419">Chrome <ph name="GIGABYTES" /> GB tasarruf sağladı</translation> +<translation id="6573096386450695060">Her zaman izin ver</translation> <translation id="6573431926118603307">Diğer cihazlarınızda Chrome ile açtığınız sekmeler burada görünür.</translation> <translation id="6575643671698722332">Sıfırlanamadı. Cihazınızın çevrimiçi olduğundan emin olun ve tekrar deneyin.</translation> <translation id="6583199322650523874">Mevcut sayfaya yer işareti koyar</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Şununla senkronize et</translation> <translation id="7034608350006174882">Google Pay'i kullanan kartlar ve adresler</translation> <translation id="7053983685419859001">Engelle</translation> +<translation id="7055152154916055070">Yönlendirme engellendi:</translation> <translation id="7062545763355031412">Kabul et ve hesabı değiştir</translation> <translation id="7063006564040364415">Senkronizasyon sunucusuna bağlanılamadı.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{1 öğe seçildi}other{# öğe seçildi}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Geçmişi ve adres çubuğundaki otomatik tamamlamaları temizler. Google Hesabınızın <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> adresinde başka biçimlerde tarama geçmişi olabilir.</translation> <translation id="7128222689758636196">Geçerli arama motoruna izin verin</translation> <translation id="7138678301420049075">Diğer</translation> +<translation id="7141896414559753902">Sitelerin pop-up göstermesini ve yönlendirme yapmasını engelle (önerilir)</translation> <translation id="7144878232160441200">Yeniden Dene</translation> <translation id="7149893636342594995">Son 24 saat</translation> <translation id="7177466738963138057">Bunu daha sonra Ayarlar'da değiştirebilirsiniz</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">İlgili sayfalar öner</translation> <translation id="8116925261070264013">Ses kapatıldı</translation> <translation id="813082847718468539">Site bilgilerini görüntüle</translation> -<translation id="8137558756159375272">Dokun ve Ara, seçilen kelimeyi ve geçerli sayfayı Google Arama'ya bağlam olarak gönderir. Bu özelliği <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'da kapatabilirsiniz.</translation> <translation id="8168435359814927499">İçerik</translation> <translation id="8186512483418048923"><ph name="FILES" /> dosya kaldı</translation> <translation id="8190358571722158785">1 gün kaldı</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Ana Sayfa</translation> <translation id="932599481871055447">Verileri kaydedin ve daha hızlı göz atın</translation> <translation id="938850635132480979">Hata: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">SD kartta yeterli alan yok</translation> <translation id="945522503751344254">Geri bildirim gönder</translation> <translation id="945632385593298557">Mikrofonunuza erişim</translation> <translation id="951339005376969845">Mevcut veriler silinir. İlgili verileri tekrar <ph name="FROM_ACCOUNT" /> hesabına geçerek alabilirsiniz.</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 32db1b77..386e6723 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Керування повноекранним режимом</translation> <translation id="2038563949887743358">Увімкнути опцію "Запитувати версію сайту для комп’ютера"</translation> <translation id="2045104531052923016"><ph name="GIGABYTES" /> ГБ використовується іншими додатками</translation> +<translation id="2063713494490388661">Торкніться, щоб шукати</translation> <translation id="2079545284768500474">Відмінити</translation> <translation id="2082238445998314030">Результат <ph name="RESULT_NUMBER" /> з <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Щоб отримувати персоналізовані пропозиції від Google, увійдіть в обліковий запис Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Очищує історію на всіх пристроях, на яких ви ввійшли в обліковий запис. У вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> можуть бути інші форми історії веб-перегляду.</translation> <translation id="3600792891314830896">Вимкнути звук на сайтах, які відтворюють його</translation> <translation id="360207483134687714">Допоможіть покращити віртуальну реальність у Chrome</translation> -<translation id="360480449234699036">Дізнавайтеся більше про теми на веб-сайтах, не залишаючи сторінку. Функція пошуку дотиком надсилає слово та його контекст у Пошук Google і повертає визначення, зображення, результати пошуку й інші дані. - -Щоб змінити пошуковий термін, натисніть і утримуйте його. Щоб уточнити пошуковий запит, пересуньте панель угору та торкніться вікна пошуку.</translation> <translation id="3616113530831147358">Звук</translation> <translation id="3620176948598597475">Буде скинуто історію функції Заощадження трафіку, зокрема список відвіданих сайтів.</translation> <translation id="3632295766818638029">Показати пароль</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Скинути дані Заощадження трафіку?</translation> <translation id="3714981814255182093">Відкрити рядок пошуку</translation> <translation id="3716182511346448902">Ця сторінка займає велику кількість пам’яті, тому Chrome призупинив її роботу.</translation> -<translation id="3738139272394829648">Пошук дотиком</translation> <translation id="3739899004075612870">Створено закладку в продукті <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534"><ph name="MEGABYTES" /> МБ використовується іншими додатками</translation> <translation id="3744111561329211289">Фонова синхронізація</translation> @@ -352,6 +349,7 @@ <translation id="4409723563706114196">Використання передбачень сторінки</translation> <translation id="4412992751769744546">Дозволити сторонні файли cookie</translation> <translation id="4432792777822557199">Надалі сторінки цією мовою (<ph name="SOURCE_LANGUAGE" />) перекладатимуться такою мовою: <ph name="TARGET_LANGUAGE" /></translation> +<translation id="4434045419905280838">Спливаючі вікна й переспрямуван.</translation> <translation id="4445444302979002552">Пропонувати пошукові терміни та веб-сайти за допомогою служб для показу пропозицій</translation> <translation id="4452411734226507615">Закрити вкладку <ph name="TAB_TITLE" /></translation> <translation id="4452548195519783679">Закладку збережено в папці "<ph name="FOLDER_NAME" />"</translation> @@ -519,6 +517,7 @@ <translation id="5765780083710877561">Опис:</translation> <translation id="5777170031995031090">Укажіть, як Google має використовувати вашу історію веб-перегляду, щоб персоналізувати Пошук, оголошення й інші служби Google.</translation> <translation id="5779929835642192302">Є пропозиції</translation> +<translation id="5793665092639000975">Використано <ph name="SPACE_USED" /> з <ph name="SPACE_AVAILABLE" /></translation> <translation id="5804241973901381774">Дозволи</translation> <translation id="5809361687334836369">{HOURS,plural, =1{# годину тому}one{# годину тому}few{# години тому}many{# годин тому}other{# години тому}}</translation> <translation id="5817918615728894473">Підключити</translation> @@ -603,6 +602,7 @@ <translation id="6556716549745717622">Блокувати, якщо сайт часто показує нав’язливі оголошення (рекомендовано)</translation> <translation id="6560414384669816528">Шукати за допомогою Sogou</translation> <translation id="6566259936974865419">Chrome заощадив <ph name="GIGABYTES" /> ГБ</translation> +<translation id="6573096386450695060">Завжди дозволяти</translation> <translation id="6573431926118603307">Тут відображатимуться вкладки, відкриті в Chrome на інших ваших пристроях.</translation> <translation id="6575643671698722332">Помилка скидання. Перевірте, чи пристрій онлайн і спробуйте ще.</translation> <translation id="6583199322650523874">Зробити закладку поточної сторінки</translation> @@ -662,6 +662,7 @@ <translation id="7031882061095297553">Синхронізувати</translation> <translation id="7034608350006174882">Картки й адреси, пов’язані з Google Pay</translation> <translation id="7053983685419859001">Блокувати</translation> +<translation id="7055152154916055070">Переспрямування заблоковано:</translation> <translation id="7062545763355031412">Прийняти та перейти в інший обліковий запис</translation> <translation id="7063006564040364415">Не вдалося з’єднатись із сервером синхронізації.</translation> <translation id="7066151586745993502">{NUM_SELECTED,plural, =1{Вибрано 1}one{Вибрано #}few{Вибрано #}many{Вибрано #}other{Вибрано #}}</translation> @@ -670,6 +671,7 @@ <translation id="7121362699166175603">Очищує історію й автозавершення в адресному рядку. У вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> можуть бути інші форми історії веб-перегляду.</translation> <translation id="7128222689758636196">Дозволити поточній пошуковій системі</translation> <translation id="7138678301420049075">Інше</translation> +<translation id="7141896414559753902">Блокувати спливаючі вікна та переспрямування на сайтах (рекомендовано)</translation> <translation id="7144878232160441200">Повторити спробу</translation> <translation id="7149893636342594995">Останні 24 години</translation> <translation id="7177466738963138057">Це можна змінити пізніше в налаштуваннях</translation> @@ -779,7 +781,6 @@ <translation id="8105951947646329362">Пропонувати схожі сторінки</translation> <translation id="8116925261070264013">Звук вимкнено</translation> <translation id="813082847718468539">Перегляд інформації про сайт</translation> -<translation id="8137558756159375272">Функція пошуку дотиком надсилає слово та поточну сторінку як додаткові дані в Пошук Google. Її можна вимкнути в <ph name="BEGIN_LINK" />налаштуваннях<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Вміст</translation> <translation id="8186512483418048923">Залишилося файлів: <ph name="FILES" /></translation> <translation id="8190358571722158785">Залишився 1 день</translation> @@ -887,6 +888,7 @@ <translation id="932327136139879170">Домашня сторінка</translation> <translation id="932599481871055447">Заощаджуйте трафік і відкривайте веб-сторінки швидше</translation> <translation id="938850635132480979">Помилка: <ph name="ERROR_CODE" /></translation> +<translation id="945360730947989880">На карті SD недостатньо місця</translation> <translation id="945522503751344254">Надіслати відгук</translation> <translation id="945632385593298557">Доступ до мікрофона</translation> <translation id="951339005376969845">Видалити наявні дані. Щоб відновити їх, поверніться в обліковий запис <ph name="FROM_ACCOUNT" />.</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 a9cb2aea..69e024d 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">Kiểm soát trang toàn màn hình</translation> <translation id="2038563949887743358">Bật Yêu cầu trang web cho máy tính</translation> <translation id="2045104531052923016">Các ứng dụng khác chiếm <ph name="GIGABYTES" /> GB</translation> +<translation id="2063713494490388661">Nhấn để tìm kiếm</translation> <translation id="2079545284768500474">Hoàn tác</translation> <translation id="2082238445998314030">Kết quả <ph name="RESULT_NUMBER" /> trong tổng số <ph name="TOTAL_RESULTS" /></translation> <translation id="2086652334978798447">Để nhận nội dung được cá nhân hóa do Google đề xuất, hãy đăng nhập vào Chrome.</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">Xóa lịch sử khỏi tất cả các thiết bị đã đăng nhập. Tài khoản Google của bạn có thể có các dạng lịch sử duyệt web khác tại <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="3600792891314830896">Tắt tiếng trên các trang web phát âm thanh</translation> <translation id="360207483134687714">Giúp nâng cao trải nghiệm VR trong Chrome</translation> -<translation id="360480449234699036">Tìm hiểu về các chủ đề trên trang web mà không rời khỏi trang. Chạm để Tìm kiếm gửi một từ và ngữ cảnh xung quanh từ đó tới Google Tìm kiếm, trả về định nghĩa, hình ảnh, kết quả tìm kiếm và các chi tiết khác. - -Để điều chỉnh cụm từ tìm kiếm của bạn, nhấn và giữ để chọn. Để tinh chỉnh tìm kiếm của bạn, trượt bảng điều khiển theo mọi hướng lên trên rồi chạm vào hộp tìm kiếm.</translation> <translation id="3616113530831147358">Âm thanh</translation> <translation id="3620176948598597475">Việc đặt lại sẽ xóa lịch sử của Trình tiết kiệm dữ liệu, bao gồm cả danh sách các trang web đã truy cập.</translation> <translation id="3632295766818638029">Hiển thị mật khẩu</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">Đặt lại Trình tiết kiệm dữ liệu?</translation> <translation id="3714981814255182093">Mở thanh Tìm kiếm</translation> <translation id="3716182511346448902">Chrome đã tạm dừng trang này vì trang dùng quá nhiều bộ nhớ.</translation> -<translation id="3738139272394829648">Chạm để tìm kiếm</translation> <translation id="3739899004075612870">Đã đánh dấu trang trong <ph name="PRODUCT_NAME" /></translation> <translation id="3744111309925758534">Các ứng dụng khác chiếm <ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">Đồng bộ hóa dưới nền</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">Đề xuất các trang liên quan</translation> <translation id="8116925261070264013">Đã ẩn</translation> <translation id="813082847718468539">Xem thông tin trang web</translation> -<translation id="8137558756159375272">Chạm để tìm kiếm sẽ gửi từ đã chọn và trang hiện tại làm ngữ cảnh cho Google Tìm kiếm. Bạn có thể tắt tính năng này trong <ph name="BEGIN_LINK" />Cài đặt<ph name="END_LINK" />.</translation> <translation id="8168435359814927499">Nội dung</translation> <translation id="8186512483418048923">Còn lại <ph name="FILES" /> tệp</translation> <translation id="8190358571722158785">Còn 1 ngày</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 c55fb89a..5ffeb98 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
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">全屏网站控件</translation> <translation id="2038563949887743358">开启“请求切换到桌面版网站”</translation> <translation id="2045104531052923016">其他应用已占用的空间:<ph name="GIGABYTES" /> GB</translation> +<translation id="2063713494490388661">点按搜索</translation> <translation id="2079545284768500474">撤消</translation> <translation id="2082238445998314030">第 <ph name="RESULT_NUMBER" /> 条结果,共 <ph name="TOTAL_RESULTS" /> 条</translation> <translation id="2086652334978798447">要获取 Google 推荐的个性化内容,请登录 Chrome。</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">清除所有登录过的设备上的历史记录。您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录。</translation> <translation id="3600792891314830896">将播放声音的网站静音</translation> <translation id="360207483134687714">帮助我们改进 Chrome 中的虚拟现实体验</translation> -<translation id="360480449234699036">无需离开所在页面,即可了解网站上的主题。“触摸搜索”功能会将被触摸的字词及上下文一起发送至 Google 搜索,后者将返回相应的定义、图片、搜索结果及其他详细信息。 - -要调整搜索字词,请长按将其选中。要缩小搜索范围,请将面板向上滑动到顶部,然后触摸搜索框。</translation> <translation id="3616113530831147358">音频</translation> <translation id="3620176948598597475">这项重置操作会清空流量节省程序的历史记录,包括曾访问过的网站的列表。</translation> <translation id="3632295766818638029">显示密码</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">重置流量节省程序?</translation> <translation id="3714981814255182093">打开查找栏</translation> <translation id="3716182511346448902">此网页占用的内存过多,因此 Chrome 已将其暂停。</translation> -<translation id="3738139272394829648">触摸搜索</translation> <translation id="3739899004075612870">已在 <ph name="PRODUCT_NAME" /> 中添加书签</translation> <translation id="3744111309925758534">其他应用已占用的空间:<ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">后台同步</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">提供相关页面建议</translation> <translation id="8116925261070264013">已静音的网站</translation> <translation id="813082847718468539">查看网站信息</translation> -<translation id="8137558756159375272">“触摸搜索”会将所选字词和当前页面(作为上下文)一起发送给 Google 搜索。您可以在<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />中停用此功能。</translation> <translation id="8168435359814927499">内容</translation> <translation id="8186512483418048923">还剩 <ph name="FILES" /> 个文件</translation> <translation id="8190358571722158785">还剩 1 天</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 59db36e8..f6c65db2 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
@@ -115,6 +115,7 @@ <translation id="2021896219286479412">全螢幕網站控制</translation> <translation id="2038563949887743358">開啟「要求電腦版網站」</translation> <translation id="2045104531052923016">其他應用程式佔 <ph name="GIGABYTES" /> GB</translation> +<translation id="2063713494490388661">輕觸搜尋</translation> <translation id="2079545284768500474">復原</translation> <translation id="2082238445998314030">第 <ph name="RESULT_NUMBER" /> 個結果,共 <ph name="TOTAL_RESULTS" /> 個</translation> <translation id="2086652334978798447">如要取得個人化的 Google 推薦內容,請登入 Chrome。</translation> @@ -271,9 +272,6 @@ <translation id="3599863153486145794">將歷史記錄從所有登入帳戶的裝置上清除。你的 Google 帳戶可能會儲存其他形式的瀏覽記錄,請參閱 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />。</translation> <translation id="3600792891314830896">將播放音訊的網站設為靜音</translation> <translation id="360207483134687714">協助我們改善 Chrome 的 VR 體驗</translation> -<translation id="360480449234699036">不需離開網頁即可瞭解網站上的主題。「輕觸搜尋」可將特定字詞及其上下文內容傳送至 Google 搜尋,並傳回字詞定義、相關圖片、搜尋結果和其他詳細資料。 - -如要調整搜尋字詞,直接長按即可選取。如要修正搜尋,請將面板滑動到最上方,再輕觸搜尋框。</translation> <translation id="3616113530831147358">音訊</translation> <translation id="3620176948598597475">重設會清除 Data Saver 的記錄,包含造訪過的網站清單。</translation> <translation id="3632295766818638029">取消密碼遮罩</translation> @@ -285,7 +283,6 @@ <translation id="3712575778697986964">確定要重設 Data Saver 嗎?</translation> <translation id="3714981814255182093">開啟搜尋列</translation> <translation id="3716182511346448902">這個網頁使用了過多記憶體,因此遭到 Chrome 暫停。</translation> -<translation id="3738139272394829648">輕觸搜尋</translation> <translation id="3739899004075612870">已加入 <ph name="PRODUCT_NAME" /> 書籤</translation> <translation id="3744111309925758534">其他應用程式佔 <ph name="MEGABYTES" /> MB</translation> <translation id="3744111561329211289">背景同步處理</translation> @@ -441,7 +438,7 @@ <translation id="5161254044473106830">請輸入標題</translation> <translation id="5168917394043976756">開啟導覽匣</translation> <translation id="5184329579814168207">在 Chrome 中開啟</translation> -<translation id="5199929503336119739">Work 設定檔</translation> +<translation id="5199929503336119739">工作資料夾</translation> <translation id="5210286577605176222">跳至上一個分頁</translation> <translation id="5210365745912300556">關閉分頁</translation> <translation id="5222676887888702881">登出</translation> @@ -779,7 +776,6 @@ <translation id="8105951947646329362">建議相關的網頁</translation> <translation id="8116925261070264013">已設為靜音</translation> <translation id="813082847718468539">查看網站資訊</translation> -<translation id="8137558756159375272">「輕觸搜尋」會將選取的字詞和目前所在的網頁 (以便建立關聯) 傳送給 Google 搜尋。您可以在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中關閉這項功能。</translation> <translation id="8168435359814927499">內容</translation> <translation id="8186512483418048923">還剩 <ph name="FILES" /> 個檔案</translation> <translation id="8190358571722158785">還剩 1 天</translation>
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmTest.java index c58ab5b..6937999 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/UkmTest.java
@@ -16,6 +16,7 @@ import org.chromium.base.ThreadUtils; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.RetryOnFailure; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.browsing_data.BrowsingDataType; @@ -95,7 +96,7 @@ @Test @SmallTest - @RetryOnFailure + @DisabledTest // TODO(https://crbug.com/842999): Reenable after unflaking. public void testRegularPlusIncognitoCheck() throws Exception { // Keep in sync with UkmBrowserTest.RegularPlusIncognitoCheck in // chrome/browser/metrics/ukm_browsertest.cc.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java index 5bf4a32..6c3b027 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java
@@ -322,10 +322,17 @@ boolean shared = OfflinePageUtils.maybeShareOfflinePage(mActivityTestRule.getActivity(), mActivityTestRule.getActivity().getActivityTab(), shareCallback); - // The attempt to share a temporary page should fall back to sharing the URL. - Assert.assertFalse(shared); + // The attempt to share a temporary page should share a content URL. + Assert.assertTrue(shared); } }); + // Wait for share callback to get called. + Assert.assertTrue(semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)); + // Assert that URI is what we expected. + String foundUri = shareCallback.getSharedUri(); + Uri uri = Uri.parse(foundUri); + String uriPath = uri.getPath(); + Assert.assertEquals(TEST_PAGE, uriPath); } // Checks on the UI thread if an offline path corresponds to a sharable file. @@ -340,7 +347,7 @@ mActivityTestRule.getActivity().getActivityTab().getProfile()); boolean isSharable = OfflinePageUtils.isOfflinePageShareable( - offlinePageBridge, privateOfflinePageItem, uriPath); + offlinePageBridge, privateOfflinePageItem, Uri.parse(uriPath)); Assert.assertEquals(sharable, isSharable); } }); @@ -381,13 +388,13 @@ // Check that pages with temporary namespaces are not sharable. checkIfOfflinePageIsSharable( - fullPrivatePath, SHARED_URI, OfflinePageBridge.BOOKMARK_NAMESPACE, false); + fullPrivatePath, SHARED_URI, OfflinePageBridge.BOOKMARK_NAMESPACE, true); checkIfOfflinePageIsSharable( - fullPrivatePath, SHARED_URI, OfflinePageBridge.LAST_N_NAMESPACE, false); + fullPrivatePath, SHARED_URI, OfflinePageBridge.LAST_N_NAMESPACE, true); checkIfOfflinePageIsSharable( - fullPrivatePath, SHARED_URI, OfflinePageBridge.CCT_NAMESPACE, false); + fullPrivatePath, SHARED_URI, OfflinePageBridge.CCT_NAMESPACE, true); checkIfOfflinePageIsSharable( - fullPrivatePath, SHARED_URI, OfflinePageBridge.SUGGESTED_ARTICLES_NAMESPACE, false); + fullPrivatePath, SHARED_URI, OfflinePageBridge.SUGGESTED_ARTICLES_NAMESPACE, true); } @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/TrustedWebActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/TrustedWebActivityTest.java index 10b22cfc..1123ef0 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/TrustedWebActivityTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/TrustedWebActivityTest.java
@@ -27,6 +27,7 @@ import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.Feature; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.ShortcutHelper; @@ -83,6 +84,7 @@ @Test @SmallTest @Feature({"Webapps"}) + @DisabledTest // TODO(https://crbug.com/842929): Re-enable after unflaking. public void testNavigationCallbacks() throws Exception { final CallbackHelper startedCallback = new CallbackHelper(); final CallbackHelper finishedCallback = new CallbackHelper();
diff --git a/chrome/app/OWNERS b/chrome/app/OWNERS index 7507607..d2e91fd0b 100644 --- a/chrome/app/OWNERS +++ b/chrome/app/OWNERS
@@ -16,7 +16,6 @@ per-file google_chrome_strings.grd=* per-file md_extensions_strings.grdp=* -per-file media_router_strings.grdp*=apacible@chromium.org per-file media_router_strings.grdp*=imcheng@chromium.org per-file media_router_strings.grdp*=mfoltz@chromium.org @@ -35,5 +34,5 @@ per-file chrome_manifest.json=set noparent per-file chrome_manifest.json=file://ipc/SECURITY_OWNERS -per-file chrome_renderer_manifest.json=set noparent -per-file chrome_renderer_manifest.json=file://ipc/SECURITY_OWNERS +per-file chrome_renderer_manifest.json=set noparent +per-file chrome_renderer_manifest.json=file://ipc/SECURITY_OWNERS
diff --git a/chrome/app/chrome_manifest.json b/chrome/app/chrome_manifest.json index 46b6f8f8..2b01bfb 100644 --- a/chrome/app/chrome_manifest.json +++ b/chrome/app/chrome_manifest.json
@@ -7,15 +7,15 @@ // This is only used in classic ash. In mus InputDeviceController comes // from mus. "input_device_controller": [ - "ui::mojom::InputDeviceController" + "ui.mojom.InputDeviceController" ], "mash:launchable": [ - "mash::mojom::Launchable" + "mash.mojom.Launchable" ], "renderer": [ - "spellcheck::mojom::SpellCheckHost", - "spellcheck::mojom::SpellCheckPanelHost", - "startup_metric_utils::mojom::StartupMetricHost" + "spellcheck.mojom.SpellCheckHost", + "spellcheck.mojom.SpellCheckPanelHost", + "startup_metric_utils.mojom.StartupMetricHost" ] }, "requires": {
diff --git a/chrome/app/chrome_renderer_manifest.json b/chrome/app/chrome_renderer_manifest.json index 4d75369..363ae4f 100644 --- a/chrome/app/chrome_renderer_manifest.json +++ b/chrome/app/chrome_renderer_manifest.json
@@ -5,8 +5,8 @@ "service_manager:connector": { "provides": { "browser": [ - "safe_browsing::mojom::PhishingModelSetter", - "spellcheck::mojom::SpellChecker" + "safe_browsing.mojom.PhishingModelSetter", + "spellcheck.mojom.SpellChecker" ] }, "requires": {
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 744d332..46fe1e4 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -3459,9 +3459,6 @@ <message name="IDS_EXTENSION_PROMPT_CAN_ACCESS" desc="Second line in the content area of the extension or app permissions view dialog. Note that the exact wording is important. This should mean that the extension _can now_ access the listed privileges, because it has already been installed. This message appeared because the user must approve new permissions of the extension or app."> It can: </message> - <message name="IDS_EXTENSION_PROMPT_WITHHELD" desc="Header for withheld permissions warning on extension install."> - Warning: You've enabled the --scripts-require-action flag on this computer, which limits the capabilities of this extension. However, other devices may not support this flag or have it enabled. On these devices, this extension can also: - </message> <message name="IDS_EXTENSION_NO_SPECIAL_PERMISSIONS" desc="Shown when the app/extension requires no special permission"> Has no special permissions. </message>
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb index 7a87ed29..e3d8354 100644 --- a/chrome/app/resources/chromium_strings_am.xtb +++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">የማረጋገጫ እውቅና ማረጋገጫ አልተሳካም። እባክዎ እንደገና ወደ Chromium ይግቡ ወይም ለተጨማሪ መረጃ አስተዳዳሪዎን ያነጋግሩ። <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">የተዘመነ ለመሆን ጥቂት ብቻ ቀርቷል! ዝማኔውን ለማጠናቀቅ መሣሪያዎን ዳግም ያስጀምሩት።</translation> <translation id="5987687638152509985">ስምረትን ለመጀመር Chromiumን ያዘምኑ</translation> +<translation id="6040143037577758943">ዝጋ</translation> <translation id="6055895534982063517">አዲስ የChromium ስሪት ይገኛል፣ እና ከመቼውም በበለጠ ፈጣን ሆኗል።</translation> <translation id="6063093106622310249">በChromium ውስጥ &ክፈት</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> ወደ Chromium ታክሏል።</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb index 5fa0f19e..769ce36 100644 --- a/chrome/app/resources/chromium_strings_ar.xtb +++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">لقد تعذّرت شهادة المصادقة. يُرجى تسجيل الدخول إلى Chromium مرة أخرى أو الاتصال بمشرفك لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">أوشك التحديث على الانتهاء! أعِد تشغيل الجهاز لإنهاء التحديث.</translation> <translation id="5987687638152509985">تحديث Chromium لبدء المزامنة</translation> +<translation id="6040143037577758943">إغلاق</translation> <translation id="6055895534982063517">يتوفر إصدار جديد من Chromium، وهو أسرع بكثير من ذي قبل.</translation> <translation id="6063093106622310249">&فتح في Chromium</translation> <translation id="6072279588547424923">تمت إضافة <ph name="EXTENSION_NAME" /> إلى Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb index c367093..7f2251b60 100644 --- a/chrome/app/resources/chromium_strings_bg.xtb +++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">Грешка в сертификата за удостоверяване. Моля, влезте отново в Chromium или се свържете с администратора си за повече информация. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Актуализирането почти завърши! Остава само да рестартирате устройството си.</translation> <translation id="5987687638152509985">Актуализирайте Chromium, за да стартира синхронизирането</translation> +<translation id="6040143037577758943">Затваряне</translation> <translation id="6055895534982063517">Налице е нова версия на Chromium, която е по-бърза от всякога.</translation> <translation id="6063093106622310249">&Отваряне в Chromium</translation> <translation id="6072279588547424923">Разширението <ph name="EXTENSION_NAME" /> бе добавено към Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb index 3812d18e..01ffd79 100644 --- a/chrome/app/resources/chromium_strings_bn.xtb +++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">প্রমাণীকরণের শংসাপত্রটি কাজ করেনি। অনুগ্রহ করে আবার Google Chrome এ সাইন-ইন করুন বা আরও তথ্যের জন্য আপনার প্রশাসকের সাথে যোগাযোগ করুন। <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">প্রায় আপ-টু-ডেট হয়েছে! আপডেট শেষ করতে আপনার ডিভাইস আবার চালু করুন।</translation> <translation id="5987687638152509985">সিঙ্ক শুরু করতে Chromium আপডেট করুন</translation> +<translation id="6040143037577758943">বন্ধ</translation> <translation id="6055895534982063517">Chromium-এর একটি নতুন সংস্করণ উপলব্ধ আছে৷ এবং এটি আগের তুলনায় আরও দ্রুত৷</translation> <translation id="6063093106622310249">Chromium এ খুলুন</translation> <translation id="6072279588547424923">Chromium-এ <ph name="EXTENSION_NAME" /> যোগ করা হয়েছে</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb index 8c4c9ec..a891c4d4 100644 --- a/chrome/app/resources/chromium_strings_ca.xtb +++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">El certificat d'autenticació ha fallat. Torna a iniciar la sessió a Chromium o contacta amb l'administrador per obtenir més informació. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Gairebé heu acabat. Reinicieu el dispositiu per completar l'actualització.</translation> <translation id="5987687638152509985">Actualitza Chromium per iniciar la sincronització</translation> +<translation id="6040143037577758943">Tanca</translation> <translation id="6055895534982063517">Hi ha disponible una versió nova de Chromium, i és més ràpida que mai.</translation> <translation id="6063093106622310249">&Obre a Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> s'ha afegit a Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb index 06ba881..f91e971 100644 --- a/chrome/app/resources/chromium_strings_cs.xtb +++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Ověřovací certifikát selhal. Přihlaste se do prohlížeče Chromium znovu nebo svého administrátora požádejte o další informace. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Aktualizace je téměř hotova! Dokončíte ji restartováním zařízení.</translation> <translation id="5987687638152509985">Chcete-li zahájit synchronizaci, aktualizujte Chromium</translation> +<translation id="6040143037577758943">Zavřít</translation> <translation id="6055895534982063517">K dispozici je nová verze prohlížeče Chromium, ještě rychlejší než ty předchozí.</translation> <translation id="6063093106622310249">&Otevřít v prohlížeči Chromium</translation> <translation id="6072279588547424923">Do prohlížeče Chromium bylo přidáno rozšíření <ph name="EXTENSION_NAME" /></translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb index 2177bd7..3f4430bd 100644 --- a/chrome/app/resources/chromium_strings_da.xtb +++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Godkendelsescertifikatet slog fejl. Log ind på Chromium igen, eller kontakt din administrator for at få flere oplysninger. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Næsten opdateret. Genstart din enhed for at afslutte opdateringen.</translation> <translation id="5987687638152509985">Opdater Chromium for at starte synkronisering</translation> +<translation id="6040143037577758943">Luk</translation> <translation id="6055895534982063517">Der findes en ny version af Chromium, som er hurtigere end nogensinde før.</translation> <translation id="6063093106622310249">Åbn i Chr&omium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> er føjet til Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb index 788ef96..2565860 100644 --- a/chrome/app/resources/chromium_strings_de.xtb +++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Authentifizierungszertifikat fehlgeschlagen. Bitte melden Sie sich wieder bei Chromium an oder wenden Sie sich an Ihren Administrator, um weitere Informationen zu erhalten. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Fast fertig! Starten Sie Ihr Gerät neu, um die Aktualisierung abzuschließen.</translation> <translation id="5987687638152509985">Aktualisieren Sie Chromium, um die Synchronisierung zu starten</translation> +<translation id="6040143037577758943">Schließen</translation> <translation id="6055895534982063517">Es gibt eine neue Version von Chromium, die schneller ist als je zuvor.</translation> <translation id="6063093106622310249">In Chr&omium öffnen</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> wurde zu Chromium hinzugefügt</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb index 46f6fff..1a97232 100644 --- a/chrome/app/resources/chromium_strings_el.xtb +++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Το πιστοποιητικό ελέγχου ταυτότητας απέτυχε. Συνδεθείτε ξανά στο Chromium ή επικοινωνήστε με τον διαχειριστή για περισσότερες πληροφορίες. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Η ενημέρωση σχεδόν ολοκληρώθηκε! Επανεκκινήστε τη συσκευή σας για να ολοκληρωθεί η ενημέρωση.</translation> <translation id="5987687638152509985">Για να ξεκινήσει ο συγχρονισμός, ενημερώστε το Chromium</translation> +<translation id="6040143037577758943">Κλείσιμο</translation> <translation id="6055895534982063517">Υπάρχει μια νέα έκδοση του Chromium και είναι ταχύτερη από ποτέ.</translation> <translation id="6063093106622310249">&Άνοιγμα στο Chromium</translation> <translation id="6072279588547424923">Η επέκταση <ph name="EXTENSION_NAME" /> έχει προστεθεί στο Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb index 1b53ea51..7e4a67f 100644 --- a/chrome/app/resources/chromium_strings_en-GB.xtb +++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Authentication certificate failed. Please sign in to Chromium again or contact your administrator for more information. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Nearly up to date! Restart your device to finish updating.</translation> <translation id="5987687638152509985">Update Chromium to start sync</translation> +<translation id="6040143037577758943">Close</translation> <translation id="6055895534982063517">There's a new version of Google Chrome available and it's faster than ever.</translation> <translation id="6063093106622310249">&Open in Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> has been added to Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb index 330b348a..a8267eb 100644 --- a/chrome/app/resources/chromium_strings_es-419.xtb +++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">Se produjo un error en el certificado de autenticación. Vuelve a acceder a tu cuenta en Chromium o comunícate con tu administrador para obtener más información. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">El dispositivo está casi actualizado. Reinícialo para completar la actualización.</translation> <translation id="5987687638152509985">Actualiza Chromium para iniciar la sincronización</translation> +<translation id="6040143037577758943">Cerrar</translation> <translation id="6055895534982063517">Hay una nueva versión de Chromium disponible, y es más rápida que nunca.</translation> <translation id="6063093106622310249">&Abrir en Chromium</translation> <translation id="6072279588547424923">Se agregó <ph name="EXTENSION_NAME" /> a Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb index e49bbe7..7574042 100644 --- a/chrome/app/resources/chromium_strings_es.xtb +++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">No se ha podido autenticar el certificado. Vuelve a iniciar sesión en Chromium o ponte en contacto con tu administrador para obtener más información. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">El dispositivo está casi actualizado. Reinícialo para completar la actualización.</translation> <translation id="5987687638152509985">Actualiza Chromium para iniciar la sincronización</translation> +<translation id="6040143037577758943">Cerrar</translation> <translation id="6055895534982063517">Hay una nueva versión de Chromium disponible que funciona a una velocidad sin precedentes.</translation> <translation id="6063093106622310249">&Abrir en Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> se ha añadido a Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb index 11dddba..10864e85 100644 --- a/chrome/app/resources/chromium_strings_et.xtb +++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Autentimissertifikaat ebaõnnestus. Logige Chromiumisse uuesti sisse või võtke lisateabe saamiseks ühendust administraatoriga. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Seade on peaaegu ajakohane. Värskenduse lõpuleviimiseks taaskäivitage seade.</translation> <translation id="5987687638152509985">Sünkroonimise alustamiseks värskendage Chromiumi</translation> +<translation id="6040143037577758943">Sulge</translation> <translation id="6055895534982063517">Saadaval on Chromiumi uus versioon ja see on kiirem kui kunagi varem.</translation> <translation id="6063093106622310249">&Ava Chromiumis</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> on Chromiumi lisatud</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb index 1a1f537..6d6c8d1 100644 --- a/chrome/app/resources/chromium_strings_fa.xtb +++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -141,6 +141,7 @@ <translation id="5902536751647951209">گواهینامه احراز هویت تأیید نشد. لطفاً دوباره به سیستم Chromium وارد شوید یا برای دریافت اطلاعات بیشتر با سرپرستتان تماس بگیرید. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">تقریباً بهروز شده است! برای تمام کردن بهروزرسانی، دستگاهتان را دوباره راهاندازی کنید.</translation> <translation id="5987687638152509985">بهروزرسانی Chromium برای شروع همگامسازی</translation> +<translation id="6040143037577758943">بستن</translation> <translation id="6055895534982063517">نسخه جدیدی از Chromium وجود دارد که سریعتر از همیشه است.</translation> <translation id="6063093106622310249">&باز کردن در Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> به Chromium اضافه شد</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb index 4429a17..530030f 100644 --- a/chrome/app/resources/chromium_strings_fi.xtb +++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Todennusvarmenne epäonnistui. Kirjaudu uudelleen Chromiumiin tai ota yhteyttä järjestelmänvalvojaan. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Melkein ajan tasalla. Viimeistele päivitys käynnistämällä laite uudelleen.</translation> <translation id="5987687638152509985">Aloita synkronointi päivittämällä Chromium.</translation> +<translation id="6040143037577758943">Sulje</translation> <translation id="6055895534982063517">Chromiumista on saatavilla uusi versio, joka on entistäkin nopeampi.</translation> <translation id="6063093106622310249">&Avaa Chromiumissa</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> on lisätty Chromiumiin</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb index 0f6c2cd..8ba8764c 100644 --- a/chrome/app/resources/chromium_strings_fil.xtb +++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Hindi nagtagumpay ang certificate ng pag-authenticate. Mag-sign in muli sa Chromium o makipag-ugnayan sa iyong administrator para sa higit pang impormasyon. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Halos napapanahon na! I-restart ang iyong device upang tapusin ang pag-a-update.</translation> <translation id="5987687638152509985">I-update ang Chromium upang simulan ang pag-sync</translation> +<translation id="6040143037577758943">Isara</translation> <translation id="6055895534982063517">May available na bagong bersyon ng Chromium, at mas mabilis ito kaysa sa dati.</translation> <translation id="6063093106622310249">&Buksan sa Chromium</translation> <translation id="6072279588547424923">Naidagdag na ang <ph name="EXTENSION_NAME" /> sa Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb index dde5b2c..09ad891 100644 --- a/chrome/app/resources/chromium_strings_fr.xtb +++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -143,6 +143,7 @@ <translation id="5902536751647951209">Échec du certificat d'authentification. Pour en savoir plus, connectez-vous de nouveau à Chromium ou contactez votre administrateur. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Mise à jour presque terminée. Pour la finaliser, veuillez redémarrer votre appareil.</translation> <translation id="5987687638152509985">Mettre à jour Chromium pour lancer la synchronisation</translation> +<translation id="6040143037577758943">Fermer</translation> <translation id="6055895534982063517">Une nouvelle version de Chromium encore plus rapide est disponible.</translation> <translation id="6063093106622310249">&Ouvrir dans Chromium</translation> <translation id="6072279588547424923">L'extension <ph name="EXTENSION_NAME" /> a été ajoutée à Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb index 283f309..58d43b98 100644 --- a/chrome/app/resources/chromium_strings_gu.xtb +++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">પ્રમાણીકરણ પ્રમાણપત્ર નિષ્ફળ થયું. કૃપા કરીને ફરીથી Chromiumમાં સાઇન ઇન કરો અથવા વધુ માહિતી માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">અપ ટૂ ડેટ થવામાં છે! અપડેટ કરવાનું સમાપ્ત કરવા માટે તમારા ઉપકરણને પુનઃપ્રારંભ કરો.</translation> <translation id="5987687638152509985">સમન્વયનને પ્રારંભ કરવા માટે Chromium ને અપડેટ કરો</translation> +<translation id="6040143037577758943">બંધ કરો</translation> <translation id="6055895534982063517">Chromium નું એક નવું સંસ્કરણ ઉપલબ્ધ છે અને તે પહેલાં કરતાંએ વધુ ઝડપી છે.</translation> <translation id="6063093106622310249">અને Chromiumમાં ખોલો</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" />ને Chromiumમાં ઉમેરવામાં આવ્યું છે</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb index c45141b..dd310d8 100644 --- a/chrome/app/resources/chromium_strings_hi.xtb +++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">प्रमाणीकरण प्रमाणपत्र विफल रहा. कृपया क्रोमियम में फिर से प्रवेश करें या अधिक जानकारी के लिए अपने व्यवस्थापक से संपर्क करें. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">लगभग अप टू डेट हो गया है! अपडेट करना पूरा करने के लिए अपना डिवाइस पुन: प्रारंभ करें.</translation> <translation id="5987687638152509985">सिंक शुरू करने के लिए क्रोमियम अपडेट करें</translation> +<translation id="6040143037577758943">बंद करें</translation> <translation id="6055895534982063517">क्रोमियम का एक नया वर्शन उपलब्ध है और यह पहले से अधिक तेज़ है.</translation> <translation id="6063093106622310249">&क्रोमियम में खोलें</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> को क्रोमियम में जोड़ा गया</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb index 41226bd..c08fdeb5 100644 --- a/chrome/app/resources/chromium_strings_hr.xtb +++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Certifikat za autentifikaciju nije uspio. Ponovo se prijavite u Chromium ili se obratite administratoru za više informacija. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Ažuriranje će uskoro biti gotovo. Za dovršetak ponovo pokrenite uređaj.</translation> <translation id="5987687638152509985">Ažurirajte Chromium da bi se pokrenula sinkronizacija</translation> +<translation id="6040143037577758943">Zatvori</translation> <translation id="6055895534982063517">Dostupna je nova verzija preglednika Chromium, brža no ikad.</translation> <translation id="6063093106622310249">&Otvori u Chromiumu</translation> <translation id="6072279588547424923">Proširenje <ph name="EXTENSION_NAME" /> dodano je u Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb index b6b98fdc..f6c50a2 100644 --- a/chrome/app/resources/chromium_strings_hu.xtb +++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">A hitelesítési tanúsítvány nem használható. Jelentkezzen be újra a Chromiumba, vagy kérjen további információt a rendszergazdájától. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Már majdnem naprakész! Indítsa újra az eszközt a frissítés befejezéséhez.</translation> <translation id="5987687638152509985">Frissítse a Chromiumot a szinkronizálás megkezdéséhez</translation> +<translation id="6040143037577758943">Bezárás</translation> <translation id="6055895534982063517">Elérhető a Chromium új verziója, amely minden korábbinál sokkal gyorsabb.</translation> <translation id="6063093106622310249">Megnyitás Chromiumban</translation> <translation id="6072279588547424923">A(z) <ph name="EXTENSION_NAME" /> hozzá lett adva a Chromiumhoz</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb index f00499a..c7aea66 100644 --- a/chrome/app/resources/chromium_strings_id.xtb +++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Gagal mengautentikasi sertifikat. Harap login kembali ke Chromium atau hubungi administrator untuk informasi lebih lanjut. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Hampir selesai diperbarui! Mulai ulang perangkat untuk menyelesaikan pembaruan.</translation> <translation id="5987687638152509985">Perbarui Chromium untuk memulai sinkronisasi</translation> +<translation id="6040143037577758943">Tutup</translation> <translation id="6055895534982063517">Tersedia Chromium versi baru, dan versi ini lebih cepat dari sebelumnya.</translation> <translation id="6063093106622310249">&Buka di Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> telah ditambahkan ke Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb index c56fc0f..006bda47 100644 --- a/chrome/app/resources/chromium_strings_it.xtb +++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Errore del certificato di autenticazione. Accedi di nuovo a Chromium o contatta il tuo amministratore per avere ulteriori informazioni. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Aggiornamento quasi completato. Riavvia il dispositivo per terminare l'aggiornamento.</translation> <translation id="5987687638152509985">Aggiorna Chromium per avviare la sincronizzazione</translation> +<translation id="6040143037577758943">Chiudi</translation> <translation id="6055895534982063517">È disponibile una nuova versione di Chromium con una velocità senza precedenti.</translation> <translation id="6063093106622310249">&Apri in Chromium</translation> <translation id="6072279588547424923">L'estensione <ph name="EXTENSION_NAME" /> è stata aggiunta a Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb index e27b5063..64e08a9f 100644 --- a/chrome/app/resources/chromium_strings_iw.xtb +++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">אישור האימות נכשל. עליך להיכנס שוב לחשבונך ב-Chromium או לפנות למנהל המערכת שלך לקבלת מידע נוסף. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">העדכון כמעט הושלם! הפעל מחדש את המכשיר כדי לסיים את העדכון.</translation> <translation id="5987687638152509985">עדכן את Chromium כדי להתחיל את הסנכרון</translation> +<translation id="6040143037577758943">סגור</translation> <translation id="6055895534982063517">גרסה חדשה של Chromium זמינה, והיא מהירה יותר מאי פעם.</translation> <translation id="6063093106622310249">&פתיחה ב-Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> נוסף ל-Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb index a0b82e6..fedf654 100644 --- a/chrome/app/resources/chromium_strings_ja.xtb +++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">認証証明書でエラーが発生しました。Chromium にログインし直すか、管理者に詳細をお問い合わせください。<ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">端末を再起動して更新を完了してください。</translation> <translation id="5987687638152509985">同期を開始するには、Chromium を更新します</translation> +<translation id="6040143037577758943">閉じる</translation> <translation id="6055895534982063517">Chromium がさらに速くなりました!最新バージョンをぜひお試しください。</translation> <translation id="6063093106622310249">Chromium で開く(&O)</translation> <translation id="6072279588547424923">「<ph name="EXTENSION_NAME" />」が Chromium に追加されました</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb index 1163928a..2ba0c8e 100644 --- a/chrome/app/resources/chromium_strings_kn.xtb +++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">ದೃಢೀಕರಣ ಪ್ರಮಾಣಪತ್ರವು ವಿಫಲವಾಗಿದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಪುನಃ Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ ಅಥವಾ ನಿಮ್ಮ ನಿರ್ವಾಹಕರ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">ಬಹುಪಾಲು ನವೀಕೃತವಾಗಿದೆ! ಅಪ್ಡೇಟ್ ಮಾಡುವುದನ್ನು ಮುಗಿಸಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation> <translation id="5987687638152509985">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು Chromium ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> +<translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation> <translation id="6055895534982063517">Chromium ನ ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ, ಮತ್ತು ಇದು ಎಂದಿಗಿಂತಲೂ ವೇಗವಾಗಿದೆ.</translation> <translation id="6063093106622310249">&Chromium ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="6072279588547424923">Chromium ಗೆ <ph name="EXTENSION_NAME" /> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb index d7a5dc4..5d709fb8 100644 --- a/chrome/app/resources/chromium_strings_ko.xtb +++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">인증서가 실패했습니다. Chromium에 다시 로그인하거나 관리자에게 문의하여 자세히 알아보세요. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">업데이트가 거의 완료되었습니다. 업데이트를 완료하려면 기기를 다시 시작하세요.</translation> <translation id="5987687638152509985">동기화를 시작하려면 Chromium을 업데이트하세요.</translation> +<translation id="6040143037577758943">닫기</translation> <translation id="6055895534982063517">이전보다 더 빨라진 Chromium 새 버전을 사용할 수 있습니다.</translation> <translation id="6063093106622310249">&Chromium에서 열기</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" />이(가) Chromium에 추가됨</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb index a838bd5..67d904f 100644 --- a/chrome/app/resources/chromium_strings_lt.xtb +++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Nepavyko autentifikuoti sertifikato. Prisijunkite prie „Chromium“ dar kartą arba susisiekite su administratoriumi, jei reikia daugiau informacijos. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Beveik įdiegta naujausia versija! Paleiskite įrenginį iš naujo, kad būtų užbaigtas naujinimas.</translation> <translation id="5987687638152509985">Atnaujinkite „Chromium“, kad galėtumėte pradėti sinchronizuoti</translation> +<translation id="6040143037577758943">Uždaryti</translation> <translation id="6055895534982063517">Pasiekiama nauja „Chromium“ versija, kuri greitesnė nei bet kada.</translation> <translation id="6063093106622310249">&Atidaryti naudojant „Chromium“</translation> <translation id="6072279588547424923">„<ph name="EXTENSION_NAME" />“ pridėtas prie „Chromium“</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb index efc0e20e..213ada1 100644 --- a/chrome/app/resources/chromium_strings_lv.xtb +++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Autentificēšanas sertifikāts nedarbojās. Lūdzu, vēlreiz pierakstieties pārlūkā Chromium vai sazinieties ar administratoru, lai iegūtu plašāku informāciju. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Atjaunināšana ir gandrīz pabeigta. Restartējiet ierīci, lai pabeigtu atjaunināšanu.</translation> <translation id="5987687638152509985">Lai sāktu sinhronizēšanu, atjauniniet Chromium.</translation> +<translation id="6040143037577758943">Aizvērt</translation> <translation id="6055895534982063517">Ir pieejama jauna Chromium versija, un tā ir ātrāka nekā jebkad agrāk.</translation> <translation id="6063093106622310249">&Atvērt pārlūkā Chromium</translation> <translation id="6072279588547424923">Paplašinājums <ph name="EXTENSION_NAME" /> ir pievienots pārlūkam Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb index 3fa5607..5ad8a40 100644 --- a/chrome/app/resources/chromium_strings_ml.xtb +++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">സർട്ടിഫിക്കറ്റ് പരിശോധിച്ചുറപ്പിക്കൽ പരാജയപ്പെട്ടു. Google Chromium-ത്തിൽ വീണ്ടും സൈൻ ഇൻ ചെയ്യുക അല്ലെങ്കിൽ കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">എകദേശം അപ്ടുഡേറ്റാണ്! അപ്ഡേറ്റുചെയ്യൽ പൂർത്തിയാക്കാൻ ഉപകരണം പുനഃരാരംഭിക്കുക.</translation> <translation id="5987687638152509985">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന് Chromium അപ്ഡേറ്റുചെയ്യുക</translation> +<translation id="6040143037577758943">അടയ്ക്കുക</translation> <translation id="6055895534982063517">Chromium-ത്തിന്റെ ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്, അത് എന്നത്തേതിലും വേഗതയേറിയതാണ്.</translation> <translation id="6063093106622310249">&Chromium-ത്തിൽ തുറക്കുക</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium-ത്തിലേക്ക് ചേർത്തു</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb index 4042f91..a788677 100644 --- a/chrome/app/resources/chromium_strings_mr.xtb +++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -143,6 +143,7 @@ <translation id="5902536751647951209">प्रमाणीकरण प्रमाणपत्र अयशस्वी झाले. कृपया Chromium मध्ये पुन्हा साइन इन करा किंवा आणखी माहितीसाठी तुमच्या प्रशासकाशी संपर्क साधा. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">अद्ययावत करणे जवळजवळ पूर्ण झाले! अपडेट करणे समाप्त करण्यासाठी आपले डिव्हाइस रीस्टार्ट करा.</translation> <translation id="5987687638152509985">संकालित करण्यासाठी Chromium अपडेट करा</translation> +<translation id="6040143037577758943">बंद करा</translation> <translation id="6055895534982063517">Chromium ची नवीन आवृत्ती उपलब्ध आहे आणि ही नेहमीपेक्षा जलद आहे.</translation> <translation id="6063093106622310249">आणि Chromium मध्ये उघडा</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium मध्ये जोडण्यात आले आहे</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb index d1fa3e7..cbb4b483 100644 --- a/chrome/app/resources/chromium_strings_ms.xtb +++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Sijil pengesahan gagal. Sila log masuk ke Chromium sekali lagi atau hubungi pentadbir anda untuk mendapatkan maklumat lanjut. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Hampir terkini! Mulakan semula peranti anda untuk menyelesaikan kemas kini.</translation> <translation id="5987687638152509985">Kemas kini Chromium untuk memulakan penyegerakan</translation> +<translation id="6040143037577758943">Tutup</translation> <translation id="6055895534982063517">Terdapat versi baharu Chromium yang lebih pantas daripada biasa tersedia.</translation> <translation id="6063093106622310249">&Buka dalam Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> telah ditambahkan pada Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb index a2d65cd..33a65d1 100644 --- a/chrome/app/resources/chromium_strings_nl.xtb +++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Verificatiecertificaat mislukt. Log opnieuw in bij Chromium of neem contact op met je beheerder voor meer informatie. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Updaten bijna voltooid. Start je apparaat opnieuw op om de update te voltooien.</translation> <translation id="5987687638152509985">Chromium updaten om de synchronisatie te starten</translation> +<translation id="6040143037577758943">Sluiten</translation> <translation id="6055895534982063517">Er is een nieuwe versie van Chromium beschikbaar, en deze is sneller dan ooit.</translation> <translation id="6063093106622310249">&Openen in Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> is toegevoegd aan Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb index cdd1240..29f27c0 100644 --- a/chrome/app/resources/chromium_strings_no.xtb +++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Autentiseringssertifikatet mislyktes. Logg på Chromium på nytt, eller kontakt administratoren din for å få mer informasjon. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Nå er oppdateringen snart ferdig! Start enheten på nytt for å fullføre oppdateringen.</translation> <translation id="5987687638152509985">Oppdater Chromium for å starte synkroniseringen</translation> +<translation id="6040143037577758943">Lukk</translation> <translation id="6055895534982063517">En nyere versjon av Chromium er tilgjengelig, og den er raskere enn noen gang.</translation> <translation id="6063093106622310249">&Åpne i Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> er lagt til i Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb index 12052ba..64a3fb92a 100644 --- a/chrome/app/resources/chromium_strings_pl.xtb +++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">Błąd certyfikatu uwierzytelniania. Jeszcze raz zaloguj się w Chromium lub skontaktuj się z administratorem, by uzyskać więcej informacji. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Już prawie gotowe. Uruchom ponownie urządzenie, by zakończyć aktualizację.</translation> <translation id="5987687638152509985">Zaktualizuj Chromium, by rozpocząć synchronizację</translation> +<translation id="6040143037577758943">Zamknij</translation> <translation id="6055895534982063517">Dostępna jest nowa, szybsza niż kiedykolwiek wersja Chromium.</translation> <translation id="6063093106622310249">&Otwórz w Chromium</translation> <translation id="6072279588547424923">Rozszerzenie <ph name="EXTENSION_NAME" /> zostało dodane do Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb index b1b7849..3a708e6 100644 --- a/chrome/app/resources/chromium_strings_pt-BR.xtb +++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">Falha no certificado de autenticação. Faça login novamente no Chromium ou entre em contato com o administrador para receber mais informações. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Atualização quase concluída. Reinicie o dispositivo para concluí-la.</translation> <translation id="5987687638152509985">Atualize o Chromium para começar a sincronizar</translation> +<translation id="6040143037577758943">Fechar</translation> <translation id="6055895534982063517">Há uma nova versão ainda mais rápida do Chromium disponível.</translation> <translation id="6063093106622310249">&Abrir no Chromium</translation> <translation id="6072279588547424923">A extensão <ph name="EXTENSION_NAME" /> foi adicionada ao Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb index d03e155..27de2d2 100644 --- a/chrome/app/resources/chromium_strings_pt-PT.xtb +++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Falha no certificado de autenticação. Inicie sessão novamente no Chromium ou contacte o gestor para mais informações. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Quase atualizado! Reinicie o dispositivo para concluir a atualização.</translation> <translation id="5987687638152509985">Atualize o Chromium para iniciar a sincronização</translation> +<translation id="6040143037577758943">Fechar</translation> <translation id="6055895534982063517">Está disponível uma nova versão do Chromium, mais rápida do que nunca.</translation> <translation id="6063093106622310249">&Abrir no Chromium</translation> <translation id="6072279588547424923">A extensão <ph name="EXTENSION_NAME" /> foi adicionada ao Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb index 0ab8ca1f..d3897ee 100644 --- a/chrome/app/resources/chromium_strings_ro.xtb +++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Eroare privind certificatul de autentificare. Conectează-te la Chromium din nou sau contactează administratorul pentru mai multe informații. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Aproape actualizat! Repornește dispozitivul pentru a finaliza actualizarea.</translation> <translation id="5987687638152509985">Actualizează Chromium pentru a începe sincronizarea</translation> +<translation id="6040143037577758943">Închide</translation> <translation id="6055895534982063517">Este disponibilă o nouă versiune Chromium, iar aceasta este mai rapidă ca oricând.</translation> <translation id="6063093106622310249">&Deschide în Chromium</translation> <translation id="6072279588547424923">Extensia <ph name="EXTENSION_NAME" /> a fost adăugată la Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb index bd9247e..d71f23a 100644 --- a/chrome/app/resources/chromium_strings_ru.xtb +++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">Ошибка сертификата аутентификации. Войдите в Chromium ещё раз или обратитесь за информацией к администратору. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Чтобы завершить обновление, перезапустите устройство.</translation> <translation id="5987687638152509985">Чтобы начать синхронизацию, обновите Chromium</translation> +<translation id="6040143037577758943">Закрыть</translation> <translation id="6055895534982063517">Доступна новая версия Chromium, которая стала еще быстрее.</translation> <translation id="6063093106622310249">&Открыть в Chromium</translation> <translation id="6072279588547424923">Расширение "<ph name="EXTENSION_NAME" />" добавлено в Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb index 95b77e14..55c6fe11 100644 --- a/chrome/app/resources/chromium_strings_sk.xtb +++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Certifikát na overenie totožnosti zlyhal. Prihláste sa znova do prehliadača Chromium alebo kontaktuje správcu a požiadajte ho o ďalšie informácie. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Aktualizácia je takmer hotová! Dokončite ju reštartovaním zariadenia.</translation> <translation id="5987687638152509985">Ak chcete spustiť synchronizáciu, aktualizujte Chromium</translation> +<translation id="6040143037577758943">Zavrieť</translation> <translation id="6055895534982063517">K dispozícii je nová verzia prehliadača Chromium, ktorá je rýchlejšia ako kedykoľvek predtým.</translation> <translation id="6063093106622310249">&Otvoriť v prehliadači Chromium</translation> <translation id="6072279588547424923">Rozšírenie <ph name="EXTENSION_NAME" /> bolo pridané do prehliadača Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb index ba5f6e33..7139cdf 100644 --- a/chrome/app/resources/chromium_strings_sl.xtb +++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -145,6 +145,7 @@ <translation id="5902536751647951209">Napaka potrdila za preverjanje pristnosti. Znova se prijavite v Chromium ali se obrnite na skrbnika, če želite več informacij. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Samo še malo. Znova zaženite napravo, da dokončate posodobitev.</translation> <translation id="5987687638152509985">Posodobite Chromium, če želite začeti sinhronizacijo</translation> +<translation id="6040143037577758943">Zapri</translation> <translation id="6055895534982063517">Na voljo je nova različica Chromiuma, ki je najhitrejša doslej.</translation> <translation id="6063093106622310249">&Odpri v Chromiumu</translation> <translation id="6072279588547424923">Razširitev <ph name="EXTENSION_NAME" /> je dodana v Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb index 4307a68..1fac555a 100644 --- a/chrome/app/resources/chromium_strings_sr.xtb +++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Није успела потврда идентитета помоћу овог сертификата. Поново се пријавите у Chromium или контактирајте администратора за више информација. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Ажурирање је скоро готово! Поново покрените уређај да бисте довршили ажурирање.</translation> <translation id="5987687638152509985">Ажурирајте Chromium да бисте започели синхронизацију</translation> +<translation id="6040143037577758943">Затвори</translation> <translation id="6055895534982063517">Доступна је нова верзија Chromium-а, бржа него икада пре.</translation> <translation id="6063093106622310249">&Отвори у Chromium-у</translation> <translation id="6072279588547424923">Додатак <ph name="EXTENSION_NAME" /> је додат у Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb index 5292ae50..b3f3709 100644 --- a/chrome/app/resources/chromium_strings_sv.xtb +++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Autentiseringscertifikatet fungerade inte. Logga in i Chromium igen eller kontakta administratören. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Uppdateringen är nästan klar! Slutför den genom att starta om enheten.</translation> <translation id="5987687638152509985">Du måste uppdatera Chromium innan synkroniseringen kan starta</translation> +<translation id="6040143037577758943">Stäng</translation> <translation id="6055895534982063517">Det finns en ny version av Chromium och den är snabbare än någonsin.</translation> <translation id="6063093106622310249">&Öppna i Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> har lagts till i Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb index 7adb036..7574ef2 100644 --- a/chrome/app/resources/chromium_strings_sw.xtb +++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -144,6 +144,7 @@ <translation id="5902536751647951209">Cheti hakijathibitishwa. Tafadhali ingia katika Chromium tena au uwasiliane na msimamizi wako kwa maelezo zaidi. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Inakaribia kukamilisha kusasishwa! Zima na uwashe kifaa chako ili ukamilishe kusasisha.</translation> <translation id="5987687638152509985">Sasisha Chromium ili uanze kusawazisha</translation> +<translation id="6040143037577758943">Funga</translation> <translation id="6055895534982063517">Kuna toleo jipya la Chromium linalopatikana, na ni la kasi kuliko la awali.</translation> <translation id="6063093106622310249">Fungua katika Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> imeongezwa kwenye Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb index 398bf54..2f64841d 100644 --- a/chrome/app/resources/chromium_strings_ta.xtb +++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">அங்கீகாரச் சான்றிதழ் தோல்வி. மீண்டும் Chromium இல் உள்நுழையவும் அல்லது நிர்வாகியைத் தொடர்புகொண்டு, கூடுதல் தகவலைப் பெறவும். <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">கிட்டத்தட்ட புதுப்பிக்கப்பட்டது! புதுப்பிப்பதை முடிக்க, சாதனத்தை மறுதொடக்கம் செய்யவும்.</translation> <translation id="5987687638152509985">ஒத்திசைவைத் தொடங்க, Chromiumஐப் புதுப்பிக்கவும்</translation> +<translation id="6040143037577758943">மூடு</translation> <translation id="6055895534982063517">Chromium இன் புதிய பதிப்பு கிடைக்கிறது, அது முன்பு இருந்ததை விடவும் வேகமானது.</translation> <translation id="6063093106622310249">Chromium இல் &திற</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> என்ற நீட்டிப்பு Chromium இல் சேர்க்கப்பட்டது</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb index ff892b32..071895c 100644 --- a/chrome/app/resources/chromium_strings_te.xtb +++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">ప్రమాణీకరణ ప్రమాణపత్రం విఫలమైంది. దయచేసి Chromiumలో మళ్లీ సైన్ ఇన్ చేయండి లేదా మరింత సమాచారం కోసం మీ నిర్వాహకులను సంప్రదించండి. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">దాదాపు నవీకృతంగా ఉంది! నవీకరణను పూర్తి చేయడానికి మీ పరికరాన్ని పునఃప్రారంభించండి.</translation> <translation id="5987687638152509985">సమకాలీకరణను ప్రారంభించడానికి Chromiumని నవీకరించండి</translation> +<translation id="6040143037577758943">మూసివేయి</translation> <translation id="6055895534982063517">క్రొత్త Chromium సంస్కరణ అందుబాటులో ఉంది, ఇది ఎప్పటి కంటే వేగంగా ఉంది.</translation> <translation id="6063093106622310249">&Chromiumలో తెరవండి</translation> <translation id="6072279588547424923">Chromiumకు <ph name="EXTENSION_NAME" /> జోడించబడింది</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb index 751974a7..680859e8 100644 --- a/chrome/app/resources/chromium_strings_th.xtb +++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">การรับรองการตรวจสอบสิทธิ์ล้มเหลว โปรดลงชื่อเข้าใช้ Chromium อีกครั้ง หรือสอบถามข้อมูลเพิ่มเติมจากผู้ดูแลระบบ <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">การอัปเดตใกล้จะเสร็จเรียบร้อยแล้ว รีสตาร์ทอุปกรณ์เพื่อให้การอัปเดตเสร็จสิ้น</translation> <translation id="5987687638152509985">อัปเดต Chromium เพื่อเริ่มการซิงค์</translation> +<translation id="6040143037577758943">ปิด</translation> <translation id="6055895534982063517">มี Chromium รุ่นใหม่ให้ใช้งานแล้วและทำงานได้เร็วกว่าเดิม</translation> <translation id="6063093106622310249">&เปิดใน Chromium</translation> <translation id="6072279588547424923">เพิ่ม <ph name="EXTENSION_NAME" /> ลงใน Chromium แล้ว</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb index 18a4231..dbe1703 100644 --- a/chrome/app/resources/chromium_strings_tr.xtb +++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -140,6 +140,7 @@ <translation id="5902536751647951209">Kimlik doğrulama sertifikası çalışmadı. Lütfen Chromium'da tekrar oturum açın veya daha fazla bilgi edinmek için yöneticinizle iletişime geçin. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Az kaldı! Güncellemeyi tamamlamak için cihazınızı yeniden başlatın.</translation> <translation id="5987687638152509985">Senkronizasyonu başlatmak için Chromium'u güncelleyin</translation> +<translation id="6040143037577758943">Kapat</translation> <translation id="6055895534982063517">Kullanabileceğiniz yeni bir Chromium sürümü var ve bu sürüm her zamankinden daha hızlı.</translation> <translation id="6063093106622310249">&Chromium'da aç</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium'a eklendi</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb index ea2920b4..b492ab1 100644 --- a/chrome/app/resources/chromium_strings_uk.xtb +++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Не вдалось отримати сертифікат автентифікації. Щоб дізнатися більше, знову ввійдіть в обліковий запис Chromium або зв’яжіться з адміністратором. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Майже оновлено. Перезапустіть пристрій, щоб завершити оновлення.</translation> <translation id="5987687638152509985">Щоб почати синхронізацію, оновіть Chromium</translation> +<translation id="6040143037577758943">Закрити</translation> <translation id="6055895534982063517">Доступна нова версія Chromium – швидша, ніж будь-коли.</translation> <translation id="6063093106622310249">&Відкрити в Chromium</translation> <translation id="6072279588547424923">Розширення <ph name="EXTENSION_NAME" /> додано в Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb index 0bdd040..f1711fc 100644 --- a/chrome/app/resources/chromium_strings_vi.xtb +++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">Lỗi chứng chỉ xác thực. Vui lòng đăng nhập lại vào Chromium hoặc liên hệ với quản trị viên của bạn để biết thêm thông tin. <ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">Gần được cập nhật! Hãy khởi động lại thiết bị của bạn để hoàn tất cập nhật.</translation> <translation id="5987687638152509985">Cập nhật Chromium để bắt đầu đồng bộ hóa</translation> +<translation id="6040143037577758943">Đóng</translation> <translation id="6055895534982063517">Hiện đã có phiên bản Chromium mới và phiên bản này nhanh hơn bao giờ hết.</translation> <translation id="6063093106622310249">&Mở trong Chromium</translation> <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> đã được thêm vào Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb index a9b58dd..7a2a023 100644 --- a/chrome/app/resources/chromium_strings_zh-CN.xtb +++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">身份验证失败。请重新登录 Chromium,或者与您的管理员联系以了解详情。<ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">即将更新到最新版本!重新启动您的设备即可完成更新。</translation> <translation id="5987687638152509985">更新 Chromium 以开始同步</translation> +<translation id="6040143037577758943">关闭</translation> <translation id="6055895534982063517">Chromium 现已推出速度更快的新版本。</translation> <translation id="6063093106622310249">在 Chromium 中打开(&O)</translation> <translation id="6072279588547424923">“<ph name="EXTENSION_NAME" />”已添加到 Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb index 7cc2d74..a51f94d 100644 --- a/chrome/app/resources/chromium_strings_zh-TW.xtb +++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -142,6 +142,7 @@ <translation id="5902536751647951209">驗證憑證無效,請重新登入 Chromium 或向你的管理員洽詢詳情。<ph name="ADDITIONAL_EXPLANATION" /></translation> <translation id="5906655207909574370">即將更新為最新版本!重新啟動您的裝置即可完成更新程序。</translation> <translation id="5987687638152509985">如要開始同步處理,請更新 Chromium</translation> +<translation id="6040143037577758943">關閉</translation> <translation id="6055895534982063517">新版 Chromium 現已推出,速度更勝以往。</translation> <translation id="6063093106622310249">在 Chromium 中開啟(&O)</translation> <translation id="6072279588547424923">已將「<ph name="EXTENSION_NAME" />」加到 Chromium</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index a31ea58..d58ecee 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">ለእዚህ ገጽ ዕልባት አዘጋጅ…</translation> <translation id="1047956942837015229"><ph name="COUNT" /> ንጥሎችን በመሰረዝ ላይ...</translation> <translation id="1048286738600630630">ማሳያዎች</translation> +<translation id="1049743911850919806">ማንነት የማያሳውቅ</translation> <translation id="1049795001945932310">የ&ቋንቋ ቅንብሮች...</translation> <translation id="1049926623896334335">የWord ሰነድ</translation> <translation id="1054153489933238809">የመጀመሪያውን ምስል በአዲስ ትር ክፈት</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">አመሳሳይ አገልጋዩ ስራ ላይ ነው፣ እባክዎ ቆይተው እንደገና ይሞክሩ።</translation> <translation id="1784849162047402014">መሣሪያ ያለው ባዶ ቦታ ዝቅተኛ ነው</translation> <translation id="1786636458339910689">የቡድን Drives</translation> -<translation id="1789575671122666129">ብቅ-ባዮች</translation> <translation id="1792619191750875668">የተቀጠለ ማሳያ</translation> <translation id="1793119619663054394">እርግጠኛ ነዎት «<ph name="PROFILE_NAME" />» እና ሁሉም ተዛማጅ የChrome ውሂብ ከዚህ ኮምፒውተር መሰረዝ ይፈልጋሉ? ይሄ ሊቀለበስ አይችልም።</translation> <translation id="1794791083288629568">እኛ ይህን ችግር እንድንፈታው ለማገዝ ግብረመልስ ይላኩ።</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">አዲስ ክትትል የሚደረግበት ተጠቃሚ ከፈጠሩ በኋላ ቅንብሮቹን በማንኛውም ጊዜ ከማንኛውም መሣሪያ ላይ ሆነው <ph name="MANAGEMENT_URL" /> ላይ ማቀናበር ይችላሉ።</translation> <translation id="1984642098429648350">መስኮት ቀኝ ላይ ይትከሉ</translation> <translation id="1987139229093034863">ወደተለየ ተጠቃሚ ይቀይሩ።</translation> +<translation id="1987317783729300807">መለያዎች</translation> <translation id="1989112275319619282">አስስ</translation> <translation id="1992397118740194946">ያልተዘጋጀ</translation> <translation id="1994173015038366702">የጣቢያ ዩአርኤል</translation> <translation id="1997484222658892567"><ph name="URL" /> ትልቅ ውሂብ በአካባቢያዊ ኮምፒውተርዎ ላይ እስከመጨረሻው ማከማቸት ይፈልጋል</translation> <translation id="1997616988432401742">የእርስዎ እውቅና ማረጋገጫዎች</translation> <translation id="1999115740519098545">በሚነሳበት ጊዜ</translation> +<translation id="2001796770603320721">በDrive ውስጥ ያስተዳድሩ</translation> <translation id="2006638907958895361">አገናኝን በ<ph name="APP" /> ውስጥ ይክፈቱ</translation> <translation id="2007404777272201486">ችግር ሪፖርት አድርግ...</translation> <translation id="2016430552235416146">ተለምዷዊ</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">ልክ ያልሆነ የትር መረጃ ጠቋሚ ገብቷል።</translation> <translation id="2154484045852737596">ካርትን ያርትዑ</translation> <translation id="2154710561487035718">URL ቅዳ</translation> -<translation id="2155931291251286316">ሁልጊዜ ከ<ph name="HOST" /> ላይ የሚመጡ ብቅ-ባዮችን ፍቀድ</translation> <translation id="215753907730220065">ከሙሉ ገጽ ዕይታ ውጣ</translation> <translation id="2157875535253991059">ይህ ገጽ አሁን ሙሉ ማያ ገጽ ነው።</translation> <translation id="216169395504480358">Wi-Fi ያክሉ...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">ዳግም አስጀምር</translation> <translation id="2803375539583399270">ፒን ያስገቡ</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">ሁሉም ጣቢያዎች ብቅ-ባዮችን እንዲያሳዩ ፍቀድ</translation> <translation id="2805756323405976993">መተግበሪያዎች</translation> <translation id="2807517655263062534">እርስዎ የሚያወርዷቸው ፋይሎች እዚህ ይመጣሉ</translation> <translation id="2809586584051668049">እና <ph name="NUMBER_ADDITIONAL_DISABLED" /> ተጨማሪ</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">ከChrome ይበልጥ ተጨማሪ ያግኙ</translation> <translation id="3479552764303398839">አሁን አይደለም</translation> <translation id="3480892288821151001">መስኮት ግራ ላይ ትከል</translation> -<translation id="3481915276125965083">በዚህ ገጽ ላይ የሚከተሉት ብቅ-ባዮች ታግደዋል፦</translation> <translation id="3484273680291419129">ጎጂ ሶፍትዌርን በማስወገድ ላይ...</translation> <translation id="3484869148456018791">አዲስ የእውቅና ማረጋገጫ ያግኙ</translation> <translation id="3487007233252413104">ስም-አልባ ተግባር</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">ትክክለኛውን የመክፈቻ ፒን ቁልፍ ማስገባት ካልቻሉ የእርስዎ ሲም ካርድ በቋሚነት ይሰናከላል።</translation> <translation id="363903084947548957">ቀጣይ የግቤት ስልት</translation> <translation id="3640214691812501263">«<ph name="EXTENSION_NAME" />» ለ<ph name="USER_NAME" /> ይታከል?</translation> -<translation id="3643225892037417978">የቅጥያ አስተዳደር ለእንግዳ ተጠቃሚዎች አይገኝም። ቅጥያዎችን ለማቀናበር እባክዎ በመለያ ይግቡ።</translation> <translation id="3644896802912593514">ስፋት</translation> <translation id="3646789916214779970">ወደ እንደወረደ ገጽታ አስተካክል</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ተገኝቷል</translation> @@ -2063,7 +2061,6 @@ <translation id="4172051516777682613">ሁልጊዜ አሳይ</translation> <translation id="4175737294868205930">ቋሚ ማከማቻ</translation> <translation id="4176463684765177261">ተሰናክሏል</translation> -<translation id="4180684688621252156">የህትመት አገልግሎት</translation> <translation id="4180788401304023883">የCA እውቅና ማረጋገጫ «<ph name="CERTIFICATE_NAME" />» ይሰረዝ?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">ቋንቋዎች</translation> @@ -2089,6 +2086,7 @@ <translation id="42137655013211669">የዚህ መርጃ መዳረሻ በአገልጋዩ ተከልክሏል።</translation> <translation id="4215350869199060536">ውይ ውይ፣ በስም ውስጥ ህገ-ወጥ ምልክቶች!</translation> <translation id="4215448920900139318">የ<ph name="FILE_COUNT" />ን ምትኬ በማስቀመጥ ላይ</translation> +<translation id="4217571870635786043">በቃል ማስጻፍ</translation> <translation id="4225397296022057997">በሁሉም ጣቢያዎች ላይ</translation> <translation id="4235200303672858594">መላው የማያ ገጽ</translation> <translation id="4235813040357936597">ለ<ph name="PROFILE_NAME" /> መለያ አክል</translation> @@ -2201,6 +2199,7 @@ <translation id="4425149324548788773">የእኔ Drive</translation> <translation id="4430019312045809116">ድምፅ</translation> <translation id="4430369329743628066">ዕልባት ታክሏል</translation> +<translation id="4434045419905280838">ብቅ-ባዮች እና አቅጣጫ ማዞሮች</translation> <translation id="443454694385851356">የቆየ (ለደህንነት የማያስተማምን)</translation> <translation id="443464694732789311">ቀጥል</translation> <translation id="443475966875174318">ተኳኋኝ ያልሆኑ መተግበሪያዎችን ያዘምኑ ወይም ያስወግዱ</translation> @@ -3270,6 +3269,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> ከሚባል መሣሪያ ጋር ውሂብ ተለዋወጥ</translation> <translation id="6076448957780543068">ይህን ቅጽበታዊ ገጽ እይታን ያካትቱ</translation> <translation id="6077131872140550515">ከሚመረጡ አስወግድ</translation> +<translation id="6078323886959318429">አቋራጭ አክል</translation> <translation id="6078752646384677957">እባክዎ የእርስዎን ማይክሮፎን እና የኦዲዮ ደረጃዎች ይፈትሹ።</translation> <translation id="6080515710685820702">የተጋራ ኮምፒውተር ነው እየተጠቀሙ ያሉት? ማንነት የማያሳውቅ መስኮት ለመክፈት ይሞክሩ።</translation> <translation id="6080689532560039067">የስርዓት ጊዜዎን ይፈትሹ</translation> @@ -3478,7 +3478,6 @@ <translation id="6406303162637086258">የአሳሽ ዳግም መጀመር አስመስለህ ስራ</translation> <translation id="6406506848690869874">አመሳስል</translation> <translation id="6408118934673775994">ውሂብዎን በ<ph name="WEBSITE_1" />፣ <ph name="WEBSITE_2" /> እና <ph name="WEBSITE_3" /> ላይ ያነብባል እና ይቀይራል</translation> -<translation id="6409731863280057959">ብቅ-ባዮች</translation> <translation id="6410257289063177456">የምስል ፋይሎች</translation> <translation id="6410328738210026208">ሰርጥ ቀይር እና Powerwash</translation> <translation id="6410668567036790476">የፍለጋ ፕሮግራም ያክሉ</translation> @@ -3686,7 +3685,6 @@ <translation id="6708242697268981054">መነሻ፦</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" />ን በመጠቀም አገናኝ</translation> <translation id="6710213216561001401">ቀዳሚ</translation> -<translation id="6716704051134091292">የፒዲኤፍ መቀየሪያ</translation> <translation id="6718273304615422081">በማጨቅ ላይ...</translation> <translation id="671928215901716392">ማያ ገጽ ይቆልፉ</translation> <translation id="67211069045302358">ለዚህ ጣቢያ ቅንብሮች ዳግም ይጀመሩ?</translation> @@ -3811,7 +3809,6 @@ <translation id="6920989436227028121">እንደ መደበኛ ትር ክፈት</translation> <translation id="6922128026973287222">Google የውሂብ አስቀማጭን በመጠቀም በበለጠ ፍጥነት ውሂብ ያስቀምጡ እና ያስሱ። የበለጠ ለመረዳት ጠቅ ያድርጉ።</translation> <translation id="6923132443355966645">ይሸብልሉ / ጠቅ ያድርጉ</translation> -<translation id="6929555043669117778">ብቅ-ባዮችን ማገድ ቀጥል</translation> <translation id="6929835486583850209"><ph name="APP_NAME" />ን መጫን ላይ ስህተት...</translation> <translation id="6930242544192836755">ጊዜ</translation> <translation id="6934241953272494177">የእርስዎን የማህደረመረጃ መሣሪያን በመቅረጽ ላይ... @@ -3895,6 +3892,7 @@ <translation id="7052237160939977163">አፈጻጸም መከታተያ ውሂብ ይላኩ</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">አግድ</translation> +<translation id="7055152154916055070">አቅጣጫ ማዞር ታግዷል፦</translation> <translation id="7056526158851679338">&መሣሪያዎችን መርምር</translation> <translation id="7059858479264779982">ወደ ራስ-አስጀምር አዋቅር</translation> <translation id="7059893117020417984">በግል ለማሰስ የነጥቦች አዶ ምናሌውን ጠቅ አድርገው ማንነት የማያሳውቅ መስኮትን ይክፈቱ</translation> @@ -3921,7 +3919,6 @@ <translation id="7088434364990739311">የዝማኔ ፍተሻ መጀመር አልተሳካም (የስህተት ኮድ <ph name="ERROR" />)።</translation> <translation id="7088561041432335295">የዚህ ማህደር ሰሪ - በፋይሎች መተግበሪያው ውስጥ የዚፕ ፋይሎችን ይክፈቱ እና ይጠቅልሉ።</translation> <translation id="7088674813905715446">ይህ መሳሪያ በአስተዳዳሪው ወዳልተከፋፈለ ሁኔታ ተቀምጧል። ለምዝገባ ለማንቃት፣ እባክዎ አስተዳዳሪዎ እየተካሄደ ወዳለ ሁኔታ እንዲለውጠው ያድርጉ።</translation> -<translation id="7092106376816104">የማይካተቱ ብቅ-ባዮች</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">ስማቸው እንደሚከተለው ከሆኑ መሣሪያዎች ጋር ውሂብ ተለዋወጥ፦ <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">የሙሉ ማያ ገጽ ማጉያን ቀያይር</translation> @@ -4141,7 +4138,6 @@ <translation id="744341768939279100">አዲስ መገለጫ ፍጠር</translation> <translation id="7444726222535375658">ወደ Hangouts Meet ቀጥል</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" />ን አሰናክል</translation> -<translation id="7445682342344043969">ብቅ-ባዮች ታግደዋል</translation> <translation id="7453008956351770337">ይህን አታሚ በመምረጥዎ የሚከተለው ቅጥያ አታሚዎን እንዲደርስበት ፍቃድ እየሰጡት ነው፦</translation> <translation id="7453467225369441013">ከአብዛኛዎቹ ጣቢያዎች ዘግተው ያስወጣዎታል። ከእርስዎ የGoogle መለያ ዘግተው እንዲወጡ አይደረጉም።</translation> <translation id="7456142309650173560">dev</translation> @@ -4260,6 +4256,7 @@ <translation id="7617366389578322136">ከ«<ph name="DEVICE_NAME" />» ጋር በመገናኘት ላይ</translation> <translation id="7622114377921274169">ኃይል በመሙላት ላይ።</translation> <translation id="7624337243375417909">አቢያት ማድረጊያ ጠፍቷል</translation> +<translation id="7625568159987162309">ፈቃዶችን እና በመላ ጣቢያዎች ላይ የተከማቸ ውሂብን አሳይ</translation> <translation id="7627790789328695202">ውይ፣ <ph name="FILE_NAME" /> አስቀድሞ አለ። ዳግም ይሰይሙትና እንደገና ይሞክሩ።</translation> <translation id="7628127343934101653">የፒዲኤፍ ፋይሎችን በነባሪው የፒዲኤፍ መመልከቻ መተግበሪያ ክፈት።</translation> <translation id="7629827748548208700">ትር፦ <ph name="TAB_NAME" /></translation> @@ -4587,10 +4584,12 @@ <translation id="806812017500012252">በርዕስ ቅደም ተከተል አስይዝ</translation> <translation id="8068253693380742035">በመለያ ለመግባት ይንኩ</translation> <translation id="8069615408251337349">Google ዳመና ህትመት</translation> +<translation id="806972267388474605">Linux ፋይሎች</translation> <translation id="8071432093239591881">እንደ ምስል አስቀምጥ</translation> <translation id="8072988827236813198">ትሮችን ይሰኩ</translation> <translation id="8074127646604999664">በቅርቡ የተዘጉ ጣቢያዎች ውሂብን መላክ እና መቀበል እንዲጨርሱ ፍቀድ</translation> <translation id="8075191520954018715">የማህደረ ትውስታ ሁኔታ</translation> +<translation id="8076492880354921740">ትሮች</translation> <translation id="8076835018653442223">በእርስዎ መሣሪያ ላይ ያሉ የአካባቢያዊ ፋይሎች መዳረሻ በእርስዎ አስተዳዳሪ ተሰናክሏል</translation> <translation id="8077684120002777443">የተጠቃሚ ስም (ለምሳሌ፦ user@example.com)</translation> <translation id="8077816382010018681">የQU ባህሪ ማሳወቂያ ርዕስ እዚህ ነው የሚሆነው።</translation> @@ -4875,7 +4874,6 @@ <translation id="8569682776816196752">ምንም መድረሻዎች አልተገኙም</translation> <translation id="8569764466147087991">የሚከፈት ፋይል ይምረጡ</translation> <translation id="8571213806525832805">ባለፉት 4 ሳምንቶች</translation> -<translation id="8571613743082299268">ወደ ጣቢያ አቅጣጫ ማዞር ታግዷል</translation> <translation id="8574990355410201600">ሁልጊዜ በ<ph name="HOST" /> ላይ ድምጽን ፍቀድ</translation> <translation id="8578639784464423491">ከ99 ፊደላት መብለጥ አይችልም</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> ንጥሎችን በማመሳሰል ላይ...</translation> @@ -5207,7 +5205,6 @@ <translation id="9065203028668620118">አርትዕ</translation> <translation id="9066782832737749352">ጽሑፍ ወደ ንግግር</translation> <translation id="9070219033670098627">ሰው ቀይር</translation> -<translation id="907148966137935206">የትኛውም ጣቢያ ብቅ-ባዮችን እንዲያሳይ አትፍቀድ (የሚደገፍ)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" />ን በመጫን ላይ...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> እርስዎን ባስቀመጧቸው ይለፍ ቃላት ወደ ብቁ ጣቢያዎች እና መተግበሪያዎች ያስገባዎታል።</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index bbbc603..0cb444c 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">وضع إشارة مرجعية على هذه الصفحة...</translation> <translation id="1047956942837015229">جارٍ حذف <ph name="COUNT" /> من العناصر...</translation> <translation id="1048286738600630630">إعدادات العرض</translation> +<translation id="1049743911850919806">التصفح المتخفي</translation> <translation id="1049795001945932310">إ&عدادات اللغة</translation> <translation id="1049926623896334335">مستند Word</translation> <translation id="1054153489933238809">فتح الصورة الأصلية في علامة تبويب جديدة</translation> @@ -184,7 +185,7 @@ <translation id="1260240842868558614">عرض:</translation> <translation id="126710816202626562">لغة الترجمة:</translation> <translation id="126768002343224824">16 ضعفًا</translation> -<translation id="1271317946095246719">يُرسِل عمليات البحث من شريط العناوين ومربّع البحث وبعض ملفات تعريف الارتباط إلى محرك البحث التلقائي</translation> +<translation id="1271317946095246719">يُرسِل عمليات البحث من شريط العناوين ومربّع البحث وبعض ملفات تعريف الارتباط إلى محرك البحث التلقائي.</translation> <translation id="1272079795634619415">إيقاف</translation> <translation id="1272978324304772054">لا ينتمي حساب المستخدم هذا إلى النطاق المسجَّل به هذا الجهاز. إذا أردت التسجيل بنطاق مختلف، فيلزمك إجراء استرداد الجهاز أولاً.</translation> <translation id="1274977772557788323">إعدادات سعة تخزين برنامج Adobe Flash Player</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">خادم المزامنة مشغول، يُرجى إعادة المحاولة لاحقًا.</translation> <translation id="1784849162047402014">مساحة القرص الموجودة على الجهاز منخفضة.</translation> <translation id="1786636458339910689">مساحات Drive المشتركة</translation> -<translation id="1789575671122666129">النوافذ المنبثقة</translation> <translation id="1792619191750875668">شاشة تم توسيعها</translation> <translation id="1793119619663054394">هل تريد فعلًا إزالة "<ph name="PROFILE_NAME" />" وكل البيانات المرتبطة بمتصفح Chrome من جهاز الكمبيوتر هذا؟ لا يمكن التراجع عن هذا الإجراء.</translation> <translation id="1794791083288629568">يمكنك إرسال تعليقات لمساعدتنا في إصلاح هذه المشكلة.</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">بعد إنشاء مستخدم جديد يخضع للإشراف، يُمكنك إدارة الإعدادات في أي وقت وعلى أي جهاز على <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">إرساء النافذة لليمين</translation> <translation id="1987139229093034863">التبديل إلى مستخدم آخر.</translation> +<translation id="1987317783729300807">الحسابات</translation> <translation id="1989112275319619282">تصفّح</translation> <translation id="1992397118740194946">لم يتم تعيينه</translation> <translation id="1994173015038366702">عنوان URL للموقع</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">تم إدخال فهرس علامات تبويب غير صحيح.</translation> <translation id="2154484045852737596">تعديل البطاقة</translation> <translation id="2154710561487035718">نسخ عنوان URL</translation> -<translation id="2155931291251286316">السماح بعرض النوافذ المنبثقة من الموقع <ph name="HOST" /> دومًا</translation> <translation id="215753907730220065">إنهاء وضع ملء الشاشة</translation> <translation id="2157875535253991059">هذه الصفحة في وضع ملء الشاشة الآن.</translation> <translation id="216169395504480358">إضافة Wi-Fi...</translation> @@ -804,7 +804,7 @@ <translation id="2230062665678605299">تعذر إنشاء المجلد "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">انقر لعرض رسومات الشعار المبتكرة لهذا اليوم.</translation> <translation id="2231238007119540260">في حالة حذف شهادة الخادم، تتم استعادة العمليات المعتادة للتحقق من الأمان لذلك الخادم وسيتطلب الأمر استخدامه لشهادة صالحة.</translation> -<translation id="2232379019872353004">يُرسِل بعض معلومات النظام ومحتوى الصفحة إلى Google</translation> +<translation id="2232379019872353004">يُرسِل بعض معلومات النظام ومحتوى الصفحة إلى Google.</translation> <translation id="2232876851878324699">احتوى الملف على شهادة واحدة، لم يتم استيرادها:</translation> <translation id="2233502537820838181">&مزيد من المعلومات</translation> <translation id="2238379619048995541">بيانات حالة التردد</translation> @@ -942,7 +942,7 @@ <translation id="2462724976360937186">معرّف مفتاح المرجع المصدق</translation> <translation id="2462752602710430187">تمت إضافة <ph name="PRINTER_NAME" /></translation> <translation id="2464089476039395325">خادم وكيل HTTP</translation> -<translation id="2468205691404969808">يستخدم ملفات تعريف الارتباط لتذكّر التفضيلات، حتى إذا لم تزر تلك الصفحات</translation> +<translation id="2468205691404969808">يستخدم ملفات تعريف الارتباط لتذكّر التفضيلات حتى إذا لم تزُر تلك الصفحات.</translation> <translation id="2468902267404883140">لا يُمكن الاتصال بهاتفك. تأكد من أنك تستخدم هاتف Android متوافقًا وأنه قيد التشغيل وفي متناول يديك. <a>مزيد من المعلومات</a></translation> <translation id="2470702053775288986">تم إيقاف الإضافات غير المدعومة</translation> <translation id="2473195200299095979">ترجم هذه الصفحة</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">إعادة تشغيل</translation> <translation id="2803375539583399270">أدخل رقم التعريف الشخصي</translation> <translation id="2805646850212350655">نظام تشفير الملفات لـ Microsoft</translation> -<translation id="2805707493867224476">السماح لجميع المواقع بعرض النوافذ المنبثقة</translation> <translation id="2805756323405976993">تطبيقات</translation> <translation id="2807517655263062534">هنا تظهر الملفات التي تم تنزيلها</translation> <translation id="2809586584051668049">و<ph name="NUMBER_ADDITIONAL_DISABLED" /> من الإضافات الأخرى</translation> @@ -1616,7 +1615,6 @@ <translation id="347919930506963698">الحصول على المزيد من Chrome</translation> <translation id="3479552764303398839">ليس الآن</translation> <translation id="3480892288821151001">إرساء النافذة لليسار</translation> -<translation id="3481915276125965083">تم منع عرض النوافذ المنبثقة التالية في هذه الصفحة:</translation> <translation id="3484273680291419129">جارٍ إزالة البرامج الضارة...</translation> <translation id="3484869148456018791">الحصول على شهادة جديدة</translation> <translation id="3487007233252413104">وظيفة مجهولة</translation> @@ -1722,7 +1720,6 @@ <translation id="3637682276779847508">سيتم إيقاف شريحة SIM نهائيًا إذا لم تتمكن من إدخال مفتاح إلغاء القفل باستخدام رقم التعريف الشخصي الصحيح.</translation> <translation id="363903084947548957">طريقة الإدخال التالية</translation> <translation id="3640214691812501263">هل تريد إضافة "<ph name="EXTENSION_NAME" />" لـ <ph name="USER_NAME" />؟</translation> -<translation id="3643225892037417978">إدارة الإضافات غير متاحة للمستخدمين الضيوف. يُرجى تسجيل الدخول لإدارة الإضافات.</translation> <translation id="3644896802912593514">العرض</translation> <translation id="3646789916214779970">إعادة تعيين إلى المظهر التلقائي</translation> <translation id="3648348069317717750">تم اكتشاف <ph name="USB_DEVICE_NAME" /></translation> @@ -2061,7 +2058,6 @@ <translation id="4172051516777682613">الإظهار دائمًا</translation> <translation id="4175737294868205930">التخزين الثابت</translation> <translation id="4176463684765177261">غير مفعّل</translation> -<translation id="4180684688621252156">خدمة الطباعة</translation> <translation id="4180788401304023883">هل تريد حذف شهادة المرجع المصدق (CA) "<ph name="CERTIFICATE_NAME" />"؟</translation> <translation id="4181602000363099176">20 ضعفًا</translation> <translation id="4181841719683918333">اللغات</translation> @@ -2511,7 +2507,7 @@ <translation id="4917385247580444890">قوية</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> يريد الاتصال مع الإضافة "<ph name="EXTENSION_NAME" />"</translation> <translation id="4918086044614829423">قبول</translation> -<translation id="4920350943031252905">يمكنك تشغيل أدوات Linux والمُحرّرين وبرامج IDE على Chromebook.</translation> +<translation id="4920350943031252905">يمكنك تشغيل أدوات Linux وأدوات التعديل وبرامج IDE على Chromebook.</translation> <translation id="4920887663447894854">تم حظر تتبع المواقع التالية لموقعك في هذه الصفحة:</translation> <translation id="492299503953721473">إزالة تطبيقات Android</translation> <translation id="4923279099980110923">نعم، أريد تقديم المساعدة</translation> @@ -3144,7 +3140,7 @@ <translation id="5863445608433396414">تفعيل ميزات تصحيح الأخطاء</translation> <translation id="5864471791310927901">تعذّر بحث DHCP</translation> <translation id="586567932979200359">أنت تشغّل <ph name="PRODUCT_NAME" /> من صورته على القرص. ويسمح لك تثبيته على الكمبيوتر بتشغيله بدون الحاجة إلى صورة القرص، كما يضمن ذلك الحفاظ على تحديثه بشكل مستمر.</translation> -<translation id="5865733239029070421">يُرسِل إحصاءات الاستخدام وتقارير الأعطال إلى Google تلقائيًا</translation> +<translation id="5865733239029070421">يُرسِل إحصاءات الاستخدام وتقارير الأعطال إلى Google تلقائيًا.</translation> <translation id="5866557323934807206">محو هذه الإعدادات في الزيارات المستقبلية</translation> <translation id="5866840822086176774">قوية جدًا</translation> <translation id="5867841422488265304">البحث عن عنوان الويب أو إدخاله</translation> @@ -3268,6 +3264,7 @@ <translation id="6075907793831890935">تبادل البيانات مع الجهاز المسمى <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">تضمين لقطة الشاشة هذه</translation> <translation id="6077131872140550515">إزالة من الشبكات المُفضلة</translation> +<translation id="6078323886959318429">إضافة اختصار</translation> <translation id="6078752646384677957">الرجاء التحقق من الميكروفون ومستويات الصوت.</translation> <translation id="6080515710685820702">هل تستخدم جهاز كمبيوتر مشتركًا؟ جرِّب فتح نافذة للتصفُّح المتخفي.</translation> <translation id="6080689532560039067">تحقق من وقت النظام</translation> @@ -3477,7 +3474,6 @@ <translation id="6406303162637086258">محاكاة إعادة تشغيل المتصفح</translation> <translation id="6406506848690869874">المزامنة</translation> <translation id="6408118934673775994">قراءة بياناتك وتغييرها في <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" /> و <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">النوافذ المنبثقة</translation> <translation id="6410257289063177456">ملفات الصور</translation> <translation id="6410328738210026208">تغيير القناة وPowerwash</translation> <translation id="6410668567036790476">إضافة محرّك بحث</translation> @@ -3685,7 +3681,6 @@ <translation id="6708242697268981054">المصدر:</translation> <translation id="6709357832553498500">الاتصال باستخدام <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">السابق</translation> -<translation id="6716704051134091292">محول PDF</translation> <translation id="6718273304615422081">جارٍ الضغط...</translation> <translation id="671928215901716392">قفل الشاشة</translation> <translation id="67211069045302358">هل تريد إعادة تعيين الإعدادات لهذا الموقع؟</translation> @@ -3810,7 +3805,6 @@ <translation id="6920989436227028121">فتح كعلامة تبويب عادية</translation> <translation id="6922128026973287222">حفظ البيانات والاستمتاع بتصفح أسرع باستخدام ميزة توفير البيانات في Google. يمكن النقر للتعرف على المزيد من المعلومات.</translation> <translation id="6923132443355966645">التمرير / النقر على</translation> -<translation id="6929555043669117778">متابعة منع عرض النوافذ المنبثقة</translation> <translation id="6929835486583850209">حدث خطأ أثناء تثبيت <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">المدة</translation> <translation id="6934241953272494177">جارٍ فحص جهاز الوسائط... @@ -3920,7 +3914,6 @@ <translation id="7088434364990739311">تعذّر بدء التحقق من التحديثات (رمز الخطأ <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - فتح ملفات ZIP وتجميعها في تطبيق "الملفات".</translation> <translation id="7088674813905715446">ألغى المشرف إدارة الحسابات لهذا الجهاز. لتمكينه من التسجيل، يُرجى أن تطلب من المشرف وضع الجهاز في حالة في انتظار المراجعة.</translation> -<translation id="7092106376816104">استثناءات النوافذ المنبثقة</translation> <translation id="7093434536568905704">مظهر +GTK</translation> <translation id="7093866338626856921">تبادل البيانات مع الأجهزة المسماه: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">تبديل وضع "المكبّر بملء الشاشة"</translation> @@ -4140,7 +4133,6 @@ <translation id="744341768939279100">إنشاء ملف شخصي جديد</translation> <translation id="7444726222535375658">المتابعة إلى Hangouts Meet</translation> <translation id="7444983668544353857">إيقاف <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">تم حظر النوافذ المنبثقة</translation> <translation id="7453008956351770337">عند تحديد الطابعة، فإنك تمنح الإضافة التالية الإذن للدخول إلى الطابعة.</translation> <translation id="7453467225369441013">سيتم تسجيل الخروج من معظم مواقع الويب لكن لن يتم تسجيل الخروج من حسابك في Google.</translation> <translation id="7456142309650173560">مطوري البرامج</translation> @@ -4586,6 +4578,7 @@ <translation id="8072988827236813198">تثبيت علامات التبويب</translation> <translation id="8074127646604999664">السماح للمواقع الإلكترونية التي تم إغلاقها مؤخرًا بإنهاء إرسال البيانات واستلامها</translation> <translation id="8075191520954018715">حالة الذاكرة</translation> +<translation id="8076492880354921740">علامات التبويب</translation> <translation id="8076835018653442223">أوقف المشرف إمكانية الوصول إلى الملفات المحلية على جهازك.</translation> <translation id="8077684120002777443">اسم المستخدم (على سبيل المثال، user@example.com)</translation> <translation id="8077816382010018681">عنوان إشعار ميزة إلغاء القفل السريع هنا</translation> @@ -4870,7 +4863,6 @@ <translation id="8569682776816196752">لم يتم العثور على أي وجهات</translation> <translation id="8569764466147087991">تحديد ملف لفتحه</translation> <translation id="8571213806525832805">الأسابيع الـ4 الأخيرة</translation> -<translation id="8571613743082299268">تم حظر إعادة التوجيه إلى الموقع.</translation> <translation id="8574990355410201600">السماح دومًا بتشغيل الصوت على <ph name="HOST" /></translation> <translation id="8578639784464423491">لا يمكن أن تتجاوز الكلمة 99 حرفًا.</translation> <translation id="8579285237314169903">جارٍ مزامنة <ph name="NUMBER_OF_FILES" /> من البنود...</translation> @@ -5184,7 +5176,7 @@ <translation id="9042893549633094279">الخصوصية والأمان</translation> <translation id="904451693890288097">يُرجى إدخال مفتاح المرور لـ "<ph name="DEVICE_NAME" />":</translation> <translation id="9044646465488564462">تعذّر الاتصال بالشبكة: <ph name="DETAILS" /></translation> -<translation id="9045430190527754450">يُرسِل عنوان ويب الصفحة التي تحاول الوصول إليها إلى Google</translation> +<translation id="9045430190527754450">يُرسِل عنوان ويب الصفحة التي تحاول الوصول إليها إلى Google.</translation> <translation id="9046895021617826162">تعذّر الاتصال</translation> <translation id="9050666287014529139">عبارة المرور</translation> <translation id="9052208328806230490">لقد سجّلت طابعاتك في <ph name="CLOUD_PRINT_NAME" /> باستخدام الحساب <ph name="EMAIL" /></translation> @@ -5202,7 +5194,6 @@ <translation id="9065203028668620118">تحرير</translation> <translation id="9066782832737749352">تحويل النَّص إلى الكلام</translation> <translation id="9070219033670098627">تبديل شخص</translation> -<translation id="907148966137935206">عدم السماح لأي موقع بعرض النوافذ المنبثقة (مستحسن)</translation> <translation id="9071637495340542136">جارٍ تثبيت <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347">يعمل <ph name="PASSWORD_MANAGER_BRAND" /> على تسجيل دخولك تلقائيًا إلى المواقع والتطبيقات المؤهلة باستخدام كلمات المرور التي حفظتها.</translation> <translation id="9073281213608662541">بروتوكول مصادقة كلمات المرور (PAP)</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index b018cd6..652f28bd 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Запазване на отметка към тази страница...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> елемента се изтриват...</translation> <translation id="1048286738600630630">Дисплеи</translation> +<translation id="1049743911850919806">„Инкогнито“</translation> <translation id="1049795001945932310">&Езикови настройки</translation> <translation id="1049926623896334335">Документ в Word</translation> <translation id="1054153489933238809">Отваряне на оригиналното изображение в нов раздел</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">Синхронизиращият сървър е зает. Моля, опитайте отново по-късно.</translation> <translation id="1784849162047402014">Дисковото пространство на устройството е малко</translation> <translation id="1786636458339910689">Екипни дискове</translation> -<translation id="1789575671122666129">Изскачащи прозорци</translation> <translation id="1792619191750875668">Разширен екран</translation> <translation id="1793119619663054394">Наистина ли искате да премахнете <ph name="PROFILE_NAME" /> и всички свързани данни в Chrome от този компютър? Действието не може да бъде отменено.</translation> <translation id="1794791083288629568">Изпращане на отзиви, за да ни помогнете да отстраним този проблем.</translation> @@ -649,12 +649,14 @@ <translation id="1983959805486816857">След като създадете нов контролиран потребител, можете да управлявате настройките по всяко време от което и да е устройство на адрес <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Закрепване на прозореца отдясно</translation> <translation id="1987139229093034863">Превключете към друг потребител.</translation> +<translation id="1987317783729300807">Профили</translation> <translation id="1989112275319619282">Сърфиране</translation> <translation id="1992397118740194946">Няма зададен</translation> <translation id="1994173015038366702">URL адрес на сайт</translation> <translation id="1997484222658892567"><ph name="URL" /> иска да съхранява за постоянно голямо количество данни на локалния ви компютър</translation> <translation id="1997616988432401742">Вашите сертификати</translation> <translation id="1999115740519098545">При стартиране</translation> +<translation id="2001796770603320721">Управление в Диск</translation> <translation id="2006638907958895361">Отваряне на връзката чрез <ph name="APP" /></translation> <translation id="2007404777272201486">Подаване на сигнал за проблем...</translation> <translation id="2016430552235416146">Традиционно</translation> @@ -750,7 +752,6 @@ <translation id="2151576029659734873">Въведен е невалиден индекс на раздел.</translation> <translation id="2154484045852737596">Редактиране на картата</translation> <translation id="2154710561487035718">Копиране на URL адреса</translation> -<translation id="2155931291251286316">Изскачащите прозорци от <ph name="HOST" /> да се показват винаги</translation> <translation id="215753907730220065">Изход от цял екран</translation> <translation id="2157875535253991059">Тази страница сега е на цял екран.</translation> <translation id="216169395504480358">Добавяне на Wi-Fi...</translation> @@ -1180,7 +1181,6 @@ <translation id="2799223571221894425">Стартиране отново</translation> <translation id="2803375539583399270">Въведете ПИН кодa</translation> <translation id="2805646850212350655">Шифроване на файлова система от Microsoft</translation> -<translation id="2805707493867224476">Разрешаване на всички сайтове да показват изскачащи прозорци</translation> <translation id="2805756323405976993">Приложения</translation> <translation id="2807517655263062534">Тук се показват изтеглените от вас файлове</translation> <translation id="2809586584051668049">и още <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1614,7 +1614,6 @@ <translation id="347919930506963698">Направете Chrome още по-полезен</translation> <translation id="3479552764303398839">Не сега</translation> <translation id="3480892288821151001">Закрепване на прозореца отляво</translation> -<translation id="3481915276125965083">Следните изскачащи прозорци са блокирани на тази страница:</translation> <translation id="3484273680291419129">Опасният софтуер се премахва...</translation> <translation id="3484869148456018791">Получаване на нов сертификат</translation> <translation id="3487007233252413104">анонимна функция</translation> @@ -1721,7 +1720,6 @@ правилния PUK код</translation> <translation id="363903084947548957">Следващият метод на въвеждане</translation> <translation id="3640214691812501263">Да се добави ли <ph name="EXTENSION_NAME" /> за <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Потребителите в режим на гост не могат да управляват разширенията. За целта, моля, влезте в профила си.</translation> <translation id="3644896802912593514">Ширина</translation> <translation id="3646789916214779970">Възстановяване на темата по подразбиране</translation> <translation id="3648348069317717750">Открито е устройство <ph name="USB_DEVICE_NAME" /></translation> @@ -2063,7 +2061,6 @@ <translation id="4172051516777682613">Показване винаги</translation> <translation id="4175737294868205930">Постоянно хранилище</translation> <translation id="4176463684765177261">Деактивирано</translation> -<translation id="4180684688621252156">Услуга за отпечатване</translation> <translation id="4180788401304023883">Да се изтрие ли сертификатът на сертифициращ орган „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Езици</translation> @@ -2089,6 +2086,7 @@ <translation id="42137655013211669">Достъпът до този ресурс бе забранен от сървъра.</translation> <translation id="4215350869199060536">Ами сега! Името съдържа невалидни символи!</translation> <translation id="4215448920900139318">Създаваме резервно копие на <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Диктуване</translation> <translation id="4225397296022057997">На всички сайтове</translation> <translation id="4235200303672858594">Цял екран</translation> <translation id="4235813040357936597">Добавяне на профил за <ph name="PROFILE_NAME" /></translation> @@ -2201,6 +2199,7 @@ <translation id="4425149324548788773">Моят диск</translation> <translation id="4430019312045809116">Звук</translation> <translation id="4430369329743628066">Отметката бе добавена</translation> +<translation id="4434045419905280838">Изскач. прозорци и пренасочвания</translation> <translation id="443454694385851356">Наследени (несигурни)</translation> <translation id="443464694732789311">Напред</translation> <translation id="443475966875174318">Актуализиране или премахване на несъвместими приложения</translation> @@ -3272,6 +3271,7 @@ <translation id="6075907793831890935">Обмен на данни с устройството с име „<ph name="HOSTNAME" />“</translation> <translation id="6076448957780543068">Включване на тази екранна снимка</translation> <translation id="6077131872140550515">Премахване от предпочитаните</translation> +<translation id="6078323886959318429">Добавяне на пряк път</translation> <translation id="6078752646384677957">Моля, проверете микрофона си и нивата на звука.</translation> <translation id="6080515710685820702">Използвате общ компютър? Отворете прозорец в режим „инкогнито“.</translation> <translation id="6080689532560039067">Проверете системния си час</translation> @@ -3480,7 +3480,6 @@ <translation id="6406303162637086258">Симулиране на рестартиране на браузъра</translation> <translation id="6406506848690869874">Синхронизиранe</translation> <translation id="6408118934673775994">Четене и промяна на данните ви в/ъв <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Изскачащи прозорци</translation> <translation id="6410257289063177456">Графични файлове</translation> <translation id="6410328738210026208">Промяна на канала и Powerwash</translation> <translation id="6410668567036790476">Добавяне на търсеща машина</translation> @@ -3688,7 +3687,6 @@ <translation id="6708242697268981054">Източник:</translation> <translation id="6709357832553498500">Свързване посредством <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Предишна</translation> -<translation id="6716704051134091292">PDF конвертор</translation> <translation id="6718273304615422081">Компресира се...</translation> <translation id="671928215901716392">Заключване на екрана</translation> <translation id="67211069045302358">Да се нулират ли настройките за този сайт?</translation> @@ -3813,7 +3811,6 @@ <translation id="6920989436227028121">Отваряне като нормален раздел</translation> <translation id="6922128026973287222">Използвайте по-малко данни и сърфирайте по-бързо посредством Google Икономия на данни. Кликнете, за да научите повече.</translation> <translation id="6923132443355966645">Превъртане/кликване</translation> -<translation id="6929555043669117778">Блокирането на изскачащи прозорци да продължи</translation> <translation id="6929835486583850209">Грешка при инсталирането на <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Продължителност</translation> <translation id="6934241953272494177">Сканираме мултимедийното ви устройство... @@ -3897,6 +3894,7 @@ <translation id="7052237160939977163">Да се изпратят данните от проследяването на ефективността</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Блокиране</translation> +<translation id="7055152154916055070">Блокирано бе пренасочване:</translation> <translation id="7056526158851679338">&Инспектиране на устройствата</translation> <translation id="7059858479264779982">Задаване на автоматично стартиране</translation> <translation id="7059893117020417984">За да сърфирате частно, кликнете върху иконата с точки и отворете прозорец в режим „инкогнито“ от менюто</translation> @@ -3923,7 +3921,6 @@ <translation id="7088434364990739311">Стартирането на проверката за актуализации не бе успешно (код на грешката <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – отваряйте и пакетирайте ZIP файлове в приложението Файлове.</translation> <translation id="7088674813905715446">Администраторът е поставил това устройство в необезпечено състояние. За да го активирате за регистрация, моля, накарайте администратора да промени състоянието му на изчакващо.</translation> -<translation id="7092106376816104">Изключения за изскачащи прозорци</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Обмен на данни с устройствата със следните имена: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Превключване на лупата за увеличаване на целия екран</translation> @@ -4143,7 +4140,6 @@ <translation id="744341768939279100">Създаване на нов потребителски профил</translation> <translation id="7444726222535375658">Напред към Hangouts Meet</translation> <translation id="7444983668544353857">Деактивиране на <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Изскачащите прозорци са блокирани</translation> <translation id="7453008956351770337">С избирането на този принтер давате разрешение за достъп до него на следното разширение:</translation> <translation id="7453467225369441013">Ще излезете от повечето сайтове, но не и от профила си в Google.</translation> <translation id="7456142309650173560">за програмисти</translation> @@ -4262,6 +4258,7 @@ <translation id="7617366389578322136">Свързване със: <ph name="DEVICE_NAME" /></translation> <translation id="7622114377921274169">Зарежда се.</translation> <translation id="7624337243375417909">caps lock е изключен</translation> +<translation id="7625568159987162309">Преглед на разрешенията и данните, съхранявани в сайтовете</translation> <translation id="7627790789328695202">Ами сега! Файлът „<ph name="FILE_NAME" />“ вече съществува. Преименувайте го и опитайте отново.</translation> <translation id="7628127343934101653">Отваряне на PDF файловете в стандартното приложение за визуализирането им.</translation> <translation id="7629827748548208700">Раздел: <ph name="TAB_NAME" /></translation> @@ -4584,10 +4581,12 @@ <translation id="806812017500012252">Подреждане по азбучен ред</translation> <translation id="8068253693380742035">Докоснете за вход в профила си</translation> <translation id="8069615408251337349">Google Отпечатване в облак</translation> +<translation id="806972267388474605">Файлове за Linux</translation> <translation id="8071432093239591881">Отпечатване като изображение</translation> <translation id="8072988827236813198">Фиксиране на разделите</translation> <translation id="8074127646604999664">Разрешаване на наскоро затворените сайтове да завършват изпращането и получаването на данни</translation> <translation id="8075191520954018715">Състояние на паметта</translation> +<translation id="8076492880354921740">Раздели</translation> <translation id="8076835018653442223">Достъпът до локални файлове на устройството ви е деактивиран от администратора ви</translation> <translation id="8077684120002777443">Потребителско име (напр. potrebitel@example.com)</translation> <translation id="8077816382010018681">Място за заглавието на известието за функцията за бързо отключване</translation> @@ -4872,7 +4871,6 @@ <translation id="8569682776816196752">Няма намерени местоназначения</translation> <translation id="8569764466147087991">Изберете файл за отваряне</translation> <translation id="8571213806525832805">Последните 4 седмици</translation> -<translation id="8571613743082299268">Пренасочването към сайт бе блокирано</translation> <translation id="8574990355410201600">Разрешаване винаги на звука от <ph name="HOST" /></translation> <translation id="8578639784464423491">Не може да надхвърля 99 букви</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> елемента се синхронизират...</translation> @@ -5204,7 +5202,6 @@ <translation id="9065203028668620118">Редактиране</translation> <translation id="9066782832737749352">Синтезиран говор</translation> <translation id="9070219033670098627">Превключване към друг човек</translation> -<translation id="907148966137935206">Забраняване на всички сайтове да показват изскачащи прозорци (препоръчително)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> се инсталира...</translation> <translation id="9072550133391925347">С помощта на <ph name="PASSWORD_MANAGER_BRAND" /> автоматично влизате в отговарящи на условията сайтове и приложения с паролите, които сте запазили.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 4430be8..0fe2a42 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -25,7 +25,7 @@ <translation id="1035590878859356651">এই পৃষ্ঠাটি বুকমার্ক করুন...</translation> <translation id="1036348656032585052">বন্ধ করুন</translation> <translation id="1036511912703768636">এই USB ডিভাইসগুলির মধ্যে যে কোনোটি অ্যাক্সেস করুন</translation> -<translation id="1036982837258183574">পূর্ণ স্ক্রীন থেকে বেরিয়ে যেতে |<ph name="ACCELERATOR" />| চাপুন</translation> +<translation id="1036982837258183574">পূর্ণ স্ক্রিন থেকে বেরিয়ে যেতে |<ph name="ACCELERATOR" />| চাপুন</translation> <translation id="1038168778161626396">কেবলমাত্র চিহ্ন প্রদান</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> @@ -34,6 +34,7 @@ <translation id="1047726139967079566">এই পৃষ্ঠাটি বুকমার্ক করুন...</translation> <translation id="1047956942837015229"><ph name="COUNT" />টি আইটেম মুছে ফেলা হচ্ছে...</translation> <translation id="1048286738600630630">প্রদর্শনগুলি</translation> +<translation id="1049743911850919806">ছদ্মবেশী</translation> <translation id="1049795001945932310">&ভাষা সেটিংস</translation> <translation id="1049926623896334335">Word document</translation> <translation id="1054153489933238809">নতুন ট্যাবে আসল ছবিটি খুলুন</translation> @@ -45,6 +46,8 @@ <translation id="1064835277883315402">ব্যক্তিগত নেটওয়ার্কে যোগদান করুন</translation> <translation id="1064912851688322329">আপনার Google অ্যাকাউন্ট সংযোগ বিচ্ছিন্ন করুন</translation> <translation id="1067048845568873861">তৈরি হয়েছে</translation> +<translation id="1067291318998134776">Linux (বিটা)</translation> +<translation id="1067922213147265141">Google-এর অন্যান্য পরিষেবা</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">আপনার কম্পিউটারের অন্য একটি প্রোগ্রাম একটি অ্যাপ্লিকেশান যোগ করেছে যা Chrome এর কাজ করার ধরন পাল্টে দিতে পারে। @@ -180,6 +183,7 @@ <translation id="1260240842868558614">দেখান:</translation> <translation id="126710816202626562">অনুবাদের ভাষা:</translation> <translation id="126768002343224824">১৬x</translation> +<translation id="1271317946095246719">অ্যাড্রেস বার এবং সার্চ বক্স থেকে সার্চের তথ্য এবং কিছু কুকি আপনার ডিফল্ট সার্চ ইঞ্জিনে পাঠায়</translation> <translation id="1272079795634619415">বন্ধ</translation> <translation id="1272978324304772054">এই ডিভাইসটি যে ডোমেনের অন্তর্গত সেটার সাথে এই ব্যবহারকারীর অ্যাকাউন্টটি নথিভুক্ত করা হয় নি। যদি আপনি কোনো অন্য ডোমেনের সাথে জুড়তে চান তাহলে সবার প্রথমে ডিভাইস পুনরুদ্ধার করা প্রয়োজন।</translation> <translation id="1274977772557788323">Adobe Flash Player সঞ্চয়স্থান সেটিংস...</translation> @@ -335,7 +339,7 @@ <translation id="1508491105858779599">ডিভাইসটি আনলক করতে আঙ্গুলের ছাপ নেওয়ার সেন্সরে আপনার আঙ্গুল রাখুন।</translation> <translation id="1509281256533087115">USB এর মাধ্যমে যেকোনো <ph name="DEVICE_NAME_AND_VENDOR" /> অ্যাক্সেস করুন</translation> <translation id="150962533380566081">অবৈধ PUK।</translation> -<translation id="1510030919967934016">এই পৃষ্ঠাটি আপনার অবস্থান নির্ণয় করা থেকে অবরুদ্ধ করা আছে৷</translation> +<translation id="1510030919967934016">এই পৃষ্ঠাটি আপনার লোকেশন নির্ণয় করা থেকে অবরুদ্ধ করা আছে৷</translation> <translation id="1510200760579344855"><ph name="SAML_DOMAIN" /> এর প্রশাসক এই ডিভাইসটি লক করেছিল৷</translation> <translation id="1510238584712386396">লঞ্চার</translation> <translation id="1510785804673676069">যদি আপনি একটি প্রক্সি সার্ভার ব্যবহার করেন, তাহলে আপনার প্রক্সি সেটিংস পরীক্ষা করুন @@ -521,7 +525,6 @@ <translation id="1782924894173027610">সিঙ্ক সার্ভার ব্যস্ত আছে, দয়া করে পরে আবার চেষ্টা করুন৷</translation> <translation id="1784849162047402014">ডিভাইসে ডিস্কের জায়গা কম আছে</translation> <translation id="1786636458339910689">টিম ড্রাইভ</translation> -<translation id="1789575671122666129">পপআপ</translation> <translation id="1792619191750875668">প্রসারিত প্রদর্শন</translation> <translation id="1793119619663054394">আপনি কি "<ph name="PROFILE_NAME" />" এবং এই কম্পিউটার থেকে সমস্ত সংশ্লিষ্ট Chrome ডেটা মুছে ফেলার বিষয়ে নিশ্চিত? এটিকে পূর্বাবস্থায় ফেরানো যাবে না৷</translation> <translation id="1794791083288629568">এই সমস্যা ঠিক করতে আমাদের সহায়তা করতে প্রতিক্রিয়া পাঠান।</translation> @@ -567,7 +570,7 @@ <translation id="1851361118452499663">আমার ফটোগুলি</translation> <translation id="1852799913675865625"><ph name="ERROR_TEXT" /> ফাইলটি পড়ার চেষ্টা করার সময় একটি ত্রুটি ঘটেছিল৷</translation> <translation id="1853692000353488670">নতুন ছদ্মবেশী ট্যাব</translation> -<translation id="1856715684130786728">অবস্থান যোগ করুন...</translation> +<translation id="1856715684130786728">লোকেশন যোগ করুন...</translation> <translation id="1856813161013948396">আঙ্গুলের ছাপ নেওয়ার সেন্সরে ট্যাপ করে লক স্ক্রিন এড়িয়ে যান। কনফিগার করতে ক্লিক করুন।</translation> <translation id="1858585891038687145">সফ্টওয়্যার প্রস্তুতকারকদের শনাক্তকরণের জন্য এই শংসাপত্রটিকে বিশ্বাস করুন</translation> <translation id="1861262398884155592">ফোল্ডারটি খালি</translation> @@ -643,6 +646,7 @@ <translation id="1983959805486816857">আপনার দ্বারা একটি নতুন তত্ত্বাবধানে থাকা ব্যবহারকারী তৈরি হয়ে গেলে, আপনি যেকোনো ডিভাইস থেকে যেকোনো সময়ে <ph name="MANAGEMENT_URL" /> এ সেটিংস পরিচালনা করতে পারেন৷</translation> <translation id="1984642098429648350">উইন্ডো ডান দিকে রাখুন</translation> <translation id="1987139229093034863">একজন আলাদা ব্যবহারকারীতে স্যুইচ করুন৷</translation> +<translation id="1987317783729300807">অ্যাকাউন্টসমূহ</translation> <translation id="1989112275319619282">ব্রাউজ করুন</translation> <translation id="1992397118740194946">সেট করা নেই</translation> <translation id="1994173015038366702">সাইট URL</translation> @@ -744,7 +748,6 @@ <translation id="2151576029659734873">অবৈধ ট্যাব সূচি প্রবেশ হয়েছে৷</translation> <translation id="2154484045852737596">কার্ড সম্পাদনা করুন</translation> <translation id="2154710561487035718">URL কপি করুন</translation> -<translation id="2155931291251286316">সর্বদা <ph name="HOST" />-এর পপ-আপগুলিকে মঞ্জুর করুন</translation> <translation id="215753907730220065">পূর্ণ স্ক্রীণ বন্ধ করুন</translation> <translation id="2157875535253991059">পৃষ্ঠাটি এখন পূর্ণ পর্দায় রয়েছে</translation> <translation id="216169395504480358">Wi-fi জুড়ুন ...</translation> @@ -794,6 +797,7 @@ <translation id="2230062665678605299">"<ph name="FOLDER_NAME" /> " ফোল্ডার তৈরী করতে ব্যর্থ৷<ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">আজকের ডুডল দেখার জন্য ক্লিক করুন</translation> <translation id="2231238007119540260">যদি আপনি কোনও সার্ভার শংসাপত্র মুছে থাকেন তবে আপনি সেই সার্ভারের জন্য স্বাভাবিক সুরক্ষা যাচাইগুলি পুনরুদ্ধার করতে পারেন এবং এটির একটি বৈধ শংসাপত্র হিসাবে ব্যবহারের প্রয়োজন হতে পারে৷</translation> +<translation id="2232379019872353004">সিস্টেমের কিছু তথ্য এবং পৃষ্ঠার কন্টেন্ট Google-কে পাঠায়</translation> <translation id="2232876851878324699">ফাইলটিতে একটি শংসাপত্র রয়েছে, এটি আমদানি করা হয়নি:</translation> <translation id="2233502537820838181">&আরো তথ্য</translation> <translation id="2238379619048995541">ফ্রিকোয়েন্সি স্থিতি ডেটা</translation> @@ -879,6 +883,7 @@ <translation id="2359808026110333948">অবিরত</translation> <translation id="236141728043665931">মাইক্রোফোনের অ্যাক্সেস সর্বদা অবরুদ্ধ রাখুন</translation> <translation id="2365507699358342471">এই সাইটটি ক্লিপবোর্ডে কপি করা টেক্সট এবং ছবি দেখতে পায়।</translation> +<translation id="2366463953911599217">সমস্যা: <ph name="APP_NAME" /> ইনস্টল করা যায়নি।</translation> <translation id="2367199180085172140">ফাইল শেয়ার যোগ করুন</translation> <translation id="2367972762794486313">অ্যাপ্লিকেশানগুলি দেখান</translation> <translation id="2371076942591664043">&সম্পন্ন হলে খুলুন</translation> @@ -930,6 +935,7 @@ <translation id="2462724976360937186">শংসাপত্র কর্তৃত্ব কী ID</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> যোগ করা হয়েছে</translation> <translation id="2464089476039395325">HTTP প্রক্সী</translation> +<translation id="2468205691404969808">আপনার পছন্দ মনে রাখার জন্য কুকি ব্যবহার করুন - সেই সমস্ত পৃষ্ঠায় যদি না যান, তাহলেও</translation> <translation id="2468902267404883140">আপনার ফোন সংযুক্ত করা যাচ্ছে না। নিশ্চিত করুন আপনার একটি উপযুক্ত Android ফোন আছে যেটি চালু রয়েছে এবং সহজে ব্যবহার করা যায়। <a>আরও জানুন</a></translation> <translation id="2470702053775288986">অসমর্থিত এক্সটেনশানগুলি নিষ্ক্রিয় করা আছে</translation> <translation id="2473195200299095979">এই পৃষ্ঠাটি অনুবাদ করুন</translation> @@ -960,7 +966,7 @@ <translation id="2501278716633472235">ফিরে যান</translation> <translation id="2501797496290880632">একটি শর্টকাট লিখুন</translation> <translation id="2502441965851148920">স্বয়ংক্রিয় আপডেট সক্ষম রয়েছে। আপনার প্রশাসক দ্বারা ম্যানুয়াল আপডেট অক্ষম করা হয়েছে।</translation> -<translation id="2505324914378689427">{SCREEN_INDEX,plural, =1{স্ক্রীন #}one{স্ক্রীন #}other{স্ক্রীন #}}</translation> +<translation id="2505324914378689427">{SCREEN_INDEX,plural, =1{স্ক্রিন #}one{স্ক্রিন #}other{স্ক্রিন #}}</translation> <translation id="2505402373176859469"><ph name="TOTAL_SIZE" />-এর <ph name="RECEIVED_AMOUNT" /></translation> <translation id="2508428939232952663">Google Play স্টোর অ্যাকাউন্ট</translation> <translation id="2509495747794740764">স্কেলের মাপকে অবশ্যই ১০ থেকে ১০০ এর মধ্যের একটি সংখ্যা হতে হবে।</translation> @@ -1092,6 +1098,7 @@ <translation id="2686759344028411998">যে কোনও মডিউল লোড হওয়া শনাক্ত করতে অক্ষম৷</translation> <translation id="2688196195245426394">ডিভাইসটি সার্ভারে নথিভুক্ত করার সময়ে ত্রুটি: <ph name="CLIENT_ERROR" />৷</translation> <translation id="2690024944919328218">ভাষা বিকল্পগুলি দেখান</translation> +<translation id="2690824726518456119">Concierge পরিষেবা চালু করা হচ্ছে।</translation> <translation id="2691385045260836588">মডেল</translation> <translation id="2693176596243495071">একটি অজানা সমস্যা হয়েছে। অনুগ্রহ করে পরে আবার চেষ্টা করুন বা সমস্যাটি হতে থাকলে আপনার প্রশাসককে জানান।</translation> <translation id="2694026874607847549">1টি কুকি</translation> @@ -1170,7 +1177,6 @@ <translation id="2799223571221894425">পুনঃশুরু</translation> <translation id="2803375539583399270">পিন নম্বর দিন</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476"> পপ-আপগুলি দেখানোর জন্য সমস্ত সাইটকে অনুমতি দিন</translation> <translation id="2805756323405976993">অ্যাপ্স</translation> <translation id="2807517655263062534">ডাউনলোড করা ফাইল এখানে দেখা যাবে</translation> <translation id="2809586584051668049">এবং আরও <ph name="NUMBER_ADDITIONAL_DISABLED" />টি</translation> @@ -1308,7 +1314,7 @@ <translation id="3015639418649705390">এখনই রিলঞ্চ করুন</translation> <translation id="3015992588037997514">এই কোডটি কি আপনার Chromebox এর স্ক্রীনে প্রদর্শিত হয়?</translation> <translation id="3016641847947582299">কম্পোনেন্ট আপডেট করা আছে</translation> -<translation id="3016780570757425217">আপনার অবস্থান জানুন</translation> +<translation id="3016780570757425217">আপনার লোকেশন জানুন</translation> <translation id="302014277942214887">অ্যাপ্লিকেশান ID বা ওয়েব দোকানের URL লিখুন৷</translation> <translation id="3020990233660977256">ক্রমিক সংখ্যা: <ph name="SERIAL_NUMBER" /></translation> <translation id="3021678814754966447">ফ্রেম উৎস &দেখুন</translation> @@ -1416,6 +1422,7 @@ <translation id="3190558889382726167">পাসওয়ার্ড সংরক্ষিত</translation> <translation id="3192947282887913208">অডিও ফাইলসমূহ</translation> <translation id="3194737229810486521"><ph name="URL" /> স্থায়ীভাবে আপনার ডিভাইসে ডেটা স্টোর করতে চায়</translation> +<translation id="3197054279257119376">Termina উপাদান লোড হচ্ছে।</translation> <translation id="3199127022143353223">সার্ভারসমূহ</translation> <translation id="3202131003361292969">পাথ</translation> <translation id="3202173864863109533">এই ট্যাবের অডিও নিঃশব্দ করা হচ্ছে৷</translation> @@ -1460,7 +1467,7 @@ <translation id="327444463633065042">মেশিনের অবৈধ নাম</translation> <translation id="3274763671541996799">আপনি পূর্ণ পর্দায় দেথতে শুরু করেছেন৷</translation> <translation id="3275778913554317645">উইন্ডো হিসাবে খুলুন</translation> -<translation id="3279741024917655738">এতে সম্পূর্ণ স্ক্রীন ভিডিও দেখুন</translation> +<translation id="3279741024917655738">এতে সম্পূর্ণ স্ক্রিন ভিডিও দেখুন</translation> <translation id="3280237271814976245">এই &রূপে সেভ করুন...</translation> <translation id="3280243678470289153">Chrome থেকে যান</translation> <translation id="3280431534455935878">প্রস্তুতি</translation> @@ -1536,6 +1543,7 @@ <translation id="3405664148539009465">হরফগুলি কাস্টমাইজ করুন</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">&বুকমার্ক দণ্ড দেখান</translation> +<translation id="3407837288045706722">গোপনীয়তা, নিরাপত্তা এবং ডেটা সংগ্রহ সংক্রান্ত আরও সেটিংস দেখতে <ph name="BEGIN_LINK" />সিঙ্ক এবং ব্যক্তিগতকরণ<ph name="END_LINK" /> বিকল্পে যান</translation> <translation id="3412265149091626468">নির্বাচনে যান</translation> <translation id="3413122095806433232">CA ইস্যুকারীগণ: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">সরানোযোগ্য মিডিয়া বিন্যাস করা সমস্ত ডেটা মুছে দিতে চলেছে৷ আপনি কি চালিয়ে যেতে চান?</translation> @@ -1587,7 +1595,7 @@ <translation id="3468522857997926824"><ph name="BEGIN_LINK" />Google ড্রাইভ<ph name="END_LINK" /> এ <ph name="FILE_COUNT" />টি ফটো ব্যাকআপ নেওয়া হয়েছে</translation> <translation id="3470442499439619530">এই ব্যবহারকারীকে সরান</translation> <translation id="3470502288861289375">অনুলিপি করা হচ্ছে...</translation> -<translation id="3473479545200714844">স্ক্রীন ম্যাগনিফায়ার</translation> +<translation id="3473479545200714844">স্ক্রিন ম্যাগনিফায়ার</translation> <translation id="3475447146579922140">Google স্প্রেডশীট</translation> <translation id="3475538074809281797">{LINE_COUNT,plural, =1{<১টি লাইন দেখানো হয়নি>}one{<$1টি লাইন দেখানো হয়নি>}other{<$1টি লাইন দেখানো হয়নি>}}</translation> <translation id="3475843873335999118">দুঃখিত, আপনার আঙ্গুলের ছাপ এখনো শনাক্ত করা যায়নি। অনুগ্রহ করে আপনার পাসওয়ার্ড লিখুন।</translation> @@ -1597,7 +1605,6 @@ <translation id="347919930506963698">Chrome থেকে আরও অনেককিছু পান</translation> <translation id="3479552764303398839">এখনই নয়</translation> <translation id="3480892288821151001">উইন্ডো বাঁ দিকে রাখুন</translation> -<translation id="3481915276125965083">এই পৃষ্ঠাতে নিম্নোক্ত পপ-আপগুলি ব্লক করা হয়েছে:</translation> <translation id="3484273680291419129">ক্ষতিকর সফ্টওয়্যার সরানো হচ্ছে...</translation> <translation id="3484869148456018791">নতুন শংসাপত্র আনুন</translation> <translation id="3487007233252413104">নামহীন ক্রিয়াকলাপ</translation> @@ -1613,6 +1620,7 @@ <translation id="3504135463003295723">গ্রুপ নাম:</translation> <translation id="3505030558724226696">ডিভাইসের অ্যাক্সেস প্রত্যাহার করুন</translation> <translation id="3507421388498836150">"<ph name="EXTENSION_NAME" />" এর জন্য বর্তমান অনুমতিগুলি</translation> +<translation id="3507547268929739059">Chromebook থেকে Linux-এর অ্যাপ সরিয়ে দিন</translation> <translation id="3507888235492474624">ব্লুটুথ ডিভাইস আবার স্ক্যান করুন</translation> <translation id="3508920295779105875">অন্য ফোল্ডার বেছে নিন...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1625,7 +1633,7 @@ <translation id="3523642406908660543">আপনার কম্পিউটার অ্যাক্সেস করার জন্য যখন কোনো সাইট কোনো প্ল্যাগ ইন ব্যবহার করতে চায় তখন জিজ্ঞাসা করবে (প্রস্তাবিত)</translation> <translation id="3527085408025491307">ফোল্ডার</translation> <translation id="3527276236624876118"><ph name="USER_DISPLAY_NAME" />নামের একটি তত্ত্বাবধান করা ব্যবহারকারী তৈরি করা হয়েছে৷</translation> -<translation id="3528033729920178817">এই পৃষ্ঠাটি আপনার অবস্থান নির্ণয় করছে৷</translation> +<translation id="3528033729920178817">এই পৃষ্ঠাটি আপনার লোকেশন নির্ণয় করছে৷</translation> <translation id="3528498924003805721">শর্টকাট লক্ষ্যগুলি</translation> <translation id="3530305684079447434">আপনার সব ডিভাইসে আপনার বুকমার্কগুলি পেতে, <ph name="SIGN_IN_LINK" />।</translation> <translation id="3530751398950974194">সিঙ্ক পাসফ্রেজ আপডেট করুন</translation> @@ -1702,7 +1710,6 @@ <translation id="3637682276779847508">আপনি পিন আনলক করার সঠিক কী না লিখলে আপনার সিম কার্ড স্থায়ীভাবে অক্ষম হয়ে যাবে।</translation> <translation id="363903084947548957">পরবর্তী ইনপুট পদ্ধতি</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> এর জন্য "<ph name="EXTENSION_NAME" />" জুড়বেন?</translation> -<translation id="3643225892037417978">অতিথি ব্যবহারকারীদের জন্য এক্সটেনশন পরিচালনা উপলব্ধ নয়। এক্সটেনশনগুলিকে পরিচালনা করার জন্য অনুগ্রহ করে সাইন ইন করুন।</translation> <translation id="3644896802912593514">প্রস্থ</translation> <translation id="3646789916214779970">ডিফল্ট থিমে আবার সেট করুন</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> শনাক্ত হয়েছে</translation> @@ -1796,7 +1803,7 @@ <translation id="3783640748446814672">alt</translation> <translation id="3785308913036335955">অ্যাপ্লিকেশানগুলির শর্টকাট দেখান</translation> <translation id="3785727820640310185">এই সাইটের জন্য সেভ করা পাসওয়ার্ড</translation> -<translation id="3785852283863272759">ইমেল পৃষ্ঠার অবস্থান</translation> +<translation id="3785852283863272759">ইমেল পৃষ্ঠার লোকেশন</translation> <translation id="3786301125658655746">আপনি অফলাইন আছেন</translation> <translation id="3788401245189148511">এটা হতে পারে:</translation> <translation id="3789841737615482174">ইনস্টল করুন</translation> @@ -1805,6 +1812,7 @@ <translation id="379422718204375917">আপনার অ্যাকাউন্টে সাইন ইন করার জন্য Smart Lock ব্যবহার করুন</translation> <translation id="3796648294839530037">পছন্দসই নেটওয়ার্কগুলি:</translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> এ “<ph name="SEARCH_TERMS" />” এর &অনুসন্ধান করুন</translation> +<translation id="3798133693323981089">সার্চ এবং ওয়েব ঠিকানা নিজে থেকে সম্পূর্ণ হতে দিন</translation> <translation id="3798449238516105146">সংস্করণ</translation> <translation id="3799201711591988491">{COUNT,plural, =0{সবগুলি &খুলুন}=1{বুকমার্ক &খুলুন}one{সবগুলি (#টি) &খুলুন}other{সবগুলি (#টি) &খুলুন}}</translation> <translation id="3800806661949714323">সব দেখান (প্রস্তাবিত)</translation> @@ -1821,7 +1829,7 @@ <translation id="3817579325494460411">উল্লেখ নেই</translation> <translation id="3819007103695653773">পটভূমি পুশ বার্তা পাঠাতে সমস্ত সাইটকে অনুমতি দিন</translation> <translation id="3819752733757735746">অ্যাক্সেস সুইচ করুন (মাত্র এক বা দুই সুইচের মাধ্যমে কম্পিউটার নিয়ন্ত্রণ করুন)</translation> -<translation id="3819800052061700452">&পূর্ণ-স্ক্রীন</translation> +<translation id="3819800052061700452">&পূর্ণ-স্ক্রিন</translation> <translation id="3820172043799983114">অবৈধ পিন।</translation> <translation id="3820749202859700794">SECG এলিপ্টিক কার্ভ secp521r1 (ওরফে NIST P-521)</translation> <translation id="3822559385185038546">এই প্রক্সী আপনার প্রশাসক দ্বারা কার্যকরী করা হয়েছে</translation> @@ -1975,8 +1983,9 @@ <translation id="406070391919917862">পৃষ্ঠভূমি অ্যাপ্লিকেশান</translation> <translation id="4063283930106169759">আপনার ফোন কাছাকাছি সেটি নিশ্চিত করুন। আপনার ফোন খুঁজতে সব ডিভাইসে যেখানে আপনার অ্যাকাউন্ট আছে সেখানে ব্লুটুথ চালু করুন। <a>আরও জানুন/a></translation> <translation id="4065876735068446555">আপনি যে নেটওয়ার্কটি <ph name="NETWORK_ID" /> ব্যবহার করছেন সেটির জন্য অপনাকে এটির লগ ইন পৃষ্ঠাতে যেতে হতে পরে৷</translation> -<translation id="4068506536726151626">এই পৃষ্ঠাতে নিম্নলিখিত সাইটগুলি থেকে এমন উপাদান রয়েছে যা আপনার অবস্থান নির্ধারণ করে:</translation> +<translation id="4068506536726151626">এই পৃষ্ঠাতে নিম্নলিখিত সাইটগুলি থেকে এমন উপাদান রয়েছে যা আপনার লোকেশন নির্ধারণ করে:</translation> <translation id="4068776064906523561">সংরক্ষিত আঙ্গুলের ছাপগুলি</translation> +<translation id="407173827865827707">ক্লিক করা হলে</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: প্রবেশ করায় ত্রুটি</translation> <translation id="4074900173531346617">ইমেল স্বাক্ষরকারীর শংসাপত্র</translation> <translation id="407520071244661467">স্কেল</translation> @@ -2008,6 +2017,7 @@ <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) এ উইন্ডো সরান</translation> <translation id="4110559665646603267">শেল্ফে ফোকাস করুন</translation> <translation id="4110895898888439383">উচ্চ কনট্রাস্ট মোডে ওয়েব ব্রাউজ করুন</translation> +<translation id="4112774766611964959">এর ফলে <ph name="APP_NAME" /> ইনস্টল করা হবে এবং Linux-এর সমস্ত ডেটা ও অ্যাপ্লিকেশন আপনার <ph name="DEVICE_TYPE" /> থেকে সরিয়ে দেওয়া হবে। আপনি সত্যিই এটি করতে চান?</translation> <translation id="4114360727879906392">পূর্ববর্তী উইন্ডো</translation> <translation id="4115002065223188701">নেটওয়ার্ক সীমার বাইরে</translation> <translation id="4115080753528843955">কিছু কনটেন্ট পরিষেবা অনন্য আইডেন্টিফায়ার ব্যবহার করে সুরক্ষিত কনটেন্টে অ্যাক্সেস দেয়</translation> @@ -2036,7 +2046,6 @@ <translation id="4172051516777682613">সর্বদা দেখান</translation> <translation id="4175737294868205930">বিরতিহীন সঞ্চয়স্থান</translation> <translation id="4176463684765177261">অক্ষম</translation> -<translation id="4180684688621252156">প্রিন্টিং পরিষেবা</translation> <translation id="4180788401304023883">CA শংসাপত্র "<ph name="CERTIFICATE_NAME" />"মুছবেন?</translation> <translation id="4181602000363099176">২০x</translation> <translation id="4181841719683918333">ভাষাসমূহ</translation> @@ -2061,7 +2070,8 @@ <translation id="42137655013211669">এই সম্পদে অ্যাক্সেস করা সার্ভার দ্বারা নিষিদ্ধ ছিল।</translation> <translation id="4215350869199060536">উপস, নামে অবৈধ চিহ্ন রয়েছে!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" />টির ব্যাক আপ নেওয়া হচ্ছে</translation> -<translation id="4235200303672858594">সম্পূর্ণ স্ক্রীন</translation> +<translation id="4225397296022057997">সমস্ত সাইটে</translation> +<translation id="4235200303672858594">সম্পূর্ণ স্ক্রিন</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> এর জন্য অ্যাকাউন্ট যোগ করুন</translation> <translation id="4235965441080806197">সাইন ইন বাতিল করুন</translation> <translation id="4239107879884489787">সমস্যা: Termina কম্পোনেন্ট লোড করা যায়নি।</translation> @@ -2128,6 +2138,7 @@ <translation id="4345703751611431217">সফ্টওয়্যার অসামঞ্জস্যতা: আরও জানুন</translation> <translation id="4348766275249686434">ত্রুটিগুলি সংগ্রহ</translation> <translation id="4350019051035968019">এই ডিভাইসটি একটি ভিন্ন ডোমেনের দ্বারা পরিচালনার জন্য চিহ্নিত হওয়ায় আপনার অ্যাকাউন্টটি যে ডোমেনের আওতায় রয়েছে তাতে নথিভুক্ত করা যাবে না৷</translation> +<translation id="4354266305752237763">নিজেকে এবং নিজের ডিভাইসকে বিপজ্জনক সাইট থেকে রক্ষা করুন (নিরাপদ ব্রাউজিং)</translation> <translation id="4356334633973342967">অথবা আপনার নিজের ড্রাইভার উল্লেখ করুন:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">নির্ভরশীল এক্সটেনশান(গুলি) হওয়ার কারণে ইনস্টল রয়েছে৷</translation> @@ -2136,6 +2147,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> একটি উইন্ডো শেয়ার করছে।</translation> <translation id="4364830672918311045">বিজ্ঞপ্তিগুলি প্রদর্শন করুন</translation> <translation id="4365673000813822030">উপস, সিঙ্ক কাজ করা বন্ধ করে দিয়েছে৷</translation> +<translation id="4370373819607756384">এই সেটিং নিয়ন্ত্রণ করতে <ph name="BEGIN_LINK" />ভাষা<ph name="END_LINK" /> বিকল্পে যান</translation> <translation id="4370975561335139969">আপনার লেখা ইমেল এবং পাসওয়ার্ড মিলছে না</translation> <translation id="437184764829821926">উন্নত ফন্ট সেটিংস</translation> <translation id="4372884569765913867">১x১</translation> @@ -2148,7 +2160,7 @@ <translation id="4384312707950789900">পছন্দের তালিকায় জুড়ুন</translation> <translation id="4384652540891215547">এক্সটেনশন সক্রিয় করুন</translation> <translation id="438503109373656455">সারাটোগা</translation> -<translation id="4387004326333427325">দূরবর্তী অবস্থান থেকে প্রমাণীকরণ শংসাপত্র প্রত্যাখ্যান করা হয়েছে</translation> +<translation id="4387004326333427325">দূরবর্তী লোকেশন থেকে প্রমাণীকরণ শংসাপত্র প্রত্যাখ্যান করা হয়েছে</translation> <translation id="4389091756366370506">ব্যবহারকারী<ph name="VALUE" /></translation> <translation id="4394049700291259645">অক্ষম</translation> <translation id="4400367121200150367">যে সাইটগুলি কখনও পাসওয়ার্ড সংরক্ষণ করে না সেগুলি এখানে দেখা যাবে</translation> @@ -2190,6 +2202,7 @@ <translation id="4462159676511157176">কাস্টম নাম সার্ভার</translation> <translation id="4467100756425880649">Chrome ওয়েব দোকান গ্যালারি</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" /> ফোল্ডারটি বড় করুন</translation> +<translation id="447252321002412580">Chrome-এর বৈশিষ্ট্য এবং পারফরম্যান্স উন্নত করে তুলতে সাহায্য করুন</translation> <translation id="4474155171896946103">সব কটি ট্যাব বুকমার্ক করুন...</translation> <translation id="4475552974751346499">ডাউনলোডগুলি খুঁজুন</translation> <translation id="4476590490540813026">ক্রীড়াবিদ</translation> @@ -2212,6 +2225,7 @@ <translation id="4514542542275172126">তত্ত্বাবধানে থাকা ব্যবহারকারী সেট করুন</translation> <translation id="451515744433878153">সরান</translation> <translation id="4518677423782794009">Chrome কি ক্র্যাশ করছে? অস্বাভাবিক শুরুর পৃষ্ঠা বা সরঞ্জামদন্ডগুলি দেখাচ্ছে? এমন অপ্রত্যাশিত বিজ্ঞাপন দেখাচ্ছে যেগুলির থেকে আপনি পরিত্রাণ পাচ্ছেন না, অথবা অন্য কোনোভাবে আপনার ব্রাউজিং অভিজ্ঞতা পরিবর্তন করছে? আপনি Chrome পরিষ্কারের সরঞ্জামটি ব্যবহার করে সমস্যাটির সমাধান করতে পারেন৷</translation> +<translation id="4518928191942891293">Termina VM-এর মধ্যে কন্টেনার চালু করা হচ্ছে।</translation> <translation id="4520385623207007473">কুকিগুলি ব্যবহার করা হচ্ছে</translation> <translation id="452039078290142656"><ph name="VENDOR_NAME" /> থেকে অজানা ডিভাইসগুলি</translation> <translation id="4522570452068850558">বিশদ বিবরণ</translation> @@ -2260,6 +2274,7 @@ <translation id="4589268276914962177">নতুন টার্মিনাল</translation> <translation id="4590324241397107707">ডেটাবেস সঞ্চয়স্থান</translation> <translation id="4593021220803146968">&এখানে যান <ph name="URL" /></translation> +<translation id="459505086032485258">Google পরিষেবার সেটিংস দেখুন</translation> <translation id="4595560905247879544">অ্যাপ্লিকেশান এবং এক্সটেনশানগুলি শুধুমাত্র পরিচালক (<ph name="CUSTODIAN_NAME" />) দ্বারা পরিবর্তন করা যাবে।</translation> <translation id="4596295440756783523">আপনার ফাইলে এমন শংসাপত্রগুলি রয়েছে যা এই সার্ভারগুলিকে শনাক্ত করে</translation> <translation id="4598556348158889687">সঞ্চয়স্থান ব্যবস্থাপনা</translation> @@ -2329,7 +2344,7 @@ <translation id="4707302005824653064">chrome.com এ পরিচালক (<ph name="CUSTODIAN_EMAIL" />) ব্যবহার এবং ইতিহাস পর্যালোচনা করতে পারেন৷</translation> <translation id="4707579418881001319">L2TP/IPসেকে + ব্যবহারকারীর শংসাপত্র</translation> <translation id="4707934200082538898">দয়া করে আরও নির্দেশাবলীর জন্য <ph name="BEGIN_BOLD" /> <ph name="MANAGER_EMAIL" /> <ph name="END_BOLD" /> এ আপনার ইমেল পরীক্ষা করুন৷</translation> -<translation id="4708794300267213770">নিদ্রা মোড থেকে জাগার সময় লক স্ক্রীন দেখান</translation> +<translation id="4708794300267213770">নিদ্রা মোড থেকে জাগার সময় লক স্ক্রিন দেখান</translation> <translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> থেকে প্রস্থান করুন</translation> <translation id="4711638718396952945">সেটিংস পুনরুদ্ধার করুন</translation> <translation id="4713544552769165154">Macintosh সফ্টওয়্যার ব্যবহার করে এমন একটি কম্পিউটারের জন্য এই ফাইলটি ডিজাইন করা হয়েছে৷ Chrome OS দ্বারা চালিত আপনার ডিভাইসটির সাথে এটি সামঞ্জস্যপূর্ণ নয়৷ একটি উপযুক্ত প্রতিস্থাপনযোগ্য অ্যাপ্লিকেশানের জন্য দয়া করে <ph name="BEGIN_LINK" />Chrome ওয়েব স্টোর<ph name="END_LINK" /> এ অনুসন্ধান করুন৷<ph name="BEGIN_LINK_HELP" />আরো জানুন<ph name="END_LINK_HELP" /></translation> @@ -2476,7 +2491,8 @@ <translation id="4917385247580444890">জোরালো</translation> <translation id="4918021164741308375">"<ph name="EXTENSION_NAME" />" এক্সটেনশন দ্বারা <ph name="ORIGIN" /> যোগাযোগ করতে চায়</translation> <translation id="4918086044614829423">স্বীকার</translation> -<translation id="4920887663447894854">এই পৃষ্ঠাতে আপনার অবস্থান নির্ধারণ করার জন্য নিম্নলিখিত সাইটগুলি অবরুদ্ধ করা হয়েছে:</translation> +<translation id="4920350943031252905">Chromebook-এ Linux-এর টুল, এডিটর এবং IDE চালান।</translation> +<translation id="4920887663447894854">এই পৃষ্ঠাতে আপনার লোকেশন নির্ধারণ করার জন্য নিম্নলিখিত সাইটগুলি অবরুদ্ধ করা হয়েছে:</translation> <translation id="492299503953721473">Android অ্যাপ্লিকেশানগুলি সরান</translation> <translation id="4923279099980110923">হ্যাঁ, আমি সাহায্য করতে চাই</translation> <translation id="4924352752174756392">১২x</translation> @@ -2512,7 +2528,7 @@ <translation id="4974733135013075877">প্রস্থান এবং চাইল্ডলক করুন</translation> <translation id="4977942889532008999">অ্যাক্সেস নিশ্চিত করুন</translation> <translation id="4980805016576257426">এই এক্সটেনশানটিতে ম্যালওয়্যার আছে।</translation> -<translation id="498294082491145744">কুকিজ, JavaScript, প্লাগ ইন, ভূ-অবস্থান, মাইক্রোফোন, ক্যামেরা ইত্যাদির মতো বৈশিষ্ট্যগুলিতে ওয়েবসাইটগুলির অ্যাক্সেস নিয়ন্ত্রণ করে, আপনার সেই সেটিংস পরিবর্তন করুন।</translation> +<translation id="498294082491145744">কুকিজ, JavaScript, প্লাগ ইন, ভূ-লোকেশন, মাইক্রোফোন, ক্যামেরা ইত্যাদির মতো বৈশিষ্ট্যগুলিতে ওয়েবসাইটগুলির অ্যাক্সেস নিয়ন্ত্রণ করে, আপনার সেই সেটিংস পরিবর্তন করুন।</translation> <translation id="4988526792673242964">পৃষ্ঠাসমূহ</translation> <translation id="49896407730300355">ঘড়ির কাঁটার &বিপরীত দিকে ঘোরান</translation> <translation id="4989966318180235467">&পশ্চাদপট পৃষ্ঠা পরিদর্শন করুন</translation> @@ -2636,9 +2652,10 @@ <translation id="5184063094292164363">&JavaScript কনসোল</translation> <translation id="5184662919967270437">আপনার ডিভাইস আপডেট করা হচ্ছে</translation> <translation id="5185386675596372454">"<ph name="EXTENSION_NAME" />"-এর নতুনতম সংস্করনটি অক্ষম হয়েছে কারণ এটির আরও বেশি অনুমতির প্রয়োজন৷</translation> -<translation id="5186650237607254032">আপনার ফোনের স্ক্রীন লক আপডেট করুন, যাতে করে আপনি যখন কাছাকাছি থাকবেন তখন এটি বন্ধ হয়৷ আপনি দ্রুত ফোনটি আনলক করবেন, এবং আপনার <ph name="DEVICE_TYPE" /> এ আরও ভালো Smart Lock-এর অভিজ্ঞতা উপভোগ করতে পারবেন৷</translation> +<translation id="5186650237607254032">আপনার ফোনের স্ক্রিন লক আপডেট করুন, যাতে করে আপনি যখন কাছাকাছি থাকবেন তখন এটি বন্ধ হয়৷ আপনি দ্রুত ফোনটি আনলক করবেন, এবং আপনার <ph name="DEVICE_TYPE" /> এ আরও ভালো Smart Lock-এর অভিজ্ঞতা উপভোগ করতে পারবেন৷</translation> <translation id="5187295959347858724">আপনি এখন <ph name="SHORT_PRODUCT_NAME" />এ প্রবেশ করেছেন৷ আপনার বুকমার্ক, ইতিহাস এবং অন্য সেটিংস আপনার Google অ্যাকাউন্টে সমন্বিত করা হচ্ছে৷</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">ব্রাউজিং এবং Chrome আরও উন্নত করে তুলতে Google-এর সাথে তথ্য আদান প্রদান করুন</translation> <translation id="5204967432542742771">পাসওয়ার্ড প্রবেশ করান</translation> <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" মুছবেন?</translation> <translation id="520621735928254154">শংসাপত্রের আমদানি ত্রুটি</translation> @@ -2669,13 +2686,14 @@ <translation id="5244474230056479698"><ph name="EMAIL" /> এ সিঙ্ক হচ্ছে</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> ক্র্যাশ করেছে৷ অ্যাপ পুনঃসূচনা করতে এই বেলুনটি ক্লিক করুন৷</translation> <translation id="5249624017678798539">ব্রাউজারটি ডাউনলোড সম্পন্ন হওয়ার পূর্বে ক্র্যাশ করেছে৷</translation> -<translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> আপনাকে স্থানীয় কন্টেন্ট দেওয়ার জন্য আপনার অবস্থান ব্যবহার করে। আপনি <ph name="SETTINGS_LINK" /> থেকে এটি পরিবর্তন করতে পারেন।</translation> +<translation id="5250372599208556903"><ph name="SEARCH_ENGINE_NAME" /> আপনাকে স্থানীয় কন্টেন্ট দেওয়ার জন্য আপনার লোকেশন ব্যবহার করে। আপনি <ph name="SETTINGS_LINK" /> থেকে এটি পরিবর্তন করতে পারেন।</translation> <translation id="5252456968953390977">রোমিং</translation> <translation id="5252653240322147470">পিন অবশ্যই <ph name="MAXIMUM" /> সংখ্যার চেয়ে ছোট হতে হবে</translation> <translation id="5253070652067921974">তৈরি করেছেন</translation> <translation id="5254368820972107711">যে ফাইলগুলি সরানো হবে সেগুলি দেখান</translation> <translation id="52550593576409946">Kiosk অ্যাপ্লিকেশান লঞ্চ করা যায়নি৷</translation> <translation id="5255315797444241226">আপনার প্রবেশ করানো পাসফ্রেজটি ভুল৷</translation> +<translation id="5256861893479663409">সমস্ত সাইটে</translation> <translation id="5260508466980570042">দুঃখিত, আপনার ইমেল বা পাসওয়ার্ড যাচাই হয়নি৷ দয়া করে আবার চেষ্টা করুন৷</translation> <translation id="5261683757250193089">ওয়েব দোকানে খুলুন</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />যে কোনো জায়গা থেকে এমনকি অফলাইনে থাকাকালীনও, ফাইলগুলি অ্যাক্সেস করুন।<ph name="MARKUP_2" /> @@ -2723,7 +2741,7 @@ <translation id="5319566035256672173">এই ডিভাইসে আর লেটেস্ট সফ্টওয়্যার আপডেট করা যাবে না। অনুগ্রহ করে আপগ্রেড করার বিষয়ে ভেবে দেখুন।</translation> <translation id="532247166573571973">সার্ভারে সংযোগ নাও হতে পারে। পরে আবার চেষ্টা করুন।</translation> <translation id="532360961509278431">"$1": $2 খুলতে অক্ষম</translation> -<translation id="5324780743567488672">আপনার অবস্থান ব্যবহার করে স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন</translation> +<translation id="5324780743567488672">আপনার লোকেশন ব্যবহার করে স্বয়ংক্রিয়ভাবে সময় অঞ্চল সেট করুন</translation> <translation id="5327248766486351172">নাম</translation> <translation id="532776649628038357">আমি রাজি</translation> <translation id="532943162177641444">এই ডিভাইসে ব্যবহার করার জন্য মোবাইল হটস্পট সেট আপ করতে আপনার <ph name="PHONE_NAME" /> এ বিজ্ঞপ্তিটির উপরে ক্লিক করুন।</translation> @@ -2837,7 +2855,7 @@ <translation id="5485102783864353244">অ্যাপ্লিকেশান যোগ করুন</translation> <translation id="5485754497697573575">সকল ট্যাব পুনরুদ্ধার করুন</translation> <translation id="5486261815000869482">পাসওয়ার্ড নিশ্চিত করুন</translation> -<translation id="5486275809415469523"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রীন ভাগ করছে৷</translation> +<translation id="5486275809415469523"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রিন ভাগ করছে৷</translation> <translation id="5486561344817861625">ব্রাউজার আরম্ভ অনুকরণ করুন</translation> <translation id="5487521232677179737">ডেটা সাফ করুন</translation> <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' কপি করা হয়েছে</translation> @@ -2896,6 +2914,8 @@ <translation id="555746285996217175">লক / পাওয়ার</translation> <translation id="5557991081552967863">নিষ্ক্রিয় থাকাকালীন ওয়াই-ফাই চালু রাখুন</translation> <translation id="5558129378926964177">Zoom &In</translation> +<translation id="5558446705802335921">আপনার দেখা সাইটে এবং ডাউনলোড করা ফাইলে ফিশিং বা ম্যালওয়্যারের মতো ক্ষতিকারক কিছু আছে কিনা দেখে</translation> +<translation id="5559719557406102971">Termina VM চালু করা হচ্ছে।</translation> <translation id="55601339223879446">প্রদর্শনের মধ্যে আপনার ডেস্কটপ সীমানার সামঞ্জস্যবিধান করুন</translation> <translation id="5562781907504170924">এই ট্যাবটি একটি ব্লুটুথ ডিভাইসে সংযুক্ত হয়ে আছে।</translation> <translation id="5565871407246142825">ক্রেডিট কার্ডসমূহ</translation> @@ -3061,7 +3081,7 @@ <translation id="5827266244928330802">Safari</translation> <translation id="5828633471261496623">মুদ্রন হচ্ছে...</translation> <translation id="5829401023154985950">পরিচালনা...</translation> -<translation id="5830410401012830739">অবস্থান সেটিংস পরিচালনা করুন...</translation> +<translation id="5830410401012830739">লোকেশন সেটিংস পরিচালনা করুন...</translation> <translation id="5830720307094128296">&পৃষ্ঠা সেভ করুন...</translation> <translation id="5832805196449965646">একজন ব্যক্তিকে যোগ করুন</translation> <translation id="583281660410589416">অজানা</translation> @@ -3099,6 +3119,7 @@ <translation id="5863445608433396414">ডিবাগিং বৈশিষ্ট্যাবলী সক্ষম করুন</translation> <translation id="5864471791310927901">DHCP লুকআপ ব্যর্থ</translation> <translation id="586567932979200359">আপনি <ph name="PRODUCT_NAME" /> থেকে এটির ডিস্ক ছবি চালাচ্ছেন৷ এটিকে আপনার কম্পিউটারে ইনস্টল করা হলে তা ডিস্ক ছবি ছাড়াই এটিকে চালাতে দেয় এবং এটিকে আপ টু ডেট রাখা নিশ্চিত করে৷</translation> +<translation id="5865733239029070421">ব্যবহারের পরিসংখ্যান এবং ক্র্যাশ রিপোর্ট নিজে থেকেই Google-কে পাঠায়</translation> <translation id="5866557323934807206">ভবিষ্যতের ভিজিটগুলির জন্য এই সেটিংস সাফ করুন </translation> <translation id="5866840822086176774">খুব জোরালো</translation> <translation id="5867841422488265304">ওয়েব ঠিকানা খুঁজুন বা লিখুন</translation> @@ -3149,6 +3170,7 @@ <translation id="5957613098218939406">আরও বিকল্পগুলি</translation> <translation id="5958529069007801266">তত্ত্বাবধানে থাকা ব্যবহারকারী</translation> <translation id="5959471481388474538">নেটওয়ার্ক উপলব্ধ নয়</translation> +<translation id="595959584676692139">এই এক্সটেনশনটি ব্যবহার করার জন্য পৃষ্ঠাটি আবার লোড করুন</translation> <translation id="5963026469094486319">থিমগুলি পান</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> পিক)</translation> <translation id="5965661248935608907">আপনি হোম বোতাম ক্লিক করলে বা Omnibox থেকে অনুসন্ধান করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation> @@ -3194,7 +3216,7 @@ <translation id="604001903249547235">ক্লাউড ব্যাকআপ</translation> <translation id="6040143037577758943">বন্ধ</translation> <translation id="6040852767465482106">নামহীন পরিচয়</translation> -<translation id="6041155700700864984">সম্পূর্ণ স্ক্রীন থেকে বেরিয়ে আসুন</translation> +<translation id="6041155700700864984">সম্পূর্ণ স্ক্রিন থেকে বেরিয়ে আসুন</translation> <translation id="604124094241169006">স্বয়ংক্রিয়</translation> <translation id="6042169520002885235">প্রিন্টার প্রস্তুতকারক এবং মডেল বেছে নিন</translation> <translation id="6042308850641462728">আরও</translation> @@ -3210,7 +3232,7 @@ <translation id="6056710589053485679">সাধারণ পুনঃলোড</translation> <translation id="6059652578941944813">শংসাপত্র শ্রেণীক্রম</translation> <translation id="6059925163896151826">USB ডিভাইসগুলি</translation> -<translation id="6064217302520318294">স্ক্রীন লক</translation> +<translation id="6064217302520318294">স্ক্রিন লক</translation> <translation id="6065289257230303064">শংসাপত্র বিষয় নির্দেশিকা গুণাবলী</translation> <translation id="6068338049763724728">দূর থেকে যোগ করা সক্ষম করুন</translation> <translation id="6069671174561668781">ওয়ালপেপার সেট করুন</translation> @@ -3221,6 +3243,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> নামের ডিভাইসের সাথে ডেটা বিনিময় করুন</translation> <translation id="6076448957780543068">এই স্ক্রীনশটটি অন্তর্ভুক্ত করুন</translation> <translation id="6077131872140550515">পছন্দের তালিকা থেকে সরান</translation> +<translation id="6078323886959318429">শর্টকাট যোগ করুন</translation> <translation id="6078752646384677957">অনুগ্রহ করে আপনার মাইক্রোফোন এবং অডিওর স্তর ভালকরে দেখে নিন।</translation> <translation id="6080515710685820702">শেয়ার করা কম্পিউটার ব্যবহার করছেন? তাহলে ছদ্মবেশী উইন্ডো ব্যবহার করুন।</translation> <translation id="6080689532560039067">আপনার সিস্টেমের সময় চেক করুন</translation> @@ -3290,7 +3313,7 @@ <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6178664161104547336">একটি শংসাপত্র বেছে নিন</translation> <translation id="6181431612547969857">ডাউনলোড অবরুদ্ধ রয়েছে</translation> -<translation id="6185132558746749656">ডিভাইসের অবস্থান</translation> +<translation id="6185132558746749656">ডিভাইসের লোকেশন</translation> <translation id="6185696379715117369">পৃষ্ঠায় উপরের দিকে যান</translation> <translation id="6189273858858366896">নেটওয়ার্ক ফাইল শেয়ার সেট-আপ বা পরিচালনা করুন।</translation> <translation id="6189412234224385711"><ph name="EXTENSION_NAME" /> এর মাধ্যমে খুলুন</translation> @@ -3320,9 +3343,10 @@ <translation id="6231881193380278751">পৃষ্ঠাটি অটো-রিফ্রেশ করতে URL এ কোনো ক্যোয়ারী পারাম যোগ করুন: chrome://device-log/?refresh=<sec></translation> <translation id="6232017090690406397">ব্যাটারি: %</translation> <translation id="6232116551750539448"><ph name="NAME" /> এর সাথে সংযোগ বিচ্ছিন্ন হয়েছে</translation> -<translation id="6237816943013845465">আপনাকে আপনার স্ক্রীন রেজোলিউশন পরিবর্তন করতে অনুমতি দেয়</translation> +<translation id="6237816943013845465">আপনাকে আপনার স্ক্রিন রেজোলিউশন পরিবর্তন করতে অনুমতি দেয়</translation> <translation id="6238923052227198598">লেটেস্ট নোটটি লক স্ক্রিনে রাখুন</translation> <translation id="6239558157302047471">আবার লোড করার &ফ্রেম</translation> +<translation id="6240004034869232531">আন-ইনস্টল হচ্ছে...</translation> <translation id="6241530762627360640">আপনার সিস্টেমের সঙ্গে যুক্ত করা ব্লুটুথ ডিভাইসগুলির সম্পর্কে তথ্য অ্যাক্সেস করুন এবং কাছাকাছি ব্লুটুথ ডিভাইসগুলি খুঁজুন।</translation> <translation id="6243280677745499710">বর্তমানে সেট করা রয়েছে</translation> <translation id="6243774244933267674">সার্ভার অনুপলব্ধ</translation> @@ -3390,7 +3414,7 @@ <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> এর জন্য একটি নতুন প্রোফাইল তৈরি করুন</translation> <translation id="6340017061976355871">সার্ভারে সংযোগ করা যায়নি। অনুগ্রহ করে আপনার নেটওয়ার্ক সংযোগ যাচাই করে আবার চেষ্টা করুন। যদি সমস্যাটি চলতে থাকে তাহলে আপনার Chromebook রিস্টার্ট করুন।</translation> <translation id="6340071272923955280">ইন্টারনেট প্রিন্ট প্রোটোকল (IPPS)</translation> -<translation id="6341850831632289108">আপনার শারীরিক অবস্থান শনাক্ত করুন</translation> +<translation id="6341850831632289108">আপনার শারীরিক লোকেশন শনাক্ত করুন</translation> <translation id="634208815998129842">কার্য পরিচালক</translation> <translation id="6344170822609224263">নেটওয়ার্ক সংযোগের তালিকা অ্যাক্সেস করে</translation> <translation id="6346310558342052870">সীমাবদ্ধ অ্যাক্সেস</translation> @@ -3426,7 +3450,6 @@ <translation id="6406303162637086258">ব্রাউজার আরম্ভ অনুকরণ করুন</translation> <translation id="6406506848690869874">সিঙ্ক</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, ও <ph name="WEBSITE_3" /> এ আপনার ডেটা পড়ুন এবং পরিবর্তন করুন</translation> -<translation id="6409731863280057959">পপ-আপসমূহ</translation> <translation id="6410257289063177456">ছবি ফাইলসমূহ</translation> <translation id="6410328738210026208">চ্যানেল পরিবর্তন করুন এবং পাওয়ারওয়াশ করুন</translation> <translation id="6410668567036790476">সার্চ ইঞ্জিন যোগ করুন</translation> @@ -3505,7 +3528,7 @@ <translation id="6514010653036109809">উপলব্ধ ডিভাইস:</translation> <translation id="6514565641373682518">এই পৃষ্ঠাটি আপনার মাউস কার্সরকে অক্ষম করেছে৷</translation> <translation id="6518014396551869914">ছবি ক&পি করুন</translation> -<translation id="651942933739530207">আপনার স্ক্রীন এবং অডিও আউটপুট শেয়ার করতে আপনি কি <ph name="APP_NAME" /> চান?</translation> +<translation id="651942933739530207">আপনার স্ক্রিন এবং অডিও আউটপুট শেয়ার করতে আপনি কি <ph name="APP_NAME" /> চান?</translation> <translation id="6519437681804756269">[<ph name="TIMESTAMP" />] <ph name="FILE_INFO" /> <ph name="EVENT_NAME" /></translation> @@ -3555,6 +3578,7 @@ <translation id="6596745167571172521">Caps Lock অক্ষম করুন</translation> <translation id="6596816719288285829">IP ঠিকানা</translation> <translation id="6597017209724497268">নমুনাগুলি</translation> +<translation id="6597332018579308636">অ্যাক্সেস দিন</translation> <translation id="659934686219830168">আপনি এই পৃষ্ঠা ছেড়ে গেলে সিঙ্ক করা শুরু হবে</translation> <translation id="6602353599068390226">অন্য ডিসপ্লেতে উইন্ডোটি সরান</translation> <translation id="6602956230557165253">নেভিগেট করার জন্য বাঁ ও ডান তীরগুলি ব্যবহার করুন৷</translation> @@ -3620,6 +3644,7 @@ <translation id="6690751852586194791">এই ডিভাইসটিতে যোগ করতে একটি তত্ত্বাবধানে থাকা ব্যবহারকারী নির্বাচন করুন৷</translation> <translation id="6691331417640343772">Google ড্যাশবোর্ডে সিঙ্ক হওয়া ডেটা পরিচালনা করুন</translation> <translation id="6691936601825168937">&ফরওয়ার্ড</translation> +<translation id="6697492270171225480">কোনও একটি পৃষ্ঠা খুঁজে পাওয়া না গেলে একইরকম আরও পৃষ্ঠার সাজেশন দেখুন</translation> <translation id="6698810901424468597"><ph name="WEBSITE_1" /> ও <ph name="WEBSITE_2" /> এ আপনার ডেটা পড়ুন এবং পরিবর্তন করুন</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> কাস্ট করুন</translation> <translation id="6701535245008341853">প্রোফাইল পাওয়া যায়নি৷</translation> @@ -3630,7 +3655,6 @@ <translation id="6708242697268981054">উৎস:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> ব্যবহার করে সংযোগ করুন</translation> <translation id="6710213216561001401">পূর্ববর্তী</translation> -<translation id="6716704051134091292">PDF রূপান্তরকারী</translation> <translation id="6718273304615422081">জিপ করা হচ্ছে...</translation> <translation id="671928215901716392">স্ক্রিন লক করুন</translation> <translation id="67211069045302358">এই সাইটের সেটিংস রিসেট করবেন?</translation> @@ -3677,7 +3701,7 @@ <translation id="6787839852456839824">কীবোর্ড শর্টকাটগুলি</translation> <translation id="6788210894632713004">এক্সটেনশান প্যাকমুক্ত করুন</translation> <translation id="6790428901817661496">চালু করুন</translation> -<translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> কে দূরবর্তী অবস্থান থেকে যোগ করা হয়েছিল</translation> +<translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> কে দূরবর্তী লোকেশন থেকে যোগ করা হয়েছিল</translation> <translation id="6790820461102226165">ব্যক্তিকে যোগ করুন...</translation> <translation id="6792072150955115067"><ph name="APP_NAME" /> আপনার স্ক্রীনের সামগ্রী <ph name="TARGET_NAME" /> এর সঙ্গে শেয়ার করতে চায়। আপনি কী শেয়ার করতে চান তা বেছে নিন।</translation> <translation id="6793604637258913070">পাঠ্য লেখার সূচিত চিহ্নটি যখন নড়াচড়া করে বা প্রদর্শিত হয় তখন একে হাইলাইট করুন</translation> @@ -3754,7 +3778,6 @@ <translation id="6920989436227028121">নিয়মিত ট্যাব রূপে খুলুন</translation> <translation id="6922128026973287222">Google ডেটা সেভার ব্যবহার করে তথ্য সেভ করুন এবং দ্রুত ব্রাউস করুন৷ আরও জানতে ক্লিক করুন৷</translation> <translation id="6923132443355966645">স্ক্রোল / ক্লিক করুন</translation> -<translation id="6929555043669117778">পপ-আপগুলি ব্লক করা চালিয়ে যান</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> ইনস্টল করার সময়ে সমস্যা...</translation> <translation id="6930242544192836755">সময়কাল</translation> <translation id="6934241953272494177">আপনার মিডিয়া ডিভাইস স্ক্যান করা হচ্ছে... @@ -3775,7 +3798,7 @@ <translation id="6965382102122355670">ঠিক আছে</translation> <translation id="6965648386495488594">পোর্ট</translation> <translation id="6965978654500191972">ডিভাইস</translation> -<translation id="6968288415730398122">স্ক্রীন লক কনফিগার করতে আপনার পাসওয়ার্ড লিখুন</translation> +<translation id="6968288415730398122">স্ক্রিন লক কনফিগার করতে আপনার পাসওয়ার্ড লিখুন</translation> <translation id="6970480684834282392">প্রারম্ভিক প্রকার</translation> <translation id="6970856801391541997">প্রিন্ট নির্দিষ্ট পৃষ্ঠাসমূহ</translation> <translation id="6972180789171089114">অডিও/ভিডিও</translation> @@ -3864,9 +3887,9 @@ <translation id="7088434364990739311">আপডেট যাচাই সূচনা হতে ব্যর্থ হয়েছে (ত্রুটি কোড <ph name="ERROR" />)৷</translation> <translation id="7088561041432335295">জিপ আর্কাইভার - Files অ্যাপে জিপ ফাইলগুলি খুলুন ও প্যাক করুন</translation> <translation id="7088674813905715446">প্রশাসকের দ্বারা এই ডিভাইসটি অ্যাক্সেসহীন অবস্থায় রাখা হয়েছে। নথীভুক্তের জন্য এটি সক্ষম করতে, দয়া করে একটি মুলতুবি স্থিতিতে আপনার প্রশাসককে ডিভাইসটি রাখতে দিন।</translation> -<translation id="7092106376816104">পপ-আও ব্যতিক্রম</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" />: নামের্ ডিভাইসসমূহের সাথে ডেটা বিনিময় করুন</translation> +<translation id="7096406577040705016">ফুলস্ক্রিন ম্যাগনিফায়ার চালু বা বন্ধ করুন</translation> <translation id="7098447629416471489">অন্যান্য সংরক্ষিত সার্চ ইঞ্জিন এখানে দেখা যাবে</translation> <translation id="7099337801055912064">বড় PPD লোড করা যাবে না। সর্বাধিক সাইজ ২৫০ কেবি।</translation> <translation id="7100897339030255923"><ph name="COUNT" />টি আইটেম নির্বাচিত</translation> @@ -3943,7 +3966,7 @@ <translation id="7222232353993864120">ইমেল ঠিকানা</translation> <translation id="7222373446505536781">F11</translation> <translation id="7225179976675429563">নেটওয়ার্কের প্রকার হারিয়ে গেছে</translation> -<translation id="7228479291753472782">ভৌগোলিক অবস্থান, মাইক্রোফোন, ক্যামেরা, ইত্যাদির মতো বৈশিষ্ট্যগুলিকে ওয়েবসাইটগুলি ব্যবহার করতে পারবে কিনা তা নির্দিষ্ট করতে সেটিংস নিয়ন্ত্রণ করে।</translation> +<translation id="7228479291753472782">ভৌগোলিক লোকেশন, মাইক্রোফোন, ক্যামেরা, ইত্যাদির মতো বৈশিষ্ট্যগুলিকে ওয়েবসাইটগুলি ব্যবহার করতে পারবে কিনা তা নির্দিষ্ট করতে সেটিংস নিয়ন্ত্রণ করে।</translation> <translation id="7228523857728654909">স্ক্রিন লক এবং সাইন-ইন</translation> <translation id="7229570126336867161">EVDO এর প্রয়োজন</translation> <translation id="7230787553283372882">আপনার পাঠ্যের আকার কাস্টমাইজ করুন</translation> @@ -4080,11 +4103,10 @@ <translation id="744341768939279100">একটি নতুন প্রোফাইল তৈরি করুন</translation> <translation id="7444726222535375658">Hangouts Meet চালিয়ে যেতে</translation> <translation id="7444983668544353857">অক্ষম <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">পপ-আপগুলি ব্লক করা হয়েছে</translation> <translation id="7453008956351770337">এই প্রিন্টারটি নির্বাচন করে, আপনি নিম্নল্লিখিত এক্সটেনশানটিকে আপনার প্রিন্টারে অ্যাক্সেস করার অনুমতি দিচ্ছেন:</translation> <translation id="7453467225369441013">বেশিরভাগ সাইট থেকে আপনাকে সাইন-আউট করিয়ে দেয়। তবে আপনার Google অ্যাকাউন্ট থেকে আপনাকে সাইন-আউট করানো হবে না।</translation> <translation id="7456142309650173560">dev</translation> -<translation id="7456847797759667638">অবস্থান খুলুন...</translation> +<translation id="7456847797759667638">লোকেশন খুলুন...</translation> <translation id="7461924472993315131">পিন</translation> <translation id="7463006580194749499">একজন ব্যক্তিকে যোগ করুন</translation> <translation id="7464490149090366184">জিপ করা ব্যর্থ হয়েছে, আইটেম বিদ্যমান: "$1"</translation> @@ -4296,7 +4318,7 @@ <ph name="EXTENSION_NAME" /></translation> <translation id="7788383851298063850">কী ঘটছে তা আমাদের বলুন</translation> <translation id="7788444488075094252">ভাষা এবং ইনপুট</translation> -<translation id="7788668840732459509">অবস্থান:</translation> +<translation id="7788668840732459509">লোকেশন:</translation> <translation id="7791543448312431591">জুড়ুন</translation> <translation id="7792012425874949788">প্রবেশ করার সময় কিছু সমস্যা হয়েছে</translation> <translation id="7792388396321542707">শেয়ার করা বন্ধ করুন</translation> @@ -4323,6 +4345,25 @@ <ph name="LINE_BREAK2" /> কিছু ফটো বেছে নেওয়ার চেষ্টা করুন।</translation> <translation id="782590969421016895">বর্তমান পৃষ্ঠাগুলি ব্যবহার করুন</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />ডিবাগিং বৈশিষ্ট্য<ph name="END_H3" /> + <ph name="BR" /> + আপনি Chrome OS ডিভাইসে কাস্টম কোড ইনস্টল এবং পরীক্ষা করার জন্য ডিবাগিং বৈশিষ্ট্যগুলি চালু করতে পারেন। এতে আপনি:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />OS ফাইলে পরিবর্তন করার জন্য rootfs যাচাইকরণের ধাপটি সরিয়ে দিতে পারেন + <ph name="LIST_ITEM" /><ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" />-এর মতো টুলের মাধ্যমে ডিভাইস অ্যাক্সেস করার জন্য স্ট্যান্ডার্ড টেস্ট কী ব্যবহার করে ডিভাইসে SSH অ্যাক্সেস চালু করতে পারেন + <ph name="LIST_ITEM" />ইউএসবি ড্রাইভ থেকে OS ইমেজ ইনস্টল করার জন্য ইউএসবি থেকে বুট করার সুবিধা চালু করতে পারেন + <ph name="LIST_ITEM" />ডিভাইসে ম্যানুয়ালি SSH করার জন্য ডেভেলপার এবং সিস্টেম রুট লগ-গিন পাসওয়ার্ড দুটি কাস্টম মানে সেট করতে পারেন + <ph name="END_LIST" /> + <ph name="BR" /> + ডিবাগিং চালু করা হলে এর বেশিরভাগ বৈশিষ্ট্য পাওয়ারওয়াশ করা অথবা এন্টারপ্রাইজ দ্বারা পরিচালিত ডিভাইস থেকে ডেটা মুছে দেওয়ার পরেও চালু রয়ে যাবে। সমস্ত ডিবাগিং বৈশিষ্ট্য বন্ধ করার জন্য Chrome OS ফিরিয়ে আনার সম্পূর্ণ প্রক্রিয়াটি অনুসরণ করুন +(https://support.google.com/chromebook/answer/1080595)। + <ph name="BR" /> + <ph name="BR" /> + ডিবাগিং বৈশিষ্টের বিষয়ে আরও তথ্যের জন্য এখানে যান:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />দ্রষ্টব্য:<ph name="END_BOLD" /> এটি করলে সিস্টেম রিবুট করা হবে।</translation> <translation id="7829298379596169484">অডিও ইনপুট অ্যাক্সেস করা হচ্ছে</translation> <translation id="7831491651892296503">নেটওয়ার্ক কনফিগার করার সময় ত্রুটি</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4386,20 +4427,21 @@ <translation id="7912080627461681647">সার্ভারে আপনার পাসওয়ার্ড পাল্টানো হয়েছে। অনুগ্রহ করে সাইন-আউট করে আবার সাইন-ইন করুন।</translation> <translation id="7912883689016444961">মোবাইল নেটওয়ার্ক কনফিগার করুন</translation> <translation id="7915471803647590281">প্রতিক্রিয়াটি প্রেরণের আগে কী ঘটছে তা দয়া করে আমাদের জানান৷ </translation> +<translation id="7916556741383518510">ক্লিক করা হলে</translation> <translation id="792514962475806987">ডক করা জুম লেবেল:</translation> <translation id="7925247922861151263">AAA যাচাই ব্যর্থ</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" />-এর জন্য অপেক্ষা করা হচ্ছে...</translation> <translation id="7925686952655276919">সিঙ্ক-এর জন্য মোবাইল ডেটা ব্যবহার করবেন না</translation> <translation id="7926423016278357561">এটা আমি নই।</translation> <translation id="7928710562641958568">বের করে দেওযার ডিভাইস</translation> -<translation id="79312157130859720"><ph name="APP_NAME" /> আপনার স্ক্রীন এবং অডিও শেয়ার করছে।</translation> +<translation id="79312157130859720"><ph name="APP_NAME" /> আপনার স্ক্রিন এবং অডিও শেয়ার করছে।</translation> <translation id="7931318309563332511">অজানা</translation> <translation id="7934414805353235750"><ph name="URL" /> সুরক্ষিত কন্টেন্ট চালাতে চায়। আপনার ডিভাইসের পরিচয় Google দ্বারা যাচাই করা হবে।</translation> <translation id="7938594894617528435">বর্তমানে অফলাইন</translation> <translation id="7939062555109487992">অগ্রণী বিকল্পসমূহ</translation> <translation id="7939412583708276221">যে কোনও অবস্থাতেই রাখুন</translation> <translation id="7939997691108949385">পরিচালক <ph name="MANAGEMENT_URL" /> এ এই তত্ত্বাবধানে থাকা ব্যবহারকারীর জন্য বিধিনিষেধ এবং সেটিংস কনফিগার করতে সক্ষম হবেন৷</translation> -<translation id="7943837619101191061">অবস্থান যোগ করুন...</translation> +<translation id="7943837619101191061">লোকেশন যোগ করুন...</translation> <translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" এদের সাথে সংযোগ স্থাপন করতে চায়</translation> <translation id="794676567536738329">অনুমতিগুলি নিশ্চিত করুন</translation> <translation id="7947962633355574091">ভি&ডিও ঠিকানা কপি করুন</translation> @@ -4426,6 +4468,7 @@ <translation id="7978412674231730200">ব্যক্তিগত কী</translation> <translation id="7979036127916589816">সিঙ্ক ত্রুটি</translation> <translation id="7980084013673500153">সম্পত্তি আইডি: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">আরও দ্রুত ব্রাউজ করা এবং খোঁজার জন্য পৃষ্ঠা আগে লোড করুন</translation> <translation id="7982083145464587921">এই ত্রুটি সংশোধন করতে দয়া করে আপনার ডিভাইসটি আবার চালু করুন৷</translation> <translation id="7982283708762922719">উচ্চতা</translation> <translation id="7982789257301363584">নেটওয়ার্ক</translation> @@ -4502,6 +4545,7 @@ <translation id="8072988827236813198">ট্যাবগুলি পিন করুন</translation> <translation id="8074127646604999664">সম্প্রতি বন্ধ করা সাইটগুলিকে ডেটা পাঠানো ও গ্রহণ শেষ করতে অনুমতি দিন</translation> <translation id="8075191520954018715">মেমরি স্থিতি</translation> +<translation id="8076492880354921740">ট্যাবগুলি</translation> <translation id="8076835018653442223">আপনার প্রশাসকের দ্বারা আপনার ডিভাইসে স্থানীয় ফাইলের অ্যাক্সেস বন্ধ করা আছে</translation> <translation id="8077684120002777443">ইউজারনেম (উদাঃ user@example.com)</translation> <translation id="8077816382010018681">QU বৈশিষ্ট্য বিজ্ঞপ্তির শিরোনাম এখানে থাকবে</translation> @@ -4642,7 +4686,7 @@ <translation id="8312871300878166382">ফোল্ডারের মধ্যে আটকে দিন</translation> <translation id="8317671367883557781">নেটওয়ার্ক সংযোগ যোগ করুন</translation> <translation id="8319414634934645341">প্রসারিত কী ব্যবহার</translation> -<translation id="8320459152843401447">আপনার সম্পূর্ণ স্ক্রীন</translation> +<translation id="8320459152843401447">আপনার সম্পূর্ণ স্ক্রিন</translation> <translation id="8322814362483282060">এই পৃষ্ঠাটিকে আপনার মাইক্রোফোন অ্যাক্সেস করা থেকে অবরুদ্ধ করা হয়েছে৷</translation> <translation id="8326478304147373412">PKCS #7, শংসাপত্র শৃঙ্খল</translation> <translation id="8329978297633540474">সাধারণ পাঠ</translation> @@ -4784,7 +4828,6 @@ <translation id="8569682776816196752">কোনো গন্তব্যস্থল পাওয়া যায়নি</translation> <translation id="8569764466147087991">খুলতে একটি স্ক্রিপ্ট বেছে নিন</translation> <translation id="8571213806525832805">গত ৪ সপ্তাহ</translation> -<translation id="8571613743082299268">সাইটে রিডাইরেক্ট বিকল্প ব্লক করা আছে</translation> <translation id="8574990355410201600"><ph name="HOST" /> এ সবসময় সাউন্ড চালু রাখুন</translation> <translation id="8578639784464423491">৯৯টি অক্ষরের বেশি রাখা যাবে না</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" />টি আইটেম সিঙ্ক করা হচ্ছে...</translation> @@ -4829,13 +4872,14 @@ <translation id="8651585100578802546">এই পৃষ্ঠাটি পুনঃলোড করার জন্য জোর করুন</translation> <translation id="8652400352452647993">Pack এক্সটেনশানে ত্রুটি হয়েছে</translation> <translation id="8652487083013326477">পৃষ্ঠা শ্রেণি রেডিও বোতাম</translation> +<translation id="8653292045957015650">ডক করা ম্যাগনিফায়ার চালু বা বন্ধ করুন</translation> <translation id="8654151524613148204">আপনার কম্পিউটারের পক্ষে ফাইলটি পরিচালনা করার জন্য অত্যন্ত বড়৷ দুঃখিত৷</translation> <translation id="8655295600908251630">চ্যানেল</translation> <translation id="8655319619291175901">ওহো, কিছু সমস্যা হয়েছে৷</translation> <translation id="8655972064210167941">আপনার পাসওয়ার্ড যাচাই করতে না পারায় প্রবেশ করুন ব্যর্থ হয়েছে। দয়া করে আপনার প্রশাসকের সাথে যোগাযোগ করুন অথবা আবার চেষ্টা করুন।</translation> <translation id="8656768832129462377">চেক করবেন না</translation> <translation id="8658595122208653918">প্রিন্টের বিকল্পগুলি পরিবর্তন করুন...</translation> -<translation id="8658645149275195032"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রীন এবং অডিও শেয়ার করছে।</translation> +<translation id="8658645149275195032"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রিন এবং অডিও শেয়ার করছে।</translation> <translation id="8659875081143553823">একটু অপেক্ষা করুন</translation> <translation id="8661290697478713397">লিঙ্কটি ছ&দ্মবেশী উইন্ডোতে খুলুন</translation> <translation id="8662671328352114214"><ph name="TYPE" /> নেটওয়ার্কে সংযুক্ত হন</translation> @@ -4913,12 +4957,13 @@ <p>কিন্তু আপনি এখনও কম্যান্ড লাইনের মাধ্যমে কনফিগার করতে পারেন৷ ফ্ল্যাগ ও বিভিন্ন পরিবেশের উপর আরও তথ্যের জন্য দয়া করে <code>ম্যানুয়াল <ph name="PRODUCT_BINARY_NAME" /></code> দেখুন৷</p></translation> <translation id="8755376271068075440">&বৃহত্তর</translation> -<translation id="8757090071857742562">ডেস্কটপ কাস্ট করতে ব্যর্থ হয়েছে। আপনি আপনার স্ক্রীন শেয়ার করা শুরু করার জন্য প্রম্পটটি নিশ্চিত করেছেন কিনা তা দেখুন।</translation> +<translation id="8757090071857742562">ডেস্কটপ কাস্ট করতে ব্যর্থ হয়েছে। আপনি আপনার স্ক্রিন শেয়ার করা শুরু করার জন্য প্রম্পটটি নিশ্চিত করেছেন কিনা তা দেখুন।</translation> <translation id="8757640015637159332">সর্বজনীন সেশন প্রবশ করুন</translation> <translation id="8757742102600829832">সংযোগ করার জন্য কোনো Chromebox বেছে নিন</translation> <translation id="8757803915342932642">Google ক্লাউড ডিভাইসগুলিতে ডিভাইস</translation> <translation id="8759408218731716181">একাধিক সাইন-ইন সেট আপ করা যাবে না</translation> <translation id="8759753423332885148">আরও জানুন৷</translation> +<translation id="8762207669047572135">অ্যাক্সেস দিন</translation> <translation id="8767621466733104912">সকল ব্যবহারকারীর জন্য স্বয়ংক্রিয়ভাবে Chrome আপডেট করুন</translation> <translation id="8770406935328356739">এক্সটেনশান রুট ডিরেক্টরি</translation> <translation id="8770507190024617908">ব্যক্তিগণকে পরিচালনা করুন</translation> @@ -5003,7 +5048,7 @@ <translation id="8908902564709148335">সতর্কতা: আপনি এই কম্পিউটারে --স্ক্রিপ্টের-প্রয়োজনীয়-অ্যাকশন ফ্ল্যাগ সক্ষম করেছেন, যা এই এক্সটেনশানটির কার্যক্ষমতাকে সীমিত করে৷ যদিও, অন্য ডিভাইসগুলি এই পতাকা সমর্থন নাও করতে পারে বা এটি হয়ত সক্ষম করা নাও থাকতে পারে৷ এছাড়াও সেই ডিভাইসগুলিতে, এই এক্সটেনশানটি এগুলি করতে পারে:</translation> <translation id="8909233240676134608">ডোমেনে মেশিনটি যোগ করা যাবে না। সার্ভারটি নির্দিষ্ট Kerberos এনক্রিপশন ধরন সমর্থন করে না। এনক্রিপশন সেটিংসগুলির জন্য "আরও বিকল্প" দেখুন।</translation> <translation id="8909833622202089127">সাইটটি আপনার লোকেশন ট্র্যাক করছে</translation> -<translation id="8910146161325739742">আপনার স্ক্রীন শেয়ার করুন</translation> +<translation id="8910146161325739742">আপনার স্ক্রিন শেয়ার করুন</translation> <translation id="8910222113987937043">আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংসের পরিবর্তনগুলি এখন আর আপনার Google অ্যাকাউন্টের সাথে সিঙ্ক করা হবে না। তবে, আপনার বিদ্যমান ডেটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে এবং <ph name="BEGIN_LINK" />Google ড্যাশবোর্ড<ph name="END_LINK" /> থেকে পরিচালনা করা যাবে।</translation> <translation id="8912793549644936705">বিস্তার</translation> <translation id="8915370057835397490">লোড করার প্রস্তাব</translation> @@ -5047,7 +5092,9 @@ <translation id="8976520271376534479">এই পৃষ্ঠাতে ফ্ল্যাশ ব্লক করা হয়েছে।</translation> <translation id="8977811652087512276">ভুল পাসওয়ার্ড বা দূষিত ফাইল</translation> <translation id="8978154919215542464">চালু - সবকিছু সিঙ্ক করুন</translation> +<translation id="897939795688207351"><ph name="ORIGIN" />-এ</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ক্র্যাশ করেছে</translation> +<translation id="8983677657449185470">নিরাপদ ব্রাউজিং বৈশিষ্ট্যটি আরও উন্নত করে তুলতে সাহায্য করুন</translation> <translation id="8986362086234534611">ভুলে যান</translation> <translation id="8986494364107987395">ব্যবহারের পরিসংখ্যান এবং ক্র্যাশ প্রতিবেদনগুলি স্বয়ংক্রিয়ভাবে Google-এ পাঠান</translation> <translation id="8987927404178983737">মাস</translation> @@ -5056,6 +5103,7 @@ <translation id="8995603266996330174">পরিচালনা করেছেন <ph name="DOMAIN" /> </translation> <translation id="8996526648899750015">অ্যাকাউন্ট যোগ করুন...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">ডিস্ক ইমেজ তৈরি করা হচ্ছে।</translation> <translation id="9003647077635673607">সমস্ত ওয়েবসাইটে অনুমতি দিন</translation> <translation id="9003677638446136377">আবার পরীক্ষা করে দেখুন</translation> <translation id="9003704114456258138">ফ্রিকোয়েন্সি</translation> @@ -5073,7 +5121,7 @@ <translation id="9022847679183471841">এই অ্যাকাউন্টটি ইতোমধ্যে এই কম্পিউটারে <ph name="AVATAR_NAME" /> দ্বারা ব্যবহৃত হচ্ছে।</translation> <translation id="9023009238991294202">এই ডিভাইসের অন্যান্য ব্যবহারকারীরা এই নেটওয়ার্ক ব্যবহার করতে পারেন।</translation> <translation id="9024127637873500333">&নতুন ট্যাবে খুলুন</translation> -<translation id="9024331582947483881">পূর্ণ স্ক্রীন</translation> +<translation id="9024331582947483881">পূর্ণ স্ক্রিন</translation> <translation id="9025098623496448965">ঠিক আছে, আমাকে সাইন-ইন স্ক্রীনে ফিরিয়ে নিয়ে চলুন</translation> <translation id="9026731007018893674">ডাউনলোড</translation> <translation id="9027459031423301635">নতুন &ট্যাবে লিঙ্ক খুলুন</translation> @@ -5091,6 +5139,7 @@ <translation id="9042893549633094279">গোপনীয়তা এবং নিরাপত্তা</translation> <translation id="904451693890288097">দয়া করে "<ph name="DEVICE_NAME" />"-এর পাসকী লিখুন:</translation> <translation id="9044646465488564462">নেটওয়ার্কের সাথে সংযোগ করতে ব্যর্থ: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">আপনি যে পৃষ্ঠা খুলতে চাইছেন তার ওয়েব ঠিকানা Google-কে পাঠায়</translation> <translation id="9046895021617826162">সংযোগ ব্যর্থ হয়েছে</translation> <translation id="9050666287014529139">পাসফ্রেজ</translation> <translation id="9052208328806230490">আপনি আপনার মুদ্রকগুলি <ph name="EMAIL" /> অ্যাকাউন্টটি ব্যবহার করে <ph name="CLOUD_PRINT_NAME" />তে নিবন্ধীকৃত করেছেন</translation> @@ -5108,7 +5157,6 @@ <translation id="9065203028668620118">সম্পাদনা</translation> <translation id="9066782832737749352">পাঠ্য থেকে ভাষ্য</translation> <translation id="9070219033670098627">ব্যক্তি পরিবর্তন করুন</translation> -<translation id="907148966137935206">পপ-আপগুলি দেখানোর জন্য কোনও সাইটকে মঞ্জুরি দেবেন না (প্রস্তাবিত)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> ইনস্টল করা হচ্ছে…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> স্বয়ংক্রিয়ভাবে আপনার সংরক্ষণ করা পাসওয়ার্ড দিয়ে উপযুক্ত সাইট এবং অ্যাপ্লিকেশানগুলিতে আপনাকে প্রবেশ করায়।</translation> <translation id="9073281213608662541">PAP</translation> @@ -5212,7 +5260,7 @@ <translation id="942532530371314860"><ph name="APP_NAME" /> একটি Chrome ট্যাব ও অডিও শেয়ার করছে।</translation> <translation id="942954117721265519">এই ডিরেক্টরিতে কোনো ছবি নেই৷</translation> <translation id="943972244133411984">পরিবর্তন করেছেন</translation> -<translation id="945522503751344254">প্রতিক্রিয়া পাঠান</translation> +<translation id="945522503751344254">মতামত জানান</translation> <translation id="952992212772159698">সক্রিয় নেই</translation> <translation id="957960681186851048">এই সাইটটি নিজে থেকে একাধিক ফাইল ডাউনলোড করার চেষ্টা করেছে</translation> <translation id="9580706199804957">Google পরিষেবাগুলির সাথে সংযুক্ত করা যায়নি</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 544cfb5..aeebf9d 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Afegeix aquesta pàgina a les adreces d'interès...</translation> <translation id="1047956942837015229">S'estan suprimint <ph name="COUNT" /> elements...</translation> <translation id="1048286738600630630">Pantalles</translation> +<translation id="1049743911850919806">Incògnit</translation> <translation id="1049795001945932310">&Configuració d'idioma</translation> <translation id="1049926623896334335">Document de Word</translation> <translation id="1054153489933238809">Obre la &imatge original en una pestanya nova</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">El servidor de sincronització està ocupat; torneu-ho a provar d'aquí a una estona.</translation> <translation id="1784849162047402014">Queda poc espai al disc del dispositiu</translation> <translation id="1786636458339910689">Unitats d'equip</translation> -<translation id="1789575671122666129">Finestres emergents</translation> <translation id="1792619191750875668">Pantalla ampliada</translation> <translation id="1793119619663054394">Confirmes que vols suprimir <ph name="PROFILE_NAME" /> i totes les dades associades de Chrome en aquest ordinador? Aquesta acció no es pot desfer.</translation> <translation id="1794791083288629568">Envia suggeriments per ajudar-nos a solucionar el problema.</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">Després d'haver creat un usuari supervisat nou, podeu gestionar la configuració en qualsevol moment i des de qualsevol dispositiu a la pàgina <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Redueix la finestra cap a la dreta</translation> <translation id="1987139229093034863">Canvia a un altre usuari.</translation> +<translation id="1987317783729300807">Comptes</translation> <translation id="1989112275319619282">Examina</translation> <translation id="1992397118740194946">No establerta</translation> <translation id="1994173015038366702">URL del lloc</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">Heu introduït un índex de pestanya no vàlid.</translation> <translation id="2154484045852737596">Edita la targeta</translation> <translation id="2154710561487035718">Copia l'URL</translation> -<translation id="2155931291251286316">Permet sempre les finestres emergents de <ph name="HOST" /></translation> <translation id="215753907730220065">Surt de la pantalla completa</translation> <translation id="2157875535253991059">Ara aquesta pàgina es mostra a pantalla completa.</translation> <translation id="216169395504480358">Afegeix una Wi-Fi...</translation> @@ -1182,7 +1182,6 @@ <translation id="2799223571221894425">Reinicia</translation> <translation id="2803375539583399270">Introdueix el PIN</translation> <translation id="2805646850212350655">Sistema de xifratge de fitxers de Microsoft</translation> -<translation id="2805707493867224476">Permet que tots els llocs mostrin finestres emergents</translation> <translation id="2805756323405976993">Aplicacions</translation> <translation id="2807517655263062534">Aquí es mostren els fitxers baixats</translation> <translation id="2809586584051668049">i <ph name="NUMBER_ADDITIONAL_DISABLED" /> més</translation> @@ -1451,7 +1450,7 @@ <translation id="3236289833370040187">La propietat es transferirà a <ph name="DESTINATION_DOMAIN" />.</translation> <translation id="323803881985677942">Obre les opcions de l'extensió</translation> <translation id="3241680850019875542">Seleccioneu el directori arrel de l'extensió que voleu empaquetar. Per actualitzar una extensió, cal que seleccioneu també el fitxer de clau privada que s'utilitzarà.</translation> -<translation id="3242765319725186192">Clau precompartida d'IPSec:</translation> +<translation id="3242765319725186192">Clau precompartida:</translation> <translation id="3244294424315804309">Continua silenciant el so</translation> <translation id="3245321423178950146">Artista desconegut</translation> <translation id="3246097286174000800">Prova Smart Lock</translation> @@ -1615,7 +1614,6 @@ <translation id="347919930506963698">Treu encara més profit de Chrome</translation> <translation id="3479552764303398839">Ara no</translation> <translation id="3480892288821151001">Redueix la finestra cap a l'esquerra</translation> -<translation id="3481915276125965083">S'han bloquejat les finestres emergents següents en aquesta pàgina:</translation> <translation id="3484273680291419129">S'està suprimint el programari maliciós...</translation> <translation id="3484869148456018791">Obtén el certificat nou</translation> <translation id="3487007233252413104">funció anònima</translation> @@ -1721,7 +1719,6 @@ <translation id="3637682276779847508">Si no introdueixes el número PUK correcte, la targeta SIM es desactivarà de manera definitiva.</translation> <translation id="363903084947548957">Mètode d'introducció següent</translation> <translation id="3640214691812501263">Voleu afegir l'extensió <ph name="EXTENSION_NAME" /> per a <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Els usuaris convidats no poden gestionar les extensions. Per fer-ho, inicia la sessió.</translation> <translation id="3644896802912593514">Amplada</translation> <translation id="3646789916214779970">Restableix el tema predeterminat</translation> <translation id="3648348069317717750">S'ha detectat <ph name="USB_DEVICE_NAME" /></translation> @@ -2050,6 +2047,7 @@ <translation id="4140559601186535628">Missatges de tramesa automàtica</translation> <translation id="4146026355784316281">Obrir sempre amb el visualitzador del sistema</translation> <translation id="4146785383423576110">Restableix i neteja</translation> +<translation id="4147897805161313378">Google Fotos</translation> <translation id="4150201353443180367">Pantalla</translation> <translation id="4152670763139331043">{NUM_TABS,plural, =1{1 pestanya}other{# pestanyes}}</translation> <translation id="4154664944169082762">Empremtes</translation> @@ -2062,7 +2060,6 @@ <translation id="4172051516777682613">Mostra sempre</translation> <translation id="4175737294868205930">Emmagatzematge permanent</translation> <translation id="4176463684765177261">Desactivat</translation> -<translation id="4180684688621252156">Servei d'impressió</translation> <translation id="4180788401304023883">Voleu suprimir el certificat de CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Idiomes</translation> @@ -2513,7 +2510,7 @@ <translation id="4917385247580444890">Forta</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> es vol comunicar amb l'extensió "<ph name="EXTENSION_NAME" />"</translation> <translation id="4918086044614829423">Accepta</translation> -<translation id="4920350943031252905">Executa les eines, els editors i les galetes IDE de Linux a Chromebook.</translation> +<translation id="4920350943031252905">Executa les eines, els editors i els IDE de Linux a Chromebook.</translation> <translation id="4920887663447894854">Els llocs següents han bloquejat el seguiment de la vostra ubicació en aquesta pàgina:</translation> <translation id="492299503953721473">Suprimeix les aplicacions per a Android</translation> <translation id="4923279099980110923">Sí, vull contribuir-hi</translation> @@ -2843,7 +2840,7 @@ <translation id="542872847390508405">Esteu navegant com a convidat.</translation> <translation id="5428850089342283580"><ph name="ACCNAME_APP" /> (l'actualització està disponible)</translation> <translation id="5431318178759467895">Color</translation> -<translation id="5431825016875453137">VPN oberta / L2TP</translation> +<translation id="5431825016875453137">OpenVPN/L2TP</translation> <translation id="5432996274932278848">Fes cerques al dispositiu, en aplicacions i al web. Fes servir les tecles de fletxa per navegar per les aplicacions.</translation> <translation id="543381445212956829">Activa WiMAX</translation> <translation id="5434065355175441495">PKCS #1 amb encriptació RSA</translation> @@ -3273,6 +3270,7 @@ <translation id="6075907793831890935">Intercanviar dades amb el dispositiu <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Inclou aquesta captura de pantalla</translation> <translation id="6077131872140550515">Suprimeix de les preferides</translation> +<translation id="6078323886959318429">Afegeix una drecera</translation> <translation id="6078752646384677957">Comprova els nivells del micròfon i de l'àudio.</translation> <translation id="6080515710685820702">Utilitzes un ordinador compartit? Prova d'obrir una finestra d'incògnit.</translation> <translation id="6080689532560039067">Comprova l'hora del sistema</translation> @@ -3481,7 +3479,6 @@ <translation id="6406303162637086258">Simula el reinici del navegador</translation> <translation id="6406506848690869874">Sincronització</translation> <translation id="6408118934673775994">Llegir i modificar les dades dels llocs web <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Finestres emergents</translation> <translation id="6410257289063177456">Fitxers d'imatge </translation> <translation id="6410328738210026208">Canvia el canal i fes Powerwash</translation> <translation id="6410668567036790476">Afegeix un motor de cerca</translation> @@ -3688,7 +3685,6 @@ <translation id="6708242697268981054">Origen:</translation> <translation id="6709357832553498500">Connecta mitjançant <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Anterior</translation> -<translation id="6716704051134091292">Conversor de PDF</translation> <translation id="6718273304615422081">S'està comprimint...</translation> <translation id="671928215901716392">Bloqueja la pantalla</translation> <translation id="67211069045302358">Vols restablir la configuració d'aquest lloc web?</translation> @@ -3813,7 +3809,6 @@ <translation id="6920989436227028121">Obre-ho com a pestanya normal</translation> <translation id="6922128026973287222">Deseu les dades i agilitzeu la navegació amb Economitzador de dades de Google. Feu clic per obtenir més informació.</translation> <translation id="6923132443355966645">Desplaça't / fes clic</translation> -<translation id="6929555043669117778">Continua bloquejant les finestres emergents</translation> <translation id="6929835486583850209">S'ha produït un error en instal·lar <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Durada</translation> <translation id="6934241953272494177">S'està analitzant el dispositiu multimèdia... @@ -3923,7 +3918,6 @@ <translation id="7088434364990739311">La comprovació d'actualització no s'ha pogut iniciar (codi d'error <ph name="ERROR" />).</translation> <translation id="7088561041432335295">ZIP Archiver: obre i empaqueta fitxers ZIP a l'aplicació Fitxers.</translation> <translation id="7088674813905715446">L'administrador ha canviat l'estat d'aquest dispositiu perquè no es pugui utilitzar. Per permetre que us hi pugueu registrar, demaneu a l'administrador que en defineixi l'estat com a pendent.</translation> -<translation id="7092106376816104">Excepcions de finestres emergents</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Intercanviar dades amb els dispositius <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Activa o desactiva la lupa de pantalla completa</translation> @@ -4137,7 +4131,6 @@ <translation id="744341768939279100">Crea un perfil</translation> <translation id="7444726222535375658">Continua a Hangouts Meet</translation> <translation id="7444983668544353857">Desactiva <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">S'han bloquejat les finestres emergents</translation> <translation id="7453008956351770337">En seleccionar aquesta impressora, doneu permís a l'extensió següent per accedir a la vostra impressora:</translation> <translation id="7453467225369441013">Et tanca la sessió de la majoria de llocs web, però no la del compte de Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4463,7 +4456,7 @@ <translation id="7912883689016444961">Configura la xarxa mòbil</translation> <translation id="7915471803647590281">Indica'ns el problema abans d'enviar els comentaris.</translation> <translation id="7916556741383518510">En fer clic</translation> -<translation id="792514962475806987">Nivell de zoom de la lupa acoblada:</translation> +<translation id="792514962475806987">Nivell de zoom acoblat:</translation> <translation id="7925247922861151263">Error en la comprovació d'AAA</translation> <translation id="7925285046818567682">Esperant <ph name="HOST_NAME" />...</translation> <translation id="7925686952655276919">No utilitzis les dades mòbils per a la sincronització</translation> @@ -4580,6 +4573,7 @@ <translation id="8072988827236813198">Fixa les pestanyes</translation> <translation id="8074127646604999664">Permet que els llocs tancats fa poc acabin d'enviar i rebre dades</translation> <translation id="8075191520954018715">Estat de la memòria</translation> +<translation id="8076492880354921740">Pestanyes</translation> <translation id="8076835018653442223">L'administrador ha desactivat l'accés als fitxers locals del dispositiu</translation> <translation id="8077684120002777443">Nom d'usuari (per exemple, usuari@example.com)</translation> <translation id="8077816382010018681">El títol de la notificació per a la funció Desbloqueig ràpid va aquí</translation> @@ -4864,7 +4858,6 @@ <translation id="8569682776816196752">No s'ha trobat cap destinació</translation> <translation id="8569764466147087991">Seleccioneu el fitxer que vulgueu obrir</translation> <translation id="8571213806525832805">Quatre darreres setmanes</translation> -<translation id="8571613743082299268">S'ha bloquejat la redirecció al lloc web següent</translation> <translation id="8574990355410201600">Permet sempre el so a <ph name="HOST" /></translation> <translation id="8578639784464423491">No pot tenir més de 99 lletres</translation> <translation id="8579285237314169903">S'estan sincronitzant <ph name="NUMBER_OF_FILES" /> elements...</translation> @@ -4893,7 +4886,7 @@ <translation id="862727964348362408">Suspesa</translation> <translation id="862750493060684461">Memòria cau CSS</translation> <translation id="8627795981664801467">Només les connexions segures</translation> -<translation id="8628085465172583869">Nom d'amfitrió:</translation> +<translation id="8628085465172583869">Nom d'amfitrió del servidor:</translation> <translation id="8630903300770275248">Importa un usuari supervisat</translation> <translation id="8631032106121706562">Flor</translation> <translation id="8637542770513281060">L'ordinador conté un mòdul de seguretat que s'utilitza per implementar un gran nombre de funcions de seguretat clau a Chrome OS. Visita el Centre d'ajuda de Chromebook per obtenir més informació: https://support.google.com/chromebook/?p=sm</translation> @@ -4934,7 +4927,7 @@ <translation id="8671210955687109937">Pot comentar</translation> <translation id="8673026256276578048">Cerca al web...</translation> <translation id="8673383193459449849">Problema del servidor</translation> -<translation id="8675354002693747642">Clau compartida prèviament</translation> +<translation id="8675354002693747642">Clau precompartida</translation> <translation id="8676374126336081632">Esborra l'entrada</translation> <translation id="8677039480012021122">Esborra les dades i desconnecta</translation> <translation id="8677212948402625567">Redueix-ho tot...</translation> @@ -5196,7 +5189,6 @@ <translation id="9065203028668620118">Edita</translation> <translation id="9066782832737749352">Síntesi de veu</translation> <translation id="9070219033670098627">Canvia de persona</translation> -<translation id="907148966137935206">No permetis que cap lloc mostri finestres emergents (recomanat)</translation> <translation id="9071637495340542136">S'està instal·lant <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> us inicia la sessió automàticament als llocs i a les aplicacions que compleixen els requisits amb les contrasenyes que heu desat.</translation> <translation id="9073281213608662541">PAP</translation> @@ -5269,7 +5261,7 @@ <translation id="9183836083779743117"><ph name="DOWNLOAD_RECEIVED" /> de <ph name="DOWNLOAD_DOMAIN" />, <ph name="TIME_LEFT" /></translation> <translation id="9187210477874601037">No s'ha pogut connectar l'ordinador al domini. El motiu pot ser que el compte no tingui prou permisos al servidor.</translation> <translation id="9188441292293901223">Feu l'actualització del telèfon a una versió més recent d'Android per desbloquejar aquest dispositiu <ph name="DEVICE_TYPE" /></translation> -<translation id="9190063653747922532">L2TP/IPsec + clau precompartida d'IPSec</translation> +<translation id="9190063653747922532">L2TP/IPsec + clau precompartida</translation> <translation id="920045321358709304">Cerca <ph name="SEARCH_ENGINE" /></translation> <translation id="9201220332032049474">Opcions de bloqueig de pantalla</translation> <translation id="9203398526606335860">Creació de &perfils activada</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 91fdb54..1d7685e3 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Přidat stránku do záložek...</translation> <translation id="1047956942837015229">Mazání <ph name="COUNT" /> položek...</translation> <translation id="1048286738600630630">Obrazovky</translation> +<translation id="1049743911850919806">Anonymní režim</translation> <translation id="1049795001945932310">&Jazyková nastavení</translation> <translation id="1049926623896334335">Dokument aplikace Word</translation> <translation id="1054153489933238809">Otevřít původní &obrázek na nové kartě</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">Synchronizační server je zaneprázdněn, zkuste to prosím znovu později.</translation> <translation id="1784849162047402014">V zařízení dochází místo na disku</translation> <translation id="1786636458339910689">Týmové disky</translation> -<translation id="1789575671122666129">Vyskakovací okna</translation> <translation id="1792619191750875668">Sekundární obrazovka</translation> <translation id="1793119619663054394">Opravdu z tohoto počítače profil <ph name="PROFILE_NAME" /> a všechna přidružená data v Chromu chcete odstranit? Tuto operaci nelze vrátit zpět.</translation> <translation id="1794791083288629568">Odeslat zpětnou vazbu, která nám pomůže při řešení tohoto problému</translation> @@ -653,12 +653,14 @@ <translation id="1983959805486816857">Po vytvoření nového dozorovaného uživatele můžete tato nastavení spravovat na adrese <ph name="MANAGEMENT_URL" />, a to kdykoli a z libovolného zařízení.</translation> <translation id="1984642098429648350">Ukotvit okno vpravo</translation> <translation id="1987139229093034863">Přepnout na jiného uživatele.</translation> +<translation id="1987317783729300807">Účty</translation> <translation id="1989112275319619282">Procházet</translation> <translation id="1992397118740194946">Hodnota není nastavena</translation> <translation id="1994173015038366702">Adresa URL webu</translation> <translation id="1997484222658892567">Stránka <ph name="URL" /> chce trvale ukládat data v místním počítači</translation> <translation id="1997616988432401742">Vaše certifikáty</translation> <translation id="1999115740519098545">Při spuštění</translation> +<translation id="2001796770603320721">Spravovat na Disku</translation> <translation id="2006638907958895361">Otevřít odkaz v aplikaci <ph name="APP" /></translation> <translation id="2007404777272201486">Nahlásit problém...</translation> <translation id="2016430552235416146">Tradiční</translation> @@ -754,7 +756,6 @@ <translation id="2151576029659734873">Zadaný index karty je neplatný.</translation> <translation id="2154484045852737596">Úprava karty</translation> <translation id="2154710561487035718">Kopírovat adresu URL</translation> -<translation id="2155931291251286316">Vždy povolovat vyskakovací okna z webu <ph name="HOST" /></translation> <translation id="215753907730220065">Ukončit režim celé obrazovky</translation> <translation id="2157875535253991059">Tato stránka se teď zobrazuje na celou obrazovku</translation> <translation id="216169395504480358">Přidat Wi-Fi...</translation> @@ -1184,7 +1185,6 @@ <translation id="2799223571221894425">Restartovat</translation> <translation id="2803375539583399270">Zadejte kód PIN</translation> <translation id="2805646850212350655">Systém souborů Microsoft EFS</translation> -<translation id="2805707493867224476">Povolit všem webům zobrazovat vyskakovací okna</translation> <translation id="2805756323405976993">Aplikace</translation> <translation id="2807517655263062534">Zde se zobrazují stažené soubory</translation> <translation id="2809586584051668049">a další (<ph name="NUMBER_ADDITIONAL_DISABLED" />)</translation> @@ -1616,7 +1616,6 @@ <translation id="347919930506963698">Získejte v Chromu další funkce</translation> <translation id="3479552764303398839">Teď ne</translation> <translation id="3480892288821151001">Ukotvit okno vlevo</translation> -<translation id="3481915276125965083">Na této stránce byla zablokována následující vyskakovací okna:</translation> <translation id="3484273680291419129">Odstraňování škodlivého softwaru...</translation> <translation id="3484869148456018791">Získat nový certifikát</translation> <translation id="3487007233252413104">anonymní funkce</translation> @@ -1722,7 +1721,6 @@ <translation id="3637682276779847508">Pokud správně nezadáte klíč k odemknutí kódu PIN, bude SIM karta natrvalo deaktivována</translation> <translation id="363903084947548957">Další metoda zadávání</translation> <translation id="3640214691812501263">Přidat aplikaci <ph name="EXTENSION_NAME" /> pro uživatele <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Hosté rozšíření spravovat nemohou. Chcete-li spravovat rozšíření, přihlaste se.</translation> <translation id="3644896802912593514">Šířka</translation> <translation id="3646789916214779970">Obnovit výchozí motiv</translation> <translation id="3648348069317717750">Bylo rozpoznáno zařízení <ph name="USB_DEVICE_NAME" /></translation> @@ -2063,7 +2061,6 @@ <translation id="4172051516777682613">Vždy zobrazovat</translation> <translation id="4175737294868205930">Trvalé úložiště</translation> <translation id="4176463684765177261">Deaktivováno</translation> -<translation id="4180684688621252156">Služba tisku</translation> <translation id="4180788401304023883">Smazat certifikát CA <ph name="CERTIFICATE_NAME" />?</translation> <translation id="4181602000363099176">20×</translation> <translation id="4181841719683918333">Jazyky</translation> @@ -2089,6 +2086,7 @@ <translation id="42137655013211669">Server zakázal přístup k tomuto zdroji.</translation> <translation id="4215350869199060536">Jejda, název obsahuje zakázané znaky!</translation> <translation id="4215448920900139318">Zálohování souborů: <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Diktování</translation> <translation id="4225397296022057997">Na všech webech</translation> <translation id="4235200303672858594">Celá obrazovka</translation> <translation id="4235813040357936597">Přidat účet pro profil <ph name="PROFILE_NAME" /></translation> @@ -2201,6 +2199,7 @@ <translation id="4425149324548788773">Můj disk</translation> <translation id="4430019312045809116">Hlasitost</translation> <translation id="4430369329743628066">Byla přidána záložka</translation> +<translation id="4434045419905280838">Vyskakovací okna a přesměrování</translation> <translation id="443454694385851356">Starší (není bezpečné)</translation> <translation id="443464694732789311">Pokračovat</translation> <translation id="443475966875174318">Aktualizujte nebo odstraňte nekompatibilní aplikace</translation> @@ -3270,6 +3269,7 @@ <translation id="6075907793831890935">Výměna dat se zařízením <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Přiložit tento snímek obrazovky</translation> <translation id="6077131872140550515">Odebrat z preferovaných</translation> +<translation id="6078323886959318429">Přidat zástupce</translation> <translation id="6078752646384677957">Zkontrolujte mikrofon a nastavení hlasitosti.</translation> <translation id="6080515710685820702">Používáte sdílený počítač? Zkuste si otevřít anonymní okno.</translation> <translation id="6080689532560039067">Zkontrolujte systémový čas</translation> @@ -3478,7 +3478,6 @@ <translation id="6406303162637086258">Simulovat restart prohlížeče</translation> <translation id="6406506848690869874">Synchronizace</translation> <translation id="6408118934673775994">Čtení a úprava dat na webu <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> a <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Vyskakovací okna</translation> <translation id="6410257289063177456">Obrázkové soubory</translation> <translation id="6410328738210026208">Změnit kanál a použít funkci Powerwash</translation> <translation id="6410668567036790476">Přidat vyhledávač</translation> @@ -3686,7 +3685,6 @@ <translation id="6708242697268981054">Původ:</translation> <translation id="6709357832553498500">Připojit pomocí rozšíření <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Předchozí</translation> -<translation id="6716704051134091292">Konvertor PDF</translation> <translation id="6718273304615422081">Komprimování...</translation> <translation id="671928215901716392">Zamknout obrazovku</translation> <translation id="67211069045302358">Resetovat nastavení tohoto webu?</translation> @@ -3811,7 +3809,6 @@ <translation id="6920989436227028121">Otevřít jako běžnou kartu</translation> <translation id="6922128026973287222">Pomocí Spořiče dat od Googlu můžete data ukládat a procházet rychleji. Kliknutím zobrazíte další informace.</translation> <translation id="6923132443355966645">Posouvání/kliknutí</translation> -<translation id="6929555043669117778">Pokračovat v blokování vyskakovacích oken</translation> <translation id="6929835486583850209">Při instalaci aplikace <ph name="APP_NAME" /> došlo k chybě...</translation> <translation id="6930242544192836755">Délka</translation> <translation id="6934241953272494177">Prohledávání mediálního zařízení... @@ -3895,6 +3892,7 @@ <translation id="7052237160939977163">Odesílat údaje sledování výkonu</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokovat</translation> +<translation id="7055152154916055070">Bylo zablokováno přesměrování:</translation> <translation id="7056526158851679338">&Zkontrolovat zařízení</translation> <translation id="7059858479264779982">Nastavit na automatické spouštění</translation> <translation id="7059893117020417984">Chcete-li web procházet v soukromí, klikněte na ikonu se třemi tečkami a otevřete anonymní okno.</translation> @@ -3921,7 +3919,6 @@ <translation id="7088434364990739311">Kontrolu aktualizace se nepodařilo spustit (kód chyby <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – otevírejte a vytvářejte soubory ZIP v aplikaci Soubory.</translation> <translation id="7088674813905715446">Zařízení bylo vyřazeno administrátorem. Chcete-li zařízení zaregistrovat, požádejte administrátora, aby jeho registraci umožnil.</translation> -<translation id="7092106376816104">Výjimky vyskakovacích oken</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Výměna dat s následujícími zařízeními: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Přepnout lupu celé obrazovky</translation> @@ -4139,7 +4136,6 @@ <translation id="744341768939279100">Vytvořit nový profil</translation> <translation id="7444726222535375658">Pokračovat do služby Hangouts Meet</translation> <translation id="7444983668544353857">Deaktivovat <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Byla zablokována vyskakovací okna</translation> <translation id="7453008956351770337">Výběrem tiskárny udělíte následujícímu rozšíření oprávnění k přístupu k tiskárně:</translation> <translation id="7453467225369441013">Odhlásí vás z většiny webů. Z účtu Google odhlášeni nebudete.</translation> <translation id="7456142309650173560">pro vývojáře</translation> @@ -4256,6 +4252,7 @@ <translation id="7617366389578322136">Připojování k zařízení <ph name="DEVICE_NAME" /></translation> <translation id="7622114377921274169">Nabíjení.</translation> <translation id="7624337243375417909">caps lock je vypnut</translation> +<translation id="7625568159987162309">Zobrazit oprávnění a uložená data webů</translation> <translation id="7627790789328695202">Jejda, soubor <ph name="FILE_NAME" /> již existuje. Přejmenujte jej a zkuste to znovu.</translation> <translation id="7628127343934101653">Otevírat soubory PDF ve výchozí aplikaci na prohlížení souborů PDF.</translation> <translation id="7629827748548208700">Karta: <ph name="TAB_NAME" /></translation> @@ -4578,10 +4575,12 @@ <translation id="806812017500012252">Seřadit podle abecedy</translation> <translation id="8068253693380742035">Klepnutím se přihlásíte</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Soubory systému Linux</translation> <translation id="8071432093239591881">Vytisknout jako obrázek</translation> <translation id="8072988827236813198">Připnout karty</translation> <translation id="8074127646604999664">Povolit nedávno zavřeným webům dokončit odeslání a příjem dat</translation> <translation id="8075191520954018715">Stav paměti</translation> +<translation id="8076492880354921740">Karty</translation> <translation id="8076835018653442223">Správce přístup k místním souborům v tomto zařízení zakázal</translation> <translation id="8077684120002777443">Uživatelské jméno (např. uzivatel@example.com)</translation> <translation id="8077816382010018681">Sem patří nadpis oznámení funkce rychlého odemknutí</translation> @@ -4866,7 +4865,6 @@ <translation id="8569682776816196752">Žádné cíle nebyly nalezeny</translation> <translation id="8569764466147087991">Vyberte soubor, který chcete otevřít</translation> <translation id="8571213806525832805">Poslední 4 týdny</translation> -<translation id="8571613743082299268">Bylo zablokováno přesměrování na web</translation> <translation id="8574990355410201600">Na webu <ph name="HOST" /> vždy povolit zvuk</translation> <translation id="8578639784464423491">Nesmí přesahovat 99 písmen</translation> <translation id="8579285237314169903">Synchronizace <ph name="NUMBER_OF_FILES" /> položek...</translation> @@ -5198,7 +5196,6 @@ <translation id="9065203028668620118">Upravit</translation> <translation id="9066782832737749352">Převod textu na řeč</translation> <translation id="9070219033670098627">Přepnout uživatele</translation> -<translation id="907148966137935206">Nepovolovat žádnému webu zobrazovat vyskakovací okna (doporučeno)</translation> <translation id="9071637495340542136">Probíhá instalace aplikace <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> vás automaticky přihlásí na vhodných webech a v aplikacích, ke kterým máte uložená hesla.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 82b7764..7d6fce6 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Tilføj denne side som bogmærke...</translation> <translation id="1047956942837015229">Sletter <ph name="COUNT" /> elementer...</translation> <translation id="1048286738600630630">Skærme</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Sprogindstillinger</translation> <translation id="1049926623896334335">Word-dokument</translation> <translation id="1054153489933238809">Åbn originalbillede på ny fane</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">Synkroniseringsserver er optaget. Prøv igen senere.</translation> <translation id="1784849162047402014">Der er næsten ikke mere plads på enheden</translation> <translation id="1786636458339910689">Fællesdrev</translation> -<translation id="1789575671122666129">Pop op-vinduer</translation> <translation id="1792619191750875668">Udvidet display</translation> <translation id="1793119619663054394">Er du sikker på, at du vil fjerne "<ph name="PROFILE_NAME" />" og alle tilknyttede Chrome-data fra denne computer? Handlingen kan ikke fortrydes.</translation> <translation id="1794791083288629568">Send feedback for at hjælpe os med at løse problemet.</translation> @@ -649,12 +649,14 @@ <translation id="1983959805486816857">Når du har oprettet en ny administreret bruger, kan du når som helst administrere indstillingerne på en hvilken som helst enhed på <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Fastgør vinduet til højre</translation> <translation id="1987139229093034863">Skift til en anden bruger.</translation> +<translation id="1987317783729300807">Konti</translation> <translation id="1989112275319619282">Gennemse</translation> <translation id="1992397118740194946">Ikke angivet</translation> <translation id="1994173015038366702">Webadresse</translation> <translation id="1997484222658892567"><ph name="URL" /> anmoder om at gemme store mængder data permanent på din lokale computer</translation> <translation id="1997616988432401742">Dine certifikater</translation> <translation id="1999115740519098545">Ved opstart</translation> +<translation id="2001796770603320721">Administrer i Drev</translation> <translation id="2006638907958895361">Åbn linket i <ph name="APP" /></translation> <translation id="2007404777272201486">Rapportér et problem...</translation> <translation id="2016430552235416146">Traditionelt</translation> @@ -750,7 +752,6 @@ <translation id="2151576029659734873">Det angivne faneindeks er ugyldigt.</translation> <translation id="2154484045852737596">Rediger kort</translation> <translation id="2154710561487035718">Kopier webadresse</translation> -<translation id="2155931291251286316">Vis altid pop op-vinduer fra <ph name="HOST" /></translation> <translation id="215753907730220065">Afslut fuld skærm</translation> <translation id="2157875535253991059">Denne side er nu i fuld skærm.</translation> <translation id="216169395504480358">Tilføj Wi-Fi...</translation> @@ -1181,7 +1182,6 @@ <translation id="2799223571221894425">Genstart</translation> <translation id="2803375539583399270">Angiv pinkode</translation> <translation id="2805646850212350655">Filsystem til Microsoft-kryptering</translation> -<translation id="2805707493867224476">Tillad, at alle websites viser pop op-vinduer</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2807517655263062534">Dine downloadede filer vises her</translation> <translation id="2809586584051668049">og <ph name="NUMBER_ADDITIONAL_DISABLED" /> mere</translation> @@ -1615,7 +1615,6 @@ <translation id="347919930506963698">Få endnu mere ud af Chrome</translation> <translation id="3479552764303398839">Ikke nu</translation> <translation id="3480892288821151001">Fastgør vinduet til venstre</translation> -<translation id="3481915276125965083">Følgende pop op-vinduer blev blokeret på denne side:</translation> <translation id="3484273680291419129">Sletter skadelig software...</translation> <translation id="3484869148456018791">Få et nyt certifikat</translation> <translation id="3487007233252413104">anonym funktion</translation> @@ -1721,7 +1720,6 @@ <translation id="3637682276779847508">Dit SIM-kort deaktiveres permanent, hvis du ikke kan angive den korrekte nøgle til oplåsning af pinkode.</translation> <translation id="363903084947548957">Næste indtastningsmetode</translation> <translation id="3640214691812501263">Vil du tilføje "<ph name="EXTENSION_NAME" />" for <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Administration af udvidelser er ikke tilgængelig for gæstebrugere. Log ind for at administrere udvidelser.</translation> <translation id="3644896802912593514">Bredde</translation> <translation id="3646789916214779970">Nulstil til standardtema</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> blev registreret</translation> @@ -2063,7 +2061,6 @@ <translation id="4172051516777682613">Vis altid</translation> <translation id="4175737294868205930">Vedvarende lagring</translation> <translation id="4176463684765177261">Deaktiveret</translation> -<translation id="4180684688621252156">Udskrivningstjeneste</translation> <translation id="4180788401304023883">Vil du slette CA-certifikatet "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Sprog</translation> @@ -2089,6 +2086,7 @@ <translation id="42137655013211669">Serveren har forbudt dig adgang til denne ressource.</translation> <translation id="4215350869199060536">Ups! Navnet indeholder ulovlige tegn.</translation> <translation id="4215448920900139318">Sikkerhedskopierer <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Diktering</translation> <translation id="4225397296022057997">På alle websites</translation> <translation id="4235200303672858594">Hele skærmen</translation> <translation id="4235813040357936597">Tilføj konto for <ph name="PROFILE_NAME" /></translation> @@ -2201,6 +2199,7 @@ <translation id="4425149324548788773">Mit drev</translation> <translation id="4430019312045809116">Lydstyrke</translation> <translation id="4430369329743628066">Bogmærket er tilføjet</translation> +<translation id="4434045419905280838">Pop op-vinduer og omdirigeringer</translation> <translation id="443454694385851356">Forældet (ikke sikkert)</translation> <translation id="443464694732789311">Fortsæt</translation> <translation id="443475966875174318">Opdater eller fjern ikke-kompatible apps</translation> @@ -3271,6 +3270,7 @@ <translation id="6075907793831890935">Udveksle data med enheden ved navn <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Inkluder dette screenshot</translation> <translation id="6077131872140550515">Fjern fra foretrukne</translation> +<translation id="6078323886959318429">Tilføj genvej</translation> <translation id="6078752646384677957">Tjek din mikrofon og dine lydniveauer.</translation> <translation id="6080515710685820702">Bruger du en delt computer? Prøv at åbne et inkognitovindue.</translation> <translation id="6080689532560039067">Se systemklokkeslættet</translation> @@ -3480,7 +3480,6 @@ <translation id="6406303162637086258">Simuler genstart af browser</translation> <translation id="6406506848690869874">Synkronisering</translation> <translation id="6408118934673775994">Læse og redigere dine data på <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop op-vinduer</translation> <translation id="6410257289063177456">Billedfiler</translation> <translation id="6410328738210026208">Skift kanal og powerwash</translation> <translation id="6410668567036790476">Tilføj søgemaskine</translation> @@ -3688,7 +3687,6 @@ <translation id="6708242697268981054">Oprindelse:</translation> <translation id="6709357832553498500">Opret forbindelse ved hjælp af <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Forrige</translation> -<translation id="6716704051134091292">PDF-konvertering</translation> <translation id="6718273304615422081">Komprimerer...</translation> <translation id="671928215901716392">Lås skærmen</translation> <translation id="67211069045302358">Vil du nulstille indstillingerne for dette website?</translation> @@ -3813,7 +3811,6 @@ <translation id="6920989436227028121">Åbn som almindelig fane</translation> <translation id="6922128026973287222">Gem dine data, og få en hurtigere browseroplevelse med Googles datasparefunktion. Klik for at få flere oplysninger.</translation> <translation id="6923132443355966645">Rul/klik</translation> -<translation id="6929555043669117778">Fortsæt blokering af pop op-vinduer</translation> <translation id="6929835486583850209">Der opstod en fejl ved installationen af <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Varighed</translation> <translation id="6934241953272494177">Scanner din medienhed... @@ -3828,7 +3825,7 @@ <translation id="6949306908218145636">Tilføjer åbne sider som bogmærke...</translation> <translation id="6951153907720526401">Betalingshandlere</translation> <translation id="6955446738988643816">Undersøg pop op-vindue</translation> -<translation id="6957231940976260713">Tjenestenavn</translation> +<translation id="6957231940976260713">Tjenestens navn</translation> <translation id="696203921837389374">Aktivér synkronisering via mobildata</translation> <translation id="6964390816189577014">Helt</translation> <translation id="6965382102122355670">OK</translation> @@ -3897,6 +3894,7 @@ <translation id="7052237160939977163">Send data om ydeevne</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Bloker</translation> +<translation id="7055152154916055070">Omdirigeringen blev blokeret:</translation> <translation id="7056526158851679338">&Inspicer enheder</translation> <translation id="7059858479264779982">Indstil til automatisk opstart</translation> <translation id="7059893117020417984">Hvis du vil bruge nettet privat, skal du klikke på prikmenuen for at åbne et inkognitovindue</translation> @@ -3923,7 +3921,6 @@ <translation id="7088434364990739311">Der kunne ikke søges efter opdateringer (fejlkode <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – åbn og opret ZIP-filer i appen Filer.</translation> <translation id="7088674813905715446">Denne enhed er blevet sat i tilstanden Fjernet af administratoren. Hvis du vil have, at den aktiveres med henblik på tilmelding, skal du bede administratoren om at sætte enheden i tilstanden Afventer.</translation> -<translation id="7092106376816104">Undtagelser for pop op-vinduer</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Udveksle data med enhederne ved navn: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Slå forstørrelse af fuld skærm til/fra</translation> @@ -4143,7 +4140,6 @@ <translation id="744341768939279100">Opret en ny profil</translation> <translation id="7444726222535375658">Fortsæt til Hangouts Meet</translation> <translation id="7444983668544353857">Deaktiver <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pop op-vinduer er blokeret</translation> <translation id="7453008956351770337">Ved at vælge denne printer giver du følgende udvidelser adgang til din printer:</translation> <translation id="7453467225369441013">Logger dig ud af de fleste websites. Du bliver ikke logget ud af din Google-konto.</translation> <translation id="7456142309650173560">dev</translation> @@ -4262,6 +4258,7 @@ <translation id="7617366389578322136">Opretter forbindelse til "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">Oplader.</translation> <translation id="7624337243375417909">capslock er slået fra</translation> +<translation id="7625568159987162309">Se tilladelser og data, der er gemt på alle websites</translation> <translation id="7627790789328695202"><ph name="FILE_NAME" /> findes allerede. Giv filen et nyt navn, og prøv igen.</translation> <translation id="7628127343934101653">Åbn PDF-filer i standardapplikationen til visning af PDF-filer.</translation> <translation id="7629827748548208700">Fane: <ph name="TAB_NAME" /></translation> @@ -4583,10 +4580,12 @@ <translation id="806812017500012252">Omorganiser efter titel</translation> <translation id="8068253693380742035">Tryk for at logge ind</translation> <translation id="8069615408251337349">Google Cloudprinter</translation> +<translation id="806972267388474605">Linux-filer</translation> <translation id="8071432093239591881">Udskriv i billedformat</translation> <translation id="8072988827236813198">Fastgør faner</translation> <translation id="8074127646604999664">Tillad, at nyligt lukkede websites kan sende og modtage data</translation> <translation id="8075191520954018715">Hukommelsestilstand</translation> +<translation id="8076492880354921740">Faner</translation> <translation id="8076835018653442223">Din administrator har deaktiveret adgangen til lokale filer på din enhed</translation> <translation id="8077684120002777443">Brugernavn (f.eks. bruger@example.com)</translation> <translation id="8077816382010018681">Underretningstitlen for QU-funktionen angives her</translation> @@ -4871,7 +4870,6 @@ <translation id="8569682776816196752">Der blev ikke fundet nogen destinationer</translation> <translation id="8569764466147087991">Vælg den fil, der skal åbnes</translation> <translation id="8571213806525832805">Seneste 4 uger</translation> -<translation id="8571613743082299268">Omdirigering er blokeret på websitet</translation> <translation id="8574990355410201600">Tillad altid lyd på <ph name="HOST" /></translation> <translation id="8578639784464423491">Må højst indeholde 99 bogstaver</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> elementer synkroniseres...</translation> @@ -5204,7 +5202,6 @@ <translation id="9065203028668620118">Rediger</translation> <translation id="9066782832737749352">Oplæsning</translation> <translation id="9070219033670098627">Skift person</translation> -<translation id="907148966137935206">Tillad ikke, at websites viser pop op-vinduer (anbefales)</translation> <translation id="9071637495340542136">Installerer <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> logger dig automatisk ind på kvalificerede websites og apps med adgangskoder, du har gemt.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index d010c62..0d0576d 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Lesezeichen für diese Seite erstellen</translation> <translation id="1047956942837015229"><ph name="COUNT" /> Elemente werden gelöscht...</translation> <translation id="1048286738600630630">Anzeigen</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Spracheinstellungen</translation> <translation id="1049926623896334335">Word-Dokument</translation> <translation id="1054153489933238809">&Original in neuem Tab öffnen</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">Der Synchronisierungsserver ist ausgelastet. Wiederholen Sie den Vorgang zu einem späteren Zeitpunkt.</translation> <translation id="1784849162047402014">Gerät verfügt über wenig Speicherplatz</translation> <translation id="1786636458339910689">Teamablagen</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1792619191750875668">Erweiterter Bildschirm</translation> <translation id="1793119619663054394">Möchten Sie "<ph name="PROFILE_NAME" />" und alle zugehörigen Chrome-Daten wirklich von diesem Computer entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden.</translation> <translation id="1794791083288629568">Helfen Sie uns, dieses Problem zu beheben, indem Sie uns Feedback senden.</translation> @@ -649,12 +649,14 @@ <translation id="1983959805486816857">Nach der Erstellung eines neuen betreuten Nutzers können Sie die Einstellungen jederzeit von jedem Gerät aus unter <ph name="MANAGEMENT_URL" /> verwalten.</translation> <translation id="1984642098429648350">Fenster rechts verankern</translation> <translation id="1987139229093034863">Zu anderem Nutzer wechseln</translation> +<translation id="1987317783729300807">Konten</translation> <translation id="1989112275319619282">Durchsuchen</translation> <translation id="1992397118740194946">Nicht eingerichtet</translation> <translation id="1994173015038366702">Website-URL</translation> <translation id="1997484222658892567"><ph name="URL" /> möchte umfangreiche Daten dauerhaft auf Ihrem lokalen Computer speichern</translation> <translation id="1997616988432401742">Meine Zertifikate</translation> <translation id="1999115740519098545">Beim Start</translation> +<translation id="2001796770603320721">In Drive verwalten</translation> <translation id="2006638907958895361">Link in <ph name="APP" /> öffnen</translation> <translation id="2007404777272201486">Problem melden...</translation> <translation id="2016430552235416146">Traditionell</translation> @@ -750,7 +752,6 @@ <translation id="2151576029659734873">Eingegebener Tabindex ist ungültig.</translation> <translation id="2154484045852737596">Karte bearbeiten</translation> <translation id="2154710561487035718">URL kopieren</translation> -<translation id="2155931291251286316">Pop-ups von <ph name="HOST" /> immer zulassen</translation> <translation id="215753907730220065">Vollbildmodus aus</translation> <translation id="2157875535253991059">Diese Seite wird nun im Vollbildmodus angezeigt.</translation> <translation id="216169395504480358">WLAN hinzufügen...</translation> @@ -886,7 +887,7 @@ <translation id="2359808026110333948">Weiter</translation> <translation id="236141728043665931">Zugriff auf das Mikrofon immer blockieren</translation> <translation id="2365507699358342471">Diese Website kann Texte und Bilder aus der Zwischenablage abrufen.</translation> -<translation id="2366463953911599217">FEHLER: <ph name="APP_NAME" /> konnte nicht installiert werden.</translation> +<translation id="2366463953911599217">FEHLER: <ph name="APP_NAME" /> konnte nicht deinstalliert werden.</translation> <translation id="2367199180085172140">Netzwerkfreigabe hinzufügen</translation> <translation id="2367972762794486313">Apps anzeigen</translation> <translation id="2371076942591664043">Nach &Download öffnen</translation> @@ -1179,7 +1180,6 @@ <translation id="2799223571221894425">Neu starten</translation> <translation id="2803375539583399270">PIN eingeben</translation> <translation id="2805646850212350655">Verschlüsselndes Microsoft-Dateisystem</translation> -<translation id="2805707493867224476">Anzeige von Pop-ups für alle Websites zulassen</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2807517655263062534">Hier werden heruntergeladene Dateien angezeigt</translation> <translation id="2809586584051668049">und <ph name="NUMBER_ADDITIONAL_DISABLED" /> weitere</translation> @@ -1613,7 +1613,6 @@ <translation id="347919930506963698">Chrome optimal nutzen</translation> <translation id="3479552764303398839">Jetzt nicht</translation> <translation id="3480892288821151001">Fenster links verankern</translation> -<translation id="3481915276125965083">Die folgenden Pop-ups wurden auf dieser Seite blockiert:</translation> <translation id="3484273680291419129">Schädliche Software wird entfernt...</translation> <translation id="3484869148456018791">Neues Zertifikat anfordern</translation> <translation id="3487007233252413104">Anonyme Funktion</translation> @@ -1719,7 +1718,6 @@ <translation id="3637682276779847508">Ihre SIM-Karte wird dauerhaft deaktiviert, wenn Sie nicht den korrekten PUK eingeben.</translation> <translation id="363903084947548957">Nächste Eingabemethode</translation> <translation id="3640214691812501263">"<ph name="EXTENSION_NAME" />" für <ph name="USER_NAME" /> hinzufügen?</translation> -<translation id="3643225892037417978">Gastnutzer können keine Erweiterungen verwalten. Bitte melden Sie sich dazu an.</translation> <translation id="3644896802912593514">Breite</translation> <translation id="3646789916214779970">Auf Standarddesign zurücksetzen</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> erkannt</translation> @@ -2061,7 +2059,6 @@ <translation id="4172051516777682613">Immer anzeigen</translation> <translation id="4175737294868205930">Permanentspeicher</translation> <translation id="4176463684765177261">Deaktiviert</translation> -<translation id="4180684688621252156">Druckdienst</translation> <translation id="4180788401304023883">CA-Zertifikat "<ph name="CERTIFICATE_NAME" />" löschen?</translation> <translation id="4181602000363099176">20-fach</translation> <translation id="4181841719683918333">Sprachen</translation> @@ -2087,6 +2084,7 @@ <translation id="42137655013211669">Der Zugriff auf diese Ressource wurde vom Server nicht zugelassen.</translation> <translation id="4215350869199060536">Der Name enthält unzulässige Zeichen.</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> werden gesichert</translation> +<translation id="4217571870635786043">Spracheingabe</translation> <translation id="4225397296022057997">Auf allen Websites</translation> <translation id="4235200303672858594">Gesamter Bildschirm</translation> <translation id="4235813040357936597">Konto für <ph name="PROFILE_NAME" /> hinzufügen</translation> @@ -2199,6 +2197,7 @@ <translation id="4425149324548788773">Meine Ablage</translation> <translation id="4430019312045809116">Lautstärke</translation> <translation id="4430369329743628066">Lesezeichen hinzugefügt</translation> +<translation id="4434045419905280838">Pop-ups und Weiterleitungen</translation> <translation id="443454694385851356">Veraltet (nicht sicher)</translation> <translation id="443464694732789311">Weiter</translation> <translation id="443475966875174318">Nicht kompatible Anwendungen aktualisieren oder entfernen</translation> @@ -3269,6 +3268,7 @@ <translation id="6075907793831890935">Daten mit dem Gerät mit dem Namen "<ph name="HOSTNAME" />" austauschen</translation> <translation id="6076448957780543068">Diesen Screenshot einfügen</translation> <translation id="6077131872140550515">Von bevorzugten Netzwerken entfernen</translation> +<translation id="6078323886959318429">Tastenkombination hinzufügen</translation> <translation id="6078752646384677957">Überprüfen Sie Ihr Mikrofon und die Audio-Lautstärke.</translation> <translation id="6080515710685820702">Sie teilen sich einen Computer? Dann können Sie ganz einfach ein Inkognitofenster nutzen.</translation> <translation id="6080689532560039067">Systemzeit überprüfen</translation> @@ -3477,7 +3477,6 @@ <translation id="6406303162637086258">Browser-Neustart simulieren</translation> <translation id="6406506848690869874">Synchronisierung</translation> <translation id="6408118934673775994">Eigene Daten auf <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> und <ph name="WEBSITE_3" /> lesen und ändern</translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="6410257289063177456">Bilddateien</translation> <translation id="6410328738210026208">Kanaländerung und Powerwash</translation> <translation id="6410668567036790476">Suchmaschine hinzufügen</translation> @@ -3685,7 +3684,6 @@ <translation id="6708242697268981054">Ursprung:</translation> <translation id="6709357832553498500">Über <ph name="EXTENSIONNAME" /> verbinden</translation> <translation id="6710213216561001401">Zurück</translation> -<translation id="6716704051134091292">PDF-Konverter</translation> <translation id="6718273304615422081">Wird gezippt...</translation> <translation id="671928215901716392">Bildschirm sperren</translation> <translation id="67211069045302358">Einstellungen für diese Website zurücksetzen?</translation> @@ -3810,7 +3808,6 @@ <translation id="6920989436227028121">In normalem Tab öffnen</translation> <translation id="6922128026973287222">Mit dem Google-Datensparmodus verbrauchen Sie weniger Daten und surfen schneller. Klicken Sie hier, um mehr zu erfahren.</translation> <translation id="6923132443355966645">Scrollen/Klicken</translation> -<translation id="6929555043669117778">Pop-ups weiterhin blockieren</translation> <translation id="6929835486583850209">Fehler beim Installieren von <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Dauer</translation> <translation id="6934241953272494177">Mediengerät wird durchsucht... @@ -3894,6 +3891,7 @@ <translation id="7052237160939977163">Daten der Leistungsnachverfolgung senden</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blockieren</translation> +<translation id="7055152154916055070">Weiterleitung blockiert:</translation> <translation id="7056526158851679338">&Geräte untersuchen</translation> <translation id="7059858479264779982">Automatisch starten</translation> <translation id="7059893117020417984">Wenn Sie privat surfen möchten, klicken Sie auf das Punktesymbol und öffnen Sie ein Inkognitofenster</translation> @@ -3920,7 +3918,6 @@ <translation id="7088434364990739311">Update-Prüfung konnte nicht gestartet werden. Fehlercode: <ph name="ERROR" /></translation> <translation id="7088561041432335295">Zip Archiver: Öffnen und packen Sie ZIP-Dateien in der App "Dateien".</translation> <translation id="7088674813905715446">Die Bereitstellung dieses Geräts wurde vom Administrator aufgehoben. Bitten Sie Ihren Administrator, es als ausstehend zu kennzeichnen, um es für die Registrierung zu aktivieren.</translation> -<translation id="7092106376816104">Ausnahmen für Pop-ups</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Daten mit den Geräten mit folgenden Namen austauschen: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Vollbildlupe ein-/ausschalten</translation> @@ -4143,7 +4140,6 @@ <translation id="744341768939279100">Neues Profil erstellen</translation> <translation id="7444726222535375658">Weiter zu Hangouts Meet</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> deaktivieren</translation> -<translation id="7445682342344043969">Pop-ups blockiert</translation> <translation id="7453008956351770337">Durch die Auswahl dieses Druckers berechtigen Sie die folgende Erweiterung, auf Ihren Drucker zuzugreifen:</translation> <translation id="7453467225369441013">Sie werden von den meisten Websites, aber nicht aus Ihrem Google-Konto abgemeldet.</translation> <translation id="7456142309650173560">Dev</translation> @@ -4262,6 +4258,7 @@ <translation id="7617366389578322136">Verbindung zu "<ph name="DEVICE_NAME" />" wird hergestellt</translation> <translation id="7622114377921274169">Wird aufgeladen.</translation> <translation id="7624337243375417909">Feststelltaste aus</translation> +<translation id="7625568159987162309">Berechtigungen und gespeicherte Daten für Websites aufrufen</translation> <translation id="7627790789328695202">Hoppla, <ph name="FILE_NAME" /> existiert bereits. Geben Sie einen anderen Namen ein und versuchen Sie es erneut.</translation> <translation id="7628127343934101653">PDF-Dateien im Standard-PDF-Viewer öffnen.</translation> <translation id="7629827748548208700">Tab: <ph name="TAB_NAME" /></translation> @@ -4584,10 +4581,12 @@ <translation id="806812017500012252">Neu sortieren nach Titel</translation> <translation id="8068253693380742035">Zum Anmelden tippen</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Linux-Dateien</translation> <translation id="8071432093239591881">Als Bild drucken</translation> <translation id="8072988827236813198">Tabs anheften</translation> <translation id="8074127646604999664">Fertigstellen des Datenversands und -empfangs von kürzlich geschlossen Websites erlauben</translation> <translation id="8075191520954018715">Speicherstatus</translation> +<translation id="8076492880354921740">Tabs</translation> <translation id="8076835018653442223">Der Zugriff auf lokale Dateien auf Ihrem Gerät wurde von Ihrem Administrator deaktiviert</translation> <translation id="8077684120002777443">Nutzername, z. B. nutzer@example.com</translation> <translation id="8077816382010018681">Titel der Benachrichtigung für schnelles Entsperren hier einfügen</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Keine Ziele gefunden</translation> <translation id="8569764466147087991">Zu öffnende Datei auswählen</translation> <translation id="8571213806525832805">Letzte 4 Wochen</translation> -<translation id="8571613743082299268">Weiterleitung zu Website blockiert</translation> <translation id="8574990355410201600">Ton auf <ph name="HOST" /> immer zulassen</translation> <translation id="8578639784464423491">Maximale Länge: 99 Buchstaben</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> Elemente werden synchronisiert...</translation> @@ -5206,7 +5204,6 @@ <translation id="9065203028668620118">Bearbeiten</translation> <translation id="9066782832737749352">Sprachausgabe</translation> <translation id="9070219033670098627">Person wechseln</translation> -<translation id="907148966137935206">Anzeige von Pop-ups für keine Website zulassen (empfohlen)</translation> <translation id="9071637495340542136">"<ph name="APP_NAME" />" wird installiert…</translation> <translation id="9072550133391925347">Mit <ph name="PASSWORD_MANAGER_BRAND" /> werden Sie mit Ihren gespeicherten Passwörtern automatisch auf allen entsprechenden Websites und Apps angemeldet.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 2ca8bb1..1ae9d66 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Τοποθέτηση Σελιδοδείκτη σε Αυτήν τη Σελίδα...</translation> <translation id="1047956942837015229">Διαγραφή <ph name="COUNT" /> στοιχείων…</translation> <translation id="1048286738600630630">Οθόνες</translation> +<translation id="1049743911850919806">Ανώνυμη περιήγηση</translation> <translation id="1049795001945932310">Ρυθμίσεις &γλώσσας</translation> <translation id="1049926623896334335">Έγγραφο του Word</translation> <translation id="1054153489933238809">Άνοιγμα αρχικής εικόνας σε νέα καρτέλα</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">Ο διακομιστής συγχρονισμού είναι απασχολημένος. Δοκιμάστε ξανά αργότερα.</translation> <translation id="1784849162047402014">Ο ελεύθερος χώρος στον δίσκο της συσκευής είναι περιορισμένος</translation> <translation id="1786636458339910689">Drive ομάδας</translation> -<translation id="1789575671122666129">Αναδυόμενα παράθυρα</translation> <translation id="1792619191750875668">Διευρυμένη οθόνη</translation> <translation id="1793119619663054394">Είσαστε σίγουροι πως θέλετε να καταργήσετε το "<ph name="PROFILE_NAME" />" και όλα τα δεδομένα Chrome που συσχετίζονται με αυτό το προφίλ από αυτόν τον υπολογιστή; Δεν είναι δυνατή η αναίρεση αυτής της ενέργειας.</translation> <translation id="1794791083288629568">Στείλτε τα σχόλιά σας για να μας βοηθήσετε να επιλύσουμε αυτό το πρόβλημα.</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">Αφού δημιουργήσετε ένα νέο εποπτευόμενο χρήστη, μπορείτε να διαχειριστείτε τις ρυθμίσεις ανά πάσα στιγμή και από οποιαδήποτε συσκευή στη διεύθυνση <ph name="MANAGEMENT_URL" /> .</translation> <translation id="1984642098429648350">Αγκύρωση παραθύρου δεξιά</translation> <translation id="1987139229093034863">Μετάβαση σε διαφορετικό χρήστη.</translation> +<translation id="1987317783729300807">Λογαριασμοί</translation> <translation id="1989112275319619282">Περιήγηση</translation> <translation id="1992397118740194946">Δεν έχει οριστεί</translation> <translation id="1994173015038366702">URL ιστότοπου</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">Καταχωρήθηκε μη έγκυρος κατάλογος καρτελών.</translation> <translation id="2154484045852737596">Επεξεργασία κάρτας</translation> <translation id="2154710561487035718">Αντιγραφή διεύθυνσης URL</translation> -<translation id="2155931291251286316">Να εμφανίζονται πάντα αναδυόμενα παράθυρα από <ph name="HOST" /></translation> <translation id="215753907730220065">Έξοδος από πλήρη οθόνη</translation> <translation id="2157875535253991059">Αυτή η σελίδα εμφανίζεται σε πλήρη οθόνη</translation> <translation id="216169395504480358">Προσθήκη Wi-Fi…</translation> @@ -1184,7 +1184,6 @@ <translation id="2799223571221894425">Επανεκκίνηση</translation> <translation id="2803375539583399270">Εισαγωγή PIN</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">Να επιτρέπεται σε όλους τους ιστότοπους η εμφάνιση αναδυόμενων παραθύρων</translation> <translation id="2805756323405976993">Εφαρμογές </translation> <translation id="2807517655263062534">Τα αρχεία που κατεβάζετε εμφανίζονται εδώ</translation> <translation id="2809586584051668049">και ακόμη <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1618,7 +1617,6 @@ <translation id="347919930506963698">Αξιοποιήστε ακόμη περισσότερο το Chrome</translation> <translation id="3479552764303398839">Όχι τώρα</translation> <translation id="3480892288821151001">Αγκύρωση παραθύρου αριστερά</translation> -<translation id="3481915276125965083">Έγινε αποκλεισμός των ακόλουθων αναδυόμενων παραθύρων σε αυτήν τη σελίδα:</translation> <translation id="3484273680291419129">Κατάργηση επιβλαβούς λογισμικού…</translation> <translation id="3484869148456018791">Λήψη νέου πιστοποιητικού</translation> <translation id="3487007233252413104">ανώνυμη λειτουργία</translation> @@ -1724,7 +1722,6 @@ <translation id="3637682276779847508">Η κάρτα SIM θα απενεργοποιηθεί οριστικά αν δεν καταφέρετε να πληκτρολογήσετε το σωστό κλειδί ξεκλειδώματος PIN.</translation> <translation id="363903084947548957">Επόμενη μέθοδος εισαγωγής</translation> <translation id="3640214691812501263">Προσθήκη "<ph name="EXTENSION_NAME" />" για <ph name="USER_NAME" />;</translation> -<translation id="3643225892037417978">Η διαχείριση επεκτάσεων δεν είναι διαθέσιμη για χρήστες-επισκέπτες. Συνδεθείτε για να διαχειριστείτε επεκτάσεις.</translation> <translation id="3644896802912593514">Πλάτος</translation> <translation id="3646789916214779970">Επαναφορά στο προεπιλεγμένο θέμα</translation> <translation id="3648348069317717750">Εντοπίστηκε συσκευή <ph name="USB_DEVICE_NAME" /></translation> @@ -2066,7 +2063,6 @@ <translation id="4172051516777682613">Εμφάνιση πάντα</translation> <translation id="4175737294868205930">Μόνιμος αποθηκευτικός χώρος</translation> <translation id="4176463684765177261">Απενεργοποιημένη</translation> -<translation id="4180684688621252156">Υπηρεσία εκτύπωσης</translation> <translation id="4180788401304023883">Να διαγραφεί το πιστοποιητικό ΑΠ "<ph name="CERTIFICATE_NAME" />";</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Γλώσσες</translation> @@ -3275,6 +3271,7 @@ <translation id="6075907793831890935">Ανταλλαγή δεδομένων με τη συσκευή με την ονομασία <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Συμπερίληψη αυτού του στιγμιότυπου οθόνης</translation> <translation id="6077131872140550515">Κατάργηση από τα προτιμώμενα</translation> +<translation id="6078323886959318429">Προσθήκη συντόμευσης</translation> <translation id="6078752646384677957">Ελέγξτε τα επίπεδα έντασης του μικροφώνου και του ήχου σας.</translation> <translation id="6080515710685820702">Χρησιμοποιείτε έναν κοινόχρηστο υπολογιστή; Δοκιμάστε να ανοίξετε ένα παράθυρο για ανώνυμη περιήγηση.</translation> <translation id="6080689532560039067">Ελέγξτε την ώρα του συστήματός σας</translation> @@ -3483,7 +3480,6 @@ <translation id="6406303162637086258">Προσομοίωση επανεκκίνησης προγράμματος περιήγησης</translation> <translation id="6406506848690869874">Συγχρονισμός</translation> <translation id="6408118934673775994">Διαβάστε και αλλάξτε τα δεδομένα σας στο <ph name="WEBSITE_1" />, στο <ph name="WEBSITE_2" /> και το <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Αναδυόμενα παράθυρα</translation> <translation id="6410257289063177456">Αρχεία εικόνας</translation> <translation id="6410328738210026208">Αλλαγή καναλιού και Powerwash</translation> <translation id="6410668567036790476">Προσθήκη μηχανής αναζήτησης</translation> @@ -3691,7 +3687,6 @@ <translation id="6708242697268981054">Προέλευση:</translation> <translation id="6709357832553498500">Σύνδεση με χρήση <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Προηγούμενο</translation> -<translation id="6716704051134091292">Εργαλείο μετατροπής PDF</translation> <translation id="6718273304615422081">Συμπίεση…</translation> <translation id="671928215901716392">Κλείδωμα οθόνης</translation> <translation id="67211069045302358">Θέλετε να επαναφέρετε τις ρυθμίσεις για αυτόν τον ιστότοπο;</translation> @@ -3816,7 +3811,6 @@ <translation id="6920989436227028121">Άνοιγμα ως κανονικής καρτέλας</translation> <translation id="6922128026973287222">Εξοικονομήστε δεδομένα και περιηγηθείτε πιο γρήγορα με την Εξοικονόμηση δεδομένων Google. Κάντε κλικ για να μάθετε περισσότερα.</translation> <translation id="6923132443355966645">Κύλιση/κλικ</translation> -<translation id="6929555043669117778">Συνέχιση αποκλεισμού αναδυόμενων παραθύρων</translation> <translation id="6929835486583850209">Σφάλμα κατά την εγκατάσταση του <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Διάρκεια</translation> <translation id="6934241953272494177">Πραγματοποιείται σάρωση της συσκευής μέσων σας… @@ -3926,7 +3920,6 @@ <translation id="7088434364990739311">O έλεγχος ενημερώσεων απέτυχε να ξεκινήσει (κωδικός σφάλματος <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Ανοίξτε και συμπιέστε αρχεία ZIP στην εφαρμογή "Αρχεία".</translation> <translation id="7088674813905715446">Αυτή η συσκευή έχει τεθεί σε ανενεργή κατάσταση από το διαχειριστή. Για να την ενεργοποιήσετε για εγγραφή, ζητήστε από το διαχειριστή σας να τη θέσει σε κατάσταση εκκρεμότητας.</translation> -<translation id="7092106376816104">Εξαιρέσεις αναδυόμενων παραθύρων</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Ανταλλαγή δεδομένων με συσκευές με την ονομασία: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Εναλλαγή μεγεθυντικού φακού πλήρους οθόνης</translation> @@ -4146,7 +4139,6 @@ <translation id="744341768939279100">Δημιουργήστε ένα νέο προφίλ</translation> <translation id="7444726222535375658">Συνέχεια στο Hangouts Meet</translation> <translation id="7444983668544353857">Απενεργοποίηση <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Αποκλεισμός αναδυόμενων παραθύρων</translation> <translation id="7453008956351770337">Με την επιλογή αυτού του εκτυπωτή, δίνετε στην παρακάτω επέκταση άδεια πρόσβασης στον εκτυπωτή σας:</translation> <translation id="7453467225369441013">Θα αποσυνδεθείτε από τους περισσότερους ιστοτόπους. Δεν θα αποσυνδεθείτε από τον Λογαριασμό σας Google.</translation> <translation id="7456142309650173560">προγραμματιστές</translation> @@ -4591,6 +4583,7 @@ <translation id="8072988827236813198">Καρφίτσωμα καρτελων </translation> <translation id="8074127646604999664">Να επιτρέπεται στους ιστότοπους που έκλεισαν πρόσφατα να ολοκληρώνουν την αποστολή και τη λήψη δεδομένων</translation> <translation id="8075191520954018715">Κατάσταση μνήμης</translation> +<translation id="8076492880354921740">Καρτέλες</translation> <translation id="8076835018653442223">Η πρόσβαση στα τοπικά αρχεία στη συσκευή σας έχει απενεργοποιηθεί από τον διαχειριστή σας</translation> <translation id="8077684120002777443">Όνομα χρήστη (π.χ. user@example.com)</translation> <translation id="8077816382010018681">Εδώ εμφανίζεται ο τίτλος της ειδοποίησης της λειτουργίας Γρήγορου ξεκλειδώματος</translation> @@ -4875,7 +4868,6 @@ <translation id="8569682776816196752">Δεν βρέθηκαν προορισμοί</translation> <translation id="8569764466147087991">Επιλέξτε αρχείο για άνοιγμα</translation> <translation id="8571213806525832805">Τελευταίες 4 εβδομάδες</translation> -<translation id="8571613743082299268">Η ανακατεύθυνση αποκλείστηκε προς τον ιστότοπο</translation> <translation id="8574990355410201600">Να επιτρέπεται πάντα ο ήχος στο <ph name="HOST" /></translation> <translation id="8578639784464423491">Δεν μπορεί να υπερβαίνει τα 99 γράμματα</translation> <translation id="8579285237314169903">Γίνεται συγχρονισμός <ph name="NUMBER_OF_FILES" /> στοιχείων…</translation> @@ -5205,7 +5197,6 @@ <translation id="9065203028668620118">Επεξεργασία</translation> <translation id="9066782832737749352">Κείμενο σε ομιλία</translation> <translation id="9070219033670098627">Αλλαγή ατόμου</translation> -<translation id="907148966137935206">Να μην επιτρέπεται σε κανέναν ιστότοπο η εμφάνιση αναδυόμενων παραθύρων (συνιστάται)</translation> <translation id="9071637495340542136">Εγκατάσταση <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347">Το <ph name="PASSWORD_MANAGER_BRAND" /> σάς συνδέει αυτόματα σε κατάλληλους ιστότοπους και εφαρμογές, χρησιμοποιώντας του κωδικούς πρόσβασης που έχετε αποθηκεύσει.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 0cd1db1..f81cf90b 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Bookmark This Page...</translation> <translation id="1047956942837015229">Deleting <ph name="COUNT" /> items...</translation> <translation id="1048286738600630630">Displays</translation> +<translation id="1049743911850919806">Incognito</translation> <translation id="1049795001945932310">&Language settings</translation> <translation id="1049926623896334335">Word document</translation> <translation id="1054153489933238809">Open Original Image in New Tab</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">The sync server is busy. Please try again later.</translation> <translation id="1784849162047402014">Device is low on disk space</translation> <translation id="1786636458339910689">Team Drives</translation> -<translation id="1789575671122666129">Popups</translation> <translation id="1792619191750875668">Extended display</translation> <translation id="1793119619663054394">Are you sure that you want to remove "<ph name="PROFILE_NAME" />" and all associated Chrome data from this computer? This cannot be undone.</translation> <translation id="1794791083288629568">Send feedback to help us fix this issue.</translation> @@ -653,12 +653,14 @@ <translation id="1983959805486816857">After you create a new supervised user, you can manage the settings at any time from any device at <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Dock window right</translation> <translation id="1987139229093034863">Change to a different user.</translation> +<translation id="1987317783729300807">Accounts</translation> <translation id="1989112275319619282">Browse</translation> <translation id="1992397118740194946">Not set</translation> <translation id="1994173015038366702">Site URL</translation> <translation id="1997484222658892567"><ph name="URL" /> wants to permanently store large data on your local computer</translation> <translation id="1997616988432401742">Your certificates</translation> <translation id="1999115740519098545">On start-up</translation> +<translation id="2001796770603320721">Manage in Drive</translation> <translation id="2006638907958895361">Open Link in <ph name="APP" /></translation> <translation id="2007404777272201486">Report an Issue...</translation> <translation id="2016430552235416146">Traditional</translation> @@ -754,7 +756,6 @@ <translation id="2151576029659734873">Invalid tab index entered.</translation> <translation id="2154484045852737596">Edit card</translation> <translation id="2154710561487035718">Copy URL</translation> -<translation id="2155931291251286316">Always allow pop-ups from <ph name="HOST" /></translation> <translation id="215753907730220065">Exit Full Screen</translation> <translation id="2157875535253991059">This page is now full screen.</translation> <translation id="216169395504480358">Add Wi-Fi ...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Relaunch</translation> <translation id="2803375539583399270">Enter PIN</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">Allow all sites to show pop-ups</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2807517655263062534">Files you download appear here</translation> <translation id="2809586584051668049">and <ph name="NUMBER_ADDITIONAL_DISABLED" /> more</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Get even more from Chrome</translation> <translation id="3479552764303398839">Not now</translation> <translation id="3480892288821151001">Dock window left</translation> -<translation id="3481915276125965083">The following pop-ups were blocked on this page:</translation> <translation id="3484273680291419129">Removing harmful software...</translation> <translation id="3484869148456018791">Get new certificate</translation> <translation id="3487007233252413104">anonymous function</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Your SIM card will be permanently disabled if you cannot enter the correct PIN Unlock Key.</translation> <translation id="363903084947548957">Next input method</translation> <translation id="3640214691812501263">Add "<ph name="EXTENSION_NAME" />" for <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Extension management is not available to Guest users. Please sign in to manage extensions.</translation> <translation id="3644896802912593514">Width</translation> <translation id="3646789916214779970">Reset to default theme</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> detected</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Always show</translation> <translation id="4175737294868205930">Persistent storage</translation> <translation id="4176463684765177261">Disabled</translation> -<translation id="4180684688621252156">Printing service</translation> <translation id="4180788401304023883">Delete CA certificate "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Languages</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Access to this resource was forbidden by the server.</translation> <translation id="4215350869199060536">Oops, illegal symbols in name!</translation> <translation id="4215448920900139318">Backing up <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Dictation</translation> <translation id="4225397296022057997">On all sites</translation> <translation id="4235200303672858594">Entire screen</translation> <translation id="4235813040357936597">Add Account for <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">My Drive</translation> <translation id="4430019312045809116">volume</translation> <translation id="4430369329743628066">Bookmark added</translation> +<translation id="4434045419905280838">Pop-ups and redirects</translation> <translation id="443454694385851356">Legacy (insecure)</translation> <translation id="443464694732789311">Continue</translation> <translation id="443475966875174318">Update or remove incompatible applications</translation> @@ -3273,6 +3272,7 @@ <translation id="6075907793831890935">Exchange data with the device named <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Include this screenshot</translation> <translation id="6077131872140550515">Remove from preferred</translation> +<translation id="6078323886959318429">Add shortcut</translation> <translation id="6078752646384677957">Please check your microphone and audio levels.</translation> <translation id="6080515710685820702">Using a shared computer? Try opening an incognito window.</translation> <translation id="6080689532560039067">Check your system time</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Simulate browser restart</translation> <translation id="6406506848690869874">Sync</translation> <translation id="6408118934673775994">Read and change your data on <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> and <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="6410257289063177456">Image Files</translation> <translation id="6410328738210026208">Change channel and Powerwash</translation> <translation id="6410668567036790476">Add search engine</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Origin:</translation> <translation id="6709357832553498500">Connect using <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Previous</translation> -<translation id="6716704051134091292">PDF Converter</translation> <translation id="6718273304615422081">Zipping...</translation> <translation id="671928215901716392">Lock screen</translation> <translation id="67211069045302358">Reset settings for this site?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Open as standard tab</translation> <translation id="6922128026973287222">Save data and browse faster using Google Data Saver. Click to learn more.</translation> <translation id="6923132443355966645">Scroll/Click</translation> -<translation id="6929555043669117778">Continue blocking pop-ups</translation> <translation id="6929835486583850209">Error installing <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Duration</translation> <translation id="6934241953272494177">Scanning your media device… @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Send performance trace data</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Block</translation> +<translation id="7055152154916055070">Redirect blocked:</translation> <translation id="7056526158851679338">&Inspect Devices</translation> <translation id="7059858479264779982">Set to auto-launch</translation> <translation id="7059893117020417984">To browse privately, click the dots icon menu to open an incognito window</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Update check failed to start (error code <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – Open and pack ZIP files in Files app.</translation> <translation id="7088674813905715446">This device has been placed into a deprovisioned state by the administrator. To enable it for enrolment, please have your administrator place the device into a pending state.</translation> -<translation id="7092106376816104">Pop-up exceptions</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Exchange data with the devices named: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Toggle Fullscreen Magnifier</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">Create a new profile</translation> <translation id="7444726222535375658">Continue to Hangouts Meet</translation> <translation id="7444983668544353857">Disable <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pop-ups blocked</translation> <translation id="7453008956351770337">By selecting this printer, you are giving the following extension the permission to access your printer:</translation> <translation id="7453467225369441013">Signs you out of most sites. You won't be signed out of your Google Account.</translation> <translation id="7456142309650173560">dev</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">Connecting to '<ph name="DEVICE_NAME" />'</translation> <translation id="7622114377921274169">Charging.</translation> <translation id="7624337243375417909">caps lock off</translation> +<translation id="7625568159987162309">View permissions and data stored across sites</translation> <translation id="7627790789328695202">Whoops, <ph name="FILE_NAME" /> already exists. Rename it and try again.</translation> <translation id="7628127343934101653">Open PDF files in the default PDF viewer application.</translation> <translation id="7629827748548208700">Tab: <ph name="TAB_NAME" /></translation> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Reorder by title</translation> <translation id="8068253693380742035">Touch to sign in</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Linux Files</translation> <translation id="8071432093239591881">Print as image</translation> <translation id="8072988827236813198">Pin Tabs</translation> <translation id="8074127646604999664">Allow recently closed sites to finish sending and receiving data</translation> <translation id="8075191520954018715">Memory state</translation> +<translation id="8076492880354921740">Tabs</translation> <translation id="8076835018653442223">Access to local files on your device is disabled by your administrator</translation> <translation id="8077684120002777443">Username (e.g. user@example.com)</translation> <translation id="8077816382010018681">QU Feature notification title here</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">No destinations found</translation> <translation id="8569764466147087991">Select a file to open</translation> <translation id="8571213806525832805">Last 4 weeks</translation> -<translation id="8571613743082299268">Redirect blocked to site</translation> <translation id="8574990355410201600">Always allow sound on <ph name="HOST" /></translation> <translation id="8578639784464423491">Cannot exceed 99 letters</translation> <translation id="8579285237314169903">Syncing <ph name="NUMBER_OF_FILES" /> items...</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">Edit</translation> <translation id="9066782832737749352">Text-to-Speech</translation> <translation id="9070219033670098627">Switch person</translation> -<translation id="907148966137935206">Do not allow any site to show pop-ups (recommended)</translation> <translation id="9071637495340542136">Installing <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> automatically signs you in to eligible sites and apps with passwords that you saved.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 5accf72..3a70e66 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Agregar esta página a favoritos...</translation> <translation id="1047956942837015229">Eliminando <ph name="COUNT" /> elementos…</translation> <translation id="1048286738600630630">Pantallas</translation> +<translation id="1049743911850919806">Incógnito</translation> <translation id="1049795001945932310">&Configuración de idiomas</translation> <translation id="1049926623896334335">Documento de Word</translation> <translation id="1054153489933238809">Abrir imagen original en una pestaña nueva</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">El servidor de sincronización está ocupado. Vuelve a intentarlo más tarde.</translation> <translation id="1784849162047402014">El dispositivo tiene poco espacio en el disco</translation> <translation id="1786636458339910689">Unidades de equipo</translation> -<translation id="1789575671122666129">Ventanas emergentes</translation> <translation id="1792619191750875668">Pantalla extendida</translation> <translation id="1793119619663054394">¿Confirmas que quieres eliminar "<ph name="PROFILE_NAME" />" y todos los datos de Chrome asociados de esta computadora? Esta acción no se puede deshacer.</translation> <translation id="1794791083288629568">Enviar comentarios para ayudarnos a solucionar este problema</translation> @@ -649,6 +649,7 @@ <translation id="1983959805486816857">Una vez que crees un usuario supervisado, podrás administrar la configuración cuando lo desees desde cualquier dispositivo en <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Acoplar ventana a la derecha</translation> <translation id="1987139229093034863">Cambiar a un usuario diferente</translation> +<translation id="1987317783729300807">Cuentas</translation> <translation id="1989112275319619282">Navegar</translation> <translation id="1992397118740194946">No está configurada</translation> <translation id="1994173015038366702">URL del sitio</translation> @@ -750,7 +751,6 @@ <translation id="2151576029659734873">Se ingresó un índice de pestaña no válido.</translation> <translation id="2154484045852737596">Editar tarjeta</translation> <translation id="2154710561487035718">Copiar URL</translation> -<translation id="2155931291251286316">Siempre permitir ventanas emergentes de <ph name="HOST" /></translation> <translation id="215753907730220065">Salir de pantalla completa</translation> <translation id="2157875535253991059">Esta página está en modo de pantalla completa.</translation> <translation id="216169395504480358">Agregar Wi-Fi</translation> @@ -1180,7 +1180,6 @@ <translation id="2799223571221894425">Reiniciar</translation> <translation id="2803375539583399270">Ingresar PIN</translation> <translation id="2805646850212350655">Sistema de encriptación de archivos de Microsoft</translation> -<translation id="2805707493867224476">Permitir que todos los sitios muestren ventanas emergentes.</translation> <translation id="2805756323405976993">Aplicaciones</translation> <translation id="2807517655263062534">Los archivos que descargas aparecen aquí</translation> <translation id="2809586584051668049">y <ph name="NUMBER_ADDITIONAL_DISABLED" /> más</translation> @@ -1614,7 +1613,6 @@ <translation id="347919930506963698">Aprovecha Google al máximo</translation> <translation id="3479552764303398839">Ahora no</translation> <translation id="3480892288821151001">Acoplar ventana a la izquierda</translation> -<translation id="3481915276125965083">Se bloquearon las siguientes ventanas emergentes en esta página:</translation> <translation id="3484273680291419129">Quitando software dañino…</translation> <translation id="3484869148456018791">Obtener nuevo certificado</translation> <translation id="3487007233252413104">función anónima</translation> @@ -1720,7 +1718,6 @@ <translation id="3637682276779847508">Tu tarjeta SIM quedará inhabilitada de forma permanente si no ingresas la clave de desbloqueo de PIN correcta.</translation> <translation id="363903084947548957">Siguiente método de entrada</translation> <translation id="3640214691812501263">¿Quieres agregar "<ph name="EXTENSION_NAME" />" para <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">La administración de extensiones no está disponible para los usuarios invitados. Accede a tu cuenta para administrar las extensiones.</translation> <translation id="3644896802912593514">Ancho</translation> <translation id="3646789916214779970">Restablecer el tema predeterminado</translation> <translation id="3648348069317717750">Se detectó <ph name="USB_DEVICE_NAME" /></translation> @@ -2062,7 +2059,6 @@ <translation id="4172051516777682613">Mostrar siempre</translation> <translation id="4175737294868205930">Almacenamiento persistente</translation> <translation id="4176463684765177261">Deshabilitado</translation> -<translation id="4180684688621252156">Servicio de impresión</translation> <translation id="4180788401304023883">¿Eliminar Entidad del certificado "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Idiomas</translation> @@ -3270,6 +3266,7 @@ <translation id="6075907793831890935">Intercambiar datos con el dispositivo <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Incluir esta captura de pantalla</translation> <translation id="6077131872140550515">Quitar de redes preferidas</translation> +<translation id="6078323886959318429">Agregar un acceso directo</translation> <translation id="6078752646384677957">Comprueba el micrófono y los niveles de audio.</translation> <translation id="6080515710685820702">¿Usas una computadora compartida? Intenta abrir una ventana de incógnito.</translation> <translation id="6080689532560039067">Comprobar la hora del sistema</translation> @@ -3478,7 +3475,6 @@ <translation id="6406303162637086258">Simular reinicio de navegador</translation> <translation id="6406506848690869874">Sincronización</translation> <translation id="6408118934673775994">Leer y modificar tus datos en <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> y <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Ventanas emergentes</translation> <translation id="6410257289063177456">Archivos de imagen</translation> <translation id="6410328738210026208">Cambiar canal y Powerwash</translation> <translation id="6410668567036790476">Agregar motor de búsqueda</translation> @@ -3675,7 +3671,7 @@ <translation id="6690751852586194791">Selecciona un usuario supervisado para agregar a este dispositivo.</translation> <translation id="6691331417640343772">Administrar los datos sincronizados en el Panel de control de Google</translation> <translation id="6691936601825168937">&Reenviar</translation> -<translation id="6697492270171225480">Mostrar sugerencias para páginas similares cuando no se puede encontrar una página</translation> +<translation id="6697492270171225480">Mostrar sugerencias para páginas similares cuando no se puede encontrar una específica</translation> <translation id="6698810901424468597">Leer y modificar tus datos en <ph name="WEBSITE_1" /> y <ph name="WEBSITE_2" /></translation> <translation id="6700480081846086223">Transmitir <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">No se pudo obtener el perfil.</translation> @@ -3686,7 +3682,6 @@ <translation id="6708242697268981054">Origen:</translation> <translation id="6709357832553498500">Conectar a través de <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Anterior</translation> -<translation id="6716704051134091292">PDF Convertor</translation> <translation id="6718273304615422081">Comprimiendo…</translation> <translation id="671928215901716392">Bloquear pantalla</translation> <translation id="67211069045302358">¿Deseas restablecer la configuración de este sitio?</translation> @@ -3811,7 +3806,6 @@ <translation id="6920989436227028121">Abrir como pestaña regular</translation> <translation id="6922128026973287222">Guarda los datos y explóralos más rápidamente con la extensión Ahorro de datos de Google. Haz clic aquí para obtener más información.</translation> <translation id="6923132443355966645">Desplazar/Hacer clic</translation> -<translation id="6929555043669117778">Continuar con el bloqueo de ventanas emergentes</translation> <translation id="6929835486583850209">Se produjo un error al instalar <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Duración</translation> <translation id="6934241953272494177">Analizando el dispositivo de medios… @@ -3921,7 +3915,6 @@ <translation id="7088434364990739311">Error al iniciar la verificación de actualizaciones (código de error <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver: Abre y crea archivos ZIP en la app de Archivos.</translation> <translation id="7088674813905715446">El administrador estableció el estado de desaprovisionamiento para este dispositivo. Para poder utilizarlo en el registro, el administrador debe actualizar el estado del dispositivo a pendiente.</translation> -<translation id="7092106376816104">Excepciones de ventanas emergentes</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Intercambiar datos con los siguientes dispositivos: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Activar o desactivar la lupa de pantalla completa</translation> @@ -4141,7 +4134,6 @@ <translation id="744341768939279100">Crear un perfil nuevo</translation> <translation id="7444726222535375658">Ir a Meet de Hangouts</translation> <translation id="7444983668544353857">Inhabilitar <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Se bloquearon ventanas emergentes</translation> <translation id="7453008956351770337">Al seleccionar esta impresora, concedes a la siguiente extensión permiso para acceder a tu impresora.</translation> <translation id="7453467225369441013">Esta acción te hace salir de la mayoría de los sitios. No saldrás de tu cuenta de Google.</translation> <translation id="7456142309650173560">para programadores</translation> @@ -4586,6 +4578,7 @@ <translation id="8072988827236813198">Marcar pestañas</translation> <translation id="8074127646604999664">Permitir que los sitios cerrados recientemente terminen de enviar y recibir datos</translation> <translation id="8075191520954018715">Estado de la memoria</translation> +<translation id="8076492880354921740">Pestañas</translation> <translation id="8076835018653442223">El administrador inhabilitó el acceso a los archivos locales de tu dispositivo</translation> <translation id="8077684120002777443">Nombre de usuario (p. ej., usuario@ejemplo.com)</translation> <translation id="8077816382010018681">QU Feature notification title here</translation> @@ -4871,7 +4864,6 @@ <translation id="8569682776816196752">No se encontró ningún destino.</translation> <translation id="8569764466147087991">Seleccionar un archivo para abrir</translation> <translation id="8571213806525832805">Últimas cuatro semanas</translation> -<translation id="8571613743082299268">Se bloqueó el redireccionamiento al siguiente sitio</translation> <translation id="8574990355410201600">Permitir siempre el sonido en <ph name="HOST" /></translation> <translation id="8578639784464423491">No se pueden superar las 99 letras</translation> <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> elementos…</translation> @@ -5203,7 +5195,6 @@ <translation id="9065203028668620118">Editar</translation> <translation id="9066782832737749352">Texto a voz</translation> <translation id="9070219033670098627">Cambiar de persona</translation> -<translation id="907148966137935206">No permitir que los sitios muestren ventanas emergentes (recomendado)</translation> <translation id="9071637495340542136">Instalando <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> te permite acceder automáticamente a las apps y los sitios aptos con las contraseñas que guardaste.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index d92e0a7a..930ceca 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Añadir esta página a marcadores...</translation> <translation id="1047956942837015229">Eliminando <ph name="COUNT" /> elementos...</translation> <translation id="1048286738600630630">Pantallas</translation> +<translation id="1049743911850919806">Incógnito</translation> <translation id="1049795001945932310">&Configuración de idioma</translation> <translation id="1049926623896334335">Documento de Word</translation> <translation id="1054153489933238809">Abrir &imagen original en una pestaña nueva</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">El servidor de sincronización está ocupado. Vuelve a intentarlo más tarde.</translation> <translation id="1784849162047402014">Queda poco espacio en el disco del dispositivo</translation> <translation id="1786636458339910689">Unidades de equipo</translation> -<translation id="1789575671122666129">Ventanas emergentes</translation> <translation id="1792619191750875668">Pantalla extendida</translation> <translation id="1793119619663054394">¿Seguro que quieres eliminar "<ph name="PROFILE_NAME" />" y todos los datos de Chrome asociados de este ordenador? Esta acción no se puede deshacer.</translation> <translation id="1794791083288629568">Envíanos un comentario para ayudarnos a solucionar el problema.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Una vez que hayas creado un nuevo usuario supervisado, podrás administrar su configuración en cualquier momento desde cualquier dispositivo a través de la página <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Acoplar ventana a la derecha</translation> <translation id="1987139229093034863">Cambiar a un usuario diferente</translation> +<translation id="1987317783729300807">Cuentas</translation> <translation id="1989112275319619282">Examinar</translation> <translation id="1992397118740194946">Sin configurar</translation> <translation id="1994173015038366702">URL del sitio</translation> <translation id="1997484222658892567"><ph name="URL" /> quiere almacenar datos de gran tamaño de forma permanente en tu ordenador local</translation> <translation id="1997616988432401742">Tus certificados</translation> <translation id="1999115740519098545">Al abrir el navegador...</translation> +<translation id="2001796770603320721">Administrar en Drive</translation> <translation id="2006638907958895361">Abrir enlace en <ph name="APP" /></translation> <translation id="2007404777272201486">Notificar un problema...</translation> <translation id="2016430552235416146">Tradicional</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Índice de tabulación no válido introducido</translation> <translation id="2154484045852737596">Editar tarjeta</translation> <translation id="2154710561487035718">Copiar URL</translation> -<translation id="2155931291251286316">Permitir siempre ventanas emergentes de <ph name="HOST" /></translation> <translation id="215753907730220065">Desactivar pantalla completa</translation> <translation id="2157875535253991059">Esta página se muestra ahora en pantalla completa.</translation> <translation id="216169395504480358">Añadir Wi-Fi...</translation> @@ -941,7 +942,7 @@ <translation id="2462724976360937186">ID de clave de la entidad emisora de certificados</translation> <translation id="2462752602710430187">Se ha añadido la impresora <ph name="PRINTER_NAME" /></translation> <translation id="2464089476039395325">Proxy HTTP</translation> -<translation id="2468205691404969808">Use cookies para recordar tus preferencias aunque no visites esas páginas</translation> +<translation id="2468205691404969808">Usa cookies para recordar tus preferencias aunque no visites esas páginas</translation> <translation id="2468902267404883140">No se puede establecer conexión con tu teléfono. Asegúrate de que estás utilizando un teléfono Android compatible que esté encendido y que tengas cerca. <a>Más información</a></translation> <translation id="2470702053775288986">Extensiones no admitidas inhabilitadas</translation> <translation id="2473195200299095979">Traducir esta página</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Reiniciar</translation> <translation id="2803375539583399270">Introducir PIN</translation> <translation id="2805646850212350655">Sistema de archivos de cifrado de Microsoft</translation> -<translation id="2805707493867224476">Permitir que todos los sitios muestren ventanas emergentes</translation> <translation id="2805756323405976993">Aplicaciones</translation> <translation id="2807517655263062534">Los archivos que descargues aparecen aquí</translation> <translation id="2809586584051668049">y <ph name="NUMBER_ADDITIONAL_DISABLED" /> más</translation> @@ -1615,7 +1615,6 @@ <translation id="347919930506963698">Saca el máximo partido a Chrome</translation> <translation id="3479552764303398839">Ahora no</translation> <translation id="3480892288821151001">Acoplar ventana a la izquierda</translation> -<translation id="3481915276125965083">Se han bloqueado los siguientes pop-ups en esta página:</translation> <translation id="3484273680291419129">Eliminando software dañino...</translation> <translation id="3484869148456018791">Obtener nuevo certificado</translation> <translation id="3487007233252413104">función anónima</translation> @@ -1721,7 +1720,6 @@ <translation id="3637682276779847508">La tarjeta SIM se inhabilitará de forma permanente si no introduces el código PUK correcto.</translation> <translation id="363903084947548957">Siguiente método de entrada</translation> <translation id="3640214691812501263">¿Añadir <ph name="EXTENSION_NAME" /> para <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Los usuarios invitados no pueden gestionar las extensiones. Inicia sesión para hacerlo.</translation> <translation id="3644896802912593514">Anchura</translation> <translation id="3646789916214779970">Restablecer tema predeterminado</translation> <translation id="3648348069317717750">Se ha detectado <ph name="USB_DEVICE_NAME" /></translation> @@ -2062,7 +2060,6 @@ <translation id="4172051516777682613">Mostrar siempre</translation> <translation id="4175737294868205930">Almacenamiento permanente</translation> <translation id="4176463684765177261">Inhabilitado</translation> -<translation id="4180684688621252156">Servicio de impresión</translation> <translation id="4180788401304023883">¿Quieres eliminar el certificado de CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Idiomas</translation> @@ -2088,6 +2085,7 @@ <translation id="42137655013211669">El servidor ha prohibido el acceso a este recurso.</translation> <translation id="4215350869199060536">¡Vaya! El nombre incluye símbolos que no están permitidos</translation> <translation id="4215448920900139318">Creando copia de seguridad de <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Dictado</translation> <translation id="4225397296022057997">En todos los sitios web</translation> <translation id="4235200303672858594">Toda la pantalla</translation> <translation id="4235813040357936597">Añadir cuenta de <ph name="PROFILE_NAME" /></translation> @@ -2200,6 +2198,7 @@ <translation id="4425149324548788773">Mi unidad</translation> <translation id="4430019312045809116">Volumen</translation> <translation id="4430369329743628066">Añadida a Marcadores</translation> +<translation id="4434045419905280838">Ventanas emergentes y redirecciones</translation> <translation id="443454694385851356">Antiguos (no seguro)</translation> <translation id="443464694732789311">Continuar</translation> <translation id="443475966875174318">Actualizar o quitar aplicaciones incompatibles</translation> @@ -3269,6 +3268,7 @@ <translation id="6075907793831890935">Intercambiar datos con el dispositivo denominado <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Incluir esta captura de pantalla</translation> <translation id="6077131872140550515">Quitar de las redes preferidas</translation> +<translation id="6078323886959318429">Añadir acceso directo</translation> <translation id="6078752646384677957">Comprueba el volumen del micrófono y del audio.</translation> <translation id="6080515710685820702">¿Utilizas un ordenador compartido? Prueba a abrir una ventana de incógnito.</translation> <translation id="6080689532560039067">Comprueba la hora del sistema</translation> @@ -3477,7 +3477,6 @@ <translation id="6406303162637086258">Simular reinicio del navegador</translation> <translation id="6406506848690869874">Sincronización</translation> <translation id="6408118934673775994">Leer y modificar tus datos en <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> y <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Ventanas emergentes</translation> <translation id="6410257289063177456">Archivos de imagen</translation> <translation id="6410328738210026208">Cambiar canal y Powerwash</translation> <translation id="6410668567036790476">Añadir motor de búsqueda</translation> @@ -3684,7 +3683,6 @@ <translation id="6708242697268981054">Origen:</translation> <translation id="6709357832553498500">Conectar con <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Anterior</translation> -<translation id="6716704051134091292">Conversor de PDF</translation> <translation id="6718273304615422081">Comprimiendo...</translation> <translation id="671928215901716392">Bloquear pantalla</translation> <translation id="67211069045302358">¿Seguro que quieres recuperar la configuración de este sitio web?</translation> @@ -3809,7 +3807,6 @@ <translation id="6920989436227028121">Abrir como pestaña normal</translation> <translation id="6922128026973287222">Ahorra datos y navega más rápido con Ahorro de Datos de Google. Haz clic para obtener más información.</translation> <translation id="6923132443355966645">Desplazarse/Hacer clic</translation> -<translation id="6929555043669117778">Seguir bloqueando pop-ups</translation> <translation id="6929835486583850209">No se ha podido instalar <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Duración</translation> <translation id="6934241953272494177">Escaneando tu dispositivo multimedia... @@ -3893,6 +3890,7 @@ <translation id="7052237160939977163">Enviar datos de seguimiento de rendimiento</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Bloquear</translation> +<translation id="7055152154916055070">Redirección bloqueada:</translation> <translation id="7056526158851679338">&Inspeccionar dispositivos</translation> <translation id="7059858479264779982">Establecer inicio automático</translation> <translation id="7059893117020417984">Para navegar en privado, haz clic en el icono de puntos y abre una ventana de incógnito</translation> @@ -3919,7 +3917,6 @@ <translation id="7088434364990739311">No se ha podido iniciar la comprobación de actualizaciones (código de error <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver: abre y comprime archivos ZIP en la aplicación Archivos.</translation> <translation id="7088674813905715446">El administrador ha puesto este dispositivo en el estado Sin aprovisionamiento. Para poder registrarlo, el administrador debe actualizar el estado del dispositivo a Pendiente.</translation> -<translation id="7092106376816104">Excepciones de ventanas emergentes</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Intercambiar datos con los dispositivos denominados <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Activar o desactivar la lupa de pantalla completa</translation> @@ -4138,7 +4135,6 @@ <translation id="744341768939279100">Crear un nuevo perfil</translation> <translation id="7444726222535375658">Acceder a Hangouts Meet</translation> <translation id="7444983668544353857">Inhabilitar <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Ventanas emergentes bloqueadas</translation> <translation id="7453008956351770337">Al seleccionar esta impresora, concedes permiso a la siguiente extensión para acceder a tu impresora:</translation> <translation id="7453467225369441013">Cierra tu sesión en la mayoría de los sitios web. No se cerrará la sesión en tu cuenta de Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4257,6 +4253,7 @@ <translation id="7617366389578322136">Se está estableciendo conexión con "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">Cargando.</translation> <translation id="7624337243375417909">bloqueo de mayúsculas desactivado</translation> +<translation id="7625568159987162309">Ver permisos y datos almacenados en todos los sitios web</translation> <translation id="7627790789328695202">¡Vaya! <ph name="FILE_NAME" /> ya existe. Elige otro nombre y vuelve a intentarlo.</translation> <translation id="7628127343934101653">Abrir archivos PDF en la aplicación de visor de PDF predeterminada.</translation> <translation id="7629827748548208700">Pestaña: <ph name="TAB_NAME" /></translation> @@ -4390,7 +4387,7 @@ <ph name="LIST_ITEM" />Eliminar la verificación de rootfs para poder modificar archivos del sistema operativo. <ph name="LIST_ITEM" />Habilitar el acceso SSH al dispositivo mediante las claves de prueba de tipo estándar para poder utilizar herramientas como <ph name="BEGIN_CODE" />"cros flash"<ph name="END_CODE" /> para acceder al dispositivo. <ph name="LIST_ITEM" />Habilitar el inicio desde USB para poder instalar una imagen del SO desde una unidad USB. - <ph name="LIST_ITEM" />Asignar un valor personalizado a las contraseñas de inicio de sesión de raíz del sistema y dev para acceder al dispositivo manualmente mediante SSH. + <ph name="LIST_ITEM" />Asignar un valor personalizado a las contraseñas de inicio de sesión de raíz del sistema y dev para acceder al dispositivo manualmente mediante SSH. <ph name="END_LIST" /> <ph name="BR" /> Una vez habilitadas, la mayoría de las funciones de depuración seguirán estando habilitadas incluso después de hacer un Powerwash o borrar los datos en dispositivos administrados por la empresa. Para inhabilitar totalmente todas las funciones de depuración, completa el proceso de recuperación de Chrome OS (https://support.google.com/chromebook/answer/1080595?hl=es). @@ -4579,10 +4576,12 @@ <translation id="806812017500012252">Reordenar por título</translation> <translation id="8068253693380742035">Toca para iniciar sesión</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Archivos de Linux</translation> <translation id="8071432093239591881">Imprimir como imagen</translation> <translation id="8072988827236813198">Fijar pestañas</translation> <translation id="8074127646604999664">Permitir que los sitios web cerrados recientemente terminen de enviar y recibir datos</translation> <translation id="8075191520954018715">Estado de la memoria</translation> +<translation id="8076492880354921740">Pestañas</translation> <translation id="8076835018653442223">Tu administrador ha inhabilitado el acceso a los archivos locales de tu dispositivo</translation> <translation id="8077684120002777443">Nombre de usuario (p. ej., usuario@example.com)</translation> <translation id="8077816382010018681">Título de la notificación de la función de desbloqueo rápido</translation> @@ -4867,7 +4866,6 @@ <translation id="8569682776816196752">No se ha encontrado ningún destino.</translation> <translation id="8569764466147087991">Selecciona un archivo para abrir</translation> <translation id="8571213806525832805">Últimas cuatro semanas</translation> -<translation id="8571613743082299268">Se ha bloqueado la redirección al sitio web</translation> <translation id="8574990355410201600">Permitir siempre el sonido en <ph name="HOST" /></translation> <translation id="8578639784464423491">No puede tener más de 99 caracteres</translation> <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> elementos...</translation> @@ -5199,7 +5197,6 @@ <translation id="9065203028668620118">Editar</translation> <translation id="9066782832737749352">Síntesis de voz</translation> <translation id="9070219033670098627">Cambiar de persona</translation> -<translation id="907148966137935206">No permitir que ningún sitio muestre ventanas emergentes (recomendado)</translation> <translation id="9071637495340542136">Instalando <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> inicia sesión automáticamente en aplicaciones y sitios web aptos con las contraseñas que has guardado.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index ab7a504..aedf320 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Lisa selle lehe järjehoidja...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> üksuse kustutamine ...</translation> <translation id="1048286738600630630">Ekraanid</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Keeleseaded</translation> <translation id="1049926623896334335">Wordi dokument</translation> <translation id="1054153489933238809">Ava &algkujutis uuel vahelehel</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Sünkroonimisserver on hõivatud, proovige hiljem uuesti.</translation> <translation id="1784849162047402014">Seadmes on vähe kettaruumi</translation> <translation id="1786636458339910689">Tiimikettad</translation> -<translation id="1789575671122666129">Hüpikaknad</translation> <translation id="1792619191750875668">Lisaekraan</translation> <translation id="1793119619663054394">Kas soovite kindlasti eemaldada arvutist profiili „<ph name="PROFILE_NAME" />” ja kõik sellega seotud Chrome'i andmed? Seda toimingut ei saa tagasi võtta.</translation> <translation id="1794791083288629568">Saatke tagasisidet, et aidata meil see probleem lahendada.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Pärast uue valvatava kasutaja loomist saate seadmes aadressil <ph name="MANAGEMENT_URL" /> seadeid hallata.</translation> <translation id="1984642098429648350">Doki aken paremale</translation> <translation id="1987139229093034863">Vaheta kasutajat.</translation> +<translation id="1987317783729300807">Kontod</translation> <translation id="1989112275319619282">Sirvi</translation> <translation id="1992397118740194946">Pole määratud</translation> <translation id="1994173015038366702">Saidi URL</translation> <translation id="1997484222658892567"><ph name="URL" /> soovib suure hulga andmeid alaliselt teie kohalikku arvutisse salvestada</translation> <translation id="1997616988432401742">Teie sertifikaadid</translation> <translation id="1999115740519098545">Käivitamisel</translation> +<translation id="2001796770603320721">Halda Drive'is</translation> <translation id="2006638907958895361">Ava link rakenduses <ph name="APP" /></translation> <translation id="2007404777272201486">Anna probleemist teada ...</translation> <translation id="2016430552235416146">Traditsiooniline</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Sisestati vale vahelehe register.</translation> <translation id="2154484045852737596">Kaardi muutmine</translation> <translation id="2154710561487035718">Kopeeri URL</translation> -<translation id="2155931291251286316">Luba alati hüpikaknaid rakendusest <ph name="HOST" /></translation> <translation id="215753907730220065">Täisekraanilt väljumine</translation> <translation id="2157875535253991059">See leht kuvati nüüd täisekraanil.</translation> <translation id="216169395504480358">Lisa WiFi ...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Taaskäivita</translation> <translation id="2803375539583399270">Sisestage PIN-kood</translation> <translation id="2805646850212350655">Microsofti failisüsteemi krüptimine</translation> -<translation id="2805707493867224476">Luba kõigil saitidel hüpikakende kuvamine</translation> <translation id="2805756323405976993">Rakendused</translation> <translation id="2807517655263062534">Siin kuvatakse teie allalaaditud failid</translation> <translation id="2809586584051668049">ja veel <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Kasutage Chrome'i veelgi paremal moel</translation> <translation id="3479552764303398839">Mitte praegu</translation> <translation id="3480892288821151001">Doki aken vasakule</translation> -<translation id="3481915276125965083">Sellel lehel blokeeriti järgmised hüpikaknad:</translation> <translation id="3484273680291419129">Kahjuliku tarkvara eemaldamine …</translation> <translation id="3484869148456018791">Hangi uus sertifikaat</translation> <translation id="3487007233252413104">anonüümne funktsioon</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Kui te ei sisesta õiget PUK-koodi, keelatakse teie SIM-kaart jäädavalt.</translation> <translation id="363903084947548957">Järgmine sisestusmeetod</translation> <translation id="3640214691812501263">Kas soovite lisada kasutajale <ph name="USER_NAME" /> laiendi „<ph name="EXTENSION_NAME" />”?</translation> -<translation id="3643225892037417978">Laienduse haldus ei ole külalistest kasutajate jaoks saadaval. Logige laienduste haldamiseks sisse.</translation> <translation id="3644896802912593514">Laius</translation> <translation id="3646789916214779970">Lähtesta vaiketeemale</translation> <translation id="3648348069317717750">Tuvastati <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Kuva alati</translation> <translation id="4175737294868205930">Püsiv salvestusruum</translation> <translation id="4176463684765177261">Keelatud</translation> -<translation id="4180684688621252156">Printimisteenus</translation> <translation id="4180788401304023883">Kustutada CA sertifikaat „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="4181602000363099176">20-kordne</translation> <translation id="4181841719683918333">Keeled</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Server keelas juurdepääsu ressursile.</translation> <translation id="4215350869199060536">Kahjuks on nimes valed märgid.</translation> <translation id="4215448920900139318">Varundamine: <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Dikteerimine</translation> <translation id="4225397296022057997">Kõikidel saitidel</translation> <translation id="4235200303672858594">Kogu ekraan</translation> <translation id="4235813040357936597">Lisa konto profiilile <ph name="PROFILE_NAME" /></translation> @@ -2168,7 +2166,7 @@ <translation id="4364567974334641491">Rakendus <ph name="APP_NAME" /> jagab akent.</translation> <translation id="4364830672918311045">Kuva märguanded</translation> <translation id="4365673000813822030">Vabandust, sünkroonimine on lakanud töötamast.</translation> -<translation id="4370373819607756384">Seda seadet saab juhtida menüüs <ph name="BEGIN_LINK" />Keeled<ph name="END_LINK" /></translation> +<translation id="4370373819607756384">Seda seadet saab hallata menüüs <ph name="BEGIN_LINK" />Keeled<ph name="END_LINK" /></translation> <translation id="4370975561335139969">Sisestatud e-posti aadress ja parool ei ühildu</translation> <translation id="437184764829821926">Täiustatud fondiseaded</translation> <translation id="4372884569765913867">1 x 1</translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Minu ketas</translation> <translation id="4430019312045809116">Helitugevus</translation> <translation id="4430369329743628066">Järjehoidja on lisatud</translation> +<translation id="4434045419905280838">Hüpikaknad ja ümbersuunamised</translation> <translation id="443454694385851356">Pärandversioon (ebaturvaline)</translation> <translation id="443464694732789311">Jätka</translation> <translation id="443475966875174318">Ühildumatute rakenduste värskendamine või eemaldamine</translation> @@ -3273,6 +3272,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="6078323886959318429">Otsetee lisamine</translation> <translation id="6078752646384677957">Kontrollige mikrofoni ja helitasemeid.</translation> <translation id="6080515710685820702">Kas kasutate jagatud arvutit? Proovige avada inkognito aken.</translation> <translation id="6080689532560039067">Süsteemiaja kontrollimine</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Simuleeri brauseri taaskäivitamist</translation> <translation id="6406506848690869874">Sünkroonimine</translation> <translation id="6408118934673775994">Andmete lugemine ja muutmine veebisaidil <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ja <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Hüpikaknad</translation> <translation id="6410257289063177456">Pildifailid</translation> <translation id="6410328738210026208">Muuda kanalit ja Powerwashi</translation> <translation id="6410668567036790476">Otsingumootori lisamine</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Päritolu:</translation> <translation id="6709357832553498500">Ühenda, kasutades laiendust <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Eelmine</translation> -<translation id="6716704051134091292">PDF-i teisendaja</translation> <translation id="6718273304615422081">Pakkimine ...</translation> <translation id="671928215901716392">Lukusta ekraan</translation> <translation id="67211069045302358">Kas lähtestada selle saidi seaded?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Ava tavalise vahelehena</translation> <translation id="6922128026973287222">Salvestage andmeid ja sirvige kiiremini Google'i andmemahu säästjaga. Lisateabe saamiseks klõpsake.</translation> <translation id="6923132443355966645">Kerimine/klõpsamine</translation> -<translation id="6929555043669117778">Jätka hüpikakende blokeerimist</translation> <translation id="6929835486583850209">Rakenduse <ph name="APP_NAME" /> installimisel ilmnes viga …</translation> <translation id="6930242544192836755">Kestus</translation> <translation id="6934241953272494177">Meediaseadme skannimine … @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Saada toimivuse jälgimise andmeid</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokeeri</translation> +<translation id="7055152154916055070">Ümbersuunamine blokeeriti:</translation> <translation id="7056526158851679338">&Seadmete kontrollimine</translation> <translation id="7059858479264779982">Määra automaatsele käivitamisele</translation> <translation id="7059893117020417984">Privaatselt sirvimiseks klõpsake punktidega menüüikoonil, et avada inkognito aken</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Värskenduste otsimist ei õnnestunud käivitada (veakood <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – avage ja pakkige ZIP-faile rakenduses Failid.</translation> <translation id="7088674813905715446">Administraator on määranud seadme mittetoetatud olekusse. Liitumise lubamiseks paluge administraatoril määrata seade ootel olekusse.</translation> -<translation id="7092106376816104">Hüpikute erandid</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Vaheta andmeid seadmetega <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Täisekraani luubi sisse-/väljalülitamine</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">Loo uus profiil</translation> <translation id="7444726222535375658">Jätka rakenduses Hangouts Meet</translation> <translation id="7444983668544353857">Keela <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Hüpikud on blokeeritud</translation> <translation id="7453008956351770337">Kui valite selle printeri, annate järgmisele laiendile loa printerile juurde pääseda.</translation> <translation id="7453467225369441013">Logib teid enamikult saitidelt välja. Google'i kontolt teid välja ei logita.</translation> <translation id="7456142309650173560">arendaja</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">Seadmega „<ph name="DEVICE_NAME" />” ühenduse loomine</translation> <translation id="7622114377921274169">Laadimine.</translation> <translation id="7624337243375417909">suurtähelukk on välja lülitatud</translation> +<translation id="7625568159987162309">Kuva load ja mitmel saidil talletatud andmed</translation> <translation id="7627790789328695202"><ph name="FILE_NAME" /> on juba olemas. Nimetage see ümber ja proovige uuesti.</translation> <translation id="7628127343934101653">Ava PDF-failid PDF-vaikevaaturi rakenduses.</translation> <translation id="7629827748548208700">Vaheleht: <ph name="TAB_NAME" /></translation> @@ -4399,7 +4396,7 @@ <ph name="LIST_ITEM" />Määrata nii arendaja kui ka süsteemi juursisselogimisparooli kohandatud väärtusele, et kasutada seadmesse käsitsi pääsemiseks SSH-d <ph name="END_LIST" /> <ph name="BR" /> - Kui see on lubatud, jäävad enamik silumisfunktsioone ettevõtte hallatud seadmes lubatuks isegi pärast Powerwashi kasutamist või andmete kustutamist. Silumisfunktsioonide täielikuks keelamiseks tehke Chrome OS-i taastamisprotsessi toimingud (https://support.google.com/chromebook/answer/1080595). + Kui see on lubatud, jäävad enamik silumisfunktsioone ettevõtte hallatavas seadmes lubatuks isegi pärast Powerwashi kasutamist või andmete kustutamist. Silumisfunktsioonide täielikuks keelamiseks tehke Chrome OS-i taastamisprotsessi toimingud (https://support.google.com/chromebook/answer/1080595). <ph name="BR" /> <ph name="BR" /> Lisateavet silumisfunktsioonide kohta leiate siit:<ph name="BR" /> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Järjesta pealkirja alusel uuesti</translation> <translation id="8068253693380742035">Puudutage sisselogimiseks</translation> <translation id="8069615408251337349">Google'i pilvprintimine</translation> +<translation id="806972267388474605">Linuxi failid</translation> <translation id="8071432093239591881">Prindi kujutisena</translation> <translation id="8072988827236813198">Kinnita vahelehed</translation> <translation id="8074127646604999664">Luba hiljuti suletud saitidel lõpetada andmete saatmine ja vastuvõtmine</translation> <translation id="8075191520954018715">Mälu olek</translation> +<translation id="8076492880354921740">Vahelehed</translation> <translation id="8076835018653442223">Teie administraator on keelanud seadmes juurdepääsu kohalikele failidele</translation> <translation id="8077684120002777443">Kasutajanimi (nt user@example.com)</translation> <translation id="8077816382010018681">Siia läheb funktsiooni QU märguande pealkiri</translation> @@ -4874,7 +4873,6 @@ <translation id="8569682776816196752">Sihtkohti ei leitud</translation> <translation id="8569764466147087991">Valige avatav fail</translation> <translation id="8571213806525832805">Viimased 4 nädalat</translation> -<translation id="8571613743082299268">Blokeeriti ümbersuunamine saidile</translation> <translation id="8574990355410201600">Luba saidil <ph name="HOST" /> alati heli</translation> <translation id="8578639784464423491">Ei tohi olla üle 99 tähe</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> üksuse sünkroonimine ...</translation> @@ -5206,7 +5204,6 @@ <translation id="9065203028668620118">Muuda</translation> <translation id="9066782832737749352">Kõnesüntees</translation> <translation id="9070219033670098627">Vaheta isikut</translation> -<translation id="907148966137935206">Ära luba mis tahes saidil hüpikaknaid kuvada (soovitatav)</translation> <translation id="9071637495340542136">Rakenduse <ph name="APP_NAME" /> installimine …</translation> <translation id="9072550133391925347">Teenus <ph name="PASSWORD_MANAGER_BRAND" /> logib teid salvestatud paroolidega automaatselt sisse sobilikele saitidele ja rakendustesse.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index de6fc9df..2c368b44 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">نشانک گذاری این صفحه...</translation> <translation id="1047956942837015229">در حال حذف <ph name="COUNT" /> مورد...</translation> <translation id="1048286738600630630">نمایشگرها</translation> +<translation id="1049743911850919806">ناشناس</translation> <translation id="1049795001945932310">&تنظیمات زبان</translation> <translation id="1049926623896334335">سند Word </translation> <translation id="1054153489933238809">باز کردن &تصویر اصلی در برگه جدید</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">سرور سیستم مشغول است، لطفاً بعداً دوباره امتحان کنید.</translation> <translation id="1784849162047402014">فضای ذخیرهسازی دستگاه رو به اتمام است</translation> <translation id="1786636458339910689">درایوهای گروه</translation> -<translation id="1789575671122666129">پنجرههای بازشو</translation> <translation id="1792619191750875668">نمایشگر گسترده</translation> <translation id="1793119619663054394">مطمئنید میخواهید "<ph name="PROFILE_NAME" />" و همه دادههای Chrome مربوط به آن را از این رایانه حذف کنید؟ این عمل قابل واگرد نیست.</translation> <translation id="1794791083288629568">برای کمک به ما در رفع این مشکل بازخورد ارسال کنید.</translation> @@ -649,6 +649,7 @@ <translation id="1983959805486816857">پس از ایجاد کاربر نظارتشده جدید، میتوانید هر زمان که بخواهید از هر دستگاهی، تنظیمات را در <ph name="MANAGEMENT_URL" /> مدیریت کنید.</translation> <translation id="1984642098429648350">متصل کردن پنجره در راست</translation> <translation id="1987139229093034863">به کاربر دیگری بروید.</translation> +<translation id="1987317783729300807">حسابها</translation> <translation id="1989112275319619282">مشاهده محتوای موجود در فروشگاه ما</translation> <translation id="1992397118740194946">تنظیم نشده است</translation> <translation id="1994173015038366702">نشانی وب سایت</translation> @@ -750,7 +751,6 @@ <translation id="2151576029659734873">فهرست برگه نامعتبر وارد شده است.</translation> <translation id="2154484045852737596">ویرایش کارت</translation> <translation id="2154710561487035718">کپی نشانی وب</translation> -<translation id="2155931291251286316">همیشه پنجرههای بازشو از <ph name="HOST" /> مجاز باشد</translation> <translation id="215753907730220065">خروج از حالت تمام صفحه</translation> <translation id="2157875535253991059">این صفحه اکنون در حالت تمام صفحه است.</translation> <translation id="216169395504480358">افزودن Wi-Fi…</translation> @@ -1179,7 +1179,6 @@ <translation id="2799223571221894425">راهاندازی مجدد</translation> <translation id="2803375539583399270">پین را وارد کنید</translation> <translation id="2805646850212350655">سیستم فایل رمزگذاری Microsoft</translation> -<translation id="2805707493867224476">به همه سایتها برای نمایش پنجرههای بازشو اجازه داده شود</translation> <translation id="2805756323405976993">برنامهها</translation> <translation id="2807517655263062534">فایلهایی که بارگیری میکنید اینجا نشان داده میشود</translation> <translation id="2809586584051668049">و <ph name="NUMBER_ADDITIONAL_DISABLED" /> مورد دیگر</translation> @@ -1613,7 +1612,6 @@ <translation id="347919930506963698">دریافت موارد بهمراتب بیشتری از Chrome</translation> <translation id="3479552764303398839">اکنون نه</translation> <translation id="3480892288821151001">متصل کردن پنجره در چپ</translation> -<translation id="3481915276125965083">پنجرههای بازشوی زیر در این صفحه مسدود شدهاند:</translation> <translation id="3484273680291419129">درحال پاک کردن نرمافزار مضر…</translation> <translation id="3484869148456018791">دریافت گواهینامه جدید</translation> <translation id="3487007233252413104">تابع ناشناس</translation> @@ -1719,7 +1717,6 @@ <translation id="3637682276779847508">اگر نتوانید کلید باز کردن قفل پین صحیح را وارد کنید، سیمکارت برای همیشه غیرفعال میشود.</translation> <translation id="363903084947548957">روش ورودی بعدی</translation> <translation id="3640214691812501263">«<ph name="EXTENSION_NAME" />» برای «<ph name="USER_NAME" />» اضافه شود؟</translation> -<translation id="3643225892037417978">مدیریت افزونه برای کاربران مهمان در دسترس نیست. لطفاً برای مدیریت افزونهها، به سیستم وارد شوید.</translation> <translation id="3644896802912593514">عرض</translation> <translation id="3646789916214779970">بازنشانی به طرح زمینه پیشفرض</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> شناسایی شد</translation> @@ -2061,7 +2058,6 @@ <translation id="4172051516777682613">همیشه نشان داده شود</translation> <translation id="4175737294868205930">محل ذخیرهسازی دائمی</translation> <translation id="4176463684765177261">غیرفعال شد</translation> -<translation id="4180684688621252156">سرویس چاپ</translation> <translation id="4180788401304023883">مجوز CA "<ph name="CERTIFICATE_NAME" />" حذف شود؟</translation> <translation id="4181602000363099176">۲۰ برابر</translation> <translation id="4181841719683918333">زبانها</translation> @@ -3269,6 +3265,7 @@ <translation id="6075907793831890935">تبادل داده با دستگاهی به نام <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">اضافه کردن این عکس صفحهنمایش</translation> <translation id="6077131872140550515">برداشتن از شبکههای برگزیده</translation> +<translation id="6078323886959318429">افزودن میانبر</translation> <translation id="6078752646384677957">لطفاً میکروفون و میزان صدا را بررسی کنید.</translation> <translation id="6080515710685820702">از رایانه مشترکی استفاده میکنید؟ پنجره ناشناس را امتحان کنید.</translation> <translation id="6080689532560039067">بررسی زمان سیستم</translation> @@ -3477,7 +3474,6 @@ <translation id="6406303162637086258">شبیهسازی راهاندازی مجدد مرورگر</translation> <translation id="6406506848690869874">همگامسازی</translation> <translation id="6408118934673775994">خواندن و تغییر دادههایتان در <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" /> و <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">پنجرههای بازشو</translation> <translation id="6410257289063177456">فایلهای تصویری</translation> <translation id="6410328738210026208">تغییر کانال و پاکسازی</translation> <translation id="6410668567036790476">افزودن موتور جستجو</translation> @@ -3685,7 +3681,6 @@ <translation id="6708242697268981054">مبدأ:</translation> <translation id="6709357832553498500">اتصال با استفاده از <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">قبلی</translation> -<translation id="6716704051134091292">مبدل PDF</translation> <translation id="6718273304615422081">در حال فشرده سازی ...</translation> <translation id="671928215901716392">قفل صفحه</translation> <translation id="67211069045302358">تنظیمات این سایت بازنشانی شوند؟</translation> @@ -3810,7 +3805,6 @@ <translation id="6920989436227028121">باز کردن بهعنوان برگه عادی</translation> <translation id="6922128026973287222">با «صرفهجویی داده Google»، مصرف داده را بهینه کرده و سریعتر مرور کنید. برای اطلاعات بیشتر کلیک کنید.</translation> <translation id="6923132443355966645">پیمایش / کلیک</translation> -<translation id="6929555043669117778">ادامه مسدود کردن پنجرههای بازشو</translation> <translation id="6929835486583850209">خطا در نصب <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">مدت زمان</translation> <translation id="6934241953272494177">در حال اسکن کردن دستگاه رسانه شما... @@ -3920,7 +3914,6 @@ <translation id="7088434364990739311">بررسی برای بهروزرسانی شروع نشد (کد خطا <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - باز کردن و بستهبندی کردن فایلهای ZIP در برنامه Files.</translation> <translation id="7088674813905715446">این دستگاه توسط سرپرست سیستم در وضعیت بدون دسترسی قرار گرفته است. برای فعال کردن آن جهت ثبتنام، لطفاً از سرپرستتان بخواهید که دستگاه را در وضعیت در حالت تعلیق قرار دهد.</translation> -<translation id="7092106376816104">موارد استثنای پنجره بازشو</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">تبادل داده با دستگاههایی با نامهای: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">روشن/خاموش کردن «ذرهبین تمامصفحه»</translation> @@ -4142,7 +4135,6 @@ <translation id="744341768939279100">ایجاد نمایهای جدید</translation> <translation id="7444726222535375658">در ادامه، به Hangouts Meet بروید</translation> <translation id="7444983668544353857">غیر فعال کردن <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">پنجرههای بازشو مسدود هستند</translation> <translation id="7453008956351770337">با انتخاب این چاپگر، به افزونه زیر اجازه دسترسی به چاپگرتان را میدهید:</translation> <translation id="7453467225369441013">شما را از سیستم اکثر سایتها خارج میکند. از سیستم حساب Google خارج نمیشوید.</translation> <translation id="7456142309650173560">برنامهنویسان (dev)</translation> @@ -4587,6 +4579,7 @@ <translation id="8072988827236813198">پین کردن برگهها</translation> <translation id="8074127646604999664">اجازه به سایتهای اخیراً بستهشده برای تکمیل ارسال و دریافت</translation> <translation id="8075191520954018715">وضعیت حافظه</translation> +<translation id="8076492880354921740">برگهها</translation> <translation id="8076835018653442223">دسترسی به فایلهای محلی موجود در دستگاهتان، توسط سرپرست شما غیرفعال شده است</translation> <translation id="8077684120002777443">نام کاربری (بهعنوان مثال user@example.com)</translation> <translation id="8077816382010018681">عنوان اعلان QU Feature اینجا میآید</translation> @@ -4871,7 +4864,6 @@ <translation id="8569682776816196752">مقصدی یافت نشد</translation> <translation id="8569764466147087991">انتخاب فایلی برای باز کردن</translation> <translation id="8571213806525832805">۴ هفته گذشته</translation> -<translation id="8571613743082299268">هدایت کردن بهسمت سایت مسدود شده است</translation> <translation id="8574990355410201600">همیشه در <ph name="HOST" /> به صدا اجازه داده شود</translation> <translation id="8578639784464423491">نمیتواند بیش از ۹۹ حرف باشد</translation> <translation id="8579285237314169903">در حال همگامسازی <ph name="NUMBER_OF_FILES" /> مورد...</translation> @@ -5203,7 +5195,6 @@ <translation id="9065203028668620118">ویرایش</translation> <translation id="9066782832737749352">تبدیل نوشتار به گفتار</translation> <translation id="9070219033670098627">تغییر دادن شخص</translation> -<translation id="907148966137935206">به هیچ سایتی برای نمایش پنجرههای بازشو اجازه داده نشود (توصیه میشود)</translation> <translation id="9071637495340542136">درحال نصب <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> شما را بهصورت خودکار در سایتها و برنامههای واجد شرایط با گذرواژههایی که ذخیره کردهاید ثبت ورود میکند.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 21c9caa..9f86a3b4 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Aseta tämä sivu kirjanmerkiksi...</translation> <translation id="1047956942837015229">Poistetaan <ph name="COUNT" /> kohdetta…</translation> <translation id="1048286738600630630">Näytöt</translation> +<translation id="1049743911850919806">Incognito</translation> <translation id="1049795001945932310">&Kieliasetukset</translation> <translation id="1049926623896334335">Word-asiakirja</translation> <translation id="1054153489933238809">Avaa alkuperäinen &kuva uudessa välilehdessä</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Synkronointipalvelin on varattu, yritä myöhemmin uudelleen.</translation> <translation id="1784849162047402014">Laitteen tallennustila on vähissä.</translation> <translation id="1786636458339910689">Tiimin Drivet</translation> -<translation id="1789575671122666129">Ponnahdusikkunat</translation> <translation id="1792619191750875668">Laajennettu näyttö</translation> <translation id="1793119619663054394">Haluatko varmasti poistaa profiilin <ph name="PROFILE_NAME" /> ja kaikki siihen liittyvät Chrome-tiedot tältä tietokoneelta? Tätä ei voi perua.</translation> <translation id="1794791083288629568">Lähetä palautetta, niin autat meitä korjaamaan ongelman.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Kun olet luonut uuden valvotun käyttäjän, voit hallinnoida asetuksia milloin tahansa miltä tahansa laitteelta osoitteessa <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Kiinnitä ikkuna oikealle</translation> <translation id="1987139229093034863">Vaihda käyttäjää.</translation> +<translation id="1987317783729300807">Tilit</translation> <translation id="1989112275319619282">Selaa</translation> <translation id="1992397118740194946">Ei asetettu</translation> <translation id="1994173015038366702">Sivuston URL-osoite</translation> <translation id="1997484222658892567"><ph name="URL" /> haluaa tallentaa suuria tietomääriä pysyvästi paikalliselle tietokoneellesi.</translation> <translation id="1997616988432401742">Omat varmenteet</translation> <translation id="1999115740519098545">Käynnistyksessä</translation> +<translation id="2001796770603320721">Ylläpidä Drivessa</translation> <translation id="2006638907958895361">Avaa linkki: <ph name="APP" /></translation> <translation id="2007404777272201486">Ilmoita ongelmasta...</translation> <translation id="2016430552235416146">Perinteinen</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Annoit virheellisen välilehden numeron.</translation> <translation id="2154484045852737596">Muokkaa korttia</translation> <translation id="2154710561487035718">Kopioi URL-osoite</translation> -<translation id="2155931291251286316">Näytä aina ponnahdusikkunat sivustosta <ph name="HOST" /></translation> <translation id="215753907730220065">Poistu koko näytön tilasta</translation> <translation id="2157875535253991059">Tämä sivu on nyt koko näytöllä.</translation> <translation id="216169395504480358">Lisää Wi-Fi-yhteys...</translation> @@ -1184,7 +1185,6 @@ <translation id="2799223571221894425">Käynnistä uudelleen</translation> <translation id="2803375539583399270">Anna PIN-koodi.</translation> <translation id="2805646850212350655">Microsoftin tietojärjestelmän salaus</translation> -<translation id="2805707493867224476">Anna kaikkien sivustojen näyttää ponnahdusikkunoita</translation> <translation id="2805756323405976993">Sovellukset</translation> <translation id="2807517655263062534">Lataamasi tiedostot näytetään tässä.</translation> <translation id="2809586584051668049">ja <ph name="NUMBER_ADDITIONAL_DISABLED" /> muuta</translation> @@ -1618,7 +1618,6 @@ <translation id="347919930506963698">Enemmän irti Chromesta</translation> <translation id="3479552764303398839">Ei nyt</translation> <translation id="3480892288821151001">Kiinnitä ikkuna vasemmalle</translation> -<translation id="3481915276125965083">Seuraavat ponnahdusikkunat estettiin tällä sivulla:</translation> <translation id="3484273680291419129">Poistetaan haittaohjelmia…</translation> <translation id="3484869148456018791">Hanki uusi varmenne</translation> <translation id="3487007233252413104">tuntematon toiminto</translation> @@ -1724,7 +1723,6 @@ <translation id="3637682276779847508">SIM-korttisi poistetaan käytöstä pysyvästi, jos et anna oikeaa PUK-koodia.</translation> <translation id="363903084947548957">Seuraava syöttötapa</translation> <translation id="3640214691812501263">Lisätäänkö <ph name="EXTENSION_NAME" /> käyttäjälle <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Vierailijat eivät voi hallita laajennuksia. Kirjaudu sisään, niin voit hallita laajennuksia.</translation> <translation id="3644896802912593514">Leveys</translation> <translation id="3646789916214779970">Palauta oletusteema</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> havaittiin</translation> @@ -2063,7 +2061,6 @@ <translation id="4172051516777682613">Näytä aina</translation> <translation id="4175737294868205930">Pysyvä tallennustila</translation> <translation id="4176463684765177261">Pois käytöstä</translation> -<translation id="4180684688621252156">Tulostuspalvelu</translation> <translation id="4180788401304023883">Poistetaanko varmenteen myöntäjän varmenne <ph name="CERTIFICATE_NAME" />?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Kielet</translation> @@ -2089,6 +2086,7 @@ <translation id="42137655013211669">Palvelin kielsi tämän resurssin käytön.</translation> <translation id="4215350869199060536">Hups, nimessä on luvattomia merkkejä!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> varmuuskopioidaan</translation> +<translation id="4217571870635786043">Sanelu</translation> <translation id="4225397296022057997">Kaikilla sivustoilla</translation> <translation id="4235200303672858594">Koko ruutu</translation> <translation id="4235813040357936597">Lisää tili henkilölle <ph name="PROFILE_NAME" /></translation> @@ -2201,6 +2199,7 @@ <translation id="4425149324548788773">Oma Drive</translation> <translation id="4430019312045809116">Äänenvoimakkuus</translation> <translation id="4430369329743628066">Kirjanmerkki lisättiin</translation> +<translation id="4434045419905280838">Ponnahdusikk. ja uudelleenohj.</translation> <translation id="443454694385851356">Vanha (suojaamaton)</translation> <translation id="443464694732789311">Jatka</translation> <translation id="443475966875174318">Päivitä yhteensopimattomat sovellukset tai poista ne</translation> @@ -3271,6 +3270,7 @@ <translation id="6075907793831890935">Vaihtaa tietoja isäntää <ph name="HOSTNAME" /> käyttävän laitteen kanssa.</translation> <translation id="6076448957780543068">Sisällytä tämä kuvakaappaus</translation> <translation id="6077131872140550515">Poista ensisijaisista</translation> +<translation id="6078323886959318429">Lisää pikakuvake</translation> <translation id="6078752646384677957">Tarkista mikrofonin ja äänenvoimakkuuden tasot.</translation> <translation id="6080515710685820702">Onko tietokoneellasi muitakin käyttäjiä? Selaa verkkoa incognito-ikkunassa.</translation> <translation id="6080689532560039067">Tarkista järjestelmän aika</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Simuloi selaimen uudelleenkäynnistys</translation> <translation id="6406506848690869874">Synkronointi</translation> <translation id="6408118934673775994">lukea ja muuttaa tietojasi sivustoissa <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ja <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Ponnahdusikkunat</translation> <translation id="6410257289063177456">Kuvatiedostot </translation> <translation id="6410328738210026208">Vaihda kanavaa ja tee Powerwash</translation> <translation id="6410668567036790476">Lisää hakukone</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Alkuperä:</translation> <translation id="6709357832553498500">Yhdistä laajennuksella <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Edellinen</translation> -<translation id="6716704051134091292">PDF-muunnin</translation> <translation id="6718273304615422081">Pakataan…</translation> <translation id="671928215901716392">Ruudunlukitus</translation> <translation id="67211069045302358">Palautetaanko tämän sivuston asetukset?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Avaa tavallisella välilehdellä</translation> <translation id="6922128026973287222">Vähennä tiedonsiirtomäärää ja selaa nopeammin Google Data Saverin avulla. Saat lisätietoja klikkaamalla.</translation> <translation id="6923132443355966645">Vieritä / klikkaa</translation> -<translation id="6929555043669117778">Estä ponnahdusikkunat edelleen</translation> <translation id="6929835486583850209">Virhe asennuksessa: <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Kesto</translation> <translation id="6934241953272494177">Medialaitettasi tutkitaan… @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Lähetä tehokkuuden tarkkailutietoja</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Estä</translation> +<translation id="7055152154916055070">Uudelleenohjaus estetty:</translation> <translation id="7056526158851679338">Tark&ista laitteet</translation> <translation id="7059858479264779982">Aseta käynnistymään automaattisesti</translation> <translation id="7059893117020417984">Jos haluat selata verkkoa yksityisesti, avaa valikko klikkaamalla pistekuvaketta ja siirry incognito-ikkunaan.</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Päivitystarkistuksen käynnistäminen epäonnistui (virhekoodi <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – Avaa ja pakkaa ZIP-tiedostoja Tiedostot-sovelluksessa.</translation> <translation id="7088674813905715446">Järjestelmänvalvoja on asettanut tämän laitteen poistotilaan. Voit asettaa sen käyttöönottotilaan pyytämällä järjestelmänvalvojaa asettamaan laitteen odottavaan tilaan.</translation> -<translation id="7092106376816104">Ponnahdusikkunapoikkeukset</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Vaihtaa tietoja isäntää <ph name="HOSTNAMES" /> käyttävien laitteiden kanssa.</translation> <translation id="7096406577040705016">Ota koko näytön suurennus käyttöön ja poista se käytöstä.</translation> @@ -4143,7 +4140,6 @@ <translation id="744341768939279100">Luo uusi profiili</translation> <translation id="7444726222535375658">Jatka Hangouts Meetiin</translation> <translation id="7444983668544353857">Poista <ph name="NETWORKDEVICE" /> käytöstä </translation> -<translation id="7445682342344043969">Ponnahdusikkunat estetty</translation> <translation id="7453008956351770337">Valitsemalla tämän tulostimen annat seuraavalle laajennukselle tulostimesi käyttöoikeuden:</translation> <translation id="7453467225369441013">Tämä kirjaa sinut ulos useimmilta sivustoilta. Sinua ei kirjata ulos Google-tililtäsi.</translation> <translation id="7456142309650173560">kehitys</translation> @@ -4262,6 +4258,7 @@ <translation id="7617366389578322136">Yhdistetään laitteeseen <ph name="DEVICE_NAME" />.</translation> <translation id="7622114377921274169">Ladataan</translation> <translation id="7624337243375417909">caps lock pois päältä</translation> +<translation id="7625568159987162309">Näytä kaikki sivustoille tallennetut käyttöoikeudet ja data</translation> <translation id="7627790789328695202">Hups, <ph name="FILE_NAME" /> on jo olemassa. Anna kohteelle toinen nimi ja yritä uudelleen.</translation> <translation id="7628127343934101653">Avaa PDF-tiedostot PDF:ien oletuskatselusovelluksessa</translation> <translation id="7629827748548208700">Välilehti: <ph name="TAB_NAME" /></translation> @@ -4583,10 +4580,12 @@ <translation id="806812017500012252">Järjestä otsikon mukaan</translation> <translation id="8068253693380742035">Kirjaudu sisään koskettamalla</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Linux-tiedostot</translation> <translation id="8071432093239591881">Tulosta kuvana</translation> <translation id="8072988827236813198">Kiinnitä välilehdet</translation> <translation id="8074127646604999664">Salli äskettäin suljettujen sivustojen suorittaa tietojen lähettäminen ja vastaanottaminen loppuun</translation> <translation id="8075191520954018715">Muistin tila</translation> +<translation id="8076492880354921740">Välilehdet</translation> <translation id="8076835018653442223">Järjestelmänvalvojasi on estänyt sinua käyttämästä laitteellesi tallennettuja tiedostoja.</translation> <translation id="8077684120002777443">Käyttäjänimi (esim. käyttäjä@example.com)</translation> <translation id="8077816382010018681">Lukituksen pika-avaamista koskevan ilmoituksen otsikko</translation> @@ -4871,7 +4870,6 @@ <translation id="8569682776816196752">Kohteita ei löytynyt</translation> <translation id="8569764466147087991">Valitse avattava tiedosto</translation> <translation id="8571213806525832805">Viimeiset neljä viikkoa</translation> -<translation id="8571613743082299268">Uudelleenohjaus estetty:</translation> <translation id="8574990355410201600"><ph name="HOST" /> saa aina toistaa ääntä</translation> <translation id="8578639784464423491">Enimmäispituus 99 kirjainta</translation> <translation id="8579285237314169903">Synkronoidaan <ph name="NUMBER_OF_FILES" /> kohdetta…</translation> @@ -5203,7 +5201,6 @@ <translation id="9065203028668620118">Muokkaa</translation> <translation id="9066782832737749352">Tekstistä puheeksi</translation> <translation id="9070219033670098627">Vaihda henkilö</translation> -<translation id="907148966137935206">Älä salli sivustojen näyttää ponnahdusikkunoita (suositus)</translation> <translation id="9071637495340542136">Asennetaan sovellusta <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> kirjaa sinut automaattisesti sovelluksiin ja sivustoille, jotka ovat kelvollisia ja joiden salasanat olet tallentanut.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index 7c9458d..874d9c14 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Bookmark This Page...</translation> <translation id="1047956942837015229">Nagtatanggal ng <ph name="COUNT" /> (na) item...</translation> <translation id="1048286738600630630">Mga Display</translation> +<translation id="1049743911850919806">Incognito</translation> <translation id="1049795001945932310">&Mga setting ng wika</translation> <translation id="1049926623896334335">Dokumento ng Word</translation> <translation id="1054153489933238809">Buksan ang Or&ihinal na Larawan sa Bagong Tab</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Abala ang sync server, pakisubukang muli sa ibang pagkakataon.</translation> <translation id="1784849162047402014">Kaunti na lang ang espasyo sa disk ng device</translation> <translation id="1786636458339910689">Mga Drive ng Team</translation> -<translation id="1789575671122666129">Mga Popup</translation> <translation id="1792619191750875668">Pinalawak na display</translation> <translation id="1793119619663054394">Sigurado ka bang gusto mong alisin si "<ph name="PROFILE_NAME" />" at lahat ng nauugnay na data ng Chrome mula sa computer na ito? Hindi na ito maa-undo.</translation> <translation id="1794791083288629568">Magpadala ng feedback upang tulungan kaming ayusin ang isyung ito.</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">Pagkatapos mong gumawa ng bagong pinangangasiwaang user, maaari mong pamahalaan ang mga setting anumang oras mula sa anumang device, sa <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">I-dock ang window sa kanan</translation> <translation id="1987139229093034863">Lumipat sa ibang user.</translation> +<translation id="1987317783729300807">Mga Account</translation> <translation id="1989112275319619282">Mag-browse</translation> <translation id="1992397118740194946">Hindi nakatakda</translation> <translation id="1994173015038366702">URL ng site</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">Di-wastong index ng tab ang ipinasok.</translation> <translation id="2154484045852737596">I-edit ang card</translation> <translation id="2154710561487035718">Kopyahin ang URL</translation> -<translation id="2155931291251286316">Palaging hayaan ang mga pop-up mula sa <ph name="HOST" /></translation> <translation id="215753907730220065">Umalis sa Full Screen</translation> <translation id="2157875535253991059">Full screen na ngayon ang pahinang ito.</translation> <translation id="216169395504480358">Magdagdag ng Wi-Fi...</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">Ilunsad Muli</translation> <translation id="2803375539583399270">Ilagay ang PIN</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">Payagang magpakita ng mga pop-up ang lahat ng site</translation> <translation id="2805756323405976993">Mga App</translation> <translation id="2807517655263062534">Dito lalabas ang mga file na iyong ida-download</translation> <translation id="2809586584051668049">at <ph name="NUMBER_ADDITIONAL_DISABLED" /> pa</translation> @@ -1617,7 +1616,6 @@ <translation id="347919930506963698">Dagdagan pa ang nakukuha sa Chrome</translation> <translation id="3479552764303398839">Hindi ngayon</translation> <translation id="3480892288821151001">I-dock ang window sa kaliwa</translation> -<translation id="3481915276125965083">Hinarang ang mga sumusunod na pop-up sa pahinang ito:</translation> <translation id="3484273680291419129">Inaalis ang mapaminsalang software...</translation> <translation id="3484869148456018791">Kumuha ng bagong certificate</translation> <translation id="3487007233252413104">hindi kilalang function</translation> @@ -1723,7 +1721,6 @@ <translation id="3637682276779847508">Permanenteng madi-disable ang iyong SIM card kung hindi mo mailalagay ang tamang PIN Unlock Key.</translation> <translation id="363903084947548957">Susunod na paraan ng pag-input</translation> <translation id="3640214691812501263">Idagdag ang "<ph name="EXTENSION_NAME" />" para sa <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Hindi available ang pamamahala ng extension sa Mga bisitang user. Mag-sign in upang pamahalaan ang mga extension.</translation> <translation id="3644896802912593514">Lapad</translation> <translation id="3646789916214779970">Mag-reset sa default na tema</translation> <translation id="3648348069317717750">Natukoy ang <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2062,6 @@ <translation id="4172051516777682613">Palaging ipakita</translation> <translation id="4175737294868205930">Matagalang storage</translation> <translation id="4176463684765177261">Hindi Pinagana</translation> -<translation id="4180684688621252156">Serbisyo ng pag-print</translation> <translation id="4180788401304023883">Tanggalin ang CA certificate na "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Mga Wika</translation> @@ -3273,6 +3269,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="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> <translation id="6080689532560039067">Tingnan ang iyong oras sa system</translation> @@ -3481,7 +3478,6 @@ <translation id="6406303162637086258">I-simulate ang pag-restart ng browser</translation> <translation id="6406506848690869874">Pag-sync</translation> <translation id="6408118934673775994">Basahin at baguhin ang iyong data sa <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> at <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Mga Pop-up</translation> <translation id="6410257289063177456">Mga File ng Larawan</translation> <translation id="6410328738210026208">Baguhin ang channel at Powerwash</translation> <translation id="6410668567036790476">Magdagdag ng search engine</translation> @@ -3689,7 +3685,6 @@ <translation id="6708242697268981054">Pinanggalingan:</translation> <translation id="6709357832553498500">Kumonekta sa pamamagitan ng <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Nakaraan</translation> -<translation id="6716704051134091292">PDF Convertor</translation> <translation id="6718273304615422081">Nagzi-zip...</translation> <translation id="671928215901716392">I-lock ang screen</translation> <translation id="67211069045302358">I-reset ang mga setting para sa site na ito?</translation> @@ -3814,7 +3809,6 @@ <translation id="6920989436227028121">Buksan bilang regular na tab</translation> <translation id="6922128026973287222">Mag-save ng data at mag-browse nang mas mabilis gamit ang Data Saver ng Google. I-click upang matuto nang higit pa.</translation> <translation id="6923132443355966645">Mag-scroll / Mag-click</translation> -<translation id="6929555043669117778">Magpatuloy sa pagharang ng mga pop-up</translation> <translation id="6929835486583850209">Error sa pag-install ng <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Tagal</translation> <translation id="6934241953272494177">Sina-scan ang iyong media device... @@ -3924,7 +3918,6 @@ <translation id="7088434364990739311">Nabigong magsimula ang pagsusuri ng update (code ng error na <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Buksan at i-pack ang mga ZIP file sa app na Mga File.</translation> <translation id="7088674813905715446">Ang device na ito ay inilagay sa isang deprovisioned state ng administrator. Upang i-enable ito para sa pagpapatala, hayaang ilagay ng iyong administrator ang device sa nakabinbing estado.</translation> -<translation id="7092106376816104">Mga pagbubukod ng pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Makipagpalit ng data sa mga device na pinangalanang: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">I-toggle ang Fullscreen na Magnifier</translation> @@ -4144,7 +4137,6 @@ <translation id="744341768939279100">Gumawa ng bagong profile</translation> <translation id="7444726222535375658">Magpatuloy sa Hangouts Meet</translation> <translation id="7444983668544353857">Huwag paganahin <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Naka-block ang mga pop-up</translation> <translation id="7453008956351770337">Sa pamamagitan ng pagpili sa printer na ito, binibigyan mo ng pahintulot ang sumusunod na extension upang i-access ang iyong printer:</translation> <translation id="7453467225369441013">Isa-sign out ka sa karamihan ng mga site. Hindi ka masa-sign out sa iyong Google Account.</translation> <translation id="7456142309650173560">dev</translation> @@ -4589,6 +4581,7 @@ <translation id="8072988827236813198">I-pin ang Mga Tab</translation> <translation id="8074127646604999664">Payagan ang mga kamakailang isinarang site na tapusin ang pagpapadala at pagtanggap ng data</translation> <translation id="8075191520954018715">Katayuan ng memory</translation> +<translation id="8076492880354921740">Mga Tab</translation> <translation id="8076835018653442223">Na-disable ng iyong administrator ang access sa mga lokal na file sa iyong device</translation> <translation id="8077684120002777443">Username (hal. user@example.com)</translation> <translation id="8077816382010018681">Dito ilalagay ang pamagat ng notification ng Feature na QU</translation> @@ -4874,7 +4867,6 @@ <translation id="8569682776816196752">Walang nahanap na mga destinasyon</translation> <translation id="8569764466147087991">Piliin ang isang file para buksan</translation> <translation id="8571213806525832805">Huling 4 na linggo</translation> -<translation id="8571613743082299268">Na-block ang pag-redirect sa site</translation> <translation id="8574990355410201600">Palaging payagan ang tunog sa <ph name="HOST" /></translation> <translation id="8578639784464423491">Hindi maaaring lumagpas sa 99 na titik</translation> <translation id="8579285237314169903">Nagsi-sync ng <ph name="NUMBER_OF_FILES" /> (na) item...</translation> @@ -5207,7 +5199,6 @@ <translation id="9065203028668620118">I-edit</translation> <translation id="9066782832737749352">Text-to-Speech</translation> <translation id="9070219033670098627">Magpalit ng tao</translation> -<translation id="907148966137935206">Huwag hayaan ang anumang site na magpakita ng mga pop-up (inirerekomenda)</translation> <translation id="9071637495340542136">Ini-install ang <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347">Awtomatiko kang sina-sign in ng <ph name="PASSWORD_MANAGER_BRAND" /> sa mga karapat-dapat na site at app gamit ang mga password na na-save mo.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 9af9e91..33176b93 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Ajouter cette page aux favoris</translation> <translation id="1047956942837015229">Suppression de <ph name="COUNT" /> éléments en cours…</translation> <translation id="1048286738600630630">Affichage</translation> +<translation id="1049743911850919806">Navigation privée</translation> <translation id="1049795001945932310">&Paramètres linguistiques</translation> <translation id="1049926623896334335">Document Word</translation> <translation id="1054153489933238809">Ouvrir l'&image originale dans un nouvel onglet</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Le serveur de synchronisation est occupé. Veuillez réessayer ultérieurement.</translation> <translation id="1784849162047402014">Peu d'espace disque disponible sur l'appareil</translation> <translation id="1786636458339910689">Drive d'équipe</translation> -<translation id="1789575671122666129">Fenêtres pop-up</translation> <translation id="1792619191750875668">Affichage étendu</translation> <translation id="1793119619663054394">Voulez-vous vraiment supprimer le profil "<ph name="PROFILE_NAME" />" et toutes les données Chrome associées de cet ordinateur ? Il est impossible d'annuler cette action.</translation> <translation id="1794791083288629568">Envoyer des commentaires pour nous aider à résoudre ce problème.</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">Une fois l'utilisateur supervisé créé, vous pouvez gérer les paramètres à tout moment et depuis n'importe quel appareil à l'adresse <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Ancrer la fenêtre à droite</translation> <translation id="1987139229093034863">Changer d'utilisateur</translation> +<translation id="1987317783729300807">Comptes</translation> <translation id="1989112275319619282">Parcourir</translation> <translation id="1992397118740194946">Non défini</translation> <translation id="1994173015038366702">URL du site</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">L'index de l'onglet indiqué est incorrect.</translation> <translation id="2154484045852737596">Modifier la carte</translation> <translation id="2154710561487035718">Copier l'URL</translation> -<translation id="2155931291251286316">Toujours afficher les fenêtres pop-up de <ph name="HOST" /></translation> <translation id="215753907730220065">Quitter le mode plein écran</translation> <translation id="2157875535253991059">Cette page est maintenant en mode plein écran</translation> <translation id="216169395504480358">Ajouter un réseau Wi-Fi…</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">Relancer</translation> <translation id="2803375539583399270">Saisir le code</translation> <translation id="2805646850212350655">Système de fichiers de chiffrement Microsoft </translation> -<translation id="2805707493867224476">Autoriser tous les sites à afficher des fenêtres pop-up</translation> <translation id="2805756323405976993">Applications</translation> <translation id="2807517655263062534">Les fichiers téléchargés s'affichent ici</translation> <translation id="2809586584051668049">ainsi que <ph name="NUMBER_ADDITIONAL_DISABLED" /> autre(s) extension(s)</translation> @@ -1617,7 +1616,6 @@ <translation id="347919930506963698">Profitez de toutes les fonctionnalités de Chrome</translation> <translation id="3479552764303398839">Pas maintenant</translation> <translation id="3480892288821151001">Ancrer la fenêtre à gauche</translation> -<translation id="3481915276125965083">Les fenêtres pop-up suivantes ont été bloquées sur cette page :</translation> <translation id="3484273680291419129">Suppression du logiciel malveillant…</translation> <translation id="3484869148456018791">Obtenir un nouveau certificat</translation> <translation id="3487007233252413104">fonction anonyme</translation> @@ -1723,7 +1721,6 @@ <translation id="3637682276779847508">Votre carte SIM sera définitivement désactivée si vous ne saisissez pas la clé de déblocage du code.</translation> <translation id="363903084947548957">Prochain mode de saisie</translation> <translation id="3640214691812501263">Ajouter <ph name="EXTENSION_NAME" /> pour <ph name="USER_NAME" /> ?</translation> -<translation id="3643225892037417978">La gestion des extensions n'est pas disponible pour les utilisateurs invités. Veuillez vous connecter pour gérer les extensions.</translation> <translation id="3644896802912593514">Largeur</translation> <translation id="3646789916214779970">Rétablir le thème par défaut</translation> <translation id="3648348069317717750">L'appareil "<ph name="USB_DEVICE_NAME" />" a été détecté</translation> @@ -2065,7 +2062,6 @@ <translation id="4172051516777682613">Toujours afficher</translation> <translation id="4175737294868205930">Stockage persistant</translation> <translation id="4176463684765177261">Désactivé</translation> -<translation id="4180684688621252156">Service d'impression</translation> <translation id="4180788401304023883">Supprimer le certificat "<ph name="CERTIFICATE_NAME" />" émis par l'autorité de certification ?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Langues</translation> @@ -3274,6 +3270,7 @@ <translation id="6075907793831890935">Échanger des données avec l'appareil suivant : "<ph name="HOSTNAME" />"</translation> <translation id="6076448957780543068">Inclure cette capture d'écran</translation> <translation id="6077131872140550515">Supprimer des réseaux préférés</translation> +<translation id="6078323886959318429">Ajouter un raccourci</translation> <translation id="6078752646384677957">Veuillez vérifier le volume de votre micro et le volume audio.</translation> <translation id="6080515710685820702">Vous utilisez un ordinateur partagé ? Essayez d'ouvrir une fenêtre de navigation privée.</translation> <translation id="6080689532560039067">Vérifier l'heure du système</translation> @@ -3482,7 +3479,6 @@ <translation id="6406303162637086258">Simuler le redémarrage du navigateur</translation> <translation id="6406506848690869874">Synchronisation</translation> <translation id="6408118934673775994">Accéder aux données des sites <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> et <ph name="WEBSITE_3" />, et les modifier</translation> -<translation id="6409731863280057959">Fenêtres pop-up</translation> <translation id="6410257289063177456">Fichiers image</translation> <translation id="6410328738210026208">Changer de version et Powerwash</translation> <translation id="6410668567036790476">Ajouter un moteur de recherche</translation> @@ -3690,7 +3686,6 @@ <translation id="6708242697268981054">Source :</translation> <translation id="6709357832553498500">Se connecter avec "<ph name="EXTENSIONNAME" />"</translation> <translation id="6710213216561001401">Précédent</translation> -<translation id="6716704051134091292">Processus de conversion au format PDF</translation> <translation id="6718273304615422081">Compression en cours…</translation> <translation id="671928215901716392">Verrouillage d'écran</translation> <translation id="67211069045302358">Réinitialiser les paramètres de ce site ?</translation> @@ -3815,7 +3810,6 @@ <translation id="6920989436227028121">Ouvrir dans un onglet standard</translation> <translation id="6922128026973287222">Sauvegardez les données et bénéficiez d'une navigation plus rapide avec l'Économiseur de données Google. Cliquez ici pour en savoir plus.</translation> <translation id="6923132443355966645">Défilement/Clic</translation> -<translation id="6929555043669117778">Continuer à bloquer les fenêtres pop-up</translation> <translation id="6929835486583850209">Erreur lors de d'installation de l'application <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Durée</translation> <translation id="6934241953272494177">Analyse du périphérique multimédia… @@ -3925,7 +3919,6 @@ <translation id="7088434364990739311">Échec du lancement de la vérification des mises à jour (code d'erreur <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – Ouvrir et regrouper des fichiers au format ZIP dans l'application Fichiers.</translation> <translation id="7088674813905715446">L'administrateur a associé l'état "Non géré" à cet appareil. Pour activer son inscription, veuillez demander à l'administrateur d'activer l'état "En attente" pour cet appareil.</translation> -<translation id="7092106376816104">Exceptions liées aux fenêtres pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Échanger des données avec les appareils suivants : "<ph name="HOSTNAMES" />"</translation> <translation id="7096406577040705016">Activer ou désactiver la loupe plein écran</translation> @@ -4145,7 +4138,6 @@ <translation id="744341768939279100">Créer un profil</translation> <translation id="7444726222535375658">Accéder à Hangouts Meet</translation> <translation id="7444983668544353857">Désactiver <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pop-up bloqués</translation> <translation id="7453008956351770337">En sélectionnant cette imprimante, vous autorisez l'extension suivante à y accéder :</translation> <translation id="7453467225369441013">Vous déconnecte de la plupart des sites. Vous ne serez cependant pas déconnecté de votre compte Google.</translation> <translation id="7456142309650173560">développeur</translation> @@ -4590,6 +4582,7 @@ <translation id="8072988827236813198">Épingler les onglets</translation> <translation id="8074127646604999664">Autoriser les sites fermés récemment à terminer l'envoi et la réception de données</translation> <translation id="8075191520954018715">État de la mémoire</translation> +<translation id="8076492880354921740">Onglets</translation> <translation id="8076835018653442223">Votre administrateur a désactivé l'accès aux fichiers locaux sur votre appareil</translation> <translation id="8077684120002777443">Nom d'utilisateur (par exemple, utilisateur@example.com)</translation> <translation id="8077816382010018681">QU Feature notification title here</translation> @@ -4874,7 +4867,6 @@ <translation id="8569682776816196752">Aucun emplacement de destination trouvé.</translation> <translation id="8569764466147087991">Sélectionnez le fichier à ouvrir</translation> <translation id="8571213806525832805">Les 4 dernières semaines</translation> -<translation id="8571613743082299268">Redirection bloquée pour le site</translation> <translation id="8574990355410201600">Toujours activer le son sur <ph name="HOST" /></translation> <translation id="8578639784464423491">Le mot ne peut pas comporter plus de 99 lettres</translation> <translation id="8579285237314169903">Synchronisation de <ph name="NUMBER_OF_FILES" /> éléments en cours…</translation> @@ -5206,7 +5198,6 @@ <translation id="9065203028668620118">Modifier</translation> <translation id="9066782832737749352">Synthèse vocale</translation> <translation id="9070219033670098627">Changer de profil utilisateur</translation> -<translation id="907148966137935206">Interdire à tous les sites d'afficher des fenêtres pop-up (recommandé)</translation> <translation id="9071637495340542136">Installation de <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> vous connecte automatiquement aux sites et aux applications éligibles avec les mots de passe que vous avez enregistrés.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 0500fb0b..65f2333b 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">આ પૃષ્ઠને બુકમાર્ક કરો...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> આઇટમ્સ કાઢી નાખી રહ્યું છે...</translation> <translation id="1048286738600630630">પ્રદર્શન</translation> +<translation id="1049743911850919806">છૂપી</translation> <translation id="1049795001945932310">&ભાષા સેટિંગ્સ</translation> <translation id="1049926623896334335">Word દસ્તાવેજ</translation> <translation id="1054153489933238809">નવા ટેબમાં મૂળ &છબી ખોલો</translation> @@ -520,7 +521,6 @@ <translation id="1782924894173027610">સમન્વયન સર્વર વ્યસ્ત છે, કૃપા કરીને ફરીથી પ્રયત્ન કરો </translation> <translation id="1784849162047402014">ઉપકરણમાં ડિસ્ક સ્થાન ઓછું છે</translation> <translation id="1786636458339910689">ટીમ ડ્રાઇવ</translation> -<translation id="1789575671122666129">પૉપઅપ્સ</translation> <translation id="1792619191750875668">વિસ્તૃત પ્રદર્શન</translation> <translation id="1793119619663054394">શું તમે ખરેખર આ કમ્પ્યુટર પરથી "<ph name="PROFILE_NAME" />" અને તમામ સંકળાયેલા Chrome ડેટાને દૂર કરવા માગો છો. આ પૂર્વવત્ કરી શકાતું નથી.</translation> <translation id="1794791083288629568">આ સમસ્યાને ઠીક કરવામાં અમારી સહાય કરવા માટે પ્રતિસાદ મોકલો.</translation> @@ -642,6 +642,7 @@ <translation id="1983959805486816857">તમે નવા નિરીક્ષણ કરેલા વપરાશકર્તા બનાવી લો, પછી કોઈપણ ઉપકરણ પરથી તમે <ph name="MANAGEMENT_URL" /> પર, કોઈપણ સમયે સેટિંગ્સનું સંચાલન કરી શકો છો.</translation> <translation id="1984642098429648350">વિન્ડો જમણે ડૉક કરો</translation> <translation id="1987139229093034863">ભિન્ન વપરાશકર્તા પર સ્વિચ કરો.</translation> +<translation id="1987317783729300807">એકાઉન્ટ્સ</translation> <translation id="1989112275319619282">બ્રાઉઝ કરો</translation> <translation id="1992397118740194946">સેટ નથી</translation> <translation id="1994173015038366702">સાઈટ URL</translation> @@ -743,7 +744,6 @@ <translation id="2151576029659734873">અમાન્ય ટૅબ અનુક્રમણિકા દાખલ કરી.</translation> <translation id="2154484045852737596">કાર્ડ સંપાદિત કરો</translation> <translation id="2154710561487035718">URL ની કૉપિ કરો</translation> -<translation id="2155931291251286316"><ph name="HOST" /> ના હંમેશા પૉપ-અપ્સને હંમેશા મંજૂરી આપો</translation> <translation id="215753907730220065">પૂર્ણ સ્ક્રીનથી બહાર નીકળો</translation> <translation id="2157875535253991059">આ પૃષ્ઠ હવે પૂર્ણ સ્ક્રીન છે.</translation> <translation id="216169395504480358">Wi-Fi ઉમેરો...</translation> @@ -1167,7 +1167,6 @@ <translation id="2799223571221894425">ફરીથી લોંચ કરો</translation> <translation id="2803375539583399270">PIN દાખલ કરો</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">બધી સાઇટ્સને પૉપ-અપ્સ બતાવવાની મંજૂરી આપો</translation> <translation id="2805756323405976993">એપ્સ</translation> <translation id="2807517655263062534">તમે ડાઉનલોડ કરેલી ફાઇલો અહીં દેખાશે</translation> <translation id="2809586584051668049">અને <ph name="NUMBER_ADDITIONAL_DISABLED" /> વધુ</translation> @@ -1598,7 +1597,6 @@ <translation id="347919930506963698">Chromeમાંથી હજુ વધુ મેળવો</translation> <translation id="3479552764303398839">હમણાં નહીં</translation> <translation id="3480892288821151001">વિન્ડો ડાબે ડૉક કરો</translation> -<translation id="3481915276125965083">આ પૃષ્ઠ પર નીચેના પૉપ-અપ્સ અવરોધિત હતા:</translation> <translation id="3484273680291419129">નુકસાનકારક સૉફ્ટવેર દૂર કરી રહ્યાં છીએ...</translation> <translation id="3484869148456018791">નવું પ્રમાણપત્ર મેળવો</translation> <translation id="3487007233252413104">અનામી કાર્ય</translation> @@ -1703,7 +1701,6 @@ <translation id="3637682276779847508">જો તમે સાચી PIN અનલૉક કી દાખલ કરી ન શકો તો તમારું SIM કાર્ડ કાયમીરૂપે અક્ષમ કરવામાં આવશે.</translation> <translation id="363903084947548957">આગલી ઇનપુટ પદ્ધતિ</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> માટે "<ph name="EXTENSION_NAME" />" ઉમેરીએ?</translation> -<translation id="3643225892037417978">અતિથિ વપરાશકર્તાઓ માટે એક્સ્ટેંશન મેનેજમેન્ટ ઉપલબ્ધ નથી. એક્સ્ટેંશનને મેનેજ કરવા માટે કૃપા કરીને સાઇન ઇન કરો.</translation> <translation id="3644896802912593514">પહોળાઈ</translation> <translation id="3646789916214779970">ડિફૉલ્ટ થીમ પર ફરીથી સેટ કરો</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> મળ્યું</translation> @@ -2039,7 +2036,6 @@ <translation id="4172051516777682613">હંમેશા બતાવો</translation> <translation id="4175737294868205930">સતત સ્ટોરેજ</translation> <translation id="4176463684765177261">અક્ષમ કરેલું</translation> -<translation id="4180684688621252156">પ્રિન્ટિંગ સેવા</translation> <translation id="4180788401304023883">CA પ્રમાણપત્ર "<ph name="CERTIFICATE_NAME" />" ને કાઢીએ?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">ભાષાઓ</translation> @@ -3230,6 +3226,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> નામના ઉપકરણ સાથે ડેટા વિનિમય કરો</translation> <translation id="6076448957780543068">આ સ્ક્રીનશોટ શામેલ કરો</translation> <translation id="6077131872140550515">પસંદગીમાંથી દૂર કરો</translation> +<translation id="6078323886959318429">શોર્ટકટ ઉમેરો</translation> <translation id="6078752646384677957">કૃપા કરીને તમારા માઇક્રોફોન અને ઑડિઓના સ્તરોને તપાસો.</translation> <translation id="6080515710685820702">શેર કરેલા કમ્પ્યુટરનો ઉપયોગ કરી રહ્યા છો? છુપી વિંડો ખોલવાનો પ્રયાસ કરો.</translation> <translation id="6080689532560039067">તમારી સિસ્ટમનો સમય તપાસો</translation> @@ -3435,7 +3432,6 @@ <translation id="6406303162637086258">બ્રાઉઝર પુનઃપ્રારંભનું અનુકરણ કરો</translation> <translation id="6406506848690869874">સમન્વયન</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> અને <ph name="WEBSITE_3" /> પર તમારો ડેટા વાંચો અને બદલો</translation> -<translation id="6409731863280057959">પૉપ-અપ્સ</translation> <translation id="6410257289063177456">છબી ફાઇલો</translation> <translation id="6410328738210026208">ચેનલ બદલો અને Powerwash કરો</translation> <translation id="6410668567036790476">શોધ એંજિન ઉમેરો</translation> @@ -3640,7 +3636,6 @@ <translation id="6708242697268981054">મૂળ:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> નો ઉપયોગ કરીને કનેક્ટ કરો</translation> <translation id="6710213216561001401">પહેલાનું</translation> -<translation id="6716704051134091292">PDF કન્વર્ટર</translation> <translation id="6718273304615422081">ઝિપ કરી રહ્યાં છે...</translation> <translation id="671928215901716392">સ્ક્રીન લૉક કરો</translation> <translation id="67211069045302358">આ સાઇટ માટે સેટિંગ્સ રીસેટ કરીએ?</translation> @@ -3764,7 +3759,6 @@ <translation id="6920989436227028121">નિયમિત ટૅબ તરીકે ખોલો</translation> <translation id="6922128026973287222">Google ડેટા સેવરનો ઉપયોગ કરીને ડેટા બચાવો અને ઝડપથી બ્રાઉઝ કરો. વધુ જાણવા માટે ક્લિક કરો.</translation> <translation id="6923132443355966645">સ્ક્રૉલ કરો/ ક્લિક કરો</translation> -<translation id="6929555043669117778">પૉપ-અપ્સને અવરોધિત કરવાનું ચાલુ રાખો</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> ઇન્સ્ટૉલ કરવામાં ભૂલ...</translation> <translation id="6930242544192836755">અવધિ</translation> <translation id="6934241953272494177">તમારા મીડિયા ઉપકરણને સ્કૅન કરી રહ્યાં છીએ… @@ -3874,7 +3868,6 @@ <translation id="7088434364990739311">અપડેટ તપાસ પ્રારંભ કરવામાં નિષ્ફળ થયું (ભૂલ કોડ <ph name="ERROR" />).</translation> <translation id="7088561041432335295">ઝિપ આર્કાઇવર - Files ઍપમાં ઝિપ ફાઇલો ખોલો અને પૅક કરો.</translation> <translation id="7088674813905715446">આ ઉપકરણને વ્યવસ્થાપક દ્વારા દૂર કરવાની સ્થિતિમાં મૂકવામાં આવ્યું છે. નોંધણી માટે તેને સક્ષમ કરવા માટે, કૃપા કરીને તમારા વ્યવસ્થાપકને ઉપકરણને લંબિત સ્થિતિમાં મૂકવા દો.</translation> -<translation id="7092106376816104">પૉપ-અપ અપવાદો</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">આ નામના ઉપકરણ સાથે ડેટા વિનિમય કરો: <ph name="HOSTNAMES" /></translation> <translation id="7098447629416471489">અન્ય સાચવેલ શોધ એંજિન અહીં દેખાશે</translation> @@ -4091,7 +4084,6 @@ <translation id="744341768939279100">એક નવી પ્રોફાઇલ બનાવો</translation> <translation id="7444726222535375658">Hangouts Meet ચાલુ રાખો</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> અક્ષમ કરો</translation> -<translation id="7445682342344043969">પૉપ-અપ અવરોધિત છે</translation> <translation id="7453008956351770337">આ પ્રિન્ટરને પસંદ કરીને, તમે નીચેના એક્સ્ટેન્શનને તમારા પ્રિન્ટરને ઍક્સેસ કરવાની પરવાનગી આપી રહ્યાં છો:</translation> <translation id="7453467225369441013">તમને મોટાભાગની સાઇટોમાંથી સાઇન આઉટ કરે છે. તમે તમારા Google એકાઉન્ટમાંથી સાઇન આઉટ નહીં થાઓ.</translation> <translation id="7456142309650173560">dev</translation> @@ -4508,6 +4500,7 @@ <translation id="8072988827236813198">ટૅબ્સ પિન કરો</translation> <translation id="8074127646604999664">ડેટા મોકલવાનું અને પ્રાપ્ત કરવાનું સમાપ્ત કરવા માટે તાજેતરમાં બંધ કરેલ સાઇટ્સને મંજૂરી આપો</translation> <translation id="8075191520954018715">મેમરીની સ્થિતિ</translation> +<translation id="8076492880354921740">ટૅબ્સ</translation> <translation id="8076835018653442223">તમારા વ્યવસ્થાપકે તમારા ઉપકરણ પર સ્થાનિક ફાઇલોનો ઍક્સેસ બંધ કરેલ છે</translation> <translation id="8077684120002777443">વપરાશકર્તાનામ (ઉ.દા. user@example.com)</translation> <translation id="8077816382010018681">QU સુવિધા સૂચના શીર્ષક અહીં આવશે</translation> @@ -4790,7 +4783,6 @@ <translation id="8569682776816196752">કોઈ ગંતવ્યો મળ્યાં નથી</translation> <translation id="8569764466147087991">ખોલવા માટે એક ફાઇલ પસંદ કરો</translation> <translation id="8571213806525832805">છેલ્લા 4 અઠવાડિયા</translation> -<translation id="8571613743082299268">આ સાઇટ પર રીડાયરેક્ટ કરવાનું બ્લૉક કર્યું</translation> <translation id="8574990355410201600"><ph name="HOST" /> પર હંમેશાં અવાજને મંજૂરી આપો</translation> <translation id="8578639784464423491">99 અક્ષરો કરતાં વધુ હોઈ શકતો નથી</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> આઇટમ્સ સમન્વયિત કરી રહ્યાં છે...</translation> @@ -5116,7 +5108,6 @@ <translation id="9065203028668620118">સંપાદન</translation> <translation id="9066782832737749352">ટેક્સ્ટ-ટુ-સ્પીચ</translation> <translation id="9070219033670098627">વ્યક્તિ પર સ્વિચ કરો</translation> -<translation id="907148966137935206">કોઈ પણ સાઇટને પૉપ-અપ્સ બતાવવાની મંજૂરી આપવી નહીં (ભલામણ કરેલ) </translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> ઇન્સ્ટૉલ કરી રહ્યાં છીએ...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" />, તમને તમે સાચવેલા પાસવર્ડ્સ વડે યોગ્ય હોય તેવી સાઇટ્સ અને ઍપ્લિકેશનોમાં આપમેળે સાઇન ઇન કરે છે.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 70260f2..d1026f48 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">इस पेज को बुकमार्क करें...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> आइटम हटा रहा है...</translation> <translation id="1048286738600630630">प्रदर्शन</translation> +<translation id="1049743911850919806">गुप्त</translation> <translation id="1049795001945932310">&भाषा सेटिंग</translation> <translation id="1049926623896334335">Word दस्तावेज़</translation> <translation id="1054153489933238809">मूल &चित्र को नए टैब में खोलें</translation> @@ -45,6 +46,8 @@ <translation id="1064835277883315402">निजी नेटवर्क से जुड़ें</translation> <translation id="1064912851688322329">अपना Google खाता डिस्कनेक्ट करें</translation> <translation id="1067048845568873861">निर्मित</translation> +<translation id="1067291318998134776">Linux (बीटा)</translation> +<translation id="1067922213147265141">Google की दूसरी सेवाएंं</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">आपके कंप्यूटर पर किसी अन्य प्रोग्राम ने ऐसा एक्सटेंशन जोड़ा है जो Chrome के काम करने के तरीके को बदल सकता है. @@ -182,6 +185,7 @@ <translation id="1260240842868558614">दिखाएं:</translation> <translation id="126710816202626562">अनुवाद की भाषा:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">पता बार और खोज बॉक्स की खोजों और कुछ कुकी को आपके डिफ़ॉल्ट खोज इंजन पर भेजती है</translation> <translation id="1272079795634619415">रोकें</translation> <translation id="1272978324304772054">यह उपयोगकर्ता खाता उस डोमेन से संबंधित नहीं है जिसमें डिवाइस नामांकित है. यदि आप किसी भिन्न डोमेन में नामांकन करना चाहते हैं तो आपको पहले डिवाइस पुनर्प्राप्ति से गुज़रना होगा.</translation> <translation id="1274977772557788323">Adobe Flash Player जगह सेटिंग</translation> @@ -334,7 +338,7 @@ <translation id="1507048939308275033">अपने Chromebook पर मैसेज पढ़ें और उनका जवाब दें</translation> <translation id="1507170440449692343">इस पेज को आपका कैमरा एक्सेस करने से अवरोधित कर दिया गया है.</translation> <translation id="1507246803636407672">&छोड़ें</translation> -<translation id="1508491105858779599">डिवाइस को अनलॉक करने के लिए अपनी अंगुली फ़िंगरप्रिंट सेंसर पर रखें.</translation> +<translation id="1508491105858779599">डिवाइस को अनलॉक करने के लिए अपनी उंगली फ़िंगरप्रिंट सेंसर पर रखें.</translation> <translation id="1509281256533087115">USB के द्वारा किसी भी <ph name="DEVICE_NAME_AND_VENDOR" /> को ऐक्सेस करें</translation> <translation id="150962533380566081">अमान्य PUK.</translation> <translation id="1510030919967934016">इस पेज को आपकी स्थिति ट्रैक करने से अवरोधित कर दिया गया है.</translation> @@ -490,7 +494,7 @@ <translation id="1734824808160898225">हो सकता है कि <ph name="PRODUCT_NAME" /> खुद को अपडेट नहीं रख पाए</translation> <translation id="1736419249208073774">बेहतर जानें</translation> <translation id="1737968601308870607">बग की सूचना दें</translation> -<translation id="1743570585616704562">अंगुली की पहचान नहीं हो सकी</translation> +<translation id="1743570585616704562">उंगली की पहचान नहीं हो सकी</translation> <translation id="1743970419083351269">डाउनलोड बार बंद करें</translation> <translation id="1744108098763830590">पेजभूमि पेज</translation> <translation id="1745520510852184940">हमेशा ऐसा करें</translation> @@ -526,7 +530,6 @@ <translation id="1782924894173027610">समन्वयन सर्वर व्यस्त है, कृपया बाद में फिर से प्रयास करें.</translation> <translation id="1784849162047402014">डिवाइस पर डिस्क स्पेस कम है</translation> <translation id="1786636458339910689">टीम डिस्क</translation> -<translation id="1789575671122666129">पॉपअप</translation> <translation id="1792619191750875668">विस्तृत प्रदर्शन</translation> <translation id="1793119619663054394">क्या आप वाकई "<ph name="PROFILE_NAME" />" को और सभी संबद्ध Chrome डेटा को इस कंप्यूटर से निकालना चाहते हैं? इसे पूर्ववत नहीं किया जा सकता.</translation> <translation id="1794791083288629568">इस समस्या को ठीक करने में हमारी सहायता करने के लिए फ़ीडबैक भेजें.</translation> @@ -615,7 +618,7 @@ <translation id="192494336144674234">इसके साथ खोलें</translation> <translation id="1925021887439448749">कस्टम वेब पता डालें</translation> <translation id="1926339101652878330">ये सेटिंग एंटरप्राइज़ नीति द्वारा नियंत्रित होती हैं. कृपया अधिक जानकारी के लिए अपने नियंत्रक से संपर्क करें.</translation> -<translation id="1927632033341042996">अंगुली <ph name="NEW_FINGER_NUMBER" /></translation> +<translation id="1927632033341042996">उंगली <ph name="NEW_FINGER_NUMBER" /></translation> <translation id="1928202201223835302">पुराना पिन डालें</translation> <translation id="1929546189971853037">अपने प्रवेश किए हुए सभी डिवाइस पर अपना ब्राउज़िंग इतिहास पढ़ें</translation> <translation id="1931152874660185993">कोई घटक इंस्टॉल नहीं.</translation> @@ -649,12 +652,14 @@ <translation id="1983959805486816857">आपके द्वारा नया निगरानी में रखा गया उपयोगकर्ता बनाए जाने के बाद, आप <ph name="MANAGEMENT_URL" /> पर कभी भी किसी भी डिवाइस से सेटिंग प्रबंधित कर सकते हैं.</translation> <translation id="1984642098429648350">विंडो को दाईं ओर डॉक करें</translation> <translation id="1987139229093034863">किसी भिन्न उपयोगकर्ता पर स्विच करें.</translation> +<translation id="1987317783729300807">खाते</translation> <translation id="1989112275319619282">ब्राउज़ करें</translation> <translation id="1992397118740194946">सेट नहीं है</translation> <translation id="1994173015038366702">साइट URL</translation> <translation id="1997484222658892567"><ph name="URL" /> आपके स्थानीय कंप्यूटर पर हमेशा के लिए बड़ी मात्रा में डेटा संग्रहित करना चाहता है</translation> <translation id="1997616988432401742">आपके प्रमाणपत्र</translation> <translation id="1999115740519098545">प्रारंभ करने पर</translation> +<translation id="2001796770603320721">डिस्क में प्रबंधित करें</translation> <translation id="2006638907958895361"><ph name="APP" /> में लिंक खोलें</translation> <translation id="2007404777272201486">किसी समस्या की रिपोर्ट करें...</translation> <translation id="2016430552235416146">परंपरागत</translation> @@ -669,7 +674,7 @@ <translation id="2028997212275086731">RAR संग्रह</translation> <translation id="2034346955588403444">अन्य वाई-फ़ाई नेटवर्क जोड़ें</translation> <translation id="203574396658008164">लॉक स्क्रीन से नोट लेना सक्षम करें</translation> -<translation id="2039623879703305659">अंगुली बहुत जल्दी चलाई गई</translation> +<translation id="2039623879703305659">उंगली बहुत जल्दी चलाई गई</translation> <translation id="2040460856718599782">ओह! आपको प्रमाणित करने का प्रयास करते समय कुछ गलत हो गया. कृपया अपने प्रवेश प्रमाणिकता दोबारा जाँचें और पुन: प्रयास करें.</translation> <translation id="2043818754674261542">इस <ph name="DEVICE_TYPE" /> को अनलॉक करने के लिए फ़ोन का दूर होना ज़रूरी है</translation> <translation id="204497730941176055">Microsoft Certificate Template Name</translation> @@ -750,7 +755,6 @@ <translation id="2151576029659734873">अमान्य टैब अनुक्रमणिका दर्ज की गई.</translation> <translation id="2154484045852737596">कार्ड संपादित करें</translation> <translation id="2154710561487035718">URL की कॉपी बनाएं</translation> -<translation id="2155931291251286316"><ph name="HOST" /> से पॉप-अप को हमेशा अनुमति दें</translation> <translation id="215753907730220065">पूर्ण स्क्रीन से बाहर निकलें</translation> <translation id="2157875535253991059">यह पेज अब पूर्ण स्क्रीन है.</translation> <translation id="216169395504480358">वाई-फ़ाई जोड़ें...</translation> @@ -800,6 +804,7 @@ <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" फ़ोल्डर बनाने में असमर्थ. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">आज का डूडल देखने के लिए क्लिक करें</translation> <translation id="2231238007119540260">यदि आप किसी सर्वर प्रमाणपत्र को हटाते हैं, तो आप उस सर्वर के लिए सामान्य सुरक्षा जाँच पुन: स्थापित करते हैं और इसके लिए किसी मान्य प्रमाणपत्र का उपयोग करने की आवश्यकता है.</translation> +<translation id="2232379019872353004">कुछ सिस्टम जानकारी और पेज सामग्री Google को भेजती है</translation> <translation id="2232876851878324699">फ़ाइल में एक प्रमाणपत्र था, जिसे आयात नहीं किया था:</translation> <translation id="2233502537820838181">&अधिक जानकारी</translation> <translation id="2238379619048995541">आवृत्ति स्थिति डेटा</translation> @@ -885,6 +890,7 @@ <translation id="2359808026110333948">जारी रखें</translation> <translation id="236141728043665931">माइक्रोफ़ोन एक्सेस हमेशा अवरुद्ध करें</translation> <translation id="2365507699358342471">यह साइट क्लिपबोर्ड पर कॉपी किए गए लेख और इमेज देख सकती है</translation> +<translation id="2366463953911599217">गड़बड़ी: <ph name="APP_NAME" /> अनइंस्टॉल नहीं हो सका.</translation> <translation id="2367199180085172140">File Share जोड़ें</translation> <translation id="2367972762794486313">ऐप्स दिखाएं</translation> <translation id="2371076942591664043">&पू्र्ण होने पर खोलें</translation> @@ -936,6 +942,7 @@ <translation id="2462724976360937186">प्रमाणन प्राधिकरण कुंजी आईडी</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> जोड़ा गया</translation> <translation id="2464089476039395325">HTTP प्रॉक्सी</translation> +<translation id="2468205691404969808">आपकी पसंद याद रखने के लिए कुकी का इस्तेमाल करती है, भले ही आप उन पेज पर नहीं जाते</translation> <translation id="2468902267404883140">आपके फ़ोन से कनेक्ट नहीं हो पा रहा है. पक्का करें कि आप ऐसे संगत Android फ़ोन का उपयोग कर रहे हैं जो चालू है और पहुंच में है. <a>अधिक जानें</a></translation> <translation id="2470702053775288986">असमर्थित एक्सटेंशन अक्षम</translation> <translation id="2473195200299095979">इस पेज का अनुवाद करें</translation> @@ -1099,6 +1106,7 @@ <translation id="2686759344028411998">लोड किए गए किसी भी मॉड्यूल का पता लगाने में असमर्थ है.</translation> <translation id="2688196195245426394">डिवाइस को सर्वर के साथ पंजीकृत करते समय गड़बड़ी: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">भाषा के विकल्प दिखाएं</translation> +<translation id="2690824726518456119">Concierge सेवा शुरू की जा रही है.</translation> <translation id="2691385045260836588">मॉडल</translation> <translation id="2693176596243495071">ओह हो! कोई अज्ञात गड़बड़ी हुई. कृपया बाद में फिर से कोशिश करें या अगर समस्या बनी रहती है, तो अपने व्यवस्थापक से संपर्क करें.</translation> <translation id="2694026874607847549">1 कुकी</translation> @@ -1176,7 +1184,6 @@ <translation id="2799223571221894425">पुन: लॉन्च करें</translation> <translation id="2803375539583399270">पिन डालें</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">सभी साइट को पॉप-अप दिखाने की अनुमति दें</translation> <translation id="2805756323405976993">ऐप्स</translation> <translation id="2807517655263062534">आपकी डाउनलोड की गई फ़ाइलें यहां दिखाई देती हैं</translation> <translation id="2809586584051668049">तथा <ph name="NUMBER_ADDITIONAL_DISABLED" /> और</translation> @@ -1424,6 +1431,7 @@ <translation id="3190558889382726167">पासवर्ड सहेजा गया</translation> <translation id="3192947282887913208">ऑडियो फ़ाइलें</translation> <translation id="3194737229810486521"><ph name="URL" /> आपके डिवाइस पर हमेशा के लिए डेटा संग्रहीत करना चाहता है</translation> +<translation id="3197054279257119376">Termina घटक लोड हो रहा है.</translation> <translation id="3199127022143353223">सर्वर</translation> <translation id="3202131003361292969">पथ</translation> <translation id="3202173864863109533">इस टैब का ऑडियो म्यूट किया जा रहा है.</translation> @@ -1547,6 +1555,7 @@ <translation id="3405664148539009465">फ़ॉन्ट कस्टमाइज़ करें</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">बुकमार्क बार &दिखाएं</translation> +<translation id="3407837288045706722">निजता, सुरक्षा और डेटा इकट्ठा करने से जुड़ी ज़्यादा सेटिंग के लिए, <ph name="BEGIN_LINK" />सिंक करना और मनमुताबिक बनाना<ph name="END_LINK" /> देखें</translation> <translation id="3412265149091626468">चयन पर जाएं</translation> <translation id="3413122095806433232">CA जारीकर्ता: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">निकालने योग्य मीडिया को स्वरूपित करने से संपूर्ण डेटा मिट जाएगा. क्या आप जारी रखना चाहते हैं?</translation> @@ -1608,7 +1617,6 @@ <translation id="347919930506963698">Chrome से और भी लाभ लें</translation> <translation id="3479552764303398839">अभी नहीं</translation> <translation id="3480892288821151001">विंडो को बाईं ओर डॉक करें</translation> -<translation id="3481915276125965083">इस पेज पर निम्न पॉप-अप अवरोधित कर दिए गए थे:</translation> <translation id="3484273680291419129">नुकसान पहुंचाने वाला सॉफ़्टवेयर निकाला जा रहा है...</translation> <translation id="3484869148456018791">नया प्रमाणपत्र प्राप्त करें</translation> <translation id="3487007233252413104">अनाम फ़ंक्शन</translation> @@ -1624,6 +1632,7 @@ <translation id="3504135463003295723">समूह नाम:</translation> <translation id="3505030558724226696">डिवाइस एक्सेस निरस्त करें</translation> <translation id="3507421388498836150">"<ph name="EXTENSION_NAME" />" के लिए वर्तमान अनुमतियां</translation> +<translation id="3507547268929739059">Chromebook के लिए Linux ऐप्लिकेशन हटाएं</translation> <translation id="3507888235492474624">ब्लूटूथ डिवाइस के लिए दोबारा स्कैन करें</translation> <translation id="3508920295779105875">कोई अन्य फ़ोल्डर चुनें...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1713,7 +1722,6 @@ <translation id="3637682276779847508">अगर आप सही पिन अनलॉक कुंजी नहीं डाल पाते हैं तो आपका SIM कार्ड हमेशा के लिए अक्षम कर दिया जाएगा.</translation> <translation id="363903084947548957">अगली इनपुट विधि</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> के लिए "<ph name="EXTENSION_NAME" />" को जोड़ें?</translation> -<translation id="3643225892037417978">एक्सटेंशन प्रबंधन मेहमान उपयोगकर्ताओं के लिए उपलब्ध नहीं है. एक्सटेंशन प्रबंधित करने के लिए कृपया साइन इन करें.</translation> <translation id="3644896802912593514">चौड़ाई</translation> <translation id="3646789916214779970">सामान्य थीम पर रीसेट करें</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> का पता चला</translation> @@ -1817,6 +1825,7 @@ <translation id="379422718204375917">अपने खाते में प्रवेश करने के लिए Smart Lock का उपयोग करें</translation> <translation id="3796648294839530037">पसंदीदा नेटवर्क:</translation> <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” को खोजने के लिए <ph name="SEARCH_ENGINE" /> पर &खोजें</translation> +<translation id="3798133693323981089">खोजों और वेब पतों को अपने आप पूरा करें</translation> <translation id="3798449238516105146">वर्शन</translation> <translation id="3799201711591988491">{COUNT,plural, =0{&सभी खोलें}=1{&बुकमार्क खोलें}one{&सभी (#) खोलें}other{&सभी (#) खोलें}}</translation> <translation id="3800806661949714323">सभी दिखाएं (अनुशंंसित)</translation> @@ -1992,6 +2001,7 @@ <translation id="4065876735068446555">आप जिस नेटवर्क (<ph name="NETWORK_ID" />) का उपयोग कर रहे हैं उसके लिए आपको लॉगिन पृष्ठ पर जाने की आवश्यकता हो सकती है.</translation> <translation id="4068506536726151626">इस पेज पर आपके स्थान की जानकारी रखने वाली निम्न साइटों की कुछ चीजें मौजूद हैं:</translation> <translation id="4068776064906523561">सहेजे गए फ़िंगरप्रिंट</translation> +<translation id="407173827865827707">क्लिक करने पर</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: प्रवेश करने संबंधी गड़बड़ी</translation> <translation id="4074900173531346617">ईमेल हस्ताक्षरकर्ता प्रमाणपत्र</translation> <translation id="407520071244661467">स्केल</translation> @@ -2023,6 +2033,7 @@ <translation id="4109135793348361820">विंडो को <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) पर ले जाएं</translation> <translation id="4110559665646603267">अलमारी पर फ़ोकस करें</translation> <translation id="4110895898888439383">उच्च कंट्रास्ट मोड में वेब ब्राउज़ करें</translation> +<translation id="4112774766611964959">इससे <ph name="APP_NAME" /> अनइंस्टॉल हो जाएगा और आपके <ph name="DEVICE_TYPE" /> से Linux का सभी डेटा और ऐप्लिकेशन हट जाएंगे. क्या आप वाकई ऐसा करना चाहते हैं?</translation> <translation id="4114360727879906392">पिछली विंडो</translation> <translation id="4115002065223188701">नेटवर्क नहीं मिल रहा है</translation> <translation id="4115080753528843955">कुछ सामग्री सेवाएं सुरक्षित सामग्री का एक्सेस अधिकृत करने के लिए अनूठे पहचानकर्ताओं का उपयोग करती हैं</translation> @@ -2051,7 +2062,6 @@ <translation id="4172051516777682613">हमेशा दिखाएं</translation> <translation id="4175737294868205930">स्थायी जगह</translation> <translation id="4176463684765177261">अक्षम</translation> -<translation id="4180684688621252156">प्रिंटिंग सेवा</translation> <translation id="4180788401304023883">CA प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" हटाएं?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">भाषाएं</translation> @@ -2077,6 +2087,8 @@ <translation id="42137655013211669">इस स्रोत के लिए ऐक्सेस, सर्वर के द्वारा निषिद्ध की गई थी.</translation> <translation id="4215350869199060536">ओह, नाम में अवैध प्रतीक हैं!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> का बैक अप लिया जा रहा है</translation> +<translation id="4217571870635786043">लिखवाना</translation> +<translation id="4225397296022057997">सभी साइट पर</translation> <translation id="4235200303672858594">संपूर्ण स्क्रीन</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> के लिए खाता जोड़ें</translation> <translation id="4235965441080806197">प्रवेश नहीं करें</translation> @@ -2144,6 +2156,7 @@ <translation id="4345703751611431217">सॉफ़्टवेयर असंगतता: अधिक जानें</translation> <translation id="4348766275249686434">त्रुटियां एकत्रित करें</translation> <translation id="4350019051035968019">इस डिवाइस को उस डोमेन पर नामांकित नहीं किया जा सकता जिससे आपका खाता संबंधित है क्योंकि डिवाइस को भिन्न डोमेन द्वारा प्रबंधित करने के लिए चिह्नित किया गया है.</translation> +<translation id="4354266305752237763">खतरनाक साइटों से खुद की और अपने डिवाइस की सुरक्षा करें (सुरक्षित ब्राउज़िंग)</translation> <translation id="4356334633973342967">या अपना स्वयं का ड्राइवर निर्दिष्ट करें:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">निर्भर एक्सटेंशन के कारण इंस्टॉल किया गया.</translation> @@ -2152,6 +2165,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> किसी विंडो को साझा कर रहा है.</translation> <translation id="4364830672918311045">प्रदर्शन नोटिफ़िकेशन</translation> <translation id="4365673000813822030">ओह, समन्वयन ने कार्य करना बंद कर दिया.</translation> +<translation id="4370373819607756384">इस सेटिंग को <ph name="BEGIN_LINK" />भाषाएं<ph name="END_LINK" /> में नियंत्रित करें</translation> <translation id="4370975561335139969">आपके द्वारा डाले गए ईमेल और पासवर्ड का मिलान नहीं हो रहा</translation> <translation id="437184764829821926">उन्नत फ़ॉन्ट सेटिंग</translation> <translation id="4372884569765913867">1x1</translation> @@ -2186,6 +2200,7 @@ <translation id="4425149324548788773">मेरी डिस्क</translation> <translation id="4430019312045809116">मात्रा</translation> <translation id="4430369329743628066">बुकमार्क जोड़ा गया</translation> +<translation id="4434045419905280838">पॉप-अप और रीडायरेक्ट</translation> <translation id="443454694385851356">विरासती (असुरक्षित)</translation> <translation id="443464694732789311">जारी रखें</translation> <translation id="443475966875174318">उन ऐप्लिकेशन को अपडेट करें या हटाएं जो संगत नहीं हैं</translation> @@ -2206,6 +2221,7 @@ <translation id="4462159676511157176">कस्टम नाम सर्वर</translation> <translation id="4467100756425880649">Chrome वेब स्टोर गैलरी</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" /> विस्तृत करें</translation> +<translation id="447252321002412580">Chrome के फ़ीचर और परफ़ॉर्मेंस को बेहतर बनाने में सहायता करें</translation> <translation id="4474155171896946103">सभी टैब बुकमार्क करें...</translation> <translation id="4475552974751346499">डाउनलोड खोजें</translation> <translation id="4476590490540813026">एथलीट</translation> @@ -2228,6 +2244,7 @@ <translation id="4514542542275172126">नया निगरानी में रखा गया उपयोगकर्ता सेट करें</translation> <translation id="451515744433878153">निकालें</translation> <translation id="4518677423782794009">क्या Chrome क्रैश हो रहा है, असामान्य स्टार्टअप पृष्ठ, टूलबार या ऐसे अनपेक्षित विज्ञापन दिखा रहा है जिनसे आपको छुटकारा नहीं मिल रहा है या आपके ब्राउज़िंग अनुभव में अन्यथा बदलाव आ रहा है? तो हो सकता है कि आप Chrome सॉफ़्टवेयर सफ़ाई टूल को चलाकर समस्या को ठीक कर पाएं.</translation> +<translation id="4518928191942891293">Termina VM के अंदर कंटेनर शुरू हो रहा है.</translation> <translation id="4520385623207007473">इस्तेमाल की जा रही कुकी</translation> <translation id="452039078290142656"><ph name="VENDOR_NAME" /> के अज्ञात डिवाइस</translation> <translation id="4522570452068850558">विवरण</translation> @@ -2267,7 +2284,7 @@ <translation id="4572659312570518089">"<ph name="DEVICE_NAME" />" से कनेक्ट होते समय प्रमाणीकरण रद्द हो गया.</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" /> फ़ाइल</translation> <translation id="457386861538956877">अधिक...</translation> -<translation id="4576537685267142337">अंगुली उठाएं, फिर सेंसर को दोबारा स्पर्श करें</translation> +<translation id="4576537685267142337">उंगली उठाएं, फिर सेंसर को दोबारा स्पर्श करें</translation> <translation id="4576541033847873020">ब्लूटूथ डिवाइस युग्मित करें</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> को कास्ट करने में असमर्थ.</translation> <translation id="4580526846085481512">क्या आप वाकई $1 आइटम हटाना चाहते हैं?</translation> @@ -2276,6 +2293,7 @@ <translation id="4589268276914962177">नया टर्मिनल</translation> <translation id="4590324241397107707">डेटाबेस मेमोरी</translation> <translation id="4593021220803146968"><ph name="URL" /> पर &जाएं</translation> +<translation id="459505086032485258">Google सेवाओं की सेटिंग दिखाएं</translation> <translation id="4595560905247879544">ऐप्स और एक्सटेंशन केवल प्रबंधक (<ph name="CUSTODIAN_NAME" />) के द्वारा बदले जा सकते हैं.</translation> <translation id="4596295440756783523">इन सर्वर की पहचान करने वाले प्रमाणपत्र आपके रिकॉर्ड में हैं</translation> <translation id="4598556348158889687">जगह प्रबंधन</translation> @@ -2495,6 +2513,7 @@ <translation id="4917385247580444890">सशक्त</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> "<ph name="EXTENSION_NAME" />" एक्सटेंशन से संचार करना चाहता है</translation> <translation id="4918086044614829423">स्वीकार करें</translation> +<translation id="4920350943031252905">अपने Chromebook पर Linux के टूल, संपादक (एडिटर) और IDE चलाएं.</translation> <translation id="4920887663447894854">निम्न साइटों को इस पेज पर आपकी स्थिति ट्रैक करने से अवरोधित कर दिया गया है:</translation> <translation id="492299503953721473">Android ऐप्लिकेशन निकालें</translation> <translation id="4923279099980110923">हां, मुझे सहायता चाहिए</translation> @@ -2659,6 +2678,7 @@ <translation id="5186650237607254032">अपने फ़ोन का स्क्रीन लॉक अपडेट करें ताकि जब आप आस-पास हों तो वह बंद हो जाए. आप फ़ोन को अधिक तेज़ी से अनलॉक करेंगे और अपने <ph name="DEVICE_TYPE" /> पर एक बेहतर Smart Lock अनुभव का आनंद लेंगे.</translation> <translation id="5187295959347858724">आप अब <ph name="SHORT_PRODUCT_NAME" /> में प्रवेश हो गए हैं. आपके बुकमार्क, इतिहास, और अन्य सेटिंग आपके Google खाते में समन्वयित की जा रही हैं.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">ब्राउज़िंग और Chrome को बेहतर बनाने के लिए Google से बात करना</translation> <translation id="5204967432542742771">पासवर्ड डालें</translation> <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" हटाएं?</translation> <translation id="520621735928254154">प्रमाणपत्र आयात करने में गड़बड़ी</translation> @@ -2696,6 +2716,7 @@ <translation id="5254368820972107711">निकाली जाने वाली फ़ाइलें दिखाएं</translation> <translation id="52550593576409946">कियोस्क ऐप्लिकेशन लॉन्च नहीं किया जा सका.</translation> <translation id="5255315797444241226">आपके द्वारा दर्ज किया गया पासफ़्रेज़ गलत है.</translation> +<translation id="5256861893479663409">सभी साइट पर</translation> <translation id="5260508466980570042">क्षमा करें, आपका ईमेल या पासवर्ड सत्यापित नहीं हो सका. कृपया फिर से प्रयास करें.</translation> <translation id="5261683757250193089">वेब स्टोर में खोलें</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />फ़ाइलें हर कहीं से एक्सेस करें, यहां तक कि ऑफ़लाइन भी.<ph name="MARKUP_2" /> @@ -2920,6 +2941,8 @@ <translation id="555746285996217175">लॉक / पावर</translation> <translation id="5557991081552967863">प्रयोग में नहीं रहने के दौरान वाई-फ़ाई चालू रखें</translation> <translation id="5558129378926964177">ज़ूम &इन करें</translation> +<translation id="5558446705802335921">आप जिन साइटों पर जाते हैं और जो फ़ाइलें आप डाउनलोड करते हैं उनमें नुकसान पहुंचाने वाले बर्ताव या सामग्री, जैसे कि फ़िशिंग या मैलवेयर की जांच करती है</translation> +<translation id="5559719557406102971">Termina VM शुरू हो रहा है.</translation> <translation id="55601339223879446">स्क्रीन के भीतर अपने डेस्कटॉप की सीमाएं एडजस्ट करें</translation> <translation id="5562781907504170924">यह टैब किसी ब्लूटूथ डिवाइस से कनेक्ट है.</translation> <translation id="5565871407246142825">क्रेडिट कार्ड</translation> @@ -3124,6 +3147,7 @@ <translation id="5863445608433396414">डीबग करने वाली सुविधाएं सक्षम करें</translation> <translation id="5864471791310927901">DHCP लुकअप विफल</translation> <translation id="586567932979200359">आप <ph name="PRODUCT_NAME" /> को उसकी डिस्क चित्र से चला रहे हैं. इसे अपने कंप्यूटर पर स्थापित करके आप इसे डिस्क चित्र के बिना चला सकते हैं, और इससे यह अद्यतित भी रहेगा.</translation> +<translation id="5865733239029070421">Google को इस्तेमाल के आंकड़े और बंद होने की रिपोर्ट अपने आप भेजती है</translation> <translation id="5866557323934807206">भविष्य के विज़िट के लिए ये सेटिंग साफ़ करें</translation> <translation id="5866840822086176774">बहुत सशक्त</translation> <translation id="5867841422488265304">वेब पता खोजें या लिखें</translation> @@ -3174,6 +3198,7 @@ <translation id="5957613098218939406">अधिक विकल्प</translation> <translation id="5958529069007801266">निगरानी में रखा गया उपयोगकर्ता</translation> <translation id="5959471481388474538">नेटवर्क उपलब्ध नहीं</translation> +<translation id="595959584676692139">इस एक्सटेंशन का इस्तेमाल करने के लिए पेज को फिर से लोड करें</translation> <translation id="5963026469094486319">थीम प्राप्त करें</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> उच्चतम)</translation> <translation id="5965661248935608907">इससे यह भी नियंत्रित होता है कि जब आप होम बटन क्लिक करते हैं या खोज वाली पट्टी से खोजते हैं तब कौन सा पृष्ठ दिखाया जाए.</translation> @@ -3246,6 +3271,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> नामक डिवाइस से डेटा का आदान-प्रदान करें</translation> <translation id="6076448957780543068">यह स्क्रीनशॉट शामिल करें</translation> <translation id="6077131872140550515">पसंदीदा से निकालें</translation> +<translation id="6078323886959318429">शॉर्टकट जोड़ें</translation> <translation id="6078752646384677957">कृपया अपना माइक्रोफ़ोन और ऑडियो लेवल जाँचें.</translation> <translation id="6080515710685820702">शेयर किए गए कंप्यूटर का उपयोग कर रहे हैं? तो गुप्त विंडो खोलकर देखें.</translation> <translation id="6080689532560039067">अपने सिस्टम के समय की जाँच करें</translation> @@ -3347,6 +3373,7 @@ <translation id="6237816943013845465">आपको अपना स्क्रीन रिज़ॉल्यूशन समायोजित करने देती है</translation> <translation id="6238923052227198598">सबसे नया नोट लॉक स्क्रीन पर रखें</translation> <translation id="6239558157302047471">&फ़्रेम फिर लोड करें</translation> +<translation id="6240004034869232531">अनइंस्टॉल हो रहा है...</translation> <translation id="6241530762627360640">अपने सिस्टम के साथ युग्मित ब्लूटूथ डिवाइस से संबंधित जानकारी एक्सेस करें और आस-पास के ब्लूटूथ डिवाइस की खोज करें.</translation> <translation id="6243280677745499710">इस समय सेट है</translation> <translation id="6243774244933267674">सर्वर अनुपलब्ध है</translation> @@ -3440,7 +3467,7 @@ <translation id="6384275966486438344">अपनी खोज सेटिंग इसमें बदलें: <ph name="SEARCH_HOST" /></translation> <translation id="6385543213911723544">साइटें कुकी डेटा को सहेज और पढ़ सकती हैं</translation> <translation id="6388429472088318283">खोज की भाषाएं</translation> -<translation id="6388771388956873507">अपने डिवाइस पर फ़िंगरप्रिंट सेंसर ढूंढें और उस पर अपनी अंगुली से स्पर्श करें</translation> +<translation id="6388771388956873507">अपने डिवाइस पर फ़िंगरप्रिंट सेंसर ढूंढें और उस पर अपनी उंगली से स्पर्श करें</translation> <translation id="6390799748543157332">इस विंडो में आपके द्वारा देखे जाने वाले पेज ब्राउज़र इतिहास में दिखाई नहीं देंगे और वे आपके द्वारा खोली गईं सभी अतिथि विंडो बंद करने के बाद कंप्यूटर पर कुकी जैसे अन्य चिह्न नहीं छोड़ेंगे. हालांकि, आपके द्वारा डाउनलोड की जाने वाली सभी फ़ाइलें संरक्षित कर ली जाएंगी.</translation> <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />सिस्टम की जानकारी<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> भेजें</translation> <translation id="6397094776139756010">सिंक करने और मनमुताबिक बनाने के विकल्प</translation> @@ -3453,7 +3480,6 @@ <translation id="6406303162637086258">ब्राउज़र पुनर्प्रारंभ को सिम्युलेट करें</translation> <translation id="6406506848690869874">समन्वय</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> और <ph name="WEBSITE_3" /> पर मौजूद अपना डेटा पढ़ें और बदलें</translation> -<translation id="6409731863280057959">पॉप-अप</translation> <translation id="6410257289063177456">चित्र फ़ाइलें</translation> <translation id="6410328738210026208">चैनल बदलें और पावरवॉश करें</translation> <translation id="6410668567036790476">खोज इंजन जोड़ें</translation> @@ -3583,6 +3609,7 @@ <translation id="6596745167571172521">Caps Lock अक्षम करें</translation> <translation id="6596816719288285829">IP पता</translation> <translation id="6597017209724497268">नमूने</translation> +<translation id="6597332018579308636">एक्सेस दें</translation> <translation id="659934686219830168">आपके इस पेज को छोड़ने के बाद सिंक होना चालू होगा</translation> <translation id="6602353599068390226">विंडो को किसी दूसरे डिसप्ले पर ले जाएं</translation> <translation id="6602956230557165253">नेविगेट करने के लिए बाईं और दाईं तीर कुंजियों का उपयोग करें.</translation> @@ -3649,6 +3676,7 @@ <translation id="6690751852586194791">इस डिवाइस में जोड़ने के लिए कोई निगरानी में रखा गया उपयोगकर्ता चुनें.</translation> <translation id="6691331417640343772">Google डैशबोर्ड पर सिंक किया गया डेटा प्रबंधित करें</translation> <translation id="6691936601825168937">&अग्रेषित करें</translation> +<translation id="6697492270171225480">जब कोई पेज मिल नहीं पा रहा हो तो मिलते-जुलते पेज के सुझाव दिखाएं</translation> <translation id="6698810901424468597"><ph name="WEBSITE_1" /> और <ph name="WEBSITE_2" /> पर मौजूद अपना डेटा पढ़ें और बदलें</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> को कास्ट करें</translation> <translation id="6701535245008341853">प्रोफ़ाइल प्राप्त नहीं कर सका.</translation> @@ -3659,7 +3687,6 @@ <translation id="6708242697268981054">मूल:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> के उपयोग से कनेक्ट करें</translation> <translation id="6710213216561001401">पिछला</translation> -<translation id="6716704051134091292">PDF कनवर्टर</translation> <translation id="6718273304615422081">ज़िप किया जा रहा है...</translation> <translation id="671928215901716392">लॉक स्क्रीन</translation> <translation id="67211069045302358">इस साइट की सेटिंग रीसेट करें?</translation> @@ -3784,7 +3811,6 @@ <translation id="6920989436227028121">नियमित टैब के रूप में खोलें</translation> <translation id="6922128026973287222">Google डेटा बचाने के साधन का उपयोग करके डेटा बचाएं और तेज़ी से ब्राउज़ करें. और जानने के लिए क्लिक करें.</translation> <translation id="6923132443355966645">स्क्रोल / क्लिक करें</translation> -<translation id="6929555043669117778">पॉप-अप को अवरोधित करना जारी रखें</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> को इंस्टॉल करते समय गड़बड़ी...</translation> <translation id="6930242544192836755">अवधि</translation> <translation id="6934241953272494177">आपका मीडिया डिवाइस स्कैन किया जा रहा है... @@ -3868,6 +3894,7 @@ <translation id="7052237160939977163">निष्पादन ट्रेस डेटा भेजें</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">अवरोधित करें</translation> +<translation id="7055152154916055070">रीडायरेक्ट ब्लॉक किया गया:</translation> <translation id="7056526158851679338">&उपकरणों की जाँच करें</translation> <translation id="7059858479264779982">स्वत:-लॉन्च पर सेट करें</translation> <translation id="7059893117020417984">निजी रूप से ब्राउज़ करने के लिए, डॉट आइकन मेन्यू पर क्लिक करके गुप्त विंडो खोलें</translation> @@ -3894,9 +3921,9 @@ <translation id="7088434364990739311">अपडेट की जाँच प्रारंभ करने में विफल (गड़बड़ी कोड <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - फ़ाइलें ऐप में ZIP फ़ाइलें खोलें और पैक करें.</translation> <translation id="7088674813905715446">इस डिवाइस को व्यवस्थापक द्वारा प्रावधान रद्द की गई स्थिति में रखा गया है. नामांकन के लिए इसे सक्षम करने के लिए, कृपया अपने व्यवस्थापक द्वारा डिवाइस को लंबित स्थिति में रहने दें.</translation> -<translation id="7092106376816104">पॉप-अप अपवाद</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" /> नामक डिवाइस से डेटा का आदान-प्रदान करें</translation> +<translation id="7096406577040705016">पूरी स्क्रीन वाला आवर्धक टॉगल करें</translation> <translation id="7098447629416471489">सहेजे गए दूसरे खोज इंजन यहां दिखाई देंगे</translation> <translation id="7099337801055912064">बड़ा PPD लोड नहीं किया जा सका. अधिकतम आकार 250 केबी है.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> आइटम चयनित</translation> @@ -4113,7 +4140,6 @@ <translation id="744341768939279100">नई प्रोफ़ाइल बनाएं</translation> <translation id="7444726222535375658">Hangouts Meet में जारी रखें</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> अक्षम करें </translation> -<translation id="7445682342344043969">पॉप-अप ब्लॉक किए गए हैं</translation> <translation id="7453008956351770337">इस प्रिंटर को चुनकर, आप निम्नलिखित एक्सटेंशन को अपने प्रिंटर के लिए ऐक्सेस की अनुमति दे रहे हैं:</translation> <translation id="7453467225369441013">आपको ज़्यादातर साइटों से साइन आउट कर देता है. आप अपने Google खाते से साइन आउट नहीं होंगे.</translation> <translation id="7456142309650173560">डेव</translation> @@ -4232,6 +4258,7 @@ <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" से कनेक्ट हो रहा है</translation> <translation id="7622114377921274169">चार्ज हो रहा है.</translation> <translation id="7624337243375417909">caps lock बंद है</translation> +<translation id="7625568159987162309">सभी साइटों की मंज़ूरियां और साइटों पर संग्रहित डेटा देखें</translation> <translation id="7627790789328695202">ओह, <ph name="FILE_NAME" /> पहले से मौजूद है. उसका नाम बदलें और पुन: प्रयास करें.</translation> <translation id="7628127343934101653">डिफ़ॉल्ट PDF व्यूअर ऐप्लिकेशन में PDF फ़ाइलें खोलें.</translation> <translation id="7629827748548208700">टैब: <ph name="TAB_NAME" /></translation> @@ -4358,6 +4385,24 @@ <ph name="LINE_BREAK2" /> कुछ कम फ़ोटो चुनकर देखें.</translation> <translation id="782590969421016895">वर्तमान पृष्ठों का उपयोग करें</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />डीबग करने के फ़ीचर<ph name="END_H3" /> + <ph name="BR" /> + अपने डिवाइस पर कस्टम कोड इंस्टॉल करके उसका परीक्षण करने के लिए आप अपने Chrome OS डिवाइस पर डीबग करने के फ़ीचर चालू कर सकते हैं. इससे आप ये काम कर सकेंगे:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />रूट की पुष्टि हटाएं ताकि आप OS फ़ाइलों में बदलाव कर सकें + <ph name="LIST_ITEM" />सामान्य परीक्षण की का इस्तेमाल करके डिवाइस का SSH एक्सेस चालू करें ताकि आप डिवाइस को एक्सेस करने के लिए <ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" /> जैसे टूल का इस्तेमाल कर सकें + <ph name="LIST_ITEM" />USB से बूट करना चालू करें ताकि आप किसी USB डिस्क से एक OS इमेज इंस्टॉल कर सकें + <ph name="LIST_ITEM" />डेव और सिस्टम रूट लॉगिन पासवर्ड, इन दोनों को किसी कस्टम मान पर सेट करें ताकि आप डिवाइस में मैन्युअल तरीके से SSH कर सकें + <ph name="END_LIST" /> + <ph name="BR" /> + चालू हो जाने पर, डीबग करने के ज़्यादातर फ़ीचर किसी एंटरप्राइज़ के प्रबंधित डिवाइस पर डेटा को पावरवॉश करने या उसे वाइप कर देने के बाद भी चालू रहेंगे. डीबग करने के सभी फ़ीचर पूरी तरह से बंद करने के लिए, Chrome OS वापस पाने की प्रक्रिया (https://support.google.com/chromebook/answer/1080595) पूरी करें. + <ph name="BR" /> + <ph name="BR" /> + डीबग करने के फ़ीचर के बारे में ज़्यादा जानकारी के लिए, यहां देखें:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />नोट:<ph name="END_BOLD" /> इस प्रक्रिया के दौरान सिस्टम फिर चालू होगा.</translation> <translation id="7829298379596169484">ऑडियो इनपुट ऐक्सेस हो रहा है</translation> <translation id="7831491651892296503">नेटवर्क कॉन्फ़िगर करने में गड़बड़ी</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4422,6 +4467,7 @@ <translation id="7912080627461681647">सर्वर पर आपका पासवर्ड बदल दिया गया है. कृपया साइन आउट करें उसके बाद फिर से प्रवेश करें.</translation> <translation id="7912883689016444961">मोबाइल नेटवर्क कॉन्फ़िगर करें</translation> <translation id="7915471803647590281">कृपया फ़ीडबैक भेजने से पहले हमें बताएं कि क्या हो रहा है.</translation> +<translation id="7916556741383518510">क्लिक करने पर</translation> <translation id="792514962475806987">डॉक किया गया ज़ूम स्तर:</translation> <translation id="7925247922861151263">AAA जाँच विफल</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" /> की प्रतीक्षा कर रहा है...</translation> @@ -4462,6 +4508,7 @@ <translation id="7978412674231730200">निजी कुंजी</translation> <translation id="7979036127916589816">समन्वयन गड़बड़ी</translation> <translation id="7980084013673500153">एसेट आईडी: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">ज़्यादा तेज़ी से ब्राउज़ करने और खोजने के लिए पेज पहले से लोड करें</translation> <translation id="7982083145464587921">इस गड़बड़ी को ठीक करने के लिए कृपया अपना डिवाइस पुन: प्रारंभ करें.</translation> <translation id="7982283708762922719">ऊंचाई</translation> <translation id="7982789257301363584">नेटवर्क</translation> @@ -4534,10 +4581,12 @@ <translation id="806812017500012252">शीर्षक द्वारा फिर से क्रमित करें</translation> <translation id="8068253693380742035">प्रवेश करने के लिए स्पर्श करें</translation> <translation id="8069615408251337349">Google क्लाउड प्रिंट</translation> +<translation id="806972267388474605">Linux की फ़ाइलें</translation> <translation id="8071432093239591881">चित्र के रूप में प्रिंट करें</translation> <translation id="8072988827236813198">टैब छोटा करें</translation> <translation id="8074127646604999664">हाल ही में बंद की गई साइटों को डेटा भेजने और प्राप्त करने की प्रकिया पूरी करने दें</translation> <translation id="8075191520954018715">मेमोरी की स्थिति</translation> +<translation id="8076492880354921740">टैब</translation> <translation id="8076835018653442223">आपके एडमिन ने आपके डिवाइस की स्थानीय फ़ाइलों की एक्सेस बंद कर दी है</translation> <translation id="8077684120002777443">उपयोगकर्ता नाम (उदा. user@example.com)</translation> <translation id="8077816382010018681">QU सुविधा नोटिफ़िकेशन का शीर्षक यहां आएगा</translation> @@ -4822,7 +4871,6 @@ <translation id="8569682776816196752">कोई गंतव्य नहीं मिला</translation> <translation id="8569764466147087991">खोलने के लिए फ़ाइल को चुनें</translation> <translation id="8571213806525832805">पिछले 4 सप्ताह</translation> -<translation id="8571613743082299268">इस साइट पर रीडायरेक्ट ब्लॉक किया हुआ है</translation> <translation id="8574990355410201600"><ph name="HOST" /> पर आवाज़ हमेशा चालू रखें</translation> <translation id="8578639784464423491">99 से ज़्यादा अक्षर नहीं हो सकते</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> आइटम समन्वयित कर रहा है...</translation> @@ -4859,7 +4907,7 @@ <translation id="8639047128869322042">नुकसान पहुंचाने वाला सॉफ़्टवेयर ढूंढा जा रहा है...</translation> <translation id="8639963783467694461">ऑटोमैटिक भरना की सेटिंग...</translation> <translation id="8642171459927087831">पहुंच टोकन</translation> -<translation id="8642267168767642381">अंगुली बहुत धीरे चलाई गई.</translation> +<translation id="8642267168767642381">उंगली बहुत धीरे चलाई गई.</translation> <translation id="8642947597466641025">लेख को बड़ा करें</translation> <translation id="8647834505253004544">मान्य वेब पता नहीं है</translation> <translation id="8648252583955599667"><ph name="GET_HELP_LINK" /> या <ph name="RE_SCAN_LINK" /></translation> @@ -4867,6 +4915,7 @@ <translation id="8651585100578802546">इस पेज को बलपूर्वक फिर से लोड करें</translation> <translation id="8652400352452647993">पैक एक्सटेंशन गड़बड़ी</translation> <translation id="8652487083013326477">पेज श्रेणी रेडियो बटन</translation> +<translation id="8653292045957015650">डॉक किया गया आवर्धक टॉगल करें</translation> <translation id="8654151524613148204">फ़ाइल आपके कंप्यूटर द्वारा संभाले जाने के लिए बहुत बड़ी है. क्षमा करें.</translation> <translation id="8655295600908251630">चैनल</translation> <translation id="8655319619291175901">ओह... कुछ गलत हो गया.</translation> @@ -4958,6 +5007,7 @@ <translation id="8757803915342932642">Google क्लाउड डिवाइस पर मौजूद डिवाइस</translation> <translation id="8759408218731716181">एकाधिक प्रवेश सेट नहीं किया जा सकता</translation> <translation id="8759753423332885148">अधिक जानें.</translation> +<translation id="8762207669047572135">एक्सेस दें</translation> <translation id="8767621466733104912">Chrome को सभी उपयोगकर्ताओं के लिए अपने आप अपडेट करें</translation> <translation id="8770406935328356739">एक्सटेंशन मूल निर्देशिका</translation> <translation id="8770507190024617908">लोगों को प्रबंधित करें</translation> @@ -5087,7 +5137,9 @@ <translation id="8976520271376534479">इस पेज पर फ़्लैश ब्लॉक कर दिया गया था.</translation> <translation id="8977811652087512276">गलत पासवर्ड या खराब फ़ाइल</translation> <translation id="8978154919215542464">चालू - सब कुछ सिंक करें</translation> +<translation id="897939795688207351"><ph name="ORIGIN" /> पर</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - क्रैश हो गया है</translation> +<translation id="8983677657449185470">सुरक्षित ब्राउज़िंग को बेहतर बनाने में सहायता करें</translation> <translation id="8986362086234534611">भूल जाएं</translation> <translation id="8986494364107987395">उपयोग संबंधी आंकड़े और क्रैश रिपोर्ट अपने आप Google को भेजने की अनुमति दें</translation> <translation id="8987927404178983737">माह</translation> @@ -5096,6 +5148,7 @@ <translation id="8995603266996330174"><ph name="DOMAIN" /> द्वारा प्रबंधित</translation> <translation id="8996526648899750015">खाता जोड़ें...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">डिस्क इमेज बनाई जा रही है.</translation> <translation id="9003647077635673607">सभी वेबसाइटों पर अनुमति दें</translation> <translation id="9003677638446136377">पुन: जाँचें</translation> <translation id="9003704114456258138">आवृत्ति</translation> @@ -5131,6 +5184,7 @@ <translation id="9042893549633094279">निजता और सुरक्षा</translation> <translation id="904451693890288097">कृपया "<ph name="DEVICE_NAME" />" के लिए पासकुंजी दर्ज करें:</translation> <translation id="9044646465488564462">नेटवर्क से कनेक्ट करने में विफल रहा: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">आप जिस पेज पर जाने की कोशिश कर रहे हैं उसका वेब पता Google को भेजती है</translation> <translation id="9046895021617826162">कनेक्ट करना विफल</translation> <translation id="9050666287014529139">पासफ़्रेज़</translation> <translation id="9052208328806230490">आपने अपने प्रिंटर को खाता <ph name="EMAIL" /> का उपयोग करके <ph name="CLOUD_PRINT_NAME" /> के साथ पंजीकृत किया है </translation> @@ -5148,7 +5202,6 @@ <translation id="9065203028668620118">संपादित करें</translation> <translation id="9066782832737749352">लेख से बोली</translation> <translation id="9070219033670098627">व्यक्ति स्विच करें</translation> -<translation id="907148966137935206">किसी भी साइट को पॉप-अप दिखाने की अनुमति न दें (सुझाये गये) </translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> इंस्टॉल किया जा रहा है...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> आपके द्वारा सहेजे गए पासवर्ड से आपको योग्य साइट और ऐप्स में अपने आप प्रवेश करा देता है.</translation> <translation id="9073281213608662541">PAP</translation> @@ -5210,7 +5263,7 @@ <translation id="916501514001398070">सिस्टम डेटा भेजें. यह डिवाइस फ़िलहाल Google को निदान और डिवाइस और ऐप्लिकेशन के इस्तेमाल का डेटा अपने आप भेजता है. यह सेटिंग डिवाइस के मालिक ने लागू की है. अगर आपने अतिरिक्त वेब और ऐप्लिकेशन गतिविधि चालू की है, तो यह जानकारी आपके खाते से संग्रहित की जाएगी, ताकि आप इसे मेरी गतिविधि में प्रबंधित कर सकें. <ph name="BEGIN_LINK1" />अधिक जानें<ph name="END_LINK1" /></translation> <translation id="9169496697824289689">कीबोर्ड शॉर्टकट देखें</translation> <translation id="9169931577761441333">होम स्क्रीन पर <ph name="APP_NAME" /> जोड़ें</translation> -<translation id="9170397650136757332">अब अपने फ़िंगरप्रिंट के सभी अलग-अलग हिस्सों को कैप्चर करने के लिए अपनी अंगुली को धीरे से हिलाएं</translation> +<translation id="9170397650136757332">अब अपने फ़िंगरप्रिंट के सभी अलग-अलग हिस्सों को कैप्चर करने के लिए अपनी उंगली को धीरे से हिलाएं</translation> <translation id="9170848237812810038">&पूर्ववत् करें</translation> <translation id="9170884462774788842">आपके कंप्यूटर पर किसी अन्य प्रोग्राम ने एक्सटेंशन जोड़ा है, जो Chrome के काम करने के तरीके को बदल सकता है.</translation> <translation id="9173995187295789444">ब्लूटूथ डिवाइस के लिए स्कैन किया जा रहा है...</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 0b29185..48f787b 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Označi ovu stranicu...</translation> <translation id="1047956942837015229">Brisanje stavki (<ph name="COUNT" />)...</translation> <translation id="1048286738600630630">Zasloni</translation> +<translation id="1049743911850919806">Anonimno</translation> <translation id="1049795001945932310">&Postavke jezika</translation> <translation id="1049926623896334335">Wordov dokument</translation> <translation id="1054153489933238809">Otvori izvornu sl&iku na novoj kartici</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Poslužitelj sinkronizacije je zauzet, pokušajte ponovo kasnije.</translation> <translation id="1784849162047402014">Na uređaju nema dovoljno prostora</translation> <translation id="1786636458339910689">Diskovi za tim</translation> -<translation id="1789575671122666129">Skočni prozori</translation> <translation id="1792619191750875668">Prošireni zaslon</translation> <translation id="1793119619663054394">Jeste li sigurni da želite ukloniti "<ph name="PROFILE_NAME" />" i sve povezane Chrome podatke s ovog računala? To nije moguće poništiti.</translation> <translation id="1794791083288629568">Pošaljite povratne informacije da biste nam pomogli riješiti taj problem.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Nakon što izradite novog nadziranog korisnika, možete upravljati postavkama u bilo kojem trenutku s bilo kojeg uređaja na adresi <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Usidri prozor udesno</translation> <translation id="1987139229093034863">Prebacite se na drugog korisnika.</translation> +<translation id="1987317783729300807">Računi</translation> <translation id="1989112275319619282">Pregledaj</translation> <translation id="1992397118740194946">Nije postavljeno</translation> <translation id="1994173015038366702">URL web-lokacije</translation> <translation id="1997484222658892567"><ph name="URL" /> želi trajno pohraniti veliku količinu podataka na vaše lokalno računalo</translation> <translation id="1997616988432401742">Vaši certifikati</translation> <translation id="1999115740519098545">Prilikom pokretanja</translation> +<translation id="2001796770603320721">Upravljaj na Disku</translation> <translation id="2006638907958895361">Otvori vezu u aplikaciji <ph name="APP" /></translation> <translation id="2007404777272201486">Prijavljivanje problema...</translation> <translation id="2016430552235416146">Tradicionalno</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Unesen je nevažeći indeks kartice.</translation> <translation id="2154484045852737596">Uredite karticu</translation> <translation id="2154710561487035718">Kopiraj URL</translation> -<translation id="2155931291251286316">Uvijek dopusti skočne prozore s web-lokacije <ph name="HOST" /></translation> <translation id="215753907730220065">Napusti potpuni ekran</translation> <translation id="2157875535253991059">Ova je stranica sada na cijelom zaslonu.</translation> <translation id="216169395504480358">Dodaj Wi-Fi...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Pokreni ponovo</translation> <translation id="2803375539583399270">Unesite PIN</translation> <translation id="2805646850212350655">Microsoftov sustav šifriranja datoteke</translation> -<translation id="2805707493867224476">Dopusti svim web-lokacijama prikazivanje skočnih prozora</translation> <translation id="2805756323405976993">Aplikacije</translation> <translation id="2807517655263062534">Ovdje se prikazuju datoteke koje ste preuzeli</translation> <translation id="2809586584051668049">i još <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Ostvarite još više toga na Chromeu</translation> <translation id="3479552764303398839">Ne sada</translation> <translation id="3480892288821151001">Usidri prozor ulijevo</translation> -<translation id="3481915276125965083">Na ovoj su stranici blokirani sljedeći skočni prozori:</translation> <translation id="3484273680291419129">Uklanjanje štetnog softvera...</translation> <translation id="3484869148456018791">Preuzmi novi certifikat</translation> <translation id="3487007233252413104">anonimna funkcija</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">SIM kartica trajno će se onemogućiti ako ne unesete točan ključ za otključavanje PIN-a</translation> <translation id="363903084947548957">Sljedeći način unosa</translation> <translation id="3640214691812501263">Želite li dodati proširenje "<ph name="EXTENSION_NAME" />" za korisnika <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Upravljanje proširenjima nije dostupno gostujućim korisnicima. Za upravljanje proširenjima morate se prijaviti.</translation> <translation id="3644896802912593514">Širina</translation> <translation id="3646789916214779970">Vrati na zadanu temu</translation> <translation id="3648348069317717750">Otkriven je uređaj <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Uvijek prikaži</translation> <translation id="4175737294868205930">Stalna pohrana</translation> <translation id="4176463684765177261">Onemogućeno</translation> -<translation id="4180684688621252156">Usluga ispisa</translation> <translation id="4180788401304023883">Izbrisati certifikat tijela za izdavanje certifikata "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Jezici</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Pristup tom resursu zabranio je poslužitelj.</translation> <translation id="4215350869199060536">Ups, nedopušteni simboli u imenu!</translation> <translation id="4215448920900139318">Sigurnosno kopiranje datoteka (ukupno <ph name="FILE_COUNT" />)</translation> +<translation id="4217571870635786043">Diktat</translation> <translation id="4225397296022057997">Na svim web-lokacijama</translation> <translation id="4235200303672858594">Cijeli zaslon</translation> <translation id="4235813040357936597">Dodaj račun za profil <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Moj disk</translation> <translation id="4430019312045809116">Glasnoća</translation> <translation id="4430369329743628066">Oznaka je dodana</translation> +<translation id="4434045419905280838">Skočni prozori i preusmjeravanja</translation> <translation id="443454694385851356">Naslijeđeno (nije sigurno)</translation> <translation id="443464694732789311">Nastavi</translation> <translation id="443475966875174318">Ažuriranje ili uklanjanje nekompatibilnih aplikacija</translation> @@ -3273,6 +3272,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="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> <translation id="6080689532560039067">Provjerite vrijeme sustava</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Simulacija ponovnog pokretanja preglednika</translation> <translation id="6406506848690869874">Sinkronizacija</translation> <translation id="6408118934673775994">pročitati i promijeniti vaše podatke na <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Skočni prozori</translation> <translation id="6410257289063177456">Slikovne datoteke</translation> <translation id="6410328738210026208">Promijeni kanal i pokreni Powerwash</translation> <translation id="6410668567036790476">Dodavanje tražilice</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Porijeklo:</translation> <translation id="6709357832553498500">Poveži pomoću proširenja <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Prethodno</translation> -<translation id="6716704051134091292">Pretvaranje u PDF</translation> <translation id="6718273304615422081">Komprimiranje...</translation> <translation id="671928215901716392">Zaključaj zaslon</translation> <translation id="67211069045302358">Želite li poništiti postavke za ovu web-lokaciju?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Otvori kao uobičajenu karticu</translation> <translation id="6922128026973287222">Štedite podatke i pregledavajte brže uz Google uštedu podataka. Kliknite za više informacija.</translation> <translation id="6923132443355966645">Pomicanje/klik</translation> -<translation id="6929555043669117778">Nastavi blokirati skočne prozore</translation> <translation id="6929835486583850209">Pogreška prilikom instaliranja aplikacije <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Trajanje</translation> <translation id="6934241953272494177">Pretraživanje medijskog uređaja... @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Šalji podatke o praćenju izvedbe</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokiraj</translation> +<translation id="7055152154916055070">Preusmjeravanje je blokirano:</translation> <translation id="7056526158851679338">&Provjeri uređaje</translation> <translation id="7059858479264779982">Postavi na automatsko pokretanje</translation> <translation id="7059893117020417984">Da biste pregledavali privatno, kliknite ikonu izbornika s točkama kako biste otvorili anoniman prozor</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Nije uspjelo pokretanje ažuriranja (kôd pogreške <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – otvaranje i pakiranje ZIP datoteka u aplikaciji Datoteke.</translation> <translation id="7088674813905715446">Administrator je postavio uređaj u stanje uklonjenog pristupa. Da biste omogućili njegovu prijavu, zamolite administratora da postavi uređaj u stanje na čekanju.</translation> -<translation id="7092106376816104">Iznimke za skočne prozore</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">razmjenjivati podatke s uređajima naziva: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Uključivanje/isključivanje povećala cijelog zaslona</translation> @@ -4143,7 +4140,6 @@ <translation id="744341768939279100">Izradi novi profil</translation> <translation id="7444726222535375658">Nastavi na Hangouts Meet</translation> <translation id="7444983668544353857">Onemogući <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Skočni su prozori blokirani</translation> <translation id="7453008956351770337">Odabirom tog pisača sljedećem proširenju dajete dopuštenje za pristup svojem pisaču:</translation> <translation id="7453467225369441013">Odjavit ćete se s većine web-lokacija, ali se nećete odjaviti s Google računa.</translation> <translation id="7456142309650173560">razvojni</translation> @@ -4262,6 +4258,7 @@ <translation id="7617366389578322136">Povezivanje s uređajem "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">Punjenje.</translation> <translation id="7624337243375417909">Caps Lock isključen</translation> +<translation id="7625568159987162309">Pregledajte dopuštenja i podatke pohranjene na web-lokacijama</translation> <translation id="7627790789328695202">Ups, stavka <ph name="FILE_NAME" /> već postoji. Preimenujte je i pokušajte ponovo.</translation> <translation id="7628127343934101653">Otvori PDF datoteke u zadanoj aplikaciji preglednika PDF-ova.</translation> <translation id="7629827748548208700">Kartica: <ph name="TAB_NAME" /></translation> @@ -4584,10 +4581,12 @@ <translation id="806812017500012252">Poredaj po naslovu</translation> <translation id="8068253693380742035">Dodirnite za prijavu</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Linux datoteke</translation> <translation id="8071432093239591881">Ispiši kao sliku</translation> <translation id="8072988827236813198">Prikvači kartice</translation> <translation id="8074127646604999664">Dopusti nedavno zatvorenim web-lokacijama dovršetak slanja i primanja podataka</translation> <translation id="8075191520954018715">Stanje memorije</translation> +<translation id="8076492880354921740">Kartice</translation> <translation id="8076835018653442223">Pristup lokalnim datotekama na vašem uređaju onemogućio je administrator</translation> <translation id="8077684120002777443">Korisničko ime (na primjer korisnik@primjer.com)</translation> <translation id="8077816382010018681">Ovdje treba unijeti naslov obavijesti značajke QU</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Nije pronađeno nijedno odredište</translation> <translation id="8569764466147087991">Odaberite datoteku za otvaranje</translation> <translation id="8571213806525832805">Protekla 4 tjedna</translation> -<translation id="8571613743082299268">Blokirano je preusmjeravanje na web-lokaciju</translation> <translation id="8574990355410201600">Uvijek dopusti zvuk na web-lokaciji <ph name="HOST" /></translation> <translation id="8578639784464423491">Dopušteno je najviše 99 slova</translation> <translation id="8579285237314169903">Sinkronizacija ovoliko stavki: <ph name="NUMBER_OF_FILES" />...</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">Uredi</translation> <translation id="9066782832737749352">Pretvaranje teksta u govor</translation> <translation id="9070219033670098627">Promijeni osobu</translation> -<translation id="907148966137935206">Nemoj dopustiti nijednoj web-lokaciji da prikazuje skočne prozore (preporučuje se)</translation> <translation id="9071637495340542136">Instalira se <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> može upotrijebiti spremljene zaporke kako bi vas automatski prijavio na web-lokacije i aplikacije koje ispunjavaju uvjete.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 6ba5e5f..5848a9d 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Könyvjelző hozzáadása ehhez az oldalhoz...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> elem törlése...</translation> <translation id="1048286738600630630">Megjelenítés</translation> +<translation id="1049743911850919806">Inkognitómód</translation> <translation id="1049795001945932310">&Nyelvi beállítások</translation> <translation id="1049926623896334335">Word-dokumentum</translation> <translation id="1054153489933238809">Az eredeti &kép megnyitása új lapon</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">A szinkronizálást végző szerver elfoglalt, kérjük, próbálja újból később.</translation> <translation id="1784849162047402014">Az eszközön kevés a lemezterület</translation> <translation id="1786636458339910689">Csapatmeghajtók</translation> -<translation id="1789575671122666129">Előugró ablakok</translation> <translation id="1792619191750875668">Kiterjesztett kijelző</translation> <translation id="1793119619663054394">Biztosan törli a(z) „<ph name="PROFILE_NAME" />” profilt és annak összes Chrome-adatát erről a számítógépről? A művelet nem vonható vissza.</translation> <translation id="1794791083288629568">Küldjön visszajelzést, hogy segítsen a probléma megoldásában.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Új felügyelt felhasználó létrehozása után a következő címen kezelheti beállításait bármikor, bármilyen eszközről: <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Ablak rögzítése jobbra</translation> <translation id="1987139229093034863">Váltás egy másik felhasználóra.</translation> +<translation id="1987317783729300807">Fiókok</translation> <translation id="1989112275319619282">Böngészés</translation> <translation id="1992397118740194946">Nincs beállítva</translation> <translation id="1994173015038366702">Webhely URL-je</translation> <translation id="1997484222658892567">A(z) <ph name="URL" /> webhely állandó jelleggel nagy méretű adatokat szeretne tárolni a helyi számítógépen</translation> <translation id="1997616988432401742">Az Ön tanúsítványai</translation> <translation id="1999115740519098545">Induláskor</translation> +<translation id="2001796770603320721">Kezelés a Drive-ban</translation> <translation id="2006638907958895361">Link megnyitása a következőben: <ph name="APP" /></translation> <translation id="2007404777272201486">Hibabejelentés...</translation> <translation id="2016430552235416146">Hagyományos</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">A megadott lapindex érvénytelen.</translation> <translation id="2154484045852737596">Kártya szerkesztése</translation> <translation id="2154710561487035718">URL másolása</translation> -<translation id="2155931291251286316">Itt megjelenhetnek előugró ablakok: <ph name="HOST" /></translation> <translation id="215753907730220065">Kilépés a teljes képernyős módból</translation> <translation id="2157875535253991059">Ez az oldal most teljes képernyős nézetben van.</translation> <translation id="216169395504480358">Wi-Fi hozzáadása...</translation> @@ -1184,7 +1185,6 @@ <translation id="2799223571221894425">Újraindítás</translation> <translation id="2803375539583399270">PIN-kód megadása</translation> <translation id="2805646850212350655">Microsoft - fájlrendszer titkosítása</translation> -<translation id="2805707493867224476">Előugró ablakok engedélyezése minden webhelyen</translation> <translation id="2805756323405976993">Alkalmazások</translation> <translation id="2807517655263062534">A letöltött fájlok itt jelennek meg</translation> <translation id="2809586584051668049">és <ph name="NUMBER_ADDITIONAL_DISABLED" /> további</translation> @@ -1618,7 +1618,6 @@ <translation id="347919930506963698">Még többet hozhat ki a Chrome-ból</translation> <translation id="3479552764303398839">Ne most</translation> <translation id="3480892288821151001">Ablak rögzítése balra</translation> -<translation id="3481915276125965083">A következő előugró ablakokat letiltottuk ezen az oldalon:</translation> <translation id="3484273680291419129">Kártékony szoftver eltávolítása…</translation> <translation id="3484869148456018791">Új tanúsítvány kérése</translation> <translation id="3487007233252413104">névtelen funkció</translation> @@ -1724,7 +1723,6 @@ <translation id="3637682276779847508">Ha nem tudja megadni a helyes PUK-kódot, a SIM-kártya véglegesen le lesz tiltva.</translation> <translation id="363903084947548957">Következő beviteli mód</translation> <translation id="3640214691812501263">Hozzáadja a(z) „<ph name="EXTENSION_NAME" />” bővítményt a következő felhasználónál: <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">A vendég felhasználók nem kezelhetik a bővítményeket. A bővítmények kezeléséhez jelentkezzen be.</translation> <translation id="3644896802912593514">Szélesség</translation> <translation id="3646789916214779970">Alapértelmezett téma visszaállítása</translation> <translation id="3648348069317717750">A rendszer <ph name="USB_DEVICE_NAME" /> eszközt észlelt</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Mindig mutassa</translation> <translation id="4175737294868205930">Állandó tárhely</translation> <translation id="4176463684765177261">Kikapcsolva</translation> -<translation id="4180684688621252156">Nyomtatási szolgáltatás</translation> <translation id="4180788401304023883">"<ph name="CERTIFICATE_NAME" />" tanúsítványkibocsátói (CA) tanúsítvány törlése?</translation> <translation id="4181602000363099176">20×</translation> <translation id="4181841719683918333">Nyelvek</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">A szerver letiltotta a hozzáférést ehhez az erőforráshoz.</translation> <translation id="4215350869199060536">Hoppá! A név helytelen szimbólumokat tartalmaz.</translation> <translation id="4215448920900139318">Biztonsági másolat készítése a következőkről: <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Diktálás</translation> <translation id="4225397296022057997">Az összes webhelyen</translation> <translation id="4235200303672858594">Teljes képernyő</translation> <translation id="4235813040357936597">Fiók hozzáadása a következőhöz: <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Saját meghajtó</translation> <translation id="4430019312045809116">Hangerő</translation> <translation id="4430369329743628066">Könyvjelző hozzáadva</translation> +<translation id="4434045419905280838">Előugró ablakok és átirányítások</translation> <translation id="443454694385851356">Régi (nem biztonságos)</translation> <translation id="443464694732789311">Tovább</translation> <translation id="443475966875174318">Nem kompatibilis alkalmazások frissítése és eltávolítása</translation> @@ -3275,6 +3274,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="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> <translation id="6080689532560039067">Ellenőrizze a rendszeridőt</translation> @@ -3483,7 +3483,6 @@ <translation id="6406303162637086258">Böngésző újraindításának szimulálása</translation> <translation id="6406506848690869874">Szinkronizálás</translation> <translation id="6408118934673775994">Adatainak olvasása és módosítása itt: <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> és <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Előugró ablakok</translation> <translation id="6410257289063177456">Képfájlok</translation> <translation id="6410328738210026208">Csatorna módosítása és Powerwash</translation> <translation id="6410668567036790476">Keresőmotor hozzáadása</translation> @@ -3691,7 +3690,6 @@ <translation id="6708242697268981054">Forrás:</translation> <translation id="6709357832553498500">Csatlakozás a következővel: <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Előző</translation> -<translation id="6716704051134091292">PDF-konvertáló</translation> <translation id="6718273304615422081">Tömörítés...</translation> <translation id="671928215901716392">Képernyő lezárása</translation> <translation id="67211069045302358">Visszaállítja a beállításokat a webhelyhez?</translation> @@ -3816,7 +3814,6 @@ <translation id="6920989436227028121">Megnyitás normál lapként</translation> <translation id="6922128026973287222">A Google Adatforgalom-csökkentő segítségével adatforgalmat takaríthat meg, és gyorsabban böngészhet. További információért kattintson ide.</translation> <translation id="6923132443355966645">Görgetés / Kattintás</translation> -<translation id="6929555043669117778">Előugró ablakok letiltásának fenntartása</translation> <translation id="6929835486583850209">Hiba a(z) <ph name="APP_NAME" /> alkalmazás telepítése során…</translation> <translation id="6930242544192836755">Időtartam</translation> <translation id="6934241953272494177">Médiaeszköz keresése… @@ -3900,6 +3897,7 @@ <translation id="7052237160939977163">Teljesítménykövetési adatok elküldése</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Letiltás</translation> +<translation id="7055152154916055070">Átirányítás letiltva:</translation> <translation id="7056526158851679338">&Eszközök vizsgálata</translation> <translation id="7059858479264779982">Beállítás automatikus indításra</translation> <translation id="7059893117020417984">Privát böngészéshez kattintson a három pontból álló („Továbbiak”) ikonra, és nyisson inkognitóablakot.</translation> @@ -3926,7 +3924,6 @@ <translation id="7088434364990739311">A frissítés ellenőrzésének elindítása sikertelen (hibakód: <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – ZIP-fájlok megnyitása és tömörítése a Fájlok alkalmazásban.</translation> <translation id="7088674813905715446">Az eszközt a rendszergazda eltávolított állapotba helyezte. Ahhoz, hogy regisztrálhassa az eszközt, helyeztesse azt a rendszergazdával függő állapotba.</translation> -<translation id="7092106376816104">Előugró ablakok kivételei</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Adatok cseréje a(z) <ph name="HOSTNAMES" /> nevű eszközökkel</translation> <translation id="7096406577040705016">Teljes képernyős nagyító váltása</translation> @@ -4146,7 +4143,6 @@ <translation id="744341768939279100">Új profil létrehozása</translation> <translation id="7444726222535375658">Tovább a Hangouts Meet szolgáltatásba</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> kikapcsolása</translation> -<translation id="7445682342344043969">Előugró ablakok letiltva</translation> <translation id="7453008956351770337">A nyomtató kiválasztásával engedélyt ad annak elérésére a következő bővítmény számára:</translation> <translation id="7453467225369441013">A rendszer a legtöbb webhelyről kijelentkezteti Önt, de Google-fiókjából nem.</translation> <translation id="7456142309650173560">fejlesztői</translation> @@ -4265,6 +4261,7 @@ <translation id="7617366389578322136">Csatlakozás a(z) „<ph name="DEVICE_NAME" />” eszközhöz</translation> <translation id="7622114377921274169">Töltés.</translation> <translation id="7624337243375417909">caps lock kikapcsolva</translation> +<translation id="7625568159987162309">A webhelyek engedélyeinek és az általuk tárolt adatoknak a megtekintése</translation> <translation id="7627790789328695202">Hoppá! <ph name="FILE_NAME" /> már létezik. Nevezze át, majd próbálja újra.</translation> <translation id="7628127343934101653">PDF-fájlok megnyitása az alapértelmezett PDF-olvasó alkalmazásban.</translation> <translation id="7629827748548208700">Lap: <ph name="TAB_NAME" /></translation> @@ -4587,10 +4584,12 @@ <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> +<translation id="806972267388474605">Linux-fájlok</translation> <translation id="8071432093239591881">Nyomtatás képként</translation> <translation id="8072988827236813198">Lapok rögzítése</translation> <translation id="8074127646604999664">Annak engedélyezése, hogy a nemrégiben bezárt webhelyek befejezhessék az adatok küldését és fogadását</translation> <translation id="8075191520954018715">A memória állapota</translation> +<translation id="8076492880354921740">Lapok</translation> <translation id="8076835018653442223">A rendszergazda letiltotta a helyi fájlok elérését az eszközön</translation> <translation id="8077684120002777443">Felhasználónév (pl. felhasznalo@example.com)</translation> <translation id="8077816382010018681">A gyorsfeloldás funkció értesítésének a címe ide kerül</translation> @@ -4875,7 +4874,6 @@ <translation id="8569682776816196752">Nem található célhely</translation> <translation id="8569764466147087991">Válassza ki a megnyitni kívánt fájlt</translation> <translation id="8571213806525832805">Az elmúlt négy hétből</translation> -<translation id="8571613743082299268">Átirányítás letiltva ennél a webhelynél:</translation> <translation id="8574990355410201600">Hangok folyamatos engedélyezése a következőn: <ph name="HOST" /></translation> <translation id="8578639784464423491">A szó hossza nem haladhatja meg a 99 betűt</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> elem szinkronizálása…</translation> @@ -5207,7 +5205,6 @@ <translation id="9065203028668620118">Szerkesztés</translation> <translation id="9066782832737749352">Szövegfelolvasás</translation> <translation id="9070219033670098627">Felhasználóváltás</translation> -<translation id="907148966137935206">Tiltsa le az előugró ablakokat minden webhelyen (ajánlott)</translation> <translation id="9071637495340542136">A(z) <ph name="APP_NAME" /> telepítése…</translation> <translation id="9072550133391925347">A(z) <ph name="PASSWORD_MANAGER_BRAND" /> segítségével automatikusan bejelentkezhet adott webhelyekre és alkalmazásokba a mentett jelszavaival.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index ffaf1609..97bf9f1 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Bookmark Halaman Ini...</translation> <translation id="1047956942837015229">Menghapus <ph name="COUNT" /> item...</translation> <translation id="1048286738600630630">Tampilan</translation> +<translation id="1049743911850919806">Penyamaran</translation> <translation id="1049795001945932310">&Setelan bahasa</translation> <translation id="1049926623896334335">Dokumen Word</translation> <translation id="1054153489933238809">Buka &Gambar Asli di Tab Baru</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Server sinkronisasi sibuk. Coba lagi nanti.</translation> <translation id="1784849162047402014">Perangkat hampir kehabisan ruang disk</translation> <translation id="1786636458339910689">Drive Tim</translation> -<translation id="1789575671122666129">Pop-up</translation> <translation id="1792619191750875668">Tampilan yang diperluas</translation> <translation id="1793119619663054394">Yakin ingin menghapus "<ph name="PROFILE_NAME" />" dan semua data Chrome yang terkait dari komputer ini? Tindakan ini tidak dapat diurungkan.</translation> <translation id="1794791083288629568">Kirim masukan untuk membantu kami menyelesaikan masalah ini.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Setelah Anda membuat pengguna baru yang diawasi, Anda dapat mengelola setelannya kapan pun dari perangkat mana pun di <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Galangkan jendela ke kanan</translation> <translation id="1987139229093034863">Beralih ke pengguna lain.</translation> +<translation id="1987317783729300807">Akun</translation> <translation id="1989112275319619282">Jelajahi</translation> <translation id="1992397118740194946">Belum disetel</translation> <translation id="1994173015038366702">URL situs</translation> <translation id="1997484222658892567"><ph name="URL" /> ingin menyimpan data berukuran besar di komputer lokal Anda secara permanen</translation> <translation id="1997616988432401742">Sertifikat Anda</translation> <translation id="1999115740519098545">Saat memulai</translation> +<translation id="2001796770603320721">Kelola di Drive</translation> <translation id="2006638907958895361">Buka Link di <ph name="APP" /></translation> <translation id="2007404777272201486">Laporkan Masalah...</translation> <translation id="2016430552235416146">Tradisional</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Indeks tab yang dimasukkan tidak valid.</translation> <translation id="2154484045852737596">Edit kartu</translation> <translation id="2154710561487035718">Salin URL</translation> -<translation id="2155931291251286316">Selalu izinkan pop-up dari <ph name="HOST" /></translation> <translation id="215753907730220065">Keluar dari Tampilan Layar Penuh</translation> <translation id="2157875535253991059">Sekarang halaman ini dalam mode layar penuh.</translation> <translation id="216169395504480358">Tambahkan Wi-Fi...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Luncurkan Ulang</translation> <translation id="2803375539583399270">Masukkan PIN</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">Izinkan semua situs menampilkan pop-up</translation> <translation id="2805756323405976993">Apl</translation> <translation id="2807517655263062534">File yang Anda download muncul di sini</translation> <translation id="2809586584051668049">dan <ph name="NUMBER_ADDITIONAL_DISABLED" /> lainnya</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Optimalkan Chrome</translation> <translation id="3479552764303398839">Jangan sekarang</translation> <translation id="3480892288821151001">Galangkan jendela ke kiri</translation> -<translation id="3481915276125965083">Pop-up berikut diblokir di halaman ini:</translation> <translation id="3484273680291419129">Menghapus software berbahaya...</translation> <translation id="3484869148456018791">Dapatkan sertifikat baru</translation> <translation id="3487007233252413104">fungsi anonim</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Kartu SIM Anda akan dinonaktifkan secara permanen jika Anda tidak dapat memasukkan PIN Pembuka Kunci yang benar.</translation> <translation id="363903084947548957">Metode masukan berikutnya</translation> <translation id="3640214691812501263">Tambahkan "<ph name="EXTENSION_NAME" />" untuk <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Pengelolaan ekstensi tidak tersedia bagi pengguna Tamu. Harap login untuk mengelola ekstensi.</translation> <translation id="3644896802912593514">Lebar</translation> <translation id="3646789916214779970">Setel ulang ke tema default</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> terdeteksi</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Selalu tampilkan</translation> <translation id="4175737294868205930">Penyimpanan tetap</translation> <translation id="4176463684765177261">Dinonaktifkan</translation> -<translation id="4180684688621252156">Layanan pencetakan</translation> <translation id="4180788401304023883">Hapus sertifikat CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Bahasa</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Akses ke sumber daya ini tidak diizinkan oleh server.</translation> <translation id="4215350869199060536">Ups! Ada simbol ilegal dalam nama.</translation> <translation id="4215448920900139318">Mem-backup <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Dikte</translation> <translation id="4225397296022057997">Di semua situs</translation> <translation id="4235200303672858594">Seluruh layar</translation> <translation id="4235813040357936597">Tambahkan Akun untuk <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Drive Saya</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4430369329743628066">Bookmark ditambahkan</translation> +<translation id="4434045419905280838">Pop-up dan pengalihan</translation> <translation id="443454694385851356">Lama (tidak aman)</translation> <translation id="443464694732789311">Lanjutkan</translation> <translation id="443475966875174318">Update atau hapus aplikasi yang tidak kompatibel</translation> @@ -2943,7 +2942,7 @@ <translation id="555746285996217175">Kunci / daya</translation> <translation id="5557991081552967863">Tetap aktifkan Wi-Fi saat dalam mode tidur</translation> <translation id="5558129378926964177">Per&besar</translation> -<translation id="5558446705802335921">Memeriksa situs yang Anda b danuka file yang Anda download untuk mencari perilaku atau konten berbahaya, seperti phishing atau malware</translation> +<translation id="5558446705802335921">Memeriksa situs yang Anda buka dan file yang Anda download untuk mencari perilaku atau konten berbahaya, seperti phishing atau malware</translation> <translation id="5559719557406102971">Memulai Termina VM.</translation> <translation id="55601339223879446">Menyesuaikan batas desktop Anda dalam tampilan</translation> <translation id="5562781907504170924">Tab ini terhubung ke Perangkat Bluetooth.</translation> @@ -3273,6 +3272,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="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> <translation id="6080689532560039067">Periksa waktu sistem Anda</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Simulasikan mulai ulang browser</translation> <translation id="6406506848690869874">Sinkronisasi</translation> <translation id="6408118934673775994">Membaca dan mengubah data Anda di <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, dan <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop-up</translation> <translation id="6410257289063177456">File Gambar</translation> <translation id="6410328738210026208">Ganti saluran dan Powerwash</translation> <translation id="6410668567036790476">Tambahkan mesin telusur</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Asal:</translation> <translation id="6709357832553498500">Sambungkan menggunakan <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Sebelumnya</translation> -<translation id="6716704051134091292">Pengonversi PDF</translation> <translation id="6718273304615422081">Membuat file zip...</translation> <translation id="671928215901716392">Kunci layar</translation> <translation id="67211069045302358">Setel ulang setelan situs ini?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Buka sebagai tab biasa</translation> <translation id="6922128026973287222">Hemat data dan jelajahi dengan lebih cepat menggunakan Penghemat Kuota Internet Google. Klik untuk mempelajari lebih lanjut.</translation> <translation id="6923132443355966645">Scroll / Klik</translation> -<translation id="6929555043669117778">Lanjutkan memblokir pop-up</translation> <translation id="6929835486583850209">Terjadi error saat menginstal <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Durasi</translation> <translation id="6934241953272494177">Memindai perangkat media... @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Mengirim data pelacakan kinerja</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokir</translation> +<translation id="7055152154916055070">Pengalihan diblokir:</translation> <translation id="7056526158851679338">&Periksa Perangkat</translation> <translation id="7059858479264779982">Setel ke luncurkan otomatis</translation> <translation id="7059893117020417984">Untuk melakukan browsing rahasia, klik menu ikon titik untuk membuka jendela samaran</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Pengecekan pembaruan gagal dilakukan (kode kesalahan <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Buka dan kemas file ZIP di aplikasi Files.</translation> <translation id="7088674813905715446">Perangkat ini telah dialihkan ke status dibatalkan penetapannya oleh administrator. Agar bisa dipakai untuk pendaftaran, minta administrator mengubah status perangkat menjadi menunggu keputusan.</translation> -<translation id="7092106376816104">Pengecualian pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Menukar data dengan perangkat yang bernama: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Aktifkan Kaca Pembesar Layar Penuh</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">Buat profil baru</translation> <translation id="7444726222535375658">Lanjutkan ke Hangouts Meet</translation> <translation id="7444983668544353857">Nonaktifkan <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pop-up diblokir</translation> <translation id="7453008956351770337">Dengan memilih printer ini, Anda memberikan izin untuk mengakses printer Anda kepada ekstensi berikut:</translation> <translation id="7453467225369441013">Membuat Anda logout dari sebagian besar situs. Anda tidak akan logout dari Akun Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">Menyambungkan ke "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">Mengisi daya.</translation> <translation id="7624337243375417909">caps lock nonaktif</translation> +<translation id="7625568159987162309">Lihat izin dan data yang disimpan di seluruh situs</translation> <translation id="7627790789328695202">Ups, <ph name="FILE_NAME" /> sudah ada. Ganti nama dan coba lagi.</translation> <translation id="7628127343934101653">Buka file PDF di aplikasi penampil PDF default.</translation> <translation id="7629827748548208700">Tab: <ph name="TAB_NAME" /></translation> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Susun ulang menurut judul</translation> <translation id="8068253693380742035">Sentuh untuk login</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">File Linux</translation> <translation id="8071432093239591881">Cetak sebagai gambar</translation> <translation id="8072988827236813198">Sematkan Tab</translation> <translation id="8074127646604999664">Izinkan situs yang baru ditutup untuk menyelesaikan pengiriman dan penerimaan data</translation> <translation id="8075191520954018715">Status memori</translation> +<translation id="8076492880354921740">Tab</translation> <translation id="8076835018653442223">Akses ke file lokal di perangkat Anda dinonaktifkan oleh administrator</translation> <translation id="8077684120002777443">Nama pengguna (misalnya user@example.com)</translation> <translation id="8077816382010018681">QU Feature notification title here</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Tidak ditemukan tujuan</translation> <translation id="8569764466147087991">Pilih file yang akan dibuka</translation> <translation id="8571213806525832805">4 minggu terakhir</translation> -<translation id="8571613743082299268">Pengalihan ke situs di bawah ini diblokir</translation> <translation id="8574990355410201600">Selalu izinkan suara di <ph name="HOST" /></translation> <translation id="8578639784464423491">Tidak boleh melebihi 99 huruf</translation> <translation id="8579285237314169903">Menyinkronkan <ph name="NUMBER_OF_FILES" /> item...</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">Edit</translation> <translation id="9066782832737749352">Text-to-Speech</translation> <translation id="9070219033670098627">Ganti orang</translation> -<translation id="907148966137935206">Jangan izinkan situs apa pun menampilkan pop-up (disarankan)</translation> <translation id="9071637495340542136">Menginstal <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> otomatis memasukkan Anda ke situs dan aplikasi yang memenuhi syarat menggunakan sandi tersimpan.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 4559856..55d0004e 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Aggiungi questa pagina ai Preferiti...</translation> <translation id="1047956942837015229">Eliminazione di <ph name="COUNT" /> elementi...</translation> <translation id="1048286738600630630">Display</translation> +<translation id="1049743911850919806">In incognito</translation> <translation id="1049795001945932310">&Impostazioni lingua</translation> <translation id="1049926623896334335">Documento di Word</translation> <translation id="1054153489933238809">Apri &originale in nuova scheda</translation> @@ -509,7 +510,7 @@ <translation id="1758831820837444715">Configura rete Ethernet</translation> <translation id="1763046204212875858">Creazione di scorciatoie applicazione</translation> <translation id="1763108912552529023">Continua a esplorare</translation> -<translation id="1763808908432309942">L'apertura avverrà in una nuova scheda</translation> +<translation id="1763808908432309942">Si apre in una nuova scheda</translation> <translation id="1764226536771329714">beta</translation> <translation id="176587472219019965">&Nuova finestra</translation> <translation id="1768278914020124551">Spiacenti. Si è verificato un problema di comunicazione con il server di accesso. Controlla la connessione di rete e il nome di dominio, poi riprova.</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Il server di sincronizzazione è occupato, riprova più tardi.</translation> <translation id="1784849162047402014">Spazio insufficiente sul disco del dispositivo</translation> <translation id="1786636458339910689">Drive del team</translation> -<translation id="1789575671122666129">Popup</translation> <translation id="1792619191750875668">Display esteso</translation> <translation id="1793119619663054394">Vuoi rimuovere "<ph name="PROFILE_NAME" />" e tutti i dati di Chrome associati da questo computer? L'operazione non può essere annullata.</translation> <translation id="1794791083288629568">Invia feedback per aiutarci a risolvere questo problema.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Dopo avere creato un nuovo utente supervisionato, puoi gestire le impostazioni in qualsiasi momento e da qualsiasi dispositivo all'indirizzo <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Aggancia la finestra a destra</translation> <translation id="1987139229093034863">Passa a un altro utente.</translation> +<translation id="1987317783729300807">Account</translation> <translation id="1989112275319619282">Esplora</translation> <translation id="1992397118740194946">Non impostata</translation> <translation id="1994173015038366702">URL sito</translation> <translation id="1997484222658892567"><ph name="URL" /> vuole memorizzare in modo definitivo grandi quantità di dati sul computer locale</translation> <translation id="1997616988432401742">I tuoi certificati</translation> <translation id="1999115740519098545">All'avvio</translation> +<translation id="2001796770603320721">Gestisci in Drive</translation> <translation id="2006638907958895361">Apri link in <ph name="APP" /></translation> <translation id="2007404777272201486">Segnala un problema...</translation> <translation id="2016430552235416146">Tradizionale</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">È stato inserito un indice di tabulazione non valido.</translation> <translation id="2154484045852737596">Modifica la carta</translation> <translation id="2154710561487035718">Copia URL</translation> -<translation id="2155931291251286316">Consenti sempre popup di <ph name="HOST" /></translation> <translation id="215753907730220065">Esci da schermo intero</translation> <translation id="2157875535253991059">Questa pagina ora è a schermo intero.</translation> <translation id="216169395504480358">Aggiungi Wi-Fi...</translation> @@ -1182,7 +1183,6 @@ <translation id="2799223571221894425">Riavvia</translation> <translation id="2803375539583399270">Inserisci PIN</translation> <translation id="2805646850212350655">Crittografia file system Microsoft</translation> -<translation id="2805707493867224476">Consenti la visualizzazione di popup in tutti i siti</translation> <translation id="2805756323405976993">App</translation> <translation id="2807517655263062534">I file scaricati vengono mostrati qui</translation> <translation id="2809586584051668049">e altre <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1614,7 +1614,6 @@ <translation id="347919930506963698">Utilizza ancora meglio Chrome</translation> <translation id="3479552764303398839">Non adesso</translation> <translation id="3480892288821151001">Aggancia la finestra a sinistra</translation> -<translation id="3481915276125965083">I seguenti popup sono stati bloccati in questa pagina:</translation> <translation id="3484273680291419129">Rimozione del software dannoso...</translation> <translation id="3484869148456018791">Richiedi nuovo certificato</translation> <translation id="3487007233252413104">funzione anonima</translation> @@ -1720,7 +1719,6 @@ <translation id="3637682276779847508">La scheda SIM verrà definitivamente disabilitata se non sei in grado di inserire il codice di sblocco PIN corretto.</translation> <translation id="363903084947548957">Metodo di immissione successivo</translation> <translation id="3640214691812501263">Aggiungere "<ph name="EXTENSION_NAME" />" per <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">La gestione delle estensioni non è disponibile per gli utenti ospite. Accedi per gestire le estensioni.</translation> <translation id="3644896802912593514">Larghezza</translation> <translation id="3646789916214779970">Reimposta tema predefinito</translation> <translation id="3648348069317717750">Rilevato dispositivo <ph name="USB_DEVICE_NAME" /></translation> @@ -2062,7 +2060,6 @@ <translation id="4172051516777682613">Mostra sempre</translation> <translation id="4175737294868205930">Archiviazione persistente</translation> <translation id="4176463684765177261">Disabilitato</translation> -<translation id="4180684688621252156">Servizio di stampa</translation> <translation id="4180788401304023883">Eliminare il certificato CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Lingue</translation> @@ -2088,6 +2085,7 @@ <translation id="42137655013211669">L'accesso a questa risorsa è vietato dal server.</translation> <translation id="4215350869199060536">Spiacenti, simboli non validi nel nome.</translation> <translation id="4215448920900139318">Backup di <ph name="FILE_COUNT" /> in corso</translation> +<translation id="4217571870635786043">Dettatura</translation> <translation id="4225397296022057997">Su tutti i siti</translation> <translation id="4235200303672858594">Schermo intero</translation> <translation id="4235813040357936597">Aggiungi account per <ph name="PROFILE_NAME" /></translation> @@ -2200,6 +2198,7 @@ <translation id="4425149324548788773">I miei file</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4430369329743628066">Aggiunto ai preferiti</translation> +<translation id="4434045419905280838">Popup e reindirizzamenti</translation> <translation id="443454694385851356">Precedente (non sicuro)</translation> <translation id="443464694732789311">Continua</translation> <translation id="443475966875174318">Aggiorna o rimuovi le applicazioni non compatibili</translation> @@ -2512,7 +2511,7 @@ <translation id="4917385247580444890">Forte</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> vuole comunicare con l'estensione "<ph name="EXTENSION_NAME" />"</translation> <translation id="4918086044614829423">Accetto</translation> -<translation id="4920350943031252905">Esegui strumenti, editor e IDEs di Linux sul tuo Chromebook.</translation> +<translation id="4920350943031252905">Esegui strumenti, editor e IDE di Linux sul tuo Chromebook.</translation> <translation id="4920887663447894854">Il monitoraggio della tua posizione da parte dei seguenti siti è stato bloccato su questa pagina:</translation> <translation id="492299503953721473">Rimuovi app Android</translation> <translation id="4923279099980110923">Sì, desidero dare il mio contributo</translation> @@ -3269,6 +3268,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="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> <translation id="6080689532560039067">Controlla l'ora del sistema</translation> @@ -3477,7 +3477,6 @@ <translation id="6406303162637086258">Simula riavvio browser</translation> <translation id="6406506848690869874">Sincronizzazione</translation> <translation id="6408118934673775994">Leggere e modificare i tuoi dati su <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Popup</translation> <translation id="6410257289063177456">File di immagine</translation> <translation id="6410328738210026208">Cambia canale ed esegui Powerwash</translation> <translation id="6410668567036790476">Aggiungi motore di ricerca</translation> @@ -3685,7 +3684,6 @@ <translation id="6708242697268981054">Origine:</translation> <translation id="6709357832553498500">Connettiti utilizzando <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Indietro</translation> -<translation id="6716704051134091292">Convertitore PDF</translation> <translation id="6718273304615422081">Compressione...</translation> <translation id="671928215901716392">Blocco schermo</translation> <translation id="67211069045302358">Ripristinare le impostazioni iniziali per questo sito?</translation> @@ -3810,7 +3808,6 @@ <translation id="6920989436227028121">Apri in una scheda normale</translation> <translation id="6922128026973287222">Memorizza dati e naviga più velocemente utilizzando il servizio Risparmio dati di Google. Fai clic per avere ulteriori informazioni.</translation> <translation id="6923132443355966645">Scorri/fai clic</translation> -<translation id="6929555043669117778">Continua a bloccare i popup</translation> <translation id="6929835486583850209">Errore durante l'installazione di <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Durata</translation> <translation id="6934241953272494177">Scansione del dispositivo multimediale... @@ -3894,6 +3891,7 @@ <translation id="7052237160939977163">Invia dati di rilevamento del rendimento</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blocca</translation> +<translation id="7055152154916055070">Reindirizzamento bloccato:</translation> <translation id="7056526158851679338">&Ispeziona dispositivi</translation> <translation id="7059858479264779982">Imposta avvio automatico</translation> <translation id="7059893117020417984">Per navigare in privato, fai clic sul menu con un'icona con tre puntini per aprire una finestra di navigazione in incognito</translation> @@ -3920,7 +3918,6 @@ <translation id="7088434364990739311">Impossibile iniziare controllo disponibilità aggiornamenti (codice di errore <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver: apri i file ZIP e crea pacchetti nell'app File.</translation> <translation id="7088674813905715446">L'amministratore ha attivato lo stato Deprovisioning effettuato per questo dispositivo. Per poter registrare il dispositivo, chiedi all'amministratore di attivare lo stato In attesa.</translation> -<translation id="7092106376816104">Eccezioni popup</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Scambio di dati con i dispositivi: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Attiva/disattiva la lente d'ingrandimento a schermo intero</translation> @@ -4133,7 +4130,6 @@ <translation id="744341768939279100">Crea un nuovo profilo</translation> <translation id="7444726222535375658">Continua su Hangouts Meet</translation> <translation id="7444983668544353857">Disabilita <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Popup bloccati</translation> <translation id="7453008956351770337">Se selezioni questa stampante, autorizzi la seguente estensione ad accedere alla tua stampante:</translation> <translation id="7453467225369441013">Verrai scollegato dalla maggior parte dei siti, ma non dal tuo account Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4250,6 +4246,7 @@ <translation id="7617366389578322136">Collegamento a "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">In carica.</translation> <translation id="7624337243375417909">bloc maiusc non attivo</translation> +<translation id="7625568159987162309">Visualizza le autorizzazioni e i dati memorizzati sui siti</translation> <translation id="7627790789328695202">Spiacenti. <ph name="FILE_NAME" /> esiste già. Rinominarlo e riprovare.</translation> <translation id="7628127343934101653">Apri i file PDF nell'applicazione di visualizzazione di file PDF predefinita.</translation> <translation id="7629827748548208700">Scheda: <ph name="TAB_NAME" /></translation> @@ -4572,10 +4569,12 @@ <translation id="806812017500012252">Riordina per titolo</translation> <translation id="8068253693380742035">Tocca per accedere</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">File Linux</translation> <translation id="8071432093239591881">Stampa come immagine</translation> <translation id="8072988827236813198">Blocca le schede</translation> <translation id="8074127646604999664">Consenti ai siti chiusi di recente di terminare l'invio e la ricezione di dati</translation> <translation id="8075191520954018715">Stato memoria</translation> +<translation id="8076492880354921740">Schede</translation> <translation id="8076835018653442223">L'accesso ai file locali sul dispositivo è stato disattivato dall'amministratore</translation> <translation id="8077684120002777443">Nome utente (ad es. utente@example.com)</translation> <translation id="8077816382010018681">Inserisci qui il titolo della notifica della funzione di sblocco rapido</translation> @@ -4860,7 +4859,6 @@ <translation id="8569682776816196752">Nessuna destinazione trovata</translation> <translation id="8569764466147087991">Seleziona un file da aprire</translation> <translation id="8571213806525832805">Ultime 4 settimane</translation> -<translation id="8571613743082299268">Reindirizzamento bloccato al seguente sito:</translation> <translation id="8574990355410201600">Consenti sempre l'audio su <ph name="HOST" /></translation> <translation id="8578639784464423491">Non può superare le 99 lettere</translation> <translation id="8579285237314169903">Sincronizzazione di <ph name="NUMBER_OF_FILES" /> elementi...</translation> @@ -5192,7 +5190,6 @@ <translation id="9065203028668620118">Modifica</translation> <translation id="9066782832737749352">Sintesi vocale</translation> <translation id="9070219033670098627">Cambia persona</translation> -<translation id="907148966137935206">Non consentire la visualizzazione di popup nei siti (consigliata)</translation> <translation id="9071637495340542136">Installazione di <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> ti consente di accedere automaticamente alle app e ai siti idonei con le password salvate.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index b8d7d3e..e264ac91 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">הוסף דף זה לסימניות...</translation> <translation id="1047956942837015229">מוחק <ph name="COUNT" /> פריטים...</translation> <translation id="1048286738600630630">תצוגות</translation> +<translation id="1049743911850919806">גלישה פרטית</translation> <translation id="1049795001945932310">הגד&רות שפה</translation> <translation id="1049926623896334335">מסמך Word</translation> <translation id="1054153489933238809">פתח את ה&תמונה המקורית בכרטיסייה חדשה</translation> @@ -184,7 +185,7 @@ <translation id="1260240842868558614">הצג:</translation> <translation id="126710816202626562">שפת תרגום:</translation> <translation id="126768002343224824">16x</translation> -<translation id="1271317946095246719">שולח חיפושים משורת כתובת האתר ותיבת החיפוש אל מנוע החיפוש שהגדרת כברירת מחדל יחד עם קובצי cookie מסוימים.</translation> +<translation id="1271317946095246719">שליחת חיפושים משורת כתובת האתר ותיבת החיפוש אל מנוע החיפוש שהגדרת כברירת מחדל יחד עם קובצי cookie מסוימים.</translation> <translation id="1272079795634619415">הפסק</translation> <translation id="1272978324304772054">חשבון משתמש זה אינו שייך לדומיין שאליו רשום המכשיר. אם ברצונך להירשם לדומיין אחר, ראשית עליך לבצע שחזור מכשיר.</translation> <translation id="1274977772557788323">הגדרות אחסון של Adobe Flash Player</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">שרת הסינכרון עמוס, נסה שוב מאוחר יותר.</translation> <translation id="1784849162047402014">חסר שטח אחסון בדיסק של המכשיר</translation> <translation id="1786636458339910689">אחסון שיתופי</translation> -<translation id="1789575671122666129">חלונות קופצים</translation> <translation id="1792619191750875668">תצוגה מורחבת</translation> <translation id="1793119619663054394">האם אתה בטוח שברצונך להסיר את "<ph name="PROFILE_NAME" />" ואת כל הנתונים הקשורים ל-Chrome ממחשב זה? לא ניתן לבטל פעולה זו.</translation> <translation id="1794791083288629568"> שליחת משוב כדי לעזור לנו לפתור את הבעיה.</translation> @@ -649,12 +649,14 @@ <translation id="1983959805486816857">לאחר יצירת משתמש בפיקוח חדש, תוכל לנהל את ההגדרות בכל עת מכל מכשיר בכתובת <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">עגן חלון לימין</translation> <translation id="1987139229093034863">עבור למשתמש אחר.</translation> +<translation id="1987317783729300807">חשבונות</translation> <translation id="1989112275319619282">דפדף</translation> <translation id="1992397118740194946">לא מוגדר</translation> <translation id="1994173015038366702">כתובת אתר</translation> <translation id="1997484222658892567"><ph name="URL" /> רוצה לאחסן כמות גדולה של נתונים במחשב המקומי שלך באופן קבוע</translation> <translation id="1997616988432401742">האישורים שלך</translation> <translation id="1999115740519098545">בעת ההפעלה</translation> +<translation id="2001796770603320721">ניהול ב-Drive</translation> <translation id="2006638907958895361">פתח את הקישור ב-<ph name="APP" /></translation> <translation id="2007404777272201486">דיווח על בעיה...</translation> <translation id="2016430552235416146">מסורתית</translation> @@ -750,7 +752,6 @@ <translation id="2151576029659734873">הוזן אינדקס שגוי של כרטיסייה</translation> <translation id="2154484045852737596">עריכת כרטיס</translation> <translation id="2154710561487035718">העתק כתובת אתר</translation> -<translation id="2155931291251286316">אפשר תמיד חלונות קופצים מ-<ph name="HOST" /></translation> <translation id="215753907730220065">צא ממסך מלא</translation> <translation id="2157875535253991059">דף זה הוא במסך מלא כעת.</translation> <translation id="216169395504480358">הוסף Wi-Fi...</translation> @@ -800,7 +801,7 @@ <translation id="2230062665678605299">לא ניתן ליצור את התיקיה "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">לצפייה בדודל היומי</translation> <translation id="2231238007119540260">אם אתה מוחק אישור שרת, אתה משחזר את בדיקות האבטחה הרגילות לשרת זה ודורש שהוא ישתמש באישור חוקי.</translation> -<translation id="2232379019872353004">שולח חלק מפרטי המערכת ותוכן הדף אל Google</translation> +<translation id="2232379019872353004">שליחת חלק מפרטי המערכת ותוכן הדף אל Google</translation> <translation id="2232876851878324699">הקובץ הכיל אישור אחד, שלא יובא:</translation> <translation id="2233502537820838181">&מידע נוסף</translation> <translation id="2238379619048995541">נתוני מצב תדירות</translation> @@ -938,7 +939,7 @@ <translation id="2462724976360937186">מזהה מפתח של רשות אישורים</translation> <translation id="2462752602710430187">המדפסת <ph name="PRINTER_NAME" /> נוספה</translation> <translation id="2464089476039395325">שרת proxy של HTTP</translation> -<translation id="2468205691404969808">עושה שימוש בקובצי cookie כדי לזכור את ההעדפות שלך, גם אם לא נכנסת אל הדפים האלה</translation> +<translation id="2468205691404969808">שימוש בקובצי cookie כדי לשמור את ההעדפות שלך, גם אם לא נכנסת אל הדפים האלה</translation> <translation id="2468902267404883140">לא ניתן לבצע התחברות לטלפון שלך. יש לוודא שימוש בטלפון Android תואם ושהוא מופעל ונמצא בקרבתך. <a>מידע נוסף</a></translation> <translation id="2470702053775288986">תוספים שלא נתמכים הושבתו</translation> <translation id="2473195200299095979">תרגם את הדף הזה</translation> @@ -1102,7 +1103,7 @@ <translation id="2686759344028411998">לא ניתן לזהות מודולים שנטענו.</translation> <translation id="2688196195245426394">אירעה שגיאה בעת רישום המכשיר בשרת: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">הצג אפשרויות שפה</translation> -<translation id="2690824726518456119">מפעיל את שירות Concierge.</translation> +<translation id="2690824726518456119">הפעלת שירות Concierge.</translation> <translation id="2691385045260836588">דגם</translation> <translation id="2693176596243495071">אופס. אירעה שגיאה לא ידועה. כדאי לנסות שוב מאוחר יותר, או לפנות אל מנהל המערכת אם הבעיה ממשיכה.</translation> <translation id="2694026874607847549">קובץ Cookie אחד</translation> @@ -1180,7 +1181,6 @@ <translation id="2799223571221894425">הפעל מחדש</translation> <translation id="2803375539583399270">הזן PIN</translation> <translation id="2805646850212350655">מערכת קבצים מצפינה של Microsoft</translation> -<translation id="2805707493867224476">אפשר לכל האתרים להציג חלונות קופצים</translation> <translation id="2805756323405976993">אפליקציות</translation> <translation id="2807517655263062534">קבצים שתוריד יופיעו כאן</translation> <translation id="2809586584051668049">ועוד <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1428,7 +1428,7 @@ <translation id="3190558889382726167">הסיסמה נשמרה</translation> <translation id="3192947282887913208">קובצי אודיו</translation> <translation id="3194737229810486521"><ph name="URL" /> רוצה לאחסן נתונים במכשיר שלך באופן קבוע</translation> -<translation id="3197054279257119376">טוען רכיב Termina.</translation> +<translation id="3197054279257119376">טעינת רכיב Termina.</translation> <translation id="3199127022143353223">שרתים</translation> <translation id="3202131003361292969">נתיב</translation> <translation id="3202173864863109533">האודיו בכרטיסייה זו מושתק.</translation> @@ -1614,7 +1614,6 @@ <translation id="347919930506963698">Chrome יכול לתת לך יותר</translation> <translation id="3479552764303398839">לא עכשיו</translation> <translation id="3480892288821151001">עגן חלון לשמאל</translation> -<translation id="3481915276125965083">ההודעות הקופצות הבאות נחסמו בדף זה:</translation> <translation id="3484273680291419129">מסיר תוכנה מזיקה...</translation> <translation id="3484869148456018791">קבל אישור חדש</translation> <translation id="3487007233252413104">פונקציה אנונימית</translation> @@ -1720,7 +1719,6 @@ <translation id="3637682276779847508">כרטיס ה-SIM שלך יושבת לצמיתות אם לא תזין את המפתח הנכון לביטול נעילת ה-PIN.</translation> <translation id="363903084947548957">שיטת הקלט הבאה</translation> <translation id="3640214691812501263">האם להוסיף את "<ph name="EXTENSION_NAME" />" בשביל <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">ניהול תוספים אינו זמין למשתמשים אורחים. יש להתחבר לחשבון כדי לנהל תוספים.</translation> <translation id="3644896802912593514">רוחב</translation> <translation id="3646789916214779970">איפוס לנושא ברירת המחדל</translation> <translation id="3648348069317717750">המערכת זיהתה את <ph name="USB_DEVICE_NAME" /></translation> @@ -2062,7 +2060,6 @@ <translation id="4172051516777682613">הצג תמיד</translation> <translation id="4175737294868205930">אחסון קבוע</translation> <translation id="4176463684765177261">מושבת</translation> -<translation id="4180684688621252156">שירות הדפסה</translation> <translation id="4180788401304023883">למחוק את אישור CA של "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">שפות</translation> @@ -2088,6 +2085,7 @@ <translation id="42137655013211669">הגישה למשאב זה נאסרה על-ידי השרת.</translation> <translation id="4215350869199060536">אופס, יש בשם סמלים לא חוקיים!</translation> <translation id="4215448920900139318">מגבה <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">הכתבה</translation> <translation id="4225397296022057997">בכל האתרים</translation> <translation id="4235200303672858594">כל המסך</translation> <translation id="4235813040357936597">הוסף חשבון עבור <ph name="PROFILE_NAME" /></translation> @@ -2156,7 +2154,7 @@ <translation id="4345703751611431217">חוסר תאימות של תוכנה: למידע נוסף</translation> <translation id="4348766275249686434">תעד שגיאות</translation> <translation id="4350019051035968019">לא ניתן לרשום את המכשיר הזה לדומיין שאליו שייך החשבון שלך מפני שהמכשיר מסומן לניהול על ידי דומיין אחר.</translation> -<translation id="4354266305752237763">הגנה על עצמך ועל המכשיר מפני אתרים מסוכנים (גלישה בטוחה)</translation> +<translation id="4354266305752237763">הגנה מפני אתרים שעלולים לסכן אותך או את המכשיר (גלישה בטוחה)</translation> <translation id="4356334633973342967">או ציין מנהל התקן משלך:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">הותקן מפני שיש תוספים התלויים בו.</translation> @@ -2200,6 +2198,7 @@ <translation id="4425149324548788773">האחסון שלי</translation> <translation id="4430019312045809116">עוצמת קול</translation> <translation id="4430369329743628066">הסימנייה נוספה</translation> +<translation id="4434045419905280838">חלונות קופצים והפניות אוטומטיות</translation> <translation id="443454694385851356">דור קודם (לא מאובטח)</translation> <translation id="443464694732789311">המשך</translation> <translation id="443475966875174318">עדכון או הסרה של אפליקציות לא תואמות</translation> @@ -2243,7 +2242,7 @@ <translation id="4514542542275172126">הגדר משתמש חדש בפיקוח</translation> <translation id="451515744433878153">הסר</translation> <translation id="4518677423782794009">האם Chrome קורס, מציג דפי פתיחה חריגים, מודעות לא צפויות או סרגלי כלים שאי אפשר להיפטר מהם או שמשנים באופן כלשהו את חוויית הגלישה? ייתכן שתוכל לפתור את הבעיה באמצעות הפעלה של Chrome Cleanup Tool.</translation> -<translation id="4518928191942891293">מפעיל מאגר בתוך Termina VM.</translation> +<translation id="4518928191942891293">הפעלת מאגר בתוך Termina VM.</translation> <translation id="4520385623207007473">קובצי Cookie בשימוש</translation> <translation id="452039078290142656">מכשירים בלתי ידועים של <ph name="VENDOR_NAME" /></translation> <translation id="4522570452068850558">פרטים</translation> @@ -2941,8 +2940,8 @@ <translation id="555746285996217175">נעילה / הפעלה</translation> <translation id="5557991081552967863">ה-Wi-Fi ימשיך לפעול בזמן שינה</translation> <translation id="5558129378926964177">הת&קרב</translation> -<translation id="5558446705802335921">בודק אתרים שאליהם נכנסת וקבצים שהורדת כדי לחפש התנהגות או תוכן בעייתיים, כמו דיוג או תוכנות זדוניות</translation> -<translation id="5559719557406102971">מפעיל את Termina VM.</translation> +<translation id="5558446705802335921">בדיקת אתרים שאליהם נכנסת וקבצים שהורדת כדי לחפש התנהגות או תוכן בעייתיים, כמו דיוג או תוכנות זדוניות</translation> +<translation id="5559719557406102971">הפעלת Termina VM.</translation> <translation id="55601339223879446">שנה את גבולות שולחן העבודה שלך בצג</translation> <translation id="5562781907504170924">הכרטיסייה הזו מחוברת להתקן Bluetooth.</translation> <translation id="5565871407246142825">כרטיסי אשראי</translation> @@ -3147,7 +3146,7 @@ <translation id="5863445608433396414">הפעל תכונות ניפוי באגים</translation> <translation id="5864471791310927901">חיפוש DHCP נכשל</translation> <translation id="586567932979200359">אתה מפעיל את <ph name="PRODUCT_NAME" /> מתמונת הדיסק שלו. התקנתו במחשב מאפשרת לך להפעיל אותו ללא תמונת הדיסק, ומבטיחה שיישאר מעודכן.</translation> -<translation id="5865733239029070421">שולח דוחות קריסה וסטטיסטיקת שימוש אל Google באופן אוטומטי</translation> +<translation id="5865733239029070421">שליחת דוחות קריסה וסטטיסטיקת שימוש אל Google באופן אוטומטי</translation> <translation id="5866557323934807206">נקה הגדרות אלה לביקורים עתידיים</translation> <translation id="5866840822086176774">חזק מאוד</translation> <translation id="5867841422488265304">יש להזין ביטוי לחיפוש או כתובת אינטרנט</translation> @@ -3271,6 +3270,7 @@ <translation id="6075907793831890935">החלפת נתונים עם המכשיר בשם <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">כלול את צילום המסך הזה</translation> <translation id="6077131872140550515">הסרה מרשימת הרשתות המועדפות</translation> +<translation id="6078323886959318429">הוספת קיצור דרך</translation> <translation id="6078752646384677957">יש לבדוק את עוצמת הקול למיקרופון ולאודיו.</translation> <translation id="6080515710685820702">האם זהו מחשב משותף? כדאי לפתוח חלון גלישה בסתר.</translation> <translation id="6080689532560039067">בדוק את שעת המערכת</translation> @@ -3372,7 +3372,7 @@ <translation id="6237816943013845465">הגדרה זו מאפשרת לך לקבוע את רזולוציית המסך</translation> <translation id="6238923052227198598">המשך הצגת ההודעה האחרונה במסך הנעילה</translation> <translation id="6239558157302047471">טען מחדש את ה&מסגרת</translation> -<translation id="6240004034869232531">מבטל התקנה...</translation> +<translation id="6240004034869232531">ההתקנה מתבטלת...</translation> <translation id="6241530762627360640">פרטי גישה של מכשירי Bluetooth המותאמים למערכת שלך ומגלים מכשירי Bluetooth קרובים.</translation> <translation id="6243280677745499710">מוגדר עכשיו</translation> <translation id="6243774244933267674">השרת אינו זמין</translation> @@ -3479,7 +3479,6 @@ <translation id="6406303162637086258">בצע הדמיה של הפעלת דפדפן מחדש</translation> <translation id="6406506848690869874">סנכרן</translation> <translation id="6408118934673775994">לקרוא ולשנות את הנתונים שלך ב-<ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> וב-<ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">חלונות קופצים</translation> <translation id="6410257289063177456">קובצי תמונה</translation> <translation id="6410328738210026208">החלף ערוץ ובצע Powerwash</translation> <translation id="6410668567036790476">הוספת מנוע חיפוש</translation> @@ -3687,7 +3686,6 @@ <translation id="6708242697268981054">מקור:</translation> <translation id="6709357832553498500">התחבר באמצעות <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">הקודם</translation> -<translation id="6716704051134091292">כלי להמרת PDF</translation> <translation id="6718273304615422081">דוחס...</translation> <translation id="671928215901716392">מסך נעילה</translation> <translation id="67211069045302358">לאפס את ההגדרות של האתר הזה?</translation> @@ -3812,7 +3810,6 @@ <translation id="6920989436227028121">פתח ככרטיסייה רגילה</translation> <translation id="6922128026973287222">חסוך בנתונים וגלוש מהר יותר באמצעות חוסך הנתונים (Data Saver) של Google. לחץ לקריאת מידע נוסף.</translation> <translation id="6923132443355966645">גלילה / לחיצה</translation> -<translation id="6929555043669117778">המשך לחסום חלונות קופצים</translation> <translation id="6929835486583850209">קרתה שגיאה בהתקנה של <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">משך החיבור</translation> <translation id="6934241953272494177">סורק את מכשיר אחסון המדיה... @@ -3896,6 +3893,7 @@ <translation id="7052237160939977163">שלח נתוני מעקב אחר ביצועים</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">חסום</translation> +<translation id="7055152154916055070">הפניה אוטומטית נחסמה:</translation> <translation id="7056526158851679338">&בדוק מכשירים</translation> <translation id="7059858479264779982">הגדר להפעלה אוטומטית</translation> <translation id="7059893117020417984">כדי לגלוש באופן פרטי, יש ללחוץ על תפריט סמל הנקודות ולפתוח חלון גלישה בסתר</translation> @@ -3922,10 +3920,9 @@ <translation id="7088434364990739311">המערכת לא הצליחה להפעיל את בדיקת העדכונים (קוד שגיאה <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - פתיחה ויצירה של קובצי ZIP באפליקציה 'קבצים'.</translation> <translation id="7088674813905715446">המכשיר הזה הועבר למצב 'ללא הקצאה' על ידי מנהל המערכת. על מנת להפעיל אותו עבור הרשמה, בקש ממנהל המערכת להעביר את המכשיר למצב המתנה.</translation> -<translation id="7092106376816104">חריגים של חלונות קופצים</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">החלפת נתונים עם המכשירים ששמותיהם: <ph name="HOSTNAMES" /></translation> -<translation id="7096406577040705016">החלפת המצב של הזכוכית המגדלת במסך מלא</translation> +<translation id="7096406577040705016">הפעלת הזכוכית המגדלת במסך מלא או ביטולה</translation> <translation id="7098447629416471489">כאן יופיעו מנועי חיפוש אחרים ששמרת</translation> <translation id="7099337801055912064">לא ניתן לטעון קובץ PPD גדול. הגודל המקסימלי הוא 250 kB.</translation> <translation id="7100897339030255923">נבחרו <ph name="COUNT" /> פריטים</translation> @@ -4136,7 +4133,6 @@ <translation id="744341768939279100">צור פרופיל חדש</translation> <translation id="7444726222535375658">כניסה אל Hangouts Meet</translation> <translation id="7444983668544353857">השבת <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">חלונות קופצים חסומים</translation> <translation id="7453008956351770337">על ידי בחירת מדפסת זו, אתה מעניק לתוסף הבא את ההרשאה לגשת למדפסת:</translation> <translation id="7453467225369441013">תבוצע יציאה שלך מרוב האתרים. לא תבוצע יציאה מחשבון Google שלך.</translation> <translation id="7456142309650173560">מפתח</translation> @@ -4253,6 +4249,7 @@ <translation id="7617366389578322136">מתחבר אל <ph name="DEVICE_NAME" /></translation> <translation id="7622114377921274169">בטעינה.</translation> <translation id="7624337243375417909">caps lock מושבת</translation> +<translation id="7625568159987162309">הצגת הרשאות ונתונים המאוחסנים באתרים שונים</translation> <translation id="7627790789328695202">אופס, <ph name="FILE_NAME" /> כבר קיים. שנה את השם שלו ונסה שוב.</translation> <translation id="7628127343934101653">פתח קובצי PDF באפליקציה המוגדרת כברירת מחדל כמציג קובצי PDF.</translation> <translation id="7629827748548208700">כרטיסייה: <ph name="TAB_NAME" /></translation> @@ -4574,10 +4571,12 @@ <translation id="806812017500012252">סדר מחדש לפי כותרת</translation> <translation id="8068253693380742035">גע כדי להיכנס</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">קובצי Linux</translation> <translation id="8071432093239591881">הדפסה כתמונה</translation> <translation id="8072988827236813198">הצמד כרטיסיות</translation> <translation id="8074127646604999664">התר לאתרים שנסגרו לאחרונה לסיים שליחה וקבלה של נתונים</translation> <translation id="8075191520954018715">מצב זיכרון</translation> +<translation id="8076492880354921740">כרטיסיות</translation> <translation id="8076835018653442223">מנהל המערכת ביטל את הגישה לקבצים מקומיים במכשיר שלך</translation> <translation id="8077684120002777443">שם משתמש (למשל, user@example.com)</translation> <translation id="8077816382010018681">כותרת ההודעה של תכונת QU תופיע כאן</translation> @@ -4862,7 +4861,6 @@ <translation id="8569682776816196752">לא נמצאו יעדים</translation> <translation id="8569764466147087991">בחר קובץ לפתיחה</translation> <translation id="8571213806525832805">מארבעת השבועות האחרונים</translation> -<translation id="8571613743082299268">הפניה לאתר נחסמה</translation> <translation id="8574990355410201600">יש להתיר תמיד השמעת צלילים ב-<ph name="HOST" /></translation> <translation id="8578639784464423491">המגבלה היא 99 אותיות</translation> <translation id="8579285237314169903">מבצע סנכרון ל-<ph name="NUMBER_OF_FILES" /> פריטים...</translation> @@ -4907,7 +4905,7 @@ <translation id="8651585100578802546">אלץ טעינה מחדש של דף זה</translation> <translation id="8652400352452647993">שגיאת 'ארוז תוסף'</translation> <translation id="8652487083013326477">לחצן בחירה של טווח דפים</translation> -<translation id="8653292045957015650">החלפת המצב של הזכוכית המגדלת בזמן עגינה</translation> +<translation id="8653292045957015650">הפעלת הזכוכית המגדלת בזמן עגינה וביטולה</translation> <translation id="8654151524613148204">הקובץ גדול מכדי שהמחשב שלך יוכל לטפל בו. מצטערים.</translation> <translation id="8655295600908251630">ערוץ</translation> <translation id="8655319619291175901">אופס. משהו השתבש.</translation> @@ -5140,7 +5138,7 @@ <translation id="8995603266996330174">מנוהל על ידי <ph name="DOMAIN" /></translation> <translation id="8996526648899750015">הוסף חשבון...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> -<translation id="8998788483361403036">יוצר את תמונת הדיסק.</translation> +<translation id="8998788483361403036">יצירה של תמונת הדיסק.</translation> <translation id="9003647077635673607">אפשר בכל האתרים</translation> <translation id="9003677638446136377">בדוק שוב</translation> <translation id="9003704114456258138">תדר</translation> @@ -5176,7 +5174,7 @@ <translation id="9042893549633094279">פרטיות ואבטחה</translation> <translation id="904451693890288097">הזן סיסמה עבור "<ph name="DEVICE_NAME" />":</translation> <translation id="9044646465488564462">ההתחברות לרשת נכשלה: <ph name="DETAILS" /></translation> -<translation id="9045430190527754450">שולח אל Google את כתובת האינטרנט של הדף שאליו ניסית להגיע</translation> +<translation id="9045430190527754450">שליחת כתובת האינטרנט של הדף שאליו ניסית להגיע אל Google</translation> <translation id="9046895021617826162">החיבור נכשל</translation> <translation id="9050666287014529139">משפט-סיסמה</translation> <translation id="9052208328806230490">רשמת את המדפסות שלך ב-<ph name="CLOUD_PRINT_NAME" /> באמצעות החשבון <ph name="EMAIL" /></translation> @@ -5194,7 +5192,6 @@ <translation id="9065203028668620118">ערוך</translation> <translation id="9066782832737749352">טקסט לדיבור</translation> <translation id="9070219033670098627">החלף משתמש</translation> -<translation id="907148966137935206">אל תרשה לאף אתר להציג חלונות קופצים (מומלץ)</translation> <translation id="9071637495340542136">התקנת '<ph name="APP_NAME" />' מתבצעת...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> מכניס אותך באופן אוטומטי לאפליקציות ולאתרים כשירים באמצעות סיסמאות ששמרת.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 677a598d..91141256 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">ブックマークに追加...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> 件の項目を削除しています...</translation> <translation id="1048286738600630630">ディスプレイ</translation> +<translation id="1049743911850919806">シークレット モード</translation> <translation id="1049795001945932310">言語設定(&L)</translation> <translation id="1049926623896334335">Word ドキュメント</translation> <translation id="1054153489933238809">元の画像を新しいタブで開く(&I)</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">同期サーバーがビジーです。しばらくしてからもう一度お試しください。</translation> <translation id="1784849162047402014">端末のディスク空き領域が少なくなっています</translation> <translation id="1786636458339910689">チームドライブ</translation> -<translation id="1789575671122666129">ポップアップ</translation> <translation id="1792619191750875668">拡張ディスプレイ</translation> <translation id="1793119619663054394">このパソコンから「<ph name="PROFILE_NAME" />」とそれに関連付けられているすべての Chrome データを削除してもよろしいですか?この操作は元に戻せません。</translation> <translation id="1794791083288629568">フィードバックを送信して問題解決に協力する。</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">新しい監視対象ユーザーを作成した後は、設定をいつでも、どのデバイスからでも <ph name="MANAGEMENT_URL" /> で管理できます。</translation> <translation id="1984642098429648350">ウィンドウを右に固定</translation> <translation id="1987139229093034863">別のユーザーに切り替えます。</translation> +<translation id="1987317783729300807">アカウント</translation> <translation id="1989112275319619282">閲覧</translation> <translation id="1992397118740194946">未設定</translation> <translation id="1994173015038366702">サイトの URL</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">入力されたタブ インデックスが無効です。</translation> <translation id="2154484045852737596">カードを編集</translation> <translation id="2154710561487035718">URL をコピー</translation> -<translation id="2155931291251286316"><ph name="HOST" /> のポップアップを常に許可する</translation> <translation id="215753907730220065">全画面表示を終了</translation> <translation id="2157875535253991059">現在このページは全画面表示です。</translation> <translation id="216169395504480358">Wi-Fi を追加...</translation> @@ -1184,7 +1184,6 @@ <translation id="2799223571221894425">再起動</translation> <translation id="2803375539583399270">PIN を入力</translation> <translation id="2805646850212350655">Microsoft 暗号化ファイル システム</translation> -<translation id="2805707493867224476">すべてのサイトに対してポップアップ表示を許可する</translation> <translation id="2805756323405976993">アプリ</translation> <translation id="2807517655263062534">ダウンロードしたファイルがここに表示されます</translation> <translation id="2809586584051668049">、他 <ph name="NUMBER_ADDITIONAL_DISABLED" /> 件</translation> @@ -1618,7 +1617,6 @@ <translation id="347919930506963698">Chrome をさらに活用</translation> <translation id="3479552764303398839">後で</translation> <translation id="3480892288821151001">ウィンドウを左に固定</translation> -<translation id="3481915276125965083">このページの次のポップアップがブロックされました:</translation> <translation id="3484273680291419129">有害なソフトウェアを削除しています...</translation> <translation id="3484869148456018791">新しい証明書を取得</translation> <translation id="3487007233252413104">無名関数</translation> @@ -1724,7 +1722,6 @@ <translation id="3637682276779847508">正しい PIN ロック解除キーを入力できない場合、SIM カードは永久的に無効になります。</translation> <translation id="363903084947548957">次の入力方法</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> さんのアイテムとして「<ph name="EXTENSION_NAME" />」を追加しますか?</translation> -<translation id="3643225892037417978">ゲストユーザーは拡張機能の管理機能を使用できません。拡張機能を管理するにはログインしてください。</translation> <translation id="3644896802912593514">幅</translation> <translation id="3646789916214779970">デフォルトのテーマに戻す</translation> <translation id="3648348069317717750">「<ph name="USB_DEVICE_NAME" />」を検出しました</translation> @@ -2066,7 +2063,6 @@ <translation id="4172051516777682613">常に表示</translation> <translation id="4175737294868205930">永続的ストレージ</translation> <translation id="4176463684765177261">無効</translation> -<translation id="4180684688621252156">印刷サービス</translation> <translation id="4180788401304023883">CA 証明書「<ph name="CERTIFICATE_NAME" />」を削除しますか?</translation> <translation id="4181602000363099176">20 倍</translation> <translation id="4181841719683918333">言語</translation> @@ -3274,6 +3270,7 @@ <translation id="6075907793831890935">デバイス <ph name="HOSTNAME" /> とのデータ交換</translation> <translation id="6076448957780543068">このスクリーンショットを含める</translation> <translation id="6077131872140550515">優先ネットワークから削除</translation> +<translation id="6078323886959318429">ショートカットを追加</translation> <translation id="6078752646384677957">マイクと音声のレベルを確認してください。</translation> <translation id="6080515710685820702">共有のパソコンをお使いの場合は、シークレット ウィンドウをご活用ください。</translation> <translation id="6080689532560039067">システムの時刻の確認</translation> @@ -3482,7 +3479,6 @@ <translation id="6406303162637086258">ブラウザ再起動のシミュレート</translation> <translation id="6406506848690869874">同期</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />、<ph name="WEBSITE_3" /> 上にある自分のデータの読み取りと変更</translation> -<translation id="6409731863280057959">ポップアップ</translation> <translation id="6410257289063177456">画像ファイル</translation> <translation id="6410328738210026208">チャンネルを変更して Powerwash</translation> <translation id="6410668567036790476">検索エンジンの追加</translation> @@ -3690,7 +3686,6 @@ <translation id="6708242697268981054">保存元:</translation> <translation id="6709357832553498500">「<ph name="EXTENSIONNAME" />」を使用して接続</translation> <translation id="6710213216561001401">前へ</translation> -<translation id="6716704051134091292">PDF 変換</translation> <translation id="6718273304615422081">圧縮しています...</translation> <translation id="671928215901716392">画面をロック</translation> <translation id="67211069045302358">このサイトの設定をリセットしますか?</translation> @@ -3815,7 +3810,6 @@ <translation id="6920989436227028121">通常のタブとして開く</translation> <translation id="6922128026973287222">Google データセーバーを使うとデータの保存や閲覧が速くなります。クリックして詳細をご確認ください。</translation> <translation id="6923132443355966645">スクロール / クリック</translation> -<translation id="6929555043669117778">ポップアップを引き続きブロックする</translation> <translation id="6929835486583850209">「<ph name="APP_NAME" />」のインストール エラー...</translation> <translation id="6930242544192836755">接続時間</translation> <translation id="6934241953272494177">メディア デバイスをスキャンしています... @@ -3925,7 +3919,6 @@ <translation id="7088434364990739311">更新チェックを起動できませんでした(エラー コード <ph name="ERROR" />)。</translation> <translation id="7088561041432335295">Zip アーカイブ ツール - ファイルアプリ内で ZIP ファイルを開いたり作成したりできます。</translation> <translation id="7088674813905715446">このデバイスは、管理者によりプロビジョニングを解除されている状態です。このデバイスを登録できるようにするには、デバイスを待機状態にするよう管理者に依頼してください。</translation> -<translation id="7092106376816104">ポップアップの例外</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">デバイス <ph name="HOSTNAMES" /> とのデータ交換</translation> <translation id="7096406577040705016">拡大鏡(全画面)を切り替え</translation> @@ -4147,7 +4140,6 @@ <translation id="744341768939279100">新しいプロフィールを作成</translation> <translation id="7444726222535375658">ハングアウト Meet に進む</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> を無効にする</translation> -<translation id="7445682342344043969">ポップアップがブロックされました</translation> <translation id="7453008956351770337">このプリンタを選択すると、次の拡張機能にプリンタへのアクセスを許可することになります。</translation> <translation id="7453467225369441013">ほとんどのサイトからログアウトします。Google アカウントへのログイン状態は維持されます。</translation> <translation id="7456142309650173560">Dev</translation> @@ -4592,6 +4584,7 @@ <translation id="8072988827236813198">複数のタブを固定</translation> <translation id="8074127646604999664">最近閉じたサイトがデータの送受信を完了できるようにする</translation> <translation id="8075191520954018715">メモリの状態</translation> +<translation id="8076492880354921740">タブ</translation> <translation id="8076835018653442223">端末のローカル ファイルへのアクセスは管理者によって無効にされています</translation> <translation id="8077684120002777443">ユーザー名(例: user@example.com)</translation> <translation id="8077816382010018681">ロックのクイック解除機能の通知タイトルがここに表示されます</translation> @@ -4876,7 +4869,6 @@ <translation id="8569682776816196752">送信先が見つかりません</translation> <translation id="8569764466147087991">ファイルを選択して開く</translation> <translation id="8571213806525832805">過去 4 週間</translation> -<translation id="8571613743082299268">サイトへのリダイレクトがブロックされました</translation> <translation id="8574990355410201600"><ph name="HOST" /> の音声を常に許可する</translation> <translation id="8578639784464423491">99 文字までで指定してください</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> 個のアイテムを同期しています...</translation> @@ -5208,7 +5200,6 @@ <translation id="9065203028668620118">編集</translation> <translation id="9066782832737749352">テキスト読み上げ</translation> <translation id="9070219033670098627">ユーザーを切り替え</translation> -<translation id="907148966137935206">すべてのサイトのポップアップ表示を許可しない(推奨)</translation> <translation id="9071637495340542136">「<ph name="APP_NAME" />」をインストールしています...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> では、保存したパスワードを使って対象となるサイトとアプリへの自動ログインが行われます。</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 2a7c94c..73a2cd88 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">ಈ ಪುಟವನ್ನು ಬುಕ್ಮಾರ್ಕ್ ಮಾಡಿ...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> ಐಟಂಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="1048286738600630630">ಪ್ರದರ್ಶನಗಳು</translation> +<translation id="1049743911850919806">ಅದೃಶ್ಯ</translation> <translation id="1049795001945932310">&ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="1049926623896334335">Word ಡಾಕ್ಯುಮೆಂಟ್</translation> <translation id="1054153489933238809">ಹೊಸ ಟ್ಯಾಬ್ನಲ್ಲಿ ಮೂಲ &ಚಿತ್ರವನ್ನು ತೆರೆಯಿರಿ</translation> @@ -45,6 +46,8 @@ <translation id="1064835277883315402">ಖಾಸಗಿ ನೆಟ್ವರ್ಕ್ಗೆ ಸೇರ್ಪಡೆಗೊಳ್ಳಿ</translation> <translation id="1064912851688322329">ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ</translation> <translation id="1067048845568873861">ರಚಿಸಲಾಗಿದೆ</translation> +<translation id="1067291318998134776">Linux (ಬೀಟಾ)</translation> +<translation id="1067922213147265141">ಇತರ Google ಸೇವೆಗಳು</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ, Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸಿದೆ. @@ -178,6 +181,7 @@ <translation id="1260240842868558614">ತೋರಿಸಿ:</translation> <translation id="126710816202626562">ಅನುವಾದ ಭಾಷೆ:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">ವಿಳಾಸ ಪಟ್ಟಿ ಮತ್ತು ಹುಡುಕಾಟ ಬಾಕ್ಸ್ನಿಂದ ಕೆಲವು ಹುಡುಕಾಟಗಳನ್ನು ಮತ್ತು ಕೆಲವು ಕುಕೀಗಳನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಹುಡುಕಾಟ ಎಂಜಿನ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation> <translation id="1272079795634619415">ನಿಲ್ಲಿಸಿ</translation> <translation id="1272978324304772054">ಈ ಬಳಕೆದಾರನ ಖಾತೆಯು ಸಾಧನವು ದಾಖಲಾಗಿರುವ ಡೊಮೇನ್ಗೆ ಸಂಬಂಧಿಸಿಲ್ಲ. ನೀವು ವಿಭಿನ್ನ ಡೊಮೆನ್ ಅನ್ನು ದಾಖಲಿಸಲು ಬಯಸುವುದಾದರೆ ನೀವು ಮೊದಲು ಮರುಪ್ರಾಪ್ತಿಯ ಸಾಧನದ ಮೂಲಕ ಹೋಗುವ ಅವಶ್ಯಕತೆ ಇದೆ.</translation> <translation id="1274977772557788323">Adobe Flash Player ಸಂಗ್ರಹಣೆ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> @@ -521,7 +525,6 @@ <translation id="1782924894173027610">ಸಿಂಕ್ ಸರ್ವರ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ, ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="1784849162047402014">ಸಾಧನದ ಡಿಸ್ಕ್ ಸ್ಥಳಾವಕಾಶ ಕಡಿಮೆ ಇದೆ</translation> <translation id="1786636458339910689">ತಂಡದ ಡ್ರೈವ್ಗಳು</translation> -<translation id="1789575671122666129">ಪಾಪ್ಅಪ್ಗಳು</translation> <translation id="1792619191750875668">ವಿಸ್ತರಿಸಲಾದ ಪ್ರದರ್ಶನ</translation> <translation id="1793119619663054394">"<ph name="PROFILE_NAME" />" ಮತ್ತು ಈ ಕಂಪ್ಯೂಟರ್ನೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರವ ಎಲ್ಲ Chrome ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಇದನ್ನು ರದ್ದು ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="1794791083288629568">ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡುವುದಕ್ಕಾಗಿ ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ.</translation> @@ -643,6 +646,7 @@ <translation id="1983959805486816857">ನೀವು ಒಬ್ಬ ಹೊಸ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿದ ನಂತರ, ನೀವು <ph name="MANAGEMENT_URL" /> ನಲ್ಲಿ ಯಾವುದೇ ಸಾಧನದಿಂದ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು.</translation> <translation id="1984642098429648350">ವಿಂಡೋ ಬಲಕ್ಕೆ ಡಾಕ್ ಮಾಡಿ</translation> <translation id="1987139229093034863">ಬೇರೆ ಬಳಕೆದಾರರಿಗೆ ಬದಲಿಸಿ.</translation> +<translation id="1987317783729300807">ಖಾತೆಗಳು</translation> <translation id="1989112275319619282">ಬ್ರೌಸ್ ಮಾಡಿ</translation> <translation id="1992397118740194946">ಹೊಂದಿಸಿಲ್ಲ</translation> <translation id="1994173015038366702">ಸೈಟ್ URL</translation> @@ -744,7 +748,6 @@ <translation id="2151576029659734873">ಅಮಾನ್ಯ ಟ್ಯಾಬ್ ಸೂಚಿಕೆಯನ್ನು ನಮೂದಿಸಲಾಗಿದೆ.</translation> <translation id="2154484045852737596">ಕಾರ್ಡ್ ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="2154710561487035718">URL ನಕಲಿಸಿ</translation> -<translation id="2155931291251286316"><ph name="HOST" /> ನಿಂದ ಪಾಪ್-ಅಪ್ಗಳನ್ನು ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation> <translation id="215753907730220065">ಪೂರ್ಣಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ</translation> <translation id="2157875535253991059">ಈ ಪುಟವು ಇದೀಗ ಪೂರ್ಣ ಪರದೆಯಾಗಿದೆ.</translation> <translation id="216169395504480358">ವೈ-ಫೈ ಸೇರಿಸಿ...</translation> @@ -794,6 +797,7 @@ <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" ಫೋಲ್ಡರ್ ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">ಇಂದಿನ ಡೂಡಲ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ</translation> <translation id="2231238007119540260">ನೀವು ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅಳಿಸಿದರೆ, ನೀವು ಸಾಮಾನ್ಯ ಭದ್ರತೆ ಪರಿಶೀಲನೆಗಳನ್ನು ಆ ಸರ್ವರ್ಗಾಗಿ ನೀವು ಮರುಸಂಗ್ರಹಿಸುತ್ತೀರಿ ಮತ್ತು ಅದು ಮಾನ್ಯ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸುವುದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ.</translation> +<translation id="2232379019872353004">ಸಿಸ್ಟಂ ಕುರಿತಾದ ಕೆಲವು ಮಾಹಿತಿ ಮತ್ತು ಪುಟದ ವಿಷಯವನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation> <translation id="2232876851878324699">ಫೈಲ್ ಆಮದು ಮಾಡದೆ ಇರುವಂತಹ ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಒಳಗೊಂಡಿದೆ:</translation> <translation id="2233502537820838181">&ಹೆಚ್ಚಿನ ಮಾಹಿತಿ</translation> <translation id="2238379619048995541">ಆವರ್ತನ ಸ್ಥಿತಿಯ ಡೇಟಾ</translation> @@ -879,6 +883,7 @@ <translation id="2359808026110333948">ಮುಂದುವರಿಸು</translation> <translation id="236141728043665931">ಯಾವಾಗಲೂ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation> <translation id="2365507699358342471">ಕ್ಲಿಪ್ಬೋರ್ಡ್ಗೆ ನಕಲಿಸಿರುವ ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ಈ ಸೈಟ್ ವೀಕ್ಷಿಸಬಹುದು.</translation> +<translation id="2366463953911599217">ದೋಷ: <ph name="APP_NAME" /> ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation> <translation id="2367199180085172140">ಫೈಲ್ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಸೇರಿಸಿ</translation> <translation id="2367972762794486313">ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ತೋರಿಸು</translation> <translation id="2371076942591664043">&ಮುಗಿಸಿದಾಗ ತೆರೆಯಿರಿ</translation> @@ -930,6 +935,7 @@ <translation id="2462724976360937186">ಪ್ರಮಾಣದಪತ್ರದ ಪ್ರಾಧಿಕಾರ ಕೀ ID</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ಸೇರಿಸಲಾಗಿದೆ</translation> <translation id="2464089476039395325">HTTP ಪ್ರಾಕ್ಸಿ</translation> +<translation id="2468205691404969808">ನೀವು ಆ ಪುಟಗಳಿಗೆ ಭೇಟಿ ನೀಡದಿದ್ದರೂ, ನಿಮ್ಮ ಆದ್ಯತೆಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಕುಕೀಗಳನ್ನು ಬಳಸಿ</translation> <translation id="2468902267404883140">ನಿಮ್ಮ ಫೋನ್ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನೀವು ಆನ್ ಮಾಡಿರುವಂತಹ ಮತ್ತು ಸುಲಭವಾಗಿ ಲಭ್ಯ ಇರುವ ಹೊಂದಾಣಿಕೆಯ Android ಫೋನ್ ಬಳಸಲು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. <a>ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</a></translation> <translation id="2470702053775288986">ಬೆಂಬಲವಿರದ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="2473195200299095979">ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಿ</translation> @@ -1091,6 +1097,7 @@ <translation id="2686759344028411998">ಯಾವುದೇ ಲೋಡ್ ಮಾಡಿದ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಕಂಡು ಹಿಡಿಯಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="2688196195245426394">ಸರ್ವರ್ನೊಂದಿಗೆ ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸುವಾಗ ದೋಷ: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">ಭಾಷೆ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು</translation> +<translation id="2690824726518456119">Concierge ಸೇವೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ.</translation> <translation id="2691385045260836588">ಮಾದರಿ</translation> <translation id="2693176596243495071">ಓಹ್! ಅಪರಿಚಿತ ದೋಷ ಉಂಟಾಗಿದೆ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="2694026874607847549"> 1 ಕುಕೀ</translation> @@ -1168,7 +1175,6 @@ <translation id="2799223571221894425">ಮರುಪ್ರಾರಂಭಿಸು</translation> <translation id="2803375539583399270">ಪಿನ್ ನಮೂದಿಸಿ</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">ಪಾಪ್-ಅಪ್ಗಳನ್ನು ತೋರಿಸಲು ಎಲ್ಲಾ ಸೈಟ್ಗಳನ್ನು ಅನುಮತಿಸಿ</translation> <translation id="2805756323405976993">ಆಪ್ಸ್</translation> <translation id="2807517655263062534">ನೀವು ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್ಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ</translation> <translation id="2809586584051668049">ಮತ್ತು <ph name="NUMBER_ADDITIONAL_DISABLED" /> ಇನ್ನಷ್ಟು</translation> @@ -1415,6 +1421,7 @@ <translation id="3190558889382726167">ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಲಾಗಿದೆ</translation> <translation id="3192947282887913208">ಆಡಿಯೋ ಫೈಲ್ಗಳು</translation> <translation id="3194737229810486521">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಣೆ ಮಾಡಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ</translation> +<translation id="3197054279257119376">Termina ಘಟಕವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ.</translation> <translation id="3199127022143353223">ಸರ್ವರ್ಗಳು</translation> <translation id="3202131003361292969">ಪಾಥ್</translation> <translation id="3202173864863109533">ಈ ಟ್ಯಾಬ್ನ ಆಡಿಯೋವನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ.</translation> @@ -1538,6 +1545,7 @@ <translation id="3405664148539009465">ಫಾಂಟ್ಗಳನ್ನು ಗ್ರಾಹಕೀಯಗೊಳಿಸಿ</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">ಬುಕ್ಮಾರ್ಕ್ಗಳ ಪಟ್ಟಿಯನ್ನು &ತೋರಿಸಿ</translation> +<translation id="3407837288045706722">ಗೌಪ್ಯತೆ, ಸುರಕ್ಷತೆ ಮತ್ತು ಡೇಟಾ ಸಂಗ್ರಹಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಹೆಚ್ಚಿನ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗಾಗಿ <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮತ್ತು ವೈಯಕ್ತೀಕರಣ<ph name="END_LINK" /> ನೋಡಿ</translation> <translation id="3412265149091626468">ಆಯ್ಕೆಗೆ ತೆರಳಿ</translation> <translation id="3413122095806433232">CA ನೀಡುವವರು: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">ತೆಗೆದುಹಾಕುವ ಮಾಧ್ಯಮದ ಸ್ವರೂಪಣೆಯು ಎಲ್ಲ ಡೇಟಾವನ್ನು ಅಳಿಸಿ ಹಾಕುತ್ತದೆ. ನೀವು ಇದನ್ನು ಮುಂದುವರಿಸಲು ಬಯಸುವಿರಾ?</translation> @@ -1599,7 +1607,6 @@ <translation id="347919930506963698">Chrome ಮೂಲಕ ಇನ್ನಷ್ಟು ಪಡೆಯಿರಿ</translation> <translation id="3479552764303398839">ಈಗ ಬೇಡ</translation> <translation id="3480892288821151001">ವಿಂಡೋದ ಎಡಕ್ಕೆ ಡಾಕ್ ಮಾಡಿ</translation> -<translation id="3481915276125965083">ಕೆಳಗಿನ ಪಾಪ್-ಅಪ್ಗಳನ್ನು ಈ ಪುಟದಲ್ಲಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ:</translation> <translation id="3484273680291419129">ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತಿದೆ...</translation> <translation id="3484869148456018791">ಹೊಸ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಪಡೆಯಿರಿ</translation> <translation id="3487007233252413104">ಅನಾಮಧೇಯ ಕಾರ್ಯ</translation> @@ -1615,6 +1622,7 @@ <translation id="3504135463003295723">ಗುಂಪು ಹೆಸರು:</translation> <translation id="3505030558724226696">ಸಾಧನ ಪ್ರವೇಶವನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಿ</translation> <translation id="3507421388498836150">"<ph name="EXTENSION_NAME" />" ಗೆ ಪ್ರಸ್ತುತ ಅನುಮತಿಗಳು</translation> +<translation id="3507547268929739059">Chromebook ನಿಂದ Linux ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation> <translation id="3507888235492474624">ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಮರು-ಸ್ಕ್ಯಾನ್ ಮಾಡಿ</translation> <translation id="3508920295779105875">ಮತ್ತೊಂದು ಫೋಲ್ಡರ್ ಆಯ್ಕೆ ಮಾಡಿ...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1704,7 +1712,6 @@ <translation id="3637682276779847508">ನೀವು ಸರಿಯಾದ ಪಿನ್ ಅನ್ಲಾಕ್ ಕೀಯನ್ನು ನಮೂದಿಸದಿದ್ದಲ್ಲಿ ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="363903084947548957">ಮುಂದಿನ ಇನ್ಪುಟ್ ವಿಧಾನ</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> ಬಳಕೆದಾರರಿಗೆ "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸುವುದೇ?</translation> -<translation id="3643225892037417978">ವಿಸ್ತರಣೆ ನಿರ್ವಹಣೆಯು ಅತಿಥಿ ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿಲ್ಲ. ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="3644896802912593514">ಅಗಲ</translation> <translation id="3646789916214779970">ಡಿಫಾಲ್ಟ್ ಥೀಮ್ಗೆ ಮರುಹೊಂದಿಸು</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ಪತ್ತೆ ಮಾಡಲಾಗಿದೆ</translation> @@ -1807,6 +1814,7 @@ <translation id="379422718204375917">ನಿಮ್ಮ ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು Smart Lock ಬಳಸಿ</translation> <translation id="3796648294839530037">ಮೆಚ್ಚಿನ ನೆಟ್ವರ್ಕ್ಗಳು:</translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> ಗಾಗಿ '<ph name="SEARCH_TERMS" />' &ಹುಡುಕಿ</translation> +<translation id="3798133693323981089">ಹುಡುಕಾಟಗಳು ಮತ್ತು ವೆಬ್ ವಿಳಾಸಗಳನ್ನು ಸ್ವಯಂಪೂರ್ಣಗೊಳಿಸಿ</translation> <translation id="3798449238516105146">ಆವೃತ್ತಿ</translation> <translation id="3799201711591988491">{COUNT,plural, =0{&ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ}=1{&ಬುಕ್ಮಾರ್ಕ್ ತರೆಯಿರಿ}one{&ಎಲ್ಲಾ (#) ಅನ್ನು ತೆರೆಯಿರಿ}other{&ಎಲ್ಲಾ (#) ಅನ್ನು ತೆರೆಯಿರಿ}}</translation> <translation id="3800806661949714323">ಎಲ್ಲಾ ತೋರಿಸು (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> @@ -1981,6 +1989,7 @@ <translation id="4065876735068446555">ನೀವು ಬಳಸುತ್ತಿರುವ ನೆಟ್ವರ್ಕ್ (<ph name="NETWORK_ID" />) ನ ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ಭೇಟಿ ನೀಡಬೇಕಾದ ಅಗತ್ಯವಿದೆ.</translation> <translation id="4068506536726151626">ಈ ಪುಟವು ನಿಮ್ಮ ಸ್ಥಾನದ ನಿಗಾ ಇರಿಸುತ್ತಿರುವ ಈ ಕೆಳಗಿನ ಸೈಟ್ಗಳ ಮೂಲಾಂಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:</translation> <translation id="4068776064906523561">ಉಳಿಸಿದ ಬೆರಳಚ್ಚುಗಳು</translation> +<translation id="407173827865827707">ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: ಸೈನ್ ಇನ್ ದೋಷ</translation> <translation id="4074900173531346617">ಇಮೇಲ್ ಸಹಿ ಮಾಡುವವರ ಪ್ರಮಾಣಪತ್ರ</translation> <translation id="407520071244661467">ಮಾಪಕ</translation> @@ -2012,6 +2021,7 @@ <translation id="4109135793348361820">ವಿಂಡೋವನ್ನು <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) ಗೆ ಸರಿಸಿ</translation> <translation id="4110559665646603267">ಫೋಕಸ್ ಶೆಲ್ಫ್</translation> <translation id="4110895898888439383">ಅಧಿಕ ಕಾಂಟ್ರಾಸ್ಟ್ ಮೋಡ್ನಲ್ಲಿ ವೆಬ್ ಅನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ</translation> +<translation id="4112774766611964959">ಇದು <ph name="APP_NAME" /> ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಿಂದ ಎಲ್ಲಾ Linux ಡೇಟಾ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಮುಂದುವರಿಯುವುದು ಖಚಿತವೇ?</translation> <translation id="4114360727879906392">ಹಿಂದಿನ ವಿಂಡೋ</translation> <translation id="4115002065223188701">ನೆಟ್ವರ್ಕ್ ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿದೆ</translation> <translation id="4115080753528843955">ರಕ್ಷಿತ ವಿಷಯಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ದೃಢೀಕರಿಸುವ ಉದ್ದೇಶಕ್ಕಾಗಿ ಕೆಲವು ವಿಷಯ ಸೇವೆಗಳು ಅನನ್ಯ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಬಳಸುತ್ತವೆ</translation> @@ -2040,7 +2050,6 @@ <translation id="4172051516777682613">ಯಾವಾಗಲೂ ತೋರಿಸು</translation> <translation id="4175737294868205930">ಶಾಶ್ವತವಾಗಿರುವ ಸಂಗ್ರಹಣೆ</translation> <translation id="4176463684765177261">ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation> -<translation id="4180684688621252156">ಮುದ್ರಿಸುವ ಸೇವೆ</translation> <translation id="4180788401304023883">CA ಪ್ರಮಾಣಪತ್ರ "<ph name="CERTIFICATE_NAME" />" ವನ್ನು ಅಳಿಸುವುದೆ?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">ಭಾಷೆಗಳು</translation> @@ -2065,6 +2074,7 @@ <translation id="42137655013211669">ಈ ಸಂಪನ್ಮೂಲಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಸರ್ವರ್ ಮೂಲಕ ನಿಷೇಧಿಸಲಾಗಿದೆ.</translation> <translation id="4215350869199060536">ಓಹ್, ಹೆಸರಿನಲ್ಲಿ ಅಕ್ರಮ ಸಂಕೇತಗಳಿವೆ!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> ಬ್ಯಾಕಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> +<translation id="4225397296022057997">ಎಲ್ಲಾ ಸೈಟ್ಗಳಲ್ಲಿ</translation> <translation id="4235200303672858594">ಸಂಪೂರ್ಣ ಪರದೆ</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> ಗಾಗಿ ಖಾತೆಯನ್ನು ಸೇರಿಸು</translation> <translation id="4235965441080806197">ಸೈನ್ ಇನ್ ಮಾಡುವುದನ್ನು ರದ್ದುಮಾಡಿ</translation> @@ -2132,6 +2142,7 @@ <translation id="4345703751611431217">ಸಾಫ್ಟ್ವೇರ್ ಅನನುರೂಪತೆ: ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation> <translation id="4348766275249686434">ದೋಷಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ</translation> <translation id="4350019051035968019">ಈ ಸಾಧನವನ್ನು ನಿಮ್ಮ ಖಾತೆಗೆ ಸಂಬಂಧಿಸಿದ ಡೊಮೇನ್ಗೆ ಸೇರಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ಈ ಸಾಧನವನ್ನು ನಿರ್ವಹಿಸಲು ಬೇರೊಂದು ಡೊಮೇನ್ ಮೂಲಕ ಗುರುತಿಸಲಾಗಿದೆ.</translation> +<translation id="4354266305752237763">ಅಪಾಯಕಾರಿ ಸೈಟ್ಗಳಿಂದ ನಿಮ್ಮನ್ನು ಮತ್ತು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಸಂರಕ್ಷಿಸಿ (ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್)</translation> <translation id="4356334633973342967">ಅಥವಾ ನಿಮ್ಮ ಸ್ವಂತ ಡ್ರೈವರ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿ:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">ಅವಲಂಬಿತ ವಿಸ್ತರಣೆ(ಗಳು) ಯಿಂದಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ.</translation> @@ -2140,6 +2151,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> ವಿಂಡೋವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.</translation> <translation id="4364830672918311045">ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ</translation> <translation id="4365673000813822030">ಓಹ್, ಸಿಂಕ್ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ.</translation> +<translation id="4370373819607756384">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು <ph name="BEGIN_LINK" />ಭಾಷೆಗಳು<ph name="END_LINK" /> ಎಂಬಲ್ಲಿ ನಿಯಂತ್ರಿಸಿ</translation> <translation id="4370975561335139969">ನೀವು ನಮೂದಿಸಿದ ಇಮೇಲ್ ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ</translation> <translation id="437184764829821926">ಸುಧಾರಿತ ಫಾಂಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="4372884569765913867">1x1</translation> @@ -2194,6 +2206,7 @@ <translation id="4462159676511157176">ಕಸ್ಟಮ್ ಹೆಸರು ಸರ್ವರ್ಗಳು</translation> <translation id="4467100756425880649">Chrome ವೆಬ್ ಸ್ಟೋರ್ ಗ್ಯಾಲರಿ</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" /> ವಿಸ್ತರಿಸಿ</translation> +<translation id="447252321002412580">Chrome ನ ವೈಶಿಷ್ಟ್ಯಗಳು ಹಾಗೂ ಕೆಲಸ ನಿರ್ವಹಣೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation> <translation id="4474155171896946103">ಎಲ್ಲಾ ಟ್ಯಾಬ್ಗಳನ್ನು ಬುಕ್ಮಾರ್ಕ್ ಮಾಡು...</translation> <translation id="4475552974751346499">ಡೌನ್ಲೋಡ್ಗಳು ಹುಡುಕಿ</translation> <translation id="4476590490540813026">ಕ್ರೀಡಾಪಟು</translation> @@ -2216,6 +2229,7 @@ <translation id="4514542542275172126">ಹೊಸ ಮೇಲ್ಚಿಚಾರಣೆ ಬಳಕೆದಾರರನ್ನು ಹೊಂದಿಸಿ</translation> <translation id="451515744433878153">ತೆಗೆದುಹಾಕು</translation> <translation id="4518677423782794009">Chrome ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತಿದೆಯೇ, ಕಿರಿಕಿರಿಯುಂಟುಮಾಡುವ ಸ್ಟಾರ್ಟಪ್ ಪುಟಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆಯೇ, ಪರಿಕರ ಪಟ್ಟಿಗಳು, ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗದಂಥ ಅನಿರೀಕ್ಷಿತ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆಯೇ ಅಥವಾ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನುಭವವನ್ನು ಬದಲಾಯಿಸುತ್ತಿದೆಯೇ? Chrome ಸ್ವಚ್ಛತಾ ಸಾಧನವನ್ನು ರನ್ ಮಾಡುವ ಮೂಲಕ ಈ ಎಲ್ಲಾ ಸಮಸ್ಯೆಗಳಿಗೆ ನೀವು ಪರಿಹಾರ ಕಂಡುಕೊಳ್ಳಬಹುದು.</translation> +<translation id="4518928191942891293">Termina VM ಒಳಗಿನ ಕಂಟೈನರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ.</translation> <translation id="4520385623207007473">ಬಳಕೆಯಲ್ಲಿರುವ ಕುಕೀಗಳು</translation> <translation id="452039078290142656"><ph name="VENDOR_NAME" /> ರಿಂದ ಅಪರಿಚಿತ ಸಾಧನಗಳು</translation> <translation id="4522570452068850558">ವಿವರಗಳು</translation> @@ -2264,6 +2278,7 @@ <translation id="4589268276914962177">ಹೊಸ ಟರ್ಮಿನಲ್</translation> <translation id="4590324241397107707">ಡೇಟಾಬೇಸ್ ಸಂಗ್ರಹಣೆ</translation> <translation id="4593021220803146968"><ph name="URL" /> ಗೆ &ಹೋಗಿ</translation> +<translation id="459505086032485258">Google ಸೇವೆಗಳ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="4595560905247879544">ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳನ್ನು ಮ್ಯಾನೇಜರ್ (<ph name="CUSTODIAN_NAME" />) ರಿಂದ ಮಾತ್ರ ಮಾರ್ಪಡಿಸಬಹುದು.</translation> <translation id="4596295440756783523">ಈ ಸರ್ವರ್ಗಳನ್ನು ಗುರುತಿಸುವಂತಹ ಫೈಲ್ನಲ್ಲಿನ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನೀವು ಹೊಂದಿರುವಿರಿ</translation> <translation id="4598556348158889687">ಸಂಗ್ರಹಣೆ ನಿರ್ವಹಣೆ</translation> @@ -2481,6 +2496,7 @@ <translation id="4917385247580444890">ಪ್ರಬಲ</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> ಅವರು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯ ಜೊತೆಗೆ ಸಂವಹಿಸಲು ಬಯಸುತ್ತಾರೆ</translation> <translation id="4918086044614829423">ಸಮ್ಮತಿಸು</translation> +<translation id="4920350943031252905">ನಿಮ್ಮ Chromebook ನಲ್ಲಿ Linux ಪರಿಕರಗಳು, ಎಡಿಟರ್ಗಳು ಮತ್ತು IDE ಗಳನ್ನು ರನ್ ಮಾಡಿ</translation> <translation id="4920887663447894854">ಈ ಪುಟದಲ್ಲಿ ನಿಮ್ಮ ಸ್ಥಾನವನ್ನು ನಿಗಾ ಇರಿಸದಂತೆ ಮುಂದಿನ ಸೈಟ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ:</translation> <translation id="492299503953721473">Android ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ತೆಗೆದುಹಾಕು</translation> <translation id="4923279099980110923">ಹೌದು, ನಾನು ಸಹಾಯ ಮಾಡಬೇಕೆಂದಿದ್ದೇನೆ</translation> @@ -2644,6 +2660,7 @@ <translation id="5186650237607254032">ನೀವು ಸಮೀಪದಲ್ಲಿರುವಾಗಲೇ ನಿಮ್ಮ ಫೋನ್ ಪರದೆಯ ಅನ್ಲಾಕ್ ಆಫ್ ಆಗುವಂತೆ ಅದನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ. ಹಾಗೆ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಶೀಘ್ರಗತಿಯಲ್ಲಿ ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು ಹಾಗೂ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನದಲ್ಲಿನ ಅತ್ಯುತ್ತಮ Smart Lock ನ ಅನುಭವವನ್ನು ನಿಮ್ಮದಾಗಿಸಿಕೊಳ್ಳಬಹುದು.</translation> <translation id="5187295959347858724">ಇದೀಗ ನೀವು<ph name="SHORT_PRODUCT_NAME" /> ಗೆ ಸೈನ್ ಇನ್ ಆಗಿರುವಿರಿ. ನಿಮ್ಮ Google ಖಾತೆ ಜೊತೆ ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇತರೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">ಬ್ರೌಸಿಂಗ್ ಮತ್ತು Chrome ಅನ್ನು ಸುಧಾರಿಸಲು Google ನೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation> <translation id="5204967432542742771">ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಿ</translation> <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" ಅಳಿಸುವುದೇ?</translation> <translation id="520621735928254154">ಪ್ರಮಾಣಪತ್ರದ ಆಮದು ದೋಷ</translation> @@ -2681,6 +2698,7 @@ <translation id="5254368820972107711">ತೆಗೆದುಹಾಕಲಾದ ಫೈಲ್ಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="52550593576409946">ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="5255315797444241226">ನೀವು ನಮೂದಿಸಿದ ಪಾಸ್ಫ್ರೇಸ್ ತಪ್ಪಾಗಿದೆ.</translation> +<translation id="5256861893479663409">ಎಲ್ಲಾ ಸೈಟ್ಗಳಲ್ಲಿ</translation> <translation id="5260508466980570042">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಇಮೇಲ್ ಅಥವಾ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="5261683757250193089">ವೆಬ್ಸ್ಟೋರ್ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />ಆಫ್ಲೈನ್ನಲ್ಲಿದ್ದರೂ ಸಹ, ಎಲ್ಲಿಂದಬೇಕಾದರೂ ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ.<ph name="MARKUP_2" /> @@ -2906,6 +2924,8 @@ <translation id="555746285996217175">ಲಾಕ್ / ಪವರ್</translation> <translation id="5557991081552967863">ನಿದ್ರೆ ಸಮಯದಲ್ಲಿ ವೈ-ಫೈ ಆನ್ ಇರಿಸಿ</translation> <translation id="5558129378926964177">ಝೂಮ್ &ಇನ್</translation> +<translation id="5558446705802335921">ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್ಗಳು ಮತ್ತು ಡೌನ್ಲೋಡ್ ಮಾಡುವ ಫೈಲ್ಗಳಲ್ಲಿ ಫಿಶಿಂಗ್ ಅಥವಾ ಮಾಲ್ವೇರ್ನಂತಹ ಅಪಾಯಕಾರಿ ವರ್ತನೆ ಇದೆಯೇ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ</translation> +<translation id="5559719557406102971">Termina VM ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ.</translation> <translation id="55601339223879446">ಪ್ರದರ್ಶನದ ಒಳಗೆ ನಿಮ್ಮ ಡೆಸ್ಕ್ಟಾಪ್ನ ಎಲ್ಲೆಗಳನ್ನು ಸರಿಹೊಂದಿಸಿ</translation> <translation id="5562781907504170924">ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಬ್ಲೂಟೂತ್ ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ.</translation> <translation id="5565871407246142825">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ಗಳು</translation> @@ -3108,6 +3128,7 @@ <translation id="5863445608433396414">ಡೀಬಗ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="5864471791310927901">DHCP ಲುಕಪ್ ವಿಫಲವಾಗಿದೆ</translation> <translation id="586567932979200359">ನೀವು <ph name="PRODUCT_NAME" /> ಅನ್ನು ಅದರ ಡಿಸ್ಕ್ ಇಮೇಜ್ನಿಂದ ಚಾಲನೆ ಮಾಡುತ್ತಿರುವಿರಿ. ಅದನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಸ್ಥಾಪನೆ ಮಾಡಿದರೆ ಅದು ನಿಮಗೆ ಡಿಸ್ಕ್ ಇಮೇಜ್ ಇಲ್ಲದೆಯೆ ಚಾಲನೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಮತ್ತು ಆಗಿಂದಾಗ್ಗೆ ನವೀಕೃತಗೊಂಡಿದೆಯೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.</translation> +<translation id="5865733239029070421">ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಕ್ರ್ಯಾಶ್ ವರದಿಗಳನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುತ್ತದೆ</translation> <translation id="5866557323934807206">ಭವಿಷ್ಯದ ಭೇಟಿಗಳಿಗಾಗಿ ಈ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ</translation> <translation id="5866840822086176774">ತುಂಬಾ ಪ್ರಬಲವಾಗಿದೆ</translation> <translation id="5867841422488265304">ವೆಬ್ ವಿಳಾಸವನ್ನು ಹುಡುಕಿ ಅಥವಾ ಟೈಪ್ ಮಾಡಿ</translation> @@ -3158,6 +3179,7 @@ <translation id="5957613098218939406">ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು</translation> <translation id="5958529069007801266">ಮೇಲ್ವಿಚಾರಣೆಗೊಳಪಟ್ಟ ಬಳಕೆದಾರರು</translation> <translation id="5959471481388474538">ನೆಟ್ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲ</translation> +<translation id="595959584676692139">ಈ ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಲು ಪುಟವನ್ನು ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="5963026469094486319">ಥೀಮ್ಗಳನ್ನು ಪಡೆ</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> ಪೀಕ್)</translation> <translation id="5965661248935608907">ನೀವು ಮುಖಪುಟ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಅಥವಾ ಓಮ್ನಿಬಾಕ್ಸ್ನಿಂದ ಹುಡುಕಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation> @@ -3230,6 +3252,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> ಹೆಸರಿನ ಸಾಧನದೊಂದಿಗೆ ಡೇಟಾ ವಿನಿಮಯ ಮಾಡಿ</translation> <translation id="6076448957780543068">ಈ ಸ್ಕ್ರೀನ್ಶಾಟ್ ಸೇರಿಸಿ</translation> <translation id="6077131872140550515">ಆದ್ಯತೆಯಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation> +<translation id="6078323886959318429">ಶಾರ್ಟ್ಕಟ್ ಸೇರಿಸಿ</translation> <translation id="6078752646384677957">ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್ ಮತ್ತು ಆಡಿಯೋ ಹಂತಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.</translation> <translation id="6080515710685820702">ಹಂಚಿದ ಕಂಪ್ಯೂಟರ್ ಬಳಸಲಾಗುತ್ತಿದೆಯೇ? ಅದೃಶ್ಯ ವಿಂಡೋವನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="6080689532560039067">ನಿಮ್ಮ ಸಿಸ್ಟಂ ಸಮಯವನ್ನು ಪರಿಶೀಲಿಸಿ</translation> @@ -3331,6 +3354,7 @@ <translation id="6237816943013845465">ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ರೆಸಲ್ಯೂಶನ್ ಸರಿಹೊಂದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ</translation> <translation id="6238923052227198598">ಲಾಕ್ ಪರದೆಯ ಮೇಲೆ ಇತ್ತೀಚಿನ ಟಿಪ್ಪಣಿ ಇರಿಸಿ</translation> <translation id="6239558157302047471">ರೀಲೋಡ್ &ಫ್ರೇಮ್</translation> +<translation id="6240004034869232531">ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> <translation id="6241530762627360640">ನಿಮ್ಮ ಸಿಸ್ಟಂ ಜೊತೆಗೆ ಜೋಡಿಯಾಗಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳ ಕುರಿತ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಿ ಮತ್ತು ಹತ್ತಿರದ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಿ.</translation> <translation id="6243280677745499710">ಪ್ರಸ್ತುತವಾಗಿ ಹೊಂದಿಸಿರುವುದು</translation> <translation id="6243774244933267674">ಸರ್ವರ್ ಲಭ್ಯವಿಲ್ಲ</translation> @@ -3435,7 +3459,6 @@ <translation id="6406303162637086258">ಬ್ರೌಸರ್ ಮರುಪ್ರಾರಂಭ ಸಿಮ್ಯುಲೇಟ್ ಮಾಡು</translation> <translation id="6406506848690869874">ಸಿಂಕ್</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, ಮತ್ತು <ph name="WEBSITE_3" /> ನಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಓದಿ ಮತ್ತು ಬದಲಾಯಿಸಿ</translation> -<translation id="6409731863280057959">ಪಾಪ್-ಅಪ್ಗಳು</translation> <translation id="6410257289063177456">ಇಮೇಜ್ ಫೈಲ್ಗಳು</translation> <translation id="6410328738210026208">ಚಾನಲ್ ಬದಲಿಸಿ ಮತ್ತು ಪವರ್ವಾಷ್ ಮಾಡಿ</translation> <translation id="6410668567036790476">ಹುಡುಕಾಟ ಎಂಜಿನ್ ಸೇರಿಸಿ</translation> @@ -3564,6 +3587,7 @@ <translation id="6596745167571172521">Caps Lock ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="6596816719288285829">IP ವಿಳಾಸ</translation> <translation id="6597017209724497268">ಮಾದರಿಗಳು</translation> +<translation id="6597332018579308636">ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಿ</translation> <translation id="659934686219830168">ನೀವು ಈ ಪುಟವನ್ನು ತೊರೆದ ನಂತರ ಸಿಂಕ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ</translation> <translation id="6602353599068390226">ಮತ್ತೊಂದು ಡಿಸ್ಪ್ಲೇಗೆ ವಿಂಡೋವನ್ನು ಸರಿಸಿ</translation> <translation id="6602956230557165253">ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಎಡ ಮತ್ತು ಬಲ ಬಾಣದ ಕೀಲಿಗಳನ್ನು ಬಳಸಿ.</translation> @@ -3629,6 +3653,7 @@ <translation id="6690751852586194791">ಈ ಸಾಧನಕ್ಕೆ ಸೇರಿಸಲು ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರನ್ನು ಆಯ್ಕೆಮಾಡಿ.</translation> <translation id="6691331417640343772">ಸಿಂಕ್ ಆಗಿರುವ ಡೇಟಾವನ್ನು Google ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ನಿರ್ವಹಿಸಿ</translation> <translation id="6691936601825168937">&ಮುಂದೆ ತನ್ನಿ</translation> +<translation id="6697492270171225480">ಯಾವುದೇ ಪುಟವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಅಂತಹುದೇ ಪುಟಗಳ ಸಲಹೆಯನ್ನು ತೋರಿಸಿ</translation> <translation id="6698810901424468597"><ph name="WEBSITE_1" /> ಮತ್ತು <ph name="WEBSITE_2" /> ನಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಓದಿ ಮತ್ತು ಬದಲಾಯಿಸಿ</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> ಬಿತ್ತರಿಸು</translation> <translation id="6701535245008341853">ಪ್ರೊಫೈಲ್ ಅನ್ನು ಪಡೆಯುವುದಿಲ್ಲ.</translation> @@ -3639,7 +3664,6 @@ <translation id="6708242697268981054">ಮೂಲ:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> ಬಳಸುವ ಮೂಲಕ ಸಂಪರ್ಕಪಡಿಸು</translation> <translation id="6710213216561001401">ಹಿಂದೆ</translation> -<translation id="6716704051134091292">PDF ಪರಿವರ್ತಕ</translation> <translation id="6718273304615422081">ಜಿಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> <translation id="671928215901716392">ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಿ</translation> <translation id="67211069045302358">ಈ ಸೈಟ್ಗಾಗಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಹೊಂದಿಸಬೇಕೆ?</translation> @@ -3764,7 +3788,6 @@ <translation id="6920989436227028121">ದಿನನಿತ್ಯದ ಟ್ಯಾಬ್ ಅಂತೆ ತೆರೆಯಿರಿ</translation> <translation id="6922128026973287222">Google ಡೇಟಾ ಉಳಿಸುವಿಕೆ ಬಳಸುವ ಮೂಲಕ ಡೇಟಾವನ್ನು ಉಳಿಸಿ ಮತ್ತು ವೇಗವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಿ. ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> <translation id="6923132443355966645">ಸ್ಕ್ರಾಲ್ / ಕ್ಲಿಕ್</translation> -<translation id="6929555043669117778">ಪಾಪ್-ಅಪ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ...</translation> <translation id="6930242544192836755">ಅವಧಿ</translation> <translation id="6934241953272494177">ನಿಮ್ಮ ಮಾಧ್ಯಮ ಸಾಧನವನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ... <ph name="LINE_BREAK1" /> <ph name="FILE_COUNT" /> ಕಂಡುಬಂದಿವೆ</translation> @@ -3873,9 +3896,9 @@ <translation id="7088434364990739311">ಅಪ್ಡೇಟ್ ಪರಿಶೀಲನೆಯು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ (ದೋಷ ಕೋಡ್ <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip ಆರ್ಕೈವರ್ - ಫೈಲ್ಗಳ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ZIP ಫೈಲ್ಗಳನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಪ್ಯಾಕ್ ಮಾಡಿ .</translation> <translation id="7088674813905715446">ನಿರ್ವಾಹಕರಿಂದ ಈ ಸಾಧನವನ್ನು ಆದ್ಯತೆ ಇಲ್ಲದ ಸ್ಥಿತಿಯಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ. ನೋಂದಣಿಗಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಾಧನವನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಬಾಕಿ ಸ್ಥಿತಿಯಲ್ಲಿರಿಸುವಂತೆ ತಿಳಿಸಿ.</translation> -<translation id="7092106376816104">ಪಾಪ್-ಅಪ್ ವಿನಾಯಿತಿಗಳು</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">ಈ ಹೆಸರಿನ ಸಾಧನಗಳೊಂದಿಗೆ ಡೇಟಾ ವಿನಿಮಯ ಮಾಡಿ: <ph name="HOSTNAMES" /></translation> +<translation id="7096406577040705016">ಪೂರ್ಣಪರದೆ ವರ್ಧಕವನ್ನು ಟಾಗಲ್ ಮಾಡಿ</translation> <translation id="7098447629416471489">ಇತರೆ ಉಳಿಸಿದ ಹುಡುಕಾಟ ಎಂಜಿನ್ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation> <translation id="7099337801055912064">ದೊಡ್ಡ ಗಾತ್ರದ PPD ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಗರಿಷ್ಠ ಗಾತ್ರ 250 kB ಆಗಿದೆ.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> ಐಟಂಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ</translation> @@ -4090,7 +4113,6 @@ <translation id="744341768939279100">ಹೊಸ ಪ್ರೊಫೈಲ್ ರಚಿಸಿ</translation> <translation id="7444726222535375658">Hangouts ಮೀಟ್ಗಾಗಿ ಮುಂದುವರಿಯಿರಿ</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation> -<translation id="7445682342344043969">ಪಾಪ್-ಅಪ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> <translation id="7453008956351770337">ಈ ಪ್ರಿಂಟರ್ ಆಯ್ಕೆ ಮಾಡುವ ಮೂಲಕ ನಿಮ್ಮ ಪ್ರಿಂಟರ್ ಪ್ರವೇಶಕ್ಕೆ ನೀವು ಈ ಮುಂದಿನ ವಿಸ್ತರಣೆ ಅನುಮತಿಯನ್ನು ನೀಡುತ್ತಿರುವಿರಿ:</translation> <translation id="7453467225369441013">ನಿಮ್ಮನ್ನು ಬಹುತೇಕ ಸೈಟ್ಗಳಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ಆದರೆ ನಿಮ್ಮನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡುವುದಿಲ್ಲ.</translation> <translation id="7456142309650173560">dev</translation> @@ -4327,6 +4349,24 @@ <translation id="782057141565633384">ವೀಡಿಯೋ ವಿಳಾಸವನ್ನು ನ&ಕಲಿಸಿ</translation> <translation id="7821462174190887129"><ph name="FILE_COUNT" /> ಕಂಡುಬಂದಿವೆ. <ph name="LINE_BREAK1" /> ನಿಮ್ಮ Google ಡ್ರೈವ್ ಕೋಟಾ ಸಾಕಷ್ಟು ದೊಡ್ಡದಾಗಿಲ್ಲ. ಹೆಚ್ಚುವರಿ <ph name="FILE_SIZE" /> ಅಗತ್ಯವಿದೆ. <ph name="LINE_BREAK2" /> ಕೆಲವು ಫೋಟೋಗಳನ್ನು ಆಯ್ಕೆಮಾಡುವ ಮೂಲಕ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="782590969421016895">ಪ್ರಸ್ತುತ ಪುಟಗಳನ್ನು ಬಳಸಿ</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />ಡೀಬಗ್ ಮಾಡುವ ವೈಶಿಷ್ಟ್ಯಗಳು<ph name="END_H3" /> + <ph name="BR" /> + ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಕಸ್ಟಮ್ ಕೋಡ್ ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು, ನಿಮ್ಮ Chrome OS ಸಾಧನದಲ್ಲಿ ನೀವು ಡೀಬಗ್ ಮಾಡುವಿಕೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು. ಇದು ನಿಮಗೆ:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />OS ಫೈಲ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ rootfs ಪರಿಶೀಲನೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ + <ph name="LIST_ITEM" />ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶ ಪಡೆಯಲು <ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" /> ನಂತಹ ಪರಿಕರಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ, ಪ್ರಮಾಣಿತ ಪರೀಕ್ಷಾ ಕೀಗಳನ್ನು ಬಳಸಿ SSH ಪ್ರವೇಶವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ + <ph name="LIST_ITEM" />USB ಡ್ರೈವ್ನಿಂದ OS ಚಿತ್ರವನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ, USB ಯಿಂದ ಬೂಟ್ ಮಾಡುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ + <ph name="LIST_ITEM" />ಸಾಧನಕ್ಕೆ ಹಸ್ತಚಾಲಿತವಾಗಿ SSH ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಡೆವ್ ಮತ್ತು ರೂಟ್ ಲಾಗಿನ್ ಪಾಸ್ವರ್ಡ್ ಎರಡನ್ನೂ ಕಸ್ಟಮ್ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸುತ್ತದೆ + <ph name="END_LIST" /> + <ph name="BR" /> + ಸಕ್ರಿಯಗೊಳಿಸಿದ ಬಳಿಕ, ಪವರ್ವಾಶ್ ಮಾಡಿದರೂ ಅಥವಾ ಸಂಸ್ಥೆಯ ಮೂಲಕ ನಿರ್ವಹಿಸುವ ಸಾಧನದಲ್ಲಿ ಡೇಟಾ ಅಳಿಸಿಹಾಕಿದರೂ ಹೆಚ್ಚಿನ ಡೀಬಗ್ಗಿಂಗ್ ವೈಶಿಷ್ಟ್ಯಗಳು ಸಕ್ರಿಯವಾಗಿಯೇ ಇರುತ್ತವೆ. ಎಲ್ಲಾ ಡೀಬಗ್ಗಿಂಗ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, Chrome OS ಮರುಪಡೆದುಕೊಳ್ಳುವಿಕೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ತಿಗೊಳಿಸಿ (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + ಡೀಬಗ್ಗಿಂಗ್ ವೈಶಿಷ್ಟ್ಯಗಳ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ಇಲ್ಲಿ ನೋಡಿ:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />ಸೂಚನೆ:<ph name="END_BOLD" /> ಪ್ರಕ್ರಿಯೆ ನಡೆಯುವಾಗ ಸಿಸ್ಟಂ ರೀಬೂಟ್ ಆಗುತ್ತದೆ.</translation> <translation id="7829298379596169484">ಆಡಿಯೊ ಇನ್ಪುಟ್ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="7831491651892296503">ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರ್ ಮಾಡುವಲ್ಲಿ ದೋಷ</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4390,6 +4430,7 @@ <translation id="7912080627461681647">ಸರ್ವರ್ನಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಸೈನ್ ಔಟ್ ಮಾಡಿ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಆಗಿರಿ.</translation> <translation id="7912883689016444961">ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation> <translation id="7915471803647590281">ದಯವಿಟ್ಟು ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸುವ ಮುಂಚಿತವಾಗಿ ಏನು ನಡೆಯುತ್ತಿದೆ ಎಂದು ನಮಗೆ ತಿಳಿಸಿ.</translation> +<translation id="7916556741383518510">ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ</translation> <translation id="792514962475806987">ಡಾಕ್ ಮಾಡಿರುವುದಕ್ಕೆ ಝೂಮ್ ಮಟ್ಟ:</translation> <translation id="7925247922861151263">AAA ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" /> ಗಾಗಿ ಕಾಯುತ್ತಿದೆ...</translation> @@ -4430,6 +4471,7 @@ <translation id="7978412674231730200">ಖಾಸಗಿ ಕೀಲಿ</translation> <translation id="7979036127916589816">ಸಿಂಕ್ ದೋಷ</translation> <translation id="7980084013673500153">ಸ್ವತ್ತು ID: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">ವೇಗವಾದ ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಹುಡುಕಾಟಕ್ಕಾಗಿ ಪುಟಗಳನ್ನು ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="7982083145464587921">ಈ ದೋಷವನ್ನು ಸರಿಪಡಿಸಲು ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation> <translation id="7982283708762922719">ಎತ್ತರ</translation> <translation id="7982789257301363584">ನೆಟ್ವರ್ಕ್</translation> @@ -4503,6 +4545,7 @@ <translation id="8072988827236813198">ಪಿನ್ ಟ್ಯಾಬ್ಗಳು</translation> <translation id="8074127646604999664">ಡೇಟಾ ಕಳುಹಿಸುವುದನ್ನು ಮತ್ತು ಸ್ವೀಕರಿಸುವುದನ್ನು ಮುಕ್ತಾಯಗೊಳಿಸಲು ಇತ್ತೀಚಿಗೆ ಮುಚ್ಚಲಾದ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಿ</translation> <translation id="8075191520954018715">ಮೆಮೊರಿ ಸ್ಥಿತಿ</translation> +<translation id="8076492880354921740">ಟ್ಯಾಬ್ಗಳು</translation> <translation id="8076835018653442223">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸ್ಥಳೀಯ ಫೈಲ್ಗಳಿಗೆ ಪ್ರವೇಶಿಸುವುದನ್ನು ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation> <translation id="8077684120002777443">ಬಳಕೆದಾರಹೆಸರು (ಉ.ದಾ. user@example.com)</translation> <translation id="8077816382010018681">QU ವೈಶಿಷ್ಟ್ಯ ಅಧಿಸೂಚನೆ ಶೀರ್ಷಿಕೆ ಇಲ್ಲಿದೆ</translation> @@ -4788,7 +4831,6 @@ <translation id="8569682776816196752">ಯಾವುದೇ ಗಮ್ಯಸ್ಥಾನಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="8569764466147087991">ತೆರೆಯಲು ಫೈಲ್ವೊಂದನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation> <translation id="8571213806525832805">ಕಳೆದ 4 ವಾರಗಳು</translation> -<translation id="8571613743082299268">ಈ ಸೈಟ್ಗೆ ಮರುನಿರ್ದೇಶಿಸುವುದನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> <translation id="8574990355410201600"><ph name="HOST" /> ನಲ್ಲಿ ಧ್ವನಿಗೆ ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation> <translation id="8578639784464423491">99 ಅಕ್ಷರಗಳನ್ನು ಮೀರಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> ಐಟಂಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> @@ -4833,6 +4875,7 @@ <translation id="8651585100578802546">ಈ ಪುಟವನ್ನು ಮರುಲೋಡ್ ಮಾಡಲು ಒತ್ತಾಯಿಸಿ</translation> <translation id="8652400352452647993">ಪ್ಯಾಕ್ ವಿಸ್ತರಣೆ ದೋಷ</translation> <translation id="8652487083013326477">ಪುಟ ವ್ಯಾಪ್ತಿಯ ರೇಡಿಯೋ ಬಟನ್</translation> +<translation id="8653292045957015650">ಡಾಕ್ ಮಾಡಿರುವ ವರ್ಧಕವನ್ನು ಟಾಗಲ್ ಮಾಡಿ</translation> <translation id="8654151524613148204">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗೆ ನಿಭಾಯಿಸಲಾಗದಷ್ಟು ದೊಡ್ಡದಾಗಿದೆ ನಿಮ್ಮ ಫೈಲ್. ಕ್ಷಮಿಸಿ.</translation> <translation id="8655295600908251630">ಚಾನಲ್</translation> <translation id="8655319619291175901">ಓಹ್, ಯಾವುದೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ.</translation> @@ -4924,6 +4967,7 @@ <translation id="8757803915342932642">Google ಮೇಘ ಸಾಧನಗಳಲ್ಲಿ ಸಾಧನ</translation> <translation id="8759408218731716181">ಬಹು ಸೈನ್-ಇನ್ ಹೊಂದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="8759753423332885148">ಮತ್ತಷ್ಟು ತಿಳಿಯಿರಿ.</translation> +<translation id="8762207669047572135">ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಿ</translation> <translation id="8767621466733104912">ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ Chrome ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="8770406935328356739">ವಿಸ್ತರಣೆ ಮೂಲ ಡೈರೆಕ್ಟರಿ</translation> <translation id="8770507190024617908">ಜನರನ್ನು ನಿರ್ವಹಿಸು</translation> @@ -5053,7 +5097,9 @@ <translation id="8976520271376534479">ಈ ಪುಟದಲ್ಲಿ ಫ್ಲ್ಯಾಶ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation> <translation id="8977811652087512276">ತಪ್ಪು ಪಾಸ್ವರ್ಡ್ ಅಥವಾ ದೋಷಯುಕ್ತ ಫೈಲ್</translation> <translation id="8978154919215542464">ಆನ್- ಎಲ್ಲವನ್ನೂ ಸಿಂಕ್ ಮಾಡಿ</translation> +<translation id="897939795688207351"><ph name="ORIGIN" /> ನಲ್ಲಿ</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ಕ್ರ್ಯಾಶ್ ಮಾಡಲಾಗಿದೆ</translation> +<translation id="8983677657449185470">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation> <translation id="8986362086234534611">ಮರೆತುಹೋಗು</translation> <translation id="8986494364107987395">ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳನ್ನು ಮತ್ತು ಕ್ರಾಶ್ ವರದಿಗಳನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರವಾನಿಸು</translation> <translation id="8987927404178983737">ತಿಂಗಳು</translation> @@ -5062,6 +5108,7 @@ <translation id="8995603266996330174"><ph name="DOMAIN" /> ನಿಂದ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> <translation id="8996526648899750015">ಖಾತೆಯನ್ನು ಸೇರಿಸು...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">ಡಿಸ್ಕ್ ಚಿತ್ರವನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ.</translation> <translation id="9003647077635673607">ಎಲ್ಲ ವೆಬ್ಸೈಟ್ಗಳಲ್ಲಿ ಅನುಮತಿಸಿ</translation> <translation id="9003677638446136377">ಮತ್ತೆ ಪರಿಶೀಲಿಸು</translation> <translation id="9003704114456258138">ಫ್ರೀಕ್ವೆನ್ಸಿ</translation> @@ -5097,6 +5144,7 @@ <translation id="9042893549633094279">ಗೌಪ್ಯತೆ ಮತ್ತು ಭದ್ರತೆ</translation> <translation id="904451693890288097">ದಯವಿಟ್ಟು "<ph name="DEVICE_NAME" />" ಗಾಗಿ PIN ಅನ್ನು ನಮೂದಿಸಿ:</translation> <translation id="9044646465488564462">ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">ನೀವು Google ಗೆ ತಲುಪಿಸಲು ಬಯಸುವಂತಹ ಪುಟದ ವೆಬ್ ವಿಳಾಸವನ್ನು ಕಳುಹಿಸುತ್ತದೆ</translation> <translation id="9046895021617826162">ಸಂಪರ್ಕವು ವಿಫಲವಾಗಿದೆ</translation> <translation id="9050666287014529139">ಪಾಸ್ಫ್ರೇಸ್</translation> <translation id="9052208328806230490"><ph name="EMAIL" /> ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು <ph name="CLOUD_PRINT_NAME" /> ರೊಂದಿಗೆ ನಿಮ್ಮ ಪ್ರಿಂಟರ್ಗಳನ್ನು ನೀವು ನೋಂದಾಯಿಸಿರುವಿರಿ</translation> @@ -5114,7 +5162,6 @@ <translation id="9065203028668620118">ಎಡಿಟ್</translation> <translation id="9066782832737749352">ಪಠ್ಯದಿಂದ ಧ್ವನಿ</translation> <translation id="9070219033670098627">ವ್ಯಕ್ತಿಯನ್ನು ಬದಲಾಯಿಸಿ</translation> -<translation id="907148966137935206">ಯಾವುದೇ ಸೈಟ್ ಪಾಪ್-ಅಪ್ಗಳನ್ನು ತೋರಿಸಲು ಅನುಮತಸಬೇಡ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ…</translation> <translation id="9072550133391925347">ನೀವು ಉಳಿಸಲಾದ ಪಾಸ್ವರ್ಡ್ಗಳೊಂದಿಗೆ ಅರ್ಹರಾಗಿರುವ ಸೈಟ್ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ <ph name="PASSWORD_MANAGER_BRAND" /> ನಿಮ್ಮನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡುತ್ತದೆ.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index cf02884..8529c376 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">현재 페이지를 북마크에 추가...</translation> <translation id="1047956942837015229"><ph name="COUNT" />개 항목 삭제 중...</translation> <translation id="1048286738600630630">디스플레이</translation> +<translation id="1049743911850919806">시크릿</translation> <translation id="1049795001945932310">언어 설정(&L)</translation> <translation id="1049926623896334335">Word 문서</translation> <translation id="1054153489933238809">새 탭에서 원본 이미지 열기</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">동기화 서버가 다른 작업 중입니다. 잠시 후 다시 시도해 주세요.</translation> <translation id="1784849162047402014">기기에 디스크 저장 공간 부족</translation> <translation id="1786636458339910689">팀 드라이브</translation> -<translation id="1789575671122666129">팝업</translation> <translation id="1792619191750875668">확장 디스플레이</translation> <translation id="1793119619663054394">'<ph name="PROFILE_NAME" />'님을 삭제하고 관련된 모든 Chrome 데이터를 이 컴퓨터에서 삭제하시겠습니까? 실행 후 취소할 수 없습니다.</translation> <translation id="1794791083288629568">이 문제를 해결하는 데 도움이 되도록 의견 전송</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">새로운 관리 대상 사용자를 만든 후에는 언제 어떤 기기를 사용하든 <ph name="MANAGEMENT_URL" /> 페이지에서 설정을 관리할 수 있습니다.</translation> <translation id="1984642098429648350">창을 오른쪽에 고정</translation> <translation id="1987139229093034863">다른 사용자로 전환합니다.</translation> +<translation id="1987317783729300807">계정</translation> <translation id="1989112275319619282">찾아보기</translation> <translation id="1992397118740194946">설정 안됨</translation> <translation id="1994173015038366702">사이트 URL</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">잘못된 탭 색인을 입력했습니다.</translation> <translation id="2154484045852737596">카드 수정</translation> <translation id="2154710561487035718">URL 복사</translation> -<translation id="2155931291251286316"><ph name="HOST" />의 팝업을 항상 허용</translation> <translation id="215753907730220065">전체화면 종료</translation> <translation id="2157875535253991059">페이지가 현재 전체화면으로 전환되었습니다.</translation> <translation id="216169395504480358">Wi-Fi 추가</translation> @@ -1184,7 +1184,6 @@ <translation id="2799223571221894425">다시 시작</translation> <translation id="2803375539583399270">PIN 입력</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">모든 사이트에서 팝업 표시 허용</translation> <translation id="2805756323405976993">앱</translation> <translation id="2807517655263062534">다운로드한 파일이 여기에 표시됩니다.</translation> <translation id="2809586584051668049">외 <ph name="NUMBER_ADDITIONAL_DISABLED" />개</translation> @@ -1618,7 +1617,6 @@ <translation id="347919930506963698">Chrome 최대한 활용하기</translation> <translation id="3479552764303398839">나중에</translation> <translation id="3480892288821151001">창을 왼쪽에 고정</translation> -<translation id="3481915276125965083">이 페이지에서 다음 팝업이 차단되었습니다.</translation> <translation id="3484273680291419129">유해한 소프트웨어 삭제 중...</translation> <translation id="3484869148456018791">새로운 인증서 받기</translation> <translation id="3487007233252413104">익명의 함수</translation> @@ -1724,7 +1722,6 @@ <translation id="3637682276779847508">정확한 PIN 잠금 해제 키를 입력하지 않으면 SIM 카드가 영구적으로 사용 중지됩니다.</translation> <translation id="363903084947548957">다음 입력 방법</translation> <translation id="3640214691812501263"><ph name="USER_NAME" />님에 대하여 '<ph name="EXTENSION_NAME" />'을(를) 추가할까요?</translation> -<translation id="3643225892037417978">게스트 사용자는 확장 프로그램을 관리할 수 없습니다. 확장 프로그램을 관리하려면 로그인하세요.</translation> <translation id="3644896802912593514">너비</translation> <translation id="3646789916214779970">테마 기본값으로 다시 설정</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> 발견됨</translation> @@ -2065,7 +2062,6 @@ <translation id="4172051516777682613">항상 표시</translation> <translation id="4175737294868205930">영구 저장소</translation> <translation id="4176463684765177261">사용 중지</translation> -<translation id="4180684688621252156">인쇄 서비스</translation> <translation id="4180788401304023883">CA 인증서 '<ph name="CERTIFICATE_NAME" />'을(를) 삭제하겠습니까?</translation> <translation id="4181602000363099176">20배</translation> <translation id="4181841719683918333">언어</translation> @@ -3273,6 +3269,7 @@ <translation id="6075907793831890935">이름이 <ph name="HOSTNAME" />인 기기와 데이터 교환</translation> <translation id="6076448957780543068">이 스크린샷 포함</translation> <translation id="6077131872140550515">기본 네트워크에서 삭제</translation> +<translation id="6078323886959318429">바로가기 추가</translation> <translation id="6078752646384677957">마이크 및 오디오 음량을 확인하세요.</translation> <translation id="6080515710685820702">공유 컴퓨터를 사용 중이신가요? 시크릿 창에서 열어보세요.</translation> <translation id="6080689532560039067">시스템 시간 확인</translation> @@ -3481,7 +3478,6 @@ <translation id="6406303162637086258">브라우저 다시 시작 시뮬레이션</translation> <translation id="6406506848690869874">동기화</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" />의 데이터를 읽고 변경</translation> -<translation id="6409731863280057959">팝업</translation> <translation id="6410257289063177456">이미지 파일</translation> <translation id="6410328738210026208">채널 변경 및 Powerwash</translation> <translation id="6410668567036790476">검색 엔진 추가</translation> @@ -3689,7 +3685,6 @@ <translation id="6708242697268981054">출처:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" />을(를) 사용하여 연결</translation> <translation id="6710213216561001401">이전</translation> -<translation id="6716704051134091292">PDF 변환기</translation> <translation id="6718273304615422081">압축 중...</translation> <translation id="671928215901716392">화면 잠금</translation> <translation id="67211069045302358">이 사이트의 설정을 재설정하시겠습니까?</translation> @@ -3814,7 +3809,6 @@ <translation id="6920989436227028121">일반 탭으로 열기</translation> <translation id="6922128026973287222">Google 데이터 절약 모드를 사용하여 더 빠르게 데이터를 저장하고 탐색하세요. 자세히 알아보려면 클릭하세요.</translation> <translation id="6923132443355966645">스크롤/클릭</translation> -<translation id="6929555043669117778">팝업 계속 차단</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> 설치 중 오류 발생...</translation> <translation id="6930242544192836755">기간</translation> <translation id="6934241953272494177">미디어 기기 스캔 중... @@ -3924,7 +3918,6 @@ <translation id="7088434364990739311">업데이트 확인을 시작하지 못했습니다(오류 코드: <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - 파일 앱에서 ZIP 파일을 열고 압축합니다.</translation> <translation id="7088674813905715446">이 기기는 관리자에 의해 사용 중단 상태로 설정되었습니다. 기기를 등록에 사용하려면 관리자에게 기기를 대기 상태로 전환해 달라고 요청해야 합니다.</translation> -<translation id="7092106376816104">팝업 예외</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">이름이 <ph name="HOSTNAMES" />인 기기와 데이터 교환</translation> <translation id="7096406577040705016">전체화면 돋보기 전환</translation> @@ -4144,7 +4137,6 @@ <translation id="744341768939279100">새 프로필 만들기</translation> <translation id="7444726222535375658">행아웃 Meet으로 이동</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> 사용 중지</translation> -<translation id="7445682342344043969">팝업 차단됨</translation> <translation id="7453008956351770337">이 프린터를 선택하면 다음 확장 프로그램에 내 프린터에 액세스할 수 있는 권한을 부여하게 됩니다.</translation> <translation id="7453467225369441013">대부분의 사이트에서 로그아웃됩니다. Google 계정에서는 로그아웃되지 않습니다.</translation> <translation id="7456142309650173560">개발자</translation> @@ -4589,6 +4581,7 @@ <translation id="8072988827236813198">탭 고정</translation> <translation id="8074127646604999664">최근에 닫은 사이트에서 데이터 전송 및 수신을 완료하도록 허용</translation> <translation id="8075191520954018715">메모리 상태</translation> +<translation id="8076492880354921740">탭</translation> <translation id="8076835018653442223">관리자가 내 기기의 로컬 파일 액세스를 차단했습니다</translation> <translation id="8077684120002777443">사용자 이름(예: user@example.com)</translation> <translation id="8077816382010018681">QU 기능 알림 제목이 여기 표시됨</translation> @@ -4873,7 +4866,6 @@ <translation id="8569682776816196752">목적지를 찾을 수 없음</translation> <translation id="8569764466147087991">열려는 파일 선택</translation> <translation id="8571213806525832805">지난 4주</translation> -<translation id="8571613743082299268">다음 사이트로의 리디렉션이 차단되었습니다.</translation> <translation id="8574990355410201600"><ph name="HOST" />에서 소리 항상 허용</translation> <translation id="8578639784464423491">99자를 초과할 수 없습니다.</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" />개 항목 동기화 중...</translation> @@ -5205,7 +5197,6 @@ <translation id="9065203028668620118">수정</translation> <translation id="9066782832737749352">텍스트 음성 변환</translation> <translation id="9070219033670098627">사용자 전환</translation> -<translation id="907148966137935206">모든 사이트에서 팝업 표시 허용 안함(권장)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> 설치 중...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" />에서 저장한 비밀번호를 사용하여 적합한 사이트와 앱에 자동 로그인합니다.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 8500a6f..58864e3b 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Įtraukti šį puslapį į žymes...</translation> <translation id="1047956942837015229">Ištrinama elementų: <ph name="COUNT" />...</translation> <translation id="1048286738600630630">Pateiktys</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Kalbos nustatymai</translation> <translation id="1049926623896334335">Rašyklės dokumentas</translation> <translation id="1054153489933238809">Atidaryti originalų &vaizdą naujame skirtuke</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Sinchronizavimo serveris užimtas, bandykite dar kartą vėliau.</translation> <translation id="1784849162047402014">Mažai laisvos vietos įrenginio diske</translation> <translation id="1786636458339910689">Komandos Diskai</translation> -<translation id="1789575671122666129">Iššokantieji langai</translation> <translation id="1792619191750875668">Išplėstas vaizdas</translation> <translation id="1793119619663054394">Ar tikrai norite pašalinti „<ph name="PROFILE_NAME" />“ ir visus susietus „Chrome“ duomenis iš šio kompiuterio? Šio veiksmo anuliuoti negalėsite.</translation> <translation id="1794791083288629568">Atsiųskite atsiliepimų, kad padėtumėte mums išspręsti šią problemą.</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">Sukūrę naują prižiūrimą naudotoją galite bet kada valdyti nustatymus iš bet kurio įrenginio adresu <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Pritvirtinti langą dešinėje</translation> <translation id="1987139229093034863">Perjungti kitą naudotoją.</translation> +<translation id="1987317783729300807">Paskyros</translation> <translation id="1989112275319619282">Naršyti</translation> <translation id="1992397118740194946">Nenustatyta</translation> <translation id="1994173015038366702">Svetainės URL</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">Įvestas neteisingas skirtukų indeksas.</translation> <translation id="2154484045852737596">Kortelės informacijos redagavimas</translation> <translation id="2154710561487035718">Kopijuoti URL adresą</translation> -<translation id="2155931291251286316">Visada leisti rodyti iššokančiuosius langus iš <ph name="HOST" /></translation> <translation id="215753907730220065">Išeiti iš viso ekrano režimo</translation> <translation id="2157875535253991059">Dabar šis puslapis veikia viso ekrano režimu.</translation> <translation id="216169395504480358">Pridėti „Wi-Fi“...</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">Paleisti iš naujo</translation> <translation id="2803375539583399270">Įveskite PIN kodą</translation> <translation id="2805646850212350655">„Microsoft“ koduojamųjų failų sistema</translation> -<translation id="2805707493867224476">Leisti visose svetainėse rodyti iššokančiuosius langus</translation> <translation id="2805756323405976993">Taikomosios programos</translation> <translation id="2807517655263062534">Atsisiųsti failai rodomi čia</translation> <translation id="2809586584051668049">ir dar <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1616,6 @@ <translation id="347919930506963698">Gaukite iš „Chrome“ dar daugiau naudos</translation> <translation id="3479552764303398839">Ne dabar</translation> <translation id="3480892288821151001">Pritvirtinti langą kairėje</translation> -<translation id="3481915276125965083">Šiame puslapyje šie iššokantieji langai buvo užblokuoti:</translation> <translation id="3484273680291419129">Šalinama žalinga programinė įranga...</translation> <translation id="3484869148456018791">Gauti naują sertifikatą</translation> <translation id="3487007233252413104">anoniminė funkcija</translation> @@ -1723,7 +1721,6 @@ <translation id="3637682276779847508">SIM kortelė bus visam laikui išjungta, jei negalėsite įvesti tinkamo PIN kodo atrakinimo rakto.</translation> <translation id="363903084947548957">Kitas įvesties būdas</translation> <translation id="3640214691812501263">Pridėti „<ph name="EXTENSION_NAME" />“ naudotojui <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Plėtinių valdymas nepasiekiamas svečiams. Prisijunkite, kad galėtumėte valdyti plėtinius.</translation> <translation id="3644896802912593514">Plotis</translation> <translation id="3646789916214779970">Iš naujo nustatyti numatytąją temą</translation> <translation id="3648348069317717750">Aptiktas „<ph name="USB_DEVICE_NAME" />“</translation> @@ -2065,7 +2062,6 @@ <translation id="4172051516777682613">Visada rodyti</translation> <translation id="4175737294868205930">Nuolatinė saugykla</translation> <translation id="4176463684765177261">Neleista</translation> -<translation id="4180684688621252156">Spausdinimo paslauga</translation> <translation id="4180788401304023883">Ištrinti „<ph name="CERTIFICATE_NAME" />“ sertifikavimo institucijos sertifikatą?</translation> <translation id="4181602000363099176">20 k.</translation> <translation id="4181841719683918333">Kalbos</translation> @@ -3274,6 +3270,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="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> <translation id="6080689532560039067">Patikrinkite sistemos laiką</translation> @@ -3482,7 +3479,6 @@ <translation id="6406303162637086258">Imituoti naršyklės paleidimą iš naujo</translation> <translation id="6406506848690869874">Sinchronizavimas</translation> <translation id="6408118934673775994">Skaityti ir keisti duomenis <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ir <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Iššokantieji langai</translation> <translation id="6410257289063177456">Vaizdo failai</translation> <translation id="6410328738210026208">Pakeisti kanalą ir paleisti „Powerwash“</translation> <translation id="6410668567036790476">Paieškos variklio pridėjimas</translation> @@ -3690,7 +3686,6 @@ <translation id="6708242697268981054">Pradžia:</translation> <translation id="6709357832553498500">Prisijungti naudojant „<ph name="EXTENSIONNAME" />“</translation> <translation id="6710213216561001401">Ankstesnis</translation> -<translation id="6716704051134091292">PDF konvertavimo priemonė</translation> <translation id="6718273304615422081">Glaudinama...</translation> <translation id="671928215901716392">Užrakinti ekraną</translation> <translation id="67211069045302358">Iš naujo nustatyti šios svetainės nustatymus?</translation> @@ -3815,7 +3810,6 @@ <translation id="6920989436227028121">Atidaryti kaip įprastą skirtuką</translation> <translation id="6922128026973287222">Taupykite duomenis ir naršykite greičiau naudodami „Google“ duomenų taupymo priemonę. Jei norite sužinoti daugiau, spustelėkite.</translation> <translation id="6923132443355966645">Slinkti / spustelėti</translation> -<translation id="6929555043669117778">Tęsti iššokančiųjų langų blokavimą</translation> <translation id="6929835486583850209">Klaida diegiant „<ph name="APP_NAME" />“...</translation> <translation id="6930242544192836755">Trukmė</translation> <translation id="6934241953272494177">Nuskaitomas medijos įrenginys... @@ -3925,7 +3919,6 @@ <translation id="7088434364990739311">Nepavyko pradėti naujinio patikrinimo (klaidos kodas <ph name="ERROR" />).</translation> <translation id="7088561041432335295">„Zip Archiver“ – atidarykite ir supakuokite ZIP failus naudodami Failų programą.</translation> <translation id="7088674813905715446">Administratorius nustatė šio įrenginio būseną į „neteikiama“. Kad galėtumėte jį užregistruoti, nurodykite administratoriui nustatyti įrenginio būseną į „laukiama“.</translation> -<translation id="7092106376816104">Iššokančiųjų langų išimtys</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Keistis duomenimis su įrenginiais, kurių pavadinimai: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Perjungti viso ekrano didintuvą</translation> @@ -4145,7 +4138,6 @@ <translation id="744341768939279100">Kurti naują profilį</translation> <translation id="7444726222535375658">Eiti į „Hangout Meet“</translation> <translation id="7444983668544353857">Neleisti <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Iššokantieji langai užblokuoti</translation> <translation id="7453008956351770337">Pasirinkdami šį spausdintuvą suteikiate nurodytam plėtiniui leidimą pasiekti savo spausdintuvą:</translation> <translation id="7453467225369441013">Būsite atjungti nuo daugelio svetainių. Nebūsite atjungti nuo „Google“ paskyros.</translation> <translation id="7456142309650173560">įreng.</translation> @@ -4590,6 +4582,7 @@ <translation id="8072988827236813198">Prisegti skirtukus</translation> <translation id="8074127646604999664">Leisti pastaruoju metu uždarytoms svetainėms baigti duomenų siuntimą ir gavimą</translation> <translation id="8075191520954018715">Atminties būsena</translation> +<translation id="8076492880354921740">Skirtukai</translation> <translation id="8076835018653442223">Administratorius išjungė prieigą prie vietinių failų įrenginyje</translation> <translation id="8077684120002777443">Naudotojo vardas (pvz., naudotojas@example.com)</translation> <translation id="8077816382010018681">SA funkcijos pranešimo pavadinimas</translation> @@ -4874,7 +4867,6 @@ <translation id="8569682776816196752">Nerasta paskirties vietų.</translation> <translation id="8569764466147087991">Pasirinkite norimą atidaryti failą</translation> <translation id="8571213806525832805">Pastarosios 4 savaitės</translation> -<translation id="8571613743082299268">Peradresavimas į svetainę užblokuotas</translation> <translation id="8574990355410201600">Visada leisti garsą svetainėje <ph name="HOST" /></translation> <translation id="8578639784464423491">Negali būti daugiau nei 99 raidės</translation> <translation id="8579285237314169903">Sinchronizuojama elementų: <ph name="NUMBER_OF_FILES" />…</translation> @@ -5206,7 +5198,6 @@ <translation id="9065203028668620118">Redaguoti</translation> <translation id="9066782832737749352">Tekstas į kalbą</translation> <translation id="9070219033670098627">Perjungti asmenį</translation> -<translation id="907148966137935206">Neleisti jokiai svetainei rodyti iššokančiųjų langų (rekomenduojama)</translation> <translation id="9071637495340542136">Įdiegiama „<ph name="APP_NAME" />“...</translation> <translation id="9072550133391925347">„<ph name="PASSWORD_MANAGER_BRAND" />“ automatiškai prijungia jus tinkamose svetainėse ir programose naudodama išsaugotus slaptažodžius.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index e3ac6fc..8e28acad 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Saglabāt šo lapu kā grāmatzīmi...</translation> <translation id="1047956942837015229">Notiek <ph name="COUNT" /> vienumu dzēšana...</translation> <translation id="1048286738600630630">Displeji</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Valodas iestatījumi</translation> <translation id="1049926623896334335">Word dokuments</translation> <translation id="1054153489933238809">Atvērt sākotnējo &attēlu jaunā cilnē</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Sinhronizācijas serveris ir aizņemts. Lūdzu, vēlāk mēģiniet vēlreiz.</translation> <translation id="1784849162047402014">Ierīces diskā ir maz vietas.</translation> <translation id="1786636458339910689">Komandas diski</translation> -<translation id="1789575671122666129">Uznirstošie logi</translation> <translation id="1792619191750875668">Paplašinātais attēlojums</translation> <translation id="1793119619663054394">Vai tiešām vēlaties noņemt profilu “<ph name="PROFILE_NAME" />” un visus saistītos Chrome datus no šī datora? Šo darbību nevar atsaukt.</translation> <translation id="1794791083288629568">Sūtīt atsauksmes, lai palīdzētu novērst šo problēmu.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Kad esat izveidojis jaunu uzraudzīto lietotāju, varat jebkurā brīdī no jebkuras ierīces pārvaldīt iestatījumus, apmeklējot vietni <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Dokot logu labajā pusē</translation> <translation id="1987139229093034863">Pārslēgties uz citu lietotāju.</translation> +<translation id="1987317783729300807">Konti</translation> <translation id="1989112275319619282">Pārlūkot</translation> <translation id="1992397118740194946">Nav iestatīts</translation> <translation id="1994173015038366702">Vietnes URL</translation> <translation id="1997484222658892567">Vietnē <ph name="URL" /> tiek pieprasīta atļauja pastāvīgi uzglabāt lielu datu apjomu jūsu lokālajā datorā.</translation> <translation id="1997616988432401742">Jūsu sertifikāti</translation> <translation id="1999115740519098545">Sākumlapā</translation> +<translation id="2001796770603320721">Pārvaldīt Diskā</translation> <translation id="2006638907958895361">Atvērt saiti lietotnē <ph name="APP" /></translation> <translation id="2007404777272201486">Ziņot par problēmu...</translation> <translation id="2016430552235416146">Tradicionālā</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Ievadīts nederīgs cilnes rādītājs.</translation> <translation id="2154484045852737596">Kartes informācijas rediģēšana</translation> <translation id="2154710561487035718">Kopēt URL</translation> -<translation id="2155931291251286316">Vienmēr atļaut rādīt uznirstošos logus vietnē <ph name="HOST" /></translation> <translation id="215753907730220065">Iziet no pilnekrāna režīma</translation> <translation id="2157875535253991059">Šī lapa tagad ir redzama pilnekrāna režīmā.</translation> <translation id="216169395504480358">Pievienot Wi-Fi...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Restartēt</translation> <translation id="2803375539583399270">Ievadiet PIN</translation> <translation id="2805646850212350655">Microsoft šīfrēšanas failu sistēma</translation> -<translation id="2805707493867224476">Atļaut visām vietnēm rādīt uznirstošos logus</translation> <translation id="2805756323405976993">Lietotnes</translation> <translation id="2807517655263062534">Šeit ir redzami lejupielādētie faili.</translation> <translation id="2809586584051668049">un vēl <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Iegūstiet vēl vairāk iespēju no Chrome</translation> <translation id="3479552764303398839">Vēlāk</translation> <translation id="3480892288821151001">Dokot logu kreisajā pusē</translation> -<translation id="3481915276125965083">Lapā tika bloķēti šādi uznirstošie logi:</translation> <translation id="3484273680291419129">Notiek kaitīgās programmatūras noņemšana…</translation> <translation id="3484869148456018791">Iegūt jaunu sertifikātu</translation> <translation id="3487007233252413104">anonīma funkcija</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">SIM karte tiks neatgriezeniski atspējota, ja nevarēsiet ievadīt pareizo PIN atbloķēšanas atslēgu.</translation> <translation id="363903084947548957">Nākamā ievades metode</translation> <translation id="3640214691812501263">Vai vēlaties pievienot lietotni “<ph name="EXTENSION_NAME" />” lietotājam <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Viesiem nav pieejama paplašinājumu pārvaldība. Lai pārvaldītu paplašinājumus, lūdzu, pierakstieties.</translation> <translation id="3644896802912593514">Platums</translation> <translation id="3646789916214779970">Atiestatīt uz noklusējuma motīvu</translation> <translation id="3648348069317717750">Konstatēta ierīce <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Vienmēr rādīt</translation> <translation id="4175737294868205930">Pastāvīga krātuve</translation> <translation id="4176463684765177261">Atspējots</translation> -<translation id="4180684688621252156">Drukāšanas pakalpojums</translation> <translation id="4180788401304023883">Vai dzēst SI sertifikātu “<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Valodas</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Serveris neatļāva piekļūt šim resursam.</translation> <translation id="4215350869199060536">Diemžēl nosaukumā ir ietverti neatļauti simboli.</translation> <translation id="4215448920900139318">Dublēšana: <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Diktēšana</translation> <translation id="4225397296022057997">Visās vietnēs</translation> <translation id="4235200303672858594">Viss ekrāns</translation> <translation id="4235813040357936597">Pievienot kontu šim lietotājam: <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Mans disks</translation> <translation id="4430019312045809116">Skaļums</translation> <translation id="4430369329743628066">Grāmatzīme pievienota</translation> +<translation id="4434045419905280838">Uznirstošie elem. un novirzīšana</translation> <translation id="443454694385851356">Mantoti (nedroši)</translation> <translation id="443464694732789311">Turpināt</translation> <translation id="443475966875174318">Nesaderīgu lietojumprogrammu atjaunināšana vai noņemšana</translation> @@ -3273,6 +3272,7 @@ <translation id="6075907793831890935">apmainīties datiem ar ierīci <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Ietvert šo ekrānuzņēmumu</translation> <translation id="6077131872140550515">Noņemt no vēlamajiem</translation> +<translation id="6078323886959318429">Pievienot saīsni</translation> <translation id="6078752646384677957">Lūdzu, pārbaudiet savu mikrofonu un audio skaļuma līmeni.</translation> <translation id="6080515710685820702">Vai izmantojat koplietotu datoru? Atveriet inkognito režīma logu.</translation> <translation id="6080689532560039067">Sistēmas laika pārbaude</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Imitēt pārlūkprogrammas restartēšanu</translation> <translation id="6406506848690869874">Sinhronizācija</translation> <translation id="6408118934673775994">Lasīt un mainīt jūsu datus vietnēs <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> un <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Uznirstošie logi</translation> <translation id="6410257289063177456">Attēlu faili</translation> <translation id="6410328738210026208">Mainīt kanālu un Powerwash</translation> <translation id="6410668567036790476">Meklētājprogrammas pievienošana</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Avots:</translation> <translation id="6709357832553498500">Izveidot savienojumu, izmantojot paplašinājumu <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Iepriekšējais</translation> -<translation id="6716704051134091292">PDF pārveidotājs</translation> <translation id="6718273304615422081">Notiek tilpsaspiešana...</translation> <translation id="671928215901716392">Bloķēt ekrānu</translation> <translation id="67211069045302358">Vai atiestatīt šīs vietnes iestatījumus?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Atvērt kā parastu cilni</translation> <translation id="6922128026973287222">Ietaupiet datu lietojumu un veiciet pārlūkošanu ātrāk, izmantojot Google datu lietojuma samazinātāju. Noklikšķiniet, lai uzzinātu vairāk.</translation> <translation id="6923132443355966645">Ritināt/klikšķināt</translation> -<translation id="6929555043669117778">Turpināt bloķēt uznirstošos logus</translation> <translation id="6929835486583850209">Instalējot lietotni <ph name="APP_NAME" />, radās kļūda...</translation> <translation id="6930242544192836755">Ilgums</translation> <translation id="6934241953272494177">Notiek multivides ierīces skenēšana... @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Sūtīt veiktspējas izsekošanas datus</translation> <translation id="7052633198403197513">taustiņš F1</translation> <translation id="7053983685419859001">Bloķēt</translation> +<translation id="7055152154916055070">Novirzīšana ir bloķēta:</translation> <translation id="7056526158851679338">&Pārbaudīt ierīces</translation> <translation id="7059858479264779982">Iestatīt automātisku palaišanu</translation> <translation id="7059893117020417984">Lai pārlūkotu tīmekli privāti, atveriet inkognito režīma logu, noklikšķinot uz punktu ikonas izvēlnes.</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Neizdevās palaist atjauninājumu pārbaudi (kļūdas kods: <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip arhivētājs — atveriet un pakojiet ZIP failus lietotnē Faili.</translation> <translation id="7088674813905715446">Administrators šai ierīcei ir piešķīris noņemšanas statusu. Lai tiktu aktivizēta šīs ierīces reģistrēšana, lūdziet administratoram piešķirt tai gaidīšanas statusu.</translation> -<translation id="7092106376816104">Uznirstošo logu izņēmumi</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">apmainīties datiem ar šādām ierīcēm: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Pārslēdz pilnekrāna lupu</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">Izveidot jaunu profilu</translation> <translation id="7444726222535375658">Turpināt darbu pakalpojumā Hangouts Meet</translation> <translation id="7444983668544353857">Atspējot <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Uznirstošie logi bloķēti</translation> <translation id="7453008956351770337">Atlasot šo printeri, jūs piešķirat tālāk norādītajam paplašinājumam atļauju piekļūt jūsu printerim.</translation> <translation id="7453467225369441013">Jūs tiksiet izrakstīts no lielākās daļas vietņu. Jūs netiksiet izrakstīts no Google konta.</translation> <translation id="7456142309650173560">izstr.</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">Notiek savienojuma izveide ar ierīci <ph name="DEVICE_NAME" />.</translation> <translation id="7622114377921274169">Notiek uzlāde.</translation> <translation id="7624337243375417909">burtslēga taustiņš izslēgts</translation> +<translation id="7625568159987162309">Skatīt vietnēs glabātās atļaujas un datus</translation> <translation id="7627790789328695202">Diemžēl fails <ph name="FILE_NAME" /> jau pastāv. Pārdēvējiet to un mēģiniet vēlreiz.</translation> <translation id="7628127343934101653">Atvērt PDF failus noklusējuma PDF skatītāja lietojumprogrammā.</translation> <translation id="7629827748548208700">Cilne: <ph name="TAB_NAME" /></translation> @@ -4584,10 +4581,12 @@ <translation id="806812017500012252">Pārkārtot pēc nosaukuma</translation> <translation id="8068253693380742035">Pieskarieties, lai pierakstītos</translation> <translation id="8069615408251337349">Google mākoņdruka</translation> +<translation id="806972267388474605">Linux faili</translation> <translation id="8071432093239591881">Drukāt kā attēlu</translation> <translation id="8072988827236813198">Saistītas cilnes</translation> <translation id="8074127646604999664">Atļaut nesen aizvērtajām vietnēm pabeigt datu sūtīšanu un saņemšanu</translation> <translation id="8075191520954018715">Atmiņas stāvoklis</translation> +<translation id="8076492880354921740">Cilnes</translation> <translation id="8076835018653442223">Administrators ir atspējojis piekļuvi lokālajiem failiem jūsu ierīcē.</translation> <translation id="8077684120002777443">Lietotājvārds (piemēram, lietotajvards@example.com)</translation> <translation id="8077816382010018681">Vieta ātrās atbloķēšanas funkcijas paziņojuma nosaukumam</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Neatrada nevienu galamērķi.</translation> <translation id="8569764466147087991">Atlasīt atveramo failu</translation> <translation id="8571213806525832805">Pēdējās 4 nedēļas</translation> -<translation id="8571613743082299268">Bloķēta novirzīšana uz vietni</translation> <translation id="8574990355410201600">Vienmēr atļaut ieslēgt skaņu vietnē <ph name="HOST" /></translation> <translation id="8578639784464423491">Nedrīkst būt vairāk par 99 burtiem.</translation> <translation id="8579285237314169903">Notiek <ph name="NUMBER_OF_FILES" /> vienumu sinhronizēšana...</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">Labot</translation> <translation id="9066782832737749352">Teksta pārvēršana runā</translation> <translation id="9070219033670098627">Pārslēgt lietotāju</translation> -<translation id="907148966137935206">Neļaut nevienai vietnei rādīt uznirstošos logus (ieteicams)</translation> <translation id="9071637495340542136">Notiek lietotnes <ph name="APP_NAME" /> instalēšana...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> automātiski pierakstās piemērotajās vietnēs un lietotnēs, izmantojot jūsu saglabātās paroles.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 46513f848..ecaeb97 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">ഈ പേജ് ബുക്ക്മാര്ക്ക് ചെയ്യുക...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> ഇനങ്ങൾ ഇല്ലാതാക്കുന്നു...</translation> <translation id="1048286738600630630">ഡിസ്പ്ലേകൾ</translation> +<translation id="1049743911850919806">ആള്മാറാട്ടം</translation> <translation id="1049795001945932310">&ഭാഷ ക്രമീകരണം</translation> <translation id="1049926623896334335">Word പ്രമാണം</translation> <translation id="1054153489933238809">യഥാർത്ഥ ചിത്രം പുതിയ ടാബിൽ തുറക്കുക</translation> @@ -45,6 +46,8 @@ <translation id="1064835277883315402">സ്വകാര്യ നെറ്റ്വർക്കിൽ ചേരുക</translation> <translation id="1064912851688322329">നിങ്ങളുടെ Google അക്കൗണ്ട് വിച്ഛേദിക്കുക</translation> <translation id="1067048845568873861">സൃഷ്ടിച്ചു</translation> +<translation id="1067291318998134776">Linux (ബീറ്റ)</translation> +<translation id="1067922213147265141">മറ്റ് Google സേവനങ്ങള്</translation> <translation id="1070066693520972135">WEP</translation> <translation id="1070377999570795893">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ മറ്റൊരു പ്രോഗ്രാം, Chrome പ്രവർത്തിക്കുന്ന രീതിയെ മാറ്റിയേക്കാവുന്ന ഒരു വിപുലീകരണം ചേർത്തു. @@ -182,6 +185,7 @@ <translation id="1260240842868558614">ദൃശ്യമാക്കുക:</translation> <translation id="126710816202626562">വിവർത്തന ഭാഷ:</translation> <translation id="126768002343224824">16x</translation> +<translation id="1271317946095246719">നിങ്ങളുടെ ഡിഫോൾട്ട് തിരയൽ എഞ്ചിനിലേക്ക് വിലാസ ബാറിൽ നിന്നും തിരയൽ ബോക്സിൽ നിന്നുമുള്ള തിരയലുകളും കുറച്ച് കുക്കികളും അയയ്ക്കുന്നു</translation> <translation id="1272079795634619415">നിര്ത്തുക</translation> <translation id="1272978324304772054">ഈ ഉപയോക്തൃ അക്കൗണ്ട്, ഉപകരണം ചേർത്തിരിക്കുന്ന ഡൊമെയ്നിന്റെ ഭാഗമല്ല. നിങ്ങൾക്ക് മറ്റൊരു ഡൊമെയ്ൻ ചേർക്കണമെങ്കിൽ, ആദ്യം ഉപകരണം വീണ്ടെടുക്കുന്നതിലേക്ക് പോകേണ്ടതുണ്ട്.</translation> <translation id="1274977772557788323">Adobe Flash Player സ്റ്റോറേജ് ക്രമീകരണം</translation> @@ -524,7 +528,6 @@ <translation id="1782924894173027610">സമന്വയ സെര്വര് തിരക്കിലാണ്, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="1784849162047402014">ഉപകരണത്തിൽ ഡിസ്ക് ഇടം കുറവാണ്</translation> <translation id="1786636458339910689">ടീം ഡ്രൈവുകൾ</translation> -<translation id="1789575671122666129">പോപ്പ്അപ്പുകൾ</translation> <translation id="1792619191750875668">വിപുലീകരിച്ച ഡിസ്പ്ലേ</translation> <translation id="1793119619663054394">ഈ കമ്പ്യൂട്ടറിൽ നിന്ന് "<ph name="PROFILE_NAME" />" എന്നതും അതുമായി ബന്ധപ്പെട്ട എല്ലാ Chrome ഡാറ്റയും നീക്കംചെയ്യണമെന്ന് തീർച്ചയാണോ? ഇത് പഴയപടിയാക്കാനാകില്ല.</translation> <translation id="1794791083288629568">ഈ പ്രശ്നം പരിഹരിക്കാൻ ഞങ്ങളെ സഹായിക്കുന്നതിന് ഫീഡ്ബാക്ക് അയയ്ക്കുക.</translation> @@ -647,6 +650,7 @@ <translation id="1983959805486816857">സൂപ്പർവൈസുചെയ്ത ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾക്ക് ഏത് സമയത്തും ഏത് ഉപകരണത്തിൽ നിന്നും <ph name="MANAGEMENT_URL" />-ൽ ക്രമീകരണങ്ങൾ നിയന്ത്രിക്കാനാവും.</translation> <translation id="1984642098429648350">വിൻഡോ വലതുവശത്തേയ്ക്ക് ഡോക്കുചെയ്യുക</translation> <translation id="1987139229093034863">ഒരു വ്യത്യസ്ത ഉപയോക്താവിലേക്ക് സ്വിച്ചുചെയ്യുക</translation> +<translation id="1987317783729300807">അക്കൗണ്ടുകൾ</translation> <translation id="1989112275319619282">ബ്രൗസുചെയ്യുക</translation> <translation id="1992397118740194946">സജ്ജമാക്കിയിട്ടില്ല</translation> <translation id="1994173015038366702">സൈറ്റ് URL</translation> @@ -748,7 +752,6 @@ <translation id="2151576029659734873">അസാധുവായ ടാബ് സൂചിക നല്കി.</translation> <translation id="2154484045852737596">കാർഡ് എഡിറ്റുചെയ്യുക</translation> <translation id="2154710561487035718">URL പകര്ത്തുക</translation> -<translation id="2155931291251286316">എല്ലായ്പ്പോഴും <ph name="HOST" /> ല് നിന്നുമുള്ള പോപ്പ്-അപ്പ് അനുവദിക്കുക</translation> <translation id="215753907730220065">പൂര്ണ്ണ സ്ക്രീനില് നിന്ന് പുറത്തുകടക്കുക</translation> <translation id="2157875535253991059">ഈ പേജ് ഇപ്പോൾ പൂർണ്ണമായ സ്ക്രീനിലാണ്.</translation> <translation id="216169395504480358">Wi-Fi ചേർക്കുക...</translation> @@ -798,6 +801,7 @@ <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" ഫോൾഡർ സൃഷ്ടിക്കാനാവില്ല. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">ഇന്നത്തെ ഡൂഡിൽ കാണാൻ ക്ലിക്ക് ചെയ്യുക</translation> <translation id="2231238007119540260">നിങ്ങള് ഒരു സെര്വര് സാക്ഷ്യപത്രം ഇല്ലാതാക്കുന്നതിലൂടെ, നിങ്ങള് ആ സെര്വറിനായുള്ള സാധാരണ സുരക്ഷ പുനഃസ്ഥാപിക്കുകയാണ്, ഒപ്പം അതൊരു സാധുവായ സാക്ഷ്യപത്രം ഉപയോഗിക്കേണ്ടതുമുണ്ട്.</translation> +<translation id="2232379019872353004">ചില സിസ്റ്റം വിവരങ്ങളും പേജ് ഉള്ളടക്കവും Google-ന് അയയ്ക്കുന്നു</translation> <translation id="2232876851878324699">ഫയലില് ഒരു സാക്ഷ്യപത്രം ഉണ്ടായിരുന്നു, അത് ഇറക്കുമതി ചെയ്തിട്ടില്ല:</translation> <translation id="2233502537820838181">&കൂടുതൽ വിവരങ്ങൾ</translation> <translation id="2238379619048995541">ആവൃത്തി നില ഡാറ്റ</translation> @@ -883,6 +887,7 @@ <translation id="2359808026110333948">തുടരൂ</translation> <translation id="236141728043665931">എല്ലായ്പ്പോഴും മൈക്രോഫോൺ ആക്സസ്സ് തടയുക</translation> <translation id="2365507699358342471">ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തിയിട്ടുള്ള ടെക്സ്റ്റും ചിത്രങ്ങളും ഈ സൈറ്റിന് കാണാനാകും.</translation> +<translation id="2366463953911599217">പിശക്: <ph name="APP_NAME" /> അൺഇൻസ്റ്റാൾ ചെയ്യുന്നത് പരാജയപ്പെട്ടു.</translation> <translation id="2367199180085172140">ഫയൽ പങ്കിടൽ ചേർക്കുക</translation> <translation id="2367972762794486313">അപ്ലിക്കേഷനുകൾ കാണിക്കുക</translation> <translation id="2371076942591664043">ചെയ്തുകഴിയുമ്പോള് &തുറക്കുക</translation> @@ -934,6 +939,7 @@ <translation id="2462724976360937186">സാക്ഷ്യപത്ര അതോറിറ്റി കീ ഐഡി</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ചേർത്തു</translation> <translation id="2464089476039395325">HTTP പ്രോക്സി</translation> +<translation id="2468205691404969808">നിങ്ങൾ ആ പേജുകൾ സന്ദർശിക്കുന്നില്ലെങ്കിൽ പോലും, നിങ്ങളുടെ മുൻഗണനകൾ ഓർമ്മിക്കുന്നതിന് കുക്കികളെ ഉപയോഗിക്കുന്നു</translation> <translation id="2468902267404883140">നിങ്ങളുടെ ഫോൺ കണക്റ്റുചെയ്യാനാകുന്നില്ല. അനുയോജ്യമായ Android ഫോൺ ആണ് ഉപയോഗിക്കുന്നതെന്നും അത് ഓണാണെന്നും കൈയ്യിലുണ്ടെന്നും ഉറപ്പുവരുത്തുക. <a>കൂടുതലറിയുക</a></translation> <translation id="2470702053775288986">പിന്തുണയ്ക്കാത്ത വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമായി</translation> <translation id="2473195200299095979">ഈ പേജ് വിവർത്തനം ചെയ്യുക</translation> @@ -1097,6 +1103,7 @@ <translation id="2686759344028411998">ലോഡുചെയ്ത ഏതെങ്കിലും മൊഡ്യൂളുകള് കണ്ടെത്താനാകുന്നില്ല.</translation> <translation id="2688196195245426394">ഉപകരണം സെർവറിൽ രജിസ്റ്റർ ചെയ്യുന്നതിൽ പിശക്: <ph name="CLIENT_ERROR" />.</translation> <translation id="2690024944919328218">ഭാഷ ഓപ്ഷനുകൾ കാണിക്കുക</translation> +<translation id="2690824726518456119">Concierge സേവനം ആരംഭിക്കുന്നു.</translation> <translation id="2691385045260836588">മോഡല്</translation> <translation id="2693176596243495071">ക്ഷമിക്കണം! അജ്ഞാതമായൊരു പിശക് സംഭവിച്ചു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ പ്രശ്നം നിലനിൽക്കുകയാണെങ്കിൽ അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക.</translation> <translation id="2694026874607847549">1 കുക്കി</translation> @@ -1174,7 +1181,6 @@ <translation id="2799223571221894425">വീണ്ടും സമാരംഭിക്കുക</translation> <translation id="2803375539583399270">പിൻ നൽകുക</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">പോപ്പ്-അപ്പുകള് കാണിക്കുന്നതിന് എല്ലാ സൈറ്റുകളെയും അനുവദിക്കുക</translation> <translation id="2805756323405976993">ആപ്സ്</translation> <translation id="2807517655263062534">നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="2809586584051668049">ഒപ്പം <ph name="NUMBER_ADDITIONAL_DISABLED" /> എണ്ണം കൂടി</translation> @@ -1422,6 +1428,7 @@ <translation id="3190558889382726167">പാസ്വേഡ് സംരക്ഷിച്ചു</translation> <translation id="3192947282887913208">ഓഡിയോ ഫയലുകള്</translation> <translation id="3194737229810486521">നിങ്ങളുടെ ഉപകരണത്തിൽ ശാശ്വതമായി ഡാറ്റ സംഭരിക്കാന് <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation> +<translation id="3197054279257119376">Termina കോമ്പോണന്റ് ലോഡ് ചെയ്യുന്നു.</translation> <translation id="3199127022143353223">സെര്വറുകള്</translation> <translation id="3202131003361292969">പാത്ത്</translation> <translation id="3202173864863109533">ഈ ടാബിന്റെ ഓഡിയോ നിശബ്ദമാക്കി.</translation> @@ -1545,6 +1552,7 @@ <translation id="3405664148539009465">ഫോണ്ടുകള് ഇച്ഛാനുസൃതമാക്കുക</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">ബുക്ക്മാർക്ക് ബാർ &കാണിക്കുക</translation> +<translation id="3407837288045706722">സ്വകാര്യത, സുരക്ഷ, ഡാറ്റാ ശേഖരണം എന്നിവയുമായി ബന്ധപ്പെട്ട കൂടുതൽ ക്രമീകരണത്തിന്, <ph name="BEGIN_LINK" />സമന്വയവും വ്യക്തിപരമാക്കലും<ph name="END_LINK" /> കാണുക</translation> <translation id="3412265149091626468">തിരഞ്ഞെടുക്കുന്നതിലേക്ക് പോകുക</translation> <translation id="3413122095806433232">CA നല്കുന്നയാളുകള്: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">നീക്കം ചെയ്യാവുന്ന മീഡിയയിലെ ഫോർമാറ്റിംഗ് എല്ലാ ഡാറ്റയും മായ്ക്കും. തുടരാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?</translation> @@ -1606,7 +1614,6 @@ <translation id="347919930506963698">Chrome-ൽ നിന്ന് ഇതിലും കൂടുതൽ നേടൂ</translation> <translation id="3479552764303398839">ഇപ്പോഴല്ല</translation> <translation id="3480892288821151001">വിൻഡോ ഇടതുവശത്തേയ്ക്ക് ഡോക്കുചെയ്യുക</translation> -<translation id="3481915276125965083">ഈ പേജില് ഇനിപ്പറയുന്ന പോപ്പ്-അപ്പുകളെ തടഞ്ഞു:</translation> <translation id="3484273680291419129">ദോഷകരമായ സോഫ്റ്റ്വയർ നീക്കംചെയ്യുന്നു...</translation> <translation id="3484869148456018791">പുതിയ സർട്ടിഫിക്കറ്റ് ലഭ്യമാക്കുക</translation> <translation id="3487007233252413104">അജ്ഞാത പ്രവർത്തനം</translation> @@ -1622,6 +1629,7 @@ <translation id="3504135463003295723">ഗ്രൂപ്പ് നാമം:</translation> <translation id="3505030558724226696">ഉപകരണ ആക്സസ്സ് റദ്ദാക്കുക</translation> <translation id="3507421388498836150">"<ph name="EXTENSION_NAME" />" എന്നതിനായുള്ള നിലവിലെ അനുമതികൾ</translation> +<translation id="3507547268929739059">Chromebook-നായുള്ള Linux ആപ്പുകൾ നീക്കം ചെയ്യുക</translation> <translation id="3507888235492474624">Bluetooth ഉപകരണങ്ങൾ വീണ്ടും സ്കാൻ ചെയ്യുക</translation> <translation id="3508920295779105875">മറ്റൊരു ഫോള്ഡര് തിരഞ്ഞെടുക്കുക...</translation> <translation id="3510797500218907545">WiMAX</translation> @@ -1711,7 +1719,6 @@ <translation id="3637682276779847508">ശരിയായ പിൻ അണ്ലോക്ക് കീ നല്കാന് നിങ്ങള്ക്ക് കഴിഞ്ഞില്ലെങ്കിൽ സിം കാര്ഡ് ശാശ്വതമായി പ്രവർത്തനരഹിതമാക്കും.</translation> <translation id="363903084947548957">അടുത്ത ടൈപ്പുചെയ്യൽ രീതി</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> എന്നയാൾക്കായി "<ph name="EXTENSION_NAME" />" ചേർക്കണോ?</translation> -<translation id="3643225892037417978">അതിഥി ഉപയോക്താക്കൾക്ക് വിപുലീകരണ മാനേജ്മെന്റ് ലഭ്യമല്ല. വിപുലീകരണങ്ങൾ നിയന്ത്രിക്കാൻ സൈൻ ഇൻ ചെയ്യുക.</translation> <translation id="3644896802912593514">വീതി</translation> <translation id="3646789916214779970">സ്ഥിരസ്ഥിതി തീം പുനഃസജ്ജീകരിക്കുക</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> കണ്ടെത്തി</translation> @@ -1815,6 +1822,7 @@ <translation id="379422718204375917">നിങ്ങളുടെ അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ Smart Lock ഉപയോഗിക്കുക</translation> <translation id="3796648294839530037">പ്രിയപ്പെട്ട നെറ്റ്വർക്കുകൾ:</translation> <translation id="3797900183766075808">&'<ph name="SEARCH_TERMS" />' എന്നതിനായി <ph name="SEARCH_ENGINE" />-ൽ തിരയുക</translation> +<translation id="3798133693323981089">തിരയലുകളും വെബ് വിലാസങ്ങളും സ്വമേധയാ പൂരിപ്പിക്കുക</translation> <translation id="3798449238516105146">പതിപ്പ്</translation> <translation id="3799201711591988491">{COUNT,plural, =0{എല്ലാം &തുറക്കുക}=1{ബുക്ക്മാർക്ക് &തുറക്കുക}other{എല്ലാം (#) &തുറക്കുക}}</translation> <translation id="3800806661949714323">എല്ലാം കാണിക്കുക (ശുപാർശ ചെയ്തിരിക്കുന്നു)</translation> @@ -1990,6 +1998,7 @@ <translation id="4065876735068446555">നിങ്ങൾ ഉപയോഗിക്കുന്ന നെറ്റ്വർക്ക് (<ph name="NETWORK_ID" />) അതിന്റെ ലോഗിൻ പേജ് സന്ദർശിക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടാം.</translation> <translation id="4068506536726151626">നിങ്ങളുടെ ലൊക്കേഷൻ ട്രാക്കുചെയ്യുന്ന ഇനിപ്പറയുന്ന സൈറ്റുകളിൽ നിന്നുമുള്ള ഘടകങ്ങൾ ഈ പേജിൽ അടങ്ങിയിരിക്കുന്നു:</translation> <translation id="4068776064906523561">സംരക്ഷിച്ച വിരലടയാളങ്ങൾ</translation> +<translation id="407173827865827707">ക്ലിക്കിൽ</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: സൈൻ ഇൻ പിശക്</translation> <translation id="4074900173531346617">സൈനര് സര്ട്ടിഫിക്കറ്റ് ഇമെയില് അയയ്ക്കുക</translation> <translation id="407520071244661467">സ്കെയിൽ</translation> @@ -2021,6 +2030,7 @@ <translation id="4109135793348361820">വിൻഡോ <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) എന്നതിലേക്ക് നീക്കുക</translation> <translation id="4110559665646603267">ഷെൽഫ് ഫോക്കസുചെയ്യുക</translation> <translation id="4110895898888439383">ഉയർന്ന ദൃശ്യതീവ്രതാ മോഡിൽ വെബ് ബ്രൗസ് ചെയ്യുക</translation> +<translation id="4112774766611964959">ഇത്, നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> ഉപകരണത്തിൽ നിന്ന് <ph name="APP_NAME" /> അൺഇൻസ്റ്റാൾ ചെയ്യും, എല്ലാ Linux ഡാറ്റയും അപ്ലിക്കേഷനുകളും നീക്കം ചെയ്യും. തീർച്ചയാണോ?</translation> <translation id="4114360727879906392">മുമ്പത്തെ വിന്ഡോ</translation> <translation id="4115002065223188701">നെറ്റ്വർക്ക് പരിധിക്ക് പുറത്താണ്</translation> <translation id="4115080753528843955">പരിരക്ഷിതമായ ഉള്ളടക്കത്തിലേക്ക് ആക്സസ് അനുവദിക്കുന്നതിന് ചില ഉള്ളടക്ക സേവനങ്ങൾ തനതായ ഐഡന്റിഫയറുകൾ ഉപയോഗിക്കുന്നു</translation> @@ -2049,7 +2059,6 @@ <translation id="4172051516777682613">എല്ലായ്പ്പോഴും ദൃശ്യമാക്കുക</translation> <translation id="4175737294868205930">സ്ഥിരമായ സ്റ്റോറേജ്</translation> <translation id="4176463684765177261">അപ്രാപ്തമാക്കി</translation> -<translation id="4180684688621252156">അച്ചടി സേവനം</translation> <translation id="4180788401304023883">CA സാക്ഷ്യപത്രം"<ph name="CERTIFICATE_NAME" />" ഇല്ലാതാക്കണോ?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">ഭാഷകൾ</translation> @@ -2075,6 +2084,7 @@ <translation id="42137655013211669">ഈ ഉറവിടത്തിലേക്കുള്ള ആക്സസ്സ് സെർവർ തടഞ്ഞു.</translation> <translation id="4215350869199060536">ക്ഷമിക്കണം, പേരിൽ നിയമവിരുദ്ധ ചിഹ്നങ്ങളുണ്ട്!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> ബാക്കപ്പ് ചെയ്യുന്നു</translation> +<translation id="4225397296022057997">എല്ലാ സൈറ്റുകളിലും</translation> <translation id="4235200303672858594">പൂർണ്ണ സ്ക്രീൻ</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> എന്നയാൾക്കായി അക്കൗണ്ട് ചേർക്കുക</translation> <translation id="4235965441080806197">സൈൻ ഇൻ റദ്ദാക്കുക</translation> @@ -2142,6 +2152,7 @@ <translation id="4345703751611431217">സോഫ്റ്റ്വെയർ അനുയോജ്യതയില്ലായ്മ: കൂടുതലറിയുക</translation> <translation id="4348766275249686434">പിശകുകൾ ശേഖരിക്കുക</translation> <translation id="4350019051035968019">മറ്റൊരു ഡൊമെയ്ൻ, ഉപകരണത്തെ നിയന്ത്രിക്കുന്നതിനായി അടയാളപ്പെടുത്തിയിരിക്കുന്നതിനാൽ, ഈ ഉപകരണത്തിന് നിങ്ങളുടെ അക്കൗണ്ട് ഉൾപ്പെട്ടിരിക്കുന്ന ഡൊമെയ്നിലേക്ക് എൻറോൾ ചെയ്യാനാവില്ല.</translation> +<translation id="4354266305752237763">അപകടകരമായ സൈറ്റുകളിൽ നിന്ന് നിങ്ങളെയും ഉപകരണത്തെയും പരിരക്ഷിക്കുക (സുരക്ഷിത ബ്രൗസിംഗ്)</translation> <translation id="4356334633973342967">അല്ലെങ്കിൽ നിങ്ങളുടേത് മാത്രമായ ഡ്രൈവറെ വ്യക്തമാക്കുക:</translation> <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /> എന്നീ ഭാഷകൾ</translation> <translation id="4359408040881008151">ആശ്രയിച്ചിരിക്കുന്ന വിപുലീകരണം (വിപുലീകരണങ്ങൾ) കാരണം ഇൻസ്റ്റാളുചെയ്തു.</translation> @@ -2150,6 +2161,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" />, ഒരു വിൻഡോ പങ്കിടുന്നു.</translation> <translation id="4364830672918311045">അറിയിപ്പുകൾ പ്രദർശിപ്പിക്കുക</translation> <translation id="4365673000813822030">ക്ഷമിക്കണം, സമന്വയം പ്രവർത്തനം നിർത്തി.</translation> +<translation id="4370373819607756384"><ph name="BEGIN_LINK" />ഭാഷകളിൽ<ph name="END_LINK" /> ഈ ക്രമീകരണം നിയന്ത്രിക്കുക</translation> <translation id="4370975561335139969">നിങ്ങൾ നൽകിയ ഇമെയിലും പാസ്വേഡും പൊരുത്തപ്പെടുന്നില്ല</translation> <translation id="437184764829821926">വിപുലീകരിച്ച ഫോണ്ട് ക്രമീകരണങ്ങൾ</translation> <translation id="4372884569765913867">1x1</translation> @@ -2204,6 +2216,7 @@ <translation id="4462159676511157176">ഇഷ്ടാനുസൃത നാമ സെർവറുകൾ</translation> <translation id="4467100756425880649">Chrome വെബ് സ്റ്റോർ ഗാലറി</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" /> വികസിപ്പിക്കുക</translation> +<translation id="447252321002412580">Chrome-ന്റെ ഫീച്ചറുകളും പ്രകടനവും മെച്ചപ്പെടുത്താൻ സഹായിക്കുക</translation> <translation id="4474155171896946103">എല്ലാ ടാബുകളും ബുക്ക്മാര്ക്ക് ചെയ്യുക...</translation> <translation id="4475552974751346499">ഡൌണ്ലോഡുകള് തിരയുക</translation> <translation id="4476590490540813026">അത്ലറ്റ്</translation> @@ -2226,6 +2239,7 @@ <translation id="4514542542275172126">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ സജ്ജീകരിക്കുക</translation> <translation id="451515744433878153">നീക്കംചെയ്യുക</translation> <translation id="4518677423782794009">Chrome ക്രാഷാകുന്നുണ്ടോ, അസാധാരണമായ സ്റ്റാർട്ടപ്പ് പേജുകളോ ടൂൾബാറുകളോ കാണുന്നുണ്ടോ, നിങ്ങൾക്ക് ഒഴിവാക്കാനാവാത്ത അപ്രതീക്ഷിത പരസ്യങ്ങൾ വരുന്നുണ്ടോ, അതുമല്ലെങ്കിൽ നിങ്ങളുടെ ബ്രൗസിംഗ് അനുഭവത്തെത്തന്നെ വ്യത്യാസപ്പെടുത്തുന്നുണ്ടോ? Chrome ക്ലീനർ പ്രവർത്തിപ്പിക്കുന്നതുവഴി നിങ്ങൾക്ക് ഈ പ്രശ്നം പരിഹരിക്കാനായേക്കും.</translation> +<translation id="4518928191942891293">Termina VM-ന് ഉള്ളിലെ കണ്ടെയിനർ ആരംഭിക്കുന്നു</translation> <translation id="4520385623207007473">ഉപയോഗത്തിലുള്ള കുക്കികൾ</translation> <translation id="452039078290142656"><ph name="VENDOR_NAME" /> എന്നതിൽ നിന്നുള്ള അജ്ഞാത ഉപകരണം</translation> <translation id="4522570452068850558">വിശദാംശങ്ങൾ</translation> @@ -2274,6 +2288,7 @@ <translation id="4589268276914962177">പുതിയ ടെർമിനൽ</translation> <translation id="4590324241397107707">ഡാറ്റാബേസ് സംഭരണം</translation> <translation id="4593021220803146968">&<ph name="URL" /> ലേക്ക് പോകുക</translation> +<translation id="459505086032485258">Google സേവന ക്രമീകരണം കാണിക്കുക</translation> <translation id="4595560905247879544">മാനേജർക്ക് (<ph name="CUSTODIAN_NAME" />) മാത്രമേ ആപ്സും വിപുലീകരണങ്ങളും പരിഷ്ക്കരിക്കാനാകൂ.</translation> <translation id="4596295440756783523">ഈ സെര്വറുകളെ തിരിച്ചറിയുന്ന സര്ട്ടിഫിക്കറ്റുകള് നിങ്ങളുടെ ഫയലിലുണ്ട്</translation> <translation id="4598556348158889687">സ്റ്റോറേജ് മാനേജ്മെന്റ്</translation> @@ -2493,6 +2508,7 @@ <translation id="4917385247580444890">ശക്തം</translation> <translation id="4918021164741308375"><ph name="ORIGIN" /> എന്നതിന് വിപുലീകരണ "<ph name="EXTENSION_NAME" />" ഉപയോഗിച്ച് ആശയവിനിമയം നടത്തേണ്ടതുണ്ട്</translation> <translation id="4918086044614829423">സ്വീകരിക്കുക</translation> +<translation id="4920350943031252905">നിങ്ങളുടെ Chromebook-ൽ Linux ടൂളുകളും എഡിറ്ററുകളും IDE-കളും റൺ ചെയ്യുക.</translation> <translation id="4920887663447894854">ഈ പേജിലെ നിങ്ങളുടെ സ്ഥാനം ട്രാക്കുചെയ്യുന്നതില് നിന്നും ഇനിപ്പറയുന്ന സൈറ്റുകളെ തടഞ്ഞു:</translation> <translation id="492299503953721473">Android ആപ്സ് നീക്കംചെയ്യുക</translation> <translation id="4923279099980110923">അതെ, ഞാൻ സഹായിക്കാൻ താൽപ്പര്യപ്പെടുന്നു</translation> @@ -2657,6 +2673,7 @@ <translation id="5186650237607254032">നിങ്ങൾ വിളിപ്പാടരികെയുള്ളപ്പോൾ ഫോണിന്റെ സ്ക്രീൻ ലോക്ക് ഓഫാക്കുന്നതിന് അത് അപ്ഡേറ്റുചെയ്യുക. വേഗത്തിൽ ഫോൺ അൺലോക്കുചെയ്ത് <ph name="DEVICE_TYPE" /> എന്നതിൽ മികച്ച Smart Lock അനുഭവം ആസ്വദിക്കാനാകും.</translation> <translation id="5187295959347858724">നിങ്ങൾ ഇപ്പോൾ <ph name="SHORT_PRODUCT_NAME" />-ൽ പ്രവേശിച്ചു. നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ, ചരിത്രം, മറ്റ് ക്രമീകരണം എന്നിവയെല്ലാം നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കുന്നു.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> +<translation id="5196721203029902230">ബ്രൗസിംഗും Chrome-ഉം മെച്ചപ്പെടുത്തുന്നതിന് Google-മായി ആശയവിനിമയം നടത്തുക</translation> <translation id="5204967432542742771">പാസ്വേഡ് നല്കുക</translation> <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" ഇല്ലാതാക്കണോ?</translation> <translation id="520621735928254154">സർട്ടിഫിക്കറ്റ് ഇമ്പോർട്ടുചെയ്യുന്നതിൽ പിശക്</translation> @@ -2694,6 +2711,7 @@ <translation id="5254368820972107711">നീക്കംചെയ്യേണ്ട ഫയലുകൾ കാണിക്കുക</translation> <translation id="52550593576409946">കിയോസ്ക് അപ്ലിക്കേഷൻ സമാരംഭിക്കാനായില്ല.</translation> <translation id="5255315797444241226">നിങ്ങള് നല്കിയ പാസ്ഫ്രേസ് തെറ്റാണ്.</translation> +<translation id="5256861893479663409">എല്ലാ സൈറ്റുകളിലും</translation> <translation id="5260508466980570042">ക്ഷമിക്കൂ, നിങ്ങളുടെ ഇമെയില് അല്ലെങ്കില് രഹസ്യവാക്ക് പരിശോധിക്കാന് കഴിഞ്ഞില്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="5261683757250193089">വെബ് സ്റ്റോറിൽ തുറക്കുക</translation> <translation id="5262311848634918433"><ph name="MARKUP_1" />ഓഫ്ലൈനിൽ ആണെങ്കിൽപ്പോലും എവിടെനിന്നും ഫയലുകൾ ആക്സസ് ചെയ്യുക.<ph name="MARKUP_2" /> @@ -2918,6 +2936,8 @@ <translation id="555746285996217175">ലോക്ക് / പവർ</translation> <translation id="5557991081552967863">സുഷുപ്തിയിലായിരിക്കുമ്പോൾ Wi-Fi ഓണാക്കി നിലനിർത്തുക</translation> <translation id="5558129378926964177">സൂം &ഇന് ചെയ്യുക</translation> +<translation id="5558446705802335921">ഫിഷിംഗോ മാൽവെയറോ പോലുള്ള, ഉപദ്രവകരമായ പെരുമാറ്റമോ ഉള്ളടക്കമോ ഉണ്ടോയെന്നറിയാൻ, നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകളും ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകളും പരിശോധിക്കുന്നു</translation> +<translation id="5559719557406102971">Termina VM ആരംഭിക്കുന്നു.</translation> <translation id="55601339223879446">ഡിസ്പ്ലേയിൽ നിങ്ങളുടെ ഡെസ്ക്ടോപ്പിന്റെ ബൗണ്ടറികൾ ക്രമീകരിക്കുക</translation> <translation id="5562781907504170924">ഈ ടാബ് ഒരു Bluetooth ഉപകരണവുമായി കണക്റ്റുചെയ്തിരിക്കുന്നു.</translation> <translation id="5565871407246142825">ക്രെഡിറ്റ് കാര്ഡുകള്</translation> @@ -3122,6 +3142,7 @@ <translation id="5863445608433396414">ഡീബഗ്ഗുചെയ്യൽ ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="5864471791310927901">DHCP തിരയൽ പരാജയപ്പെട്ടു</translation> <translation id="586567932979200359">നിങ്ങള് <ph name="PRODUCT_NAME" /> അതിന്റെ ഡിസ്ക് ചിത്രത്തില് നിന്ന് പ്രവര്ത്തിപ്പിക്കുന്നു. ഇത് നിങ്ങളുടെ കമ്പ്യൂട്ടറില് ഇന്സ്റ്റാള് ചെയ്യുന്നത്, ഡിസ്ക് ചിത്രം ഇല്ലാതെ തന്നെ ഇത് പ്രവര്ത്തിപ്പിക്കാന് നിങ്ങളെ അനുവദിക്കുകയും ഇത് കാലികമാക്കി നിലനിര്ത്തപ്പെടുമെന്ന് ഉറപ്പുവരുത്തുകയും ചെയ്യുന്നു.</translation> +<translation id="5865733239029070421">Google-ലേക്ക് സ്വമേധയാ ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകളും ക്രാഷ് റിപ്പോര്ട്ടുകളും അയയ്ക്കുന്നു</translation> <translation id="5866557323934807206">ഭാവി സന്ദര്ശനങ്ങള്ക്കായി ഈ ക്രമീകരണങ്ങള് മാറ്റുക</translation> <translation id="5866840822086176774">വളരെ ദൃഢമാണ്</translation> <translation id="5867841422488265304">വെബ് വിലാസം തിരയൂ/ ടൈപ്പുചെയ്യൂ</translation> @@ -3172,6 +3193,7 @@ <translation id="5957613098218939406">കൂടുതൽ ഓപ്ഷനുകൾ</translation> <translation id="5958529069007801266">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവ്</translation> <translation id="5959471481388474538">നെറ്റ്വർക്ക് ലഭ്യമല്ല</translation> +<translation id="595959584676692139">ഈ വിപുലീകരണം ഉപയോഗിക്കാൻ പേജ് റീലോഡ് ചെയ്യുക</translation> <translation id="5963026469094486319">തീമുകള് സ്വന്തമാക്കുക</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> പീക്ക്)</translation> <translation id="5965661248935608907">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്കുചെയ്യുമ്പോഴോ ഓമ്നിബോക്സിൽ നിന്ന് തിരയുമ്പോഴോ ദൃശ്യമാകുന്ന പേജും അത് നിയന്ത്രിയ്ക്കും.</translation> @@ -3244,6 +3266,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> എന്ന പേരിലുള്ള ഉപകരണം ഉപയോഗിച്ച് ഡാറ്റ എക്സ്ചേഞ്ചുചെയ്യുക</translation> <translation id="6076448957780543068">ഈ സ്ക്രീന്ഷോട്ട് ഉള്പ്പെടുത്തുക</translation> <translation id="6077131872140550515">തിരഞ്ഞെടുത്തവയിൽ നിന്ന് നീക്കംചെയ്യുക</translation> +<translation id="6078323886959318429">കുറുക്കുവഴി ചേർക്കുക</translation> <translation id="6078752646384677957">നിങ്ങളുടെ മൈക്രോഫോണും ഓഡിയോ ലെവലുകളും പരിശോധിക്കുക.</translation> <translation id="6080515710685820702">പങ്കിട്ട കമ്പ്യൂട്ടറാണോ ഉപയോഗിക്കുന്നത്? അദൃശ്യ വിൻഡോ പരീക്ഷിച്ചുനോക്കൂ.</translation> <translation id="6080689532560039067">നിങ്ങളുടെ സിസ്റ്റം സമയം പരിശോധിക്കുക</translation> @@ -3345,6 +3368,7 @@ <translation id="6237816943013845465">സ്ക്രീൻ റെസല്യൂഷൻ ക്രമീകരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു</translation> <translation id="6238923052227198598">ലോക്ക് സ്ക്രീനിൽ ഏറ്റവും പുതിയ കുറിപ്പ് സൂക്ഷിക്കുക</translation> <translation id="6239558157302047471">റീലോഡും ഫ്രെയിമും</translation> +<translation id="6240004034869232531">അണ്ഇന്സ്റ്റാള് ചെയ്യുന്നു...</translation> <translation id="6241530762627360640">നിങ്ങളുടെ സിസ്റ്റവുമായി ജോടിയാക്കിയ Bluetooth ഉപകരണങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ആക്സസ്സുചെയ്ത് സമീപമുള്ള Bluetooth ഉപകരണങ്ങൾ കണ്ടെത്തുക.</translation> <translation id="6243280677745499710">നിലവിൽ സജ്ജീകരിച്ചിരിക്കുന്നത്</translation> <translation id="6243774244933267674">സെർവർ ലഭ്യമല്ല</translation> @@ -3451,7 +3475,6 @@ <translation id="6406303162637086258">ബ്രൗസർ പുനരാരംഭിക്കൽ പരീക്ഷിച്ചുനോക്കുക</translation> <translation id="6406506848690869874">Sync</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> എന്നിവയിലെ നിങ്ങളുടെ ഡാറ്റ വായിക്കുക, മാറ്റുക</translation> -<translation id="6409731863280057959">പോപ്പ്-അപ്പുകള്</translation> <translation id="6410257289063177456">ചിത്ര ഫയലുകള്</translation> <translation id="6410328738210026208">ചാനലും പവർവാഷും മാറ്റുക</translation> <translation id="6410668567036790476">തിരയൽ എഞ്ചിൻ ചേർക്കുക</translation> @@ -3582,6 +3605,7 @@ <translation id="6596745167571172521">Caps Lock പ്രവർത്തനരഹിതമാക്കുക</translation> <translation id="6596816719288285829">IP വിലാസം</translation> <translation id="6597017209724497268">സാമ്പിളുകൾ</translation> +<translation id="6597332018579308636">ആക്സസ് അനുവദിക്കുക</translation> <translation id="659934686219830168">നിങ്ങൾ ഈ പേജ് വിടുന്ന നിമിഷം, സമന്വയം ആരംഭിക്കും</translation> <translation id="6602353599068390226">വിൻഡോ മറ്റൊരു ഡിസ്പ്ലേയിലേക്ക് നീക്കുക</translation> <translation id="6602956230557165253">നാവിഗേറ്റുചെയ്യുന്നതിന് ഇടത്തേയ്ക്കും വലത്തേയ്ക്കുമുള്ള അമ്പടയാള കീകൾ ഉപയോഗിക്കുക.</translation> @@ -3648,6 +3672,7 @@ <translation id="6690751852586194791">ഈ ഉപകരണത്തിൽ ചേർക്കാൻ ഒരു സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ തിരഞ്ഞെടുക്കുക.</translation> <translation id="6691331417640343772">Google ഡാഷ്ബോര്ഡിലെ സമന്വയിപ്പിച്ച ഡാറ്റ മാനേജുചെയ്യുക</translation> <translation id="6691936601825168937">&മുന്നോട്ട്</translation> +<translation id="6697492270171225480">ഒരു പേജ് കണ്ടെത്താനാകുന്നില്ലെങ്കിൽ, സമാന പേജുകൾക്കായുള്ള നിർദ്ദേശങ്ങൾ കാണിക്കുക</translation> <translation id="6698810901424468597"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> എന്നിവയിലെ നിങ്ങളുടെ ഡാറ്റ വായിക്കുക, മാറ്റുക</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> കാസ്റ്റുചെയ്യുക</translation> <translation id="6701535245008341853">പ്രൊഫൈൽ നേടാന് കഴിഞ്ഞില്ല.</translation> @@ -3658,7 +3683,6 @@ <translation id="6708242697268981054">ഉത്ഭവം:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> ഉപയോഗിച്ച് കണക്റ്റുചെയ്യുക</translation> <translation id="6710213216561001401">കഴിഞ്ഞ</translation> -<translation id="6716704051134091292">PDF കൺവേർട്ടർ</translation> <translation id="6718273304615422081">Zip ചെയ്യുന്നു...</translation> <translation id="671928215901716392">സ്ക്രീൻ ലോക്കുചെയ്യുക</translation> <translation id="67211069045302358">ഈ സൈറ്റിനായുള്ള ക്രമീകരണം റീസെറ്റുചെയ്യണോ?</translation> @@ -3783,7 +3807,6 @@ <translation id="6920989436227028121">പതിവ് ടാബായി തുറക്കുക</translation> <translation id="6922128026973287222">Google ഡാറ്റ സേവർ ഉപയോഗിച്ച് വിവരം സംരക്ഷിച്ച് വേഗത്തിൽ ബ്രൗസുചെയ്യുക. കൂടുതലറിയാൻ ക്ലിക്കുചെയ്യുക.</translation> <translation id="6923132443355966645">സ്ക്രോൾ ചെയ്യുക / ക്ലിക്ക് ചെയ്യുക</translation> -<translation id="6929555043669117778">പോപ്പ്-അപ്പുകള് തടയുന്നത് തുടരുക</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> ഇൻസ്റ്റാൾ ചെയ്യുന്നതിൽ പിശക്...</translation> <translation id="6930242544192836755">സമയ ദൈർഘ്യം</translation> <translation id="6934241953272494177">നിങ്ങളുടെ മീഡിയ ഉപകരണം സ്കാൻ ചെയ്യുന്നു... @@ -3893,9 +3916,9 @@ <translation id="7088434364990739311">അപ്ഡേറ്റ് പരിശോധന ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു (പിശക് കോഡ് <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Files ആപ്പിൽ ZIP ഫയലുകൾ തുറന്ന്, പായ്ക്ക് ചെയ്യുക.</translation> <translation id="7088674813905715446">അഡ്മിനിസ്ട്രേറ്റർ ഈ ഉപകരണം ഡിപ്രൊവിഷൻ ചെയ്ത നിലയിലാക്കിയിരിക്കുന്നു. എൻറോൾമെന്റിനായി ഇത് പ്രവർത്തനക്ഷമമാക്കാൻ, അഡ്മിനിസ്ട്രേറ്റർ ഈ ഉപകരണത്തെ തീർപ്പുകൽപ്പിക്കാത്ത നിലയിലാക്കേണ്ടതുണ്ട്.</translation> -<translation id="7092106376816104">പോപ്പ്-അപ്പ് ഒഴിവാക്കലുകള്</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" /> പേരിലുള്ള ഉപകരണങ്ങൾ ഉപയോഗിച്ച് ഡാറ്റ എക്സ്ചേഞ്ചുചെയ്യുക</translation> +<translation id="7096406577040705016">പൂർണ്ണസ്ക്രീൻ മാഗ്നിഫയർ മാറ്റുക</translation> <translation id="7098447629416471489">സംരക്ഷിച്ച മറ്റ് തിരയൽ എഞ്ചിനുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="7099337801055912064">വലിയ PPD ലോഡ് ചെയ്യാനാകില്ല. പരമാവധി വലുപ്പം 250 kB ആണ്.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> ഇനങ്ങൾ തിരഞ്ഞെടുത്തു</translation> @@ -4112,7 +4135,6 @@ <translation id="744341768939279100">ഒരു പുതിയ പ്രൊഫൈൽ സൃഷ്ടിക്കുക</translation> <translation id="7444726222535375658">Hangouts Meet-ൽ തുടരുക</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> അപ്രാപ്തമാക്കുക</translation> -<translation id="7445682342344043969">പോപ് അപ്പുകൾ തടഞ്ഞു</translation> <translation id="7453008956351770337">ഈ പ്രിന്റർ തിരഞ്ഞെടുക്കുന്നതിലൂടെ, നിങ്ങളുടെ പ്രിന്റർ ആക്സസ്സ് ചെയ്യാൻ ഇനിപ്പറയുന്ന വിപുലീകരണത്തിന് അനുമതി നൽകുന്നു:</translation> <translation id="7453467225369441013">നിങ്ങൾ മിക്ക സൈറ്റുകളിൽ നിന്നും സൈൻ ഔട്ടാകും. നിങ്ങൾ Google അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യപ്പെടില്ല.</translation> <translation id="7456142309650173560">ഡെവലപ്പർ</translation> @@ -4357,6 +4379,24 @@ <ph name="LINE_BREAK2" /> കുറച്ച് ഫോട്ടോകൾ തിരഞ്ഞെടുത്ത് പരീക്ഷിക്കുക.</translation> <translation id="782590969421016895">നിലവിലെ പേജുകള് ഉപയോഗിക്കുക</translation> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />ഡീബഗ് ചെയ്യൽ ഫീച്ചറുകൾ<ph name="END_H3" /> + <ph name="BR" /> + നിങ്ങളുടെ ഉപകരണത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും ഇഷ്ടാനുസൃത കോഡ് പരീക്ഷിക്കുന്നതിനും Chrome OS ഉപകരണത്തിൽ ഡീബഗ് ചെയ്യൽ ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കാനാവും. ഇനി പറയുന്നവ ചെയ്യാൻ ഇത് നിങ്ങളെ അനുവദിക്കും:<ph name="BR" /> + <ph name="BEGIN_LIST" /> + <ph name="LIST_ITEM" />OS ഫയലുകൾ പരിഷ്ക്കരിക്കാനാവുന്നതിന് rootfs പരിശോധിച്ചുറപ്പിക്കൽ നീക്കം ചെയ്യുക + <ph name="LIST_ITEM" />ഉപകരണം ആക്സസ് ചെയ്യുന്നതിന് <ph name="BEGIN_CODE" />'ക്രോസ് ഫ്ലാഷ്'<ph name="END_CODE" /> എന്നതുപോലുള്ള ഉപകരണങ്ങൾ ഉപയോഗിക്കാനാവുന്നതിന് അടിസ്ഥാന പരീക്ഷണ കീകൾ ഉപയോഗിച്ച് ഉപകരണത്തിലേക്കുള്ള SSH ആക്സസ് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക + <ph name="LIST_ITEM" />ഒരു USB ഡ്രൈവിൽ നിന്ന് OS ചിത്രം ഇൻസ്റ്റാൾ ചെയ്യാനാവുന്നതിന് USB-യിൽ നിന്ന് ബൂട്ട് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക + <ph name="LIST_ITEM" />ഒരു ഉപകരണത്തിലേക്ക് സ്വമേധയാ SSH ചെയ്യാനാവുന്നതിന് ഇഷ്ടാനുസൃത മൂല്യത്തിലേക്ക് ഉപകരണത്തെയും സിസ്റ്റം റൂട്ട് ലോഗിൻ പാസ്വേഡിനെയും സജ്ജീകരിക്കുക + <ph name="END_LIST" /> + <ph name="BR" /> + പ്രവർത്തനക്ഷമമാക്കിയാൽ, എന്റർപ്രൈസ് നിയന്ത്രിത ഉപകരണത്തിലെ വിവരം പവർവാഷ് ചെയ്യുകയോ മായ്ക്കുകയോ ചെയ്തതിന് ശേഷവും കൂടുതൽ ഡീബഗ് ചെയ്യൽ ഫീച്ചറുകളും പ്രവർത്തനക്ഷമമായി ശേഷിക്കുന്നു. എല്ലാ ഡീബഗ് ചെയ്യൽ ഫീച്ചറുകളും പൂർണ്ണമായി പ്രവർത്തനരഹിതമാക്കുന്നതിന്, Chrome OS വീണ്ടെടുക്കൽ പ്രോസസ്സ് പൂർത്തിയാക്കുക (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" /> + <ph name="BR" /> + ഡീബഗ് ചെയ്യൽ ഫീച്ചറിനെ കുറിച്ചുള്ള കൂടുതൽ വിവരത്തിന് ഇനിപ്പറയുന്നത് കാണുക:<ph name="BR" /> + https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features + <ph name="BR" /> + <ph name="BR" /> + <ph name="BEGIN_BOLD" />കുറിപ്പ്:<ph name="END_BOLD" /> പ്രോസസ്സ് വേളയിൽ സിസ്റ്റം റീബൂട്ട് ചെയ്യും.</translation> <translation id="7829298379596169484">ഓഡിയോ ഇൻപുട്ട് ആക്സസ്സുചെയ്യുന്നു</translation> <translation id="7831491651892296503">നെറ്റ്വര്ക്ക് കോണ്ഫിഗര് ചെയ്യുന്നതിൽ പിശക്</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4421,6 +4461,7 @@ <translation id="7912080627461681647">സെർവറിൽ നിങ്ങളുടെ പാസ്വേഡ് മാറ്റിയിരിക്കുന്നു. സൈൻ ഔട്ട് ചെയ്യുക, തുടർന്ന് വീണ്ടും സൈൻ ഇൻ ചെയ്യുക.</translation> <translation id="7912883689016444961">മൊബൈൽ നെറ്റ്വർക്ക് കോൺഫിഗർ ചെയ്യുക</translation> <translation id="7915471803647590281">ഫീഡ്ബാക്ക് അയയ്ക്കുന്നതിന് മുമ്പ് എന്തുസംഭവിക്കുന്നുവെന്ന് ഞങ്ങളോട് ദയവായി പറയുക.</translation> +<translation id="7916556741383518510">ക്ലിക്കിൽ</translation> <translation id="792514962475806987">ഡോക്ക് ചെയ്ത സൂം നില:</translation> <translation id="7925247922861151263">AAA പരിശോധന പരാജയപ്പെട്ടു</translation> <translation id="7925285046818567682"><ph name="HOST_NAME" /> നായി കാത്തിരിക്കുന്നു...</translation> @@ -4461,6 +4502,7 @@ <translation id="7978412674231730200">സ്വകാര്യ കീ</translation> <translation id="7979036127916589816">സമന്വയ പിശക്</translation> <translation id="7980084013673500153">അസറ്റ് ഐഡി: <ph name="ASSET_ID" /></translation> +<translation id="7981313251711023384">കൂടുതൽ വേഗത്തിൽ ബ്രൗസ് ചെയ്യാനും തിരയാനും പേജുകൾ റീലോഡ് ചെയ്യുക</translation> <translation id="7982083145464587921">ഈ പിശക് പരിഹരിക്കാൻ നിങ്ങളുടെ ഉപകരണം പുനരാരംഭിക്കുക.</translation> <translation id="7982283708762922719">ഉയരം</translation> <translation id="7982789257301363584">നെറ്റ്വര്ക്ക്</translation> @@ -4537,6 +4579,7 @@ <translation id="8072988827236813198">ടാബുകള് കോര്ക്കുക</translation> <translation id="8074127646604999664">ഡാറ്റ അയയ്ക്കുന്നതും സ്വീകരിക്കുന്നതും പൂർത്തിയാക്കാൻ അടുത്തിടെ അടച്ച സൈറ്റുകളെ അനുവദിക്കുക</translation> <translation id="8075191520954018715">മെമ്മറി നില</translation> +<translation id="8076492880354921740">ടാബുകള്</translation> <translation id="8076835018653442223">അഡ്മിനിസ്ട്രേറ്റർ, നിങ്ങളുടെ ഉപകരണത്തിലെ ലോക്കൽ ഫയലുകളിലേക്കുള്ള ആക്സസ് പ്രവർത്തനരഹിതമാക്കി</translation> <translation id="8077684120002777443">ഉപയോക്തൃനാമം (ഉദാ. user@example.com)</translation> <translation id="8077816382010018681">QU ഫീച്ചർ അറിയിപ്പ് പേര് ഇവിടെയുണ്ട്</translation> @@ -4821,7 +4864,6 @@ <translation id="8569682776816196752">ലക്ഷ്യസ്ഥാനങ്ങൾ ഒന്നും കണ്ടെത്തിയില്ല</translation> <translation id="8569764466147087991">തുറക്കുന്നതിന് ഒരു ഫയല് തിരഞ്ഞെടുക്കുക</translation> <translation id="8571213806525832805">കഴിഞ്ഞ 4 ആഴ്ച</translation> -<translation id="8571613743082299268">സൈറ്റിലേക്ക് റീഡയറക്ട് ചെയ്യുന്നത് ബ്ലോക്ക് ചെയ്തു</translation> <translation id="8574990355410201600">എല്ലായ്പ്പോഴും <ph name="HOST" /> എന്നതിൽ ശബ്ദം അനുവദിക്കുക</translation> <translation id="8578639784464423491">99 അക്ഷരങ്ങളേക്കാൾ അധികമാവരുത്</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> ഇനങ്ങൾ സമന്വയിപ്പിക്കുന്നു...</translation> @@ -4866,6 +4908,7 @@ <translation id="8651585100578802546">ഈ പേജ് വീണ്ടും ലോഡുചെയ്യുന്നതിന് നിര്ബന്ധിക്കുക</translation> <translation id="8652400352452647993">പായ്ക്ക് വിപുലീകരണ പിശക്</translation> <translation id="8652487083013326477">പേജ് പരിധി റേഡിയോ ബട്ടണ്</translation> +<translation id="8653292045957015650">ഡോക്ക് ചെയ്ത മാഗ്നിഫയർ മാറ്റുക</translation> <translation id="8654151524613148204">ഫയലിന്റെ വലുപ്പം കമ്പ്യൂട്ടറിന് കൈകാര്യം ചെയ്യാനാവുന്നതിലും കൂടുതലാണ്. ക്ഷമിക്കണം.</translation> <translation id="8655295600908251630">ചാനല്</translation> <translation id="8655319619291175901">ക്ഷമിക്കണം, എന്തോ തെറ്റായി സംഭവിച്ചു.</translation> @@ -4956,6 +4999,7 @@ <translation id="8757803915342932642">Google ക്ലൗഡ് ഉപകരണങ്ങളിലെ ഉപകരണം</translation> <translation id="8759408218731716181">ഒന്നിലധികം സൈൻ ഇൻ സജ്ജമാക്കാനാവില്ല</translation> <translation id="8759753423332885148">കൂടുതലറിയുക.</translation> +<translation id="8762207669047572135">ആക്സസ് അനുവദിക്കുക</translation> <translation id="8767621466733104912">എല്ലാ ഉപയോക്താക്കൾക്കുമായി സ്വയമേവ Chrome അപ്ഡേറ്റുചെയ്യുക</translation> <translation id="8770406935328356739">വിപുലീകരണ റൂട്ട് ഡയറക്ടറി</translation> <translation id="8770507190024617908">ആളുകളെ മാനേജുചെയ്യുക</translation> @@ -5085,7 +5129,9 @@ <translation id="8976520271376534479">ഈ പേജില് ഫ്ലാഷ് ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു.</translation> <translation id="8977811652087512276">പാസ്വേഡ് തെറ്റോ ഫയൽ കേടോ ആണ്</translation> <translation id="8978154919215542464">ഓണാണ് - എല്ലാം സമന്വയിപ്പിക്കുക</translation> +<translation id="897939795688207351"><ph name="ORIGIN" />-ൽ</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - ക്രാഷായി</translation> +<translation id="8983677657449185470">സുരക്ഷിത ബ്രൗസിംഗ് മെച്ചപ്പെടുത്താൻ സഹായിക്കുക</translation> <translation id="8986362086234534611">മറന്നു</translation> <translation id="8986494364107987395">Google ലേക്ക് സ്വപ്രേരിതമായി ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകളും ക്രാഷ് റിപ്പോര്ട്ടുകളും അയയ്ക്കുക</translation> <translation id="8987927404178983737">മാസം</translation> @@ -5094,6 +5140,7 @@ <translation id="8995603266996330174"><ph name="DOMAIN" /> എന്നത് കൈകാര്യം ചെയ്യുന്നു</translation> <translation id="8996526648899750015">അക്കൗണ്ട് ചേർക്കുക...</translation> <translation id="8997135628821231"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (<ph name="DEVICE" />)</translation> +<translation id="8998788483361403036">ഡിസ്ക്ക് ചിത്രം സൃഷ്ടിക്കുന്നു.</translation> <translation id="9003647077635673607">എല്ലാ വെബ്സൈറ്റുകളിലും അനുവദിക്കുക</translation> <translation id="9003677638446136377">വീണ്ടും പരിശോധിക്കുക</translation> <translation id="9003704114456258138">ആവൃത്തി</translation> @@ -5129,6 +5176,7 @@ <translation id="9042893549633094279">സ്വകാര്യതയും സുരക്ഷയും</translation> <translation id="904451693890288097">"<ph name="DEVICE_NAME" />" എന്നതിനായുള്ള പാസ്കീ നൽകുക:</translation> <translation id="9044646465488564462">നെറ്റ്വര്ക്കിലേക്ക് കണക്റ്റുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു: <ph name="DETAILS" /></translation> +<translation id="9045430190527754450">നിങ്ങൾ എത്തിച്ചേരാൻ ശ്രമിക്കുന്ന പേജിന്റെ വെബ് വിലാസം Google-ലേക്ക് അയയ്ക്കുന്നു</translation> <translation id="9046895021617826162">ബന്ധിപ്പിക്കല് പരാജയപ്പെട്ടു</translation> <translation id="9050666287014529139">പാസ്ഫ്രെയ്സ്</translation> <translation id="9052208328806230490"><ph name="EMAIL" /> അക്കൗണ്ട് ഉപയോഗിച്ച് <ph name="CLOUD_PRINT_NAME" /> ല് നിങ്ങളുടെ പ്രിന്ററുകളെ രജിസ്റ്റര് ചെയ്തു</translation> @@ -5146,7 +5194,6 @@ <translation id="9065203028668620118">എഡിറ്റുചെയ്യുക</translation> <translation id="9066782832737749352">ടെക്സ്റ്റ്-ടു-സ്പീച്ച്</translation> <translation id="9070219033670098627">ഉപയോക്താവിനെ മാറ്റുക</translation> -<translation id="907148966137935206">പോപ്പ്-അപ്പുകള് കാണിക്കാന് ഒരു സൈറ്റിനെയും അനുവദിക്കരുത് (ശുപാര്ശിതം)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> ഇന്സ്റ്റാള് ചെയ്യുന്നു...</translation> <translation id="9072550133391925347">നിങ്ങൾ സംരക്ഷിച്ച പാസ്വേഡുകൾ ഉപയോഗിച്ച് യോഗ്യമായ സൈറ്റുകളിലേക്കും ആപ്സിലേക്കും <ph name="PASSWORD_MANAGER_BRAND" />, നിങ്ങളെ സ്വയമേവ സൈൻ ഇൻ ചെയ്യിക്കുന്നു.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index d392a99..2102cdb 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">हे पृष्ठ बुकमार्क करा...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> आयटम हटवत आहे...</translation> <translation id="1048286738600630630">प्रदर्शित करते</translation> +<translation id="1049743911850919806">गुप्त</translation> <translation id="1049795001945932310">&भाषा सेटिंग्ज</translation> <translation id="1049926623896334335">Word दस्तऐवज</translation> <translation id="1054153489933238809">नवीन टॅबमध्ये मूळ &प्रतिमा उघडा</translation> @@ -425,7 +426,7 @@ <translation id="1643072738649235303">SHA-1 सह X9.62 ECDSA स्वाक्षरी</translation> <translation id="1644574205037202324">इतिहास</translation> <translation id="1645516838734033527">तुमचा <ph name="DEVICE_TYPE" /> सुरक्षित ठेवण्यासाठी Smart Lockला तुमच्या फोनवर स्क्रीन लॉकची आवश्यकता आहे.</translation> -<translation id="1646102270785326155">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटविला जाईल. $1 अद्याप नंतर साइन इन करू शकतो.</translation> +<translation id="1646102270785326155">एकदा हा वापरकर्ता काढल्यानंतर या वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटवला जाईल. $1 अद्याप नंतर साइन इन करू शकतो.</translation> <translation id="1646982517418478057">कृपया हे प्रमाणपत्र कूटबद्ध करण्यासाठी एक पासवर्ड एंटर करा</translation> <translation id="164814987133974965">आपल्या मार्गदर्शनाने एक पर्यवेक्षी वापरकर्ता वेब एक्सप्लोर करू शकतो. पर्यवेक्षी वापरकर्त्याचे व्यवस्थापक म्हणून, आपण विशिष्ट वेबसाइट <ph name="BEGIN_BOLD" />अनुमत किंवा प्रतिबंधित<ph name="END_BOLD" /> करू शकता, @@ -525,7 +526,6 @@ <translation id="1782924894173027610">समक्रमण सर्व्हर व्यस्त आहे, कृपया नंतर पुन्हा प्रयत्न करा.</translation> <translation id="1784849162047402014">डिव्हाइसवर डिस्क स्थान कमी आहे</translation> <translation id="1786636458339910689">टीम ड्राइव्ह</translation> -<translation id="1789575671122666129">पॉपअप</translation> <translation id="1792619191750875668">विस्तारित प्रदर्शन</translation> <translation id="1793119619663054394">आपल्याला खात्री आहे की आपण या संगणकावरून "<ph name="PROFILE_NAME" />" आणि सर्व संबंधित Chrome डेटा काढू इच्छिता? हे पूर्ववत केले जाऊ शकत नाही.</translation> <translation id="1794791083288629568">या समस्येचे निराकरण करण्यात आम्हाला मदत करण्यासाठी अभिप्राय पाठवा.</translation> @@ -648,6 +648,7 @@ <translation id="1983959805486816857">आपण एक नवीन पर्यवेक्षी वापरकर्ता तयार केल्यानंतर, आपण <ph name="MANAGEMENT_URL" /> वर कोणत्याही डिव्हाइसवरून कोणत्याही वेळी सेटिंग्ज व्यवस्थापित करू शकता.</translation> <translation id="1984642098429648350">विंडो उजवीकडे आणा</translation> <translation id="1987139229093034863">विभिन्न वापरकर्त्यावर बदला.</translation> +<translation id="1987317783729300807">खाती</translation> <translation id="1989112275319619282">ब्राउझ करा</translation> <translation id="1992397118740194946">सेट नाही</translation> <translation id="1994173015038366702">साइट URL</translation> @@ -749,7 +750,6 @@ <translation id="2151576029659734873">अवैध टॅब अनुक्रमणिका एंटर केली.</translation> <translation id="2154484045852737596">कार्ड संपादित करा</translation> <translation id="2154710561487035718">URL कॉपी करा</translation> -<translation id="2155931291251286316">नेहमी <ph name="HOST" /> कडील पॉप-अप ना परवानगी द्या</translation> <translation id="215753907730220065">पूर्ण स्क्रीनमधून निर्गमन करा</translation> <translation id="2157875535253991059">हे पृष्ठ आता फुल स्क्रीन असेल.</translation> <translation id="216169395504480358">Wi-Fi जोडा...</translation> @@ -1175,7 +1175,6 @@ <translation id="2799223571221894425">पुन्हा लाँच करा</translation> <translation id="2803375539583399270">पिन एंटर करा</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">पॉप-अप दर्शविण्यासाठी सर्व साइटना परवानगी द्या</translation> <translation id="2805756323405976993">अॅप्लिकेशन</translation> <translation id="2807517655263062534">तुम्ही डाउनलोड केलेल्या फायली येथे दिसतात</translation> <translation id="2809586584051668049">आणि <ph name="NUMBER_ADDITIONAL_DISABLED" /> अधिक</translation> @@ -1303,7 +1302,7 @@ <translation id="3007771295016901659">डुप्लिकेट टॅब</translation> <translation id="3009300415590184725">मोबाइल डेटा सेट अप प्रक्रिया रद्द करु इच्छित आहात याबद्दल आपल्याला खात्री आहे?</translation> <translation id="3009779501245596802">अनुक्रमित डेटाबेस</translation> -<translation id="3010279545267083280">पासवर्ड हटविला</translation> +<translation id="3010279545267083280">पासवर्ड हटवला</translation> <translation id="3011284594919057757">फ्लॅश बद्दल</translation> <translation id="3011362742078013760">सर्व बुकमार्क &गुप्त विंडोमध्ये उघडा</translation> <translation id="3011488081941333749">बाहेर पडताना <ph name="DOMAIN" /> वरील कुकीज साफ केल्या जातील</translation> @@ -1608,7 +1607,6 @@ <translation id="347919930506963698">Chrome मधून आणखी बरेच काही मिळवा</translation> <translation id="3479552764303398839">सध्या नाही</translation> <translation id="3480892288821151001">विंडो डावीकडे आणा</translation> -<translation id="3481915276125965083">खालील पॉप-अप या पृष्ठावर अवरोधित केलेली आहेत:</translation> <translation id="3484273680291419129">धोकादायक सॉफ्टवेअर काढत आहे...</translation> <translation id="3484869148456018791">नवीन प्रमाणपत्र मिळवा</translation> <translation id="3487007233252413104">अनामित कार्य</translation> @@ -1713,7 +1711,6 @@ <translation id="3637682276779847508">आपण योग्य पिन अनलॉक की एंटर न केल्यास आपले सिम कार्ड कायमचे अक्षम केले जाईल.</translation> <translation id="363903084947548957">पुढील इनपुट पद्धत</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> साठी "<ph name="EXTENSION_NAME" />" जोडायचे?</translation> -<translation id="3643225892037417978">अतिथी वापरकर्त्यांसाठी एक्स्टेंशन व्यवस्थापन उपलब्ध नाही. एक्स्टेंशन व्यवस्थापित करण्यासाठी कृपया साइन इन करा.</translation> <translation id="3644896802912593514">रूंदी</translation> <translation id="3646789916214779970">डीफॉल्ट थीमवर रीसेट करा</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> आढळले</translation> @@ -2051,7 +2048,6 @@ <translation id="4172051516777682613">नेहमी दर्शवा</translation> <translation id="4175737294868205930">सातत्यपूर्ण संचय</translation> <translation id="4176463684765177261">अक्षम</translation> -<translation id="4180684688621252156">प्रिंटिंग सेवा</translation> <translation id="4180788401304023883">CA प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" हटवायचे?</translation> <translation id="4181602000363099176">२०x</translation> <translation id="4181841719683918333">भाषा</translation> @@ -2486,7 +2482,7 @@ <translation id="49027928311173603">सर्व्हरवरून डाउनलोड केलेले धोरण अवैध आहे: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4905417359854579806"><ph name="FILE_COUNT" /> चा बॅकअप घेण्यास तयार</translation> <translation id="4907161631261076876">ही फाईल सामान्यपणे डाउनलोड केली नाही आणि कदाचित धोकादायक असू शकते.</translation> -<translation id="4907306957610201395">परवानगी श्रेणी</translation> +<translation id="4907306957610201395">परवानगी वर्गवारी</translation> <translation id="4907824805858067479">तुमच्या अॅडमिनिस्ट्रेटरने सेव्ह केलेली कार्डे बंद केली आहेत</translation> <translation id="4908811072292128752">एकाच वेळी दोन साइट ब्राउझ करण्यासाठी एक नवीन टॅब उघडा</translation> <translation id="4909038193460299775">हे खाते <ph name="DOMAIN" /> ने व्यवस्थापित केले असल्याने, आपले बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज या डिव्हाइस वरून साफ केल्या जातील. तथापि, आपला डेटा आपल्या Google खात्यामध्ये संचयित केलेला असेल आणि <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> वर व्यवस्थापित केला जाऊ शकतो.</translation> @@ -2631,7 +2627,7 @@ <translation id="5145331109270917438">सुधारणा तारीख</translation> <translation id="514575469079499857">स्थान निर्धारित करण्यासाठी तुमचा आयपी अॅड्रेस वापरा (डिफॉल्ट)</translation> <translation id="5150254825601720210">Netscape प्रमाणपत्र SSL सर्व्हर नाव</translation> -<translation id="5151354047782775295">डिस्क स्थान मोकळे करा किंवा निवडलेला डेटा स्वयंचलितपणे हटविला जाऊ शकतो</translation> +<translation id="5151354047782775295">डिस्क स्थान मोकळे करा किंवा निवडलेला डेटा स्वयंचलितपणे हटवला जाऊ शकतो</translation> <translation id="5153297660536091054">पिन अनलॉक वैशिष्ट्य</translation> <translation id="5154108062446123722"><ph name="PRINTING_DESTINATION" /> यासाठी प्रगत सेटिंग्ज</translation> <translation id="5154176924561037127">F8</translation> @@ -2840,7 +2836,7 @@ <translation id="5449551289610225147">अवैध पासवर्ड</translation> <translation id="5449588825071916739">सर्व टॅब बुकमार्क करा</translation> <translation id="5449716055534515760">विं&डो बंद करा</translation> -<translation id="5451285724299252438">पृष्ठ श्रेणी मजकूर बॉक्स</translation> +<translation id="5451285724299252438">पृष्ठ वर्गवारी मजकूर बॉक्स</translation> <translation id="5453029940327926427">टॅब बंद करा</translation> <translation id="5454166040603940656"><ph name="PROVIDER" /> सह</translation> <translation id="5457113250005438886">अवैध</translation> @@ -3247,6 +3243,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> नावाच्या डिव्हाइससह डेटा अदलाबदल करा</translation> <translation id="6076448957780543068">हा स्क्रीनशॉट समाविष्ट करा</translation> <translation id="6077131872140550515">प्राधान्यीकृत मधून हटवा</translation> +<translation id="6078323886959318429">शॉर्टकट जोडा</translation> <translation id="6078752646384677957">कृपया तुमचा मायक्रोफोन आणि ऑडिओ स्तर तपासा.</translation> <translation id="6080515710685820702">शेअर केलेला काँप्युटर वापरत आहात का? गुप्त विंडो उघडण्याचा प्रयत्न करा.</translation> <translation id="6080689532560039067">आपली प्रणाली वेळ तपासा</translation> @@ -3306,7 +3303,7 @@ <translation id="6160625263637492097">प्रमाणीकरणासाठी प्रमाणपत्रे प्रदान करा</translation> <translation id="6163363155248589649">&सामान्य</translation> <translation id="6163522313638838258">सर्व विस्तृत करा...</translation> -<translation id="6164005077879661055">एकदा हा पर्यवेक्षी वापरकर्ता काढल्यानंतर पर्यवेक्षी वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटविला जाईल. या पर्यवेक्षी वापरकर्त्यासाठी भेट दिलेल्या वेबसाइट आणि सेटिंग्ज तरीही <ph name="MANAGEMENT_URL" /> वर व्यवस्थापकाद्वारे दृश्यमान असू शकतात.</translation> +<translation id="6164005077879661055">एकदा हा पर्यवेक्षी वापरकर्ता काढल्यानंतर पर्यवेक्षी वापरकर्त्याशी संबद्ध सर्व फायली आणि स्थानिक डेटा कायमचा हटवला जाईल. या पर्यवेक्षी वापरकर्त्यासाठी भेट दिलेल्या वेबसाइट आणि सेटिंग्ज तरीही <ph name="MANAGEMENT_URL" /> वर व्यवस्थापकाद्वारे दृश्यमान असू शकतात.</translation> <translation id="6165508094623778733">अधिक जाणून घ्या</translation> <translation id="6166185671393271715">Chrome मध्ये पासवर्ड आयात करा</translation> <translation id="6169040057125497443">कृपया तुमचा मायक्रोफोन तपासा.</translation> @@ -3454,7 +3451,6 @@ <translation id="6406303162637086258">ब्राउझर रीस्टार्ट प्रतिकृती करा</translation> <translation id="6406506848690869874">Sync</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, आणि <ph name="WEBSITE_3" /> वर आपला डेटा वाचा आणि बदला</translation> -<translation id="6409731863280057959">पॉप-अप</translation> <translation id="6410257289063177456">प्रतिमा फायली</translation> <translation id="6410328738210026208">चॅनेल बदला आणि Powerwash करा</translation> <translation id="6410668567036790476">शोध इंजिन जोडा</translation> @@ -3661,7 +3657,6 @@ <translation id="6708242697268981054">मूळ:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> वापरून कनेक्ट करा</translation> <translation id="6710213216561001401">मागील</translation> -<translation id="6716704051134091292">PDF रूपांतरकर्ता</translation> <translation id="6718273304615422081">झिप करत आहे...</translation> <translation id="671928215901716392">लॉक स्क्रीन</translation> <translation id="67211069045302358">या साइटसाठी सेटिंग्ज रीसेट करायच्या?</translation> @@ -3775,7 +3770,7 @@ <translation id="6903534926908201625">Google गोळा करत असलेली माहिती तुम्ही <ph name="BEGIN_LINK" />सेटिंग्ज<ph name="END_LINK" /> मध्ये जाऊन कधीही कस्टमाइझ करू शकता.</translation> <translation id="6904344821472985372">फाईल प्रवेश मागे घ्या</translation> <translation id="6904655473976120856">बाहेर पडण्यासाठी अॅप बटण दाबा</translation> -<translation id="6910211073230771657">हटविला</translation> +<translation id="6910211073230771657">हटवला</translation> <translation id="6910240653697687763"><ph name="URL" /> ला तुमच्या MIDI डिव्हाइसचे पूर्ण नियंत्रण मिळवायचे आहे</translation> <translation id="691024665142758461">एकाधिक फायली डाउनलोड करा</translation> <translation id="6911324888870229398">नेटवर्क कनेक्शन गमावले होते. कृपया तुमचे कनेक्शन तपासा किंवा दुसरे वाय-फाय नेटवर्क वापरून पहा.</translation> @@ -3786,7 +3781,6 @@ <translation id="6920989436227028121">नियमित टॅब म्हणून वापरा</translation> <translation id="6922128026973287222">Google डेटा बचतकर्ता वापरून डेटा सेव्ह करा आणि अधिक जलद ब्राउझ करा. अधिक जाणून घेण्यासाठी क्लिक करा.</translation> <translation id="6923132443355966645">स्क्रोल करा / क्लिक करा</translation> -<translation id="6929555043669117778">पॉप-अप अवरोधित करणे सुरू ठेवा </translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> इंस्टॉल करताना एरर...</translation> <translation id="6930242544192836755">कालावधी</translation> <translation id="6934241953272494177">तुमचे मीडिया डिव्हाइस स्कॅन करत आहे... @@ -3838,7 +3832,7 @@ <translation id="7003339318920871147">वेब डेटाबेस</translation> <translation id="7003723821785740825">आपले डिव्हाइस अनलॉक करण्यासाठी एक द्रुत मार्ग सेट करा</translation> <translation id="7004499039102548441">अलीकडील टॅब</translation> -<translation id="7005848115657603926">अवैध पृष्ठ श्रेणी, <ph name="EXAMPLE_PAGE_RANGE" /> वापरा</translation> +<translation id="7005848115657603926">अवैध पृष्ठ वर्गवारी, <ph name="EXAMPLE_PAGE_RANGE" /> वापरा</translation> <translation id="7006634003215061422">तळाचा समास</translation> <translation id="7006844981395428048">$1 ऑडिओ</translation> <translation id="7007648447224463482">सर्व नवीन विंडोमध्ये उघडा</translation> @@ -3896,7 +3890,6 @@ <translation id="7088434364990739311">अपडेट तपासणी प्रारंभ होण्यात अयशस्वी (एरर कोड <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Files अॅपमध्ये झिप फायली उघडा आणि पॅक करा.</translation> <translation id="7088674813905715446">हे डिव्हाइस प्रशासकाद्वारे तरतूद नसलेल्या स्थितीमध्ये ठेवले गेले आहे. ते नोंदणीकरिता सक्षम करण्यासाठी, कृपया आपल्या प्रशासकाने डिव्हाइस एका प्रलंबित स्थितीमध्ये ठेवावे.</translation> -<translation id="7092106376816104">पॉप-अप अपवाद</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">या नावाच्या डिव्हाइसेससह डेटा अदलाबदल करा: <ph name="HOSTNAMES" /></translation> <translation id="7098447629416471489">इतर जतन शोध इंजिन येथे दिसून येतील</translation> @@ -4115,7 +4108,6 @@ <translation id="744341768939279100">एक नवीन प्रोफाईल तयार करा</translation> <translation id="7444726222535375658">Hangouts Meet सुरू ठेवा</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> अक्षम करा</translation> -<translation id="7445682342344043969">पॉप-अप ब्लॉक केले</translation> <translation id="7453008956351770337">हा प्रिंटर निवडून, आपण खालील विस्तारास आपल्या प्रिंटरमध्ये प्रवेश करण्याची परवानगी देत आहात:</translation> <translation id="7453467225369441013">तुम्हाला बहुतांश साइटमधून साइन आउट करते. तुम्हाला तुमच्या Google खात्यामधून साइन आउट केले जाणार नाही.</translation> <translation id="7456142309650173560">dev</translation> @@ -4374,7 +4366,7 @@ <translation id="7847212883280406910"><ph name="IDS_SHORT_PRODUCT_OS_NAME" /> वर स्विच करण्यासाठी Ctrl + Alt + S दाबा</translation> <translation id="7847644661628718598">चटकन नोंदणी करण्यासाठी बूटस्ट्रॅपिंग अॅप वापरा</translation> <translation id="7849264908733290972">नवीन टॅबमध्ये &प्रतिमा उघडा</translation> -<translation id="784934925303690534">वेळ श्रेणी</translation> +<translation id="784934925303690534">वेळ वर्गवारी</translation> <translation id="7850851215703745691">या ड्राइव्ह फायली अद्याप सामायिक केल्या नाहीत</translation> <translation id="7851457902707056880">साइन इन केवळ मालकाच्या खात्यावर प्रतिबंधित आहे. कृपया रिबूट करा आणि मालक खात्यासह साइन इन करा. मशीन 30 सेकंदांमध्ये स्वयं रिबूट होईल.</translation> <translation id="7851716364080026749">नेहमी कॅमेरा आणि मायक्रोफोन प्रवेश अवरोधित करा</translation> @@ -4537,6 +4529,7 @@ <translation id="8072988827236813198">पिन टॅब</translation> <translation id="8074127646604999664">अलीकडे बंद केलेल्या साइटना डेटा पाठविणे आणि प्राप्त करणे समाप्त करण्याची अनुमती द्या</translation> <translation id="8075191520954018715">मेमरी स्थिती</translation> +<translation id="8076492880354921740">टॅब</translation> <translation id="8076835018653442223">तुमच्या अॅडमिनिस्ट्रेटरने तुमच्या डिव्हाइसवरील स्थानिक फायलींचा अॅक्सेस बंद केला आहे</translation> <translation id="8077684120002777443">वापरकर्तानाव (e.g. user@example.com)</translation> <translation id="8077816382010018681">QU वैशिष्ट्य सूचना शीर्षक येथे असेल</translation> @@ -4755,7 +4748,7 @@ <translation id="8461329675984532579">मुख्यपृष्ठ प्रदाता नाव</translation> <translation id="84613761564611563">नेटवर्क कॉन्फिगर UI ची विनंती केली, कृपया प्रतीक्षा करा...</translation> <translation id="8461914792118322307">प्रॉक्सी</translation> -<translation id="8463215747450521436">हा पर्यवेक्षी वापरकर्ता व्यवस्थापकाद्वारे हटविला किंवा अक्षम केलेला असू शकतो. कृपया हा वापरकर्ता म्हणून साइन इन करणे आपण सुरू ठेवू इच्छित असल्यास व्यवस्थापकाशी संपर्क साधा.</translation> +<translation id="8463215747450521436">हा पर्यवेक्षी वापरकर्ता व्यवस्थापकाद्वारे हटवला किंवा अक्षम केलेला असू शकतो. कृपया हा वापरकर्ता म्हणून साइन इन करणे आपण सुरू ठेवू इच्छित असल्यास व्यवस्थापकाशी संपर्क साधा.</translation> <translation id="846374874681391779">डाउनलोड बार</translation> <translation id="8463955938112983119"><ph name="PLUGIN_NAME" /> अक्षम केले.</translation> <translation id="8464132254133862871">हे वापरकर्ता खाते सेवेसाठी आदेय नाही.</translation> @@ -4821,7 +4814,6 @@ <translation id="8569682776816196752">कोणतीही गंतव्ये आढळली नाहीत</translation> <translation id="8569764466147087991">उघडण्यासाठी फाइल निवडा</translation> <translation id="8571213806525832805">मागील 4 आठवड्यांमधील</translation> -<translation id="8571613743082299268">साइटवर रीडिरेक्ट करणे ब्लॉक केले</translation> <translation id="8574990355410201600"><ph name="HOST" /> वर आवाज नेहमी चालू ठेवा</translation> <translation id="8578639784464423491">९९ पेक्षा जास्त अक्षरे असू शकत नाहीत</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> आयटम संकालित करीत आहे...</translation> @@ -4865,7 +4857,7 @@ <translation id="8650543407998814195">जरी तुम्ही आता तुमची जुनी प्रोफाइल अॅक्सेस करू शकत नसलात, तरीही तुम्ही ती काढून टाकू शकता.</translation> <translation id="8651585100578802546">सक्तीने हे पृष्ठ रीलोड करा</translation> <translation id="8652400352452647993">पॅक विस्तार एरर</translation> -<translation id="8652487083013326477">पृष्ठ श्रेणी रेडिओ बटण</translation> +<translation id="8652487083013326477">पृष्ठ वर्गवारी रेडिओ बटण</translation> <translation id="8654151524613148204">आपल्या संगणकाला हाताळण्यासाठी ही फाइल खूप मोठी आहे. क्षमस्व.</translation> <translation id="8655295600908251630">खाडी</translation> <translation id="8655319619291175901">अरेरे, काहीतरी चूक झाली.</translation> @@ -5148,7 +5140,6 @@ <translation id="9065203028668620118">संपादन</translation> <translation id="9066782832737749352">टेक्स्ट टू स्पीच</translation> <translation id="9070219033670098627">व्यक्ती स्विच करा</translation> -<translation id="907148966137935206">कोणत्याही साइटला पॉप-अप दर्शविण्याची परवानगी देऊ नका (शिफारस केलेले)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> इंस्टॉल करत आहे…</translation> <translation id="9072550133391925347">आपण जतन केलेल्या संकेतशब्दासह <ph name="PASSWORD_MANAGER_BRAND" /> स्वयंचलितपणे आपल्याला पात्र असलेल्या साइट आणि अॅप्समध्ये साइन इन करते.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 212dd264..7072557 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Tanda Halaman Ini...</translation> <translation id="1047956942837015229">Memadamkan <ph name="COUNT" /> item...</translation> <translation id="1048286738600630630">Paparan</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Tetapan bahasa</translation> <translation id="1049926623896334335">Dokumen Word</translation> <translation id="1054153489933238809">Buka &Imej Asal dalam Tab Baharu</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Pelayan segerak sibuk, sila cuba semula kemudian.</translation> <translation id="1784849162047402014">Peranti kekurangan ruang cakera</translation> <translation id="1786636458339910689">Drive Pasukan</translation> -<translation id="1789575671122666129">Pop timbul</translation> <translation id="1792619191750875668">Paparan lanjutan</translation> <translation id="1793119619663054394">Adakah anda pasti mahu mengalih keluar "<ph name="PROFILE_NAME" />" dan semua data Chrome yang berkaitan dari komputer ini? Tindakan ini tidak boleh dibuat asal.</translation> <translation id="1794791083288629568">Hantar maklum balas untuk membantu kami menyelesaikan isu ini.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Selepas anda membuat pengguna diselia baharu, anda boleh mengurus tetapan pada bila-bila masa dari mana-mana peranti di <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Letakkan tetingkap di kanan</translation> <translation id="1987139229093034863">Tukar kepada pengguna yang lain.</translation> +<translation id="1987317783729300807">Akaun</translation> <translation id="1989112275319619282">Semak Imbas</translation> <translation id="1992397118740194946">Tidak ditetapkan</translation> <translation id="1994173015038366702">URL tapak</translation> <translation id="1997484222658892567"><ph name="URL" /> mahu menyimpan data bersaiz besar pada komputer setempat anda secara kekal</translation> <translation id="1997616988432401742">Sijil anda</translation> <translation id="1999115740519098545">Pada permulaan</translation> +<translation id="2001796770603320721">Urus dalam Drive</translation> <translation id="2006638907958895361">Buka Pautan dalam <ph name="APP" /></translation> <translation id="2007404777272201486">Laporkan Isu...</translation> <translation id="2016430552235416146">Tradisional</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Indeks tab tidak sah dimasukkan.</translation> <translation id="2154484045852737596">Edit kad</translation> <translation id="2154710561487035718">Salin URL</translation> -<translation id="2155931291251286316">Sentiasa benarkan pop muncul daripada <ph name="HOST" /></translation> <translation id="215753907730220065">Keluar Daripada Skrin Penuh</translation> <translation id="2157875535253991059">Halaman ini kini dalam skrin penuh.</translation> <translation id="216169395504480358">Tambah Wi-Fi...</translation> @@ -1184,7 +1185,6 @@ <translation id="2799223571221894425">Lancarkan semula</translation> <translation id="2803375539583399270">Masukkan PIN</translation> <translation id="2805646850212350655">Sistem Fail Penyulitan Microsoft</translation> -<translation id="2805707493867224476">Membenarkan semua tapak untuk memaparkan pop muncul</translation> <translation id="2805756323405976993">Apl</translation> <translation id="2807517655263062534">Fail yang anda muat turun dipaparkan di sini</translation> <translation id="2809586584051668049">dan <ph name="NUMBER_ADDITIONAL_DISABLED" /> lagi</translation> @@ -1618,7 +1618,6 @@ <translation id="347919930506963698">Dapatkan lebih banyak lagi daripada Chrome</translation> <translation id="3479552764303398839">Bukan sekarang</translation> <translation id="3480892288821151001">Letakkan tetingkap di kiri</translation> -<translation id="3481915276125965083">Pop muncul berikut disekat pada halaman ini:</translation> <translation id="3484273680291419129">Mengalih keluar perisian berbahaya...</translation> <translation id="3484869148456018791">Dapatkan sijil baharu</translation> <translation id="3487007233252413104">fungsi awanama</translation> @@ -1724,7 +1723,6 @@ <translation id="3637682276779847508">Kad SIM anda akan dilumpuhkan secara kekal jika anda tidak dapat memasukkan Kunci Buka Kunci PIN yang betul.</translation> <translation id="363903084947548957">Kaedah input seterusnya</translation> <translation id="3640214691812501263">Tambahkan "<ph name="EXTENSION_NAME" />" untuk <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Pengurusan sambungan tidak tersedia untuk pengguna Tetamu. Sila log masuk untuk mengurus sambungan.</translation> <translation id="3644896802912593514">Lebar</translation> <translation id="3646789916214779970">Tetapkan semula ke tema lalai</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> dikesan</translation> @@ -2066,7 +2064,6 @@ <translation id="4172051516777682613">Sentiasa paparkan</translation> <translation id="4175737294868205930">Storan berterusan</translation> <translation id="4176463684765177261">Dilumpuhkan</translation> -<translation id="4180684688621252156">Perkhidmatan mencetak</translation> <translation id="4180788401304023883">Padamkan sijil CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Bahasa</translation> @@ -2092,6 +2089,7 @@ <translation id="42137655013211669">Akses kepada sumber ini dilarang oleh pelayan.</translation> <translation id="4215350869199060536">Alamak, simbol tidak sah terdapat dalam nama!</translation> <translation id="4215448920900139318">Menyandarkan <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Pengimlakan</translation> <translation id="4225397296022057997">Di semua tapak</translation> <translation id="4235200303672858594">Keseluruhan skrin</translation> <translation id="4235813040357936597">Tambah akaun untuk <ph name="PROFILE_NAME" /></translation> @@ -2204,6 +2202,7 @@ <translation id="4425149324548788773">Drive Saya</translation> <translation id="4430019312045809116">Kelantangan</translation> <translation id="4430369329743628066">Penanda halaman ditambahkan</translation> +<translation id="4434045419905280838">Tetingkap timbul dan ubah hala</translation> <translation id="443454694385851356">Lama (tidak selamat)</translation> <translation id="443464694732789311">Teruskan</translation> <translation id="443475966875174318">Kemas kini atau alih keluar aplikasi yang tidak serasi</translation> @@ -2944,7 +2943,7 @@ <translation id="555746285996217175">Kunci / kuasa</translation> <translation id="5557991081552967863">Pastikan Wi-Fi hidup semasa tidur</translation> <translation id="5558129378926964177">Zum &Masuk</translation> -<translation id="5558446705802335921">Semak tapak yang anda lawati dan fail yang dimuat turun untuk mengesan gelagat atau kandungan yang berbahaya, seperti pancingan data atau perisian hasad</translation> +<translation id="5558446705802335921">Menyemak tapak yang anda lawati dan fail yang dimuat turun untuk mengesan gelagat atau kandungan yang berbahaya, seperti pancingan data atau perisian hasad</translation> <translation id="5559719557406102971">Memulakan Termina VM.</translation> <translation id="55601339223879446">Laraskan sempadan desktop anda dalam lingkungan paparan</translation> <translation id="5562781907504170924">Tab ini disambungkan ke Peranti Bluetooth.</translation> @@ -3274,6 +3273,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="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> <translation id="6080689532560039067">Semak masa sistem anda</translation> @@ -3482,7 +3482,6 @@ <translation id="6406303162637086258">Rangsang mula semula penyemak imbas</translation> <translation id="6406506848690869874">Segerak</translation> <translation id="6408118934673775994">Baca dan tukar data anda di <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> dan <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop muncul</translation> <translation id="6410257289063177456">Fail Imej</translation> <translation id="6410328738210026208">Tukar saluran dan Powerwash</translation> <translation id="6410668567036790476">Tambah enjin carian</translation> @@ -3690,7 +3689,6 @@ <translation id="6708242697268981054">Asal:</translation> <translation id="6709357832553498500">Sambung menggunakan <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Sebelumnya</translation> -<translation id="6716704051134091292">Penukar PDF</translation> <translation id="6718273304615422081">Mengezip...</translation> <translation id="671928215901716392">Kunci skrin</translation> <translation id="67211069045302358">Tetapkan semula tetapan untuk tapak ini?</translation> @@ -3815,7 +3813,6 @@ <translation id="6920989436227028121">Buka seperti tab biasa</translation> <translation id="6922128026973287222">Simpan data dan semak imbas dengan lebih pantas menggunakan Penjimat Data Google. Klik untuk mengetahui lebih lanjut.</translation> <translation id="6923132443355966645">Tatal / Klik</translation> -<translation id="6929555043669117778">Teruskan menyekat pop timbul</translation> <translation id="6929835486583850209">Ralat semasa memasang <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Tempoh</translation> <translation id="6934241953272494177">Mengimbas peranti media anda... @@ -3899,6 +3896,7 @@ <translation id="7052237160939977163">Hantar data surih prestasi</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Sekat</translation> +<translation id="7055152154916055070">Ubah hala disekat:</translation> <translation id="7056526158851679338">&Periksa Peranti</translation> <translation id="7059858479264779982">Tetapkan kepada autolancar</translation> <translation id="7059893117020417984">Untuk menyemak imbas secara tertutup, klik menu ikon titik untuk membuka tetingkap inkognito</translation> @@ -3925,7 +3923,6 @@ <translation id="7088434364990739311">Semakan kemas kini gagal dimulakan (kod ralat <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Buka dan muatkan fail ZIP dalam apl Fail.</translation> <translation id="7088674813905715446">Peranti ini telah diletakkan dalam keadaan nyahperuntukkan oleh pentadbir. Untuk mendayakannya agar dapat didaftarkan, minta pentadbir meletakkan peranti dalam keadaan belum selesai.</translation> -<translation id="7092106376816104">Pengecualian pop timbul</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Bertukar data dengan peranti yang bernama: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Togo Penggadang Skrin Penuh</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">Buat profil baharu</translation> <translation id="7444726222535375658">Teruskan ke Hangout Meet</translation> <translation id="7444983668544353857">Lumpuhkan <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Tetingkap timbul disekat</translation> <translation id="7453008956351770337">Dengan memilih pencetak ini, anda memberi sambungan berikut kebenaran untuk mengakses pencetak anda:</translation> <translation id="7453467225369441013">Mengelog anda keluar daripada kebanyakan tapak. Anda tidak akan dilog keluar daripada Akaun Google anda.</translation> <translation id="7456142309650173560">Pembangunan</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">Menyambung ke "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">Mengecas.</translation> <translation id="7624337243375417909">kunci huruf besar dimatikan</translation> +<translation id="7625568159987162309">Lihat kebenaran dan data yang disimpan pada semua tapak</translation> <translation id="7627790789328695202">Op, <ph name="FILE_NAME" /> telah pun wujud. Namakan semula dan cuba lagi.</translation> <translation id="7628127343934101653">Buka fail PDF dalam aplikasi pemapar PDF lalai.</translation> <translation id="7629827748548208700">Tab: <ph name="TAB_NAME" /></translation> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Aturkan semula mengikut tajuk</translation> <translation id="8068253693380742035">Sentuh untuk mengelog masuk</translation> <translation id="8069615408251337349">Cetakan Awan Google</translation> +<translation id="806972267388474605">Fail Linux</translation> <translation id="8071432093239591881">Cetak sebagai imej</translation> <translation id="8072988827236813198">Pin Tab</translation> <translation id="8074127646604999664">Benarkan tapak yang baru sahaja ditutup untuk menyelesaikan penghantaran dan penerimaan data</translation> <translation id="8075191520954018715">Status memori</translation> +<translation id="8076492880354921740">Tab</translation> <translation id="8076835018653442223">Akses kepada fail setempat pada peranti anda dilumpuhkan oleh pentadbir anda</translation> <translation id="8077684120002777443">Nama pengguna (contohnya user@example.com)</translation> <translation id="8077816382010018681">Tajuk pemberitahuan Ciri QU di sini</translation> @@ -4874,7 +4873,6 @@ <translation id="8569682776816196752">Tiada destinasi dijumpai</translation> <translation id="8569764466147087991">Pilih fail untuk dibuka</translation> <translation id="8571213806525832805">4 minggu terakhir</translation> -<translation id="8571613743082299268">Ubah hala disekat ke tapak</translation> <translation id="8574990355410201600">Sentiasa benarkan bunyi pada <ph name="HOST" /></translation> <translation id="8578639784464423491">Tidak boleh melebihi 99 huruf</translation> <translation id="8579285237314169903">Menyegerakkan <ph name="NUMBER_OF_FILES" /> item...</translation> @@ -5206,7 +5204,6 @@ <translation id="9065203028668620118">Edit</translation> <translation id="9066782832737749352">Teks kepada Pertuturan</translation> <translation id="9070219033670098627">Tukar orang</translation> -<translation id="907148966137935206">Jangan benarkan mana-mana tapak untuk memaparkan pop muncul (disyorkan)</translation> <translation id="9071637495340542136">Memasang <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> melog masuk anda secara automatik ke tapak web dan apl yang layak menggunakan kata laluan yang disimpan.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index a6a80dcf..f11172da 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Bladwijzer instellen voor deze pagina...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> items verwijderen...</translation> <translation id="1048286738600630630">Schermen</translation> +<translation id="1049743911850919806">Incognito</translation> <translation id="1049795001945932310">&Taalinstellingen</translation> <translation id="1049926623896334335">Word-document</translation> <translation id="1054153489933238809">Oorspronkelijke &afbeelding openen op nieuw tabblad</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">De synchronisatieserver is bezet. Probeer het later opnieuw.</translation> <translation id="1784849162047402014">Weinig schijfruimte beschikbaar op het apparaat</translation> <translation id="1786636458339910689">Drives van mijn team</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1792619191750875668">Uitgebreid scherm</translation> <translation id="1793119619663054394">Weet je zeker dat je '<ph name="PROFILE_NAME" />' en alle gekoppelde Chrome-gegevens van deze computer wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.</translation> <translation id="1794791083288629568">Feedback verzenden om ons te helpen dit probleem op te lossen.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Nadat je een nieuwe gebruiker met beperkte rechten hebt gemaakt, kun je de instellingen op elk moment en vanaf elk apparaat beheren op <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Venster rechts koppelen</translation> <translation id="1987139229093034863">Schakel over naar een andere gebruiker.</translation> +<translation id="1987317783729300807">Accounts</translation> <translation id="1989112275319619282">Browsen</translation> <translation id="1992397118740194946">Niet ingesteld</translation> <translation id="1994173015038366702">Site-URL</translation> <translation id="1997484222658892567"><ph name="URL" /> vraagt toestemming om permanent grote gegevens op je lokale computer op te slaan</translation> <translation id="1997616988432401742">Je certificaten</translation> <translation id="1999115740519098545">Bij opstarten</translation> +<translation id="2001796770603320721">Beheren in Drive</translation> <translation id="2006638907958895361">Link openen in <ph name="APP" /></translation> <translation id="2007404777272201486">Een probleem melden...</translation> <translation id="2016430552235416146">Traditioneel</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Ongeldige tabbladindex opgegeven.</translation> <translation id="2154484045852737596">Kaart bewerken</translation> <translation id="2154710561487035718">URL kopiëren</translation> -<translation id="2155931291251286316">Pop-ups van <ph name="HOST" /> altijd toestaan</translation> <translation id="215753907730220065">Volledig scherm sluiten</translation> <translation id="2157875535253991059">Deze pagina wordt nu op volledig scherm weergegeven.</translation> <translation id="216169395504480358">Wifi toevoegen...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Opnieuw starten</translation> <translation id="2803375539583399270">Pincode opgeven</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">Alle sites toestaan pop-ups weer te geven</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2807517655263062534">Bestanden die je downloadt, worden hier weergegeven</translation> <translation id="2809586584051668049">en <ph name="NUMBER_ADDITIONAL_DISABLED" /> meer</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Haal nog meer uit Chrome</translation> <translation id="3479552764303398839">Niet nu</translation> <translation id="3480892288821151001">Venster links koppelen</translation> -<translation id="3481915276125965083">De volgende pop-ups zijn op deze pagina geblokkeerd:</translation> <translation id="3484273680291419129">Schadelijke software verwijderen...</translation> <translation id="3484869148456018791">Nieuw certificaat ophalen</translation> <translation id="3487007233252413104">anonieme functie</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Je simkaart wordt permanent uitgeschakeld als je geen correcte pukcode kunt opgeven.</translation> <translation id="363903084947548957">Volgende invoermethode</translation> <translation id="3640214691812501263">'<ph name="EXTENSION_NAME" />' toevoegen voor <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Extensiebeheer is niet beschikbaar voor gastgebruikers. Log in om extensies te beheren.</translation> <translation id="3644896802912593514">Breedte</translation> <translation id="3646789916214779970">Terugzetten naar standaardthema</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> gedetecteerd</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Altijd weergeven</translation> <translation id="4175737294868205930">Permanente opslag</translation> <translation id="4176463684765177261">Uitgeschakeld</translation> -<translation id="4180684688621252156">Afdrukservice</translation> <translation id="4180788401304023883">Certificaat '<ph name="CERTIFICATE_NAME" />' van certificeringsinstantie verwijderen?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Talen</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">De toegang tot deze bron is verboden door de server.</translation> <translation id="4215350869199060536">Er staan niet-toegestane gegevens in de naam.</translation> <translation id="4215448920900139318">Back-up van <ph name="FILE_COUNT" /> maken</translation> +<translation id="4217571870635786043">Dicteren</translation> <translation id="4225397296022057997">Op alle sites</translation> <translation id="4235200303672858594">Volledig scherm</translation> <translation id="4235813040357936597">Account toevoegen voor <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Mijn Drive</translation> <translation id="4430019312045809116">Volume</translation> <translation id="4430369329743628066">Bladwijzer toegevoegd</translation> +<translation id="4434045419905280838">Pop-ups en omleidingen</translation> <translation id="443454694385851356">Verouderd (onveilig)</translation> <translation id="443464694732789311">Doorgaan</translation> <translation id="443475966875174318">Ongeschikte apps updaten en verwijderen</translation> @@ -3274,6 +3273,7 @@ <translation id="6075907793831890935">Gegevens uitwisselen met het apparaat met de naam <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Dit screenshot opnemen</translation> <translation id="6077131872140550515">Verwijderen uit voorkeursnetwerken</translation> +<translation id="6078323886959318429">Snelle link toevoegen</translation> <translation id="6078752646384677957">Controleer je microfoon en audioniveaus</translation> <translation id="6080515710685820702">Gebruik je een gedeelde computer? Open een incognitovenster.</translation> <translation id="6080689532560039067">De systeemtijd controleren</translation> @@ -3482,7 +3482,6 @@ <translation id="6406303162637086258">Opnieuw starten van browser simuleren</translation> <translation id="6406506848690869874">Synchronisatie</translation> <translation id="6408118934673775994">Je gegevens lezen en wijzigen op <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> en <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="6410257289063177456">Afbeeldingsbestanden</translation> <translation id="6410328738210026208">Kanaal wijzigen en Powerwash uitvoeren</translation> <translation id="6410668567036790476">Zoekmachine toevoegen</translation> @@ -3690,7 +3689,6 @@ <translation id="6708242697268981054">Oorspronkelijke locatie:</translation> <translation id="6709357832553498500">Verbinding maken via <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Vorige</translation> -<translation id="6716704051134091292">Pdf-omzetter</translation> <translation id="6718273304615422081">Inpakken...</translation> <translation id="671928215901716392">Scherm vergrendelen</translation> <translation id="67211069045302358">Instellingen voor deze site resetten?</translation> @@ -3815,7 +3813,6 @@ <translation id="6920989436227028121">Openen als normaal tabblad</translation> <translation id="6922128026973287222">Sla gegevens op en surf sneller met Databesparing van Google. Klik voor meer informatie.</translation> <translation id="6923132443355966645">Scroll/klik</translation> -<translation id="6929555043669117778">Pop-ups blijven blokkeren</translation> <translation id="6929835486583850209">Fout bij de installatie van <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Duur</translation> <translation id="6934241953272494177">Je media-apparaat scannen... @@ -3899,6 +3896,7 @@ <translation id="7052237160939977163">Gegevens over het bijhouden van prestaties verzenden</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokkeren</translation> +<translation id="7055152154916055070">Omleiding geblokkeerd:</translation> <translation id="7056526158851679338">Apparaten &inspecteren</translation> <translation id="7059858479264779982">Instellen op automatisch starten</translation> <translation id="7059893117020417984">Als je privé wilt browsen, klik je op het menupictogram met de stippen om een incognitovenster te openen</translation> @@ -3925,10 +3923,9 @@ <translation id="7088434364990739311">Het starten van de updatecontrole is mislukt (foutcode <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver: zip-bestanden openen en inpakken in de Bestanden-app.</translation> <translation id="7088674813905715446">Dit apparaat is uit bedrijf genomen door de beheerder. Vraag je beheerder om het apparaat op 'in behandeling' in te stellen, zodat het kan worden aangemeld.</translation> -<translation id="7092106376816104">Uitzonderingen voor pop-ups</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Gegevens uitwisselen met de apparaten met de naam: <ph name="HOSTNAMES" /></translation> -<translation id="7096406577040705016">"Volledig scherm vergroten' in-/uitschakelen</translation> +<translation id="7096406577040705016">'Volledig scherm vergroten' in-/uitschakelen</translation> <translation id="7098447629416471489">Andere opgeslagen zoekmachines worden hier weergegeven</translation> <translation id="7099337801055912064">Grote PPD kan niet worden geladen. Maximum grootte is 250 KB.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> items geselecteerd</translation> @@ -4145,7 +4142,6 @@ <translation id="744341768939279100">Een nieuw profiel maken</translation> <translation id="7444726222535375658">Doorgaan naar Hangouts Meet</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> uitschakelen</translation> -<translation id="7445682342344043969">Pop-ups geblokkeerd</translation> <translation id="7453008956351770337">Door het selecteren van deze printer geef je de volgende extensie toegang tot je printer:</translation> <translation id="7453467225369441013">Hiermee word je uitgelogd van de meeste sites. Je wordt niet uitgelogd van je Google-account.</translation> <translation id="7456142309650173560">dev</translation> @@ -4264,6 +4260,7 @@ <translation id="7617366389578322136">Verbinding maken met '<ph name="DEVICE_NAME" />'</translation> <translation id="7622114377921274169">Opladen.</translation> <translation id="7624337243375417909">Caps Lock uit</translation> +<translation id="7625568159987162309">Rechten en op sites opgeslagen gegevens bekijken</translation> <translation id="7627790789328695202"><ph name="FILE_NAME" /> bestaat al. Geef een nieuwe naam op en probeer het opnieuw.</translation> <translation id="7628127343934101653">Pdf-bestanden openen in de standaard pdf-viewer-app.</translation> <translation id="7629827748548208700">Tabblad: <ph name="TAB_NAME" /></translation> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Sorteren op titel</translation> <translation id="8068253693380742035">Tik om in te loggen</translation> <translation id="8069615408251337349">Google Cloudprinter</translation> +<translation id="806972267388474605">Linux-bestanden</translation> <translation id="8071432093239591881">Afdrukken als afbeelding</translation> <translation id="8072988827236813198">Tabbladen vastzetten</translation> <translation id="8074127646604999664">Toestaan dat onlangs gesloten sites het verzenden en ontvangen van gegevens voltooien</translation> <translation id="8075191520954018715">Geheugenstatus</translation> +<translation id="8076492880354921740">Tabbladen</translation> <translation id="8076835018653442223">Toegang tot lokale bestanden op je apparaat is door je beheerder uitgeschakeld</translation> <translation id="8077684120002777443">Gebruikersnaam (bijvoorbeeld gebruiker@example.com)</translation> <translation id="8077816382010018681">Titel voor melding over de functie voor snel ontgrendelen komt hier</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Geen bestemmingen gevonden</translation> <translation id="8569764466147087991">Selecteer een bestand om te openen</translation> <translation id="8571213806525832805">Afgelopen 4 weken</translation> -<translation id="8571613743082299268">Omleiding naar site geblokkeerd</translation> <translation id="8574990355410201600">Geluid altijd toegestaan op <ph name="HOST" /></translation> <translation id="8578639784464423491">Mag niet langer zijn dan 99 letters</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> items synchroniseren...</translation> @@ -5206,7 +5204,6 @@ <translation id="9065203028668620118">Bewerken</translation> <translation id="9066782832737749352">Tekst-naar-spraak</translation> <translation id="9070219033670098627">Van persoon wisselen</translation> -<translation id="907148966137935206">Sites niet toestaan pop-ups weer te geven (aanbevolen)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> installeren...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> logt je automatisch in bij geschikte sites en apps met wachtwoorden die je hebt opgeslagen.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 87b0091..dfbf2dd 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Legg til bokmerke for denne siden...</translation> <translation id="1047956942837015229">Sletter <ph name="COUNT" /> elementer ...</translation> <translation id="1048286738600630630">Skjermer</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Språkinnstillinger</translation> <translation id="1049926623896334335">Word-dokument</translation> <translation id="1054153489933238809">Åpne det opprinnelige &bildet i en ny fane</translation> @@ -184,7 +185,7 @@ <translation id="1260240842868558614">Vis:</translation> <translation id="126710816202626562">Målspråket:</translation> <translation id="126768002343224824">16x</translation> -<translation id="1271317946095246719">Sender søk fra adressefeltet og søkefeltet og noen informasjonskapsler til standardsøkemotoren din</translation> +<translation id="1271317946095246719">Sender søk fra adressefeltet og søkefeltet samt noen informasjonskapsler til standardsøkemotoren din</translation> <translation id="1272079795634619415">Stopp</translation> <translation id="1272978324304772054">Denne brukerkontoen tilhører ikke domenet som enheten er registrert for. Hvis du vil registrere deg for et annet domene, må du først gå gjennom enhetsgjenoppretting.</translation> <translation id="1274977772557788323">Lagringsinnstillinger for Adobe Flash Player</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">Synkroniseringstjeneren er opptatt. Prøv på nytt senere.</translation> <translation id="1784849162047402014">Det er lite plass på enheten</translation> <translation id="1786636458339910689">Teamdisker</translation> -<translation id="1789575671122666129">Forgrunnsvinduer</translation> <translation id="1792619191750875668">Utvidet skjerm</translation> <translation id="1793119619663054394">Er du sikker på at du vil fjerne «<ph name="PROFILE_NAME" />» og alle tilhørende Chrome-data fra denne datamaskinen? Dette kan ikke angres.</translation> <translation id="1794791083288629568">Send tilbakemelding så vi kan prøve å løse problemet.</translation> @@ -649,6 +649,7 @@ <translation id="1983959805486816857">Når du har opprettet en ny administrert bruker, kan du administrere innstillingene når som helst fra hvilken som helst enhet på <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Forankre vinduet til høyre</translation> <translation id="1987139229093034863">Bytt til en annen bruker.</translation> +<translation id="1987317783729300807">Kontoer</translation> <translation id="1989112275319619282">Bla gjennom</translation> <translation id="1992397118740194946">Ikke angitt</translation> <translation id="1994173015038366702">Nettadressen til nettstedet</translation> @@ -750,7 +751,6 @@ <translation id="2151576029659734873">Ugyldig faneindeks angitt.</translation> <translation id="2154484045852737596">Endre kortet</translation> <translation id="2154710561487035718">Kopier nettadresse</translation> -<translation id="2155931291251286316">Tillat alltid forgrunnsvinduer fra <ph name="HOST" /></translation> <translation id="215753907730220065">Avslutt fullskjermmodus</translation> <translation id="2157875535253991059">Denne siden vises nå i full skjerm.</translation> <translation id="216169395504480358">Legg til Wi-Fi</translation> @@ -1179,7 +1179,6 @@ <translation id="2799223571221894425">Start på nytt</translation> <translation id="2803375539583399270">Skriv inn PIN-koden</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">Tillat alle nettsteder å vise forgrunnsvinduer</translation> <translation id="2805756323405976993">Apper</translation> <translation id="2807517655263062534">Filer du laster ned, vises her</translation> <translation id="2809586584051668049">og <ph name="NUMBER_ADDITIONAL_DISABLED" /> til</translation> @@ -1612,7 +1611,6 @@ <translation id="347919930506963698">Få enda mer ut av Chrome</translation> <translation id="3479552764303398839">Ikke nå</translation> <translation id="3480892288821151001">Forankre vinduet til venstre</translation> -<translation id="3481915276125965083">Følgende forgrunnsvinduer er blokkert på siden:</translation> <translation id="3484273680291419129">Fjerner den skadelige programvaren …</translation> <translation id="3484869148456018791">Hent nytt sertifikat</translation> <translation id="3487007233252413104">anonym funksjon</translation> @@ -1718,7 +1716,6 @@ <translation id="3637682276779847508">SIM-kortet ditt blir deaktivert permanent hvis du ikke angir riktig PUK-kode.</translation> <translation id="363903084947548957">Neste inndatametode</translation> <translation id="3640214691812501263">Vil du legge til «<ph name="EXTENSION_NAME" />» for <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Gjestebrukere kan ikke administrere utvidelser. Logg på for å administrere utvidelsene.</translation> <translation id="3644896802912593514">Bredde</translation> <translation id="3646789916214779970">Tilbakestill til standardtema</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> oppdaget</translation> @@ -2029,7 +2026,7 @@ <translation id="4109135793348361820">Flytt vinduet til <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">Fokusér på hyllen</translation> <translation id="4110895898888439383">Surf på nettet i høykontrastmodus</translation> -<translation id="4112774766611964959">Dette avinstallerer <ph name="APP_NAME" /> og fjerner all Linux-data og alle programmer fra <ph name="DEVICE_TYPE" />-enheten din. Er du sikker?</translation> +<translation id="4112774766611964959">Dette avinstallerer <ph name="APP_NAME" /> og fjerner alle Linux-data og alle programmer fra <ph name="DEVICE_TYPE" />-enheten din. Er du sikker?</translation> <translation id="4114360727879906392">Forrige vindu</translation> <translation id="4115002065223188701">Nettverket er utenfor rekkevidde</translation> <translation id="4115080753528843955">Noen innholdstjenester bruker unike identifikatorer for å godkjenne tilgang til beskyttet innhold</translation> @@ -2058,7 +2055,6 @@ <translation id="4172051516777682613">Vis alltid</translation> <translation id="4175737294868205930">Permanent lagring</translation> <translation id="4176463684765177261">Deaktivert</translation> -<translation id="4180684688621252156">Utskriftstjeneste</translation> <translation id="4180788401304023883">Slette CA-sertifikat «<ph name="CERTIFICATE_NAME" />»?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Språk</translation> @@ -2161,7 +2157,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> deler et vindu.</translation> <translation id="4364830672918311045">Vis varsler</translation> <translation id="4365673000813822030">Beklager, synkroniseringen har sluttet å fungere.</translation> -<translation id="4370373819607756384">Kontroller denne innstillingen i <ph name="BEGIN_LINK" />Språk<ph name="END_LINK" /></translation> +<translation id="4370373819607756384">Kontrollér denne innstillingen i <ph name="BEGIN_LINK" />Språk<ph name="END_LINK" /></translation> <translation id="4370975561335139969">E-posten og passordet du skrev inn, stemmer ikke overens.</translation> <translation id="437184764829821926">Avanserte innstillinger for skrifttype</translation> <translation id="4372884569765913867">1 x 1</translation> @@ -2216,7 +2212,7 @@ <translation id="4462159676511157176">Egendefinerte navnetjenere</translation> <translation id="4467100756425880649">Chrome Nettmarked Galleri</translation> <translation id="4467101674048705704">Vis <ph name="FOLDER_NAME" /></translation> -<translation id="447252321002412580">Hjelp til med å forbedre Chromes funksjoner og ytelse</translation> +<translation id="447252321002412580">Hjelp til med å forbedre funksjonene og ytelsen til Chrome</translation> <translation id="4474155171896946103">Bokmerk alle fanene</translation> <translation id="4475552974751346499">Søk i nedlastinger</translation> <translation id="4476590490540813026">Idrettsutøver</translation> @@ -2935,7 +2931,7 @@ <translation id="555746285996217175">Lås / av/på</translation> <translation id="5557991081552967863">Hold Wi-Fi på under hvilemodus</translation> <translation id="5558129378926964177">Zoom &inn</translation> -<translation id="5558446705802335921">Sjekker nettsteder du går til og filer du laster ned for skadelig atferd eller innhold, slik som nettfisking eller skadelig programvare</translation> +<translation id="5558446705802335921">Sjekker nettsteder du går til, og filer du laster ned, for skadelig atferd eller innhold, slik som nettfisking eller skadelig programvare</translation> <translation id="5559719557406102971">Starter Termina VM.</translation> <translation id="55601339223879446">Juster grensene for skrivebordet på skjermen</translation> <translation id="5562781907504170924">Denne fanen er koblet til en Bluetooth-enhet.</translation> @@ -3265,6 +3261,7 @@ <translation id="6075907793831890935">utveksle data med enheten <ph name="HOSTNAME" />.</translation> <translation id="6076448957780543068">Inkluder denne skjermdumpen</translation> <translation id="6077131872140550515">Fjern som foretrukket nettverk</translation> +<translation id="6078323886959318429">Legg til snarvei</translation> <translation id="6078752646384677957">Sjekk mikrofonen din og lydnivåer.</translation> <translation id="6080515710685820702">Bruker du en delt datamaskin? Prøv å åpne et inkognitovindu.</translation> <translation id="6080689532560039067">Sjekk systemtiden din</translation> @@ -3473,7 +3470,6 @@ <translation id="6406303162637086258">Simuler omstart av nettleseren</translation> <translation id="6406506848690869874">Synkroniser</translation> <translation id="6408118934673775994">lese og endre opplysningene dine på <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Forgrunnsvinduer</translation> <translation id="6410257289063177456">Bildefiler</translation> <translation id="6410328738210026208">Bytt kanal og bruk Powerwash</translation> <translation id="6410668567036790476">Legg til søkemotor</translation> @@ -3680,7 +3676,6 @@ <translation id="6708242697268981054">Opprinnelse:</translation> <translation id="6709357832553498500">Koble til med <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Forrige</translation> -<translation id="6716704051134091292">PDF Convertor</translation> <translation id="6718273304615422081">Zipper ...</translation> <translation id="671928215901716392">Lås skjerm</translation> <translation id="67211069045302358">Vil du tilbakestille innstillingene for dette nettstedet?</translation> @@ -3805,7 +3800,6 @@ <translation id="6920989436227028121">Åpne som vanlig fane</translation> <translation id="6922128026973287222">Lagre data og bla gjennom dem raskere ved hjelp av Google Datasparing. Klikk for å lese mer.</translation> <translation id="6923132443355966645">Rull/klikk</translation> -<translation id="6929555043669117778">Fortsett blokkering av forgrunnsvinduer</translation> <translation id="6929835486583850209">Feil ved installering av <ph name="APP_NAME" /></translation> <translation id="6930242544192836755">Varighet</translation> <translation id="6934241953272494177">Skanner medieenheten din … @@ -3915,10 +3909,9 @@ <translation id="7088434364990739311">Kunne ikke starte søk etter oppdateringer (feilkode <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – Åpne og pakk ZIP-filer i Filer-appen.</translation> <translation id="7088674813905715446">Administratoren har gitt denne enheten status som «ikke klargjort». For å aktivere den for registrering, må du be administratoren gi enheten status som «ventende».</translation> -<translation id="7092106376816104">Unntak for forgrunnsvinduer</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Utveksle data med enhetene <ph name="HOSTNAMES" /></translation> -<translation id="7096406577040705016">Slå av/på lupe for hele skjermen</translation> +<translation id="7096406577040705016">Slå av/på forstørrelse av hele skjermen</translation> <translation id="7098447629416471489">Andre lagrede søkemotorer vises her</translation> <translation id="7099337801055912064">Kan ikke laste inn stor PPD. Maksimal størrelse er 250 kB.</translation> <translation id="7100897339030255923"><ph name="COUNT" /> elementer er valgt</translation> @@ -4129,7 +4122,6 @@ <translation id="744341768939279100">Opprett en ny profil</translation> <translation id="7444726222535375658">Fortsett til Hangouts Meet</translation> <translation id="7444983668544353857">Slå av <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Forgrunnsvinduer er blokkert</translation> <translation id="7453008956351770337">Ved å velge denne skriveren gir du følgende utvidelse tillatelse til å bruke skriveren din:</translation> <translation id="7453467225369441013">Logger deg av de fleste nettsteder. Du blir ikke logget av Google-kontoen din.</translation> <translation id="7456142309650173560">dev</translation> @@ -4374,12 +4366,12 @@ <translation id="782590969421016895">Bruk nåværende sider</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Feilsøkingsfunksjoner<ph name="END_H3" /> <ph name="BR" /> - Du kan slå på feilsøkingsfunksjonene på Chrome OS-enheten din slik at du kan installere og teste spesialtilpasset kode på den. Dette gjør det mulig å:<ph name="BR" /> + Du kan slå på feilsøkingsfunksjonene på Chrome OS-enheten din slik at du kan installere og teste spesialtilpasset kode på den. Dette gjør det mulig<ph name="BR" /> <ph name="BEGIN_LIST" /> - <ph name="LIST_ITEM" />fjerne rootfs-verifiseringen, slik at du kan modifisere OS-filene - <ph name="LIST_ITEM" />slå på SSH-tilgang til enheten ved hjelp av standard testetaster, slik at du kan bruke verktøy som <ph name="BEGIN_CODE" />«cros flash»<ph name="END_CODE" /> til å få tilgang til enheten - <ph name="LIST_ITEM" />slå på oppstart fra USB, slik at du kan installere en OS-avbildning fra en USB-enhet - <ph name="LIST_ITEM" />angi et egendefinert påloggingspassord på rotnivå for både enheten og systemet, slik at du kan bruke SSH manuelt for å få tilgang til enheten + <ph name="LIST_ITEM" />å fjerne rootfs-verifiseringen, slik at du kan modifisere OS-filer + <ph name="LIST_ITEM" />å slå på SSH-tilgang til enheten ved hjelp av standard testetaster, slik at du kan bruke verktøy som <ph name="BEGIN_CODE" />«cros flash»<ph name="END_CODE" /> til å få tilgang til enheten + <ph name="LIST_ITEM" />å slå på oppstart fra USB, slik at du kan installere en OS-avbildning fra en USB-enhet + <ph name="LIST_ITEM" />å angi et egendefinert påloggingspassord på rotnivå for både enheten og systemet, slik at du kan bruke SSH manuelt for å få tilgang til enheten <ph name="END_LIST" /> <ph name="BR" /> Når feilsøkingsfunksjonene er slått på, forblir de fleste av dem aktivert selv etter at du utfører en powerwash eller sletter dataene på en enhet administrert av en bedrift. Hvis du vil slå av alle feilsøkingsfunksjonene fullstendig, må du utføre gjenopprettingsprosessen for Chrome OS (https://support.google.com/chromebook/answer/1080595). @@ -4389,7 +4381,7 @@ https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features <ph name="BR" /> <ph name="BR" /> - <ph name="BEGIN_BOLD" />Merk:<ph name="END_BOLD" /> Systemet startes på nytt i løpet av prosessen.</translation> + <ph name="BEGIN_BOLD" />Merk:<ph name="END_BOLD" /> Systemet startes på nytt i løpet av prosessen.</translation> <translation id="7829298379596169484">Åpner lydinngang</translation> <translation id="7831491651892296503">En feil oppsto under konfigureringen av nettverket</translation> <translation id="7831754656372780761"><ph name="TAB_TITLE" /> <ph name="EMOJI_MUTING" /></translation> @@ -4572,6 +4564,7 @@ <translation id="8072988827236813198">Fest faner</translation> <translation id="8074127646604999664">Tillat at nylig lukkede nettsteder fullfører sending og mottak av data</translation> <translation id="8075191520954018715">Minnetilstand</translation> +<translation id="8076492880354921740">Faner</translation> <translation id="8076835018653442223">Administratoren din har deaktivert tilgang til lokale filer på enheten din</translation> <translation id="8077684120002777443">Brukernavn (for eksempel bruker@eksempel.no)</translation> <translation id="8077816382010018681">Tittelen for varselet for hurtigopplåsing-funksjonen skal være her.</translation> @@ -4856,7 +4849,6 @@ <translation id="8569682776816196752">Ingen destinasjoner ble funnet</translation> <translation id="8569764466147087991">Velg en fil du vil åpne</translation> <translation id="8571213806525832805">Siste 4 uker</translation> -<translation id="8571613743082299268">Viderekobling til dette nettstedet er blokkert</translation> <translation id="8574990355410201600">Tillat alltid lyd på <ph name="HOST" /></translation> <translation id="8578639784464423491">Kan ikke overstige 99 bokstaver</translation> <translation id="8579285237314169903">Synkroniserer <ph name="NUMBER_OF_FILES" /> elementer …</translation> @@ -4901,7 +4893,7 @@ <translation id="8651585100578802546">Tving ny innlasting av siden</translation> <translation id="8652400352452647993">Feil med pakkeutvidelse</translation> <translation id="8652487083013326477">alternativknapp for sideomfang</translation> -<translation id="8653292045957015650">Slå av/på dokket lupe</translation> +<translation id="8653292045957015650">Slå av/på dokket forstørrelse</translation> <translation id="8654151524613148204">Beklager, men filen er så stor at datamaskinen din ikke klarer å håndtere den.</translation> <translation id="8655295600908251630">Kanal</translation> <translation id="8655319619291175901">Beklager. Noe gikk galt.</translation> @@ -5170,7 +5162,7 @@ <translation id="9042893549633094279">Personvern og sikkerhet</translation> <translation id="904451693890288097">Skriv inn passordet for «<ph name="DEVICE_NAME" />»:</translation> <translation id="9044646465488564462">Kunne ikke koble til nettverket: <ph name="DETAILS" /></translation> -<translation id="9045430190527754450">Sender nettadressen til siden du prøver å åpne til Google</translation> +<translation id="9045430190527754450">Sender Google nettadressen til siden du prøver å åpne</translation> <translation id="9046895021617826162">Tilkoblingen mislyktes</translation> <translation id="9050666287014529139">Passordfrase</translation> <translation id="9052208328806230490">Du har registrert skriverne dine med <ph name="CLOUD_PRINT_NAME" /> ved hjelp av konto <ph name="EMAIL" /></translation> @@ -5188,7 +5180,6 @@ <translation id="9065203028668620118">Endre</translation> <translation id="9066782832737749352">Tekst til tale</translation> <translation id="9070219033670098627">Bytt person</translation> -<translation id="907148966137935206">Ikke tillat nettsteder å vise forgrunnsvinduer (anbefales)</translation> <translation id="9071637495340542136">Installerer <ph name="APP_NAME" /> …</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> logger deg på kvalifiserte nettsteder og apper automatisk med passord du har lagret.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index fc6c3900..b64a0c5 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Dodaj stronę do zakładek...</translation> <translation id="1047956942837015229">Usuwam <ph name="COUNT" /> elementy(ów)...</translation> <translation id="1048286738600630630">Wyświetlanie</translation> +<translation id="1049743911850919806">Incognito</translation> <translation id="1049795001945932310">&Ustawienia języka</translation> <translation id="1049926623896334335">Dokument Worda</translation> <translation id="1054153489933238809">Otwórz oryginalny &obraz w nowej karcie</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Serwer synchronizacji jest zajęty. Spróbuj ponownie później.</translation> <translation id="1784849162047402014">Na urządzeniu jest mało miejsca.</translation> <translation id="1786636458339910689">Dyski zespołu</translation> -<translation id="1789575671122666129">Wyskakujące okienka</translation> <translation id="1792619191750875668">Ekran rozszerzony</translation> <translation id="1793119619663054394">Na pewno chcesz usunąć profil „<ph name="PROFILE_NAME" />” i wszystkie powiązane z nim dane Chrome z tego komputera? Tej czynności nie można cofnąć.</translation> <translation id="1794791083288629568">Wyślij opinię, by pomóc nam rozwiązać ten problem.</translation> @@ -590,7 +590,7 @@ <translation id="1871615898038944731"><ph name="DEVICE_TYPE" /> używa aktualnej wersji oprogramowania</translation> <translation id="1875387611427697908">Możesz to pobrać tylko z <ph name="CHROME_WEB_STORE" /></translation> <translation id="1877520246462554164">Nie udało się uzyskać tokenu uwierzytelnienia. Wyloguj się, a potem zaloguj się jeszcze raz, by ponowić próbę.</translation> -<translation id="1878302395768190018">Możesz w dowolnym momencie dostosować w Ustawieniach Chrome</translation> +<translation id="1878302395768190018">Możesz w dowolnym momencie zmienić tę opcję w Ustawieniach Chrome</translation> <translation id="1878524442024357078">Nie zezwalaj żadnym stronom na dostęp do komputera przez wtyczkę</translation> <translation id="1880905663253319515">Czy usunąć certyfikat „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="1886996562706621347">Zezwól, by strony prosiły użytkownika o ustawienie ich jako domyślnego modułu obsługi protokołu (zalecane)</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Po utworzeniu nowego użytkownika nadzorowanego możesz w każdej chwili i z dowolnego urządzenia zarządzać ustawieniami na stronie <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Umieść okno po prawej</translation> <translation id="1987139229093034863">Przełącz na innego użytkownika.</translation> +<translation id="1987317783729300807">Konta</translation> <translation id="1989112275319619282">Przeglądaj</translation> <translation id="1992397118740194946">Nie ustawiono</translation> <translation id="1994173015038366702">URL strony</translation> <translation id="1997484222658892567"><ph name="URL" /> chce na stałe przechowywać dużą ilość danych na Twoim komputerze</translation> <translation id="1997616988432401742">Twoje certyfikaty</translation> <translation id="1999115740519098545">Po uruchomieniu</translation> +<translation id="2001796770603320721">Zarządzaj na Dysku</translation> <translation id="2006638907958895361">Otwórz link w aplikacji <ph name="APP" /></translation> <translation id="2007404777272201486">Zgłaszanie problemu...</translation> <translation id="2016430552235416146">Tradycyjne</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Wprowadzono nieprawidłowy indeks tabulacji.</translation> <translation id="2154484045852737596">Edytowanie karty</translation> <translation id="2154710561487035718">Kopiuj adres URL</translation> -<translation id="2155931291251286316">Zawsze zezwalaj na pokazywanie wyskakujących okienek w witrynie <ph name="HOST" /></translation> <translation id="215753907730220065">Zamknij pełny ekran</translation> <translation id="2157875535253991059">Ta strona jest wyświetlana w trybie pełnoekranowym.</translation> <translation id="216169395504480358">Dodaj Wi-Fi...</translation> @@ -941,7 +942,7 @@ <translation id="2462724976360937186">Identyfikator klucza urzędu certyfikacji</translation> <translation id="2462752602710430187">Dodano: <ph name="PRINTER_NAME" /></translation> <translation id="2464089476039395325">Serwer proxy HTTP</translation> -<translation id="2468205691404969808">Zapisuje Twoje ustawienia w plikach, nawet jeśli nie odwiedzasz tych stron</translation> +<translation id="2468205691404969808">Zapisuje Twoje ustawienia w plikach cookie, nawet jeśli nie odwiedzasz tych stron</translation> <translation id="2468902267404883140">Nie można połączyć się z telefonem. Upewnij się, że używasz zgodnego telefonu z Androidem oraz że jest on włączony i znajduje się w zasięgu ręki. <a>Więcej informacji</a></translation> <translation id="2470702053775288986">Wyłączono nieobsługiwane rozszerzenia</translation> <translation id="2473195200299095979">Przetłumacz tę stronę</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Uruchom ponownie</translation> <translation id="2803375539583399270">Wpisz kod PIN</translation> <translation id="2805646850212350655">System szyfrowania plików firmy Microsoft</translation> -<translation id="2805707493867224476">Zezwalaj na pokazywanie wyskakujących okienek we wszystkich witrynach</translation> <translation id="2805756323405976993">Aplikacje</translation> <translation id="2807517655263062534">Tutaj wyświetlają się pobrane pliki</translation> <translation id="2809586584051668049">i jeszcze <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Jeszcze więcej możliwości dzięki Chrome</translation> <translation id="3479552764303398839">Nie teraz</translation> <translation id="3480892288821151001">Umieść okno po lewej</translation> -<translation id="3481915276125965083">Następujące wyskakujące okienka na tej stronie zostały zablokowane:</translation> <translation id="3484273680291419129">Usuwam szkodliwe oprogramowanie…</translation> <translation id="3484869148456018791">Pobierz nowy certyfikat</translation> <translation id="3487007233252413104">funkcja anonimowa</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Jeśli nie wpiszesz prawidłowego klucza odblokowującego kod PIN, karta SIM zostanie trwale wyłączona.</translation> <translation id="363903084947548957">Następna metoda wprowadzania</translation> <translation id="3640214691812501263">Dodać „<ph name="EXTENSION_NAME" />” dla: <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Goście nie mogą korzystać z zarządzania rozszerzeniami. Aby móc to robić, musisz się zalogować.</translation> <translation id="3644896802912593514">Szerokość</translation> <translation id="3646789916214779970">Przywróć motyw domyślny</translation> <translation id="3648348069317717750">Wykryto <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Zawsze pokazuj</translation> <translation id="4175737294868205930">Pamięć trwała</translation> <translation id="4176463684765177261">Wyłączone</translation> -<translation id="4180684688621252156">Usługa drukowania</translation> <translation id="4180788401304023883">Czy usunąć certyfikat urzędu certyfikacji „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Języki</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Serwer zabronił dostępu do tego zasobu.</translation> <translation id="4215350869199060536">Ups! W nazwie są niedozwolone znaki.</translation> <translation id="4215448920900139318">Tworzę kopie zapasowe – <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Dyktowanie</translation> <translation id="4225397296022057997">We wszystkich witrynach</translation> <translation id="4235200303672858594">Cały ekran</translation> <translation id="4235813040357936597">Dodaj konto dla <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Mój dysk</translation> <translation id="4430019312045809116">Głośność</translation> <translation id="4430369329743628066">Dodano zakładkę</translation> +<translation id="4434045419905280838">Pop-upy i przekierowania</translation> <translation id="443454694385851356">Starszy typ (niebezpieczne)</translation> <translation id="443464694732789311">Dalej</translation> <translation id="443475966875174318">Zaktualizuj lub usuń niezgodne aplikacje</translation> @@ -2323,7 +2322,7 @@ <translation id="4632483769545853758">Wyłącz wyciszenie karty</translation> <translation id="4633003931260532286">Rozszerzenie wymaga: „<ph name="IMPORT_NAME" />” przynajmniej w wersji „<ph name="IMPORT_VERSION" />”, ale zainstalowana jest tylko wersja „<ph name="INSTALLED_VERSION" />”</translation> <translation id="4634771451598206121">Zaloguj się ponownie</translation> -<translation id="4635398712689569051">Strona <ph name="PAGE_NAME" /> jest niedostępna dla Gości.</translation> +<translation id="4635398712689569051">Strona <ph name="PAGE_NAME" /> jest niedostępna dla gości.</translation> <translation id="4640525840053037973">Zaloguj się na konto Google</translation> <translation id="4641539339823703554">Chrome nie może ustawić czasu systemowego. Sprawdź i w razie potrzeby popraw godzinę poniżej.</translation> <translation id="4643612240819915418">&Otwórz film wideo w nowej karcie</translation> @@ -2680,7 +2679,7 @@ <translation id="5186650237607254032">Zmień blokadę ekranu, by wyłączała się, gdy jesteś w pobliżu. Twój telefon będzie odblokowywać się szybciej, a funkcja Smart Lock będzie będzie działać lepiej na urządzeniu <ph name="DEVICE_TYPE" />.</translation> <translation id="5187295959347858724">Jesteś zalogowany(a) do <ph name="SHORT_PRODUCT_NAME" />. Twoje zakładki, historia i inne ustawienia są synchronizowane z Twoim kontem Google.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> -<translation id="5196721203029902230">Komunikacja z Google pomaga ulepszać Chrome</translation> +<translation id="5196721203029902230">Komunikacja z Google pomaga ulepszać Chrome i funkcję przeglądania</translation> <translation id="5204967432542742771">Wpisz hasło</translation> <translation id="5206215183583316675">Usunąć „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="520621735928254154">Błąd importowania certyfikatu</translation> @@ -3273,6 +3272,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="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> <translation id="6080689532560039067">Sprawdź czas systemowy</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Symuluj ponowne uruchomienie przeglądarki</translation> <translation id="6406506848690869874">Synchronizacja</translation> <translation id="6408118934673775994">Odczytywanie i modyfikowanie Twoich danych na: <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Wyskakujące okienka</translation> <translation id="6410257289063177456">Pliki graficzne</translation> <translation id="6410328738210026208">Zmień kanał i wykonaj Powerwash</translation> <translation id="6410668567036790476">Dodaj wyszukiwarkę</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Pochodzenie:</translation> <translation id="6709357832553498500">Połącz za pomocą rozszerzenia <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Wstecz</translation> -<translation id="6716704051134091292">Konwerter PDF</translation> <translation id="6718273304615422081">Pakuję...</translation> <translation id="671928215901716392">Zablokuj ekran</translation> <translation id="67211069045302358">Zresetować ustawienia tej witryny?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Otwórz jako zwykłą kartę</translation> <translation id="6922128026973287222">Zmniejsz ilość przesyłanych danych i swobodnie przeglądaj strony dzięki Oszczędzaniu danych Google. Kliknij, by dowiedzieć się więcej.</translation> <translation id="6923132443355966645">Przewiń/kliknij</translation> -<translation id="6929555043669117778">Nadal blokuj wyskakujące okienka</translation> <translation id="6929835486583850209">Błąd podczas instalowania aplikacji <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Czas trwania</translation> <translation id="6934241953272494177">Skanuję urządzenie multimedialne… @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Wyślij dane śledzenia wydajności</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokuj</translation> +<translation id="7055152154916055070">Zablokowano przekierowanie:</translation> <translation id="7056526158851679338">&Sprawdź urządzenia</translation> <translation id="7059858479264779982">Ustaw automatyczne uruchamianie</translation> <translation id="7059893117020417984">Aby przeglądać prywatnie, kliknij ikonę menu z kropkami i otwórz okno incognito</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Nie udało się uruchomić sprawdzania aktualizacji (kod błędu <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – otwieraj i pakuj pliki ZIP w aplikacji Pliki.</translation> <translation id="7088674813905715446">Administrator ustawił to urządzenie jako nieobsługiwane. Aby umożliwić jego rejestrację, poproś administratora, by ustawił je jako oczekujące.</translation> -<translation id="7092106376816104">Wyjątki dla wyskakujących okienek</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Wymiana danych z urządzeniami o nazwach: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Włącz lub wyłącz lupę pełnego ekranu</translation> @@ -4137,7 +4134,6 @@ <translation id="744341768939279100">Utwórz nowy profil</translation> <translation id="7444726222535375658">Otwórz Hangouts Meet</translation> <translation id="7444983668544353857">Wyłącz – <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Wyskakujące okienka zablokowane</translation> <translation id="7453008956351770337">Wybierając tę drukarkę, zezwalasz na dostęp do niej temu rozszerzeniu:</translation> <translation id="7453467225369441013">Wylogowuje z większości stron internetowych. Nie wyloguje Cię z konta Google.</translation> <translation id="7456142309650173560">deweloperska</translation> @@ -4255,6 +4251,7 @@ <translation id="7617366389578322136">Łączę się z urządzeniem „<ph name="DEVICE_NAME" />”</translation> <translation id="7622114377921274169">Ładuję.</translation> <translation id="7624337243375417909">caps lock wyłączony</translation> +<translation id="7625568159987162309">Pokaż uprawnienia i zapisane dane wszystkich witryn</translation> <translation id="7627790789328695202">Ups, plik <ph name="FILE_NAME" /> już istnieje. Zmień jego nazwę i spróbuj ponownie.</translation> <translation id="7628127343934101653">Otwieraj pliki PDF w domyślnej przeglądarce dokumentów PDF.</translation> <translation id="7629827748548208700">Karta: <ph name="TAB_NAME" /></translation> @@ -4577,10 +4574,12 @@ <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> +<translation id="806972267388474605">Pliki Linuksa</translation> <translation id="8071432093239591881">Drukuj jako grafikę</translation> <translation id="8072988827236813198">Przypinanie kart</translation> <translation id="8074127646604999664">Zezwól niedawno zamkniętym stronom na dokończenie wysyłania i odbierania danych</translation> <translation id="8075191520954018715">Stan pamięci</translation> +<translation id="8076492880354921740">Karty</translation> <translation id="8076835018653442223">Dostęp do plików lokalnych na tym urządzeniu został wyłączony przez administratora</translation> <translation id="8077684120002777443">Nazwa użytkownika (np. uzytkownik@example.com)</translation> <translation id="8077816382010018681">Miejsce na tytuł powiadomienia o funkcji szybkiego odblokowania</translation> @@ -4866,7 +4865,6 @@ <translation id="8569682776816196752">Nie znaleziono urządzeń docelowych</translation> <translation id="8569764466147087991">Wybierz plik do otwarcia</translation> <translation id="8571213806525832805">Ostatnie 4 tygodnie</translation> -<translation id="8571613743082299268">Zablokowano przekierowanie na stronę</translation> <translation id="8574990355410201600">Zawsze zezwalaj na odtwarzanie dźwięku na stronie <ph name="HOST" /></translation> <translation id="8578639784464423491">Nie może mieć więcej niż 99 liter</translation> <translation id="8579285237314169903">Synchronizuję elementy – <ph name="NUMBER_OF_FILES" />...</translation> @@ -5198,7 +5196,6 @@ <translation id="9065203028668620118">Edytuj</translation> <translation id="9066782832737749352">Zamiana tekstu na mowę</translation> <translation id="9070219033670098627">Przełącz osobę</translation> -<translation id="907148966137935206">Nie zezwalaj na wyskakujące okienka w żadnej witrynie (zalecane)</translation> <translation id="9071637495340542136">Instaluję aplikację <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> automatycznie loguje Cię w odpowiednich witrynach i aplikacjach przy użyciu zapisanych wcześniej haseł.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index acb191a7..6919fd2 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Adicionar esta página aos favoritos...</translation> <translation id="1047956942837015229">Excluindo <ph name="COUNT" /> itens...</translation> <translation id="1048286738600630630">Telas</translation> +<translation id="1049743911850919806">Modo anônimo</translation> <translation id="1049795001945932310">&Configurações de idioma</translation> <translation id="1049926623896334335">Documento do Word</translation> <translation id="1054153489933238809">Abrir &imagem original em uma nova guia</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">O servidor de sincronização está ocupado, tente novamente mais tarde.</translation> <translation id="1784849162047402014">O dispositivo está com pouco espaço em disco</translation> <translation id="1786636458339910689">Drives de equipe</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1792619191750875668">Exibição estendida</translation> <translation id="1793119619663054394">Tem certeza que quer remover o perfil "<ph name="PROFILE_NAME" />" e todos os dados associados do Chrome deste computador? Esta ação não pode ser desfeita.</translation> <translation id="1794791083288629568">Envie um feedback para nos ajudar a corrigir esse problema.</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">Após criar um novo usuário supervisionado, você pode gerenciar as configurações a qualquer momento, a partir de qualquer dispositivo, em <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Encaixar janela à direita</translation> <translation id="1987139229093034863">Escolher outro usuário.</translation> +<translation id="1987317783729300807">Contas</translation> <translation id="1989112275319619282">Procurar</translation> <translation id="1992397118740194946">Não definido</translation> <translation id="1994173015038366702">URL do site</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">Índice de guias inválido inserido.</translation> <translation id="2154484045852737596">Editar cartão</translation> <translation id="2154710561487035718">Copiar URL</translation> -<translation id="2155931291251286316">Sempre mostrar pop-ups de <ph name="HOST" /></translation> <translation id="215753907730220065">Sair do modo tela cheia</translation> <translation id="2157875535253991059">Esta página está no modo de tela inteira.</translation> <translation id="216169395504480358">Adicionar Wi-Fi...</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">Reiniciar</translation> <translation id="2803375539583399270">Insira o PIN</translation> <translation id="2805646850212350655">Sistema de arquivos com criptografia da Microsoft</translation> -<translation id="2805707493867224476">Permitir que todos os sites exibam pop-ups</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2807517655263062534">Os arquivos transferidos por download aparecem aqui</translation> <translation id="2809586584051668049">e mais <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1616,6 @@ <translation id="347919930506963698">Aproveitar ainda mais o Chrome</translation> <translation id="3479552764303398839">Não agora</translation> <translation id="3480892288821151001">Encaixar janela à esquerda</translation> -<translation id="3481915276125965083">Os seguintes pop-ups foram bloqueados nesta página:</translation> <translation id="3484273680291419129">Removendo software perigoso...</translation> <translation id="3484869148456018791">Obter novo certificado</translation> <translation id="3487007233252413104">função anônima</translation> @@ -1723,7 +1721,6 @@ <translation id="3637682276779847508">Seu cartão SIM será permanentemente desativado se você não informar a chave correta de desbloqueio por PIN.</translation> <translation id="363903084947548957">Próximo método de entrada</translation> <translation id="3640214691812501263">Adicionar "<ph name="EXTENSION_NAME" />" para <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">O gerenciamento de extensões não está disponível para usuários convidados. Faça login para gerenciar as extensões.</translation> <translation id="3644896802912593514">Largura</translation> <translation id="3646789916214779970">Redefinir para o tema padrão</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> detectado</translation> @@ -2065,7 +2062,6 @@ <translation id="4172051516777682613">Sempre mostrar</translation> <translation id="4175737294868205930">Armazenamento persistente</translation> <translation id="4176463684765177261">Desativado</translation> -<translation id="4180684688621252156">Serviço de impressão</translation> <translation id="4180788401304023883">Quer excluir a Autoridade de certificação do certificado "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Idiomas</translation> @@ -2246,7 +2242,7 @@ <translation id="4514542542275172126">Configurar um novo usuário supervisionado</translation> <translation id="451515744433878153">Remover</translation> <translation id="4518677423782794009">O Chrome apresenta falhas, mostrando páginas de inicialização ou barras de ferramentas incomuns ou anúncios indesejados dos quais você não consegue se livrar ou fazendo alguma outra alteração na sua experiência de navegação? Talvez seja possível corrigir o problema executando a Ferramenta de limpeza do Chrome.</translation> -<translation id="4518928191942891293">Iniciando contêiner na VM com Termina.</translation> +<translation id="4518928191942891293">Iniciando contêiner na VM Termina.</translation> <translation id="4520385623207007473">Cookies em uso</translation> <translation id="452039078290142656">dispositivos desconhecidos do <ph name="VENDOR_NAME" /></translation> <translation id="4522570452068850558">Detalhes</translation> @@ -2298,7 +2294,7 @@ <translation id="459505086032485258">Exibir configurações dos serviços do Google</translation> <translation id="4595560905247879544">Apps e extensões só podem ser modificadas pelo gerente (<ph name="CUSTODIAN_NAME" />).</translation> <translation id="4596295440756783523">Você tem certificados no arquivo que identificam estes servidores</translation> -<translation id="4598556348158889687">Gerenciamento de armazenamento</translation> +<translation id="4598556348158889687">Gestão de armazenamento</translation> <translation id="4598776695426288251">Wi-Fi disponível por meio de vários dispositivos</translation> <translation id="4602466770786743961">Sempre permitir que <ph name="HOST" /> acesse sua câmera e seu microfone</translation> <translation id="4603234488640507661">(Android)</translation> @@ -2944,7 +2940,7 @@ <translation id="5557991081552967863">Manter Wi-Fi ativado durante a suspensão.</translation> <translation id="5558129378926964177">Aumentar z&oom</translation> <translation id="5558446705802335921">Verifica os sites que você acessa e os arquivos transferidos por download quanto a comportamentos ou conteúdos prejudiciais, como phishing ou malware</translation> -<translation id="5559719557406102971">Iniciando a VM com Termina.</translation> +<translation id="5559719557406102971">Iniciando a VM Termina.</translation> <translation id="55601339223879446">Ajustar as fronteiras da sua área de trabalho dentro da tela</translation> <translation id="5562781907504170924">Esta guia está conectada a um dispositivo Bluetooth.</translation> <translation id="5565871407246142825">Cartões de crédito</translation> @@ -3274,6 +3270,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="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> <translation id="6080689532560039067">Verifique a hora do seu sistema</translation> @@ -3483,7 +3480,6 @@ <translation id="6406303162637086258">Simular reinicialização do navegador</translation> <translation id="6406506848690869874">Sincronizar</translation> <translation id="6408118934673775994">Ler e alterar seus dados em <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="6410257289063177456">Arquivos de imagem</translation> <translation id="6410328738210026208">Mudar de canal e executar PowerWash</translation> <translation id="6410668567036790476">Adicionar mecanismo de pesquisa</translation> @@ -3691,7 +3687,6 @@ <translation id="6708242697268981054">Origem:</translation> <translation id="6709357832553498500">Conectar usando <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Anterior</translation> -<translation id="6716704051134091292">Conversor de PDF</translation> <translation id="6718273304615422081">Compactando...</translation> <translation id="671928215901716392">Bloquear tela</translation> <translation id="67211069045302358">Redefinir configurações para esse site?</translation> @@ -3816,7 +3811,6 @@ <translation id="6920989436227028121">Abrir como guia normal</translation> <translation id="6922128026973287222">Economize dados e navegue mais rápido usando a Economia de dados do Google. Clique para saber mais.</translation> <translation id="6923132443355966645">Rolar / Clicar</translation> -<translation id="6929555043669117778">Continuar bloqueando pop-ups</translation> <translation id="6929835486583850209">Erro ao instalar <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Duração</translation> <translation id="6934241953272494177">Verificando seu dispositivo de mídia… @@ -3926,7 +3920,6 @@ <translation id="7088434364990739311">A atualização da verificação falhou ao iniciar (código do erro <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver: abra e compacte arquivos ZIP no app Arquivos.</translation> <translation id="7088674813905715446">O administrador pôs este dispositivo no estado de aprovisionamento cancelado. Para ativar a inscrição do dispositivo, solicite que o administrador o coloque no estado "Pendente".</translation> -<translation id="7092106376816104">Exceções de pop-ups</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Trocar dados com os dispositivos chamados: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Alternar para lupa de tela cheia</translation> @@ -4147,7 +4140,6 @@ <translation id="744341768939279100">Criar um novo perfil</translation> <translation id="7444726222535375658">Continuar para Hangouts Meet</translation> <translation id="7444983668544353857">Desativar <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pop-ups bloqueados</translation> <translation id="7453008956351770337">Ao selecionar esta impressora, você concede permissão para acessar sua impressora à seguinte extensão:</translation> <translation id="7453467225369441013">Desconecta você da maioria dos sites, mas não da sua Conta do Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4592,6 +4584,7 @@ <translation id="8072988827236813198">Fixar guias</translation> <translation id="8074127646604999664">Permitir que sites fechados recentemente concluam o envio e o recebimento de dados</translation> <translation id="8075191520954018715">Estado da memória</translation> +<translation id="8076492880354921740">Guias</translation> <translation id="8076835018653442223">O acesso aos arquivos locais do seu dispositivo foi desativado pelo administrador</translation> <translation id="8077684120002777443">Nome de usuário (por exemplo, usuario@example.com)</translation> <translation id="8077816382010018681">Título da notificação do recurso QU aqui</translation> @@ -4877,7 +4870,6 @@ <translation id="8569682776816196752">Nenhum destino encontrado</translation> <translation id="8569764466147087991">Selecionar um arquivo para ser aberto</translation> <translation id="8571213806525832805">Últimas quatro semanas</translation> -<translation id="8571613743082299268">Redirecionamento bloqueado para este site</translation> <translation id="8574990355410201600">Sempre permitir som em <ph name="HOST" /></translation> <translation id="8578639784464423491">Não pode exceder 99 letras</translation> <translation id="8579285237314169903">Sincronizando <ph name="NUMBER_OF_FILES" /> itens...</translation> @@ -5209,7 +5201,6 @@ <translation id="9065203028668620118">Editar</translation> <translation id="9066782832737749352">Conversão de texto em voz</translation> <translation id="9070219033670098627">Alterar pessoa</translation> -<translation id="907148966137935206">Não permitir que nenhum site mostre pop-ups (recomendado)</translation> <translation id="9071637495340542136">Instalando o app <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> conecta você automaticamente a apps e sites qualificados com senhas que você salvou.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index b5bb93d3..cfd8331 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Marcar esta página...</translation> <translation id="1047956942837015229">A eliminar <ph name="COUNT" /> itens...</translation> <translation id="1048286738600630630">Ecrãs</translation> +<translation id="1049743911850919806">Navegação anónima</translation> <translation id="1049795001945932310">&Definições de idioma</translation> <translation id="1049926623896334335">Documento do Word</translation> <translation id="1054153489933238809">Abrir &imagem original num Novo separador</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">O servidor de sincronização está ocupado, tente novamente mais tarde.</translation> <translation id="1784849162047402014">O dispositivo tem pouco espaço em disco</translation> <translation id="1786636458339910689">Drives de equipa</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1792619191750875668">Ecrã expandido</translation> <translation id="1793119619663054394">Tem a certeza de que pretende remover "<ph name="PROFILE_NAME" />" e todos os dados associados do Chrome deste computador? Não é possível anular esta ação.</translation> <translation id="1794791083288629568">Envie-nos comentários para nos ajudar a corrigir este problema.</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">Depois de criar um utilizador supervisionado, pode gerir as definições sempre que pretender e em qualquer dispositivo em <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Colocar janela à direita</translation> <translation id="1987139229093034863">Mudar para um utilizador diferente.</translation> +<translation id="1987317783729300807">Contas</translation> <translation id="1989112275319619282">Procurar</translation> <translation id="1992397118740194946">Não definida</translation> <translation id="1994173015038366702">URL do site</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">Introduzido índice de separador inválido.</translation> <translation id="2154484045852737596">Editar cartão</translation> <translation id="2154710561487035718">Copiar URL</translation> -<translation id="2155931291251286316">Permitir sempre pop-ups de <ph name="HOST" /></translation> <translation id="215753907730220065">Sair do modo de ecrã inteiro</translation> <translation id="2157875535253991059">Esta página está agora em ecrã inteiro.</translation> <translation id="216169395504480358">Adicionar Wi-Fi...</translation> @@ -1184,7 +1184,6 @@ <translation id="2799223571221894425">Reiniciar</translation> <translation id="2803375539583399270">Introduzir PIN</translation> <translation id="2805646850212350655">Sistema de encriptação de ficheiros Microsoft</translation> -<translation id="2805707493867224476">Permitir que todos os sites mostrem pop-ups</translation> <translation id="2805756323405976993">Aplicações</translation> <translation id="2807517655263062534">Os ficheiros que transferir são apresentados aqui</translation> <translation id="2809586584051668049">e mais <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1619,7 +1618,6 @@ <translation id="347919930506963698">Usufruir ainda mais do Chrome</translation> <translation id="3479552764303398839">Agora não</translation> <translation id="3480892288821151001">Colocar janela à esquerda</translation> -<translation id="3481915276125965083">Os seguintes pop-ups foram bloqueados nesta página:</translation> <translation id="3484273680291419129">A remover software prejudicial…</translation> <translation id="3484869148456018791">Obter novo certificado</translation> <translation id="3487007233252413104">função anónima</translation> @@ -1725,7 +1723,6 @@ <translation id="3637682276779847508">O seu cartão SIM é desativado definitivamente se não conseguir introduzir a chave de desbloqueio do PIN correta</translation> <translation id="363903084947548957">Método de introdução seguinte</translation> <translation id="3640214691812501263">Adicionar "<ph name="EXTENSION_NAME" />" para <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">A gestão de extensões não está disponível para os utilizadores convidados. Inicie sessão para gerir as extensões.</translation> <translation id="3644896802912593514">Largura</translation> <translation id="3646789916214779970">Repor o tema predefinido</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> detetado</translation> @@ -2067,7 +2064,6 @@ <translation id="4172051516777682613">Mostrar sempre</translation> <translation id="4175737294868205930">Armazenamento persistente</translation> <translation id="4176463684765177261">Desativado</translation> -<translation id="4180684688621252156">Serviço de impressão</translation> <translation id="4180788401304023883">Eliminar o certificado "<ph name="CERTIFICATE_NAME" />" da autoridade de certificação?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Idiomas</translation> @@ -3276,6 +3272,7 @@ <translation id="6075907793831890935">Trocar dados com o dispositivo com o nome <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Incluir esta captura de ecrã</translation> <translation id="6077131872140550515">Remover das preferidas</translation> +<translation id="6078323886959318429">Adicionar atalho</translation> <translation id="6078752646384677957">Verifique o microfone e os níveis de áudio.</translation> <translation id="6080515710685820702">Está a utilizar um computador partilhado? Experimente abrir uma janela de navegação anónima.</translation> <translation id="6080689532560039067">Verificar a hora do sistema</translation> @@ -3484,7 +3481,6 @@ <translation id="6406303162637086258">Simular reinício do navegador</translation> <translation id="6406506848690869874">Sincronização</translation> <translation id="6408118934673775994">Ler e alterar os seus dados em <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pop-ups</translation> <translation id="6410257289063177456">Ficheiros de imagem</translation> <translation id="6410328738210026208">Alterar canal e Powerwash</translation> <translation id="6410668567036790476">Adicionar motor de pesquisa</translation> @@ -3692,7 +3688,6 @@ <translation id="6708242697268981054">Origem:</translation> <translation id="6709357832553498500">Ligar através de <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Anterior</translation> -<translation id="6716704051134091292">Conversor de PDF</translation> <translation id="6718273304615422081">A comprimir...</translation> <translation id="671928215901716392">Bloquear ecrã</translation> <translation id="67211069045302358">Pretende repor as definições deste site?</translation> @@ -3817,7 +3812,6 @@ <translation id="6920989436227028121">Abrir como separador normal</translation> <translation id="6922128026973287222">Poupe dados e navegue mais rápido com a Poupança de dados Google. Clique para saber mais.</translation> <translation id="6923132443355966645">Deslocar/clicar</translation> -<translation id="6929555043669117778">Continuar a bloquear pop-ups</translation> <translation id="6929835486583850209">Erro ao instalar a aplicação <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Duração</translation> <translation id="6934241953272494177">A verificar o dispositivo multimédia... @@ -3927,7 +3921,6 @@ <translation id="7088434364990739311">Falha ao iniciar a verificação de atualizações (código de erro <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – abra e comprima ficheiros ZIP na aplicação Ficheiros.</translation> <translation id="7088674813905715446">Este dispositivo foi colocado num estado descontinuado pelo gestor. Para ativá-lo para inscrição, solicite ao gestor que coloque o dispositivo num estado pendente.</translation> -<translation id="7092106376816104">Exceções de pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Trocar dados com os seguintes dispositivos: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Ativar/desativar a Lupa de ecrã inteiro</translation> @@ -4147,7 +4140,6 @@ <translation id="744341768939279100">Criar um novo perfil</translation> <translation id="7444726222535375658">Continuar para o Hangouts Meet</translation> <translation id="7444983668544353857">Desactivar <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pop-ups bloqueados</translation> <translation id="7453008956351770337">Ao selecionar esta impressora, está a conceder à seguinte extensão a autorização para aceder à sua impressora:</translation> <translation id="7453467225369441013">A sua sessão é terminada na maioria dos sites. A sessão na sua Conta Google não é terminada.</translation> <translation id="7456142309650173560">programador</translation> @@ -4592,6 +4584,7 @@ <translation id="8072988827236813198">Fixar Separadores</translation> <translation id="8074127646604999664">Permitir que os sites fechados recentemente concluam o envio e a receção de dados</translation> <translation id="8075191520954018715">Estado da memória</translation> +<translation id="8076492880354921740">Separadores</translation> <translation id="8076835018653442223">O acesso a ficheiros locais no seu dispositivo foi desativado pelo seu administrador.</translation> <translation id="8077684120002777443">Nome de utilizador (por exemplo, utilizador@example.com)</translation> <translation id="8077816382010018681">Titulo da notificação da funcionalidade de Desbloqueio rápido aqui</translation> @@ -4876,7 +4869,6 @@ <translation id="8569682776816196752">Não foram encontrados destinos</translation> <translation id="8569764466147087991">Selecione um ficheiro para abrir</translation> <translation id="8571213806525832805">Últimas 4 semanas</translation> -<translation id="8571613743082299268">Redirecionamento bloqueado para o seguinte site</translation> <translation id="8574990355410201600">Permitir sempre som em <ph name="HOST" /></translation> <translation id="8578639784464423491">Não pode exceder 99 letras.</translation> <translation id="8579285237314169903">A sincronizar <ph name="NUMBER_OF_FILES" /> itens...</translation> @@ -5208,7 +5200,6 @@ <translation id="9065203028668620118">Editar</translation> <translation id="9066782832737749352">Síntese de voz</translation> <translation id="9070219033670098627">Mudar de pessoa</translation> -<translation id="907148966137935206">Não permitir que nenhum site mostre pop-ups (recomendado)</translation> <translation id="9071637495340542136">A instalar a aplicação <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347">O <ph name="PASSWORD_MANAGER_BRAND" /> inicia automaticamente sessão em sites e aplicações elegíveis com as palavras-passe que guardou.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index bd7d6fd9..a06ec741 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Marcați această pagină...</translation> <translation id="1047956942837015229">Se șterg <ph name="COUNT" /> elemente...</translation> <translation id="1048286738600630630">Afișări</translation> +<translation id="1049743911850919806">Incognito</translation> <translation id="1049795001945932310">&Setări de limbă</translation> <translation id="1049926623896334335">Document Word</translation> <translation id="1054153489933238809">Deschide &imaginea originală într-o filă nouă</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Serverul de sincronizare este ocupat, încearcă din nou mai târziu.</translation> <translation id="1784849162047402014">Spațiul de pe hard diskul dispozitivului este redus</translation> <translation id="1786636458339910689">Drive-uri în echipă</translation> -<translation id="1789575671122666129">Ferestre de tip pop-up</translation> <translation id="1792619191750875668">Afișare extinsă</translation> <translation id="1793119619663054394">Sigur dorești să elimini „<ph name="PROFILE_NAME" />” și toate datele Chrome asociate de pe acest computer? Această acțiune nu poate fi anulată.</translation> <translation id="1794791083288629568">Trimite feedback pentru a contribui la remedierea problemei.</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">După ce creați un utilizator monitorizat, puteți gestiona setările oricând și de pe orice dispozitiv, de la <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Andocați fereastra la dreapta</translation> <translation id="1987139229093034863">Comutați la alt utilizator.</translation> +<translation id="1987317783729300807">Conturi</translation> <translation id="1989112275319619282">Răsfoiește</translation> <translation id="1992397118740194946">Nu este setat</translation> <translation id="1994173015038366702">Adresa URL a site-ului</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">A fost introdus un index nevalid al filelor.</translation> <translation id="2154484045852737596">Editează cardul</translation> <translation id="2154710561487035718">Copiați adresa URL</translation> -<translation id="2155931291251286316">Permite întotdeauna afișarea ferestrelor pop-up de la <ph name="HOST" /></translation> <translation id="215753907730220065">Ieși din ecranul complet</translation> <translation id="2157875535253991059">Acum această pagină este în modul ecran complet.</translation> <translation id="216169395504480358">Adăugați o rețea Wi-Fi...</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">Repornește</translation> <translation id="2803375539583399270">Introdu codul PIN</translation> <translation id="2805646850212350655">Sistem Microsoft de criptare a fișierelor</translation> -<translation id="2805707493867224476">Permite tuturor site-urilor să afișeze ferestre pop-up</translation> <translation id="2805756323405976993">Aplicații</translation> <translation id="2807517655263062534">Fișierele pe care le descarci apar aici</translation> <translation id="2809586584051668049">și încă <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1616,6 @@ <translation id="347919930506963698">Obține și mai multe avantaje de la Chrome</translation> <translation id="3479552764303398839">Nu acum</translation> <translation id="3480892288821151001">Andocați fereastra la stânga</translation> -<translation id="3481915276125965083">Următoarele ferestre pop-up au fost blocate pe această pagină:</translation> <translation id="3484273680291419129">Se elimină software-ul dăunător...</translation> <translation id="3484869148456018791">Obțineți un certificat nou</translation> <translation id="3487007233252413104">funcție anonimă</translation> @@ -1723,7 +1721,6 @@ <translation id="3637682276779847508">Cardul SIM va fi dezactivat definitiv dacă nu vei introduce cheia corectă de deblocare a codului PIN.</translation> <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="3643225892037417978">Gestionarea extensiilor nu este disponibilă pentru utilizatorii invitați. Pentru a gestiona extensiile, conectează-te.</translation> <translation id="3644896802912593514">Lățime</translation> <translation id="3646789916214779970">Resetează la tema prestabilită</translation> <translation id="3648348069317717750">S-a detectat <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2062,6 @@ <translation id="4172051516777682613">Afișați întotdeauna</translation> <translation id="4175737294868205930">Stocare persistentă</translation> <translation id="4176463684765177261">Dezactivat</translation> -<translation id="4180684688621252156">Serviciu de printare</translation> <translation id="4180788401304023883">Șterge certificatul CA „<ph name="CERTIFICATE_NAME" />”?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Limbi</translation> @@ -2168,7 +2164,7 @@ <translation id="4364567974334641491"><ph name="APP_NAME" /> trimite conținutul unei ferestre.</translation> <translation id="4364830672918311045">Afișează notificările</translation> <translation id="4365673000813822030">Hopa, sincronizarea a încetat să funcționeze.</translation> -<translation id="4370373819607756384">Controlează această setare din <ph name="BEGIN_LINK" />Limbi<ph name="END_LINK" /></translation> +<translation id="4370373819607756384">Setează în <ph name="BEGIN_LINK" />Limbi<ph name="END_LINK" /></translation> <translation id="4370975561335139969">Adresa de e-mail și parola pe care le-ai introdus nu se potrivesc</translation> <translation id="437184764829821926">Setări avansate pentru fonturi</translation> <translation id="4372884569765913867">1x1</translation> @@ -3273,6 +3269,7 @@ <translation id="6075907793831890935">Fă schimb de date cu dispozitivul numit <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Include această captură de ecran</translation> <translation id="6077131872140550515">Elimină din preferate</translation> +<translation id="6078323886959318429">Adaugă o comandă rapidă</translation> <translation id="6078752646384677957">Verifică microfonul și nivelul audio.</translation> <translation id="6080515710685820702">Folosești un computer comun? Încearcă să deschizi o fereastră incognito.</translation> <translation id="6080689532560039067">Verificați ora sistemului</translation> @@ -3481,7 +3478,6 @@ <translation id="6406303162637086258">Simulați repornirea browserului</translation> <translation id="6406506848690869874">Sincronizare</translation> <translation id="6408118934673775994">Citește și modifică datele de pe <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> și <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Ferestre pop-up</translation> <translation id="6410257289063177456">Fișiere imagine</translation> <translation id="6410328738210026208">Schimbați canalul și porniți Powerwash</translation> <translation id="6410668567036790476">Adaugă motorul de căutare</translation> @@ -3689,7 +3685,6 @@ <translation id="6708242697268981054">Origine:</translation> <translation id="6709357832553498500">Conectează-te folosind <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Înapoi</translation> -<translation id="6716704051134091292">Convertor PDF</translation> <translation id="6718273304615422081">Se arhivează...</translation> <translation id="671928215901716392">Blocați ecranul</translation> <translation id="67211069045302358">Restabilești setările pentru acest site?</translation> @@ -3814,7 +3809,6 @@ <translation id="6920989436227028121">Deschide ca filă obișnuită</translation> <translation id="6922128026973287222">Economisește date și navighează mai rapid folosind Economizorul de date Google. Dă clic pentru a afla mai multe.</translation> <translation id="6923132443355966645">Derulează / Dă clic</translation> -<translation id="6929555043669117778">Continuă blocarea ferestrelor pop-up</translation> <translation id="6929835486583850209">Eroare la instalarea <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Durată</translation> <translation id="6934241953272494177">Se scanează dispozitivul media... @@ -3924,7 +3918,6 @@ <translation id="7088434364990739311">Nu a reușit pornirea verificării actualizării (cod de eroare <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – deschide și împachetează fișierele ZIP în aplicația Fișiere.</translation> <translation id="7088674813905715446">Administratorul a trecut acest dispozitiv într-o stare de acces revocat. Pentru a-l activa pentru înscriere, solicitați administratorului să-l treacă într-o stare de așteptare.</translation> -<translation id="7092106376816104">Excepții privind ferestrele de tip pop-up</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Fă schimb de date cu dispozitivele numite: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Activează/dezactivează Lupa de ecran complet</translation> @@ -4144,7 +4137,6 @@ <translation id="744341768939279100">Creați un profil nou</translation> <translation id="7444726222535375658">Accesează Hangouts Meet</translation> <translation id="7444983668544353857">Dezactivează <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Ferestre pop-up blocate</translation> <translation id="7453008956351770337">Selectând această imprimantă, acorzi următoarei extensii permisiunea de a accesa imprimanta:</translation> <translation id="7453467225369441013">Te deconectează de pe majoritatea site-urilor. Nu te va deconecta de la Contul Google.</translation> <translation id="7456142309650173560">dezvoltatori</translation> @@ -4589,6 +4581,7 @@ <translation id="8072988827236813198">Fixează file</translation> <translation id="8074127646604999664">Permite site-urilor închise recent să finalizeze trimiterea sau primirea datelor</translation> <translation id="8075191520954018715">Starea memoriei</translation> +<translation id="8076492880354921740">File</translation> <translation id="8076835018653442223">Accesul la fișierele de pe dispozitiv este dezactivat de administrator</translation> <translation id="8077684120002777443">Numele de utilizator (de ex., utilizator@example.com)</translation> <translation id="8077816382010018681">Titlul notificării privind funcția Deblocare rapidă trebuie să apară aici</translation> @@ -4873,7 +4866,6 @@ <translation id="8569682776816196752">Nu au fost găsite destinații</translation> <translation id="8569764466147087991">Selectează un fișier pentru a-l deschide</translation> <translation id="8571213806525832805">Ultimele 4 săptămâni</translation> -<translation id="8571613743082299268">S-a blocat redirecționarea către site-ul</translation> <translation id="8574990355410201600">Permite întotdeauna sunetul pe <ph name="HOST" /></translation> <translation id="8578639784464423491">Nu poate depăși 99 de litere</translation> <translation id="8579285237314169903">Se sincronizează <ph name="NUMBER_OF_FILES" /> elemente...</translation> @@ -5205,7 +5197,6 @@ <translation id="9065203028668620118">Editează</translation> <translation id="9066782832737749352">Redarea vocală a textului</translation> <translation id="9070219033670098627">Comută la altă persoană</translation> -<translation id="907148966137935206">Nu permite niciunui site să afișeze ferestre pop-up (recomandat)</translation> <translation id="9071637495340542136">Se instalează <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> te conectează automat pe site-urile și la aplicațiile eligibile cu parolele pe care le-ai salvat.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index 4f9f0ab..86f7ca7 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Добавить страницу в закладки…</translation> <translation id="1047956942837015229">Удаление элементов (<ph name="COUNT" />)…</translation> <translation id="1048286738600630630">Дисплеи</translation> +<translation id="1049743911850919806">Инкогнито</translation> <translation id="1049795001945932310">&Язык</translation> <translation id="1049926623896334335">Документ Word</translation> <translation id="1054153489933238809">Открыть оригинальное изображение в новой вкладке</translation> @@ -528,7 +529,6 @@ <translation id="1782924894173027610">Сервер синхронизации занят, повторите попытку позже.</translation> <translation id="1784849162047402014">Свободное пространство заканчивается</translation> <translation id="1786636458339910689">Общие диски</translation> -<translation id="1789575671122666129">Всплывающие окна</translation> <translation id="1792619191750875668">Дополнительный монитор</translation> <translation id="1793119619663054394">Удалить профиль "<ph name="PROFILE_NAME" />" и все связанные с ним данные Chrome с этого компьютера? Это действие нельзя отменить.</translation> <translation id="1794791083288629568">Отправить отзыв, чтобы помочь устранить ошибку</translation> @@ -651,12 +651,14 @@ <translation id="1983959805486816857">Создав контролируемый профиль, вы можете управлять его настройками с любого устройства на странице <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Закрепить окно справа</translation> <translation id="1987139229093034863">Переключитесь на другого пользователя.</translation> +<translation id="1987317783729300807">Аккаунты</translation> <translation id="1989112275319619282">Выбрать</translation> <translation id="1992397118740194946">Не задано</translation> <translation id="1994173015038366702">Адрес сайта</translation> <translation id="1997484222658892567">Сайт <ph name="URL" /> запрашивает разрешение на постоянное хранение большого объема данных на вашем компьютере.</translation> <translation id="1997616988432401742">Ваши сертификаты</translation> <translation id="1999115740519098545">Запуск Chrome</translation> +<translation id="2001796770603320721">Открыть на Google Диске</translation> <translation id="2006638907958895361">Открыть ссылку в приложении "<ph name="APP" />"</translation> <translation id="2007404777272201486">Сообщить о проблеме...</translation> <translation id="2016430552235416146">Обычная</translation> @@ -752,7 +754,6 @@ <translation id="2151576029659734873">Указан неверный индекс вкладки.</translation> <translation id="2154484045852737596">Изменение данных карты</translation> <translation id="2154710561487035718">Копировать URL</translation> -<translation id="2155931291251286316">Всегда показывать всплывающие окна с сайта <ph name="HOST" /></translation> <translation id="215753907730220065">Выход из полноэкранного режима</translation> <translation id="2157875535253991059">Эта страница отображается в полноэкранном режиме.</translation> <translation id="216169395504480358">Добавить подключение по Wi-Fi...</translation> @@ -1184,7 +1185,6 @@ <translation id="2799223571221894425">Перезапустить</translation> <translation id="2803375539583399270">Введите PIN-код</translation> <translation id="2805646850212350655">Зашифрованная файловая система (EFS) Microsoft</translation> -<translation id="2805707493867224476">Разрешить открытие всплывающих окон на всех сайтах</translation> <translation id="2805756323405976993">Сервисы</translation> <translation id="2807517655263062534">Скачанные файлы появятся здесь</translation> <translation id="2809586584051668049">и ещё <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1618,7 +1618,6 @@ <translation id="347919930506963698">Сделайте Chrome ещё удобнее</translation> <translation id="3479552764303398839">Не сейчас</translation> <translation id="3480892288821151001">Закрепить окно слева</translation> -<translation id="3481915276125965083">Заблокированы следующие всплывающие окна:</translation> <translation id="3484273680291419129">Удаление вредоносного ПО...</translation> <translation id="3484869148456018791">Получить новый сертификат</translation> <translation id="3487007233252413104">анонимные функции</translation> @@ -1724,7 +1723,6 @@ <translation id="3637682276779847508">Если вы введете неправильный PUK-код, SIM-карта будет окончательно заблокирована.</translation> <translation id="363903084947548957">Следующий способ ввода</translation> <translation id="3640214691812501263">Добавить расширение "<ph name="EXTENSION_NAME" />" для пользователя <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Эта функция недоступна в гостевом режиме. Чтобы управлять расширениями, выполните вход.</translation> <translation id="3644896802912593514">Ширина</translation> <translation id="3646789916214779970">Восстановить тему по умолчанию</translation> <translation id="3648348069317717750">Обнаружено устройство "<ph name="USB_DEVICE_NAME" />"</translation> @@ -2066,7 +2064,6 @@ <translation id="4172051516777682613">Показывать всегда</translation> <translation id="4175737294868205930">Постоянное хранилище</translation> <translation id="4176463684765177261">Отключено</translation> -<translation id="4180684688621252156">Сервис печати</translation> <translation id="4180788401304023883">Удалить сертификат "<ph name="CERTIFICATE_NAME" />" Центра сертификации?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Языки</translation> @@ -2092,6 +2089,7 @@ <translation id="42137655013211669">Доступ к этому ресурсу запрещен сервером.</translation> <translation id="4215350869199060536">Имя содержит недопустимые символы!</translation> <translation id="4215448920900139318">Сохранение файлов (<ph name="FILE_COUNT" />)…</translation> +<translation id="4217571870635786043">Голосовой ввод</translation> <translation id="4225397296022057997">На всех сайтах</translation> <translation id="4235200303672858594">Полноэкранный режим</translation> <translation id="4235813040357936597">Добавить аккаунт в профиль <ph name="PROFILE_NAME" /></translation> @@ -2204,6 +2202,7 @@ <translation id="4425149324548788773">Мой диск</translation> <translation id="4430019312045809116">Объем</translation> <translation id="4430369329743628066">Закладка добавлена</translation> +<translation id="4434045419905280838">Всплывающие окна и переадресация</translation> <translation id="443454694385851356">Устаревшие (небезопасно)</translation> <translation id="443464694732789311">Продолжить</translation> <translation id="443475966875174318">Обновление или удаление несовместимых приложений</translation> @@ -3274,6 +3273,7 @@ <translation id="6075907793831890935">Обмен данными с устройством <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Включить этот скриншот</translation> <translation id="6077131872140550515">Удалить из предпочитаемых сетей</translation> +<translation id="6078323886959318429">Добавить ярлык</translation> <translation id="6078752646384677957">Проверьте микрофон и уровни громкости.</translation> <translation id="6080515710685820702">Компьютером пользуются несколько человек? Откройте окно в режиме инкогнито.</translation> <translation id="6080689532560039067">Проверка системного времени</translation> @@ -3482,7 +3482,6 @@ <translation id="6406303162637086258">Симулировать перезапуск браузера</translation> <translation id="6406506848690869874">Синхронизация...</translation> <translation id="6408118934673775994">Просмотр и изменение данных на сайтах <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Всплывающие окна</translation> <translation id="6410257289063177456">Файлы изображений</translation> <translation id="6410328738210026208">Выбрать другой канал и включить Powerwash</translation> <translation id="6410668567036790476">Добавить поисковую систему</translation> @@ -3690,7 +3689,6 @@ <translation id="6708242697268981054">Расположение:</translation> <translation id="6709357832553498500">Подключиться через <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Назад</translation> -<translation id="6716704051134091292">Конвертер PDF</translation> <translation id="6718273304615422081">Архивирование…</translation> <translation id="671928215901716392">Блокировать экран</translation> <translation id="67211069045302358">Сбросить настройки?</translation> @@ -3815,7 +3813,6 @@ <translation id="6920989436227028121">Открыть в обычной вкладке</translation> <translation id="6922128026973287222">Расширение "Экономия трафика" от Google помогает быстрее просматривать веб-страницы и расходовать меньше трафика. Нажмите здесь, чтобы узнать подробности.</translation> <translation id="6923132443355966645">Прокрутить/нажать</translation> -<translation id="6929555043669117778">Всегда блокировать всплывающие окна</translation> <translation id="6929835486583850209">Ошибка при установке приложения "<ph name="APP_NAME" />"</translation> <translation id="6930242544192836755">Продолжительность</translation> <translation id="6934241953272494177">Сканирование медиаустройства... @@ -3899,6 +3896,7 @@ <translation id="7052237160939977163">Отправлять данные отслеживания производительности</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Блокировать</translation> +<translation id="7055152154916055070">Заблокирована попытка переадресации:</translation> <translation id="7056526158851679338">&Проверка устройств</translation> <translation id="7059858479264779982">Включить автозапуск</translation> <translation id="7059893117020417984">Чтобы просматривать сайты анонимно, нажмите на значок с тремя точками и выберите "Новое окно в режиме инкогнито"</translation> @@ -3925,7 +3923,6 @@ <translation id="7088434364990739311">Не удалось выполнить проверку обновлений (код ошибки: <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – работа с ZIP-архивами в приложении "Файлы"</translation> <translation id="7088674813905715446">Это устройство отключено администратором. Чтобы можно было выполнить регистрацию, устройство следует перевести в состояние ожидания подключения.</translation> -<translation id="7092106376816104">Исключения для всплывающих окон</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Обмен данными с устройствами <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Включить полноэкранную лупу</translation> @@ -4145,7 +4142,6 @@ <translation id="744341768939279100">Создать профиль</translation> <translation id="7444726222535375658">Перейти к Hangouts Meet</translation> <translation id="7444983668544353857">Отключить <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Всплывающие окна заблокированы</translation> <translation id="7453008956351770337">Выбирая этот принтер, вы предоставляете к нему доступ следующему расширению:</translation> <translation id="7453467225369441013">Вы выйдете из аккаунтов на большинстве сайтов, но останетесь в аккаунте Google.</translation> <translation id="7456142309650173560">для разработчиков</translation> @@ -4264,6 +4260,7 @@ <translation id="7617366389578322136">Подключение к устройству "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">Зарядка…</translation> <translation id="7624337243375417909">клавиша Caps Lock не нажата</translation> +<translation id="7625568159987162309">Посмотреть текущие разрешения и сохраненные данные сайтов</translation> <translation id="7627790789328695202">Файл "<ph name="FILE_NAME" />" уже существует. Задайте другое название и повторите попытку.</translation> <translation id="7628127343934101653">Открывать PDF-файлы в приложении по умолчанию</translation> <translation id="7629827748548208700">Вкладка: <ph name="TAB_NAME" /></translation> @@ -4586,10 +4583,12 @@ <translation id="806812017500012252">Упорядочить по заголовкам</translation> <translation id="8068253693380742035">Нажмите, чтобы войти</translation> <translation id="8069615408251337349">Виртуальный принтер Google</translation> +<translation id="806972267388474605">Файлы Linux</translation> <translation id="8071432093239591881">Печатать как изображение</translation> <translation id="8072988827236813198">Закрепить вкладки</translation> <translation id="8074127646604999664">Разрешать недавно закрытым сайтам завершать отправку и получение данных</translation> <translation id="8075191520954018715">Состояние памяти</translation> +<translation id="8076492880354921740">Вкладки</translation> <translation id="8076835018653442223">Доступ к локальным файлам на вашем устройстве отключен администратором.</translation> <translation id="8077684120002777443">Имя пользователя (например, user@example.com)</translation> <translation id="8077816382010018681">Быстрая разблокировка</translation> @@ -4874,7 +4873,6 @@ <translation id="8569682776816196752">Места назначения не найдены</translation> <translation id="8569764466147087991">Выберите файл</translation> <translation id="8571213806525832805">Последние 4 недели</translation> -<translation id="8571613743082299268">Заблокирована попытка переадресации на сайт</translation> <translation id="8574990355410201600">Всегда включать звук на сайте <ph name="HOST" /></translation> <translation id="8578639784464423491">В слове должно быть не больше 99 букв.</translation> <translation id="8579285237314169903">Синхронизация файлов (<ph name="NUMBER_OF_FILES" />)...</translation> @@ -5206,7 +5204,6 @@ <translation id="9065203028668620118">Изменить</translation> <translation id="9066782832737749352">Озвучивание текста</translation> <translation id="9070219033670098627">Сменить пользователя</translation> -<translation id="907148966137935206">Блокировать всплывающие окна на всех сайтах (рекомендуется)</translation> <translation id="9071637495340542136">Установка приложения "<ph name="APP_NAME" />"...</translation> <translation id="9072550133391925347">С помощью <ph name="PASSWORD_MANAGER_BRAND" /> вы будете автоматически входить на сайты и в приложения, для которых сохранили пароли.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index cc57774..c4468241 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Pridať stránku medzi záložky…</translation> <translation id="1047956942837015229">Prebieha odstraňovanie <ph name="COUNT" /> položiek...</translation> <translation id="1048286738600630630">Zobrazenie</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Nastavenia jazyka</translation> <translation id="1049926623896334335">Dokument aplikácie Word</translation> <translation id="1054153489933238809">Otvoriť pôvodný &obrázok na novej karte</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Server pre synchronizáciu je zaneprázdnený. Skúste to znova neskôr.</translation> <translation id="1784849162047402014">V zariadení je málo miesta na disku</translation> <translation id="1786636458339910689">Tímové disky</translation> -<translation id="1789575671122666129">Kontextové okná</translation> <translation id="1792619191750875668">Rozšírená obrazovka</translation> <translation id="1793119619663054394">Naozaj chcete z tohto počítača odstrániť profil <ph name="PROFILE_NAME" /> a všetky priradené údaje prehliadača Chrome? Túto akciu nie je možné vrátiť späť.</translation> <translation id="1794791083288629568">Odoslať spätnú väzbu, ktorá nám pomôže pri riešení tohto problému</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Po vytvorení nového kontrolovaného používateľa môžete kedykoľvek spravovať nastavenia z akéhokoľvek zariadenia na adrese <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Prichytiť okno vpravo</translation> <translation id="1987139229093034863">Prepnúť na iného používateľa.</translation> +<translation id="1987317783729300807">Účty</translation> <translation id="1989112275319619282">Prehliadať</translation> <translation id="1992397118740194946">Nie je nastavené</translation> <translation id="1994173015038366702">Webová adresa stránok</translation> <translation id="1997484222658892567"><ph name="URL" /> chce natrvalo ukladať veľké množstvo dát vo vašom počítači</translation> <translation id="1997616988432401742">Vaše certifikáty</translation> <translation id="1999115740519098545">Pri spustení</translation> +<translation id="2001796770603320721">Spravovať na Disku</translation> <translation id="2006638907958895361">Otvoriť odkaz v aplikácii <ph name="APP" /></translation> <translation id="2007404777272201486">Nahlásiť problém...</translation> <translation id="2016430552235416146">Tradičné</translation> @@ -754,7 +756,6 @@ <translation id="2151576029659734873">Zadali ste neplatný index kariet.</translation> <translation id="2154484045852737596">Úprava karty</translation> <translation id="2154710561487035718">Kopírovať webovú adresu</translation> -<translation id="2155931291251286316">Vždy povoliť zobrazovanie kontextových okien zo stránok <ph name="HOST" /></translation> <translation id="215753907730220065">Ukončiť zobrazenie na celú obrazovku</translation> <translation id="2157875535253991059">Táto stránka je teraz zobrazená na celú obrazovku.</translation> <translation id="216169395504480358">Pridať Wi‑Fi…</translation> @@ -804,7 +805,7 @@ <translation id="2230062665678605299">Priečinok <ph name="FOLDER_NAME" /> sa nepodarilo vytvoriť. <ph name="ERROR_MESSAGE" /></translation> <translation id="223106756035922488">Kliknutím zobrazíte dnešný doodle</translation> <translation id="2231238007119540260">Ak odstránite certifikát servera, obnovíte zvyčajné bezpečnostné kontroly servera a server bude musieť používať platný certifikát.</translation> -<translation id="2232379019872353004">Odosielať niektoré informácie o systéme a obsah stránok do Googlu</translation> +<translation id="2232379019872353004">Odosielať niektoré informácie o systéme a obsah stránok Googlu</translation> <translation id="2232876851878324699">Súbor obsahoval jeden certifikát, ktorý nebol importovaný:</translation> <translation id="2233502537820838181">Ďalšie &informácie</translation> <translation id="2238379619048995541">Údaje stavu frekvencie</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Znova spustiť</translation> <translation id="2803375539583399270">Zadajte kód PIN</translation> <translation id="2805646850212350655">Systém šifrovania súborov spoločnosti Microsoft</translation> -<translation id="2805707493867224476">Povoliť všetkým webovým stránkam zobrazovať kontextové okná</translation> <translation id="2805756323405976993">Aplikácie</translation> <translation id="2807517655263062534">Tu sa zobrazia súbory, ktoré stiahnete</translation> <translation id="2809586584051668049">a ďalšie (počet: <ph name="NUMBER_ADDITIONAL_DISABLED" />)</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Vyťažte z Chromu ešte viac</translation> <translation id="3479552764303398839">Teraz nie</translation> <translation id="3480892288821151001">Prichytiť okno vľavo</translation> -<translation id="3481915276125965083">Na tejto stránke boli zablokované nasledujúce kontextové okná:</translation> <translation id="3484273680291419129">Odstraňujte sa škodlivý softvér…</translation> <translation id="3484869148456018791">Získať nový certifikát</translation> <translation id="3487007233252413104">anonymná funkcia</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Ak nezadáte správny kód PIN na odomknutie, vaša SIM karta bude natrvalo deaktivovaná.</translation> <translation id="363903084947548957">Nasledujúca metóda vstupu</translation> <translation id="3640214691812501263">Pridať rozšírenie <ph name="EXTENSION_NAME" /> pre používateľa <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Správa rozšírení nie je k dispozícii pre hostí. Ak ich chcete spravovať, prihláste sa.</translation> <translation id="3644896802912593514">Šírka</translation> <translation id="3646789916214779970">Obnoviť predvolený motív</translation> <translation id="3648348069317717750">Rozpoznané zariadenie: <ph name="USB_DEVICE_NAME" /></translation> @@ -2036,7 +2034,7 @@ <translation id="4109135793348361820">Presunúť okno k používateľovi <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation> <translation id="4110559665646603267">Zameranie na poličku</translation> <translation id="4110895898888439383">Prehliadajte web v režime vysokého kontrastu</translation> -<translation id="4112774766611964959">Odinštaluje sa tým aplikácia <ph name="APP_NAME" /> a odstránia všetky údaje a aplikácie Linux zo zariadenia <ph name="DEVICE_TYPE" />. Naozaj chcete pokračovať?</translation> +<translation id="4112774766611964959">Odinštaluje sa tým aplikácia <ph name="APP_NAME" /> a odstránia sa všetky údaje a aplikácie Linux zo zariadenia <ph name="DEVICE_TYPE" />. Naozaj chcete pokračovať?</translation> <translation id="4114360727879906392">Predchádzajúce okno</translation> <translation id="4115002065223188701">Sieť je mimo dosahu</translation> <translation id="4115080753528843955">Niektoré obsahové služby používajú jedinečné identifikátory na autorizáciu prístupu ku chránenému obsahu</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Vždy zobraziť</translation> <translation id="4175737294868205930">Trvalé úložisko</translation> <translation id="4176463684765177261">Deaktivované</translation> -<translation id="4180684688621252156">Tlačová služba</translation> <translation id="4180788401304023883">Odstrániť certifikát CA „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Jazyky</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Server zakázal prístup k tomuto zdroju</translation> <translation id="4215350869199060536">Hops, v mene sú nepovolené symboly!</translation> <translation id="4215448920900139318">Zálohujú sa fotky (<ph name="FILE_COUNT" />)</translation> +<translation id="4217571870635786043">Diktovanie</translation> <translation id="4225397296022057997">Na všetkých weboch</translation> <translation id="4235200303672858594">Celá obrazovka</translation> <translation id="4235813040357936597">Pridať účet k profilu <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Môj disk</translation> <translation id="4430019312045809116">Hlasitosť</translation> <translation id="4430369329743628066">Záložka bola pridaná</translation> +<translation id="4434045419905280838">Kontextové okná a presmerovania</translation> <translation id="443454694385851356">Staré (nezabezpečené)</translation> <translation id="443464694732789311">Pokračovať</translation> <translation id="443475966875174318">Aktualizácia a odstránenie nekompatibilných aplikácií</translation> @@ -2943,7 +2942,7 @@ <translation id="555746285996217175">Zámka / napájanie</translation> <translation id="5557991081552967863">Počas spánku ponechať zapnutú sieť Wi‑Fi</translation> <translation id="5558129378926964177">Priblíž&iť</translation> -<translation id="5558446705802335921">Skontrolujte navštívené weby a stiahnuté súbory, či nezahŕňajú škodlivé správanie alebo obsah, napríklad phishing alebo malvér</translation> +<translation id="5558446705802335921">Skontroluje navštívené weby a stiahnuté súbory, či nezahŕňajú škodlivé správanie alebo obsah, napríklad phishing alebo malvér</translation> <translation id="5559719557406102971">Spúšťa sa Termina VM.</translation> <translation id="55601339223879446">Úprava ohraničenia pracovnej plochy obrazovky</translation> <translation id="5562781907504170924">Táto karta je prepojená so zariadením Bluetooth.</translation> @@ -3273,6 +3272,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="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> <translation id="6080689532560039067">Kontrola času systému</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Simulovať reštartovanie prehliadača</translation> <translation id="6406506848690869874">Synchronizácia</translation> <translation id="6408118934673775994">Čítať a meniť údaje na weboch <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> a <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Kontextové okná</translation> <translation id="6410257289063177456">Súbory obrázkov</translation> <translation id="6410328738210026208">Zmeniť kanál a použiť funkciu Powerwash</translation> <translation id="6410668567036790476">Pridať vyhľadávač</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Pôvod:</translation> <translation id="6709357832553498500">Pripojiť sa pomocou rozšírenia <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Dozadu</translation> -<translation id="6716704051134091292">Konvertor PDF</translation> <translation id="6718273304615422081">Prebieha komprimovanie...</translation> <translation id="671928215901716392">Uzamknúť obrazovku</translation> <translation id="67211069045302358">Chcete resetovať nastavenia tohto webu?</translation> @@ -3812,7 +3810,6 @@ <translation id="6920989436227028121">Otvoriť ako bežnú kartu</translation> <translation id="6922128026973287222">Ukladajte údaje a prehliadajte rýchlejšie pomocou funkcie Šetrič Dát Google. Kliknutím získate ďalšie informácie.</translation> <translation id="6923132443355966645">Posunúť/kliknúť</translation> -<translation id="6929555043669117778">Pokračovať v blokovaní kontextových okien</translation> <translation id="6929835486583850209">Chyba pri inštalovaní aplikácie <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Trvanie</translation> <translation id="6934241953272494177">Prehľadáva sa vaše mediálne zariadenie... @@ -3896,6 +3893,7 @@ <translation id="7052237160939977163">Odosielať údaje sledovania výkonnosti</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blokovať</translation> +<translation id="7055152154916055070">Presmerovanie bolo zablokované:</translation> <translation id="7056526158851679338">&Preskúmať zariadenia</translation> <translation id="7059858479264779982">Nastaviť na automatické spúšťanie</translation> <translation id="7059893117020417984">Ak chcete prehliadať v súkromí, otvorte okno inkognito klepnutím na ponuku s ikonou bodiek</translation> @@ -3922,7 +3920,6 @@ <translation id="7088434364990739311">Kontrolu aktualizácií sa nepodarilo spustiť (kód chyby: <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – Otvárajte a komprimujte súbory ZIP v aplikácii Súbory.</translation> <translation id="7088674813905715446">Toto zariadenie bolo správcom uvedené do stavu odstránenia. Ak chcete povoliť jeho registráciu, požiadajte svojho správcu, aby zariadenie uviedol do stavu čakania.</translation> -<translation id="7092106376816104">Výnimky kontextových okien</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Vymieňať údaje so zariadeniami s nasledujúcimi názvami: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Prepnúť lupu na celú obrazovku</translation> @@ -4142,7 +4139,6 @@ <translation id="744341768939279100">Vytvoriť nový profil</translation> <translation id="7444726222535375658">Pokračovať do služby Hangouts Meet</translation> <translation id="7444983668544353857">Zakázať zariadenie <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Boli zablokované kontextové okná</translation> <translation id="7453008956351770337">Výberom tejto tlačiarne udeľujete nasledujúcemu rozšíreniu povolenie k tlačiarni pristupovať:</translation> <translation id="7453467225369441013">Odhlási vás z väčšiny webov, ale nie z účtu Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4261,6 +4257,7 @@ <translation id="7617366389578322136">Pripája sa k zariadeniu „<ph name="DEVICE_NAME" />“</translation> <translation id="7622114377921274169">Nabíja sa.</translation> <translation id="7624337243375417909">Funkcia Caps Lock je vypnutá</translation> +<translation id="7625568159987162309">Zobraziť povolenia a dáta uložené na weboch</translation> <translation id="7627790789328695202">Hops, súbor <ph name="FILE_NAME" /> už existuje. Premenujte ho a skúste to znova.</translation> <translation id="7628127343934101653">Otvárať súbory PDF v predvolenej aplikácii na zobrazovanie súborov PDF</translation> <translation id="7629827748548208700">Karta: <ph name="TAB_NAME" /></translation> @@ -4394,7 +4391,7 @@ <ph name="LIST_ITEM" />odstrániť overenie rootfs, aby ste mohli upravovať súbory operačného systému; <ph name="LIST_ITEM" />povoliť prístup SSH do zariadenia pomocou štandardných testovacích kľúčov, aby ste mohli na prístup do zariadenia používať nástroje, ako napríklad <ph name="BEGIN_CODE" />cros flash<ph name="END_CODE" />; <ph name="LIST_ITEM" />povoliť spúšťanie cez rozhranie USB, aby ste mohli nainštalovať obraz operačného systému z disku USB; - <ph name="LIST_ITEM" />nastaviť prihlasovacie heslo používateľa dev a root na vlastnú hodnotu, aby ste mohli ručne pristúpiť do zariadenia prostredníctvom protokolu SSH. + <ph name="LIST_ITEM" />nastaviť prihlasovacie heslo používateľa dev a root na vlastnú hodnotu, aby ste mali prístup do zariadenia prostredníctvom protokolu SSH. <ph name="END_LIST" /> <ph name="BR" /> Väčšina funkcií ladenia zostane po aktivácii povolená aj po vymazaní zariadenia prostredníctvom funkcie Powerwash alebo vymazaní údajov na zariadení spravovanom podnikom. Ak chcete funkcie ladenia úplne deaktivovať, dokončite proces obnovenia systému OS Chrome (https://support.google.com/chromebook/answer/1080595). @@ -4583,10 +4580,12 @@ <translation id="806812017500012252">Zoradiť podľa názvu</translation> <translation id="8068253693380742035">Dotykom sa prihlásite</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Súbory systému Linux</translation> <translation id="8071432093239591881">Vytlačiť ako obrázok</translation> <translation id="8072988827236813198">Pripnúť karty</translation> <translation id="8074127646604999664">Povoliť nedávno zatvoreným webom dokončiť posielanie a prijímanie údajov</translation> <translation id="8075191520954018715">Stav pamäte</translation> +<translation id="8076492880354921740">Karty</translation> <translation id="8076835018653442223">Prístup k miestnym súborom vo vašom zariadení zakázal správca</translation> <translation id="8077684120002777443">Používateľské meno (napr. pouzivatel@example.com)</translation> <translation id="8077816382010018681">Tu má byť nadpis upozornenia funkcie rýchleho odomknutia</translation> @@ -4871,7 +4870,6 @@ <translation id="8569682776816196752">Nenašli sa žiadne ciele</translation> <translation id="8569764466147087991">Vyberte súbor, ktorý chcete otvoriť</translation> <translation id="8571213806525832805">Posledné 4 týždne</translation> -<translation id="8571613743082299268">Presmerovanie bolo zablokované a upravené na web</translation> <translation id="8574990355410201600">Vždy povoliť zvuk na webe <ph name="HOST" /></translation> <translation id="8578639784464423491">Nemôže presiahnuť 99 znakov</translation> <translation id="8579285237314169903">Synchronizujú sa položky (počet: <ph name="NUMBER_OF_FILES" />)...</translation> @@ -5185,7 +5183,7 @@ <translation id="9042893549633094279">Ochrana súkromia a zabezpečenie</translation> <translation id="904451693890288097">Zadajte prístupový kľúč pre zariadenie „<ph name="DEVICE_NAME" />“:</translation> <translation id="9044646465488564462">Nepodarilo sa pripojiť k sieti: <ph name="DETAILS" /></translation> -<translation id="9045430190527754450">Odošle Google webovú adresu stránky, na ktorú sa pokúšate prejsť</translation> +<translation id="9045430190527754450">Odošle Googlu webovú adresu stránky, na ktorú sa pokúšate prejsť</translation> <translation id="9046895021617826162">Zlyhanie pripojenia</translation> <translation id="9050666287014529139">Prístupová fráza</translation> <translation id="9052208328806230490">Tlačiarne ste zaregistrovali v službe <ph name="CLOUD_PRINT_NAME" /> prostredníctvom účtu <ph name="EMAIL" /></translation> @@ -5203,7 +5201,6 @@ <translation id="9065203028668620118">Upraviť</translation> <translation id="9066782832737749352">Prevod textu na reč</translation> <translation id="9070219033670098627">Prepnúť osobu</translation> -<translation id="907148966137935206">Nepovoliť žiadnym webovým stránkam zobrazovať kontextové okná (odporúča sa)</translation> <translation id="9071637495340542136">Inštaluje sa <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> vás automaticky prihlási na vhodných weboch a v aplikáciách pomocou hesiel, ktoré ste si uložili.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index e0b3050..b597e20 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Zaznamek za to stran ...</translation> <translation id="1047956942837015229">Brisanje toliko elementov: <ph name="COUNT" /> ...</translation> <translation id="1048286738600630630">Zasloni</translation> +<translation id="1049743911850919806">Način brez beleženja zgodovine</translation> <translation id="1049795001945932310">&Jezikovne nastavitve</translation> <translation id="1049926623896334335">Wordov dokument</translation> <translation id="1054153489933238809">Odpri izvirno &sliko na novem zavihku</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">Sinhronizacijski strežnik je zaseden, poskusite znova pozneje.</translation> <translation id="1784849162047402014">V napravi primanjkuje prostora na disku</translation> <translation id="1786636458339910689">Diski ekip</translation> -<translation id="1789575671122666129">Pojavna okna</translation> <translation id="1792619191750875668">Razširjen zaslon</translation> <translation id="1793119619663054394">Ali ste prepričani, da želite iz tega računalnika izbrisati profil »<ph name="PROFILE_NAME" />« in vse povezane podatke v Chromu? Dejanja ni mogoče razveljaviti.</translation> <translation id="1794791083288629568">Pošiljanje povratnih informacij zaradi odpravljanja te težave.</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">Ko ustvarite novega zaščitenega uporabnika, lahko na naslovu <ph name="MANAGEMENT_URL" /> kadar koli in iz poljubne naprave upravljate njegove nastavitve.</translation> <translation id="1984642098429648350">Zasidraj okno desno</translation> <translation id="1987139229093034863">Preklopite na drugega uporabnika.</translation> +<translation id="1987317783729300807">Računi</translation> <translation id="1989112275319619282">Brskanje</translation> <translation id="1992397118740194946">Ni nastavljeno</translation> <translation id="1994173015038366702">URL spletnega mesta</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">Vneseni tabulatorski indeks ni veljaven.</translation> <translation id="2154484045852737596">Urejanje kartice</translation> <translation id="2154710561487035718">Kopiraj URL</translation> -<translation id="2155931291251286316">Vedno dovoli pojavna okna mesta <ph name="HOST" /></translation> <translation id="215753907730220065">Izhod iz celozaslonskega načina</translation> <translation id="2157875535253991059">Ta stran je zdaj prikazana na celotnem zaslonu.</translation> <translation id="216169395504480358">Dodaj Wi-Fi ...</translation> @@ -1184,7 +1184,6 @@ <translation id="2799223571221894425">Vnovičen zagon</translation> <translation id="2803375539583399270">Vnesite kodo PIN</translation> <translation id="2805646850212350655">Microsoftov šifrirni datotečni sistem</translation> -<translation id="2805707493867224476">Dovoli vsem mestom, da pokažejo pojavna okna</translation> <translation id="2805756323405976993">Aplikacije</translation> <translation id="2807517655263062534">Tu so prikazane datoteke, ki jih prenesete</translation> <translation id="2809586584051668049">in še <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1618,7 +1617,6 @@ <translation id="347919930506963698">Še bolje izkoristite Chrome</translation> <translation id="3479552764303398839">Ne zdaj</translation> <translation id="3480892288821151001">Zasidraj okno levo</translation> -<translation id="3481915276125965083">Na tej strani so blokirana ta pojavna okna:</translation> <translation id="3484273680291419129">Odstranjevanje škodljive programske opreme ...</translation> <translation id="3484869148456018791">Prenesite novo potrdilo</translation> <translation id="3487007233252413104">anonimna funkcija</translation> @@ -1724,7 +1722,6 @@ <translation id="3637682276779847508">Kartica SIM bo trajno onemogočena, če ne boste vnesli pravilne kode za odklepanje kode PIN.</translation> <translation id="363903084947548957">Naslednji način vnosa</translation> <translation id="3640214691812501263">Želite dodati »<ph name="EXTENSION_NAME" />« za uporabnika <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Gostom upravljanje razširitev ni na voljo. Če želite upravljati razširitve, se prijavite.</translation> <translation id="3644896802912593514">Širina</translation> <translation id="3646789916214779970">Ponastavi na privzeto temo</translation> <translation id="3648348069317717750">Zaznana naprava USB: <ph name="USB_DEVICE_NAME" /></translation> @@ -2066,7 +2063,6 @@ <translation id="4172051516777682613">Vedno pokaži</translation> <translation id="4175737294868205930">Trajno shranjevanje</translation> <translation id="4176463684765177261">Onemogočeno</translation> -<translation id="4180684688621252156">Storitev tiskanja</translation> <translation id="4180788401304023883">Ali želite izbrisati overjeno potrdilo »<ph name="CERTIFICATE_NAME" />«?</translation> <translation id="4181602000363099176">20 x</translation> <translation id="4181841719683918333">Jeziki</translation> @@ -3275,6 +3271,7 @@ <translation id="6075907793831890935">Izmenjava podatkov z napravo, imenovano: <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Vključuje ta posnetek zaslona</translation> <translation id="6077131872140550515">Odstrani s seznama prednostnih</translation> +<translation id="6078323886959318429">Dodajanje bližnjice</translation> <translation id="6078752646384677957">Preverite ravni glasnosti mikrofona in zvoka.</translation> <translation id="6080515710685820702">Uporabljate računalnik v skupni rabi? Poskusite odpreti okno brez beleženja zgodovine.</translation> <translation id="6080689532560039067">Preverjanje sistemskega časa</translation> @@ -3483,7 +3480,6 @@ <translation id="6406303162637086258">Posnemaj vnovični zagon brskalnika</translation> <translation id="6406506848690869874">Sinhronizacija</translation> <translation id="6408118934673775994">Branje in spreminjanje vaših podatkov na spletnih mestih <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> in <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Pojavna okna</translation> <translation id="6410257289063177456">Slikovne datoteke</translation> <translation id="6410328738210026208">Sprememba različice in Powerwash</translation> <translation id="6410668567036790476">Dodajanje iskalnika</translation> @@ -3690,7 +3686,6 @@ <translation id="6708242697268981054">Izvor:</translation> <translation id="6709357832553498500">Povezava z uporabo razširitve <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Nazaj</translation> -<translation id="6716704051134091292">Pretvornik PDF-jev</translation> <translation id="6718273304615422081">Stiskanje ...</translation> <translation id="671928215901716392">Zakleni zaslon</translation> <translation id="67211069045302358">Želite ponastaviti nastavitve za to spletno mesto?</translation> @@ -3815,7 +3810,6 @@ <translation id="6920989436227028121">Odpri kot navaden zavihek</translation> <translation id="6922128026973287222">Z Google Varčevanjem s podatki varčujete s podatki in brskate hitreje. Kliknite, če želite izvedeti več.</translation> <translation id="6923132443355966645">Drsenje/klikanje</translation> -<translation id="6929555043669117778">Še naprej blokiraj pojavna okna</translation> <translation id="6929835486583850209">Napaka pri nameščanju aplikacije <ph name="APP_NAME" /> ...</translation> <translation id="6930242544192836755">Trajanje</translation> <translation id="6934241953272494177">Pregledovanje predstavnostne naprave ... @@ -3925,7 +3919,6 @@ <translation id="7088434364990739311">Zagon preverjanja posodobitve ni uspel (koda napake <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – odpiranje in pakiranje datotek ZIP v aplikaciji Datoteke.</translation> <translation id="7088674813905715446">Skrbnik je to napravo umaknil iz uporabe. Če jo želite omogočiti za včlanitev, naj jo skrbnik preklopi v stanje čakanja.</translation> -<translation id="7092106376816104">Izjeme za pojavna okna</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Izmenjava podatkov z napravami, imenovanimi: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Preklop celozaslonske lupe</translation> @@ -4145,7 +4138,6 @@ <translation id="744341768939279100">Ustvari nov profil</translation> <translation id="7444726222535375658">Naprej v Hangouts Meet</translation> <translation id="7444983668544353857">Onemogoči <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Pojavna okna so blokirana</translation> <translation id="7453008956351770337">Če izberete ta tiskalnik, daste tej razširitvi dovoljenje za dostop do tiskalnika:</translation> <translation id="7453467225369441013">Odjavi vas iz večine spletnih mest, vendar ne iz Google Računa.</translation> <translation id="7456142309650173560">dev</translation> @@ -4590,6 +4582,7 @@ <translation id="8072988827236813198">Pripni zavihke</translation> <translation id="8074127646604999664">Nedavno zaprtim spletnim mestom dovoli dokončanje pošiljanja in prejemanja podatkov</translation> <translation id="8075191520954018715">Stanje pomnilnika</translation> +<translation id="8076492880354921740">Zavihki</translation> <translation id="8076835018653442223">Skrbnik je onemogočil dostop do lokalnih datotek v vaši napravi</translation> <translation id="8077684120002777443">Uporabniško ime (npr. uporabnik@example.com)</translation> <translation id="8077816382010018681">Naslov sporočila o funkciji hitrega odklepanja je tukaj.</translation> @@ -4874,7 +4867,6 @@ <translation id="8569682776816196752">Najti ni bilo mogoče nobenega cilja</translation> <translation id="8569764466147087991">Izberite datoteko, ki jo želite odpreti</translation> <translation id="8571213806525832805">Zadnji 4 tedni</translation> -<translation id="8571613743082299268">Blokirana je preusmeritev na spletno mesto</translation> <translation id="8574990355410201600">Vedno dovoli zvok na spletnem mestu <ph name="HOST" /></translation> <translation id="8578639784464423491">Ne sme presegati 99 črk</translation> <translation id="8579285237314169903">Sinhroniziranje datotek (<ph name="NUMBER_OF_FILES" />) ...</translation> @@ -5206,7 +5198,6 @@ <translation id="9065203028668620118">Uredi</translation> <translation id="9066782832737749352">Pretvorba besedila v govor</translation> <translation id="9070219033670098627">Preklopi osebo</translation> -<translation id="907148966137935206">Ne dovoli nobenem mestu, da pokaže pojavna okna (priporočeno)</translation> <translation id="9071637495340542136">Nameščanje aplikacije <ph name="APP_NAME" /> ...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> vas z gesli, ki ste jih shranili, samodejno prijavi v ustrezna spletna mesta in aplikacije.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 689ccc9..ab8f8391 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Обележи ову страницу...</translation> <translation id="1047956942837015229">Брисање ставки (<ph name="COUNT" />)...</translation> <translation id="1048286738600630630">Прикази</translation> +<translation id="1049743911850919806">Без архивирања</translation> <translation id="1049795001945932310">&Подешавања језика</translation> <translation id="1049926623896334335">Word документ</translation> <translation id="1054153489933238809">Отвори оригиналну сл&ику у новој картици</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">Сервер за синхронизацију је заузет. Пробајте поново касније.</translation> <translation id="1784849162047402014">Уређају понестаје простора на диску</translation> <translation id="1786636458339910689">Дискови тимова</translation> -<translation id="1789575671122666129">Искачући прозори</translation> <translation id="1792619191750875668">Проширени приказ</translation> <translation id="1793119619663054394">Желите ли стварно да уклоните „<ph name="PROFILE_NAME" />“ и све повезане Chrome податке са овог рачунара? Ова радња не може да се опозове.</translation> <translation id="1794791083288629568">Шаљи повратне информације као помоћ за решавање овог проблема.</translation> @@ -649,12 +649,14 @@ <translation id="1983959805486816857">Када направите новог корисника под надзором, можете да управљате подешавањима у било ком тренутку са било ког уређаја на <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Спајање прозора са десне стране</translation> <translation id="1987139229093034863">Прелазак на другог корисника.</translation> +<translation id="1987317783729300807">Налози</translation> <translation id="1989112275319619282">Прегледај</translation> <translation id="1992397118740194946">Није подешено</translation> <translation id="1994173015038366702">URL сајта</translation> <translation id="1997484222658892567"><ph name="URL" /> жели да трајно складишти велику количину података на вашем локалном рачунару</translation> <translation id="1997616988432401742">Ваши сертификати</translation> <translation id="1999115740519098545">При покретању</translation> +<translation id="2001796770603320721">Управљајте на Диску</translation> <translation id="2006638907958895361">Отвори линк у <ph name="APP" /></translation> <translation id="2007404777272201486">Пријави проблем...</translation> <translation id="2016430552235416146">Традиционално</translation> @@ -750,7 +752,6 @@ <translation id="2151576029659734873">Унет је неважећи индекс картице.</translation> <translation id="2154484045852737596">Измените картицу</translation> <translation id="2154710561487035718">Копирање URL адресе</translation> -<translation id="2155931291251286316">Увек дозволи искачуће прозоре са сајта <ph name="HOST" /></translation> <translation id="215753907730220065">Изађи из режима целог екрана</translation> <translation id="2157875535253991059">Ова страница је сада у режиму целог екрана.</translation> <translation id="216169395504480358">Додај Wi-Fi...</translation> @@ -1179,7 +1180,6 @@ <translation id="2799223571221894425">Поново покрени</translation> <translation id="2803375539583399270">Унесите PIN</translation> <translation id="2805646850212350655">Microsoft систем за шифровање датотека</translation> -<translation id="2805707493867224476">Дозволи свим сајтовима да приказују искачуће прозоре</translation> <translation id="2805756323405976993">Апликације</translation> <translation id="2807517655263062534">Датотеке које преузмете ће се појавити овде</translation> <translation id="2809586584051668049">и још <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1613,7 +1613,6 @@ <translation id="347919930506963698">Искористите Chrome на још бољи начин</translation> <translation id="3479552764303398839">Не сада</translation> <translation id="3480892288821151001">Спајање прозора са леве стране</translation> -<translation id="3481915276125965083">Следећи искачући прозори су блокирани на овој страници:</translation> <translation id="3484273680291419129">Штетан софтвер се уклања...</translation> <translation id="3484869148456018791">Набави нови сертификат</translation> <translation id="3487007233252413104">анонимна функција</translation> @@ -1719,7 +1718,6 @@ <translation id="3637682276779847508">SIM картица ће бити трајно онемогућена ако не унесете исправну шифру за откључавање PIN-а.</translation> <translation id="363903084947548957">Следећи метод уноса</translation> <translation id="3640214691812501263">Додај „<ph name="EXTENSION_NAME" />“ за корисника <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Управљање додацима није доступно корисницима у режиму госта. Пријавите се да бисте управљали додацима.</translation> <translation id="3644896802912593514">Ширина</translation> <translation id="3646789916214779970">Врати на подразумевану тему</translation> <translation id="3648348069317717750">Уређај <ph name="USB_DEVICE_NAME" /> је откривен</translation> @@ -2061,7 +2059,6 @@ <translation id="4172051516777682613">Увек прикажи</translation> <translation id="4175737294868205930">Стални меморијски простор</translation> <translation id="4176463684765177261">Онемогућено</translation> -<translation id="4180684688621252156">Услуга штампања</translation> <translation id="4180788401304023883">Желите ли да избришете сертификат ауторитета за издавање сертификата „<ph name="CERTIFICATE_NAME" />“?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Језици</translation> @@ -2087,6 +2084,7 @@ <translation id="42137655013211669">Сервер је забранио приступ овом ресурсу.</translation> <translation id="4215350869199060536">Упс, имате недозвољене симболе у имену!</translation> <translation id="4215448920900139318">Праве се резервне копије (<ph name="FILE_COUNT" />)</translation> +<translation id="4217571870635786043">Диктирање</translation> <translation id="4225397296022057997">На свим сајтовима</translation> <translation id="4235200303672858594">Цео екран</translation> <translation id="4235813040357936597">Додај налог за <ph name="PROFILE_NAME" /></translation> @@ -2199,6 +2197,7 @@ <translation id="4425149324548788773">Мој диск</translation> <translation id="4430019312045809116">Јачина звука</translation> <translation id="4430369329743628066">Обележивач је додат</translation> +<translation id="4434045419905280838">Искачући прозори и преусмеравања</translation> <translation id="443454694385851356">Застарело (небезбедно)</translation> <translation id="443464694732789311">Настави</translation> <translation id="443475966875174318">Ажурирајте или уклоните некомпатибилне апликације</translation> @@ -3271,6 +3270,7 @@ <translation id="6075907793831890935">Размена података са уређајем под називом <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Уврсти овај снимак екрана</translation> <translation id="6077131872140550515">Уклони из жељених мрежа</translation> +<translation id="6078323886959318429">Додај пречицу</translation> <translation id="6078752646384677957">Проверите нивое микрофона и звука.</translation> <translation id="6080515710685820702">Користите дељени рачунар? Отворите прозор без архивирања.</translation> <translation id="6080689532560039067">Проверите системско време</translation> @@ -3479,7 +3479,6 @@ <translation id="6406303162637086258">Симулирај поновно покретање прегледача</translation> <translation id="6406506848690869874">Синхронизација</translation> <translation id="6408118934673775994">Читање и мењање података на <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Искачући прозори</translation> <translation id="6410257289063177456">Датотеке слика</translation> <translation id="6410328738210026208">Промени канал и обави Powerwash</translation> <translation id="6410668567036790476">Додавање претраживача</translation> @@ -3686,7 +3685,6 @@ <translation id="6708242697268981054">Извор:</translation> <translation id="6709357832553498500">Повежи се помоћу <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Претходно</translation> -<translation id="6716704051134091292">PDF конвертор</translation> <translation id="6718273304615422081">Прављење zip датотеке...</translation> <translation id="671928215901716392">Закључај екран</translation> <translation id="67211069045302358">Желите ли да ресетујете подешавања за овај сајт?</translation> @@ -3811,7 +3809,6 @@ <translation id="6920989436227028121">Отвори као уобичајену картицу</translation> <translation id="6922128026973287222">Уштедите на подацима и прегледајте брже помоћу Google уштеде података. Кликните да бисте сазнали више.</translation> <translation id="6923132443355966645">Померајте/кликните</translation> -<translation id="6929555043669117778">Настави блокирање искачућих прозора</translation> <translation id="6929835486583850209">Грешка при инсталирању апликације <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Трајање</translation> <translation id="6934241953272494177">Медијски уређај се скенира... @@ -3895,6 +3892,7 @@ <translation id="7052237160939977163">Шаљи податке о праћењу учинка</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Блокирај</translation> +<translation id="7055152154916055070">Блокирано је преусмеравање:</translation> <translation id="7056526158851679338">&Испитај уређаје</translation> <translation id="7059858479264779982">Подеси на аутоматско покретање</translation> <translation id="7059893117020417984">Да бисте прегледали приватно, кликните на икону менија са тачкама да бисте отворили прозор без архивирања</translation> @@ -3921,7 +3919,6 @@ <translation id="7088434364990739311">Покретање провере ажурирања није успело (кôд грешке <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – Отворите и спакујте ZIP датотеке у апликацији Датотеке.</translation> <translation id="7088674813905715446">Администратор је уклонио овај уређај. Да бисте га омогућили за регистрацију, затражите од администратора да промени његов статус у „На чекању“.</translation> -<translation id="7092106376816104">Изузеци за искачуће прозоре</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Размена података са уређајима следећих назива: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Укључује/искључује лупу за цео екран</translation> @@ -4135,7 +4132,6 @@ <translation id="744341768939279100">Направи нови профил</translation> <translation id="7444726222535375658">Настави на Hangouts Meet</translation> <translation id="7444983668544353857">Онемогући <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Искачући прозори су блокирани</translation> <translation id="7453008956351770337">Када изаберете овај штампач, дајете дозволу за приступ штампачу следећем додатку:</translation> <translation id="7453467225369441013">Одјавиће вас са већине сајтова. Неће вас одјавити са Google налога.</translation> <translation id="7456142309650173560">програмер</translation> @@ -4254,6 +4250,7 @@ <translation id="7617366389578322136">Повезује се са уређајем „<ph name="DEVICE_NAME" />“</translation> <translation id="7622114377921274169">Пуни се.</translation> <translation id="7624337243375417909">caps lock је искључен</translation> +<translation id="7625568159987162309">Прегледајте дозволе и податке који се чувају на свим сајтовима</translation> <translation id="7627790789328695202">Упс, <ph name="FILE_NAME" /> већ постоји. Преименујте датотеку и покушајте поново.</translation> <translation id="7628127343934101653">Отварај PDF датотеке у подразумеваној апликацији за преглед PDF-а.</translation> <translation id="7629827748548208700">Картица: <ph name="TAB_NAME" /></translation> @@ -4382,7 +4379,7 @@ <translation id="782590969421016895">Користи ове странице</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Функције за отклањање грешака<ph name="END_H3" /> <ph name="BR" /> - Можете да омогућите функције за отклањање грешака на Chrome ОС уређају да бисте инсталирали и тестирали прилагођени кôд на уређају. Тада ћете моћи:<ph name="BR" /> + Можете да омогућите функције за отклањање грешака на Chrome ОС уређају да бисте инсталирали и тестирали прилагођени кôд на уређају. То ће вам омогућити:<ph name="BR" /> <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" />да уклоните rootfs верификацију да бисте могли да мењате датотеке ОС-а <ph name="LIST_ITEM" />да омогућите SSH приступ уређају помоћу стандардних пробних кључева да бисте могли да користите алатке као што је <ph name="BEGIN_CODE" />„cros flash“<ph name="END_CODE" /> ради приступа уређају @@ -4576,10 +4573,12 @@ <translation id="806812017500012252">Поређај према наслову</translation> <translation id="8068253693380742035">Додирните да бисте се пријавили</translation> <translation id="8069615408251337349">Google Cloud штампање</translation> +<translation id="806972267388474605">Linux датотеке</translation> <translation id="8071432093239591881">Одштампај као слику</translation> <translation id="8072988827236813198">Закачи картице</translation> <translation id="8074127646604999664">Дозволи да недавно затворени сајтови заврше слање и пријем података</translation> <translation id="8075191520954018715">Статус меморије</translation> +<translation id="8076492880354921740">Картице</translation> <translation id="8076835018653442223">Администратор је онемогућио приступ локалним датотекама на уређају</translation> <translation id="8077684120002777443">Корисничко име (нпр. korisnik@example.com)</translation> <translation id="8077816382010018681">Наслов обавештења о функцији Брзо откључавање ће бити приказан овде</translation> @@ -4864,7 +4863,6 @@ <translation id="8569682776816196752">Нема пронађених одредишта</translation> <translation id="8569764466147087991">Избор датотеке за отварање</translation> <translation id="8571213806525832805">Последње 4 недеље</translation> -<translation id="8571613743082299268">Блокирано је преусмеравање на овај сајт</translation> <translation id="8574990355410201600">Увек дозволи звук на <ph name="HOST" /></translation> <translation id="8578639784464423491">Дозвољено је највише 99 знакова</translation> <translation id="8579285237314169903">Синхронизују се ставке (<ph name="NUMBER_OF_FILES" />)...</translation> @@ -5196,7 +5194,6 @@ <translation id="9065203028668620118">Измени</translation> <translation id="9066782832737749352">Претварање текста у говор</translation> <translation id="9070219033670098627">Други корисник</translation> -<translation id="907148966137935206">Не дозволи ниједном сајту да приказује искачуће прозоре (препоручено)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> се инсталира...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> вас аутоматски пријављује на сајтове и у апликације који испуњавају услове помоћу лозинки које сте сачували.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 8bad1e4..dddafac3 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Skapa bokmärke för den här sidan...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> objekt tas bort ...</translation> <translation id="1048286738600630630">Skärmar</translation> +<translation id="1049743911850919806">Inkognito</translation> <translation id="1049795001945932310">&Språkinställningar</translation> <translation id="1049926623896334335">Word-dokument</translation> <translation id="1054153489933238809">Öppna originalbilden i en ny flik</translation> @@ -528,7 +529,6 @@ <translation id="1782924894173027610">Synkroniseringsservern är upptagen. Försök igen senare.</translation> <translation id="1784849162047402014">Enheten har ont om diskutrymme</translation> <translation id="1786636458339910689">Team Drive</translation> -<translation id="1789575671122666129">Popup-fönster</translation> <translation id="1792619191750875668">Utökad skärm</translation> <translation id="1793119619663054394">Vill du ta bort <ph name="PROFILE_NAME" /> och all tillhörande data i Chrome från den här datorn? Åtgärden kan inte ångras.</translation> <translation id="1794791083288629568">Skicka feedback som hjälper oss att åtgärda problemet.</translation> @@ -651,12 +651,14 @@ <translation id="1983959805486816857">När du har skapat en ny kontrollerad användare kan du hantera inställningarna när som helst från vilken enhet som helst på <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Docka fönstret till höger</translation> <translation id="1987139229093034863">Byt användare.</translation> +<translation id="1987317783729300807">Konton</translation> <translation id="1989112275319619282">Bläddra</translation> <translation id="1992397118740194946">Inte angett</translation> <translation id="1994173015038366702">Webbadress</translation> <translation id="1997484222658892567"><ph name="URL" /> vill lagra stora mängder data permanent på din lokala dator</translation> <translation id="1997616988432401742">Dina certifikat</translation> <translation id="1999115740519098545">Vid start</translation> +<translation id="2001796770603320721">Hantera i Drive</translation> <translation id="2006638907958895361">Öppna länken i <ph name="APP" /></translation> <translation id="2007404777272201486">Rapportera ett problem...</translation> <translation id="2016430552235416146">Traditionell</translation> @@ -752,7 +754,6 @@ <translation id="2151576029659734873">Du har angett ett ogiltigt flikindex.</translation> <translation id="2154484045852737596">Redigera kortet</translation> <translation id="2154710561487035718">Kopiera webbadress</translation> -<translation id="2155931291251286316">Tillåt alltid popup-fönster från <ph name="HOST" /></translation> <translation id="215753907730220065">Avsluta helskärmsläge</translation> <translation id="2157875535253991059">Denna sida visas nu i helskärm.</translation> <translation id="216169395504480358">Lägg till Wi-Fi ...</translation> @@ -1182,7 +1183,6 @@ <translation id="2799223571221894425">Starta om</translation> <translation id="2803375539583399270">Ange pinkod</translation> <translation id="2805646850212350655">Microsofts krypterande filsystem</translation> -<translation id="2805707493867224476">Tillåt alla webbplatser att visa popup-fönster</translation> <translation id="2805756323405976993">Appar</translation> <translation id="2807517655263062534">Filer som du laddar ned visas här</translation> <translation id="2809586584051668049">och ytterligare <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1616,7 +1616,6 @@ <translation id="347919930506963698">Få ut ännu mer av Chrome</translation> <translation id="3479552764303398839">Inte nu</translation> <translation id="3480892288821151001">Docka fönstret till vänster</translation> -<translation id="3481915276125965083">Följande popup-fönster blockerades på den här sidan:</translation> <translation id="3484273680291419129">Den skadliga programvaran tas bort …</translation> <translation id="3484869148456018791">Hämta nytt certifikat</translation> <translation id="3487007233252413104">anonym funktion</translation> @@ -1722,7 +1721,6 @@ <translation id="3637682276779847508">SIM-kortet inaktiveras permanent om du inte anger korrekt upplåsningskod för pinkoden.</translation> <translation id="363903084947548957">Nästa inmatningsmetod</translation> <translation id="3640214691812501263">Vill du lägga till <ph name="EXTENSION_NAME" /> för <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Gästanvändare kan inte hantera tillägg. Logga in om du vill hantera tillägg.</translation> <translation id="3644896802912593514">Bredd</translation> <translation id="3646789916214779970">Återställ till standardtema</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> hittades</translation> @@ -2064,7 +2062,6 @@ <translation id="4172051516777682613">Visa alltid</translation> <translation id="4175737294868205930">Beständig lagring</translation> <translation id="4176463684765177261">Inaktiverad</translation> -<translation id="4180684688621252156">Utskriftstjänst</translation> <translation id="4180788401304023883">Vill du ta bort certifikatet <ph name="CERTIFICATE_NAME" />?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Språk</translation> @@ -2090,6 +2087,7 @@ <translation id="42137655013211669">Åtkomsten till den här resursen blockerades av servern.</translation> <translation id="4215350869199060536">Det finns ogiltiga symboler i namnet!</translation> <translation id="4215448920900139318">Säkerhetskopierar <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Diktering</translation> <translation id="4225397296022057997">På alla webbplatser</translation> <translation id="4235200303672858594">Helskärm</translation> <translation id="4235813040357936597">Lägg till ett konto för <ph name="PROFILE_NAME" /></translation> @@ -2202,6 +2200,7 @@ <translation id="4425149324548788773">Min enhet</translation> <translation id="4430019312045809116">Volym</translation> <translation id="4430369329743628066">Ett bokmärke har lagts till</translation> +<translation id="4434045419905280838">Popup-fönster och omdirigeringar</translation> <translation id="443454694385851356">Äldre (osäker)</translation> <translation id="443464694732789311">Fortsätt</translation> <translation id="443475966875174318">Uppdatera och ta bort inkompatibla appar</translation> @@ -3272,6 +3271,7 @@ <translation id="6075907793831890935">Utväxla data med enheten <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Ta med skärmdumpen</translation> <translation id="6077131872140550515">Ta bort från prioriterade nätverk</translation> +<translation id="6078323886959318429">Lägg till genväg</translation> <translation id="6078752646384677957">Kontrollera mikrofonen och ljudnivåerna.</translation> <translation id="6080515710685820702">Delar du datorn med andra? Testa att öppna ett inkognitofönster.</translation> <translation id="6080689532560039067">Kontrollera systemtiden</translation> @@ -3480,7 +3480,6 @@ <translation id="6406303162637086258">Simulera omstart av webbläsaren</translation> <translation id="6406506848690869874">Synkronisera</translation> <translation id="6408118934673775994">Läs och ändra dina uppgifter på <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> och <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Popup-fönster</translation> <translation id="6410257289063177456">Bildfiler</translation> <translation id="6410328738210026208">Byt kanal och Powerwash</translation> <translation id="6410668567036790476">Lägg till sökmotor</translation> @@ -3688,7 +3687,6 @@ <translation id="6708242697268981054">Ursprung:</translation> <translation id="6709357832553498500">Anslut med <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Föregående</translation> -<translation id="6716704051134091292">PDF-konverterare</translation> <translation id="6718273304615422081">Komprimerar ...</translation> <translation id="671928215901716392">Lås skärmen</translation> <translation id="67211069045302358">Vill du återställa inställningarna för den här webbplatsen?</translation> @@ -3813,7 +3811,6 @@ <translation id="6920989436227028121">Öppna som en vanlig flik</translation> <translation id="6922128026973287222">Spara data och bläddra snabbare med Google Databesparing. Klicka här om du vill veta mer.</translation> <translation id="6923132443355966645">Rulla/klicka</translation> -<translation id="6929555043669117778">Fortsätt att blockera popup-program</translation> <translation id="6929835486583850209">Det gick inte att installera <ph name="APP_NAME" /> …</translation> <translation id="6930242544192836755">Varaktighet</translation> <translation id="6934241953272494177">Medieenheten genomsöks … @@ -3897,6 +3894,7 @@ <translation id="7052237160939977163">Skicka data från resultatspårning</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Blockera</translation> +<translation id="7055152154916055070">Omdirigeringen blockerades:</translation> <translation id="7056526158851679338">&Inspektera enheter</translation> <translation id="7059858479264779982">Inställd på att starta automatiskt</translation> <translation id="7059893117020417984">Öppna ett inkognitofönster genom att klicka på menyn med tre punkter om du vill surfa privat</translation> @@ -3923,7 +3921,6 @@ <translation id="7088434364990739311">Det gick inte att starta uppdateringskontrollen (felkod <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – öppna och komprimera ZIP-filer i appen Filer.</translation> <translation id="7088674813905715446">Den här enheten har avaktualiserats av administratören. Du måste be administratören sätta enheten som väntande innan du kan registrera den.</translation> -<translation id="7092106376816104">Undantag för popup-fönster</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Utväxla data med enheterna <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Aktivera och inaktivera helskärmsförstoring</translation> @@ -4142,7 +4139,6 @@ <translation id="744341768939279100">Skapa en ny profil</translation> <translation id="7444726222535375658">Fortsätt till Hangouts Meet</translation> <translation id="7444983668544353857">Inaktivera <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Popupfönster har blockerats</translation> <translation id="7453008956351770337">Genom att välja den här skrivaren ger du följande tillägg behörighet att komma åt skrivaren:</translation> <translation id="7453467225369441013">Du loggas ut från de flesta webbplatser. Du loggas inte ut från Google-kontot.</translation> <translation id="7456142309650173560">utvecklare</translation> @@ -4261,6 +4257,7 @@ <translation id="7617366389578322136">Ansluter till <ph name="DEVICE_NAME" /></translation> <translation id="7622114377921274169">Laddas.</translation> <translation id="7624337243375417909">caps lock av</translation> +<translation id="7625568159987162309">Visa behörigheter och data som har lagrats på webbplatser</translation> <translation id="7627790789328695202">Det finns redan en fil med namnet <ph name="FILE_NAME" />. Byt namn på filen och försök igen.</translation> <translation id="7628127343934101653">Öppna PDF-filer i standardappen för att läsa PDF-filer.</translation> <translation id="7629827748548208700">Flik: <ph name="TAB_NAME" /></translation> @@ -4583,10 +4580,12 @@ <translation id="806812017500012252">Ordna efter titel</translation> <translation id="8068253693380742035">Tryck här om du vill logga in</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Linux-filer</translation> <translation id="8071432093239591881">Skriv ut som bild</translation> <translation id="8072988827236813198">Fäst flikar</translation> <translation id="8074127646604999664">Tillåt webbplatser som nyligen har stängts att slutföra överföringen av data</translation> <translation id="8075191520954018715">Minnesstatus</translation> +<translation id="8076492880354921740">Flikar</translation> <translation id="8076835018653442223">Administratören har inaktiverat åtkomsten till lokala filer på enheten</translation> <translation id="8077684120002777443">Användarnamn (t.ex. användare@example.com)</translation> <translation id="8077816382010018681">Plats för aviseringstitel för QU-funktionen</translation> @@ -4871,7 +4870,6 @@ <translation id="8569682776816196752">Det gick inte att hitta några platser</translation> <translation id="8569764466147087991">Välj fil att öppna</translation> <translation id="8571213806525832805">Senaste fyra veckorna</translation> -<translation id="8571613743082299268">Omdirigering till webbplats blockerades</translation> <translation id="8574990355410201600">Tillåt alltid ljud på <ph name="HOST" /></translation> <translation id="8578639784464423491">Får inte vara längre än 99 tecken</translation> <translation id="8579285237314169903">Synkroniserar <ph name="NUMBER_OF_FILES" /> objekt ...</translation> @@ -5203,7 +5201,6 @@ <translation id="9065203028668620118">Redigera</translation> <translation id="9066782832737749352">Text till tal</translation> <translation id="9070219033670098627">Byt till ett annat konto</translation> -<translation id="907148966137935206">Tillåt inte att någon webbplats visar popup-fönster (rekommenderas)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> installeras …</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> loggar automatiskt in på godkända webbplatser och appar med de lösenord du sparat.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 7001301..b6982d4d 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Alamisha Ukurasa Huu...</translation> <translation id="1047956942837015229">Inafuta vipengee <ph name="COUNT" />...</translation> <translation id="1048286738600630630">Maonyesho</translation> +<translation id="1049743911850919806">Kichupo fiche</translation> <translation id="1049795001945932310">Mipangilio ya lugha</translation> <translation id="1049926623896334335">Hati ya Word</translation> <translation id="1054153489933238809">Fungua Picha Asili katika Kichupo Kipya</translation> @@ -527,7 +528,6 @@ <translation id="1782924894173027610">Seva ya ulinganishaji inashughulika, tafadhali jaribu tena baadaye.</translation> <translation id="1784849162047402014">Kifaa hakina nafasi ya hifadhi ya kutosha</translation> <translation id="1786636458339910689">Hifadhi za Timu</translation> -<translation id="1789575671122666129">Ibukizi</translation> <translation id="1792619191750875668">Mwonekano mpana</translation> <translation id="1793119619663054394">Una uhakika unataka kuondoa "<ph name="PROFILE_NAME" />" na data yote inayohusishwa naye katika Chrome kwenye kompyuta hii? Hatua hii haiwezi kutenduliwa.</translation> <translation id="1794791083288629568">Tuma maoni ili utusaidie kutatua tatizo hili.</translation> @@ -650,6 +650,7 @@ <translation id="1983959805486816857">Baada ya kuunda mtumiaji mpya anayesimamiwa, unaweza kudhibiti mipangilio wakati wowote kutoka kwenye kifaa chochote katika <ph name="MANAGEMENT_URL" /> .</translation> <translation id="1984642098429648350">Shikilia cha dirisha kulia</translation> <translation id="1987139229093034863">Badili hadi kwa mtumiaji tofauti.</translation> +<translation id="1987317783729300807">Akaunti</translation> <translation id="1989112275319619282">Vinjari</translation> <translation id="1992397118740194946">Haijawekwa</translation> <translation id="1994173015038366702">URL ya Tovuti</translation> @@ -751,7 +752,6 @@ <translation id="2151576029659734873">Uorodheshaji batili wa kichupo umeingizwa.</translation> <translation id="2154484045852737596">Badilisha kadi</translation> <translation id="2154710561487035718">Nakili UR:</translation> -<translation id="2155931291251286316">Ruhusu madirisha ibukizi kutoka <ph name="HOST" /> kila wakati</translation> <translation id="215753907730220065">Ondoka kwenye Skrini Kamili</translation> <translation id="2157875535253991059">Ukurasa huu sasa umejaa.</translation> <translation id="216169395504480358">Ongeza Wi-Fi...</translation> @@ -1180,7 +1180,6 @@ <translation id="2799223571221894425">Funga na ufungue</translation> <translation id="2803375539583399270">Weka PIN</translation> <translation id="2805646850212350655">Mfumo wa Microsoft wa Usimbaji wa Faili</translation> -<translation id="2805707493867224476">Ruhusu tovuti zote zionyeshe madirisha ibukizi</translation> <translation id="2805756323405976993">Programu</translation> <translation id="2807517655263062534">Faili unazopakua zitaonekana hapa</translation> <translation id="2809586584051668049">na <ph name="NUMBER_ADDITIONAL_DISABLED" /> zaidi</translation> @@ -1611,7 +1610,6 @@ <translation id="347919930506963698">Pata mengi zaidi kutoka Chrome</translation> <translation id="3479552764303398839">Sio sasa</translation> <translation id="3480892288821151001">Shikilia dirisha kushoto</translation> -<translation id="3481915276125965083">Madirisha ibukizi yafuatayo yalizuiwa kwenye ukurasa huu:</translation> <translation id="3484273680291419129">Inaondoa programu hatari...</translation> <translation id="3484869148456018791">Pata cheti kipya</translation> <translation id="3487007233252413104">chaguo za kukokotoa zisizo na jina</translation> @@ -1717,7 +1715,6 @@ <translation id="3637682276779847508">SIM kadi yako itafungwa kabisa ikiwa hutaweka Ufunguo sahihi wa Kufungua PIN.</translation> <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="3643225892037417978">Udhibiti wa viendelezi haupatikani kwa Watumiaji walioalikwa. Tafadhali ingia katika akaunti ili udhibiti viendelezi.</translation> <translation id="3644896802912593514">Upana</translation> <translation id="3646789916214779970">Rejesha mandhari chaguo-msingi</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> kimegunduliwa</translation> @@ -2057,7 +2054,6 @@ <translation id="4172051516777682613">Onyesha kila mara</translation> <translation id="4175737294868205930">Hifadhi inayoendelea</translation> <translation id="4176463684765177261">Kimelemazwa</translation> -<translation id="4180684688621252156">Huduma ya kuchapisha</translation> <translation id="4180788401304023883">Futa cheti cha CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Lugha</translation> @@ -3265,6 +3261,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="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> <translation id="6080689532560039067">Angalia saa ya mfumo wako</translation> @@ -3473,7 +3470,6 @@ <translation id="6406303162637086258">Unda uanzishaji upya wa kivinjari</translation> <translation id="6406506848690869874">Sawazisha</translation> <translation id="6408118934673775994">Kusoma na kubadilisha data yako kwenye <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> na <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Madirisha ibukizi</translation> <translation id="6410257289063177456">Faili za Picha</translation> <translation id="6410328738210026208">Badilisha kituo na Powerwash</translation> <translation id="6410668567036790476">Ongeza mtambo wa kutafuta</translation> @@ -3681,7 +3677,6 @@ <translation id="6708242697268981054">Asili:</translation> <translation id="6709357832553498500">Unganisha ukitumia <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Iliyotangulia</translation> -<translation id="6716704051134091292">Kibadilishaji cha PDF</translation> <translation id="6718273304615422081">Inabanwa...</translation> <translation id="671928215901716392">Funga skrini</translation> <translation id="67211069045302358">Ungependa kuweka upya mipangilio ya tovuti hii?</translation> @@ -3806,7 +3801,6 @@ <translation id="6920989436227028121">Fungua kama kichupo cha kawaida</translation> <translation id="6922128026973287222">Hifadhi data na uvinjari haraka sana ukitumia Kiokoa Data cha Google. Bofya ili upate maelezo zaidi.</translation> <translation id="6923132443355966645">Sogeza / Bofya</translation> -<translation id="6929555043669117778">Endelea kuzuia programu jalizi</translation> <translation id="6929835486583850209">Hitilafu imetokea wakati wa kusakinisha <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Muda</translation> <translation id="6934241953272494177">Inachanganua kifaa chako cha kuhifadhia data... @@ -3916,7 +3910,6 @@ <translation id="7088434364990739311">Ukaguzi wa usasishaji ulishindwa kuanza (hitilafu ya msimbo <ph name="ERROR" /> ).</translation> <translation id="7088561041432335295">Zip Archiver - Fungua na upange faili za ZIP katika programu ya Faili.</translation> <translation id="7088674813905715446">Kifaa hiki kimewekwa katika hali ya kutotumika na msimamizi. Ili kukiwezesha kwa uandikishaji, tafadhali mwambie msimamizi wako aweke kifaa katika hali ya kusubiri.</translation> -<translation id="7092106376816104">Vighairi madirisha ibukizi</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Badilisha data kwa vifaa viitwavyo: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Kuwasha au Kuzima Kikuzaji cha Skrini Nzima</translation> @@ -4136,7 +4129,6 @@ <translation id="744341768939279100">Unda wasifu mpya</translation> <translation id="7444726222535375658">Nenda kwenye Hangouts Meet</translation> <translation id="7444983668544353857">Zima <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Madirisha ibukizi yamezuiwa</translation> <translation id="7453008956351770337">Kwa kuchagua printa hii, unakipa kiendelezi kifuatacho ruhusa ya kufikia printa yako:</translation> <translation id="7453467225369441013">Hukuondoa kwenye akaunti za tovuti nyingi. Hutaondolewa kwenye Akaunti ya Google.</translation> <translation id="7456142309650173560">dev</translation> @@ -4582,6 +4574,7 @@ <translation id="8072988827236813198">Bana Vichupo</translation> <translation id="8074127646604999664">Ruhusu tovuti zilizofungwa hivi karibuni zikamilishe kutuma na kupokea data</translation> <translation id="8075191520954018715">Hali ya hifadhi</translation> +<translation id="8076492880354921740">Vichupo</translation> <translation id="8076835018653442223">Ufikiaji wa faili za ndani kwenye kifaa chako umezimwa na msimamizi wako</translation> <translation id="8077684120002777443">Jina la mtumiaji (k.m. user@example.com)</translation> <translation id="8077816382010018681">Kichwa cha arifa ya Kipengele cha QU huenda hapa</translation> @@ -4867,7 +4860,6 @@ <translation id="8569682776816196752">Hakuna hatima zilizopatikana</translation> <translation id="8569764466147087991">Chagua faili ya kufungua</translation> <translation id="8571213806525832805">Wiki 4 zilizopita</translation> -<translation id="8571613743082299268">Uelekezaji kwingine umezuiwa kwenye tovuti</translation> <translation id="8574990355410201600">Ruhusu sauti kwenye <ph name="HOST" /> wakati wote</translation> <translation id="8578639784464423491">Haipaswi kupita herufi 99</translation> <translation id="8579285237314169903">Inasasisha vipengee <ph name="NUMBER_OF_FILES" />...</translation> @@ -5199,7 +5191,6 @@ <translation id="9065203028668620118">Badilisha</translation> <translation id="9066782832737749352">Kusoma maandishi kwa sauti</translation> <translation id="9070219033670098627">Badilisha wasifu</translation> -<translation id="907148966137935206">Usiruhusu tovuti yoyote ionyeshe madirisha ibukizi (inapendekezwa)</translation> <translation id="9071637495340542136">Inasakinisha <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> hukuwezesha kuingia katika tovuti na programu zinazofaa kiotomatiki kwa manenosiri uliyohifadhi.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 4401a9a..03a87648 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">இந்தப் பக்கத்தை புக்மார்க் செய்க...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> உருப்படிகளை நீக்குகிறது...</translation> <translation id="1048286738600630630">திரை அமைப்புகள்</translation> +<translation id="1049743911850919806">மறைநிலை</translation> <translation id="1049795001945932310">&மொழி அமைப்புகள்</translation> <translation id="1049926623896334335">Word document</translation> <translation id="1054153489933238809">அசல் &படத்தைப் புதிய தாவலில் திற</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">ஒத்திசைவு சேவையகம் பணி நெருக்கடியில் உள்ளது, தயவுசெய்து பின்னர் மீண்டும் முயற்சிசெய்க.</translation> <translation id="1784849162047402014">சாதனத்தில் சேமிப்பிடம் குறைவாக உள்ளது</translation> <translation id="1786636458339910689">குழு இயக்ககங்கள்</translation> -<translation id="1789575671122666129">பாப் அப்கள்</translation> <translation id="1792619191750875668">நீட்டிக்கப்பட்ட திரை</translation> <translation id="1793119619663054394">கணினியிலிருந்து "<ph name="PROFILE_NAME" />" மற்றும் அவருடன் தொடர்புடைய எல்லா Chrome தரவையும் அகற்ற விரும்புகிறீர்களா? இதனை மீட்டமைக்க முடியாது.</translation> <translation id="1794791083288629568">இந்தச் சிக்கலைத் தீர்ப்பதற்கு உதவ, கருத்தை அனுப்பவும்.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">புதிய கண்காணிக்கப்படும் பயனரை உருவாக்கிய பிறகு, நீங்கள் எந்தச் சாதனத்திலிருந்தும் எப்போது வேண்டுமானாலும் <ph name="MANAGEMENT_URL" /> இல் அமைப்புகளை நிர்வகிக்கலாம்.</translation> <translation id="1984642098429648350">சாளரத்தை வலப்பக்கம் பொருத்து</translation> <translation id="1987139229093034863">வேறு பயனருக்கு மாற்று.</translation> +<translation id="1987317783729300807">கணக்குகள்</translation> <translation id="1989112275319619282">உலாவு</translation> <translation id="1992397118740194946">அமைக்கப்படவில்லை</translation> <translation id="1994173015038366702">தள URL</translation> <translation id="1997484222658892567">உங்கள் அகக் கணினியில், அதிக அளவு தரவை நிரந்தரமாகச் சேமிக்க <ph name="URL" /> விரும்புகிறது</translation> <translation id="1997616988432401742">உங்கள் சான்றிதழ்கள்</translation> <translation id="1999115740519098545">தொடக்கத்தில்</translation> +<translation id="2001796770603320721">இயக்ககத்தில் நிர்வகி</translation> <translation id="2006638907958895361"><ph name="APP" /> இல் இணைப்பைத் திற</translation> <translation id="2007404777272201486">சிக்கலைப் புகார் செய்க...</translation> <translation id="2016430552235416146">பழைய முறை</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">செல்லுபடியாகாத தாவல் அட்டவணை உள்ளிடப்பட்டது.</translation> <translation id="2154484045852737596">கார்டைத் திருத்தவும்</translation> <translation id="2154710561487035718">URL ஐ நகலெடு</translation> -<translation id="2155931291251286316"><ph name="HOST" /> இன் பாப்-அப்களை எப்போதும் அனுமதி</translation> <translation id="215753907730220065">முழுத்திரையிலிருந்து வெளியேறு</translation> <translation id="2157875535253991059">இந்தப் பக்கம் இப்போது முழுத் திரையில்.</translation> <translation id="216169395504480358">வைஃபை ஐச் சேர்...</translation> @@ -1184,7 +1185,6 @@ <translation id="2799223571221894425">மீண்டும் தொடங்கு</translation> <translation id="2803375539583399270">பின்னை உள்ளிடவும்</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">பாப்-அப்களைக் காண்பிக்க அனைத்து தளங்களையும் அனுமதி</translation> <translation id="2805756323405976993">ஆப்ஸ்</translation> <translation id="2807517655263062534">நீங்கள் பதிவிறக்கும் கோப்புகள் இங்கே தோன்றும்</translation> <translation id="2809586584051668049">மேலும் <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1555,7 +1555,7 @@ <translation id="3405664148539009465">எழுத்துருக்களைத் தனிப்பயனாக்கு</translation> <translation id="3405763860805964263">...</translation> <translation id="3406605057700382950">புக்மார்க்ஸ் பட்டியைக் &காண்பி</translation> -<translation id="3407837288045706722">தனியுரிமை, பாதுகாப்பு, தரவுச் சேகரிப்பான் ஆகியவற்றுடன் தொடர்புடைய மேலும் பல அமைப்புகளுக்கு, <ph name="BEGIN_LINK" />ஒத்திசைவையும் தனிப்பயனாக்கத்தையும்<ph name="END_LINK" /> பார்க்கவும்</translation> +<translation id="3407837288045706722">தனியுரிமை, பாதுகாப்பு, தரவுச் சேகரிப்பு ஆகியவற்றுடன் தொடர்புடைய மேலும் பல அமைப்புகளுக்கு, <ph name="BEGIN_LINK" />ஒத்திசைவையும் தனிப்பயனாக்கத்தையும்<ph name="END_LINK" /> பார்க்கவும்</translation> <translation id="3412265149091626468">தேர்வுக்கு செல்</translation> <translation id="3413122095806433232">CA வழங்குநர்கள்: <ph name="LOCATION" /></translation> <translation id="3414856743105198592">அகற்றத்தக்க மீடியாவை வடிவமைப்பதானது எல்லா தரவையும் அழிக்கும். தொடர விரும்புகிறீர்களா?</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Chrome இடமிருந்து மேலும் அதிகப் பலன்களைப் பெறுங்கள்</translation> <translation id="3479552764303398839">இப்பொழுது இல்லை</translation> <translation id="3480892288821151001">சாளரத்தை இடப்பக்கம் பொருத்து</translation> -<translation id="3481915276125965083">இந்தப் பக்கத்தில் பின்வரும் பாப்-அப்கள் தடுக்கப்பட்டன:</translation> <translation id="3484273680291419129">தீங்கிழைக்கும் மென்பொருளை அகற்றுகிறது...</translation> <translation id="3484869148456018791">புதிய சான்றிதழைப் பெறு</translation> <translation id="3487007233252413104">அநாமதேய செயல்பாடு</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">பின்னின் தடையை நீக்குவதற்கான சரியான குறியீட்டை உள்ளிடவில்லை எனில், சிம் கார்டு நிரந்தரமாக முடக்கப்படும்.</translation> <translation id="363903084947548957">அடுத்த உள்ளீட்டு முறை</translation> <translation id="3640214691812501263"><ph name="USER_NAME" />க்கு "<ph name="EXTENSION_NAME" />"ஐச் சேர்க்கவா?</translation> -<translation id="3643225892037417978">விருந்தினர் பயன்முறையைப் பயன்படுத்துபவர்கள் நீட்டிப்புகளை நிர்வகிக்க முடியாது. நீட்டிப்புகளை நிர்வகிக்க, உள்நுழையவும்.</translation> <translation id="3644896802912593514">அகலம்</translation> <translation id="3646789916214779970">இயல்புநிலை தீமுக்கு மீட்டமை</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> கண்டறியப்பட்டது</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">எப்போதும் காட்டு</translation> <translation id="4175737294868205930">தொடர்நிலை சேமிப்பகம்</translation> <translation id="4176463684765177261">முடக்கப்பட்டது</translation> -<translation id="4180684688621252156">பிரிண்டிங் சேவை</translation> <translation id="4180788401304023883">CA சான்றிதழ் "<ph name="CERTIFICATE_NAME" />" ஐ நீக்கவா?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">மொழிகள்</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">இந்த ஆதாரத்திற்கான அணுகல் சேவையகத்தால் தடுக்கப்பட்டிருக்கிறது.</translation> <translation id="4215350869199060536">அச்சச்சோ, பெயரில் சட்டவிரோத சின்னங்கள் உள்ளன!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> கோப்புகளைக் காப்புப் பிரதி எடுக்கிறது</translation> +<translation id="4217571870635786043">சொல்வதை எழுதுவது</translation> <translation id="4225397296022057997">எல்லாத் தளங்களிலும்</translation> <translation id="4235200303672858594">திரை முழுவதும்</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> க்கான கணக்கைச் சேர்</translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">எனது இயக்ககம்</translation> <translation id="4430019312045809116">அளவு</translation> <translation id="4430369329743628066">புத்தகக்குறி சேர்க்கப்பட்டது</translation> +<translation id="4434045419905280838">பாப் அப்கள் & திசைதிருப்புதல்கள்</translation> <translation id="443454694385851356">லெகஸி (பாதுகாப்பற்றது)</translation> <translation id="443464694732789311">தொடரவும்</translation> <translation id="443475966875174318">இணங்காத பயன்பாடுகளைப் புதுப்பிக்கவும் அல்லது அகற்றவும்</translation> @@ -2223,7 +2222,7 @@ <translation id="4462159676511157176">தனிப்பயன் பெயர் சேவையகங்கள்</translation> <translation id="4467100756425880649">Chrome இணைய அங்காடி கேலரி</translation> <translation id="4467101674048705704"><ph name="FOLDER_NAME" />ஐ விரிக்கும் பொத்தான்</translation> -<translation id="447252321002412580">Chrome இன் அம்சங்களையும் செயல்திறனையும் மேம்படுத்த உதவு</translation> +<translation id="447252321002412580">Chrome இன் அம்சங்களையும் செயல்திறனையும் மேம்படுத்த உதவுக</translation> <translation id="4474155171896946103">அனைத்து தாவல்களையும் புக்மார்க்கிடுக...</translation> <translation id="4475552974751346499">பதிவிறக்கங்களைத் தேடு</translation> <translation id="4476590490540813026">தடகள வீராங்கனை</translation> @@ -2680,7 +2679,7 @@ <translation id="5186650237607254032">நீங்கள் அருகில் உள்ளபோது, உங்கள் ஃபோனின் திரைப்பூட்டு தானாகவே முடக்கப்படுமாறு அதனைப் புதுப்பிக்கவும். நீங்கள் இன்னும் விரைவாக ஃபோனின் தடையை நீக்கலாம், உங்கள் <ph name="DEVICE_TYPE" />இல் மேம்பட்ட Smart Lock அனுபவத்தைப் பெறலாம்.</translation> <translation id="5187295959347858724">நீங்கள் இப்போது <ph name="SHORT_PRODUCT_NAME" /> இல் உள்நுழைந்துள்ளீர்கள். உங்களுடைய புக்மார்க்குகள், வரலாறு மற்றும் இதர அமைப்புகள் Google கணக்குடன் ஒத்திசைக்கப்படுகிறது.</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> -<translation id="5196721203029902230">உலாவலையும் Chromeஐயும் மேம்படுத்த, Google உடன் தகவல்தொடர்புகொள்ளும்</translation> +<translation id="5196721203029902230">உலாவலையும் Chromeஐயும் மேம்படுத்த, Google உடன் தகவல்பரிமாறும்</translation> <translation id="5204967432542742771">கடவுச்சொல்</translation> <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />"ஐ நீக்கவா?</translation> <translation id="520621735928254154">சான்றிதழ் இறக்குமதியாவதில் பிழை</translation> @@ -2943,7 +2942,7 @@ <translation id="555746285996217175">பூட்டு / பவர்</translation> <translation id="5557991081552967863">தூக்கப் பயன்முறையின் போதும், வைஃபையை இயக்கத்தில் வைத்திரு</translation> <translation id="5558129378926964177">Zoom &In</translation> -<translation id="5558446705802335921">தீங்கு விளைவிக்கும் செயல்பாடு, ஃபிஷிங் அல்லது தீம்பொருள் போன்ற உள்ளடக்கம் ஆகியவற்றிற்காக, செல்லும் தளங்களையும் பதிவிறக்கும் கோப்புகளையும் சரிபார்க்கும்</translation> +<translation id="5558446705802335921">தீங்கு விளைவிக்கும் செயல்பாடு, ஃபிஷிங் அல்லது தீம்பொருள் போன்ற உள்ளடக்கம் ஆகியவை உள்ளதா என்று, நீங்கள் செல்லும் தளங்களையும் பதிவிறக்கும் கோப்புகளையும் சோதிக்கும்</translation> <translation id="5559719557406102971">டெர்மினா VMஐத் தொடங்குகிறது.</translation> <translation id="55601339223879446">திரைக்குள் உங்கள் டெஸ்க்டாப் எல்லைகளைச் சரிசெய்யவும்</translation> <translation id="5562781907504170924">இந்தத் தாவல் புளூடூத் சாதனத்துடன் இணைக்கப்பட்டுள்ளது.</translation> @@ -3201,7 +3200,7 @@ <translation id="5957613098218939406">கூடுதல் விருப்பங்கள்</translation> <translation id="5958529069007801266">கண்காணிக்கப்படும் பயனர்</translation> <translation id="5959471481388474538">நெட்வொர்க் கிடைக்கவில்லை</translation> -<translation id="595959584676692139">இந்த நீட்டிப்பைப் பயன்படுத்தி, பக்கத்தை ரெஃப்ரெஷ் செய்யவும்</translation> +<translation id="595959584676692139">இந்த நீட்டிப்பைப் பயன்படுத்த, பக்கத்தை ரெஃப்ரெஷ் செய்யவும்</translation> <translation id="5963026469094486319">தீம்களைப் பெறு</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> உச்சம்)</translation> <translation id="5965661248935608907">முகப்புப் பொத்தானைக் கிளிக் செய்யும்போது அல்லது சர்வபுலத்திலிருந்து தேடலை மேற்கொள்ளும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation> @@ -3274,6 +3273,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> எனப் பெயரிடப்பட்ட சாதனத்துடன் தரவைப் பரிமாறவும்</translation> <translation id="6076448957780543068">இந்த ஸ்கிரீன் ஷாட்டைச் சேர்</translation> <translation id="6077131872140550515">விருப்பப்பட்டியலிலிருந்து அகற்று</translation> +<translation id="6078323886959318429">குறுக்குவழியைச் சேர்</translation> <translation id="6078752646384677957">உங்கள் மைக்ரோஃபோனையும் ஆடியோ நிலைகளையும் சரிபார்க்கவும்.</translation> <translation id="6080515710685820702">பலரும் பயன்படுத்தும் கணினியைப் பயன்படுத்துகிறீர்களா? மறைநிலைச் சாளரத்தைப் பயன்படுத்திப் பார்க்கவும்.</translation> <translation id="6080689532560039067">கணினி நேரத்தைச் சரிபார்க்கவும்</translation> @@ -3482,7 +3482,6 @@ <translation id="6406303162637086258">உலாவி மறுதொடக்கத்தை உருவகப்படுத்து</translation> <translation id="6406506848690869874">Sync</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> மற்றும் <ph name="WEBSITE_3" /> இல் உள்ள உங்கள் தரவைப் படித்தல் மற்றும் திருத்துதல்</translation> -<translation id="6409731863280057959">பாப்-அப்கள்</translation> <translation id="6410257289063177456">படக் கோப்புகள்</translation> <translation id="6410328738210026208">சேனல் மற்றும் பவர்வாஷை மாற்று</translation> <translation id="6410668567036790476">தேடல் இன்ஜினைச் சேர்</translation> @@ -3690,7 +3689,6 @@ <translation id="6708242697268981054">தோற்றம்:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" />ஐப் பயன்படுத்தி இணை</translation> <translation id="6710213216561001401">முந்தையது</translation> -<translation id="6716704051134091292">PDF கன்வெர்ட்டர்</translation> <translation id="6718273304615422081">ஜிப் செய்கிறது...</translation> <translation id="671928215901716392">திரையைப் பூட்டு</translation> <translation id="67211069045302358">இந்தத் தளத்திற்கான அமைப்புகளை மீட்டமைக்கவா?</translation> @@ -3815,7 +3813,6 @@ <translation id="6920989436227028121">வழக்கமான தாவலாகத் திற</translation> <translation id="6922128026973287222">Google தரவு சேமிப்பானைப் பயன்படுத்தி தரவைச் சேமிக்கலாம், வேகமாக உலாவலாம். மேலும் அறிய, கிளிக் செய்யவும்.</translation> <translation id="6923132443355966645">உருட்டு / கிளிக் செய்</translation> -<translation id="6929555043669117778">பாப்-அப்களைத் தடுப்பதைத் தொடர்க</translation> <translation id="6929835486583850209"><ph name="APP_NAME" />ஐ நிறுவுவதில் பிழை...</translation> <translation id="6930242544192836755">மொத்த நேரம்</translation> <translation id="6934241953272494177">உங்கள் மீடியா சாதனத்தை ஸ்கேன் செய்கிறது... @@ -3899,6 +3896,7 @@ <translation id="7052237160939977163">செயல்திறன் தடமறிதல் தரவை அனுப்பு</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">தடு</translation> +<translation id="7055152154916055070">திசைதிருப்புதல் தடுக்கப்பட்டது:</translation> <translation id="7056526158851679338">&சாதனங்களை ஆய்வுசெய்</translation> <translation id="7059858479264779982">தானியங்கு துவக்கியை அமை</translation> <translation id="7059893117020417984">தனிப்பட்ட முறையில் உலாவ, புள்ளி ஐகான் மெனுவைக் கிளிக் செய்து, மறைநிலைச் சாளரத்தைத் திறக்கவும்</translation> @@ -3925,7 +3923,6 @@ <translation id="7088434364990739311">புதுப்பிப்பு சரிபார்த்தலை துவங்குவதில் தோல்வி. (பிழை குறியீடு <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - கோப்புகள் பயன்பாட்டில் ஜிப் ஃபைல்களைத் திறக்கலாம், தொகுக்கலாம்.</translation> <translation id="7088674813905715446">இந்தச் சாதனம் நிர்வாகியால் அணுகல் இல்லா தன்மையில் வைக்கப்பட்டுள்ளது. பதிவுசெய்வதற்காக அதை இயக்குவதற்கு, இந்தச் சாதனத்தை நிலுவை நிலையில் வைக்குமாறு உங்கள் நிர்வாகியிடம் கேட்கவும்.</translation> -<translation id="7092106376816104">பாப்-அப் விதிவிலக்குகள்</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">பின்வரும் பெயரிடப்பட்ட எந்தச் சாதனங்களுடனும் தரவைப் பரிமாறவும்: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">முழுத்திரைப் பெரிதாக்கியை நிலைமாற்று</translation> @@ -4139,7 +4136,6 @@ <translation id="744341768939279100">புதிய சுயவிவரத்தை உருவாக்கு</translation> <translation id="7444726222535375658">Hangouts Meetஐத் திறக்கவும்</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> ஐ முடக்கு</translation> -<translation id="7445682342344043969">பாப் அப்கள் தடுக்கப்பட்டுள்ளன</translation> <translation id="7453008956351770337">இந்தப் பிரிண்டரைத் தேர்ந்தெடுப்பதன் மூலம், பின்வரும் நீட்டிப்பு உங்கள் பிரிண்டரை அணுகுவதற்கான அனுமதியை வழங்குகிறீர்கள்:</translation> <translation id="7453467225369441013">பெரும்பாலான தளங்களிலிருந்து உங்களை வெளியேற்றும். உங்கள் Google கணக்கிலிருந்து வெளியேற்றாது.</translation> <translation id="7456142309650173560">dev</translation> @@ -4256,6 +4252,7 @@ <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" சாதனத்துடன் இணைக்கிறது</translation> <translation id="7622114377921274169">சார்ஜாகிறது.</translation> <translation id="7624337243375417909">கேப்ஸ்லாக் முடக்கப்பட்டுள்ளது</translation> +<translation id="7625568159987162309">தளங்கள் முழுவதும் சேமித்த அனுமதிகளையும் தரவையும் காட்டு</translation> <translation id="7627790789328695202">அடடா, <ph name="FILE_NAME" /> ஏற்கனவே உள்ளது. இதற்கு மறுபெயரிட்டு மீண்டும் முயற்சிக்கவும்.</translation> <translation id="7628127343934101653">இயல்புநிலை PDF வியூவர் பயன்பாட்டில் PDF கோப்புகளைத் திற.</translation> <translation id="7629827748548208700">தாவல்: <ph name="TAB_NAME" /></translation> @@ -4382,20 +4379,20 @@ <ph name="LINE_BREAK2" /> குறைவான படங்களைத் தேர்ந்தெடுத்து முயலவும்.</translation> <translation id="782590969421016895">தற்போதைய பக்கங்களைப் பயன்படுத்து</translation> -<translation id="7826790948326204519"><ph name="BEGIN_H3" />பிழைதிருத்த அம்சங்கள்<ph name="END_H3" /> +<translation id="7826790948326204519"><ph name="BEGIN_H3" />பிழைத்திருத்த அம்சங்கள்<ph name="END_H3" /> <ph name="BR" /> - உங்கள் சாதனத்தில் தனிப்பயன் குறியீட்டை நிறுவி, சோதனை செய்வதற்கு, Chrome OS சாதனத்தில் பிழைதிருத்த அம்சங்களை இயக்கலாம். இதனால் உங்களுக்குக் கிடைக்கும் அனுமதிகள்:<ph name="BR" /> + உங்கள் சாதனத்தில் தனிப்பயன் குறியீட்டை நிறுவி, சோதனை செய்வதற்கு, Chrome OS சாதனத்தில் பிழைத்திருத்த அம்சங்களை இயக்கலாம். இதனால் நீங்கள் இவற்றைச் செய்யலாம்:<ph name="BR" /> <ph name="BEGIN_LIST" /> - <ph name="LIST_ITEM" />OS கோப்புகளை மாற்றக்கூடிய rootfs சரிபார்ப்பை அகற்றலாம் - <ph name="LIST_ITEM" />சாதனத்தை அணுக, <ph name="BEGIN_CODE" />'கிராஸ் ஃபிளாஷ்'<ph name="END_CODE" /> போன்ற கருவிகளைப் பயன்படுத்தக்கூடிய, வழக்கமான சோதனை விசைகளைப் பயன்படுத்தி, சாதனத்தின் SSH அணுகலை இயக்கலாம் - <ph name="LIST_ITEM" />USB டிரைவிலிருந்து OS பிரதியை நிறுவக்கூடிய USB இலிருந்து பூட் செய்வதை இயக்கலாம் - <ph name="LIST_ITEM" />சாதனத்தில் கைமுறையாக SSH செய்யக்கூடிய, dev மற்றும் முறைமை ரூட் உள்நுழைவுக் கடவுச்சொல் ஆகிய இரண்டையும் தனிப்பயன் மதிப்பிற்கு அமைக்கலாம் + <ph name="LIST_ITEM" />OS கோப்புகளை மாற்றுவதற்காக, rootfs சரிபார்ப்பை அகற்றலாம் + <ph name="LIST_ITEM" />வழக்கமான சோதனை விசைகளைப் பயன்படுத்தி சாதனத்திற்கான SSH அணுகலை இயக்கலாம், இதன் மூலம் <ph name="BEGIN_CODE" />'கிராஸ் ஃபிளாஷ்'<ph name="END_CODE" /> போன்ற கருவிகளைப் பயன்படுத்தி சாதனத்தை அணுகலாம் + <ph name="LIST_ITEM" />USB இலிருந்து பூட் செய்யும் அம்சத்தை இயக்கலாம், இதன் மூலம் USB டிரைவிலிருந்து OS பிரதியை நிறுவலாம் + <ph name="LIST_ITEM" />dev மற்றும் முறைமை ரூட் உள்நுழைவுக் கடவுச்சொல் ஆகிய இரண்டையும் தனிப்பயன் மதிப்பிற்கு அமைக்கலாம், இதன் மூலம் சாதனத்தை கைமுறையாக SSH மூலம் அணுகலாம் <ph name="END_LIST" /> <ph name="BR" /> - ஒருமுறை இயக்கப்பட்டால், பெரும்பாலான பிழைதிருத்த அம்சங்கள், நிறுவனத்தால் நிர்வகிக்கப்படும் சாதனத்தில் பவர்வாஷ் அல்லது தரவை அழித்த பிறகும் கூட இயக்கப்பட்டே இருக்கும். பிழைதிருத்த அம்சங்களை முழுமையாக முடக்க, Chrome OS மீட்டெடுப்புச் செயல்முறையை மேற்கொள்ளவும் (https://support.google.com/chromebook/answer/1080595). + இதை இயக்கிவிட்டால், பெரும்பாலான பிழைத்திருத்த அம்சங்கள், நிறுவனத்தால் நிர்வகிக்கப்படும் சாதனத்தில் பவர்வாஷ் அல்லது தரவை அழித்த பிறகும் கூட இயக்கப்பட்டே இருக்கும். பிழைத்திருத்த அம்சங்களை முழுமையாக முடக்க, Chrome OS மீட்டெடுப்புச் செயல்முறையை மேற்கொள்ளவும் (https://support.google.com/chromebook/answer/1080595). <ph name="BR" /> <ph name="BR" /> - பிழைதிருத்த அம்சங்களைப் பற்றிய மேலும் தகவல்களுக்கு இந்த இணைப்பைப் பார்க்கவும்:<ph name="BR" /> + பிழைத்திருத்த அம்சங்களைப் பற்றிய மேலும் தகவல்களுக்கு இந்த இணைப்பைப் பார்க்கவும்:<ph name="BR" /> https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-features <ph name="BR" /> <ph name="BR" /> @@ -4578,10 +4575,12 @@ <translation id="806812017500012252">தலைப்பின்படி மறுவரிசைப்படுத்து</translation> <translation id="8068253693380742035">உள்நுழைய, தொடவும்</translation> <translation id="8069615408251337349">Google கிளவுடு பிரிண்டர்</translation> +<translation id="806972267388474605">Linux கோப்புகள்</translation> <translation id="8071432093239591881">படமாக அச்சிடு</translation> <translation id="8072988827236813198">தாவல்களைப் பொருத்து</translation> <translation id="8074127646604999664">சமீபத்தில் மூடப்பட்ட தளங்கள் தரவை அனுப்புவதையும் பெறுவதையும் நிறைவுசெய்ய அனுமதி</translation> <translation id="8075191520954018715">நினைவக நிலை</translation> +<translation id="8076492880354921740">தாவல்கள்</translation> <translation id="8076835018653442223">உங்கள் சாதனத்தில் இருக்கும் அகக் கோப்புகளுக்கான அணுகலை உங்கள் நிர்வாகி முடக்கியுள்ளார்</translation> <translation id="8077684120002777443">பயனர்பெயர் (எ.கா. user@example.com)</translation> <translation id="8077816382010018681">QU அம்சத்தின் அறிவிப்புத் தலைப்பு இங்கே</translation> @@ -4866,7 +4865,6 @@ <translation id="8569682776816196752">எந்த இலக்குகளும் கண்டறியப்படவில்லை</translation> <translation id="8569764466147087991">திறப்பதற்கு ஒரு கோப்பைத் தேர்ந்தெடுக்கவும்</translation> <translation id="8571213806525832805">கடந்த 4 வாரங்கள்</translation> -<translation id="8571613743082299268">தளத்திற்குத் திசைதிருப்புதல் தடுக்கப்பட்டது</translation> <translation id="8574990355410201600"><ph name="HOST" /> இல் எப்போதும் ஒலியை அனுமதி</translation> <translation id="8578639784464423491">99 எழுத்துகளுக்கு அதிகமாக இருக்கக்கூடாது</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> உருப்படிகளை ஒத்திசைக்கிறது...</translation> @@ -5135,7 +5133,7 @@ <translation id="8978154919215542464">இயக்கத்திலுள்ளது - அனைத்தையும் ஒத்திசை</translation> <translation id="897939795688207351"><ph name="ORIGIN" /> இல்</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - சிதைந்துவிட்டது</translation> -<translation id="8983677657449185470">பாதுகாப்பான உலாவலை மேம்படுத்த உதவு</translation> +<translation id="8983677657449185470">பாதுகாப்பான உலாவலை மேம்படுத்த உதவுக</translation> <translation id="8986362086234534611">மற</translation> <translation id="8986494364107987395">பயன்பாட்டுப் புள்ளிவிவரங்களையும் சிதைவு அறிக்கைகளையும் தானாகவே Google க்கு அனுப்பு</translation> <translation id="8987927404178983737">மாதம்</translation> @@ -5180,7 +5178,7 @@ <translation id="9042893549633094279">தனியுரிமை மற்றும் பாதுகாப்பு</translation> <translation id="904451693890288097">"<ph name="DEVICE_NAME" />" க்கான கடவுக்குறியீட்டை உள்ளிடுக:</translation> <translation id="9044646465488564462">பிணையத்துடன் இணைப்பதில் தோல்வி: <ph name="DETAILS" /></translation> -<translation id="9045430190527754450">Google இல் அடைய முயற்சி செய்யும் பக்கத்தின் இணைய முகவரியை அனுப்பும்</translation> +<translation id="9045430190527754450">நீங்கள் செல்ல முயற்சிக்கும் பக்கத்தின் இணைய முகவரியை Googleக்கு அனுப்பும்</translation> <translation id="9046895021617826162">இணைப்பு தோல்வியடைந்தது</translation> <translation id="9050666287014529139">கடவுச்சொற்றொடர்</translation> <translation id="9052208328806230490"><ph name="CLOUD_PRINT_NAME" /> உடன் <ph name="EMAIL" /> கணக்கைப் பயன்படுத்தி உங்கள் பிரிண்டர்களைப் பதிவு செய்துள்ளீர்கள்</translation> @@ -5198,7 +5196,6 @@ <translation id="9065203028668620118">திருத்து</translation> <translation id="9066782832737749352">உரையிலிருந்து பேச்சு</translation> <translation id="9070219033670098627">பயனரை மாற்று</translation> -<translation id="907148966137935206">பாப்-அப்களைக் காண்பிக்க எந்த தளத்தையும் அனுமதிக்க வேண்டாம் (பரிந்துரைக்கப்பட்டது)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" />ஐ நிறுவுகிறது...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> நீங்கள் சேமித்த கடவுச்சொற்களைப் பயன்படுத்தி தகுதியுள்ள தளங்களிலும் பயன்பாடுகளிலும் உங்களைத் தானாக உள்நுழையச் செய்யும்.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index ef7ffc4..96a6751 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">ఈ పేజీని బుక్మార్క్ చెయ్యి...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> అంశాలను తొలగిస్తోంది...</translation> <translation id="1048286738600630630">ప్రదర్శనలు</translation> +<translation id="1049743911850919806">అజ్ఞాత</translation> <translation id="1049795001945932310">&భాష సెట్టింగ్లు</translation> <translation id="1049926623896334335">Word పత్రం</translation> <translation id="1054153489933238809">అసలు &చిత్రాన్ని కొత్త ట్యాబ్లో తెరువు</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">సమకాలీకరణ సర్వర్ బిజీగా ఉంది, దయచేసి తర్వాత మళ్ళీ ప్రయత్నించండి.</translation> <translation id="1784849162047402014">పరికరంలో ఖాళీ డిస్క్ స్థలం తక్కువగా ఉంది</translation> <translation id="1786636458339910689">బృంద డిస్క్లు</translation> -<translation id="1789575671122666129">పాప్అప్లు</translation> <translation id="1792619191750875668">విస్తారిత డిస్ప్లే</translation> <translation id="1793119619663054394">మీరు ఖచ్చితంగా ఈ కంప్యూటర్ నుండి "<ph name="PROFILE_NAME" />"ని మరియు సంబంధిత Chrome డేటా అంతటినీ తీసివేయాలనుకుంటున్నారా? ఈ చర్య రద్దు చేయబడదు.</translation> <translation id="1794791083288629568">ఈ సమస్యను పరిష్కరించడంలో మాకు సహాయం చేయడానికి అభిప్రాయాన్ని పంపుతుంది.</translation> @@ -649,6 +649,7 @@ <translation id="1983959805486816857">మీరు క్రొత్త పర్యవేక్షించబడే వినియోగదారును సృష్టించిన తర్వాత, ఏ సమయంలో అయినా ఏ పరికరం నుండి అయినా <ph name="MANAGEMENT_URL" />లో సెట్టింగ్లను నిర్వహించవచ్చు.</translation> <translation id="1984642098429648350">విండోను కుడివైపుకు డాక్ చేయి</translation> <translation id="1987139229093034863">మరొక వినియోగదారుకు మారండి.</translation> +<translation id="1987317783729300807">ఖాతాలు</translation> <translation id="1989112275319619282">బ్రౌజ్ చేయి</translation> <translation id="1992397118740194946">సెట్ చెయ్యలేదు</translation> <translation id="1994173015038366702">సైట్ URL</translation> @@ -750,7 +751,6 @@ <translation id="2151576029659734873">చెల్లని టాబ్ సూచిక ఎంటర్ చెయ్యబడింది.</translation> <translation id="2154484045852737596">కార్డ్ను సవరించండి</translation> <translation id="2154710561487035718">URLను కాపీ చెయ్యి</translation> -<translation id="2155931291251286316"><ph name="HOST" /> నుండి ఎల్లప్పుడూ పాప్-అప్లను అనుమతించు</translation> <translation id="215753907730220065">పూర్తి స్క్రీన్ను నిష్క్రమించు</translation> <translation id="2157875535253991059">ఈ పేజీ ఇప్పుడు పూర్తి స్క్రీన్లో ఉంది.</translation> <translation id="216169395504480358">Wi-Fiని జోడించండి...</translation> @@ -1176,7 +1176,6 @@ <translation id="2799223571221894425">మళ్లీ ప్రారంభించు</translation> <translation id="2803375539583399270">PINను నమోదు చేయండి</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> -<translation id="2805707493867224476">పాప్-అప్లను చూపించడానికి అన్ని సైట్లను అనుమతించు</translation> <translation id="2805756323405976993">యాప్స్</translation> <translation id="2807517655263062534">మీరు డౌన్లోడ్ చేసిన ఫైల్లు ఇక్కడ కనిపిస్తాయి</translation> <translation id="2809586584051668049">ఇంకా మరో <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1608,7 +1607,6 @@ <translation id="347919930506963698">Chrome నుండి ఇంకా మరిన్ని పొందండి</translation> <translation id="3479552764303398839">ఇప్పుడు కాదు</translation> <translation id="3480892288821151001">విండోను ఎడమవైపుకు డాక్ చేయి</translation> -<translation id="3481915276125965083">ఈ పేజీపై క్రింది పాప్-అప్లు నిరోధించబడ్డాయి:</translation> <translation id="3484273680291419129">హానికరమైన సాఫ్ట్వేర్ని తీసివేస్తోంది...</translation> <translation id="3484869148456018791">క్రొత్త ప్రమాణపత్రాన్ని పొందండి</translation> <translation id="3487007233252413104">అజ్ఞాత కార్యాచరణ</translation> @@ -1713,7 +1711,6 @@ <translation id="3637682276779847508">మీరు సరైన PIN అన్లాక్ కీని నమోదు చేయకపోతే, మీ SIM కార్డ్ శాశ్వతంగా నిలిపివేయబడుతుంది.</translation> <translation id="363903084947548957">తదుపరి ఇన్పుట్ పద్ధతి</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> కోసం "<ph name="EXTENSION_NAME" />"ని జోడించాలా?</translation> -<translation id="3643225892037417978">అతిథి వినియోగదారులకు పొడిగింపు నిర్వహణ అందుబాటులో ఉండదు. దయచేసి పొడిగింపులను నిర్వహించాలనుకుంటే సైన్ ఇన్ చేయండి.</translation> <translation id="3644896802912593514">వెడల్పు</translation> <translation id="3646789916214779970">డిఫాల్ట్ థీమ్కు తిరిగి అమర్చు</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> గుర్తించబడింది</translation> @@ -2052,7 +2049,6 @@ <translation id="4172051516777682613">ఎల్లప్పుడూ చూపు</translation> <translation id="4175737294868205930">నిరంతర నిల్వ</translation> <translation id="4176463684765177261">ఆపివేయబడింది</translation> -<translation id="4180684688621252156">ముద్రణ సేవ</translation> <translation id="4180788401304023883">CA ప్రమాణపత్రం "<ph name="CERTIFICATE_NAME" />"ని తొలగించాలా?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">భాషలు</translation> @@ -3247,6 +3243,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> పేరు గల పరికరంతో డేటాను ఇచ్చిపుచ్చుకోవడానికి అనుమతి</translation> <translation id="6076448957780543068">ఈ స్క్రీన్షాట్ని చేర్చు</translation> <translation id="6077131872140550515">ప్రాధాన్య నెట్వర్క్ల నుండి తీసివేయి</translation> +<translation id="6078323886959318429">సత్వరమార్గాన్ని జోడించు</translation> <translation id="6078752646384677957">దయచేసి మీ మైక్రోఫోన్ మరియు ఆడియో స్థాయిలను తనిఖీ చేయండి.</translation> <translation id="6080515710685820702">షేర్డ్ కంప్యూటర్ని ఉపయోగిస్తున్నారా? అజ్ఞాత విండోలో తెరవండి.</translation> <translation id="6080689532560039067">మీ సిస్టమ్ సమయాన్ని తనిఖీ చేయండి</translation> @@ -3454,7 +3451,6 @@ <translation id="6406303162637086258">బ్రౌజర్ పునఃప్రారంభాన్ని ప్రారంభించు</translation> <translation id="6406506848690869874">Sync</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> మరియు <ph name="WEBSITE_3" />లో ఉన్న మీ డేటాని చదవడం మరియు మార్చడం</translation> -<translation id="6409731863280057959">పాప్-అప్లు</translation> <translation id="6410257289063177456">చిత్రం ఫైళ్ళు</translation> <translation id="6410328738210026208">ఛానెల్ మరియు పవర్వాష్ను మార్చు</translation> <translation id="6410668567036790476">శోధన ఇంజిన్ను జోడించండి</translation> @@ -3660,7 +3656,6 @@ <translation id="6708242697268981054">మూలం:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" />ని ఉపయోగించి కనెక్ట్ చేయి</translation> <translation id="6710213216561001401">మునుపటి</translation> -<translation id="6716704051134091292">PDF కన్వర్టర్</translation> <translation id="6718273304615422081">జిప్ చేస్తోంది...</translation> <translation id="671928215901716392">స్క్రీన్ను లాక్ చేయి</translation> <translation id="67211069045302358">ఈ సైట్ కోసం సెట్టింగ్లను రీసెట్ చేయాలా?</translation> @@ -3785,7 +3780,6 @@ <translation id="6920989436227028121">సాధారణ టాబ్ వలె తెరువు</translation> <translation id="6922128026973287222">Google డేటా సేవర్ను ఉపయోగించి డేటాను ఆదా చేయండి మరియు వేగంగా బ్రౌజ్ చేయండి. మరింత తెలుసుకోవడానికి క్లిక్ చేయండి.</translation> <translation id="6923132443355966645">స్క్రోల్ / క్లిక్</translation> -<translation id="6929555043669117778">పాప్-అప్లను నిరోధించడాన్ని కొనసాగించు</translation> <translation id="6929835486583850209"><ph name="APP_NAME" />ని ఇన్స్టాల్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది...</translation> <translation id="6930242544192836755">వ్యవధి</translation> <translation id="6934241953272494177">మీ మీడియా పరికరాన్ని స్కాన్ చేస్తోంది... @@ -3895,7 +3889,6 @@ <translation id="7088434364990739311">నవీకరణ తనిఖీ ప్రారంభం విఫలమైంది (లోపం కోడ్ <ph name="ERROR" />).</translation> <translation id="7088561041432335295">జిప్ ఆర్కైవర్ - ఫైల్లు యాప్లో జిప్ ఫైల్లను తెరవండి మరియు ప్యాక్ చేయండి.</translation> <translation id="7088674813905715446">ఈ పరికరాన్ని నిర్వాహకులు కేటాయించబడని స్థితిలో ఉంచారు. దీన్ని నమోదు కోసం ప్రారంభించడానికి, దయచేసి మీ నిర్వాహకులు పరికరాన్ని పెండింగ్ స్థితిలో ఉంచేలా చేయండి.</translation> -<translation id="7092106376816104">పాప్-అప్ మినహాయింపులు</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">ఈ పేర్లు గల పరికరాలతో డేటాను ఇచ్చిపుచ్చుకోవడానికి అనుమతి: <ph name="HOSTNAMES" /></translation> <translation id="7098447629416471489">సేవ్ చేసిన ఇతర శోధన ఇంజిన్లు ఇక్కడ కనిపిస్తాయి</translation> @@ -4114,7 +4107,6 @@ <translation id="744341768939279100">కొత్త ప్రొఫైల్ని సృష్టించు...</translation> <translation id="7444726222535375658">Hangouts సమావేశానికి కొనసాగండి</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" />ను ఆపివెయ్యి</translation> -<translation id="7445682342344043969">పాప్-అప్లు బ్లాక్ చేయబడ్డాయి</translation> <translation id="7453008956351770337">ఈ ప్రింటర్ను ఎంచుకోవడం ద్వారా, మీరు మీ ప్రింటర్ని ప్రాప్యత చేయడానికి క్రింది పొడిగింపుకు అనుమతి ఇస్తున్నారు:</translation> <translation id="7453467225369441013">చాలా సైట్ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది. మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు.</translation> <translation id="7456142309650173560">డెవలపర్</translation> @@ -4535,6 +4527,7 @@ <translation id="8072988827236813198">పిన్ టాబ్లు</translation> <translation id="8074127646604999664">డేటాను పంపడం మరియు స్వీకరించడం పూర్తి చేయడానికి ఇటీవల మూసివేసిన సైట్లను అనుమతించు</translation> <translation id="8075191520954018715">మెమరీ స్థితి</translation> +<translation id="8076492880354921740">ట్యాబ్లు</translation> <translation id="8076835018653442223">మీ నిర్వాహకులు మీ పరికరంలోని స్థానిక ఫైల్లకు యాక్సెస్ని నిలిపివేసారు</translation> <translation id="8077684120002777443">వినియోగదారు పేరు (ఉదా. user@example.com)</translation> <translation id="8077816382010018681">QU లక్షణం నోటిఫికేషన్ శీర్షిక ఇక్కడ అందించబడుతుంది</translation> @@ -4820,7 +4813,6 @@ <translation id="8569682776816196752">గమ్యస్థానాలు కనుగొనబడలేదు</translation> <translation id="8569764466147087991">తెరవడానికి ఫైల్ని ఎంచుకోండి</translation> <translation id="8571213806525832805">గత 4 వారాలు</translation> -<translation id="8571613743082299268">సైట్కు మళ్ళింపు బ్లాక్ చేయబడింది</translation> <translation id="8574990355410201600"><ph name="HOST" />లో ఎల్లప్పుడూ ధ్వనిని అనుమతించు</translation> <translation id="8578639784464423491">99 అక్షరాలను మించకూడదు</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> అంశాలను సమకాలీకరిస్తోంది...</translation> @@ -5146,7 +5138,6 @@ <translation id="9065203028668620118">సవరించు</translation> <translation id="9066782832737749352">వచనం నుండి ప్రసంగం</translation> <translation id="9070219033670098627">వ్యక్తిని మార్చు</translation> -<translation id="907148966137935206">పాప్-అప్లను చూపించడానికి ఏ సైట్నూ అనుమతించవద్దు (సిఫార్సు చేయబడింది)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" />ని ఇన్స్టాల్ చేస్తోంది...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> మీరు సేవ్ చేసిన పాస్వర్డ్లతో అర్హత ఉన్న సైట్లు మరియు అనువర్తనాలకు మిమ్మల్ని స్వయంచాలకంగా సైన్ ఇన్ చేస్తుంది.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index 795ad22..54781fd 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">บุ๊กมาร์กหน้านี้...</translation> <translation id="1047956942837015229">กำลังลบ <ph name="COUNT" /> รายการ...</translation> <translation id="1048286738600630630">การแสดงผล</translation> +<translation id="1049743911850919806">โหมดไม่ระบุตัวตน</translation> <translation id="1049795001945932310">&การตั้งค่าภาษา</translation> <translation id="1049926623896334335">เอกสาร Word</translation> <translation id="1054153489933238809">เ&ปิดภาพต้นฉบับในแท็บใหม่</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">เซิร์ฟเวอร์สำหรับการซิงค์ข้อมูลกำลังยุ่งอยู่ โปรดลองอีกครั้งในภายหลัง</translation> <translation id="1784849162047402014">อุปกรณ์เครื่องนี้เหลือพื้นที่ว่างในดิสก์ต่ำ</translation> <translation id="1786636458339910689">ไดรฟ์ของทีม</translation> -<translation id="1789575671122666129">ป๊อปอัป</translation> <translation id="1792619191750875668">การแสดงผลแบบขยาย</translation> <translation id="1793119619663054394">คุณแน่ใจไหมว่าต้องการนำ "<ph name="PROFILE_NAME" />" และข้อมูล Chrome ทั้งหมดที่เกี่ยวข้องออกจากคอมพิวเตอร์นี้ เมื่อดำเนินการแล้วจะไม่สามารถยกเลิกได้</translation> <translation id="1794791083288629568">ส่งความคิดเห็นเพื่อช่วยเราแก้ไขปัญหานี้</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">หลังจากที่คุณสร้างผู้ใช้ภายใต้การดูแลใหม่ คุณสามารถจัดการการตั้งค่าได้ทุกเมื่อจากอุปกรณ์ใดๆ ที่ <ph name="MANAGEMENT_URL" /></translation> <translation id="1984642098429648350">จัดวางหน้าต่างไว้ทางขวา</translation> <translation id="1987139229093034863">สลับเป็นผู้ใช้อื่น</translation> +<translation id="1987317783729300807">บัญชี</translation> <translation id="1989112275319619282">เล่นเน็ต</translation> <translation id="1992397118740194946">ไม่ได้ตั้งค่า</translation> <translation id="1994173015038366702">URL ของเว็บไซต์</translation> <translation id="1997484222658892567"><ph name="URL" /> ต้องการจัดเก็บข้อมูลขนาดใหญ่อย่างถาวรในเครื่องคอมพิวเตอร์ของคุณ</translation> <translation id="1997616988432401742">ใบรับรองของคุณ</translation> <translation id="1999115740519098545">เริ่มต้น</translation> +<translation id="2001796770603320721">จัดการใน Google ไดรฟ์</translation> <translation id="2006638907958895361">เปิดลิงก์ใน <ph name="APP" /></translation> <translation id="2007404777272201486">รายงานปัญหา...</translation> <translation id="2016430552235416146">ดั้งเดิม</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">ดัชนีแท็บที่ป้อนไม่ถูกต้อง</translation> <translation id="2154484045852737596">แก้ไขบัตร</translation> <translation id="2154710561487035718">คัดลอก URL</translation> -<translation id="2155931291251286316">อนุญาตป๊อปอัปจาก <ph name="HOST" /> เสมอ</translation> <translation id="215753907730220065">ออกจากการแสดงเต็มหน้าจอ</translation> <translation id="2157875535253991059">หน้าเว็บนี้แสดงแบบเต็มหน้าจอแล้ว</translation> <translation id="216169395504480358">เพิ่ม WiFi...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">เปิดใหม่</translation> <translation id="2803375539583399270">ป้อน PIN</translation> <translation id="2805646850212350655">ระบบไฟล์การเข้ารหัสของ Microsoft</translation> -<translation id="2805707493867224476">อนุญาตให้ไซต์ทั้งหมดแสดงป๊อปอัป</translation> <translation id="2805756323405976993">แอป</translation> <translation id="2807517655263062534">ไฟล์ที่คุณดาวน์โหลดจะปรากฏที่นี่</translation> <translation id="2809586584051668049">และอีก <ph name="NUMBER_ADDITIONAL_DISABLED" /> รายการ</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">ใช้ประโยชน์จาก Chrome ให้มากขึ้น</translation> <translation id="3479552764303398839">ไม่ใช่ตอนนี้</translation> <translation id="3480892288821151001">จัดวางหน้าต่างไว้ทางซ้าย</translation> -<translation id="3481915276125965083">หน้าเว็บนี้บล็อกป๊อปอัปต่อไปนี้:</translation> <translation id="3484273680291419129">กำลังนำซอฟต์แวร์อันตรายออก...</translation> <translation id="3484869148456018791">รับใบรับรองใหม่</translation> <translation id="3487007233252413104">ฟังก์ชันที่ไม่ระบุชื่อ</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">ระบบจะปิดใช้ซิมการ์ดของคุณโดยถาวรหากคุณไม่สามารถป้อนคีย์ปลดล็อก PIN ที่ถูกต้อง</translation> <translation id="363903084947548957">วิธีการป้อนข้อมูลถัดไป</translation> <translation id="3640214691812501263">เพิ่ม "<ph name="EXTENSION_NAME" />" สำหรับ <ph name="USER_NAME" /> ไหม</translation> -<translation id="3643225892037417978">การจัดการส่วนขยายไม่พร้อมใช้งานสำหรับผู้ใช้ที่เป็นผู้เยี่ยมชม โปรดลงชื่อเข้าใช้การจัดการส่วนขยาย</translation> <translation id="3644896802912593514">ความกว้าง</translation> <translation id="3646789916214779970">รีเซ็ตเป็นธีมค่าเริ่มต้น</translation> <translation id="3648348069317717750">ตรวจพบ <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">แสดงทุกครั้ง</translation> <translation id="4175737294868205930">พื้นที่เก็บข้อมูลถาวร</translation> <translation id="4176463684765177261">ปิดการใช้งานแล้ว</translation> -<translation id="4180684688621252156">บริการการพิมพ์</translation> <translation id="4180788401304023883">ลบใบรับรองของผู้ออกใบรับรอง "<ph name="CERTIFICATE_NAME" />" หรือไม่</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">ภาษา</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">เซิร์ฟเวอร์ได้ห้ามการเข้าถึงทรัพยากรนี้</translation> <translation id="4215350869199060536">อ๊ะ มีสัญลักษณ์ที่ไม่ถูกต้องในชื่อ!</translation> <translation id="4215448920900139318">กำลังสำรอง <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">การพิมพ์ตามคำบอก</translation> <translation id="4225397296022057997">ในเว็บไซต์ทั้งหมด</translation> <translation id="4235200303672858594">ทั้งหน้าจอ</translation> <translation id="4235813040357936597">เพิ่มบัญชีสำหรับ <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">ไดรฟ์ของฉัน</translation> <translation id="4430019312045809116">ระดับเสียง</translation> <translation id="4430369329743628066">เพิ่มบุ๊กมาร์กแล้ว</translation> +<translation id="4434045419905280838">ป๊อปอัปและการเปลี่ยนเส้นทาง</translation> <translation id="443454694385851356">แบบเดิม (ไม่ปลอดภัย)</translation> <translation id="443464694732789311">ต่อไป</translation> <translation id="443475966875174318">อัปเดตหรือนำแอปพลิเคชันที่ใช้ร่วมกันไม่ได้ออก</translation> @@ -3273,6 +3272,7 @@ <translation id="6075907793831890935">แลกเปลี่ยนข้อมูลกับอุปกรณ์ชื่อ <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">รวมภาพหน้าจอนี้</translation> <translation id="6077131872140550515">นำออกจากเครือข่ายที่ต้องการ</translation> +<translation id="6078323886959318429">เพิ่มทางลัด</translation> <translation id="6078752646384677957">โปรดตรวจสอบไมโครโฟนและระดับเสียง</translation> <translation id="6080515710685820702">หากมีการใช้คอมพิวเตอร์ร่วมกัน ให้ลองเปิดหน้าต่างที่ไม่ระบุตัวตน</translation> <translation id="6080689532560039067">ตรวจสอบเวลาระบบของคุณ</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">จำลองการรีสตาร์ทเบราว์เซอร์</translation> <translation id="6406506848690869874">การซิงค์ข้อมูล</translation> <translation id="6408118934673775994">อ่านและเปลี่ยนแปลงข้อมูลของคุณใน <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> และ <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">ป๊อปอัป</translation> <translation id="6410257289063177456">ไฟล์ภาพ</translation> <translation id="6410328738210026208">เปลี่ยนช่องและ Powerwash</translation> <translation id="6410668567036790476">เพิ่มเครื่องมือค้นหา</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">ต้นทาง:</translation> <translation id="6709357832553498500">เชื่อมต่อโดยใช้ <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">ก่อนหน้า</translation> -<translation id="6716704051134091292">ตัวแปลง PDF</translation> <translation id="6718273304615422081">กำลังซิป...</translation> <translation id="671928215901716392">ล็อกหน้าจอ</translation> <translation id="67211069045302358">รีเซ็ตการตั้งค่าของไซต์นี้ไหม</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">เปิดเป็นแท็บทั่วไป</translation> <translation id="6922128026973287222">บันทึกข้อมูลและท่องเว็บเร็วขึ้นโดยใช้ Google โปรแกรมประหยัดอินเทอร์เน็ต คลิกเพื่อเรียนรู้เพิ่มเติม</translation> <translation id="6923132443355966645">เลื่อน/คลิก</translation> -<translation id="6929555043669117778">บล็อกการแสดงป๊อปอัป</translation> <translation id="6929835486583850209">เกิดข้อผิดพลาดขณะติดตั้ง <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">ระยะเวลา</translation> <translation id="6934241953272494177">กำลังสแกนอุปกรณ์สื่อ... @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">ส่งข้อมูลการติดตามผลการปฏิบัติงาน</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">บล็อก</translation> +<translation id="7055152154916055070">การเปลี่ยนเส้นทางถูกบล็อก</translation> <translation id="7056526158851679338">&ตรวจสอบอุปกรณ์</translation> <translation id="7059858479264779982">ตั้งค่าเป็นเรียกใช้อัตโนมัติ</translation> <translation id="7059893117020417984">หากต้องการท่องเว็บแบบส่วนตัว ให้คลิกเมนูไอคอนรูปจุดเพื่อเปิดหน้าต่างที่ไม่ระบุตัวตน</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">การเริ่มต้นการตรวจสอบการอัปเดตล้มเหลว (รหัสข้อผิดพลาด <ph name="ERROR" />)</translation> <translation id="7088561041432335295">ที่เก็บ ZIP ถาวร - เปิดและแพ็กไฟล์ ZIP ในแอป Files</translation> <translation id="7088674813905715446">ผู้ดูแลระบบนำอุปกรณ์นี้ไปไว้ในสถานะถูกยกเลิกการเตรียมใช้งาน หากต้องการเปิดใช้สำหรับการลงทะเบียน โปรดขอให้ผู้ดูแลระบบนำอุปกรณ์ไปไว้ในสถานะรอดำเนินการ</translation> -<translation id="7092106376816104">ข้อยกเว้นป๊อปอัป</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">แลกเปลี่ยนข้อมูลกับอุปกรณ์ชื่อ <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">สลับแว่นขยายทั้งหน้าจอ</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">สร้างโปรไฟล์ใหม่</translation> <translation id="7444726222535375658">ดำเนินการต่อไปยังการประชุม Hangouts </translation> <translation id="7444983668544353857">ปิดการใช้งาน<ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">บล็อกป๊อปอัป</translation> <translation id="7453008956351770337">ในการเลือกเครื่องพิมพ์นี้ แสดงว่าคุณให้สิทธิ์การเข้าถึงเครื่องพิมพ์แก่ส่วนขยายต่อไปนี้:</translation> <translation id="7453467225369441013">นำคุณออกจากระบบของเว็บไซต์ส่วนใหญ่ แต่คุณจะไม่ออกจากระบบบัญชี Google</translation> <translation id="7456142309650173560">การพัฒนา</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">กำลังเชื่อมต่อกับ "<ph name="DEVICE_NAME" />"</translation> <translation id="7622114377921274169">กำลังชาร์จ</translation> <translation id="7624337243375417909">ปิด Caps Lock</translation> +<translation id="7625568159987162309">ดูสิทธิ์และข้อมูลที่จัดเก็บในเว็บไซต์</translation> <translation id="7627790789328695202">อ๊ะ มี <ph name="FILE_NAME" /> อยู่แล้ว เปลี่ยนชื่อแล้วลองอีกครั้ง</translation> <translation id="7628127343934101653">เปิดไฟล์ PDF ในแอปพลิเคชันโปรแกรมดู PDF เริ่มต้น</translation> <translation id="7629827748548208700">แท็บ: <ph name="TAB_NAME" /></translation> @@ -4391,7 +4388,7 @@ <translation id="782590969421016895">ใช้หน้าเว็บปัจจุบัน</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />ฟีเจอร์การแก้ไขข้อบกพร่อง<ph name="END_H3" /> <ph name="BR" /> - คุณเปิดใช้ฟีเจอร์การแก้ไขข้อบกพร่องในอุปกรณ์ Chrome OS เพื่อติดตั้งและทดสอบรหัสที่กำหนดเองในอุปกรณ์ได้ ซึ่งจะช่วยให้ทำสิ่งต่อไปนี้ได้<ph name="BR" /> + คุณสามารถเปิดใช้ฟีเจอร์การแก้ไขข้อบกพร่องในอุปกรณ์ Chrome OS เพื่อติดตั้งและทดสอบรหัสที่กำหนดเองในอุปกรณ์ ซึ่งจะช่วยให้ทำสิ่งต่อไปนี้ได้<ph name="BR" /> <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" />นำการยืนยัน rootfs ออกเพื่อให้แก้ไขไฟล์ OS ได้ <ph name="LIST_ITEM" />เปิดใช้การเข้าถึงอุปกรณ์แบบ SSH โดยใช้คีย์ทดสอบมาตรฐานเพื่อให้ใช้เครื่องมืออย่างเช่น <ph name="BEGIN_CODE" />"cros flash"<ph name="END_CODE" /> ในการเข้าถึงอุปกรณ์นั้นได้ @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">จัดลำดับใหม่ตามชื่อ</translation> <translation id="8068253693380742035">แตะเพื่อลงชื่อเข้าใช้</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">ไฟล์ Linux</translation> <translation id="8071432093239591881">พิมพ์เป็นรูปภาพ</translation> <translation id="8072988827236813198">ตรึงแท็บ</translation> <translation id="8074127646604999664">อนุญาตให้เว็บไซต์ที่ปิดล่าสุดดำเนินการส่งและรับข้อมูลต่อจนเสร็จ</translation> <translation id="8075191520954018715">สถานะหน่วยความจำ</translation> +<translation id="8076492880354921740">แท็บ</translation> <translation id="8076835018653442223">ผู้ดูแลระบบปิดการเข้าถึงไฟล์ในอุปกรณ์ของคุณ</translation> <translation id="8077684120002777443">ชื่อผู้ใช้ (เช่น user@example.com)</translation> <translation id="8077816382010018681">ชื่อการแจ้งเตือนด้วยฟีเจอร์ QU อยู่ที่นี่</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">ไม่พบปลายทาง</translation> <translation id="8569764466147087991">เลือกไฟล์เพื่อเปิด</translation> <translation id="8571213806525832805">4 สัปดาห์ที่แล้ว</translation> -<translation id="8571613743082299268">มีการบล็อกการเปลี่ยนเส้นทางไปยังเว็บไซต์</translation> <translation id="8574990355410201600">อนุญาตให้เปิดเสียงใน <ph name="HOST" /> เสมอ</translation> <translation id="8578639784464423491">ต้องไม่เกิน 99 ตัวอักษร</translation> <translation id="8579285237314169903">กำลังซิงค์ <ph name="NUMBER_OF_FILES" /> รายการ...</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">แก้ไข</translation> <translation id="9066782832737749352">การอ่านออกเสียงข้อความ</translation> <translation id="9070219033670098627">เปลี่ยนบุคคล</translation> -<translation id="907148966137935206">ไม่อนุญาตให้ไซต์ใดๆ แสดงป๊อปอัป (แนะนำ)</translation> <translation id="9071637495340542136">กำลังติดตั้ง <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> ลงชื่อเข้าใช้ให้คุณในเว็บไซต์และแอปที่มีสิทธิ์โดยอัตโนมัติด้วยรหัสผ่านที่คุณบันทึกไว้</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index b04a4de..2863bf18 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Bu Sayfaya Yer İşareti Koy...</translation> <translation id="1047956942837015229"><ph name="COUNT" /> öğe siliniyor...</translation> <translation id="1048286738600630630">Ekranlar</translation> +<translation id="1049743911850919806">Gizli mod</translation> <translation id="1049795001945932310">&Dil ayarları</translation> <translation id="1049926623896334335">Word belgesi</translation> <translation id="1054153489933238809">Orijinal &Resmi Yeni Sekmede Aç</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Senkronizasyon sunucusu meşgul, lütfen daha sonra tekrar deneyin.</translation> <translation id="1784849162047402014">Cihazda disk alanı az</translation> <translation id="1786636458339910689">Ekip Drive'ları</translation> -<translation id="1789575671122666129">Pop-up'lar</translation> <translation id="1792619191750875668">Genişletilmiş ekran</translation> <translation id="1793119619663054394">"<ph name="PROFILE_NAME" />" isimli profili ve onunla ilişkilendirilmiş tüm Chrome verilerini bu bilgisayardan kaldırmak istediğinizden emin misiniz? Bu işlem geri alınamaz.</translation> <translation id="1794791083288629568">Bu sorunu düzeltmemize yardımcı olmak için geri bildirim gönderin.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Denetlenen yeni bir kullanıcı oluşturduktan sonra, <ph name="MANAGEMENT_URL" /> adresini kullanarak ayarları istediğiniz zaman tüm cihazlardan yönetebilirsiniz.</translation> <translation id="1984642098429648350">Pencereyi sağa yerleştir</translation> <translation id="1987139229093034863">Farklı bir kullanıcıya geçin.</translation> +<translation id="1987317783729300807">Hesaplar</translation> <translation id="1989112275319619282">Göz at</translation> <translation id="1992397118740194946">Ayarlanmadı</translation> <translation id="1994173015038366702">Site URL'si</translation> <translation id="1997484222658892567"><ph name="URL" />, yerel bilgisiayarınızda büyük miktarda veri depolamak istiyor</translation> <translation id="1997616988432401742">Sertifikalarınız</translation> <translation id="1999115740519098545">Başlangıçta</translation> +<translation id="2001796770603320721">Drive'da Yönet</translation> <translation id="2006638907958895361">Bağlantıyı <ph name="APP" /> uygulamasında aç</translation> <translation id="2007404777272201486">Sorun Bildirin...</translation> <translation id="2016430552235416146">Geleneksel</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Geçersiz sekme dizini girildi.</translation> <translation id="2154484045852737596">Kartı düzenle</translation> <translation id="2154710561487035718">URL'yi Kopyala</translation> -<translation id="2155931291251286316"><ph name="HOST" /> sitesindeki pop-up'lara her zaman izin ver.</translation> <translation id="215753907730220065">Tam Ekrandan Çık</translation> <translation id="2157875535253991059">Bu sayfa artık tam ekran.</translation> <translation id="216169395504480358">Kablosuz Ekle...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Yeniden başlat</translation> <translation id="2803375539583399270">PIN girin</translation> <translation id="2805646850212350655">Microsoft Şifreleme Dosya Sistemi</translation> -<translation id="2805707493867224476">Tüm sitelerin pop-up göstermesine izin ver</translation> <translation id="2805756323405976993">Uygulamalar</translation> <translation id="2807517655263062534">İndirdiğiniz dosyalar burada görünür</translation> <translation id="2809586584051668049">ve diğer <ph name="NUMBER_ADDITIONAL_DISABLED" /> öğe</translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Chrome'dan daha da fazla yararlanın</translation> <translation id="3479552764303398839">Şimdi değil</translation> <translation id="3480892288821151001">Pencereyi sola yerleştir</translation> -<translation id="3481915276125965083">Bu sayfada engellenen pop-up'lar:</translation> <translation id="3484273680291419129">Zararlı yazılım kaldırılıyor...</translation> <translation id="3484869148456018791">Yeni sertifika al</translation> <translation id="3487007233252413104">anonim işlev</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Doğru PIN Kilit Açma Anahtarını giremezseniz SIM kartınız kalıcı olarak devre dışı bırakılacaktır.</translation> <translation id="363903084947548957">Sonraki giriş yöntemi</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> için "<ph name="EXTENSION_NAME" />" uzantısı eklensin mi?</translation> -<translation id="3643225892037417978">Misafir kullanıcılar uzantı yönetimini kullanamaz. Uzantıları yönetmek için lütfen oturum açın.</translation> <translation id="3644896802912593514">Genişlik</translation> <translation id="3646789916214779970">Varsayılan temaya sıfırla</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> algılandı</translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Her zaman göster</translation> <translation id="4175737294868205930">Kalıcı depolama</translation> <translation id="4176463684765177261">Devre dışı</translation> -<translation id="4180684688621252156">Yazdırma hizmeti</translation> <translation id="4180788401304023883">"<ph name="CERTIFICATE_NAME" />" CA sertifikası silinsin mi?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Diller</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Bu kaynağa erişim sunucu tarafından yasaklandı.</translation> <translation id="4215350869199060536">Hata! Adda geçersiz simgeler var!</translation> <translation id="4215448920900139318"><ph name="FILE_COUNT" /> yedekleniyor</translation> +<translation id="4217571870635786043">Dikte</translation> <translation id="4225397296022057997">Tüm sitelerde</translation> <translation id="4235200303672858594">Tüm ekran</translation> <translation id="4235813040357936597"><ph name="PROFILE_NAME" /> için hesap ekle</translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Drive'ım</translation> <translation id="4430019312045809116">Ses</translation> <translation id="4430369329743628066">Yer işareti eklendi</translation> +<translation id="4434045419905280838">Pop-up'lar ve yönlendirmeler</translation> <translation id="443454694385851356">Eski (güvenli değil)</translation> <translation id="443464694732789311">Devam</translation> <translation id="443475966875174318">Uyumsuz uygulamaları güncelleyin veya kaldırın</translation> @@ -3274,6 +3273,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> adlı cihazla veri alışverişi</translation> <translation id="6076448957780543068">Bu ekran görüntüsünü ekle</translation> <translation id="6077131872140550515">Tercih edilenlerden kaldır</translation> +<translation id="6078323886959318429">Kısayol ekle</translation> <translation id="6078752646384677957">Lütfen mikrofonunuzu ve ses seviyelerini kontrol edin.</translation> <translation id="6080515710685820702">Paylaşılan bir bilgisayar mı kullanıyorsunuz? Gizli pencere açmayı deneyin.</translation> <translation id="6080689532560039067">Sistem saatinizi kontrol edin</translation> @@ -3482,7 +3482,6 @@ <translation id="6406303162637086258">Tarayıcı yeniden başlatmasını simüle et</translation> <translation id="6406506848690869874">Senkronizasyon</translation> <translation id="6408118934673775994"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ve <ph name="WEBSITE_3" /> web sitelerinde verilerinizi okuma ve değiştirme</translation> -<translation id="6409731863280057959">Pop-up'lar</translation> <translation id="6410257289063177456">Resim Dosyaları</translation> <translation id="6410328738210026208">Kanal değiştir ve Powerwash işlemini yap</translation> <translation id="6410668567036790476">Arama motoru ekleyin</translation> @@ -3690,7 +3689,6 @@ <translation id="6708242697268981054">Kaynak:</translation> <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> uzantısını kullanarak bağlan</translation> <translation id="6710213216561001401">Önceki</translation> -<translation id="6716704051134091292">PDF Dönüştürücü</translation> <translation id="6718273304615422081">Sıkıştırılıyor...</translation> <translation id="671928215901716392">Kilit ekranı</translation> <translation id="67211069045302358">Bu sitenin ayarları sıfırlansın mı?</translation> @@ -3815,7 +3813,6 @@ <translation id="6920989436227028121">Normal sekme olarak aç</translation> <translation id="6922128026973287222">Google Veri Tasarrufu'nu kullanarak verileri kaydedin ve daha hızlı göz atın. Daha fazla bilgi edinmek için tıklayın.</translation> <translation id="6923132443355966645">Kaydırma / Tıklama</translation> -<translation id="6929555043669117778">Pop-up'ları engellemeye devam et</translation> <translation id="6929835486583850209"><ph name="APP_NAME" /> uygulaması yüklenirken hata oluştu...</translation> <translation id="6930242544192836755">Süre</translation> <translation id="6934241953272494177">Medya cihazınız taranıyor... @@ -3899,6 +3896,7 @@ <translation id="7052237160939977163">Performans izleme verilerini gönder</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Engelle</translation> +<translation id="7055152154916055070">Yönlendirme engellendi:</translation> <translation id="7056526158851679338">&Cihazları Denetle</translation> <translation id="7059858479264779982">Otomatik başlatmaya ayarla</translation> <translation id="7059893117020417984">Gizli olarak göz atmak için nokta simgeli menüyü tıklayarak gizli pencere açın</translation> @@ -3925,7 +3923,6 @@ <translation id="7088434364990739311">Güncelleme denetimi başlatılamadı (hata kodu <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - ZIP dosyalarını Dosyalar uygulamasında açın ve paketleyin.</translation> <translation id="7088674813905715446">Bu cihaz, yönetici tarafından "sağlanmıyor" durumuna alınmış. Kayıt için tekrar etkinleştirmek üzere lütfen yöneticinizden cihazı bekleme durumuna almasını isteyin.</translation> -<translation id="7092106376816104">Pop-up istisnaları</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921"><ph name="HOSTNAMES" /> adlı cihazlarla veri alışverişi</translation> <translation id="7096406577040705016">Tam Ekran Büyüteci aç/kapat</translation> @@ -4145,7 +4142,6 @@ <translation id="744341768939279100">Yeni profil oluştur</translation> <translation id="7444726222535375658">Hangouts Meet'e devam et</translation> <translation id="7444983668544353857"><ph name="NETWORKDEVICE" /> ağ cihazını devre dışı bırak</translation> -<translation id="7445682342344043969">Pop-up'lar engellendi</translation> <translation id="7453008956351770337">Bu yazıcıyı seçerek aşağıdaki uzantının yazıcınıza erişmesine izin verirsiniz:</translation> <translation id="7453467225369441013">Çoğu sitedeki oturumunuz kapatılır. Google Hesabınızdaki oturumunuz kapatılmaz.</translation> <translation id="7456142309650173560">geliştirici</translation> @@ -4264,6 +4260,7 @@ <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" cihazına bağlanıyor</translation> <translation id="7622114377921274169">Şarj oluyor.</translation> <translation id="7624337243375417909">caps lock kapalı</translation> +<translation id="7625568159987162309">İzinleri ve siteler arasında depolanan verileri göster</translation> <translation id="7627790789328695202">Hata! <ph name="FILE_NAME" /> zaten mevcut. Yeniden adlandırın ve tekrar deneyin.</translation> <translation id="7628127343934101653">PDF dosyalarını varsayılan PDF görüntüleyici uygulamasında aç.</translation> <translation id="7629827748548208700">Sekme: <ph name="TAB_NAME" /></translation> @@ -4397,9 +4394,9 @@ <ph name="LIST_ITEM" />OS dosyaları üzerinde değişiklik yapabilmeniz için roots doğrulamasını kaldırabilirsiniz. <ph name="LIST_ITEM" />Standart test anahtarlarını kullanarak cihaza SSH erişimini etkinleştirebilirsiniz. Bu şekilde, cihaza erişmek için <ph name="BEGIN_CODE" />'cros flash'<ph name="END_CODE" /> gibi araçları kullanabilirsiniz <ph name="LIST_ITEM" />USB sürücüsünden OS görüntüsü yükleyebilmeniz için USB'den önyüklemeyi etkinleştirebilirsiniz - <ph name="LIST_ITEM" />Cihaza SSH ile manuel olarak bağlanabilmek hem dev hem de sistem kök girişi şifresini özel bir değere ayarlayabilirsiniz + <ph name="LIST_ITEM" />Cihaza SSH ile manuel olarak bağlanabilmek için hem dev hem de sistem kök girişi şifresini özel bir değere ayarlayabilirsiniz <ph name="END_LIST" /> - <ph name="BR" />Etkinleştirildiğinde, kuruluş tarafından yönetilen bir cihazda powerwash veya veri temizleme işlemleri gerçekleştirildikten sonra bile çoğu hata ayıklama özelliği etkin olarak kalmaya devam eder. Tüm hata ayıklama özelliklerini tamamen devre dışı bırakmak için Chrome OS kurtarma sürecini uygulayın (https://support.google.com/chromebook/answer/1080595). + <ph name="BR" />Etkinleştirildiğinde, kuruluş tarafından yönetilen bir cihazda powerwash veya veri temizleme işlemleri gerçekleştirildikten sonra bile çoğu hata ayıklama özelliği etkin olarak kalmaya devam eder. Tüm hata ayıklama özelliklerini tamamen devre dışı bırakmak için Chrome OS kurtarma işlemini uygulayın (https://support.google.com/chromebook/answer/1080595). <ph name="BR" /> <ph name="BR" /> Hata ayıklama özellikleriyle ilgili daha fazla bilgi için şu adrese bakın:<ph name="BR" /> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Başlığa göre yeniden sırala</translation> <translation id="8068253693380742035">Oturum açmak için dokunun</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Linux Dosyaları</translation> <translation id="8071432093239591881">Resim olarak yazdır</translation> <translation id="8072988827236813198">Sekmeleri Sabitle</translation> <translation id="8074127646604999664">Son kapatılan sitelerin veri gönderme ve alma işlemini bitirmesine izin ver</translation> <translation id="8075191520954018715">Bellek durumu</translation> +<translation id="8076492880354921740">Sekmeler</translation> <translation id="8076835018653442223">Cihazınızdaki yerel dosyalara erişim, yöneticiniz tarafından devre dışı bırakıldı</translation> <translation id="8077684120002777443">Kullanıcı adı (ör. kullanıcı@example.com)</translation> <translation id="8077816382010018681">QU Özelliği ile ilgili bildirimin başlığı burada gösterilir</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Hiçbir hedef bulunamadı</translation> <translation id="8569764466147087991">Açılacak dosyayı seçin</translation> <translation id="8571213806525832805">Son 4 hafta</translation> -<translation id="8571613743082299268">Şu web sitesine yönlendirme engellendi:</translation> <translation id="8574990355410201600"><ph name="HOST" /> sitesinde sese her zaman izin ver</translation> <translation id="8578639784464423491">99 harften uzun olamaz</translation> <translation id="8579285237314169903"><ph name="NUMBER_OF_FILES" /> öğe senkronize ediliyor...</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">Düzenle</translation> <translation id="9066782832737749352">Metin-Konuşma</translation> <translation id="9070219033670098627">Kişi değiştir</translation> -<translation id="907148966137935206">Hiçbir sitede pop-up'lara izin verme (önerilen)</translation> <translation id="9071637495340542136"><ph name="APP_NAME" /> yükleniyor...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" />, kaydettiğiniz şifrelerle uygun sitelerde ve uygulamalarda otomatik olarak oturum açmanızı sağlar.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 0c4bb52..fc6434db 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Додати цю сторінку до закладок...</translation> <translation id="1047956942837015229">Видалення елементів (<ph name="COUNT" />)…</translation> <translation id="1048286738600630630">Дисплеї</translation> +<translation id="1049743911850919806">Анонімний перегляд</translation> <translation id="1049795001945932310">&Налаштування мови</translation> <translation id="1049926623896334335">Документ Word</translation> <translation id="1054153489933238809">Відкрити оригінальне зображення в новій вкладці</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">Сервер синхронізації зайнятий. Спробуйте ще раз пізніше.</translation> <translation id="1784849162047402014">На диску пристрою мало вільного місця</translation> <translation id="1786636458339910689">Спільні Диски</translation> -<translation id="1789575671122666129">Спливаючі вікна</translation> <translation id="1792619191750875668">Розширений дисплей</translation> <translation id="1793119619663054394">Видалити профіль "<ph name="PROFILE_NAME" />" і всі пов’язані з ним дані Chrome із цього комп’ютера? Цю дію не можна відмінити.</translation> <translation id="1794791083288629568">Надіслати відгук, щоб допомогти нам вирішити цю проблему.</translation> @@ -652,12 +652,14 @@ <translation id="1983959805486816857">Створивши нового контрольованого користувача, ви можете будь-коли керувати його налаштуваннями з будь-якого пристрою на сторінці <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Закріпити вікно праворуч</translation> <translation id="1987139229093034863">Змінити користувача.</translation> +<translation id="1987317783729300807">Облікові записи</translation> <translation id="1989112275319619282">Переглянути</translation> <translation id="1992397118740194946">Не налаштовано</translation> <translation id="1994173015038366702">URL-адреса сайту</translation> <translation id="1997484222658892567">Сайт <ph name="URL" /> хоче постійно зберігати великий обсяг даних на вашому локальному комп’ютері</translation> <translation id="1997616988432401742">Ваші сертифікати</translation> <translation id="1999115740519098545">Після запуску</translation> +<translation id="2001796770603320721">Керувати на Диску</translation> <translation id="2006638907958895361">Відкрити посилання в додатку <ph name="APP" /></translation> <translation id="2007404777272201486">Повідомити про проблему...</translation> <translation id="2016430552235416146">Традиційне</translation> @@ -753,7 +755,6 @@ <translation id="2151576029659734873">Введено недійсний індекс вкладки.</translation> <translation id="2154484045852737596">Редагувати картку</translation> <translation id="2154710561487035718">Копіювати URL-адресу</translation> -<translation id="2155931291251286316">Завжди дозволяти спливаючі вікна з хосту <ph name="HOST" /></translation> <translation id="215753907730220065">Вийти з повноекранного режиму</translation> <translation id="2157875535253991059">Ця сторінка зараз у повноекранному режимі.</translation> <translation id="216169395504480358">Додати Wi-Fi...</translation> @@ -1183,7 +1184,6 @@ <translation id="2799223571221894425">Перезапустити</translation> <translation id="2803375539583399270">Введіть PIN-код</translation> <translation id="2805646850212350655">Система шифрування файлів Microsoft</translation> -<translation id="2805707493867224476">Дозволяти всім сайтам показувати спливаючі вікна</translation> <translation id="2805756323405976993">Додатки</translation> <translation id="2807517655263062534">Тут відображаються завантажені файли</translation> <translation id="2809586584051668049">і ще <ph name="NUMBER_ADDITIONAL_DISABLED" /></translation> @@ -1617,7 +1617,6 @@ <translation id="347919930506963698">Отримайте ще більше від Chrome</translation> <translation id="3479552764303398839">Не зараз</translation> <translation id="3480892288821151001">Закріпити вікно ліворуч</translation> -<translation id="3481915276125965083">На цій сторінці заблоковано такі спливаючі вікна:</translation> <translation id="3484273680291419129">Вилучення зловмисного програмного забезпечення…</translation> <translation id="3484869148456018791">Отримати новий сертифікат</translation> <translation id="3487007233252413104">анонімна функція</translation> @@ -1723,7 +1722,6 @@ <translation id="3637682276779847508">Вашу SIM-карту буде назавжди заблоковано, якщо ви не введете правильний ключ для розблокування PIN-коду.</translation> <translation id="363903084947548957">Наступний спосіб введення</translation> <translation id="3640214691812501263">Додати розширення <ph name="EXTENSION_NAME" /> для користувача <ph name="USER_NAME" />?</translation> -<translation id="3643225892037417978">Гості не можуть керувати розширеннями. Увійдіть, щоб керувати розширеннями.</translation> <translation id="3644896802912593514">Ширина</translation> <translation id="3646789916214779970">Установити тему за умовчанням</translation> <translation id="3648348069317717750">Виявлено пристрій <ph name="USB_DEVICE_NAME" /></translation> @@ -2065,7 +2063,6 @@ <translation id="4172051516777682613">Завжди показувати</translation> <translation id="4175737294868205930">Постійна пам’ять</translation> <translation id="4176463684765177261">Вимкнено</translation> -<translation id="4180684688621252156">Служба друку</translation> <translation id="4180788401304023883">Видалити сертифікат Центру сертифікації "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Мови</translation> @@ -2091,6 +2088,7 @@ <translation id="42137655013211669">Сервер заборонив доступ до цього ресурсу.</translation> <translation id="4215350869199060536">Помилка. Заборонені символи в імені.</translation> <translation id="4215448920900139318">Створюється резервна копія: <ph name="FILE_COUNT" /></translation> +<translation id="4217571870635786043">Диктування</translation> <translation id="4225397296022057997">На всіх сайтах</translation> <translation id="4235200303672858594">Увесь екран</translation> <translation id="4235813040357936597">Додати обліковий запис у профіль <ph name="PROFILE_NAME" /></translation> @@ -2203,6 +2201,7 @@ <translation id="4425149324548788773">Мій диск</translation> <translation id="4430019312045809116">Гучність</translation> <translation id="4430369329743628066">Закладку додано</translation> +<translation id="4434045419905280838">Спливаючі вікна й переспрямуван.</translation> <translation id="443454694385851356">Застарілий (небезпечно)</translation> <translation id="443464694732789311">Продовжити</translation> <translation id="443475966875174318">Оновити або видалити несумісні додатки</translation> @@ -3273,6 +3272,7 @@ <translation id="6075907793831890935">Обмінюватися даними з пристроєм із назвою <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Додати цей знімок екрана</translation> <translation id="6077131872140550515">Вилучити з рекомендованих</translation> +<translation id="6078323886959318429">Додати ярлик</translation> <translation id="6078752646384677957">Перевірте рівень мікрофона та звуку.</translation> <translation id="6080515710685820702">Користуєтеся комп’ютером спільно з іншими? Відкрийте вікно в режимі анонімного перегляду.</translation> <translation id="6080689532560039067">Перевірте час системи</translation> @@ -3481,7 +3481,6 @@ <translation id="6406303162637086258">Імітувати перезапуск веб-переглядача</translation> <translation id="6406506848690869874">Синхронізація</translation> <translation id="6408118934673775994">Читати та змінювати свої дані на веб-сайтах <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> і <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Спливаючі вікна</translation> <translation id="6410257289063177456">Файли зображень</translation> <translation id="6410328738210026208">Змінити версію й виконати Powerwash</translation> <translation id="6410668567036790476">Додати пошукову систему</translation> @@ -3689,7 +3688,6 @@ <translation id="6708242697268981054">Джерело:</translation> <translation id="6709357832553498500">Під’єднатися за допомогою розширення <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Попереднє</translation> -<translation id="6716704051134091292">Конвертер файлів PDF</translation> <translation id="6718273304615422081">Архівування…</translation> <translation id="671928215901716392">Блокування екрана</translation> <translation id="67211069045302358">Скинути налаштування цього сайту?</translation> @@ -3814,7 +3812,6 @@ <translation id="6920989436227028121">Відкрити як звичайну вкладку</translation> <translation id="6922128026973287222">Зменшіть обсяг завантажених даних і відкривайте веб-сторінки швидше з Google Заощадження трафіку. Натисніть, щоб дізнатися більше.</translation> <translation id="6923132443355966645">Прокрутіть або натисніть</translation> -<translation id="6929555043669117778">Продовжити блокування спливаючих вікон</translation> <translation id="6929835486583850209">Не вдалося встановити додаток <ph name="APP_NAME" />…</translation> <translation id="6930242544192836755">Тривалість</translation> <translation id="6934241953272494177">Сканування носія… @@ -3898,6 +3895,7 @@ <translation id="7052237160939977163">Надсилати дані відстеження ефективності</translation> <translation id="7052633198403197513">F1</translation> <translation id="7053983685419859001">Блокувати</translation> +<translation id="7055152154916055070">Переспрямування заблоковано:</translation> <translation id="7056526158851679338">&Перевірити пристрої</translation> <translation id="7059858479264779982">Увімкнути автозапуск</translation> <translation id="7059893117020417984">Щоб переглядати веб-сторінки конфіденційно, натисніть значок меню з трьома крапками й відкрийте вікно в режимі анонімного перегляду</translation> @@ -3924,7 +3922,6 @@ <translation id="7088434364990739311">Не вдалося запустити перевірку наявності оновлень (код помилки: <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver – відкривайте та пакуйте ZIP-файли в додатку Файли.</translation> <translation id="7088674813905715446">Адміністратор активував на цьому пристрої стан деініціалізації. Щоб увімкнути його для реєстрації, попросіть адміністратора перевести пристрій у стан очікування.</translation> -<translation id="7092106376816104">Винятки для спливаючих вікон</translation> <translation id="7093434536568905704">Тема GTK+</translation> <translation id="7093866338626856921">Обмінюватися даними з пристроями з назвами: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Перемикає лупу для всього екрана</translation> @@ -4144,7 +4141,6 @@ <translation id="744341768939279100">Створити новий профіль</translation> <translation id="7444726222535375658">Перейти в Hangouts Meet</translation> <translation id="7444983668544353857">Вимкнути <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Спливаючі вікна заблоковано</translation> <translation id="7453008956351770337">Вибираючи цей принтер, ви надаєте доступ до свого принтера такому розширенню:</translation> <translation id="7453467225369441013">Ви вийдете з більшості сайтів, але не вийдете з облікового запису Google.</translation> <translation id="7456142309650173560">версія для розробників</translation> @@ -4263,6 +4259,7 @@ <translation id="7617366389578322136">Під’єднання до пристрою <ph name="DEVICE_NAME" /></translation> <translation id="7622114377921274169">Заряджається.</translation> <translation id="7624337243375417909">Caps Lock вимкнено</translation> +<translation id="7625568159987162309">Переглянути дозволи й дані, збережені на сайтах</translation> <translation id="7627790789328695202">Файл "<ph name="FILE_NAME" />" вже існує. Перейменуйте його та повторіть спробу.</translation> <translation id="7628127343934101653">Відкривати файли PDF в додатку для перегляду файлів PDF за умовчанням.</translation> <translation id="7629827748548208700">Вкладка: <ph name="TAB_NAME" /></translation> @@ -4585,10 +4582,12 @@ <translation id="806812017500012252">Переупорядкувати за назвою</translation> <translation id="8068253693380742035">Торкніться, щоб увійти</translation> <translation id="8069615408251337349">Google Cloud Print</translation> +<translation id="806972267388474605">Файли Linux</translation> <translation id="8071432093239591881">Друкувати як зображення</translation> <translation id="8072988827236813198">Закріпити вкладки</translation> <translation id="8074127646604999664">Дозволити нещодавно закритим сайтам завершувати надсилання й отримання даних</translation> <translation id="8075191520954018715">Стан пам’яті</translation> +<translation id="8076492880354921740">Вкладки</translation> <translation id="8076835018653442223">Адміністратор вимкнув доступ до локальних файлів на вашому пристрої</translation> <translation id="8077684120002777443">Ім’я користувача (наприклад, imyakorystuvacha@pryklad.com)</translation> <translation id="8077816382010018681">Заголовок сповіщення функції швидкого розблокування</translation> @@ -4873,7 +4872,6 @@ <translation id="8569682776816196752">Не знайдено жодного місця призначення</translation> <translation id="8569764466147087991">Виберіть файл, який потрібно відкрити</translation> <translation id="8571213806525832805">Останні 4 тижні</translation> -<translation id="8571613743082299268">Заблоковано переспрямування на сайт</translation> <translation id="8574990355410201600">Завжди дозволяти звук на сторінці <ph name="HOST" /></translation> <translation id="8578639784464423491">Не може перевищувати 99 літер</translation> <translation id="8579285237314169903">Синхронізація стількох елементів: <ph name="NUMBER_OF_FILES" />…</translation> @@ -5205,7 +5203,6 @@ <translation id="9065203028668620118">Редагувати</translation> <translation id="9066782832737749352">Синтез мовлення</translation> <translation id="9070219033670098627">Змінити користувача</translation> -<translation id="907148966137935206">Заборонити всім сайтам відображати спливаючі вікна (рекомендовано)</translation> <translation id="9071637495340542136">Встановлюється <ph name="APP_NAME" />…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> зберігає ваші паролі й автоматично входить в облікові записи на сайтах і в додатках.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index e2f64c8..712dd5a 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">Đánh dấu Trang Này...</translation> <translation id="1047956942837015229">Đang xóa <ph name="COUNT" /> mục...</translation> <translation id="1048286738600630630">Hiển thị</translation> +<translation id="1049743911850919806">Ẩn danh</translation> <translation id="1049795001945932310">&Cài đặt ngôn ngữ</translation> <translation id="1049926623896334335">Tài liệu Word</translation> <translation id="1054153489933238809">Mở &hình ảnh gốc trong tab mới</translation> @@ -530,7 +531,6 @@ <translation id="1782924894173027610">Máy chủ đồng bộ hóa đang bận, vui lòng thử lại sau.</translation> <translation id="1784849162047402014">Thiết bị sắp hết dung lượng đĩa</translation> <translation id="1786636458339910689">Drive Nhóm</translation> -<translation id="1789575671122666129">Cửa sổ bật lên</translation> <translation id="1792619191750875668">Màn hình mở rộng</translation> <translation id="1793119619663054394">Bạn có chắc chắn muốn xóa "<ph name="PROFILE_NAME" />" và tất cả dữ liệu Chrome được liên kết khỏi máy tính này không? Thao tác này không thể hoàn tác.</translation> <translation id="1794791083288629568">Gửi phản hồi để giúp chúng tôi khắc phục sự cố này.</translation> @@ -653,6 +653,7 @@ <translation id="1983959805486816857">Sau khi tạo người dùng được giám sát mới, bạn có thể quản lý các cài đặt bất cứ lúc nào từ mọi thiết bị tại <ph name="MANAGEMENT_URL" />.</translation> <translation id="1984642098429648350">Gắn cửa sổ về phía bên phải</translation> <translation id="1987139229093034863">Chuyển sang người dùng khác.</translation> +<translation id="1987317783729300807">Tài khoản</translation> <translation id="1989112275319619282">Duyệt qua</translation> <translation id="1992397118740194946">Chưa đặt</translation> <translation id="1994173015038366702">URL trang web</translation> @@ -754,7 +755,6 @@ <translation id="2151576029659734873">Chỉ mục tab không hợp lệ được nhập.</translation> <translation id="2154484045852737596">Chỉnh sửa thẻ</translation> <translation id="2154710561487035718">Sao chép URL</translation> -<translation id="2155931291251286316">Luôn cho phép cửa sổ bật lên từ <ph name="HOST" /></translation> <translation id="215753907730220065">Thoát khỏi Chế độ Toàn màn hình</translation> <translation id="2157875535253991059">Trang này hiện ở chế độ toàn màn hình.</translation> <translation id="216169395504480358">Thêm Wi-Fi...</translation> @@ -1184,7 +1184,6 @@ <translation id="2799223571221894425">Chạy lại</translation> <translation id="2803375539583399270">Nhập mã PIN</translation> <translation id="2805646850212350655">Hệ thống Tệp Mã hóa của Microsoft</translation> -<translation id="2805707493867224476">Cho phép tất cả các trang web hiển thị cửa sổ bật lên</translation> <translation id="2805756323405976993">Ứng dụng</translation> <translation id="2807517655263062534">Các tệp bạn tải xuống sẽ xuất hiện ở đây</translation> <translation id="2809586584051668049">và <ph name="NUMBER_ADDITIONAL_DISABLED" /> mục khác</translation> @@ -1618,7 +1617,6 @@ <translation id="347919930506963698">Khai thác nhiều hơn nữa từ Chrome</translation> <translation id="3479552764303398839">Không phải bây giờ</translation> <translation id="3480892288821151001">Gắn cửa sổ về phía bên trái</translation> -<translation id="3481915276125965083">Các cửa sổ bật lên sau đã bị chặn trên trang này:</translation> <translation id="3484273680291419129">Đang xóa phần mềm độc hại...</translation> <translation id="3484869148456018791">Nhận chứng chỉ mới</translation> <translation id="3487007233252413104">chức năng ẩn danh</translation> @@ -1724,7 +1722,6 @@ <translation id="3637682276779847508">Thẻ SIM của bạn sẽ bị vô hiệu hóa vĩnh viễn nếu bạn không thể nhập Khóa mở khóa mã PIN chính xác.</translation> <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="3643225892037417978">Người dùng khách không thể sử dụng tính năng quản lý tiện ích. Vui lòng đăng nhập để quản lý các tiện ích.</translation> <translation id="3644896802912593514">Chiều rộng</translation> <translation id="3646789916214779970">Đặt lại về chủ đề mặc định</translation> <translation id="3648348069317717750">Đã phát hiện thấy <ph name="USB_DEVICE_NAME" /></translation> @@ -2066,7 +2063,6 @@ <translation id="4172051516777682613">Luôn hiển thị</translation> <translation id="4175737294868205930">Bộ nhớ liên tục</translation> <translation id="4176463684765177261">Đã bị vô hiệu</translation> -<translation id="4180684688621252156">Dịch vụ in</translation> <translation id="4180788401304023883">Xóa chứng chỉ CA "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">Ngôn ngữ</translation> @@ -3274,6 +3270,7 @@ <translation id="6075907793831890935">Trao đổi dữ liệu với thiết bị có tên <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Bao gồm ảnh chụp màn hình này</translation> <translation id="6077131872140550515">Xóa khỏi ưa thích</translation> +<translation id="6078323886959318429">Thêm lối tắt</translation> <translation id="6078752646384677957">Vui lòng kiểm tra micrô và mức âm thanh của bạn.</translation> <translation id="6080515710685820702">Bạn đang sử dụng máy tính dùng chung? Hãy thử mở cửa sổ ẩn danh.</translation> <translation id="6080689532560039067">Kiểm tra giờ hệ thống của bạn</translation> @@ -3482,7 +3479,6 @@ <translation id="6406303162637086258">Mô phỏng khởi động lại trình duyệt</translation> <translation id="6406506848690869874">Đồng bộ hóa</translation> <translation id="6408118934673775994">Đọc và thay đổi dữ liệu của bạn trên <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> và <ph name="WEBSITE_3" /></translation> -<translation id="6409731863280057959">Cửa sổ bật lên</translation> <translation id="6410257289063177456">Tệp hình ảnh</translation> <translation id="6410328738210026208">Thay đổi kênh và Powerwash</translation> <translation id="6410668567036790476">Thêm công cụ tìm kiếm</translation> @@ -3690,7 +3686,6 @@ <translation id="6708242697268981054">Bản gốc:</translation> <translation id="6709357832553498500">Kết nối bằng <ph name="EXTENSIONNAME" /></translation> <translation id="6710213216561001401">Trước đó</translation> -<translation id="6716704051134091292">Bộ chuyển đổi PDF</translation> <translation id="6718273304615422081">Đang nén...</translation> <translation id="671928215901716392">Khóa màn hình</translation> <translation id="67211069045302358">Đặt lại cài đặt cho trang web này?</translation> @@ -3815,7 +3810,6 @@ <translation id="6920989436227028121">Mở dưới dạng tab thông thường</translation> <translation id="6922128026973287222">Tiết kiệm dữ liệu và duyệt web nhanh hơn với Trình tiết kiệm dữ liệu của Google. Nhấp để tìm hiểu thêm.</translation> <translation id="6923132443355966645">Cuộn / Nhấp</translation> -<translation id="6929555043669117778">Tiếp tục chặn cửa sổ bật lên</translation> <translation id="6929835486583850209">Lỗi khi cài đặt <ph name="APP_NAME" />...</translation> <translation id="6930242544192836755">Thời lượng</translation> <translation id="6934241953272494177">Đang quét thiết bị truyền thông của bạn... @@ -3925,7 +3919,6 @@ <translation id="7088434364990739311">Không thể bắt đầu kiểm tra cập nhật (mã lỗi <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - Mở và nén tệp ZIP trong ứng dụng Tệp.</translation> <translation id="7088674813905715446">Thiết bị này đã được quản trị viên đặt sang trạng thái hủy cấp phép. Để cho phép đăng ký thiết bị, quản trị viên phải đặt thiết bị về trạng thái đang chờ xử lý.</translation> -<translation id="7092106376816104">Ngoại lệ cho cửa sổ bật lên</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">Trao đổi dữ liệu với thiết bị có tên: <ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">Bật/tắt tính năng Phóng to toàn bộ màn hình</translation> @@ -4145,7 +4138,6 @@ <translation id="744341768939279100">Tạo cấu hình mới</translation> <translation id="7444726222535375658">Tiếp tục với Hangouts Meet</translation> <translation id="7444983668544353857">Vô hiệu hóa <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">Đã chặn cửa sổ bật lên</translation> <translation id="7453008956351770337">Bằng cách chọn máy in này, bạn sẽ cấp cho tiện ích sau quyền truy cập vào máy in của mình:</translation> <translation id="7453467225369441013">Đăng xuất bạn khỏi hầu hết các trang web. Bạn sẽ không bị đăng xuất khỏi Tài khoản Google của mình.</translation> <translation id="7456142309650173560">nhà phát triển</translation> @@ -4590,6 +4582,7 @@ <translation id="8072988827236813198">Ghim các tab</translation> <translation id="8074127646604999664">Cho phép các trang web đóng gần đây hoàn tất gửi và nhận dữ liệu</translation> <translation id="8075191520954018715">Trạng thái bộ nhớ</translation> +<translation id="8076492880354921740">Tab</translation> <translation id="8076835018653442223">Quản trị viên đã vô hiệu hóa quyền truy cập vào tệp cục bộ trên thiết bị của bạn</translation> <translation id="8077684120002777443">Tên người dùng (ví dụ: user@example.com)</translation> <translation id="8077816382010018681">Tiêu đề thông báo tính năng QU tại đây</translation> @@ -4874,7 +4867,6 @@ <translation id="8569682776816196752">Không tìm thấy điểm đến nào</translation> <translation id="8569764466147087991">Chọn tệp để mở</translation> <translation id="8571213806525832805">4 tuần qua</translation> -<translation id="8571613743082299268">Đã chặn chuyển hướng đến trang web</translation> <translation id="8574990355410201600">Luôn cho phép phát âm thanh trên <ph name="HOST" /></translation> <translation id="8578639784464423491">Không được vượt quá 99 chữ cái</translation> <translation id="8579285237314169903">Đang đồng bộ hóa <ph name="NUMBER_OF_FILES" /> mục...</translation> @@ -5206,7 +5198,6 @@ <translation id="9065203028668620118">Chỉnh sửa</translation> <translation id="9066782832737749352">Chuyển văn bản thành giọng nói</translation> <translation id="9070219033670098627">Chuyển đổi người</translation> -<translation id="907148966137935206">Không cho phép bất kỳ trang web nào hiển thị cửa sổ bật lên (nên chọn)</translation> <translation id="9071637495340542136">Đang cài đặt <ph name="APP_NAME" />...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> tự động đăng nhập bạn vào các trang web và ứng dụng đủ điều kiện bằng mật khẩu bạn đã lưu.</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 5d532d5..008f4f3 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">为此页添加书签...</translation> <translation id="1047956942837015229">正在删除<ph name="COUNT" />项内容…</translation> <translation id="1048286738600630630">显示</translation> +<translation id="1049743911850919806">隐身</translation> <translation id="1049795001945932310">语言设置(&L)</translation> <translation id="1049926623896334335">Word 文档</translation> <translation id="1054153489933238809">在新标签页中打开原始图片(&I)</translation> @@ -526,7 +527,6 @@ <translation id="1782924894173027610">同步服务器正忙,请稍后重试。</translation> <translation id="1784849162047402014">设备磁盘空间不足</translation> <translation id="1786636458339910689">团队云端硬盘</translation> -<translation id="1789575671122666129">弹出式窗口</translation> <translation id="1792619191750875668">扩展显示屏</translation> <translation id="1793119619663054394">确定要从此计算机中移除“<ph name="PROFILE_NAME" />”以及所有关联的Chrome数据吗?此操作无法撤消。</translation> <translation id="1794791083288629568">发送反馈,以协助我们解决此问题。</translation> @@ -649,6 +649,7 @@ <translation id="1983959805486816857">创建新的受监管用户后,您随时可以通过任意设备转到 <ph name="MANAGEMENT_URL" /> 管理这些设置。</translation> <translation id="1984642098429648350">将窗口固定到右侧</translation> <translation id="1987139229093034863">切换到其他用户。</translation> +<translation id="1987317783729300807">帐号</translation> <translation id="1989112275319619282">浏览</translation> <translation id="1992397118740194946">未设置</translation> <translation id="1994173015038366702">网站网址</translation> @@ -750,7 +751,6 @@ <translation id="2151576029659734873">输入的标签页索引无效。</translation> <translation id="2154484045852737596">修改支付卡</translation> <translation id="2154710561487035718">复制网址</translation> -<translation id="2155931291251286316">始终允许显示 <ph name="HOST" /> 的弹出式窗口</translation> <translation id="215753907730220065">退出全屏模式</translation> <translation id="2157875535253991059">此网页现处于全屏模式。</translation> <translation id="216169395504480358">添加 Wi-Fi...</translation> @@ -1179,7 +1179,6 @@ <translation id="2799223571221894425">重新启动</translation> <translation id="2803375539583399270">输入 PIN 码</translation> <translation id="2805646850212350655">Microsoft 加密文件系统</translation> -<translation id="2805707493867224476">允许所有网站显示弹出式窗口</translation> <translation id="2805756323405976993">应用</translation> <translation id="2807517655263062534">您下载的文件会显示在此处</translation> <translation id="2809586584051668049">及另外<ph name="NUMBER_ADDITIONAL_DISABLED" />个扩展程序</translation> @@ -1611,7 +1610,6 @@ <translation id="347919930506963698">更充分地利用 Chrome</translation> <translation id="3479552764303398839">以后再说</translation> <translation id="3480892288821151001">将窗口固定到左侧</translation> -<translation id="3481915276125965083">已拦截此网页上的下列弹出式窗口:</translation> <translation id="3484273680291419129">正在移除有害软件…</translation> <translation id="3484869148456018791">获取新的证书</translation> <translation id="3487007233252413104">匿名函数</translation> @@ -1717,7 +1715,6 @@ <translation id="3637682276779847508">如果您无法输入正确的 PIN 码解锁密钥,您的 SIM 卡将被永久停用。</translation> <translation id="363903084947548957">下一种输入法</translation> <translation id="3640214691812501263">要为<ph name="USER_NAME" />添加“<ph name="EXTENSION_NAME" />”吗?</translation> -<translation id="3643225892037417978">访客用户无法使用“扩展程序管理”功能。请登录以管理扩展程序。</translation> <translation id="3644896802912593514">宽度</translation> <translation id="3646789916214779970">重置为默认主题背景</translation> <translation id="3648348069317717750">检测到<ph name="USB_DEVICE_NAME" /></translation> @@ -1816,7 +1813,7 @@ <translation id="3786301125658655746">您处于离线状态</translation> <translation id="3788401245189148511">该扩展程序想要:</translation> <translation id="3789841737615482174">安装</translation> -<translation id="379082410132524484">您的卡片已过期</translation> +<translation id="379082410132524484">您的卡已过期</translation> <translation id="3792890930871100565">断开打印机连接</translation> <translation id="379422718204375917">使用 Smart Lock 登录您的帐号</translation> <translation id="3796648294839530037">收藏的网络:</translation> @@ -2058,7 +2055,6 @@ <translation id="4172051516777682613">一律显示</translation> <translation id="4175737294868205930">永久存储</translation> <translation id="4176463684765177261">已停用</translation> -<translation id="4180684688621252156">打印服务</translation> <translation id="4180788401304023883">要删除 CA 证书“<ph name="CERTIFICATE_NAME" />”吗?</translation> <translation id="4181602000363099176">20 倍</translation> <translation id="4181841719683918333">语言</translation> @@ -2672,7 +2668,7 @@ <translation id="5186650237607254032">更新配对手机的屏幕锁定设置,以便您在附近时系统即停用该功能。这样一来,您不仅能够更快速地为手机解锁,还能在 <ph name="DEVICE_TYPE" /> 上畅享更好的 Smart Lock 体验。</translation> <translation id="5187295959347858724">您现在已登录 <ph name="SHORT_PRODUCT_NAME" />。系统正在将您的书签、浏览记录和其他设置与您的 Google 帐号同步。</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> -<translation id="5196721203029902230">与 Google 通信,以便改进浏览服务和 Chrome</translation> +<translation id="5196721203029902230">与 Google 通信,以便改进浏览功能和 Chrome</translation> <translation id="5204967432542742771">输入密码</translation> <translation id="5206215183583316675">要删除“<ph name="CERTIFICATE_NAME" />”吗?</translation> <translation id="520621735928254154">导入证书时出现错误</translation> @@ -3260,6 +3256,7 @@ <translation id="6075907793831890935">与名为“<ph name="HOSTNAME" />”的设备交换数据</translation> <translation id="6076448957780543068">包括此屏幕截图</translation> <translation id="6077131872140550515">从首选网络列表中移除</translation> +<translation id="6078323886959318429">添加快捷方式</translation> <translation id="6078752646384677957">请检查您的麦克风和音量。</translation> <translation id="6080515710685820702">使用的是共用计算机?请尝试打开一个无痕式窗口。</translation> <translation id="6080689532560039067">检查系统时间</translation> @@ -3468,7 +3465,6 @@ <translation id="6406303162637086258">模拟浏览器重启</translation> <translation id="6406506848690869874">同步</translation> <translation id="6408118934673775994">读取和更改您在<ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />和<ph name="WEBSITE_3" />上的数据</translation> -<translation id="6409731863280057959">弹出式窗口</translation> <translation id="6410257289063177456">图片文件</translation> <translation id="6410328738210026208">变更版本并执行 Powerwash</translation> <translation id="6410668567036790476">添加搜索引擎</translation> @@ -3675,7 +3671,6 @@ <translation id="6708242697268981054">来源:</translation> <translation id="6709357832553498500">使用“<ph name="EXTENSIONNAME" />”连接</translation> <translation id="6710213216561001401">上一个</translation> -<translation id="6716704051134091292">PDF 转换器</translation> <translation id="6718273304615422081">正在压缩…</translation> <translation id="671928215901716392">锁定屏幕</translation> <translation id="67211069045302358">为此网站重置设置?</translation> @@ -3800,7 +3795,6 @@ <translation id="6920989436227028121">在常规标签页中打开</translation> <translation id="6922128026973287222">使用 Google 流量节省程序可以节省流量并加速浏览。点击此处即可了解详情。</translation> <translation id="6923132443355966645">滚动/点击</translation> -<translation id="6929555043669117778">继续拦截弹出式窗口</translation> <translation id="6929835486583850209">安装“<ph name="APP_NAME" />”时出错…</translation> <translation id="6930242544192836755">持续时间</translation> <translation id="6934241953272494177">正在扫描您的媒体设备… @@ -3910,7 +3904,6 @@ <translation id="7088434364990739311">无法启动更新检查(错误代码为 <ph name="ERROR" />)。</translation> <translation id="7088561041432335295">Zip Archiver - 在“文件”应用中打开和打包 ZIP 文件。</translation> <translation id="7088674813905715446">管理员已将该设备设置为已取消配置的状态。要让该设备能够注册,请让管理员将其设置为待处理状态。</translation> -<translation id="7092106376816104">弹出式窗口例外情况</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">与具有下列名称的设备交换数据:<ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">开启/关闭全屏放大镜</translation> @@ -4123,7 +4116,6 @@ <translation id="744341768939279100">创建新的个人资料</translation> <translation id="7444726222535375658">开始使用 Hangouts Meet</translation> <translation id="7444983668544353857">停用<ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">已拦截弹出式窗口</translation> <translation id="7453008956351770337">选择此打印机即表示您允许以下扩展程序访问您的打印机:</translation> <translation id="7453467225369441013">您会从大多数网站退出,但不会退出自己的 Google 帐号。</translation> <translation id="7456142309650173560">开发者版本</translation> @@ -4566,6 +4558,7 @@ <translation id="8072988827236813198">固定标签页</translation> <translation id="8074127646604999664">允许最近关闭的网站完成数据收发操作</translation> <translation id="8075191520954018715">内存状态</translation> +<translation id="8076492880354921740">标签页</translation> <translation id="8076835018653442223">您的管理员已禁止访问您设备上的本地文件</translation> <translation id="8077684120002777443">用户名(例如 user@example.com)</translation> <translation id="8077816382010018681">此处为快速解锁功能通知标题</translation> @@ -4850,7 +4843,6 @@ <translation id="8569682776816196752">未找到任何目标</translation> <translation id="8569764466147087991">选择要打开的文件</translation> <translation id="8571213806525832805">近 4 周</translation> -<translation id="8571613743082299268">已被阻止重定向到以下网站</translation> <translation id="8574990355410201600">始终允许 <ph name="HOST" /> 播放声音</translation> <translation id="8578639784464423491">不能超过 99 个字母</translation> <translation id="8579285237314169903">正在同步 <ph name="NUMBER_OF_FILES" /> 个文件…</translation> @@ -5119,7 +5111,7 @@ <translation id="8978154919215542464">开启 - 同步所有内容</translation> <translation id="897939795688207351">在 <ph name="ORIGIN" /> 上</translation> <translation id="8980951173413349704"><ph name="WINDOW_TITLE" /> - 已崩溃</translation> -<translation id="8983677657449185470">帮助我们改进安全浏览服务</translation> +<translation id="8983677657449185470">帮助我们改进安全浏览功能</translation> <translation id="8986362086234534611">不保存</translation> <translation id="8986494364107987395">将使用情况统计信息和崩溃报告自动发送给 Google</translation> <translation id="8987927404178983737">月</translation> @@ -5182,7 +5174,6 @@ <translation id="9065203028668620118">修改</translation> <translation id="9066782832737749352">文字转语音</translation> <translation id="9070219033670098627">切换用户</translation> -<translation id="907148966137935206">不允许任何网站显示弹出式窗口(推荐)</translation> <translation id="9071637495340542136">正在安装“<ph name="APP_NAME" />”…</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> 会使用您保存的密码让您自动登录到符合条件的网站和应用。</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index 81c6d9ac..902b2fb 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -34,6 +34,7 @@ <translation id="1047726139967079566">把此頁加入書籤...</translation> <translation id="1047956942837015229">正在刪除 <ph name="COUNT" /> 個項目...</translation> <translation id="1048286738600630630">顯示</translation> +<translation id="1049743911850919806">無痕模式</translation> <translation id="1049795001945932310">語言設定(&L)</translation> <translation id="1049926623896334335">Word 文件</translation> <translation id="1054153489933238809">在新分頁中開啟原始圖片(&I)</translation> @@ -529,7 +530,6 @@ <translation id="1782924894173027610">同步伺服器忙碌中,請稍後再試。</translation> <translation id="1784849162047402014">裝置磁碟空間即將用盡</translation> <translation id="1786636458339910689">小組雲端硬碟</translation> -<translation id="1789575671122666129">彈出式視窗</translation> <translation id="1792619191750875668">擴充顯示畫面</translation> <translation id="1793119619663054394">你確定要將「<ph name="PROFILE_NAME" />」和所有相關聯的 Chrome 資料從這台電腦移除嗎?這項操作執行後無法復原。</translation> <translation id="1794791083288629568">提供意見,協助我們修正這個問題。</translation> @@ -652,6 +652,7 @@ <translation id="1983959805486816857">建立新的受監管使用者之後,你隨時都可以透過位於 <ph name="MANAGEMENT_URL" /> 的裝置來管理設定。</translation> <translation id="1984642098429648350">靠右固定視窗</translation> <translation id="1987139229093034863">切換至其他使用者。</translation> +<translation id="1987317783729300807">帳戶</translation> <translation id="1989112275319619282">瀏覽</translation> <translation id="1992397118740194946">尚未設定</translation> <translation id="1994173015038366702">網站網址</translation> @@ -753,7 +754,6 @@ <translation id="2151576029659734873">輸入的分頁索引無效。</translation> <translation id="2154484045852737596">編輯卡片資訊</translation> <translation id="2154710561487035718">複製網址</translation> -<translation id="2155931291251286316">一律顯示 <ph name="HOST" /> 的彈出式視窗</translation> <translation id="215753907730220065">結束全螢幕</translation> <translation id="2157875535253991059">這個頁面已顯示為全螢幕。</translation> <translation id="216169395504480358">新增 WiFi...</translation> @@ -1183,7 +1183,6 @@ <translation id="2799223571221894425">重新啟動</translation> <translation id="2803375539583399270">輸入 PIN</translation> <translation id="2805646850212350655">Microsoft 加密檔案系統</translation> -<translation id="2805707493867224476">允許所有網站顯示彈出式視窗</translation> <translation id="2805756323405976993">應用程式</translation> <translation id="2807517655263062534">你下載的檔案會顯示在這裡</translation> <translation id="2809586584051668049">和另外 <ph name="NUMBER_ADDITIONAL_DISABLED" /> 個</translation> @@ -1617,7 +1616,6 @@ <translation id="347919930506963698">讓 Chrome 發揮更大的效益</translation> <translation id="3479552764303398839">現在不要</translation> <translation id="3480892288821151001">靠左固定視窗</translation> -<translation id="3481915276125965083">系統已封鎖此網頁的下列彈出式視窗:</translation> <translation id="3484273680291419129">正在移除有害軟體...</translation> <translation id="3484869148456018791">取得新憑證</translation> <translation id="3487007233252413104">匿名函式</translation> @@ -1723,7 +1721,6 @@ <translation id="3637682276779847508">如果無法輸入正確的 PIN 解鎖金鑰,SIM 卡會遭到永久停用。</translation> <translation id="363903084947548957">下一個輸入法</translation> <translation id="3640214691812501263">為<ph name="USER_NAME" />新增「<ph name="EXTENSION_NAME" />」?</translation> -<translation id="3643225892037417978">訪客使用者無法使用擴充功能管理功能。如要管理擴充功能,請登入帳戶。</translation> <translation id="3644896802912593514">寬度</translation> <translation id="3646789916214779970">重設為預設主題</translation> <translation id="3648348069317717750">偵測到 <ph name="USB_DEVICE_NAME" /></translation> @@ -2064,7 +2061,6 @@ <translation id="4172051516777682613">一律顯示</translation> <translation id="4175737294868205930">永久儲存空間</translation> <translation id="4176463684765177261">已停用</translation> -<translation id="4180684688621252156">列印服務</translation> <translation id="4180788401304023883">刪除憑證授權單位(CA) 的「<ph name="CERTIFICATE_NAME" />」憑證?</translation> <translation id="4181602000363099176">20x</translation> <translation id="4181841719683918333">語言</translation> @@ -3271,6 +3267,7 @@ <translation id="6075907793831890935">與名稱為 <ph name="HOSTNAME" /> 的裝置交換資料</translation> <translation id="6076448957780543068">包含這個螢幕擷取畫面</translation> <translation id="6077131872140550515">從慣用網路移除</translation> +<translation id="6078323886959318429">新增捷徑</translation> <translation id="6078752646384677957">請檢查麥克風和音量。</translation> <translation id="6080515710685820702">你是與其他人共用電腦嗎?試試使用無痕式視窗。</translation> <translation id="6080689532560039067">請檢查你的系統時間</translation> @@ -3479,7 +3476,6 @@ <translation id="6406303162637086258">模擬瀏覽器重新啟動</translation> <translation id="6406506848690869874">同步</translation> <translation id="6408118934673775994">讀取及變更你在 <ph name="WEBSITE_1" />、<ph name="WEBSITE_2" /> 和 <ph name="WEBSITE_3" /> 網站上的資料</translation> -<translation id="6409731863280057959">彈出式視窗</translation> <translation id="6410257289063177456">圖片檔</translation> <translation id="6410328738210026208">變更版本並執行 Powerwash</translation> <translation id="6410668567036790476">新增搜尋引擎</translation> @@ -3686,7 +3682,6 @@ <translation id="6708242697268981054">來源:</translation> <translation id="6709357832553498500">使用「<ph name="EXTENSIONNAME" />」連線</translation> <translation id="6710213216561001401">返回</translation> -<translation id="6716704051134091292">PDF 轉換工具</translation> <translation id="6718273304615422081">壓縮中...</translation> <translation id="671928215901716392">鎖定螢幕</translation> <translation id="67211069045302358">確定要重設這個網站的設定嗎?</translation> @@ -3811,7 +3806,6 @@ <translation id="6920989436227028121">在一般分頁中開啟</translation> <translation id="6922128026973287222">使用 Google Data Saver 不僅能節約數據流量,還可讓您享有更快速的瀏覽體驗。按一下即可瞭解詳情。</translation> <translation id="6923132443355966645">捲動/點選</translation> -<translation id="6929555043669117778">繼續封鎖彈出式視窗</translation> <translation id="6929835486583850209">安裝「<ph name="APP_NAME" />」時發生錯誤...</translation> <translation id="6930242544192836755">持續時間</translation> <translation id="6934241953272494177">正在掃描你的媒體裝置... @@ -3921,7 +3915,6 @@ <translation id="7088434364990739311">無法啟動更新檢查 (錯誤代碼 <ph name="ERROR" />)。</translation> <translation id="7088561041432335295">Zip 封存工具 - 在「檔案」應用程式中開啟及封裝 ZIP 檔案。</translation> <translation id="7088674813905715446">管理員已將這個裝置設為取消佈建狀態。如要讓裝置符合註冊資格,請要求你的管理員將裝置設為待處理狀態。</translation> -<translation id="7092106376816104">彈出式視窗例外</translation> <translation id="7093434536568905704">GTK+</translation> <translation id="7093866338626856921">與下列名稱的裝置交換資料:<ph name="HOSTNAMES" /></translation> <translation id="7096406577040705016">切換全螢幕放大鏡</translation> @@ -4139,7 +4132,6 @@ <translation id="744341768939279100">建立新的設定檔</translation> <translation id="7444726222535375658">繼續使用 Hangouts Meet</translation> <translation id="7444983668544353857">停用 <ph name="NETWORKDEVICE" /></translation> -<translation id="7445682342344043969">已封鎖彈出式視窗</translation> <translation id="7453008956351770337">選取這部印表機,即表示您同意授權下列擴充功能存取您的印表機:</translation> <translation id="7453467225369441013">你會從大多數網站登出,但不會因此登出 Google 帳戶。</translation> <translation id="7456142309650173560">開發人員版</translation> @@ -4583,6 +4575,7 @@ <translation id="8072988827236813198">固定分頁</translation> <translation id="8074127646604999664">允許最近關閉的網站完成資料收發作業</translation> <translation id="8075191520954018715">記憶體狀態</translation> +<translation id="8076492880354921740">分頁</translation> <translation id="8076835018653442223">管理員停用了裝置本機檔案的存取權</translation> <translation id="8077684120002777443">使用者名稱 (例如:<使用者>@example.com)</translation> <translation id="8077816382010018681">在這裡顯示 QU 功能通知標題</translation> @@ -4867,7 +4860,6 @@ <translation id="8569682776816196752">找不到目的地</translation> <translation id="8569764466147087991">選取要開啟的檔案</translation> <translation id="8571213806525832805">過去 4 週</translation> -<translation id="8571613743082299268">已禁止重新導向至下列網站</translation> <translation id="8574990355410201600">一律允許 <ph name="HOST" /> 播放聲音</translation> <translation id="8578639784464423491">不可超過 99 個英文字母</translation> <translation id="8579285237314169903">正在同步處理 <ph name="NUMBER_OF_FILES" /> 個項目...</translation> @@ -5199,7 +5191,6 @@ <translation id="9065203028668620118">編輯</translation> <translation id="9066782832737749352">文字轉語音</translation> <translation id="9070219033670098627">切換使用者</translation> -<translation id="907148966137935206">不允許任何網站顯示彈出式視窗 (建議)</translation> <translation id="9071637495340542136">正在安裝「<ph name="APP_NAME" />」...</translation> <translation id="9072550133391925347"><ph name="PASSWORD_MANAGER_BRAND" /> 會使用您儲存的密碼,讓您自動登入符合資格的網站和應用程式。</translation> <translation id="9073281213608662541">PAP</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb index 9fb00c9..ba1e6d9 100644 --- a/chrome/app/resources/google_chrome_strings_am.xtb +++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">የእርስዎ ድር፣ ዕልባቶች እና ሌሎች የChrome ነገሮች እዚህ ይኖራሉ።</translation> <translation id="5941830788786076944">Google Chromeን መነሻ ማሰሻ አድርግ</translation> <translation id="6014844626092547096">አሁን ወደ Chrome ገብተዋል! ማመሳሰል በአስተዳዳሪዎ ተሰናክሏል።</translation> +<translation id="6040143037577758943">ዝጋ</translation> <translation id="6070348360322141662">ለተጨማሪ ደህንነት ሲባል Google Chrome ውሂብዎን ያመሰጥረዋል</translation> <translation id="6113794647360055231">Chrome አሁን ይበልጥ ተሻሽሏል</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb index 4f3979c7..2f9e4d567 100644 --- a/chrome/app/resources/google_chrome_strings_ar.xtb +++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -180,6 +180,7 @@ <translation id="5940385492829620908">الويب والإشارات المرجعية وغيرها من عناصر Chrome توجد هنا.</translation> <translation id="5941830788786076944">جعل Google Chrome المتصفّح التلقائي</translation> <translation id="6014844626092547096">لقد سجلت الدخول الآن إلى Chrome! أوقف المشرف المزامنة.</translation> +<translation id="6040143037577758943">إغلاق</translation> <translation id="6070348360322141662">لمزيد من الأمان، سيشفِّر Google Chrome بياناتك</translation> <translation id="6113794647360055231">Chrome أصبح أفضل</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb index 3b08a92..fa78bf4 100644 --- a/chrome/app/resources/google_chrome_strings_bg.xtb +++ b/chrome/app/resources/google_chrome_strings_bg.xtb
@@ -178,6 +178,7 @@ <translation id="5940385492829620908">Тук ще намерите посещаваните от вас места в мрежата, отметките и другите си неща в Chrome.</translation> <translation id="5941830788786076944">Искам Google Chrome да бъде браузърът по подразбиране</translation> <translation id="6014844626092547096">Вече влязохте в Chrome! Синхронизирането е деактивирано от администратора ви.</translation> +<translation id="6040143037577758943">Затваряне</translation> <translation id="6070348360322141662">За повишаване на сигурността Google Chrome ще шифрова данните ви</translation> <translation id="6113794647360055231">Chrome се подобри</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb index 6c9d51e2..0a05d32 100644 --- a/chrome/app/resources/google_chrome_strings_bn.xtb +++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -180,6 +180,7 @@ <translation id="5940385492829620908">আপনার ওয়েব, বুকমার্ক, এবং Chrome এর অন্যান্য জিনিস এখানে রয়েছে৷</translation> <translation id="5941830788786076944">Google Chrome-কে ডিফল্ট ব্রাউজার করুন</translation> <translation id="6014844626092547096">আপনি এখন Chrome এ প্রবেশ করেছেন! আপনার প্রশাসক দ্বারা সিঙ্ক অক্ষম করা আছে৷</translation> +<translation id="6040143037577758943">বন্ধ</translation> <translation id="6070348360322141662">অতিরিক্ত নিরাপত্তার জন্য, Google Chrome আপনার ডেটা এনক্রিপ্ট করবে</translation> <translation id="6113794647360055231">Chrome আরও ভাল হয়ে উঠেছে</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb index 41d0e2a4..d924069 100644 --- a/chrome/app/resources/google_chrome_strings_ca.xtb +++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">El vostre web, les adreces d'interès i altres coses de Chrome resideixen aquí.</translation> <translation id="5941830788786076944">Estableix Google Chrome com el navegador predeterminat</translation> <translation id="6014844626092547096">Heu iniciat la sessió a Chrome. El vostre administrador ha desactivat la sincronització.</translation> +<translation id="6040143037577758943">Tanca</translation> <translation id="6070348360322141662">Per a més seguretat, Google Chrome encriptarà les teves dades</translation> <translation id="6113794647360055231">Chrome és millor que mai</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb index b2584343..7fd7a860 100644 --- a/chrome/app/resources/google_chrome_strings_cs.xtb +++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Zde jsou k dispozici vaše weby, záložky a další obsah Chromu.</translation> <translation id="5941830788786076944">Nastavit Google Chrome jako výchozí prohlížeč</translation> <translation id="6014844626092547096">Nyní jste v Chromu přihlášeni. Synchronizace je ale deaktivována správcem.</translation> +<translation id="6040143037577758943">Zavřít</translation> <translation id="6070348360322141662">V zájmu lepšího zabezpečení bude Google Chrome vaše data šifrovat</translation> <translation id="6113794647360055231">Chrome je opět o něco lepší</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb index b4a8d53..ad40d4f 100644 --- a/chrome/app/resources/google_chrome_strings_da.xtb +++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Dit webindhold, dine bogmærker og andre Chrome-ting kan findes her.</translation> <translation id="5941830788786076944">Gør Google Chrome til din standardbrowser</translation> <translation id="6014844626092547096">Du er nu logget ind i Chrome. Synkronisering er deaktiveret af din administrator.</translation> +<translation id="6040143037577758943">Luk</translation> <translation id="6070348360322141662">Som et ekstra sikkerhedsniveau krypterer Google Chrome dine data</translation> <translation id="6113794647360055231">Chrome er blevet bedre</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> – Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb index 912b0c3..ec5b268 100644 --- a/chrome/app/resources/google_chrome_strings_de.xtb +++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Hier können Sie im Web surfen und Ihre Lesezeichen und andere Chrome-Inhalte speichern.</translation> <translation id="5941830788786076944">Google Chrome als Standardbrowser festlegen</translation> <translation id="6014844626092547096">Sie sind nun in Chrome angemeldet. Die Synchronisierung wurde von Ihrem Administrator deaktiviert.</translation> +<translation id="6040143037577758943">Schließen</translation> <translation id="6070348360322141662">Google Chrome verschlüsselt Ihre Daten zur Erhöhung der Sicherheit</translation> <translation id="6113794647360055231">Chrome ist jetzt noch besser</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb index 76ca4be..df9da51 100644 --- a/chrome/app/resources/google_chrome_strings_el.xtb +++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -180,6 +180,7 @@ <translation id="5940385492829620908">Εδώ μπορείτε να βρείτε τις ιστοσελίδες, τους σελιδοδείκτες σας και άλλα δεδομένα του Chrome.</translation> <translation id="5941830788786076944">Ορισμός Google Chrome ως προεπιλεγμένο πρόγραμμα περιήγησης</translation> <translation id="6014844626092547096">Έχετε πλέον συνδεθεί στο Chrome! Ο συγχρονισμός έχει απενεργοποιηθεί από το διαχειριστή σας.</translation> +<translation id="6040143037577758943">Κλείσιμο</translation> <translation id="6070348360322141662">Για επιπλέον ασφάλεια, το Google Chrome θα κρυπτογραφήσει τα δεδομένα σας</translation> <translation id="6113794647360055231">Το Chrome έγινε ακόμα καλύτερο</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb index 0fff58a..10fd0d3 100644 --- a/chrome/app/resources/google_chrome_strings_en-GB.xtb +++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Your web, bookmarks and other Chrome stuff live here.</translation> <translation id="5941830788786076944">Make Google Chrome the default browser</translation> <translation id="6014844626092547096">You're now signed in to Chrome! Sync is disabled by your administrator.</translation> +<translation id="6040143037577758943">Close</translation> <translation id="6070348360322141662">For added security, Google Chrome will encrypt your data</translation> <translation id="6113794647360055231">Chrome just got better</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb index 6170ed9..c1700192 100644 --- a/chrome/app/resources/google_chrome_strings_es-419.xtb +++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Aquí puedes encontrar tus páginas web, favoritos y otros contenidos de Chrome.</translation> <translation id="5941830788786076944">Haga de Google Chrome su navegador predeterminado</translation> <translation id="6014844626092547096">Accediste a Chrome. El administrador inhabilitó la sincronización.</translation> +<translation id="6040143037577758943">Cerrar</translation> <translation id="6070348360322141662">Para mejorar la seguridad, Google Chrome encriptará los datos</translation> <translation id="6113794647360055231">Chrome mejorado</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb index 34702a3..f428a53e 100644 --- a/chrome/app/resources/google_chrome_strings_es.xtb +++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Aquí puedes encontrar tus páginas web, tus marcadores y otros contenidos de Chrome.</translation> <translation id="5941830788786076944">Establecer Google Chrome como navegador predeterminado</translation> <translation id="6014844626092547096">Has iniciado sesión en Chrome. El administrador ha inhabilitado la sincronización.</translation> +<translation id="6040143037577758943">Cerrar</translation> <translation id="6070348360322141662">Para mayor seguridad, Google Chrome cifrará tus datos</translation> <translation id="6113794647360055231">Chrome mejor que nunca</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb index 53721fc..b94a4c5 100644 --- a/chrome/app/resources/google_chrome_strings_et.xtb +++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -180,6 +180,7 @@ <translation id="5940385492829620908">Siin asuvad teie veeb, järjehoidjad ja muu Chrome'i kraam.</translation> <translation id="5941830788786076944">Tee Google Chrome vaikebrauseriks</translation> <translation id="6014844626092547096">Olete nüüd Chrome'i sisse logitud. Administraator on sünkroonimise keelanud.</translation> +<translation id="6040143037577758943">Sulge</translation> <translation id="6070348360322141662">Turvalisuse suurendamiseks krüpteerib Google Chrome teie andmed</translation> <translation id="6113794647360055231">Chrome muutus just paremaks</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb index 97ba978..10c6fb4 100644 --- a/chrome/app/resources/google_chrome_strings_fa.xtb +++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">وب، نشانکها و موارد دیگر Chrome شما در اینجا هستند.</translation> <translation id="5941830788786076944">Google Chrome مرورگر پیشفرض شود</translation> <translation id="6014844626092547096">اکنون وارد Chrome شدید! سرپرست سیستم شما همگامسازی را از کار انداخته است.</translation> +<translation id="6040143037577758943">بستن</translation> <translation id="6070348360322141662">برای امنیت بیشتر، Google Chrome دادههای شما را رمزگذاری میکند</translation> <translation id="6113794647360055231">Chrome اکنون بهتر شده است</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb index 4bcfa5ed..d1de402 100644 --- a/chrome/app/resources/google_chrome_strings_fi.xtb +++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">Tämä on verkkosi, kirjanmerkkiesi ja muun Chrome-sisältösi koti.</translation> <translation id="5941830788786076944">Tee Google Chromesta oletusselain</translation> <translation id="6014844626092547096">Olet nyt kirjautunut sisään Chromeen! Järjestelmänvalvoja on poistanut synkronoinnin käytöstä.</translation> +<translation id="6040143037577758943">Sulje</translation> <translation id="6070348360322141662">Google Chrome lisää suojausta salaamalla tietosi.</translation> <translation id="6113794647360055231">Chrome on nyt entistä parempi</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb index 7353d59..4b1ac72 100644 --- a/chrome/app/resources/google_chrome_strings_fil.xtb +++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Makikita dito ang iyong web, mga bookmark at iba pang mga bagay-bagay sa Chrome.</translation> <translation id="5941830788786076944">Gawin ang Google Chrome na default browser</translation> <translation id="6014844626092547096">Naka-sign in ka na ngayon sa Chrome! Na-disable ng iyong administrator ang pag-sync.</translation> +<translation id="6040143037577758943">Isara</translation> <translation id="6070348360322141662">Para sa karagdagang seguridad, ie-encrypt ng Google Chrome ang iyong data</translation> <translation id="6113794647360055231">Mas mahusay na ang Chrome</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb index f60e007..727866a 100644 --- a/chrome/app/resources/google_chrome_strings_fr.xtb +++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Votre contenu Web, vos favoris et toutes vos données Chrome sont conservés ici.</translation> <translation id="5941830788786076944">Définir Google Chrome comme navigateur par défaut</translation> <translation id="6014844626092547096">Vous êtes maintenant connecté à Chrome. La synchronisation a été désactivée par votre administrateur.</translation> +<translation id="6040143037577758943">Fermer</translation> <translation id="6070348360322141662">Pour plus de sécurité, vos données seront chiffrées dans Google Chrome</translation> <translation id="6113794647360055231">Chrome s'est amélioré</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb index da9ddebc..256aca98 100644 --- a/chrome/app/resources/google_chrome_strings_gu.xtb +++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">તમારું વેબ, બુકમાર્ક્સ અને અન્ય Chrome સામગ્રી અહીં હોય છે.</translation> <translation id="5941830788786076944">Google Chrome ને ડિફૉલ્ટ બ્રાઉઝર બનાવો</translation> <translation id="6014844626092547096">તમે હવે Chrome માં સાઇન ઇન છો! સમન્વયન તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરેલું છે.</translation> +<translation id="6040143037577758943">બંધ કરો</translation> <translation id="6070348360322141662">વધારાની સુરક્ષા માટે, Google Chrome, તમારા ડેટાને એન્ક્રિપ્ટ કરશે</translation> <translation id="6113794647360055231">Chrome હવે પહેલાંથી બહેતર બન્યું છે</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb index ef27e01..1c360009a 100644 --- a/chrome/app/resources/google_chrome_strings_hi.xtb +++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -178,6 +178,7 @@ <translation id="5940385492829620908">आपके वेब, बुकमार्क और अन्य Chrome सामग्री यहां मौजूद रहती है.</translation> <translation id="5941830788786076944">Google Chrome को सामान्य ब्राउज़र बनाएं</translation> <translation id="6014844626092547096">अब आपने Chrome में प्रवेश कर लिया हैं! सिंक को आपके व्यवस्थापक द्वारा अक्षम किया गया है.</translation> +<translation id="6040143037577758943">बंद करें</translation> <translation id="6070348360322141662">अतिरिक्त सुरक्षा के लिए, Google Chrome आपका डेटा एन्क्रिप्ट करेगा</translation> <translation id="6113794647360055231">Chrome पहले से बेहतर हो गया है</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb index 081f13e..97368de 100644 --- a/chrome/app/resources/google_chrome_strings_hr.xtb +++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Ovdje se nalaze vaš web, oznake i ostali sadržaji u Chromeu.</translation> <translation id="5941830788786076944">Neka Google Chrome bude zadani preglednik.</translation> <translation id="6014844626092547096">Sada ste prijavljeni na Chrome! Administrator je onemogućio sinkronizaciju.</translation> +<translation id="6040143037577758943">Zatvori</translation> <translation id="6070348360322141662">Radi dodatne sigurnosti Google Chrome kriptirat će vaše podatke</translation> <translation id="6113794647360055231">Chrome je upravo postao bolji</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb index c47d4e93..88f2e32 100644 --- a/chrome/app/resources/google_chrome_strings_hu.xtb +++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Az Ön könyvjelzői, valamint az internetezéssel és a Chrome-mal kapcsolatos egyéb dolgai vannak itt.</translation> <translation id="5941830788786076944">A Google Chrome beállítása alapértelmezett böngészőként</translation> <translation id="6014844626092547096">Bejelentkezett a Chrome-ba! A szinkronizálást a rendszergazdája letiltotta.</translation> +<translation id="6040143037577758943">Bezárás</translation> <translation id="6070348360322141662">A nagyobb biztonság érdekében a Google Chrome titkosítja az Ön adatait</translation> <translation id="6113794647360055231">A Chrome még jobb lett</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb index 382768d3..b9428c7 100644 --- a/chrome/app/resources/google_chrome_strings_id.xtb +++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Web, bookmark, dan file Chrome Anda lainnya tersedia di sini.</translation> <translation id="5941830788786076944">Jadikan Google Chrome sebagai browser default</translation> <translation id="6014844626092547096">Sekarang Anda telah masuk ke Chrome! Sinkronisasi dinonaktifkan oleh administrator Anda.</translation> +<translation id="6040143037577758943">Tutup</translation> <translation id="6070348360322141662">Untuk keamanan tambahan, Google Chrome akan mengenkripsi data Anda</translation> <translation id="6113794647360055231">Chrome menjadi lebih baik</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb index c8ebcca..e2b1923 100644 --- a/chrome/app/resources/google_chrome_strings_it.xtb +++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">Il tuoi siti web, i tuoi segnalibri e gli altri contenuti Chrome sempre disponibili e aggiornati qui.</translation> <translation id="5941830788786076944">Imposta Google Chrome come browser predefinito</translation> <translation id="6014844626092547096">Hai eseguito l'accesso a Chrome. La sincronizzazione è stata disattivata dall'amministratore.</translation> +<translation id="6040143037577758943">Chiudi</translation> <translation id="6070348360322141662">Per maggiore sicurezza, Google Chrome cripterà i tuoi dati</translation> <translation id="6113794647360055231">Da oggi Chrome è ancora meglio</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb index 58e2a0de..0e9270dd 100644 --- a/chrome/app/resources/google_chrome_strings_iw.xtb +++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">היסטוריית האתרים, הסימניות ופריטים נוספים מ-Chrome נמצאים כאן.</translation> <translation id="5941830788786076944">הפוך את Google Chrome לדפדפן ברירת המחדל</translation> <translation id="6014844626092547096">אתה מחובר כעת ל-Chrome! הסנכרון הושבת על ידי מנהל המערכת שלך.</translation> +<translation id="6040143037577758943">סגור</translation> <translation id="6070348360322141662">לשיפור האבטחה, Google Chrome יצפין את הנתונים</translation> <translation id="6113794647360055231">Chrome השתפר</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb index 6c4d021..7ffe613c 100644 --- a/chrome/app/resources/google_chrome_strings_ja.xtb +++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">ウェブ、ブックマーク、その他の Chrome データを好みに設定できます。</translation> <translation id="5941830788786076944">Google Chrome を既定のブラウザにする</translation> <translation id="6014844626092547096">Chrome にログインしています。同期は管理者によって無効にされています。</translation> +<translation id="6040143037577758943">閉じる</translation> <translation id="6070348360322141662">セキュリティ強化のため、データは Google Chrome で暗号化されます</translation> <translation id="6113794647360055231">進化する Chrome</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb index 3ebf32f9..030b3f90 100644 --- a/chrome/app/resources/google_chrome_strings_kn.xtb +++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -178,6 +178,7 @@ <translation id="5940385492829620908">ನಿಮ್ಮ ವೆಬ್, ಬುಕ್ಮಾರ್ಕ್ಗಳು ಮತ್ತು ಇತರ Chrome ವಿಷಯವು ಇಲ್ಲಿ ಲೈವ್ ಆಗುತ್ತವೆ.</translation> <translation id="5941830788786076944">Google Chrome ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿಸು</translation> <translation id="6014844626092547096">ಇದೀಗ ನೀವು Chrome ಗೆ ಸೈನ್ ಇನ್ ಆಗಿರುವಿರಿ! ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ ಸಿಂಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.</translation> +<translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation> <translation id="6070348360322141662">ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಗಾಗಿ, Google Chrome ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ</translation> <translation id="6113794647360055231">Chrome ಇದೀಗ ಉತ್ತಮಗೊಂಡಿದೆ</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb index dfabccf..b715c3c91 100644 --- a/chrome/app/resources/google_chrome_strings_ko.xtb +++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">웹, 북마크 및 기타 Chrome 콘텐츠가 여기에 저장됩니다.</translation> <translation id="5941830788786076944">Chrome을 기본 브라우저로</translation> <translation id="6014844626092547096">Chrome에 로그인했습니다. 관리자가 동기화를 사용 중지했습니다.</translation> +<translation id="6040143037577758943">닫기</translation> <translation id="6070348360322141662">보안 강화를 위해 Chrome에서 사용자 데이터를 암호화합니다.</translation> <translation id="6113794647360055231">더욱 업그레이드된 Chrome</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb index 0675b064..129caf9 100644 --- a/chrome/app/resources/google_chrome_strings_lt.xtb +++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -185,6 +185,7 @@ <translation id="5940385492829620908">Čia saugoma žiniatinklio informacija, žymės ir kiti „Chrome“ duomenys.</translation> <translation id="5941830788786076944">Padarykite „Google Chrome“ numatytąja naršykle</translation> <translation id="6014844626092547096">Dabar esate prisijungę prie „Chrome“. Administratorius neleidžia sinchronizuoti.</translation> +<translation id="6040143037577758943">Uždaryti</translation> <translation id="6070348360322141662">Kad būtų papildomai užtikrintas saugumas, „Google Chrome“ užšifruos duomenis</translation> <translation id="6113794647360055231">„Chrome“ dabar dar tobulesnė</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" />– „Google Chrome“</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb index ee67933..7395251 100644 --- a/chrome/app/resources/google_chrome_strings_lv.xtb +++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -180,6 +180,7 @@ <translation id="5940385492829620908">Šeit atrodas jūsu tīmekļa saturs, grāmatzīmes un cits Chrome saturs.</translation> <translation id="5941830788786076944">Izveidot Google Chrome par noklusējuma pārlūku</translation> <translation id="6014844626092547096">Jūs esat pierakstījies pārlūkā Chrome. Jūsu administrators ir atspējojis sinhronizēšanu.</translation> +<translation id="6040143037577758943">Aizvērt</translation> <translation id="6070348360322141662">Papildu drošības nolūkos Google Chrome šifrēs jūsu datus.</translation> <translation id="6113794647360055231">Pārlūkā Chrome ir veikti uzlabojumi</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb index 59207bb..be81912 100644 --- a/chrome/app/resources/google_chrome_strings_ml.xtb +++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">നിങ്ങളുടെ വെബും ബുക്ക്മാർക്കുകളും മറ്റ് Chrome ഫയലും ഇവിടെ തത്സമയമാണ്.</translation> <translation id="5941830788786076944">Google Chrome നെ സ്ഥിരസ്ഥിതി ബ്രൌസറായി മാറ്റുക</translation> <translation id="6014844626092547096">നിങ്ങൾ ഇപ്പോൾ Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്തു! നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ സമന്വയം പ്രവർത്തനരഹിതമാക്കി.</translation> +<translation id="6040143037577758943">അടയ്ക്കുക</translation> <translation id="6070348360322141662">കൂടുതൽ സുരക്ഷ ലഭ്യമാക്കാൻ, Google Chrome നിങ്ങളുടെ ഡാറ്റ എന്ക്രിപ്റ്റുചെയ്യും</translation> <translation id="6113794647360055231">Chrome കൂടുതൽ മികച്ചതായി</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb index 8b79bc4..43891487 100644 --- a/chrome/app/resources/google_chrome_strings_mr.xtb +++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -181,6 +181,7 @@ <translation id="5940385492829620908">आपले वेब, बुकमार्क आणि अन्य Chrome सामग्री येथे थेट आहे.</translation> <translation id="5941830788786076944">Google Chromeला डीफॉल्ट ब्राउझर बनवा</translation> <translation id="6014844626092547096">आपण आता Chrome वर साइन इन आहात! आपल्या प्रशासकाद्वारे संकालन अक्षम केले गेले आहे.</translation> +<translation id="6040143037577758943">बंद करा</translation> <translation id="6070348360322141662">अतिरिक्त सुरक्षिततेसाठी, Google Chrome आपला डेटा कूटबद्ध करेल</translation> <translation id="6113794647360055231">Chrome आता उत्कृष्ट झाले आहे</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> – Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb index 16a1431..0bfa8646 100644 --- a/chrome/app/resources/google_chrome_strings_ms.xtb +++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Web, penanda halaman dan barangan Chrome anda yang lain tinggal di sini.</translation> <translation id="5941830788786076944">Jadikan Google Chrome penyemak imbas lalai</translation> <translation id="6014844626092547096">Anda sedang dilog masuk ke Chrome! Penyegerakan dilumpuhkan oleh pentadbir anda.</translation> +<translation id="6040143037577758943">Tutup</translation> <translation id="6070348360322141662">Untuk keselamatan tambahan, Google Chrome akan menyulitkan data anda</translation> <translation id="6113794647360055231">Chrome kini lebih baik</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb index c867402..f4a180c 100644 --- a/chrome/app/resources/google_chrome_strings_nl.xtb +++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -182,6 +182,7 @@ <translation id="5940385492829620908">Hier vind je internet, bladwijzers en andere Chrome-instellingen.</translation> <translation id="5941830788786076944">Google Chrome instellen als mijn standaardbrowser</translation> <translation id="6014844626092547096">Je bent nu ingelogd bij Chrome! Synchronisatie is uitgeschakeld door je beheerder.</translation> +<translation id="6040143037577758943">Sluiten</translation> <translation id="6070348360322141662">Je gegevens worden voor extra beveiliging door Google Chrome versleuteld</translation> <translation id="6113794647360055231">Chrome is nu nog beter</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb index ed6d2a5..cb4b0ad 100644 --- a/chrome/app/resources/google_chrome_strings_no.xtb +++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Her finner du nettinnholdet, bokmerkene og de andre Chrome-tingene dine.</translation> <translation id="5941830788786076944">Gjør Google Chrome til standardleser</translation> <translation id="6014844626092547096">Du er nå logget på Chrome. Synkronisering er deaktivert av administratoren din.</translation> +<translation id="6040143037577758943">Lukk</translation> <translation id="6070348360322141662">Google Chrome krypterer dataene dine for å øke sikkerheten</translation> <translation id="6113794647360055231">Nå er Chrome blitt enda bedre</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb index ddba6b1c..94093405 100644 --- a/chrome/app/resources/google_chrome_strings_pl.xtb +++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">Tu są Twoje strony, zakładki i inne dane z Chrome.</translation> <translation id="5941830788786076944">Ustaw Google Chrome jako domyślną przeglądarkę</translation> <translation id="6014844626092547096">Jesteś zalogowany w Chrome. Administrator wyłączył synchronizację.</translation> +<translation id="6040143037577758943">Zamknij</translation> <translation id="6070348360322141662">Dla większego bezpieczeństwa Google Chrome szyfruje dane</translation> <translation id="6113794647360055231">Chrome jest jeszcze lepszy</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb index dc38e3a..870216d 100644 --- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">Sua Web, seus favoritos e demais conteúdo do Chrome estão aqui.</translation> <translation id="5941830788786076944">Fazer do Google Chrome o navegador padrão</translation> <translation id="6014844626092547096">Agora, você está conectado ao Google Chrome. A sincronização está desativada por seu administrador.</translation> +<translation id="6040143037577758943">Fechar</translation> <translation id="6070348360322141662">Para maior segurança, o Google Chrome criptografará seus dados</translation> <translation id="6113794647360055231">O Chrome ficou ainda melhor</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb index 2742e96..4c12df28 100644 --- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">A sua Web, os seus marcadores e os seus outros itens do Chrome estão aqui.</translation> <translation id="5941830788786076944">Tornar o Google Chrome no browser padrão.</translation> <translation id="6014844626092547096">Tem agora sessão iniciada no Chrome! A sincronização foi desativada pelo seu gestor.</translation> +<translation id="6040143037577758943">Fechar</translation> <translation id="6070348360322141662">Para uma segurança adicional, o Google Chrome encripta os seus dados</translation> <translation id="6113794647360055231">O Chrome está ainda melhor</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb index bcab0155a..7179b2b5 100644 --- a/chrome/app/resources/google_chrome_strings_ro.xtb +++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Experiența web personalizată, marcajele și celelalte date Chrome chiar aici.</translation> <translation id="5941830788786076944">Setează Google Chrome ca browser prestabilit</translation> <translation id="6014844626092547096">Sunteți conectat(ă) la Chrome! Sincronizarea este dezactivată de administrator.</translation> +<translation id="6040143037577758943">Închide</translation> <translation id="6070348360322141662">Pentru un plus de securitate, Google Chrome îți va cripta datele</translation> <translation id="6113794647360055231">Chrome a devenit și mai bun</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> – Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb index 2335381..504d7bc 100644 --- a/chrome/app/resources/google_chrome_strings_ru.xtb +++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Все веб-страницы, закладки и другие данные Chrome можно найти здесь.</translation> <translation id="5941830788786076944">Назначить Google Chrome браузером по умолчанию</translation> <translation id="6014844626092547096">Добро пожаловать в Chrome! Синхронизация отключена администратором.</translation> +<translation id="6040143037577758943">Закрыть</translation> <translation id="6070348360322141662">В целях повышения безопасности Google Chrome шифрует ваши данные</translation> <translation id="6113794647360055231">Chrome становится все лучше</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb index 7629f933..4396747b 100644 --- a/chrome/app/resources/google_chrome_strings_sk.xtb +++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -182,6 +182,7 @@ <translation id="5940385492829620908">Tu nájdete svoj obsah na webe, záložky a ďalšie položky prehliadača Chrome.</translation> <translation id="5941830788786076944">Nastaviť prehľadávač Google Chrome ako predvolený</translation> <translation id="6014844626092547096">Prihlásili ste sa do prehliadača Chrome. Synchronizácia je ale zakázaná administrátorom.</translation> +<translation id="6040143037577758943">Zavrieť</translation> <translation id="6070348360322141662">V záujme vyššej miery zabezpečenia budú dáta v prehliadači Google Chrome šifrované</translation> <translation id="6113794647360055231">Prehliadač Chrome bol práve vylepšený</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb index 55f9828..b6d28e0 100644 --- a/chrome/app/resources/google_chrome_strings_sl.xtb +++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Tu so shranjeni vaš splet, zaznamki in druge stvari v Chromu.</translation> <translation id="5941830788786076944">Nastavi Google Chrome kot privzeti brskalnik</translation> <translation id="6014844626092547096">Zdaj ste prijavljeni v Chrome. Sinhronizacijo je onemogočil skrbnik.</translation> +<translation id="6040143037577758943">Zapri</translation> <translation id="6070348360322141662">Zaradi večje varnosti bo Google Chrome šifriral vaše podatke</translation> <translation id="6113794647360055231">Chrome je pravkar postal še boljši</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> – Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb index 6481167..3397ad27 100644 --- a/chrome/app/resources/google_chrome_strings_sr.xtb +++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Веб, обележивачи и други Chrome садржај се овде уживо приказују.</translation> <translation id="5941830788786076944">Подесите Google Chrome као подразумевани прегледач</translation> <translation id="6014844626092547096">Сада сте пријављени у Chrome! Администратор је онемогућио синхронизацију.</translation> +<translation id="6040143037577758943">Затвори</translation> <translation id="6070348360322141662">Google Chrome ће шифровати податке ради додатне сигурности</translation> <translation id="6113794647360055231">Управо смо побољшали Chrome</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> – Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb index 39e2cc86..b1e6643b 100644 --- a/chrome/app/resources/google_chrome_strings_sv.xtb +++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Här finns webben, bokmärken och allt annat du använder Chrome till.</translation> <translation id="5941830788786076944">Använd Google Chrome som standardwebbläsare</translation> <translation id="6014844626092547096">Nu är du inloggad på Chrome. Synkronisering har inaktiverats av administratören.</translation> +<translation id="6040143037577758943">Stäng</translation> <translation id="6070348360322141662">Din data krypteras i Google Chrome för att öka säkerheten</translation> <translation id="6113794647360055231">Vi har gjort Chrome ännu bättre</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb index d80e180..184a319 100644 --- a/chrome/app/resources/google_chrome_strings_sw.xtb +++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -184,6 +184,7 @@ <translation id="5940385492829620908">Wavuti, alamisho, na vitu vyako vingine vya Chrome vinapatikana hapa.</translation> <translation id="5941830788786076944">Fanya Google Chrome iwe kivinjari chaguo-msingi</translation> <translation id="6014844626092547096">Sasa umeingia kwenye Chrome! Usawazishaji umezimwa na msimamizi wako.</translation> +<translation id="6040143037577758943">Funga</translation> <translation id="6070348360322141662">Kwa usalama wa ziada, Google Chrome itasimba data yako kwa njia fiche</translation> <translation id="6113794647360055231">Chrome imeboreshwa zaidi</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb index 2e457f5..3389c02c 100644 --- a/chrome/app/resources/google_chrome_strings_ta.xtb +++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">உங்களின் இணையம், புத்தகக்குறிகள் மற்றும் பிற Chrome உருப்படிகள் இங்கே உள்ளன.</translation> <translation id="5941830788786076944">Google Chrome ஐ இயல்புநிலை உலாவியாக அமை</translation> <translation id="6014844626092547096">தற்போது Chrome இல் உள்நுழைந்துள்ளீர்கள்! உங்கள் நிர்வாகியால் ஒத்திசைவு முடக்கப்பட்டுள்ளது.</translation> +<translation id="6040143037577758943">மூடு</translation> <translation id="6070348360322141662">கூடுதல் பாதுகாப்பிற்கு, Google Chrome உங்கள் தரவை என்கிரிப்ட் செய்யும்</translation> <translation id="6113794647360055231">Chrome இன்னும் சிறப்படைந்துள்ளது</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb index 032316e..0461372 100644 --- a/chrome/app/resources/google_chrome_strings_te.xtb +++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">మీ వెబ్, బుక్మార్క్లు మరియు ఇతర Chrome అంశాలు ఇక్కడ చూపబడతాయి.</translation> <translation id="5941830788786076944">Google Chromeను డిఫాల్ట్ బ్రౌజర్గా చేసుకోండి</translation> <translation id="6014844626092547096">ఇప్పుడు మీరు Chromeకు సైన్ ఇన్ చేసారు! మీ నిర్వాహకులు సమకాలీకరణని నిలిపివేసారు.</translation> +<translation id="6040143037577758943">మూసివేయి</translation> <translation id="6070348360322141662">అదనపు భద్రత దృష్ట్యా, Google Chrome మీ డేటాను గుప్తీకరిస్తుంది</translation> <translation id="6113794647360055231">Chrome ఇప్పుడు మెరుగైంది</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb index 6db0bad..83fb584 100644 --- a/chrome/app/resources/google_chrome_strings_th.xtb +++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">เว็บของคุณ บุ๊กมาร์ก และสิ่งอื่นๆ ใน Chrome พร้อมใช้แล้วที่นี่</translation> <translation id="5941830788786076944">ทำให้ Google Chrome เป็นเบราว์เซอร์เริ่มต้น</translation> <translation id="6014844626092547096">ขณะนี้คุณลงชื่อเข้าใช้ Chrome แล้ว! การซิงค์ถูกปิดใช้งานโดยผู้ดูแลระบบของคุณ</translation> +<translation id="6040143037577758943">ปิด</translation> <translation id="6070348360322141662">Google Chrome จะเข้ารหัสลับข้อมูลของคุณเพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น</translation> <translation id="6113794647360055231">Chrome ดีขึ้นกว่าเดิม</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb index 2a32c32e1..d3737b79 100644 --- a/chrome/app/resources/google_chrome_strings_tr.xtb +++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -179,6 +179,7 @@ <translation id="5940385492829620908">Web, yer işaretleri ve diğer Chrome öğeleriniz burada bulunur.</translation> <translation id="5941830788786076944">Google Chrome varsayılan tarayıcı olsun</translation> <translation id="6014844626092547096">Chrome'da oturum açtınız! Senkronizasyon, yöneticiniz tarafından devre dışı bırakıldı.</translation> +<translation id="6040143037577758943">Kapat</translation> <translation id="6070348360322141662">Google Chrome ek güvenlik sağlamak için verilerinizi şifreler</translation> <translation id="6113794647360055231">Chrome daha da iyi bir hale geldi</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb index dbad090..e7b5145 100644 --- a/chrome/app/resources/google_chrome_strings_uk.xtb +++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -176,6 +176,7 @@ <translation id="5940385492829620908">Тут містяться ваші веб-сторінки, закладки та інші дані Chrome.</translation> <translation id="5941830788786076944">Зробити Google Chrome переглядачем за промовчанням</translation> <translation id="6014844626092547096">Ви ввійшли в Chrome. Проте ваш адміністратор вимкнув синхронізацію.</translation> +<translation id="6040143037577758943">Закрити</translation> <translation id="6070348360322141662">Щоб підвищити безпеку, Google Chrome шифруватиме ваші дані</translation> <translation id="6113794647360055231">Chrome став ще кращим</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb index 07d1d7b6..e0681b3 100644 --- a/chrome/app/resources/google_chrome_strings_vi.xtb +++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -181,6 +181,7 @@ <translation id="5940385492829620908">Web, dấu trang và các nội dung khác của bạn trên Chrome đều có ở đây.</translation> <translation id="5941830788786076944">Chọn Google Chrome làm trình duyệt mặc định</translation> <translation id="6014844626092547096">Bạn hiện đã đăng nhập vào Chrome! Quản trị viên của bạn đã tắt tính năng Đồng bộ hóa.</translation> +<translation id="6040143037577758943">Đóng</translation> <translation id="6070348360322141662">Để bảo mật hơn, Google Chrome sẽ mã hóa dữ liệu của bạn</translation> <translation id="6113794647360055231">Chrome được cải tiến hơn</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb index 0df6e0b7..2a912cc 100644 --- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -177,6 +177,7 @@ <translation id="5940385492829620908">您的上网记录、书签和其他Chrome资料和数据都保存在此处。</translation> <translation id="5941830788786076944">将 Google Chrome 浏览器设为默认浏览器</translation> <translation id="6014844626092547096">您现在已登录 Chrome!不过,管理员已停用同步功能。</translation> +<translation id="6040143037577758943">关闭</translation> <translation id="6070348360322141662">为了提高安全性,Google Chrome 将对您的数据进行加密</translation> <translation id="6113794647360055231">Chrome现在更好用了</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - 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 568bcf5..b422215 100644 --- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -178,6 +178,7 @@ <translation id="5940385492829620908">你瀏覽的網頁、書籤和其他 Chrome 設定都在這裡。</translation> <translation id="5941830788786076944">使用 Google Chrome 做為我的預設瀏覽器</translation> <translation id="6014844626092547096">你現在已登入 Chrome!但管理員已關閉同步功能。</translation> +<translation id="6040143037577758943">關閉</translation> <translation id="6070348360322141662">為了提升安全性,Google Chrome 會將你的資料加密保護</translation> <translation id="6113794647360055231">Chrome 變得更好用了</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index d73401f..c245aa8e 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -534,8 +534,9 @@ "google/google_url_tracker_factory.h", "gpu/gpu_mode_manager.cc", "gpu/gpu_mode_manager.h", + "hang_monitor/hang_crash_dump.h", + "hang_monitor/hang_crash_dump_mac.cc", "hang_monitor/hang_crash_dump_win.cc", - "hang_monitor/hang_crash_dump_win.h", "history/chrome_history_backend_client.cc", "history/chrome_history_backend_client.h", "history/chrome_history_client.cc", @@ -3156,6 +3157,9 @@ "recovery/recovery_install_global_error_factory.cc", "recovery/recovery_install_global_error_factory.h", ] + } else { + # On other platforms, use the generic implementation. + sources += [ "hang_monitor/hang_crash_dump.cc" ] } if (is_win || is_linux) {
diff --git a/chrome/browser/OWNERS b/chrome/browser/OWNERS index 5b2f6db..59237681 100644 --- a/chrome/browser/OWNERS +++ b/chrome/browser/OWNERS
@@ -81,7 +81,6 @@ per-file *_mac.h=rsesek@chromium.org per-file *_mac.h=thakis@chromium.org -per-file media_router_resources.grdp*=apacible@chromium.org per-file media_router_resources.grdp*=imcheng@chromium.org per-file media_router_resources.grdp*=mfoltz@chromium.org
diff --git a/chrome/browser/android/vr/vr_controller.cc b/chrome/browser/android/vr/vr_controller.cc index d65cb87..dee158c 100644 --- a/chrome/browser/android/vr/vr_controller.cc +++ b/chrome/browser/android/vr/vr_controller.cc
@@ -14,7 +14,6 @@ #include "third_party/blink/public/platform/web_input_event.h" #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr.h" #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr_controller.h" -#include "ui/gfx/transform.h" namespace vr { @@ -247,14 +246,16 @@ } gfx::Point3F VrController::Position() const { - gvr::Vec3f position = controller_state_->GetPosition(); - return gfx::Point3F(position.x, position.y, position.z); + const gvr::Vec3f& position = controller_state_->GetPosition(); + return gfx::Point3F(position.x + head_offset_.x(), + position.y + head_offset_.y(), + position.z + head_offset_.z()); } void VrController::GetTransform(gfx::Transform* out) const { *out = gfx::Transform(Orientation()); - gvr::Vec3f position = controller_state_->GetPosition(); - out->matrix().postTranslate(position.x, position.y, position.z); + const gfx::Point3F& position = Position(); + out->matrix().postTranslate(position.x(), position.y(), position.z()); } void VrController::GetRelativePointerTransform(gfx::Transform* out) const { @@ -314,9 +315,17 @@ return controller_state_->GetConnectionState() == gvr::kControllerConnected; } -void VrController::UpdateState(const gvr::Mat4f& head_direction) { +void VrController::UpdateState(const gfx::Transform& head_pose) { + gfx::Transform inv_pose; + if (head_pose.GetInverse(&inv_pose)) { + head_offset_.SetPoint(0, 0, 0); + inv_pose.TransformPoint(&head_offset_); + } + + gvr::Mat4f gvr_head_pose; + TransformToGvrMat(head_pose, &gvr_head_pose); controller_api_->ApplyArmModel(handedness_, gvr::kArmModelBehaviorFollowGaze, - head_direction); + gvr_head_pose); const int32_t old_status = controller_state_->GetApiStatus(); const int32_t old_connection_state = controller_state_->GetConnectionState(); for (int button = 0; button < GVR_CONTROLLER_BUTTON_COUNT; ++button) {
diff --git a/chrome/browser/android/vr/vr_controller.h b/chrome/browser/android/vr/vr_controller.h index fe106d9..542f1c5c 100644 --- a/chrome/browser/android/vr/vr_controller.h +++ b/chrome/browser/android/vr/vr_controller.h
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "base/time/time.h" +#include "chrome/browser/android/vr/gvr_util.h" #include "chrome/browser/vr/platform_controller.h" #include "device/vr/android/gvr/gvr_gamepad_data_provider.h" #include "device/vr/public/mojom/vr_service.mojom.h" @@ -18,6 +19,7 @@ #include "ui/gfx/geometry/quaternion.h" #include "ui/gfx/geometry/vector2d_f.h" #include "ui/gfx/geometry/vector3d_f.h" +#include "ui/gfx/transform.h" namespace blink { class WebGestureEvent; @@ -54,7 +56,7 @@ device::mojom::XRInputSourceStatePtr GetInputSourceState(); // Called once per frame to update controller state. - void UpdateState(const gvr::Mat4f& head_direction); + void UpdateState(const gfx::Transform& head_pose); std::unique_ptr<GestureList> DetectGestures(); @@ -192,6 +194,9 @@ // Displacement of the touch point from the previews to the current touch gfx::Vector2dF displacement_; + // Head offset. Keeps the controller at the user's side with 6DoF headsets. + gfx::Point3F head_offset_; + int64_t last_touch_timestamp_ = 0; int64_t last_timestamp_nanos_ = 0;
diff --git a/chrome/browser/android/vr/vr_shell_gl.cc b/chrome/browser/android/vr/vr_shell_gl.cc index 904c88b..8b4626d7 100644 --- a/chrome/browser/android/vr/vr_shell_gl.cc +++ b/chrome/browser/android/vr/vr_shell_gl.cc
@@ -1183,9 +1183,7 @@ void VrShellGl::UpdateController(const RenderInfo& render_info, base::TimeTicks current_time) { TRACE_EVENT0("gpu", "VrShellGl::UpdateController"); - gvr::Mat4f gvr_head_pose; - TransformToGvrMat(render_info.head_pose, &gvr_head_pose); - controller_->UpdateState(gvr_head_pose); + controller_->UpdateState(render_info.head_pose); gfx::Point3F laser_origin = controller_->GetPointerStart(); device::GvrGamepadData controller_data = controller_->GetGamepadData();
diff --git a/chrome/browser/autofill/form_structure_browsertest.cc b/chrome/browser/autofill/form_structure_browsertest.cc index 61d6c5b5..9cc7a99 100644 --- a/chrome/browser/autofill/form_structure_browsertest.cc +++ b/chrome/browser/autofill/form_structure_browsertest.cc
@@ -98,7 +98,7 @@ forms_string += " | " + base::UTF16ToUTF8(field->name); forms_string += " | " + base::UTF16ToUTF8(field->label); forms_string += " | " + base::UTF16ToUTF8(field->value); - forms_string += " | " + field->section(); + forms_string += " | " + field->section; forms_string += "\n"; } }
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 1e7ca7d..05578ad 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc
@@ -102,7 +102,6 @@ #include "chrome/browser/tracing/background_tracing_field_trial.h" #include "chrome/browser/tracing/navigation_tracing.h" #include "chrome/browser/translate/translate_service.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/javascript_dialogs/chrome_javascript_native_dialog_factory.h" @@ -305,7 +304,6 @@ #if defined(USE_AURA) #include "chrome/browser/lifetime/application_lifetime.h" -#include "content/public/common/service_manager_connection.h" #include "services/service_manager/runner/common/client_util.h" #include "ui/aura/env.h" #endif
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc index 30ebf242..9e61f3ce 100644 --- a/chrome/browser/chrome_browser_main_win.cc +++ b/chrome/browser/chrome_browser_main_win.cc
@@ -345,7 +345,7 @@ // task. base::PostTaskWithTraits( FROM_HERE, - {base::MayBlock(), + {base::MayBlock(), base::TaskPriority::BACKGROUND, base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, base::Bind(&HandleModuleLoadEventWithoutTimeDateStamp, event.module_path, event.module_size, load_address));
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 5bb1c49..30c03e6 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -2887,6 +2887,13 @@ web_prefs->data_saver_enabled = GetDataSaverEnabledPref(prefs); + web_prefs->data_saver_holdback_web_api_enabled = + base::GetFieldTrialParamByFeatureAsBool(features::kDataSaverHoldback, + "holdback_web", false); + web_prefs->data_saver_holdback_media_api_enabled = + base::GetFieldTrialParamByFeatureAsBool(features::kDataSaverHoldback, + "holdback_media", false); + content::WebContents* contents = content::WebContents::FromRenderViewHost(rvh); if (contents) { @@ -3281,14 +3288,14 @@ // Add the ModuleEventSink interface. This is the interface used by renderer // processes to notify the browser of modules in their address space. The // process handle is not yet available at this point so pass in a callback - // to allow it to be retrieved at the time the interface is actually + // to allow to retrieve a duplicate at the time the interface is actually // created. It is safe to pass a raw pointer to |render_process_host|: the // callback will be invoked in the context of ModuleDatabase::GetInstance, // which is invoked by Mojo initialization, which occurs while the // |render_process_host| is alive. auto get_process = base::BindRepeating( - [](content::RenderProcessHost* host) -> base::ProcessHandle { - return host->GetProcess().Handle(); + [](content::RenderProcessHost* host) -> base::Process { + return host->GetProcess().Duplicate(); }, base::Unretained(render_process_host)); // The ModuleDatabase is a global singleton so passing an unretained pointer
diff --git a/chrome/browser/chrome_content_browser_manifest_overlay.json b/chrome/browser/chrome_content_browser_manifest_overlay.json index 02c1c31..a6506e9 100644 --- a/chrome/browser/chrome_content_browser_manifest_overlay.json +++ b/chrome/browser/chrome_content_browser_manifest_overlay.json
@@ -5,23 +5,23 @@ "service_manager:connector": { "provides": { "renderer": [ - "autofill::mojom::AutofillDriver", - "autofill::mojom::PasswordManagerDriver", - "chrome::mojom::CacheStatsRecorder", - "chrome::mojom::NetBenchmarking", - "extensions::StashService", - "metrics::mojom::CallStackProfileCollector", - "mojom::ModuleEventSink", - "rappor::mojom::RapporRecorder", - "safe_browsing::mojom::SafeBrowsing", - "translate::mojom::ContentTranslateDriver" + "autofill.mojom.AutofillDriver", + "autofill.mojom.PasswordManagerDriver", + "chrome.mojom.CacheStatsRecorder", + "chrome.mojom.NetBenchmarking", + "extensions.StashService", + "metrics.mojom.CallStackProfileCollector", + "mojom.ModuleEventSink", + "rappor.mojom.RapporRecorder", + "safe_browsing.mojom.SafeBrowsing", + "translate.mojom.ContentTranslateDriver" ], "gpu": [ - "metrics::mojom::CallStackProfileCollector" + "metrics.mojom.CallStackProfileCollector" ], "ime:ime_driver": [], "profiling_client": [ - "heap_profiling::mojom::ProfilingClient" + "heap_profiling.mojom.ProfilingClient" ] }, "requires": { @@ -69,61 +69,61 @@ "navigation:frame": { "provides": { "renderer": [ - "autofill::mojom::AutofillDriver", - "autofill::mojom::PasswordManagerDriver", - "blink::mojom::BudgetService", - "blink::mojom::InstalledAppProvider", - "blink::mojom::MediaDownloadInProductHelp", - "blink::mojom::ShareService", - "blink::mojom::TextSuggestionHost", - "chrome::mojom::OpenSearchDocumentDescriptionHandler", - "chrome::mojom::PrerenderCanceler", - "contextual_search::mojom::ContextualSearchJsApiService", - "dom_distiller::mojom::DistillabilityService", - "dom_distiller::mojom::DistillerJavaScriptService", - "extensions::KeepAlive", - "extensions::mime_handler::MimeHandlerService", - "extensions::mojom::InlineInstall", - "media_router::mojom::MediaRouter", - "page_load_metrics::mojom::PageLoadMetrics", - "password_manager::mojom::CredentialManager", - "safe_browsing::mojom::PhishingDetectorClient", - "translate::mojom::ContentTranslateDriver", + "autofill.mojom.AutofillDriver", + "autofill.mojom.PasswordManagerDriver", + "blink.mojom.BudgetService", + "blink.mojom.InstalledAppProvider", + "blink.mojom.MediaDownloadInProductHelp", + "blink.mojom.ShareService", + "blink.mojom.TextSuggestionHost", + "chrome.mojom.OpenSearchDocumentDescriptionHandler", + "chrome.mojom.PrerenderCanceler", + "contextual_search.mojom.ContextualSearchJsApiService", + "dom_distiller.mojom.DistillabilityService", + "dom_distiller.mojom.DistillerJavaScriptService", + "extensions.KeepAlive", + "extensions.mime_handler.MimeHandlerService", + "extensions.mojom.InlineInstall", + "media_router.mojom.MediaRouter", + "page_load_metrics.mojom.PageLoadMetrics", + "password_manager.mojom.CredentialManager", + "safe_browsing.mojom.PhishingDetectorClient", + "translate.mojom.ContentTranslateDriver", // TODO(beng): These should be moved to a separate capability. - "media::mojom::MediaEngagementScoreDetailsProvider", - "mojom::BluetoothInternalsHandler", - "mojom::DiscardsDetailsProvider", - "mojom::InterventionsInternalsPageHandler", - "mojom::OmniboxPageHandler", - "mojom::PluginsPageHandler", - "mojom::ResetPasswordHandler", - "mojom::SiteEngagementDetailsProvider", - "mojom::UsbInternalsPageHandler" + "media.mojom.MediaEngagementScoreDetailsProvider", + "mojom.BluetoothInternalsHandler", + "mojom.DiscardsDetailsProvider", + "mojom.InterventionsInternalsPageHandler", + "mojom.OmniboxPageHandler", + "mojom.PluginsPageHandler", + "mojom.ResetPasswordHandler", + "mojom.SiteEngagementDetailsProvider", + "mojom.UsbInternalsPageHandler" ], "multidevice_setup" : [ - "chromeos::multidevice_setup::mojom::MultiDeviceSetup" + "chromeos.multidevice_setup.mojom.MultiDeviceSetup" ] } }, "navigation:dedicated_worker": { "provides": { "renderer": [ - "blink::mojom::BudgetService" + "blink.mojom.BudgetService" ] } }, "navigation:service_worker": { "provides": { "renderer": [ - "blink::mojom::BudgetService" + "blink.mojom.BudgetService" ] } }, "navigation:shared_worker": { "provides": { "renderer": [ - "blink::mojom::BudgetService" + "blink.mojom.BudgetService" ] } }
diff --git a/chrome/browser/chrome_content_gpu_manifest_overlay.json b/chrome/browser/chrome_content_gpu_manifest_overlay.json index ad9a70f..a590957 100644 --- a/chrome/browser/chrome_content_gpu_manifest_overlay.json +++ b/chrome/browser/chrome_content_gpu_manifest_overlay.json
@@ -4,13 +4,13 @@ "service_manager:connector": { "provides": { "browser": [ - "arc::mojom::ProtectedBufferManager", - "arc::mojom::VideoDecodeAccelerator", - "arc::mojom::VideoDecodeClient", - "arc::mojom::VideoEncodeAccelerator", - "arc::mojom::VideoEncodeClient", - "arc::mojom::VideoProtectedBufferAllocator", - "heap_profiling::mojom::ProfilingClient" + "arc.mojom.ProtectedBufferManager", + "arc.mojom.VideoDecodeAccelerator", + "arc.mojom.VideoDecodeClient", + "arc.mojom.VideoEncodeAccelerator", + "arc.mojom.VideoEncodeClient", + "arc.mojom.VideoProtectedBufferAllocator", + "heap_profiling.mojom.ProfilingClient" ] } }
diff --git a/chrome/browser/chrome_content_renderer_manifest_overlay.json b/chrome/browser/chrome_content_renderer_manifest_overlay.json index 48265a3..beb16f21 100644 --- a/chrome/browser/chrome_content_renderer_manifest_overlay.json +++ b/chrome/browser/chrome_content_renderer_manifest_overlay.json
@@ -5,27 +5,27 @@ "service_manager:connector": { "provides": { "browser": [ - "chrome::mojom::SearchBouncer", - "heap_profiling::mojom::ProfilingClient" + "chrome.mojom.SearchBouncer", + "heap_profiling.mojom.ProfilingClient" ] } }, "navigation:frame": { "provides": { "browser": [ - "autofill::mojom::AutofillAgent", - "autofill::mojom::PasswordAutofillAgent", - "autofill::mojom::PasswordGenerationAgent", - "blink::mojom::document_metadata::CopylessPaste", - "chrome::mojom::ChromeRenderFrame", - "chrome::mojom::ContentSettingsRenderer", - "chrome::mojom::PrerenderDispatcher", - "chrome::mojom::SandboxStatusExtension", - "dom_distiller::mojom::DistillerPageNotifierService", - "extensions::mojom::AppWindow", - "safe_browsing::mojom::ThreatReporter", - "safe_browsing::mojom::PhishingDetector", - "spellcheck::mojom::SpellCheckPanel" + "autofill.mojom.AutofillAgent", + "autofill.mojom.PasswordAutofillAgent", + "autofill.mojom.PasswordGenerationAgent", + "blink.mojom.document_metadata.CopylessPaste", + "chrome.mojom.ChromeRenderFrame", + "chrome.mojom.ContentSettingsRenderer", + "chrome.mojom.PrerenderDispatcher", + "chrome.mojom.SandboxStatusExtension", + "dom_distiller.mojom.DistillerPageNotifierService", + "extensions.mojom.AppWindow", + "safe_browsing.mojom.ThreatReporter", + "safe_browsing.mojom.PhishingDetector", + "spellcheck.mojom.SpellCheckPanel" ] }, "requires": {
diff --git a/chrome/browser/chrome_content_utility_manifest_overlay.json b/chrome/browser/chrome_content_utility_manifest_overlay.json index 088f746..03d7cd6b 100644 --- a/chrome/browser/chrome_content_utility_manifest_overlay.json +++ b/chrome/browser/chrome_content_utility_manifest_overlay.json
@@ -4,13 +4,13 @@ "service_manager:connector": { "provides": { "browser": [ - "chrome::mojom::DialDeviceDescriptionParser", - "chrome::mojom::ProfileImport", - "chrome::mojom::ShellHandler", - "payments::mojom::PaymentManifestParser", - "heap_profiling::mojom::ProfilingClient", - "proxy_resolver::mojom::ProxyResolverFactory", - "safe_json::mojom::SafeJsonParser" + "chrome.mojom.DialDeviceDescriptionParser", + "chrome.mojom.ProfileImport", + "chrome.mojom.ShellHandler", + "payments.mojom.PaymentManifestParser", + "heap_profiling.mojom.ProfilingClient", + "proxy_resolver.mojom.ProxyResolverFactory", + "safe_json.mojom.SafeJsonParser" ] } }
diff --git a/chrome/browser/chromeos/DEPS b/chrome/browser/chromeos/DEPS index a027094..781e521 100644 --- a/chrome/browser/chromeos/DEPS +++ b/chrome/browser/chromeos/DEPS
@@ -1,8 +1,6 @@ include_rules = [ - # TODO(crbug.com/678705): Convert to using mojo interfaces in - # //ash/public/interfaces and eliminate this. - "!ash", - # Public interfaces are OK. + "-ash", + # Public ash interfaces are OK. "+ash/public", # TODO(ananta): Remove this when we move files which display UI in @@ -37,6 +35,13 @@ ] specific_include_rules = { + ".*test.*": [ + "!ash", + ], + # TODO(mash): http://crbug.com/839265. + "preferences\.cc": [ + "+ash/shell.h", + ], "chrome_browser_main_chromeos\.cc": [ # TODO(mash): Support EventRewriters, http://crbug.com/647781. "+ash/events/event_rewriter_controller.h",
diff --git a/chrome/browser/chromeos/accessibility/DEPS b/chrome/browser/chromeos/accessibility/DEPS new file mode 100644 index 0000000..67aaabd --- /dev/null +++ b/chrome/browser/chromeos/accessibility/DEPS
@@ -0,0 +1,7 @@ +include_rules = [ + # TODO(crbug.com/678705): Convert to using mojo interfaces in + # //ash/public/interfaces and eliminate this. + "!ash", + # Public interfaces are OK. + "+ash/public", +]
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc index a67fdb2..bc4b1da 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -741,6 +741,8 @@ const bool enabled = profile_->GetPrefs()->GetBoolean( ash::prefs::kAccessibilitySelectToSpeakEnabled); + if (enabled) + select_to_speak_loader_->SetProfile(profile_, base::Closure()); if (select_to_speak_enabled_ == enabled) return;
diff --git a/chrome/browser/chromeos/app_mode/arc/DEPS b/chrome/browser/chromeos/app_mode/arc/DEPS new file mode 100644 index 0000000..ea33591 --- /dev/null +++ b/chrome/browser/chromeos/app_mode/arc/DEPS
@@ -0,0 +1,9 @@ +specific_include_rules = { + ".*test.*": [ + "!ash", + ], + # TODO(mash): http://crbug.com/756056. + "arc_kiosk_app_launcher\.cc": [ + "+ash/wm/window_util.h", + ], +}
diff --git a/chrome/browser/chromeos/arc/DEPS b/chrome/browser/chromeos/arc/DEPS new file mode 100644 index 0000000..67aaabd --- /dev/null +++ b/chrome/browser/chromeos/arc/DEPS
@@ -0,0 +1,7 @@ +include_rules = [ + # TODO(crbug.com/678705): Convert to using mojo interfaces in + # //ash/public/interfaces and eliminate this. + "!ash", + # Public interfaces are OK. + "+ash/public", +]
diff --git a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc index b7f45b54..47c0f53e 100644 --- a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc +++ b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc
@@ -559,6 +559,17 @@ } } +void ArcBluetoothBridge::DeviceMTUChanged(BluetoothAdapter* adapter, + BluetoothDevice* device, + uint16_t mtu) { + auto* bluetooth_instance = ARC_GET_INSTANCE_FOR_METHOD( + arc_bridge_service_->bluetooth(), OnMTUReceived); + if (!device->IsConnected() || bluetooth_instance == nullptr) + return; + bluetooth_instance->OnMTUReceived( + mojom::BluetoothAddress::From(device->GetAddress()), mtu); +} + void ArcBluetoothBridge::DeviceRemoved(BluetoothAdapter* adapter, BluetoothDevice* device) { if (!IsInstanceUp())
diff --git a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h index 8d56e5e..1004d34 100644 --- a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h +++ b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h
@@ -94,6 +94,10 @@ device::BluetoothDevice* device, bool new_paired_status) override; + void DeviceMTUChanged(device::BluetoothAdapter* adapter, + device::BluetoothDevice* device, + uint16_t mtu) override; + void DeviceRemoved(device::BluetoothAdapter* adapter, device::BluetoothDevice* device) override;
diff --git a/chrome/browser/chromeos/certificate_provider/pin_dialog_manager.cc b/chrome/browser/chromeos/certificate_provider/pin_dialog_manager.cc index 23702e10..b0a61cb 100644 --- a/chrome/browser/chromeos/certificate_provider/pin_dialog_manager.cc +++ b/chrome/browser/chromeos/certificate_provider/pin_dialog_manager.cc
@@ -4,7 +4,6 @@ #include "chrome/browser/chromeos/certificate_provider/pin_dialog_manager.h" -#include "ash/shell.h" #include "base/strings/string16.h" #include "chrome/browser/chromeos/login/ui/login_display_host.h" #include "chrome/browser/profiles/profile_manager.h"
diff --git a/chrome/browser/chromeos/display/DEPS b/chrome/browser/chromeos/display/DEPS index eb5c0ad..5c117ff 100644 --- a/chrome/browser/chromeos/display/DEPS +++ b/chrome/browser/chromeos/display/DEPS
@@ -4,4 +4,8 @@ "+ash/display/display_prefs.h", "+ash/shell.h", ], + # TODO(mash): http://crbug.com/839265. + "output_protection_controller_ash\.cc": [ + "+ash/shell.h", + ], }
diff --git a/chrome/browser/chromeos/extensions/DEPS b/chrome/browser/chromeos/extensions/DEPS index ee65a39..9854eb3 100644 --- a/chrome/browser/chromeos/extensions/DEPS +++ b/chrome/browser/chromeos/extensions/DEPS
@@ -4,3 +4,10 @@ "!chrome/browser/ui/views/select_file_dialog_extension.h", # DO NOT ADD ANY MORE ITEMS TO THE ABOVE LIST! ] + +specific_include_rules = { + # TODO(mash): http://crbug.com/646565. + "input_method_api\.cc": [ + "+ash/shell.h", + ], +}
diff --git a/chrome/browser/chromeos/extensions/public_session_permission_helper.cc b/chrome/browser/chromeos/extensions/public_session_permission_helper.cc index 33345c0..d6b7454 100644 --- a/chrome/browser/chromeos/extensions/public_session_permission_helper.cc +++ b/chrome/browser/chromeos/extensions/public_session_permission_helper.cc
@@ -150,8 +150,7 @@ messages.push_back(PermissionMessage( l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_CURRENT_HOST), extensions::PermissionIDSet())); - permissions_prompt->AddPermissions( - messages, ExtensionInstallPrompt::REGULAR_PERMISSIONS); + permissions_prompt->AddPermissions(messages); } // This Unretained is safe because the lifetime of this object is until
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index fdd51be..5edfce0 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -18,9 +18,6 @@ // TestCase: FileManagerBrowserTest parameters. struct TestCase { - TestCase(const char* name, GuestMode mode) - : test_name(name), guest_mode(mode) {} - explicit TestCase(const char* name) : test_name(name) {} @@ -33,6 +30,16 @@ return guest_mode; } + TestCase& InGuestMode() { + guest_mode = IN_GUEST_MODE; + return *this; + } + + TestCase& InIncognito() { + guest_mode = IN_INCOGNITO; + return *this; + } + const char* test_name = nullptr; GuestMode guest_mode = NOT_IN_GUEST_MODE; }; @@ -115,7 +122,7 @@ FileDisplay, FileManagerBrowserTest, ::testing::Values(TestCase("fileDisplayDownloads"), - TestCase("fileDisplayDownloads", IN_GUEST_MODE), + TestCase("fileDisplayDownloads").InGuestMode(), TestCase("fileDisplayDrive"), TestCase("fileDisplayMtp"), TestCase("fileSearch"), @@ -125,7 +132,7 @@ WRAPPED_INSTANTIATE_TEST_CASE_P( OpenVideoFiles, FileManagerBrowserTest, - ::testing::Values(TestCase("videoOpenDownloads", IN_GUEST_MODE), + ::testing::Values(TestCase("videoOpenDownloads").InGuestMode(), TestCase("videoOpenDownloads"), TestCase("videoOpenDrive"))); @@ -139,7 +146,7 @@ MAYBE_OpenAudioFiles, FileManagerBrowserTest, ::testing::Values( - TestCase("audioOpenDownloads", IN_GUEST_MODE), + TestCase("audioOpenDownloads").InGuestMode(), TestCase("audioOpenDownloads"), TestCase("audioOpenDrive"), TestCase("audioAutoAdvanceDrive"), @@ -159,7 +166,7 @@ WRAPPED_INSTANTIATE_TEST_CASE_P( MAYBE_OpenImageFiles, FileManagerBrowserTest, - ::testing::Values(TestCase("imageOpenDownloads", IN_GUEST_MODE), + ::testing::Values(TestCase("imageOpenDownloads").InGuestMode(), TestCase("imageOpenDownloads"), TestCase("imageOpenDrive"))); @@ -168,7 +175,7 @@ FileManagerBrowserTest, ::testing::Values( TestCase("selectCreateFolderDownloads"), - TestCase("createFolderDownloads", IN_GUEST_MODE), + TestCase("createFolderDownloads").InGuestMode(), TestCase("createFolderDownloads"), TestCase("createFolderDrive"))); @@ -176,16 +183,16 @@ KeyboardOperations, FileManagerBrowserTest, ::testing::Values( - TestCase("keyboardDeleteDownloads", IN_GUEST_MODE), + TestCase("keyboardDeleteDownloads").InGuestMode(), TestCase("keyboardDeleteDownloads"), TestCase("keyboardDeleteDrive"), - TestCase("keyboardCopyDownloads", IN_GUEST_MODE), + TestCase("keyboardCopyDownloads").InGuestMode(), TestCase("keyboardCopyDownloads"), TestCase("keyboardCopyDrive"), - TestCase("renameFileDownloads", IN_GUEST_MODE), + TestCase("renameFileDownloads").InGuestMode(), TestCase("renameFileDownloads"), TestCase("renameFileDrive"), - TestCase("renameNewFolderDownloads", IN_GUEST_MODE), + TestCase("renameNewFolderDownloads").InGuestMode(), TestCase("renameNewFolderDownloads"), TestCase("renameNewFolderDrive"))); @@ -207,27 +214,27 @@ FileManagerBrowserTest, ::testing::Values( TestCase("dirCopyWithContextMenu"), - TestCase("dirCopyWithContextMenu", IN_GUEST_MODE), + TestCase("dirCopyWithContextMenu").InGuestMode(), TestCase("dirCopyWithKeyboard"), - TestCase("dirCopyWithKeyboard", IN_GUEST_MODE), + TestCase("dirCopyWithKeyboard").InGuestMode(), TestCase("dirCopyWithoutChangingCurrent"), TestCase("dirCutWithContextMenu"), - TestCase("dirCutWithContextMenu", IN_GUEST_MODE), + TestCase("dirCutWithContextMenu").InGuestMode(), TestCase("dirCutWithKeyboard"), - TestCase("dirCutWithKeyboard", IN_GUEST_MODE), + TestCase("dirCutWithKeyboard").InGuestMode(), TestCase("dirPasteWithoutChangingCurrent"), TestCase("dirPasteWithContextMenu"), - TestCase("dirPasteWithContextMenu", IN_GUEST_MODE), + TestCase("dirPasteWithContextMenu").InGuestMode(), TestCase("dirPasteWithoutChangingCurrent"), TestCase("dirRenameWithContextMenu"), - TestCase("dirRenameWithContextMenu", IN_GUEST_MODE), + TestCase("dirRenameWithContextMenu").InGuestMode(), TestCase("dirRenameWithKeyboard"), - TestCase("dirRenameWithKeyboard", IN_GUEST_MODE), + TestCase("dirRenameWithKeyboard").InGuestMode(), TestCase("dirRenameWithoutChangingCurrent"), TestCase("dirRenameToEmptyString"), - TestCase("dirRenameToEmptyString", IN_GUEST_MODE), + TestCase("dirRenameToEmptyString").InGuestMode(), TestCase("dirRenameToExisting"), - TestCase("dirRenameToExisting", IN_GUEST_MODE), + TestCase("dirRenameToExisting").InGuestMode(), TestCase("dirCreateWithContextMenu"), TestCase("dirCreateWithKeyboard"), TestCase("dirCreateWithoutChangingCurrent"))); @@ -257,9 +264,9 @@ WRAPPED_INSTANTIATE_TEST_CASE_P( RestorePrefs, FileManagerBrowserTest, - ::testing::Values(TestCase("restoreSortColumn", IN_GUEST_MODE), + ::testing::Values(TestCase("restoreSortColumn").InGuestMode(), TestCase("restoreSortColumn"), - TestCase("restoreCurrentView", IN_GUEST_MODE), + TestCase("restoreCurrentView").InGuestMode(), TestCase("restoreCurrentView"))); WRAPPED_INSTANTIATE_TEST_CASE_P( @@ -272,13 +279,13 @@ RestoreGeometry, FileManagerBrowserTest, ::testing::Values(TestCase("restoreGeometry"), - TestCase("restoreGeometry", IN_GUEST_MODE), + TestCase("restoreGeometry").InGuestMode(), TestCase("restoreGeometryMaximized"))); WRAPPED_INSTANTIATE_TEST_CASE_P( Traverse, FileManagerBrowserTest, - ::testing::Values(TestCase("traverseDownloads", IN_GUEST_MODE), + ::testing::Values(TestCase("traverseDownloads").InGuestMode(), TestCase("traverseDownloads"), TestCase("traverseDrive"))); @@ -292,7 +299,7 @@ FileManagerBrowserTest, ::testing::Values( TestCase("executeDefaultTaskDownloads"), - TestCase("executeDefaultTaskDownloads",IN_GUEST_MODE))); + TestCase("executeDefaultTaskDownloads").InGuestMode())); WRAPPED_INSTANTIATE_TEST_CASE_P( ExecuteDefaultTaskOnDrive, @@ -304,7 +311,7 @@ FileManagerBrowserTest, ::testing::Values( TestCase("defaultTaskDialogDownloads"), - TestCase("defaultTaskDialogDownloads", IN_GUEST_MODE), + TestCase("defaultTaskDialogDownloads").InGuestMode(), TestCase("defaultTaskDialogDrive"))); WRAPPED_INSTANTIATE_TEST_CASE_P( @@ -325,7 +332,7 @@ SortColumns, FileManagerBrowserTest, ::testing::Values(TestCase("sortColumns"), - TestCase("sortColumns",IN_GUEST_MODE))); + TestCase("sortColumns").InGuestMode())); WRAPPED_INSTANTIATE_TEST_CASE_P( TabIndex, @@ -342,7 +349,7 @@ TabindexFocusDownloads, FileManagerBrowserTestWithLegacyEventDispatch, ::testing::Values(TestCase("tabindexFocusDownloads"), - TestCase("tabindexFocusDownloads", IN_GUEST_MODE))); + TestCase("tabindexFocusDownloads").InGuestMode())); WRAPPED_INSTANTIATE_TEST_CASE_P( TabindexFocusDirectorySelected, @@ -355,7 +362,7 @@ ::testing::Values( TestCase("tabindexOpenDialogDrive"), TestCase("tabindexOpenDialogDownloads"), - TestCase("tabindexOpenDialogDownloads", IN_GUEST_MODE))); + TestCase("tabindexOpenDialogDownloads").InGuestMode())); WRAPPED_INSTANTIATE_TEST_CASE_P( TabindexSaveFileDialog, @@ -363,16 +370,16 @@ ::testing::Values( TestCase("tabindexSaveFileDialogDrive"), TestCase("tabindexSaveFileDialogDownloads"), - TestCase("tabindexSaveFileDialogDownloads", IN_GUEST_MODE))); + TestCase("tabindexSaveFileDialogDownloads").InGuestMode())); WRAPPED_INSTANTIATE_TEST_CASE_P( OpenFileDialog, FileManagerBrowserTest, ::testing::Values(TestCase("openFileDialogDownloads"), - TestCase("openFileDialogDownloads", IN_GUEST_MODE), + TestCase("openFileDialogDownloads").InGuestMode(), TestCase("openFileDialogDrive"), - TestCase("openFileDialogDownloads", IN_INCOGNITO), - TestCase("openFileDialogDrive", IN_INCOGNITO), + TestCase("openFileDialogDownloads").InIncognito(), + TestCase("openFileDialogDrive").InIncognito(), TestCase("openFileDialogUnload"))); // Test does too much? Flaky on all bots: http://crbug.com/500966 @@ -391,7 +398,7 @@ ShowGridView, FileManagerBrowserTest, ::testing::Values(TestCase("showGridViewDownloads"), - TestCase("showGridViewDownloads", IN_GUEST_MODE), + TestCase("showGridViewDownloads").InGuestMode(), TestCase("showGridViewDrive"))); WRAPPED_INSTANTIATE_TEST_CASE_P( @@ -526,22 +533,45 @@ DISALLOW_COPY_AND_ASSIGN(MultiProfileFileManagerBrowserTest); }; -IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, PRE_BasicDownloads) { +// Flaky crashes in ash::tray::MultiProfileMediaTrayView. +// https://crbug.com/842442 +#if defined(MEMORY_SANITIZER) || defined(ADDRESS_SANITIZER) || \ + defined(LEAK_SANITIZER) +#define MAYBE_PRE_BasicDownloads DISABLED_PRE_BasicDownloads +#define MAYBE_BasicDownloads DISABLED_BasicDownloads +#else +#define MAYBE_PRE_BasicDownloads PRE_BasicDownloads +#define MAYBE_BasicDownloads BasicDownloads +#endif +IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, + MAYBE_PRE_BasicDownloads) { AddAllUsers(); } -IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, BasicDownloads) { +IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, + MAYBE_BasicDownloads) { AddAllUsers(); // Sanity check that normal operations work in multi-profile. set_test_case_name("keyboardCopyDownloads"); StartTest(); } -IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, PRE_BasicDrive) { +// Flaky crashes in ash::tray::MultiProfileMediaTrayView. +// https://crbug.com/842442 +#if defined(MEMORY_SANITIZER) || defined(ADDRESS_SANITIZER) || \ + defined(LEAK_SANITIZER) +#define MAYBE_PRE_BasicDrive DISABLED_PRE_BasicDrive +#define MAYBE_BasicDrive DISABLED_BasicDrive +#else +#define MAYBE_PRE_BasicDrive PRE_BasicDrive +#define MAYBE_BasicDrive BasicDrive +#endif +IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, + MAYBE_PRE_BasicDrive) { AddAllUsers(); } -IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, BasicDrive) { +IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, MAYBE_BasicDrive) { AddAllUsers(); // Sanity check that normal operations work in multi-profile. set_test_case_name("keyboardCopyDrive");
diff --git a/chrome/browser/chromeos/hats/DEPS b/chrome/browser/chromeos/hats/DEPS deleted file mode 100644 index 4a6b89f..0000000 --- a/chrome/browser/chromeos/hats/DEPS +++ /dev/null
@@ -1,6 +0,0 @@ -include_rules = [ - # TODO(crbug.com/678705): Remove this explicit rule when all of - # //chrome/browser/chromeos/ is free of its +ash dependency. - "-ash", - "+ash/public", -]
diff --git a/chrome/browser/chromeos/input_method/DEPS b/chrome/browser/chromeos/input_method/DEPS index 20ddf1e..f0997c6 100644 --- a/chrome/browser/chromeos/input_method/DEPS +++ b/chrome/browser/chromeos/input_method/DEPS
@@ -1,4 +1,9 @@ include_rules = [ + # TODO(crbug.com/678705): Convert to using mojo interfaces in + # //ash/public/interfaces and eliminate this. + "!ash", + # Public interfaces are OK. + "+ash/public", "-chrome", "+chrome/browser/chromeos/input_method", "+chrome/grit",
diff --git a/chrome/browser/chromeos/lock_screen_apps/state_controller.cc b/chrome/browser/chromeos/lock_screen_apps/state_controller.cc index 512c039..89c0ebe 100644 --- a/chrome/browser/chromeos/lock_screen_apps/state_controller.cc +++ b/chrome/browser/chromeos/lock_screen_apps/state_controller.cc
@@ -9,7 +9,6 @@ #include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/stylus_utils.h" #include "ash/public/interfaces/constants.mojom.h" -#include "ash/wm/window_animations.h" #include "base/base64.h" #include "base/bind.h" #include "base/command_line.h" @@ -42,6 +41,7 @@ #include "extensions/common/extension.h" #include "services/service_manager/public/cpp/connector.h" #include "ui/events/devices/input_device_manager.h" +#include "ui/wm/core/window_animations.h" using ash::mojom::CloseLockScreenNoteReason; using ash::mojom::LockScreenNoteOrigin;
diff --git a/chrome/browser/chromeos/login/DEPS b/chrome/browser/chromeos/login/DEPS index 5bd2d83..b5486d0 100644 --- a/chrome/browser/chromeos/login/DEPS +++ b/chrome/browser/chromeos/login/DEPS
@@ -1,6 +1,10 @@ include_rules = [ - "+ash/public/cpp", - "+ash/public/interfaces", + # TODO(crbug.com/678705): Convert to using mojo interfaces in + # //ash/public/interfaces and eliminate this. + "!ash", + # Public interfaces are OK. + "+ash/public", + "+components/captive_portal", "+components/login", "+components/toolbar",
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc b/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc index 1272914..04be6e74 100644 --- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc +++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_check_screen.cc
@@ -76,9 +76,7 @@ void AutoEnrollmentCheckScreen::Show() { // If the decision got made already, don't show the screen at all. - if (AutoEnrollmentController::GetMode() != - AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT || - IsCompleted()) { + if (!AutoEnrollmentController::IsEnabled() || IsCompleted()) { SignalCompletion(); return; } @@ -210,7 +208,7 @@ return false; case policy::AUTO_ENROLLMENT_STATE_SERVER_ERROR: if (auto_enrollment_controller_->GetFRERequirement() != - AutoEnrollmentController::EXPLICITLY_REQUIRED) { + AutoEnrollmentController::FRERequirement::kExplicitlyRequired) { return false; } // Fall to the same behavior like any connection error if the device is @@ -265,7 +263,7 @@ case policy::AUTO_ENROLLMENT_STATE_SERVER_ERROR: // Server errors should block OOBE for enrolled devices. return auto_enrollment_controller_->GetFRERequirement() != - AutoEnrollmentController::EXPLICITLY_REQUIRED; + AutoEnrollmentController::FRERequirement::kExplicitlyRequired; case policy::AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT: case policy::AUTO_ENROLLMENT_STATE_TRIGGER_ZERO_TOUCH: case policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT:
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc index 357573f..35f3a1a 100644 --- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc +++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
@@ -19,11 +19,16 @@ #include "chromeos/system/statistics_provider.h" #include "components/policy/core/common/cloud/device_management_service.h" #include "net/url_request/url_request_context_getter.h" +#include "rlz/chromeos/lib/rlz_value_store_chromeos.h" namespace chromeos { namespace { +// Maximum number of bits of the identifer hash to send during initial +// enrollment check. +const int kInitialEnrollmentModulusPowerLimit = 6; + // Maximum time to wait before forcing a decision. Note that download time for // state key buckets can be non-negligible, especially on 2G connections. const int kSafeguardTimeoutSeconds = 90; @@ -57,14 +62,15 @@ std::string FRERequirementToString( AutoEnrollmentController::FRERequirement requirement) { + using FRERequirement = AutoEnrollmentController::FRERequirement; switch (requirement) { - case AutoEnrollmentController::REQUIRED: + case FRERequirement::kRequired: return "Auto-enrollment required."; - case AutoEnrollmentController::NOT_REQUIRED: + case FRERequirement::kNotRequired: return "Auto-enrollment disabled: first setup."; - case AutoEnrollmentController::EXPLICITLY_REQUIRED: + case FRERequirement::kExplicitlyRequired: return "Auto-enrollment required: flag in VPD."; - case AutoEnrollmentController::EXPLICITLY_NOT_REQUIRED: + case FRERequirement::kExplicitlyNotRequired: return "Auto-enrollment disabled: flag in VPD."; } @@ -72,6 +78,31 @@ return std::string(); } +// Returns true if this is an official build and the device has chrome firmware. +bool IsOfficialChrome() { +#if defined(OFFICIAL_BUILD) + std::string firmware_type; + const bool non_chrome_firmware = + system::StatisticsProvider::GetInstance()->GetMachineStatistic( + system::kFirmwareTypeKey, &firmware_type) && + firmware_type == system::kFirmwareTypeValueNonchrome; + return !non_chrome_firmware; +#else + return false; +#endif +} + +// Schedules immediate initialization of the |DeviceManagementService| and +// returns it. +policy::DeviceManagementService* InitializeAndGetDeviceManagementService() { + policy::BrowserPolicyConnectorChromeOS* connector = + g_browser_process->platform_part()->browser_policy_connector_chromeos(); + policy::DeviceManagementService* service = + connector->device_management_service(); + service->ScheduleInitialization(0); + return service; +} + } // namespace const char AutoEnrollmentController::kForcedReEnrollmentAlways[] = "always"; @@ -79,32 +110,60 @@ const char AutoEnrollmentController::kForcedReEnrollmentOfficialBuild[] = "official"; +const char AutoEnrollmentController::kInitialEnrollmentAlways[] = "always"; +const char AutoEnrollmentController::kInitialEnrollmentNever[] = "never"; +const char AutoEnrollmentController::kInitialEnrollmentOfficialBuild[] = + "official"; + // static -AutoEnrollmentController::Mode AutoEnrollmentController::GetMode() { +bool AutoEnrollmentController::IsFREEnabled() { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); std::string command_line_mode = command_line->GetSwitchValueASCII( switches::kEnterpriseEnableForcedReEnrollment); - if (command_line_mode == kForcedReEnrollmentAlways) { - return MODE_FORCED_RE_ENROLLMENT; - } else if (command_line_mode.empty() || - command_line_mode == kForcedReEnrollmentOfficialBuild) { -#if defined(OFFICIAL_BUILD) - std::string firmware_type; - const bool non_chrome_firmware = - system::StatisticsProvider::GetInstance()->GetMachineStatistic( - system::kFirmwareTypeKey, &firmware_type) && - firmware_type == system::kFirmwareTypeValueNonchrome; - return non_chrome_firmware ? MODE_NONE : MODE_FORCED_RE_ENROLLMENT; -#else - return MODE_NONE; -#endif - } else if (command_line_mode == kForcedReEnrollmentNever) { - return MODE_NONE; + if (command_line_mode == kForcedReEnrollmentAlways) + return true; + + if (command_line_mode.empty() || + command_line_mode == kForcedReEnrollmentOfficialBuild) { + return IsOfficialChrome(); } - LOG(FATAL) << "Unknown auto-enrollment mode " << command_line_mode; - return MODE_NONE; + if (command_line_mode == kForcedReEnrollmentNever) + return false; + + LOG(FATAL) << "Unknown auto-enrollment mode for FRE " << command_line_mode; + return false; +} + +// static +bool AutoEnrollmentController::IsInitialEnrollmentEnabled() { + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + + if (!command_line->HasSwitch(switches::kEnterpriseEnableInitialEnrollment)) + return false; + + std::string command_line_mode = command_line->GetSwitchValueASCII( + switches::kEnterpriseEnableInitialEnrollment); + if (command_line_mode == kInitialEnrollmentAlways) + return true; + + if (command_line_mode.empty() || + command_line_mode == kInitialEnrollmentOfficialBuild) { + return IsOfficialChrome(); + } + + if (command_line_mode == kInitialEnrollmentNever) + return false; + + LOG(FATAL) << "Unknown auto-enrollment mode for initial enrollment " + << command_line_mode; + return false; +} + +// static +bool AutoEnrollmentController::IsEnabled() { + return IsFREEnabled() || IsInitialEnrollmentEnabled(); } // static @@ -118,15 +177,51 @@ if (fre_flag_found) { if (check_enrollment_value == "0") - return AutoEnrollmentController::EXPLICITLY_NOT_REQUIRED; + return FRERequirement::kExplicitlyNotRequired; if (check_enrollment_value == "1") - return AutoEnrollmentController::EXPLICITLY_REQUIRED; + return FRERequirement::kExplicitlyRequired; } if (!provider->GetMachineStatistic(system::kActivateDateKey, nullptr) && !provider->GetEnterpriseMachineID().empty()) { - return AutoEnrollmentController::NOT_REQUIRED; + return FRERequirement::kNotRequired; } - return AutoEnrollmentController::REQUIRED; + return FRERequirement::kRequired; +} + +// static +AutoEnrollmentController::InitialEnrollmentRequirement +AutoEnrollmentController::GetInitialEnrollmentRequirement() { + system::StatisticsProvider* provider = + system::StatisticsProvider::GetInstance(); + rlz_lib::RlzValueStoreChromeOS::EmbargoState embargo_state = + rlz_lib::RlzValueStoreChromeOS::GetRlzEmbargoState(); + if (embargo_state == rlz_lib::RlzValueStoreChromeOS::EmbargoState::kInvalid) { + LOG(WARNING) + << "Skip Initial Enrollment Check due to invalid embargo date."; + // TODO(pmarko): UMA Stat. + return InitialEnrollmentRequirement::kNotRequired; + } + if (embargo_state == + rlz_lib::RlzValueStoreChromeOS::EmbargoState::kNotPassed) { + VLOG(1) << "Skip Initial Enrollment Check due to not-passed embargo date."; + return InitialEnrollmentRequirement::kNotRequired; + } + + if (provider->GetEnterpriseMachineID().empty()) { + LOG(WARNING) + << "Skip Initial Enrollment Check due to missing serial number."; + return InitialEnrollmentRequirement::kNotRequired; + } + + std::string rlz_brand_code; + const bool rlz_brand_code_found = + provider->GetMachineStatistic(system::kRlzBrandCodeKey, &rlz_brand_code); + if (!rlz_brand_code_found || rlz_brand_code.empty()) { + LOG(WARNING) << "Skip Initial Enrollment Check due to missing brand code."; + return InitialEnrollmentRequirement::kNotRequired; + } + + return InitialEnrollmentRequirement::kRequired; } AutoEnrollmentController::AutoEnrollmentController() {} @@ -151,39 +246,18 @@ break; } - // Skip if GAIA is disabled or modulus configuration is not present. - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(chromeos::switches::kDisableGaiaServices) || - (!command_line->HasSwitch( - chromeos::switches::kEnterpriseEnrollmentInitialModulus) && - !command_line->HasSwitch( - chromeos::switches::kEnterpriseEnrollmentModulusLimit))) { - VLOG(1) << "Auto-enrollment disabled: command line."; - UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); - return; - } - - // Skip if mode comes up as none. - if (GetMode() == MODE_NONE) { - VLOG(1) << "Auto-enrollment disabled: no mode."; - UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); - return; - } - - fre_requirement_ = GetFRERequirement(); - VLOG(1) << FRERequirementToString(fre_requirement_); - if (fre_requirement_ == EXPLICITLY_NOT_REQUIRED || - fre_requirement_ == NOT_REQUIRED) { - UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); - return; - } - // If a client is being created or already existing, bail out. if (client_start_weak_factory_.HasWeakPtrs() || client_) { LOG(ERROR) << "Auto-enrollment client is already running."; return; } + DetermineAutoEnrollmentCheckType(); + if (auto_enrollment_check_type_ == AutoEnrollmentCheckType::kNone) { + UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); + return; + } + // Arm the belts-and-suspenders timer to avoid hangs. safeguard_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(kSafeguardTimeoutSeconds), @@ -210,16 +284,111 @@ return progress_callbacks_.Add(callback); } +void AutoEnrollmentController::DetermineAutoEnrollmentCheckType() { + // Skip everything if neither FRE nor Initial Enrollment are enabled. + if (!IsEnabled()) { + VLOG(1) << "Auto-enrollment disabled"; + auto_enrollment_check_type_ = AutoEnrollmentCheckType::kNone; + return; + } + + // Skip everything if GAIA is disabled. + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switches::kDisableGaiaServices)) { + VLOG(1) << "Auto-enrollment disabled: command line (gaia)."; + auto_enrollment_check_type_ = AutoEnrollmentCheckType::kNone; + return; + } + + // Skip everything if the device was in consumer mode previously. + fre_requirement_ = GetFRERequirement(); + VLOG(1) << FRERequirementToString(fre_requirement_); + if (fre_requirement_ == FRERequirement::kExplicitlyNotRequired) { + VLOG(1) << "Auto-enrollment disabled: VPD"; + auto_enrollment_check_type_ = AutoEnrollmentCheckType::kNone; + return; + } + + if (ShouldDoFRECheck(command_line, fre_requirement_)) { + // FRE has precedence over Initial Enrollment. + VLOG(1) << "Proceeding with FRE"; + auto_enrollment_check_type_ = AutoEnrollmentCheckType::kFRE; + return; + } + + if (ShouldDoInitialEnrollmentCheck()) { + VLOG(1) << "Proceeding with Initial Enrollment"; + auto_enrollment_check_type_ = AutoEnrollmentCheckType::kInitialEnrollment; + return; + } + + auto_enrollment_check_type_ = AutoEnrollmentCheckType::kNone; +} + +// static +bool AutoEnrollmentController::ShouldDoFRECheck( + base::CommandLine* command_line, + FRERequirement fre_requirement) { + // Skip FRE check if modulus configuration is not present. + if (!command_line->HasSwitch(switches::kEnterpriseEnrollmentInitialModulus) && + !command_line->HasSwitch(switches::kEnterpriseEnrollmentModulusLimit)) { + VLOG(1) << "FRE disabled: command line (config)"; + return false; + } + + // Skip FRE check if it is not enabled by command-line switches. + if (!IsFREEnabled()) { + VLOG(1) << "FRE disabled"; + return false; + } + + // Skip FRE check if it is not required according to the device state. + if (fre_requirement == FRERequirement::kNotRequired) + return false; + + return true; +} + +// static +bool AutoEnrollmentController::ShouldDoInitialEnrollmentCheck() { + // Skip Initial Enrollment check if it is not enabled according to + // command-line flags. + if (!IsInitialEnrollmentEnabled()) + return false; + + // Skip Initial Enrollment check if it is not required according to the + // device state. + if (GetInitialEnrollmentRequirement() == + InitialEnrollmentRequirement::kNotRequired) + return false; + + return true; +} + void AutoEnrollmentController::OnOwnershipStatusCheckDone( DeviceSettingsService::OwnershipStatus status) { switch (status) { case DeviceSettingsService::OWNERSHIP_NONE: - g_browser_process->platform_part() - ->browser_policy_connector_chromeos() - ->GetStateKeysBroker() - ->RequestStateKeys( - base::Bind(&AutoEnrollmentController::StartClient, - client_start_weak_factory_.GetWeakPtr())); + switch (auto_enrollment_check_type_) { + case AutoEnrollmentCheckType::kFRE: + // For FRE, request state keys first. + g_browser_process->platform_part() + ->browser_policy_connector_chromeos() + ->GetStateKeysBroker() + ->RequestStateKeys( + base::BindOnce(&AutoEnrollmentController::StartClientForFRE, + client_start_weak_factory_.GetWeakPtr())); + break; + case AutoEnrollmentCheckType::kInitialEnrollment: + StartClientForInitialEnrollment(); + break; + case AutoEnrollmentCheckType::kNone: + // The ownership check is only triggered if + // |auto_enrollment_check_type_| indicates that an auto-enrollment + // check should be done. + NOTREACHED(); + break; + } return; case DeviceSettingsService::OWNERSHIP_TAKEN: VLOG(1) << "Device already owned, skipping auto-enrollment check."; @@ -232,35 +401,32 @@ } } -void AutoEnrollmentController::StartClient( +void AutoEnrollmentController::StartClientForFRE( const std::vector<std::string>& state_keys) { if (state_keys.empty()) { LOG(ERROR) << "No state keys available"; - if (fre_requirement_ == EXPLICITLY_REQUIRED) { + if (fre_requirement_ == FRERequirement::kExplicitlyRequired) { // Retry to fetch the state keys. For devices where FRE is required to be // checked, we can't proceed with empty state keys. g_browser_process->platform_part() ->browser_policy_connector_chromeos() ->GetStateKeysBroker() ->RequestStateKeys( - base::Bind(&AutoEnrollmentController::StartClient, - client_start_weak_factory_.GetWeakPtr())); + base::BindOnce(&AutoEnrollmentController::StartClientForFRE, + client_start_weak_factory_.GetWeakPtr())); } else { UpdateState(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); } return; } - policy::BrowserPolicyConnectorChromeOS* connector = - g_browser_process->platform_part()->browser_policy_connector_chromeos(); policy::DeviceManagementService* service = - connector->device_management_service(); - service->ScheduleInitialization(0); + InitializeAndGetDeviceManagementService(); int power_initial = - GetSanitizedArg(chromeos::switches::kEnterpriseEnrollmentInitialModulus); + GetSanitizedArg(switches::kEnterpriseEnrollmentInitialModulus); int power_limit = - GetSanitizedArg(chromeos::switches::kEnterpriseEnrollmentModulusLimit); + GetSanitizedArg(switches::kEnterpriseEnrollmentModulusLimit); if (power_initial > power_limit) { LOG(ERROR) << "Initial auto-enrollment modulus is larger than the limit, " "clamping to the limit."; @@ -274,7 +440,40 @@ g_browser_process->system_request_context(), state_keys.front(), power_initial, power_limit); - VLOG(1) << "Starting auto-enrollment client."; + VLOG(1) << "Starting auto-enrollment client for FRE."; + client_->Start(); +} + +void AutoEnrollmentController::StartClientForInitialEnrollment() { + policy::DeviceManagementService* service = + InitializeAndGetDeviceManagementService(); + + // Initial Enrollment does not transfer any data in the initial exchange, and + // supports uploading up to |kInitialEnrollmentModulusPowerLimit| bits of the + // identifier hash. + const int power_initial = 0; + const int power_limit = kInitialEnrollmentModulusPowerLimit; + + system::StatisticsProvider* provider = + system::StatisticsProvider::GetInstance(); + std::string serial_number = provider->GetEnterpriseMachineID(); + std::string rlz_brand_code; + const bool rlz_brand_code_found = + provider->GetMachineStatistic(system::kRlzBrandCodeKey, &rlz_brand_code); + // The initial enrollment check should not be started if the serial number or + // brand code are missing. This is ensured in + // |GetInitialEnrollmentRequirement|. + CHECK(!serial_number.empty() && rlz_brand_code_found && + !rlz_brand_code.empty()); + + client_ = policy::AutoEnrollmentClient::CreateForInitialEnrollment( + base::BindRepeating(&AutoEnrollmentController::UpdateState, + weak_ptr_factory_.GetWeakPtr()), + service, g_browser_process->local_state(), + g_browser_process->system_request_context(), serial_number, + rlz_brand_code, power_initial, power_limit); + + VLOG(1) << "Starting auto-enrollment client for Initial Enrollment."; client_->Start(); } @@ -308,7 +507,7 @@ DCHECK_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, state_); cryptohome::RemoveFirmwareManagementParametersRequest request; - chromeos::DBusThreadManager::Get() + DBusThreadManager::Get() ->GetCryptohomeClient() ->RemoveFirmwareManagementParametersFromTpm( request, @@ -336,7 +535,7 @@ // REQUIRED case as well. // TODO(mnissler): Add UMA to track results of auto-enrollment checks. if (client_start_weak_factory_.HasWeakPtrs() && - fre_requirement_ != EXPLICITLY_REQUIRED) { + fre_requirement_ != FRERequirement::kExplicitlyRequired) { // If the callbacks to check ownership status or state keys are still // pending, there's a bug in the code running on the device. No use in // retrying anything, need to fix that bug.
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h index 097796b4..47c9de8 100644 --- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h +++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
@@ -17,6 +17,10 @@ #include "chrome/browser/chromeos/policy/auto_enrollment_client.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" +namespace base { +class CommandLine; +} + namespace cryptohome { class BaseReply; } // namespace cryptohome @@ -36,33 +40,55 @@ static const char kForcedReEnrollmentNever[]; static const char kForcedReEnrollmentOfficialBuild[]; - // Auto-enrollment modes. - enum Mode { - // No automatic enrollment. - MODE_NONE, - // Forced re-enrollment. - MODE_FORCED_RE_ENROLLMENT, - }; + // Parameter values for the kEnterpriseEnableInitialEnrollment flag. + static const char kInitialEnrollmentAlways[]; + static const char kInitialEnrollmentNever[]; + static const char kInitialEnrollmentOfficialBuild[]; // Requirement for forced re-enrollment check. - enum FRERequirement { + enum class FRERequirement { // The device was setup (has kActivateDateKey) but doesn't have the // kCheckEnrollmentKey entry in VPD, or the VPD is corrupted. - REQUIRED, + kRequired, // The device doesn't have kActivateDateKey, nor kCheckEnrollmentKey entry // while the serial number has been successfully read from VPD. - NOT_REQUIRED, + kNotRequired, // FRE check explicitly required by the flag in VPD. - EXPLICITLY_REQUIRED, + kExplicitlyRequired, // FRE check to be skipped, explicitly stated by the flag in VPD. - EXPLICITLY_NOT_REQUIRED, + kExplicitlyNotRequired, }; - // Gets the auto-enrollment mode based on command-line flags and official - // build status. - static Mode GetMode(); + // Requirement for initial enrollment check. + enum class InitialEnrollmentRequirement { + // Initial enrollment check is not required. + kNotRequired, + // Initial enrollment check is required. + kRequired + }; - // Returns whether the auto-enrollment check is required. When + // Type of auto enrollment check. + enum class AutoEnrollmentCheckType { + kNone, + // Forced Re-Enrollment check. + kFRE, + // Initial enrollment check. + kInitialEnrollment + }; + + // Returns true if forced re-enrollment is enabled based on command-line flags + // and official build status. + static bool IsFREEnabled(); + + // Returns true if initial enrollment is enabled based on command-line + // flags and official build status. + static bool IsInitialEnrollmentEnabled(); + + // Returns true if any auto enrollment check is enabled based on command-line + // flags and official build status. + static bool IsEnabled(); + + // Returns whether the FRE auto-enrollment check is required. When // kCheckEnrollmentKey VPD entry is present, it is explicitly stating whether // the forced re-enrollment is required or not. Otherwise, for backward // compatibility with devices upgrading from an older version of Chrome OS, @@ -74,6 +100,15 @@ // is required. static FRERequirement GetFRERequirement(); + // Returns whether the initial enrollment check is required. + static InitialEnrollmentRequirement GetInitialEnrollmentRequirement(); + + // Returns the type of auto-enrollment check performed by this client. This + // will be |AutoEnrollmentCheckType::kNone| before |Start()| has been called. + AutoEnrollmentCheckType auto_enrollment_check_type() const { + return auto_enrollment_check_type_; + } + AutoEnrollmentController(); ~AutoEnrollmentController(); @@ -91,12 +126,27 @@ policy::AutoEnrollmentState state() const { return state_; } private: + // Determines the type of auto-enrollment check that should be done. Sets + // |auto_enrollment_check_type_| and |fre_requirement_|. + void DetermineAutoEnrollmentCheckType(); + + // Returns true if the FRE check should be done according to command-line + // switches and device state. + static bool ShouldDoFRECheck(base::CommandLine* command_line, + FRERequirement fre_requirement); + // Returns true if the Initial Enrollment check should be done according to + // command-line switches and device state. + static bool ShouldDoInitialEnrollmentCheck(); + // Callback for the ownership status check. void OnOwnershipStatusCheckDone( DeviceSettingsService::OwnershipStatus status); - // Starts the auto-enrollment client. - void StartClient(const std::vector<std::string>& state_keys); + // Starts the auto-enrollment client for forced re-enrollment. + void StartClientForFRE(const std::vector<std::string>& state_keys); + + // Starts the auto-enrollment client for initial enrollment. + void StartClientForInitialEnrollment(); // Sets |state_| and notifies |progress_callbacks_|. void UpdateState(policy::AutoEnrollmentState state); @@ -136,7 +186,12 @@ base::Timer safeguard_timer_{false, false}; // Whether the forced re-enrollment check has to be applied. - FRERequirement fre_requirement_ = REQUIRED; + FRERequirement fre_requirement_ = FRERequirement::kRequired; + + // Which type of auto-enrollment check is being performed by this + // |AutoEnrollmentClient|. + AutoEnrollmentCheckType auto_enrollment_check_type_ = + AutoEnrollmentCheckType::kNone; // TODO(igorcov): Merge the two weak_ptr factories in one. base::WeakPtrFactory<AutoEnrollmentController> client_start_weak_factory_{
diff --git a/chrome/browser/chromeos/login/session/chrome_session_manager.cc b/chrome/browser/chromeos/login/session/chrome_session_manager.cc index 35fe26d8..9ba0349 100644 --- a/chrome/browser/chromeos/login/session/chrome_session_manager.cc +++ b/chrome/browser/chromeos/login/session/chrome_session_manager.cc
@@ -27,7 +27,7 @@ #include "chrome/browser/chromeos/tether/tether_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/identity_manager_factory.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/ash/ash_util.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" @@ -153,7 +153,7 @@ tether_service->StartTetherIfPossible(); // Associates AppListClient with the current active profile. - AppListServiceImpl::GetInstance()->GetAppListClient(); + AppListClientImpl::GetInstance()->UpdateProfile(); } UserSessionManager::GetInstance()->CheckEolStatus(user_profile);
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc index a07b62e..1149e37e 100644 --- a/chrome/browser/chromeos/login/session/user_session_manager.cc +++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -85,7 +85,6 @@ #include "chrome/browser/supervised_user/child_accounts/child_account_service.h" #include "chrome/browser/supervised_user/child_accounts/child_account_service_factory.h" #include "chrome/browser/ui/app_list/app_list_client_impl.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" #include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/startup/startup_browser_creator.h" #include "chrome/common/channel_info.h" @@ -1996,7 +1995,7 @@ } // Associates AppListClient with the current active profile. - AppListServiceImpl::GetInstance()->GetAppListClient(); + AppListClientImpl::GetInstance()->UpdateProfile(); } void UserSessionManager::RespectLocalePreferenceWrapper(
diff --git a/chrome/browser/chromeos/login/wizard_controller_browsertest.cc b/chrome/browser/chromeos/login/wizard_controller_browsertest.cc index 0a1b368..8d1587a 100644 --- a/chrome/browser/chromeos/login/wizard_controller_browsertest.cc +++ b/chrome/browser/chromeos/login/wizard_controller_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/run_loop.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "base/time/time.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_shutdown.h" #include "chrome/browser/chrome_notification_types.h" @@ -184,6 +185,33 @@ loop->Quit(); } +// Returns a string which can be put into the |kRlzEmbargoEndDateKey| VPD +// variable. If |days_offset| is 0, the return value represents the current day. +// If |days_offset| is positive, the return value represents |days_offset| days +// in the future. If |days_offset| is negative, the return value represents +// |days_offset| days in the past. +std::string GenerateEmbargoEndDate(int days_offset) { + base::Time::Exploded exploded; + base::Time target_time = + base::Time::Now() + base::TimeDelta::FromDays(days_offset); + target_time.UTCExplode(&exploded); + + std::string rlz_embargo_end_date_string = base::StringPrintf( + "%04d-%02d-%02d", exploded.year, exploded.month, exploded.day_of_month); + + // Sanity check that base::Time::FromUTCString can read back the format used + // here. + base::Time reparsed_time; + EXPECT_TRUE(base::Time::FromUTCString(rlz_embargo_end_date_string.c_str(), + &reparsed_time)); + EXPECT_EQ(target_time.ToDeltaSinceWindowsEpoch().InMicroseconds() / + base::Time::kMicrosecondsPerDay, + reparsed_time.ToDeltaSinceWindowsEpoch().InMicroseconds() / + base::Time::kMicrosecondsPerDay); + + return rlz_embargo_end_date_string; +} + } // namespace using ::testing::_; @@ -820,15 +848,19 @@ "2000-01"); } + static AutoEnrollmentController* auto_enrollment_controller() { + return WizardController::default_controller() + ->GetAutoEnrollmentController(); + } + static void WaitForAutoEnrollmentState(policy::AutoEnrollmentState state) { base::RunLoop loop; std::unique_ptr< AutoEnrollmentController::ProgressCallbackList::Subscription> progress_subscription( - WizardController::default_controller() - ->GetAutoEnrollmentController() - ->RegisterProgressCallback(base::Bind( - &QuitLoopOnAutoEnrollmentProgress, state, &loop))); + auto_enrollment_controller()->RegisterProgressCallback( + base::BindRepeating(&QuitLoopOnAutoEnrollmentProgress, state, + &loop))); loop.Run(); } @@ -912,9 +944,7 @@ ControlFlowNoForcedReEnrollmentOnFirstBoot) { fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, - WizardController::default_controller() - ->GetAutoEnrollmentController() - ->state()); + auto_enrollment_controller()->state()); CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); @@ -938,9 +968,7 @@ CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); mock_auto_enrollment_check_screen_->RealShow(); EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, - WizardController::default_controller() - ->GetAutoEnrollmentController() - ->state()); + auto_enrollment_controller()->state()); } IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateTest, @@ -995,6 +1023,158 @@ EXPECT_FALSE(StartupUtils::IsOobeCompleted()); } +class WizardControllerDeviceStateWithInitialEnrollmentTest + : public WizardControllerDeviceStateTest { + protected: + WizardControllerDeviceStateWithInitialEnrollmentTest() { + fake_statistics_provider_.SetMachineStatistic( + system::kSerialNumberKeyForTest, "test"); + fake_statistics_provider_.SetMachineStatistic(system::kRlzBrandCodeKey, + "AABC"); + } + + void SetUpCommandLine(base::CommandLine* command_line) override { + WizardControllerDeviceStateTest::SetUpCommandLine(command_line); + + command_line->AppendSwitchASCII( + switches::kEnterpriseEnableInitialEnrollment, + chromeos::AutoEnrollmentController::kInitialEnrollmentAlways); + } + + private: + DISALLOW_COPY_AND_ASSIGN( + WizardControllerDeviceStateWithInitialEnrollmentTest); +}; + +IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateWithInitialEnrollmentTest, + ControlFlowInitialEnrollment) { + fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); + fake_statistics_provider_.SetMachineStatistic( + system::kRlzEmbargoEndDateKey, + GenerateEmbargoEndDate(-15 /* days_offset */)); + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); + EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); + OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); + EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); + EXPECT_CALL(*mock_update_screen_, Show()).Times(1); + OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED); + + // Let update screen smooth time process (time = 0ms). + base::RunLoop().RunUntilIdle(); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); + EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); + OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED); + + CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); + EXPECT_CALL(*mock_auto_enrollment_check_screen_, Hide()).Times(1); + mock_auto_enrollment_check_screen_->RealShow(); + + // Wait for auto-enrollment controller to encounter the connection error. + WaitForAutoEnrollmentState(policy::AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); + + // The error screen shows up if there's no auto-enrollment decision. + EXPECT_FALSE(StartupUtils::IsOobeCompleted()); + EXPECT_EQ(GetErrorScreen(), + WizardController::default_controller()->current_screen()); + base::DictionaryValue device_state; + device_state.SetString(policy::kDeviceStateRestoreMode, + policy::kDeviceStateRestoreModeReEnrollmentEnforced); + g_browser_process->local_state()->Set(prefs::kServerBackedDeviceState, + device_state); + EXPECT_CALL(*mock_enrollment_screen_, Show()).Times(1); + EXPECT_CALL(*mock_enrollment_screen_->view(), + SetParameters(mock_enrollment_screen_, + EnrollmentModeMatches( + policy::EnrollmentConfig::MODE_SERVER_FORCED))) + .Times(1); + OnExit(*mock_auto_enrollment_check_screen_, + ScreenExitCode::ENTERPRISE_AUTO_ENROLLMENT_CHECK_COMPLETED); + + ResetAutoEnrollmentCheckScreen(); + + // Make sure enterprise enrollment page shows up. + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_ENROLLMENT); + OnExit(*mock_enrollment_screen_, + ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED); + + EXPECT_TRUE(StartupUtils::IsOobeCompleted()); +} + +IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateWithInitialEnrollmentTest, + ControlFlowNoInitialEnrollmentDuringEmbargoPeriod) { + fake_statistics_provider_.ClearMachineStatistic(system::kActivateDateKey); + fake_statistics_provider_.SetMachineStatistic( + system::kRlzEmbargoEndDateKey, + GenerateEmbargoEndDate(1 /* days_offset */)); + EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, + auto_enrollment_controller()->state()); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); + EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); + OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); + EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); + EXPECT_CALL(*mock_update_screen_, Show()).Times(1); + OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED); + + // Let update screen smooth time process (time = 0ms). + base::RunLoop().RunUntilIdle(); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); + EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); + OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED); + + CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); + mock_auto_enrollment_check_screen_->RealShow(); + EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, + auto_enrollment_controller()->state()); +} + +IN_PROC_BROWSER_TEST_F(WizardControllerDeviceStateWithInitialEnrollmentTest, + ControlFlowNoInitialEnrollmentIfEnrolledBefore) { + fake_statistics_provider_.SetMachineStatistic(system::kCheckEnrollmentKey, + "0"); + fake_statistics_provider_.SetMachineStatistic( + system::kRlzEmbargoEndDateKey, + GenerateEmbargoEndDate(1 /* days_offset */)); + EXPECT_NE(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, + auto_enrollment_controller()->state()); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_NETWORK); + EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); + OnExit(*mock_network_screen_, ScreenExitCode::NETWORK_CONNECTED); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_EULA); + EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); + EXPECT_CALL(*mock_update_screen_, Show()).Times(1); + OnExit(*mock_eula_screen_, ScreenExitCode::EULA_ACCEPTED); + + // Let update screen smooth time process (time = 0ms). + base::RunLoop().RunUntilIdle(); + + CheckCurrentScreen(OobeScreen::SCREEN_OOBE_UPDATE); + EXPECT_CALL(*mock_update_screen_, Hide()).Times(1); + EXPECT_CALL(*mock_auto_enrollment_check_screen_, Show()).Times(1); + OnExit(*mock_update_screen_, ScreenExitCode::UPDATE_INSTALLED); + + CheckCurrentScreen(OobeScreen::SCREEN_AUTO_ENROLLMENT_CHECK); + mock_auto_enrollment_check_screen_->RealShow(); + EXPECT_EQ(policy::AUTO_ENROLLMENT_STATE_NO_ENROLLMENT, + auto_enrollment_controller()->state()); +} + class WizardControllerBrokenLocalStateTest : public WizardControllerTest { protected: WizardControllerBrokenLocalStateTest() : fake_session_manager_client_(NULL) {}
diff --git a/chrome/browser/chromeos/net/DEPS b/chrome/browser/chromeos/net/DEPS index f7dec82b..1601c9d 100644 --- a/chrome/browser/chromeos/net/DEPS +++ b/chrome/browser/chromeos/net/DEPS
@@ -1,6 +1,3 @@ include_rules = [ - # Chrome under mustash cannot call directly into ash internals. - "-ash", - "+ash/public", "+components/captive_portal", ]
diff --git a/chrome/browser/chromeos/oauth2_token_service_delegate.cc b/chrome/browser/chromeos/oauth2_token_service_delegate.cc index 3cf98b6a..63264d2 100644 --- a/chrome/browser/chromeos/oauth2_token_service_delegate.cc +++ b/chrome/browser/chromeos/oauth2_token_service_delegate.cc
@@ -120,10 +120,10 @@ const AccountManager::AccountKey& account_key = MapAccountIdToAccountKey(account_id); - account_keys_.insert(account_key); - account_manager_->UpsertToken(account_key, refresh_token); - FireRefreshTokenAvailable(account_id); + // Will result in AccountManager calling + // |ChromeOSOAuth2TokenServiceDelegate::OnTokenUpserted|. + account_manager_->UpsertToken(account_key, refresh_token); } net::URLRequestContextGetter* @@ -146,16 +146,11 @@ std::vector<AccountManager::AccountKey> account_keys) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - OnAccountListUpdated(account_keys); - load_credentials_state_ = LOAD_CREDENTIALS_FINISHED_WITH_SUCCESS; - FireRefreshTokensLoaded(); for (const auto& account_key : account_keys) { - std::string account_id = MapAccountKeyToAccountId(account_key); - if (!account_id.empty()) { - FireRefreshTokenAvailable(account_id); - } + OnTokenUpserted(account_key); } + FireRefreshTokensLoaded(); } std::string ChromeOSOAuth2TokenServiceDelegate::MapAccountKeyToAccountId( @@ -187,11 +182,18 @@ account_info.gaia, account_manager::AccountType::ACCOUNT_TYPE_GAIA}; } -void ChromeOSOAuth2TokenServiceDelegate::OnAccountListUpdated( - const std::vector<AccountManager::AccountKey>& account_keys) { +void ChromeOSOAuth2TokenServiceDelegate::OnTokenUpserted( + const AccountManager::AccountKey& account_key) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - account_keys_.clear(); - account_keys_.insert(account_keys.begin(), account_keys.end()); + account_keys_.insert(account_key); + + std::string account_id = MapAccountKeyToAccountId(account_key); + if (!account_id.empty()) { + FireRefreshTokenAvailable(account_id); + + errors_.erase(account_id); + FireAuthErrorChanged(account_id, GoogleServiceAuthError::AuthErrorNone()); + } } } // namespace chromeos
diff --git a/chrome/browser/chromeos/oauth2_token_service_delegate.h b/chrome/browser/chromeos/oauth2_token_service_delegate.h index 9710fa6..20dd7d76 100644 --- a/chrome/browser/chromeos/oauth2_token_service_delegate.h +++ b/chrome/browser/chromeos/oauth2_token_service_delegate.h
@@ -49,8 +49,7 @@ LoadCredentialsState GetLoadCredentialsState() const override; // |AccountManager::Observer| overrides - void OnAccountListUpdated( - const std::vector<AccountManager::AccountKey>& account_keys) override; + void OnTokenUpserted(const AccountManager::AccountKey& account_key) override; // TODO(sinhak): Implement server token revocation. // TODO(sinhak): Implement scoped batch changes.
diff --git a/chrome/browser/chromeos/oauth2_token_service_delegate_unittest.cc b/chrome/browser/chromeos/oauth2_token_service_delegate_unittest.cc index 9c0960f..7ba0f20 100644 --- a/chrome/browser/chromeos/oauth2_token_service_delegate_unittest.cc +++ b/chrome/browser/chromeos/oauth2_token_service_delegate_unittest.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/chromeos/oauth2_token_service_delegate.h" #include <memory> +#include <set> #include <string> #include <utility> @@ -27,8 +28,12 @@ using account_manager::AccountType::ACCOUNT_TYPE_GAIA; using account_manager::AccountType::ACCOUNT_TYPE_ACTIVE_DIRECTORY; -class AuthErrorObserver : public OAuth2TokenService::Observer { +class TokenServiceObserver : public OAuth2TokenService::Observer { public: + void OnRefreshTokenAvailable(const std::string& account_id) override { + account_ids_.insert(account_id); + } + void OnAuthErrorChanged(const std::string& account_id, const GoogleServiceAuthError& auth_error) override { last_err_account_id_ = account_id; @@ -37,6 +42,7 @@ std::string last_err_account_id_; GoogleServiceAuthError last_err_; + std::set<std::string> account_ids_; }; } // namespace @@ -114,7 +120,7 @@ } TEST_F(CrOSOAuthDelegateTest, ObserversAreNotifiedOnAuthErrorChange) { - AuthErrorObserver observer; + TokenServiceObserver observer; auto error = GoogleServiceAuthError(GoogleServiceAuthError::State::SERVICE_ERROR); delegate_->AddObserver(&observer); @@ -127,6 +133,49 @@ delegate_->RemoveObserver(&observer); } +TEST_F(CrOSOAuthDelegateTest, ObserversAreNotifiedOnCredentialsInsertion) { + TokenServiceObserver observer; + delegate_->AddObserver(&observer); + delegate_->UpdateCredentials(account_info_.account_id, "123"); + + EXPECT_EQ(1UL, observer.account_ids_.size()); + EXPECT_EQ(account_info_.account_id, *observer.account_ids_.begin()); + EXPECT_EQ(account_info_.account_id, observer.last_err_account_id_); + EXPECT_EQ(GoogleServiceAuthError::AuthErrorNone(), observer.last_err_); + + delegate_->RemoveObserver(&observer); +} + +TEST_F(CrOSOAuthDelegateTest, ObserversAreNotifiedOnCredentialsUpdate) { + TokenServiceObserver observer; + delegate_->AddObserver(&observer); + delegate_->UpdateCredentials(account_info_.account_id, "123"); + + EXPECT_EQ(1UL, observer.account_ids_.size()); + EXPECT_EQ(account_info_.account_id, *observer.account_ids_.begin()); + EXPECT_EQ(account_info_.account_id, observer.last_err_account_id_); + EXPECT_EQ(GoogleServiceAuthError::AuthErrorNone(), observer.last_err_); + + delegate_->RemoveObserver(&observer); +} + +TEST_F(CrOSOAuthDelegateTest, + ObserversAreNotNotifiedIfCredentialsAreNotUpdated) { + TokenServiceObserver observer; + const std::string kToken = "123"; + delegate_->AddObserver(&observer); + + delegate_->UpdateCredentials(account_info_.account_id, kToken); + observer.account_ids_.clear(); + observer.last_err_account_id_ = std::string(); + delegate_->UpdateCredentials(account_info_.account_id, kToken); + + EXPECT_TRUE(observer.account_ids_.empty()); + EXPECT_EQ(std::string(), observer.last_err_account_id_); + + delegate_->RemoveObserver(&observer); +} + TEST_F(CrOSOAuthDelegateTest, GetAccountsShouldNotReturnAdAccounts) { EXPECT_TRUE(delegate_->GetAccounts().empty());
diff --git a/chrome/browser/chromeos/policy/DEPS b/chrome/browser/chromeos/policy/DEPS index a4f1c9827..fdfadd3 100644 --- a/chrome/browser/chromeos/policy/DEPS +++ b/chrome/browser/chromeos/policy/DEPS
@@ -1,5 +1,19 @@ include_rules = [ + # TODO(crbug.com/678705): Convert to using mojo interfaces in + # //ash/public/interfaces and eliminate this. + "!ash", + # Public interfaces are OK. + "+ash/public", "+components/feedback", "+components/invalidation", "+components/user_manager", ] + +specific_include_rules = { + # TODO(mash): http://crbug.com/705713. + "display_rotation_default_handler\.*": [ + "+ash/display/window_tree_host_manager.h", + "+ash/shell.h", + "+ash/shell_observer.h", + ], +}
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc index d6d48e0..117d16b7 100644 --- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc +++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc
@@ -100,8 +100,7 @@ // Checks whether forced re-enrollment is enabled. bool ForcedReEnrollmentEnabled() { - return chromeos::AutoEnrollmentController::GetMode() == - chromeos::AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT; + return chromeos::AutoEnrollmentController::IsFREEnabled(); } } // namespace
diff --git a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc index 331e722..fdeb90a 100644 --- a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc +++ b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
@@ -344,8 +344,7 @@ DCHECK_EQ(STEP_STATE_KEYS, enrollment_step_); // Make sure state keys are available if forced re-enrollment is on. - if (chromeos::AutoEnrollmentController::GetMode() == - chromeos::AutoEnrollmentController::MODE_FORCED_RE_ENROLLMENT) { + if (chromeos::AutoEnrollmentController::IsFREEnabled()) { client_->SetStateKeysToUpload(state_keys); current_state_key_ = state_keys_broker_->current_state_key(); if (state_keys.empty() || current_state_key_.empty()) {
diff --git a/chrome/browser/chromeos/policy/remote_commands/DEPS b/chrome/browser/chromeos/policy/remote_commands/DEPS new file mode 100644 index 0000000..6af7f40 --- /dev/null +++ b/chrome/browser/chromeos/policy/remote_commands/DEPS
@@ -0,0 +1,6 @@ +specific_include_rules = { + # TODO(mash): http://crbug.com/557397. + "device_command_screenshot_job\.cc": [ + "+ash/shell.h", + ], +}
diff --git a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc index 8d7143e..2c64c32a 100644 --- a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc +++ b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc
@@ -40,16 +40,15 @@ return update_callbacks_.Add(callback); } -void ServerBackedStateKeysBroker::RequestStateKeys( - const StateKeysCallback& callback) { +void ServerBackedStateKeysBroker::RequestStateKeys(StateKeysCallback callback) { if (pending()) { - request_callbacks_.push_back(callback); + request_callbacks_.push_back(std::move(callback)); FetchStateKeys(); return; } if (!callback.is_null()) - callback.Run(state_keys_); + std::move(callback).Run(state_keys_); return; } @@ -87,12 +86,9 @@ std::vector<StateKeysCallback> callbacks; request_callbacks_.swap(callbacks); - for (std::vector<StateKeysCallback>::const_iterator callback( - callbacks.begin()); - callback != callbacks.end(); - ++callback) { - if (!callback->is_null()) - callback->Run(state_keys_); + for (auto& callback : callbacks) { + if (!callback.is_null()) + std::move(callback).Run(state_keys_); } base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
diff --git a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h index 5b1061e..a831b348 100644 --- a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h +++ b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h
@@ -27,7 +27,7 @@ public: typedef std::unique_ptr<base::CallbackList<void()>::Subscription> Subscription; - typedef base::Callback<void(const std::vector<std::string>&)> + typedef base::OnceCallback<void(const std::vector<std::string>&)> StateKeysCallback; ServerBackedStateKeysBroker( @@ -46,7 +46,7 @@ // empty. If |this| gets destroyed before the callback happens or if the time // sync fails / the network is not established, then the |callback| is never // invoked. See http://crbug.com/649422 for more context. - void RequestStateKeys(const StateKeysCallback& callback); + void RequestStateKeys(StateKeysCallback callback); static base::TimeDelta GetPollIntervalForTesting();
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc index fdc28ff8..529439e 100644 --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
@@ -68,11 +68,6 @@ "Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2Error"; const char kUMAInitialFetchOAuth2NetworkError[] = "Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2NetworkError"; - -// Default frequency for uploading non-enterprise status reports. -constexpr base::TimeDelta kDeviceStatusUploadFrequency = - base::TimeDelta::FromMinutes(10); - } // namespace UserCloudPolicyManagerChromeOS::UserCloudPolicyManagerChromeOS( @@ -204,25 +199,6 @@ app_install_event_log_uploader_ = std::make_unique<AppInstallEventLogUploader>(client()); - - // If non-enterprise device is registered with DMServer and has User Policy - // applied, it should upload device status to the server. For devices in - // enterprise mode status upload is controlled by - // DeviceCloudPolicyManagerChromeOS. - policy::BrowserPolicyConnectorChromeOS* connector = - g_browser_process->platform_part()->browser_policy_connector_chromeos(); - if (connector->GetDeviceMode() == DEVICE_MODE_CONSUMER) { - status_uploader_.reset(new StatusUploader( - client(), - std::make_unique<DeviceStatusCollector>( - local_state_, chromeos::system::StatisticsProvider::GetInstance(), - DeviceStatusCollector::VolumeInfoFetcher(), - DeviceStatusCollector::CPUStatisticsFetcher(), - DeviceStatusCollector::CPUTempFetcher(), - DeviceStatusCollector::AndroidStatusFetcher(), - false /* is_enterprise_device */), - task_runner_, kDeviceStatusUploadFrequency)); - } } void UserCloudPolicyManagerChromeOS::OnAccessTokenAvailable(
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc index dc7cf1e..73ff6fc 100644 --- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc +++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
@@ -799,57 +799,4 @@ EXPECT_TRUE(manager_->GetAppInstallEventLogUploader()); } -// Tests uploading status to DMServer. Install attributes for testing need to be -// set before BrowserPolicyConnectorChromeOS is created, therefore -// initialization of test environment is done at the begining of the test -// instead of SetUp method. -class StatusUploadingTest : public UserCloudPolicyManagerChromeOSTest { - protected: - StatusUploadingTest() = default; - ~StatusUploadingTest() override = default; - - void SetUp() override{}; - void TearDown() override{}; - - private: - DISALLOW_COPY_AND_ASSIGN(StatusUploadingTest); -}; - -TEST_F(StatusUploadingTest, UnownedDeviceShouldNotUploadStatus) { - auto install_attributes = - chromeos::ScopedStubInstallAttributes::CreateUnset(); - UserCloudPolicyManagerChromeOSTest::SetUp(); - - ASSERT_NO_FATAL_FAILURE(MakeManagerWithPreloadedStore(base::TimeDelta())); - EXPECT_TRUE(manager_->core()->client()->is_registered()); - EXPECT_EQ(nullptr, manager_->GetStatusUploader()); - - UserCloudPolicyManagerChromeOSTest::TearDown(); -} - -TEST_F(StatusUploadingTest, ManagedDeviceShouldNotUploadStatus) { - auto install_attributes = - chromeos::ScopedStubInstallAttributes::CreateCloudManaged("domain.com", - "device-id"); - UserCloudPolicyManagerChromeOSTest::SetUp(); - - ASSERT_NO_FATAL_FAILURE(MakeManagerWithPreloadedStore(base::TimeDelta())); - EXPECT_TRUE(manager_->core()->client()->is_registered()); - EXPECT_EQ(nullptr, manager_->GetStatusUploader()); - - UserCloudPolicyManagerChromeOSTest::TearDown(); -} - -TEST_F(StatusUploadingTest, RegisteredConsumerDeviceShouldUploadStatus) { - auto install_attributes = - chromeos::ScopedStubInstallAttributes::CreateConsumerOwned(); - UserCloudPolicyManagerChromeOSTest::SetUp(); - - ASSERT_NO_FATAL_FAILURE(MakeManagerWithPreloadedStore(base::TimeDelta())); - EXPECT_TRUE(manager_->core()->client()->is_registered()); - EXPECT_NE(nullptr, manager_->GetStatusUploader()); - - UserCloudPolicyManagerChromeOSTest::TearDown(); -} - } // namespace policy
diff --git a/chrome/browser/chromeos/power/idle_action_warning_dialog_view.cc b/chrome/browser/chromeos/power/idle_action_warning_dialog_view.cc index cbddae9..64a8139 100644 --- a/chrome/browser/chromeos/power/idle_action_warning_dialog_view.cc +++ b/chrome/browser/chromeos/power/idle_action_warning_dialog_view.cc
@@ -6,7 +6,6 @@ #include <algorithm> -#include "ash/shell.h" #include "base/location.h" #include "base/macros.h" #include "chrome/browser/ui/browser_dialogs.h"
diff --git a/chrome/browser/chromeos/prefs/ash_pref_connector_manifest.json b/chrome/browser/chromeos/prefs/ash_pref_connector_manifest.json index e1c86f7..5eb8177 100644 --- a/chrome/browser/chromeos/prefs/ash_pref_connector_manifest.json +++ b/chrome/browser/chromeos/prefs/ash_pref_connector_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "pref_connector": [ - "ash::mojom::PrefConnector" + "ash.mojom.PrefConnector" ] }, "requires": {
diff --git a/chrome/browser/chromeos/status/DEPS b/chrome/browser/chromeos/status/DEPS new file mode 100644 index 0000000..47c5b97 --- /dev/null +++ b/chrome/browser/chromeos/status/DEPS
@@ -0,0 +1,6 @@ +specific_include_rules = { + # TODO(mash): http://crbug.com/826370. + "network_menu\.cc": [ + "+ash/system/network/network_icon.h", + ], +}
diff --git a/chrome/browser/chromeos/system_logs/DEPS b/chrome/browser/chromeos/system_logs/DEPS new file mode 100644 index 0000000..9a8d546 --- /dev/null +++ b/chrome/browser/chromeos/system_logs/DEPS
@@ -0,0 +1,6 @@ +specific_include_rules = { + # TODO(mash): http://crbug.com/581462. + "touch_log_source\.cc": [ + "+ash/touch/touch_hud_debug.h", + ], +}
diff --git a/chrome/browser/chromeos/tpm_firmware_update.cc b/chrome/browser/chromeos/tpm_firmware_update.cc index a547e231..a56db2c 100644 --- a/chrome/browser/chromeos/tpm_firmware_update.cc +++ b/chrome/browser/chromeos/tpm_firmware_update.cc
@@ -215,7 +215,8 @@ // get enrolled and the admin allows TPM firmware update via powerwash. const AutoEnrollmentController::FRERequirement requirement = AutoEnrollmentController::GetFRERequirement(); - if (requirement == AutoEnrollmentController::EXPLICITLY_REQUIRED) { + if (requirement == + AutoEnrollmentController::FRERequirement::kExplicitlyRequired) { callback.Run(false); return; }
diff --git a/chrome/browser/chromeos/ui/DEPS b/chrome/browser/chromeos/ui/DEPS new file mode 100644 index 0000000..b8e5d3d --- /dev/null +++ b/chrome/browser/chromeos/ui/DEPS
@@ -0,0 +1,7 @@ +specific_include_rules = { + # TODO(mash): http://crbug.com/581462. + "screen_capture_notification_ui_chromeos\.cc": [ + "+ash/shell.h", + "+ash/system/tray/system_tray_notifier.h", + ], +}
diff --git a/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc b/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc index e92cdc6..0c5bf8ec 100644 --- a/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc +++ b/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc
@@ -121,8 +121,8 @@ const auto urls = config->UpdateUrl(); ASSERT_EQ(2u, urls.size()); - ASSERT_STREQ(kUpdaterDefaultUrlAlt, urls[0].spec().c_str()); - ASSERT_STREQ(kUpdaterFallbackUrlAlt, urls[1].spec().c_str()); + ASSERT_STREQ(kUpdaterDefaultUrl, urls[0].spec().c_str()); + ASSERT_STREQ(kUpdaterFallbackUrl, urls[1].spec().c_str()); ASSERT_EQ(config->UpdateUrl(), config->PingUrl()); @@ -132,7 +132,7 @@ const ConfiguratorImpl config(cmdline, true); const auto urls = config.UpdateUrl(); ASSERT_EQ(1u, urls.size()); - ASSERT_STREQ(kUpdaterDefaultUrlAlt, urls[0].spec().c_str()); + ASSERT_STREQ(kUpdaterDefaultUrl, urls[0].spec().c_str()); ASSERT_EQ(config.UpdateUrl(), config.PingUrl()); } @@ -140,8 +140,8 @@ const ConfiguratorImpl config(cmdline, false); const auto urls = config.UpdateUrl(); ASSERT_EQ(2u, urls.size()); - ASSERT_STREQ(kUpdaterDefaultUrlAlt, urls[0].spec().c_str()); - ASSERT_STREQ(kUpdaterFallbackUrlAlt, urls[1].spec().c_str()); + ASSERT_STREQ(kUpdaterDefaultUrl, urls[0].spec().c_str()); + ASSERT_STREQ(kUpdaterFallbackUrl, urls[1].spec().c_str()); ASSERT_EQ(config.UpdateUrl(), config.PingUrl()); } }
diff --git a/chrome/browser/conflicts/module_event_sink_impl_win.cc b/chrome/browser/conflicts/module_event_sink_impl_win.cc index 5a44c6da..ea0d883 100644 --- a/chrome/browser/conflicts/module_event_sink_impl_win.cc +++ b/chrome/browser/conflicts/module_event_sink_impl_win.cc
@@ -16,6 +16,7 @@ #include "base/files/file_path.h" #include "base/macros.h" #include "base/strings/string_piece.h" +#include "base/task_scheduler/post_task.h" #include "chrome/browser/conflicts/module_database_win.h" #include "chrome/common/conflicts/module_watcher_win.h" #include "content/public/browser/browser_thread.h" @@ -94,33 +95,14 @@ return true; } -} // namespace - -ModuleEventSinkImpl::ModuleEventSinkImpl(base::ProcessHandle process, - content::ProcessType process_type, - ModuleDatabase* module_database) - : process_(process), - module_database_(module_database), - process_type_(process_type) {} - -ModuleEventSinkImpl::~ModuleEventSinkImpl() = default; - -// static -void ModuleEventSinkImpl::Create( - GetProcessHandleCallback get_process_handle, - content::ProcessType process_type, - ModuleDatabase* module_database, - mojom::ModuleEventSinkRequest request) { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - base::ProcessHandle process = get_process_handle.Run(); - auto module_event_sink_impl = std::make_unique<ModuleEventSinkImpl>( - process, process_type, module_database); - mojo::MakeStrongBinding(std::move(module_event_sink_impl), - std::move(request)); -} - -void ModuleEventSinkImpl::OnModuleEvent(mojom::ModuleEventType event_type, - uint64_t load_address) { +// Handles the module event on a background task. Looks up the path, size and +// time date stamp of the remote process and forwards the event to the +// ModuleDatabase. +void HandleModuleEvent(ModuleDatabase* module_database, + base::Process process, + content::ProcessType process_type, + mojom::ModuleEventType event_Type, + uint64_t load_address) { // Mojo takes care of validating |event_type|, so only |load_address| needs to // be checked. Load addresses must be aligned with the allocation granularity // which is at least 64KB on any supported Windows OS. @@ -138,18 +120,54 @@ // Look up the various pieces of module metadata in the remote process. base::FilePath module_path; - if (!GetModulePath(process_, module, &module_path)) + if (!GetModulePath(process.Handle(), module, &module_path)) return; uint32_t module_size = 0; - if (!GetModuleSize(process_, module, &module_size)) + if (!GetModuleSize(process.Handle(), module, &module_size)) return; uint32_t module_time_date_stamp = 0; - if (!GetModuleTimeDateStamp(process_, load_address, &module_time_date_stamp)) + if (!GetModuleTimeDateStamp(process.Handle(), load_address, + &module_time_date_stamp)) return; // Forward this to the module database. - module_database_->OnModuleLoad(process_type_, module_path, module_size, - module_time_date_stamp, load_address); + module_database->OnModuleLoad(process_type, module_path, module_size, + module_time_date_stamp, load_address); +} + +} // namespace + +ModuleEventSinkImpl::ModuleEventSinkImpl(base::Process process, + content::ProcessType process_type, + ModuleDatabase* module_database) + : process_(std::move(process)), + module_database_(module_database), + process_type_(process_type) {} + +ModuleEventSinkImpl::~ModuleEventSinkImpl() = default; + +// static +void ModuleEventSinkImpl::Create(GetProcessCallback get_process, + content::ProcessType process_type, + ModuleDatabase* module_database, + mojom::ModuleEventSinkRequest request) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + base::Process process = get_process.Run(); + auto module_event_sink_impl = std::make_unique<ModuleEventSinkImpl>( + std::move(process), process_type, module_database); + mojo::MakeStrongBinding(std::move(module_event_sink_impl), + std::move(request)); +} + +void ModuleEventSinkImpl::OnModuleEvent(mojom::ModuleEventType event_type, + uint64_t load_address) { + // Handle the event on a background sequence. + base::PostTaskWithTraits( + FROM_HERE, + {base::TaskPriority::BACKGROUND, + base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN, base::MayBlock()}, + base::BindOnce(&HandleModuleEvent, module_database_, process_.Duplicate(), + process_type_, event_type, load_address)); }
diff --git a/chrome/browser/conflicts/module_event_sink_impl_win.h b/chrome/browser/conflicts/module_event_sink_impl_win.h index 778fc77..57adf06 100644 --- a/chrome/browser/conflicts/module_event_sink_impl_win.h +++ b/chrome/browser/conflicts/module_event_sink_impl_win.h
@@ -8,7 +8,7 @@ #include <stdint.h> #include "base/callback_forward.h" -#include "base/process/process_handle.h" +#include "base/process/process.h" #include "chrome/common/conflicts/module_event_sink_win.mojom.h" #include "content/public/common/process_type.h" @@ -21,12 +21,12 @@ public: // Callback for retrieving the handle associated with a process. This is used // by "Create" to get a handle to the remote process. - using GetProcessHandleCallback = base::Callback<base::ProcessHandle()>; + using GetProcessCallback = base::Callback<base::Process()>; // Creates a service endpoint that forwards notifications from the remote // |process| of the provided |process_type| to the provided |module_database|. // The |module_database| must outlive this object. - ModuleEventSinkImpl(base::ProcessHandle process, + ModuleEventSinkImpl(base::Process process, content::ProcessType process_type, ModuleDatabase* module_database); ~ModuleEventSinkImpl() override; @@ -35,7 +35,7 @@ // creates a concrete implementation of mojom::ModuleDatabase interface in the // current process, for the remote process represented by the provided // |request|. This should only be called on the UI thread. - static void Create(GetProcessHandleCallback get_process_handle, + static void Create(GetProcessCallback get_process, content::ProcessType process_type, ModuleDatabase* module_database, mojom::ModuleEventSinkRequest request); @@ -48,7 +48,7 @@ friend class ModuleEventSinkImplTest; // A handle to the process on the other side of the pipe. - base::ProcessHandle process_; + base::Process process_; // The module database this forwards events to. The |module_database| must // outlive this object.
diff --git a/chrome/browser/conflicts/module_event_sink_impl_win_unittest.cc b/chrome/browser/conflicts/module_event_sink_impl_win_unittest.cc index 203c04d..890f559d 100644 --- a/chrome/browser/conflicts/module_event_sink_impl_win_unittest.cc +++ b/chrome/browser/conflicts/module_event_sink_impl_win_unittest.cc
@@ -34,10 +34,21 @@ module_database_(std::make_unique<ModuleDatabase>( base::SequencedTaskRunnerHandle::Get())) {} - void CreateModuleSinkImpl() { + bool CreateModuleSinkImpl() { + HANDLE process_handle = 0; + if (!::DuplicateHandle(::GetCurrentProcess(), ::GetCurrentProcess(), + ::GetCurrentProcess(), &process_handle, + + 0, + FALSE, + DUPLICATE_SAME_ACCESS)) { + return false; + } + module_event_sink_impl_ = std::make_unique<ModuleEventSinkImpl>( - ::GetCurrentProcess(), content::PROCESS_TYPE_BROWSER, + base::Process(process_handle), content::PROCESS_TYPE_BROWSER, module_database_.get()); + return true; } const ModuleDatabase::ModuleMap& modules() { @@ -59,16 +70,18 @@ EXPECT_EQ(0u, modules().size()); - CreateModuleSinkImpl(); + ASSERT_TRUE(CreateModuleSinkImpl()); EXPECT_EQ(0u, modules().size()); // An invalid load event should not cause a module entry. module_event_sink_impl_->OnModuleEvent( mojom::ModuleEventType::MODULE_ALREADY_LOADED, kInvalidLoadAddress); + test_browser_thread_bundle_.RunUntilIdle(); EXPECT_EQ(0u, modules().size()); // A valid load event should cause a module entry. module_event_sink_impl_->OnModuleEvent(mojom::ModuleEventType::MODULE_LOADED, kValidLoadAddress); + test_browser_thread_bundle_.RunUntilIdle(); EXPECT_EQ(1u, modules().size()); }
diff --git a/chrome/browser/data_saver/data_saver_holdback_browsertest.cc b/chrome/browser/data_saver/data_saver_holdback_browsertest.cc index c3c8d5e..9c297df 100644 --- a/chrome/browser/data_saver/data_saver_holdback_browsertest.cc +++ b/chrome/browser/data_saver/data_saver_holdback_browsertest.cc
@@ -4,6 +4,7 @@ #include <string> +#include "base/metrics/field_trial_param_associator.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" @@ -17,10 +18,13 @@ #include "net/test/embedded_test_server/embedded_test_server.h" // Tests if the save data header holdback works as expected. -class DataSaverHoldbackBrowserTest : public InProcessBrowserTest { +class DataSaverHoldbackBrowserTest : public InProcessBrowserTest, + public testing::WithParamInterface<bool> { protected: + DataSaverHoldbackBrowserTest() { ConfigureHoldbackExperiment(); } void SetUp() override { - scoped_feature_list_.InitAndEnableFeature(features::kDataSaverHoldback); + test_server_.ServeFilesFromSourceDirectory("content/test/data"); + ASSERT_TRUE(test_server_.Start()); InProcessBrowserTest::SetUp(); } @@ -41,13 +45,58 @@ EXPECT_EQ(expected_header_value, header_value); } + void VerifySaveDataAPI(bool expected_header_set) { + ui_test_utils::NavigateToURL(browser(), + test_server_.GetURL("/net_info.html")); + EXPECT_EQ(expected_header_set, RunScriptExtractBool("getSaveData()")); + } + + void ConfigureHoldbackExperiment() { + base::FieldTrialParamAssociator::GetInstance()->ClearAllParamsForTesting(); + const std::string kTrialName = "TrialFoo"; + const std::string kGroupName = "GroupFoo"; // Value not used + + scoped_refptr<base::FieldTrial> trial = + base::FieldTrialList::CreateFieldTrial(kTrialName, kGroupName); + + std::map<std::string, std::string> params; + params["holdback_web"] = GetParam() ? "true" : "false"; + ASSERT_TRUE( + base::FieldTrialParamAssociator::GetInstance() + ->AssociateFieldTrialParams(kTrialName, kGroupName, params)); + + std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); + feature_list->RegisterFieldTrialOverride( + features::kDataSaverHoldback.name, + base::FeatureList::OVERRIDE_ENABLE_FEATURE, trial.get()); + scoped_feature_list_.InitWithFeatureList(std::move(feature_list)); + } + private: + bool RunScriptExtractBool(const std::string& script) { + bool data; + EXPECT_TRUE(ExecuteScriptAndExtractBool( + browser()->tab_strip_model()->GetActiveWebContents(), script, &data)); + return data; + } + + net::EmbeddedTestServer test_server_; base::test::ScopedFeatureList scoped_feature_list_; }; -IN_PROC_BROWSER_TEST_F(DataSaverHoldbackBrowserTest, +// The data saver holdback is enabled only if the first param is true. +INSTANTIATE_TEST_CASE_P(, DataSaverHoldbackBrowserTest, testing::Bool()); + +IN_PROC_BROWSER_TEST_P(DataSaverHoldbackBrowserTest, DataSaverEnabledWithHoldbackEnabled) { ASSERT_TRUE(embedded_test_server()->Start()); EnableDataSaver(true); - VerifySaveDataHeader("None"); + + // If holdback is enabled, then the save-data header should not be set. + if (GetParam()) { + VerifySaveDataHeader("None"); + } else { + VerifySaveDataHeader("on"); + } + VerifySaveDataAPI(!GetParam()); }
diff --git a/chrome/browser/diagnostics/OWNERS b/chrome/browser/diagnostics/OWNERS index cd426a40..efc82a56 100644 --- a/chrome/browser/diagnostics/OWNERS +++ b/chrome/browser/diagnostics/OWNERS
@@ -1,3 +1,4 @@ cpu@chromium.org +wfh@chromium.org # COMPONENT: Internals>PlatformIntegration
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc index e5d5d81..65afafb 100644 --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -70,8 +70,12 @@ #endif bool IsSettingReadOnly(const std::string& pref_name) { + // download.default_directory is used to display the directory location and + // for policy indicators, but should not be changed directly. + if (pref_name == prefs::kDownloadDefaultDirectory) + return true; #if defined(OS_CHROMEOS) - // System timezone is never directly changable by the user. + // System timezone is never directly changeable by the user. if (pref_name == chromeos::kSystemTimezone) return chromeos::system::PerUserTimezoneEnabled(); // enable_screen_lock must be changed through the quickUnlockPrivate API.
diff --git a/chrome/browser/extensions/bookmark_app_helper.cc b/chrome/browser/extensions/bookmark_app_helper.cc index 2f248f45..9c82dd8 100644 --- a/chrome/browser/extensions/bookmark_app_helper.cc +++ b/chrome/browser/extensions/bookmark_app_helper.cc
@@ -8,6 +8,7 @@ #include <cctype> #include <string> +#include <utility> #include "base/command_line.h" #include "base/feature_list.h" @@ -31,7 +32,6 @@ #include "chrome/browser/installable/installable_manager.h" #include "chrome/browser/installable/installable_params.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/app_list_util.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_dialogs.h"
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc index 48e9bf1..ed7af21a 100644 --- a/chrome/browser/extensions/extension_install_prompt.cc +++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -131,13 +131,9 @@ } void ExtensionInstallPrompt::Prompt::AddPermissions( - const PermissionMessages& permissions, - PermissionsType permissions_type) { - InstallPromptPermissions& install_permissions = - GetPermissionsForType(permissions_type); - + const PermissionMessages& permissions) { for (const PermissionMessage& msg : permissions) { - install_permissions.permissions.push_back(msg.message()); + prompt_permissions_.permissions.push_back(msg.message()); // Add a dash to the front of each permission detail. base::string16 details; if (!msg.submessages().empty()) { @@ -150,8 +146,8 @@ details = base::JoinString(detail_lines_with_bullets, base::ASCIIToUTF16("\n")); } - install_permissions.details.push_back(details); - install_permissions.is_showing_details.push_back(false); + prompt_permissions_.details.push_back(details); + prompt_permissions_.is_showing_details.push_back(false); } } @@ -163,10 +159,6 @@ case PERMISSIONS_DETAILS: prompt_permissions_.is_showing_details[index] = is_showing_details; break; - case WITHHELD_PERMISSIONS_DETAILS: - withheld_prompt_permissions_.is_showing_details[index] = - is_showing_details; - break; case RETAINED_FILES_DETAILS: is_showing_details_for_retained_files_ = is_showing_details; break; @@ -333,43 +325,31 @@ return l10n_util::GetStringUTF16(id); } -base::string16 ExtensionInstallPrompt::Prompt::GetPermissionsHeading( - PermissionsType permissions_type) const { - switch (permissions_type) { - case REGULAR_PERMISSIONS: { - int id = -1; - switch (type_) { - case INSTALL_PROMPT: - case INLINE_INSTALL_PROMPT: - case EXTERNAL_INSTALL_PROMPT: - case REMOTE_INSTALL_PROMPT: - case DELEGATED_PERMISSIONS_PROMPT: - id = IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO; - break; - case RE_ENABLE_PROMPT: - id = IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO; - break; - case PERMISSIONS_PROMPT: - id = IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO; - break; - case POST_INSTALL_PERMISSIONS_PROMPT: - case REPAIR_PROMPT: - id = IDS_EXTENSION_PROMPT_CAN_ACCESS; - break; - case UNSET_PROMPT_TYPE: - case NUM_PROMPT_TYPES: - NOTREACHED(); - } - return l10n_util::GetStringUTF16(id); - } - case WITHHELD_PERMISSIONS: - return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WITHHELD); - case ALL_PERMISSIONS: +base::string16 ExtensionInstallPrompt::Prompt::GetPermissionsHeading() const { + int id = -1; + switch (type_) { + case INSTALL_PROMPT: + case INLINE_INSTALL_PROMPT: + case EXTERNAL_INSTALL_PROMPT: + case REMOTE_INSTALL_PROMPT: + case DELEGATED_PERMISSIONS_PROMPT: + id = IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO; + break; + case RE_ENABLE_PROMPT: + id = IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO; + break; + case PERMISSIONS_PROMPT: + id = IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO; + break; + case POST_INSTALL_PERMISSIONS_PROMPT: + case REPAIR_PROMPT: + id = IDS_EXTENSION_PROMPT_CAN_ACCESS; + break; + case UNSET_PROMPT_TYPE: + case NUM_PROMPT_TYPES: NOTREACHED(); - return base::string16(); } - NOTREACHED(); - return base::string16(); + return l10n_util::GetStringUTF16(id); } base::string16 ExtensionInstallPrompt::Prompt::GetRetainedFilesHeading() const { @@ -384,8 +364,7 @@ } bool ExtensionInstallPrompt::Prompt::ShouldShowPermissions() const { - return GetPermissionCount(ALL_PERMISSIONS) > 0 || - type_ == POST_INSTALL_PERMISSIONS_PROMPT; + return GetPermissionCount() > 0 || type_ == POST_INSTALL_PERMISSIONS_PROMPT; } bool ExtensionInstallPrompt::Prompt::ShouldUseTabModalDialog() const { @@ -440,54 +419,24 @@ return base::string16(); } -size_t ExtensionInstallPrompt::Prompt::GetPermissionCount( - PermissionsType permissions_type) const { - switch (permissions_type) { - case REGULAR_PERMISSIONS: - return prompt_permissions_.permissions.size(); - case WITHHELD_PERMISSIONS: - return withheld_prompt_permissions_.permissions.size(); - case ALL_PERMISSIONS: - return prompt_permissions_.permissions.size() + - withheld_prompt_permissions_.permissions.size(); - default: - NOTREACHED(); - return 0u; - } +size_t ExtensionInstallPrompt::Prompt::GetPermissionCount() const { + return prompt_permissions_.permissions.size(); } -size_t ExtensionInstallPrompt::Prompt::GetPermissionsDetailsCount( - PermissionsType permissions_type) const { - switch (permissions_type) { - case REGULAR_PERMISSIONS: - return prompt_permissions_.details.size(); - case WITHHELD_PERMISSIONS: - return withheld_prompt_permissions_.details.size(); - case ALL_PERMISSIONS: - return prompt_permissions_.details.size() + - withheld_prompt_permissions_.details.size(); - default: - NOTREACHED(); - return 0u; - } +size_t ExtensionInstallPrompt::Prompt::GetPermissionsDetailsCount() const { + return prompt_permissions_.details.size(); } base::string16 ExtensionInstallPrompt::Prompt::GetPermission( - size_t index, - PermissionsType permissions_type) const { - const InstallPromptPermissions& install_permissions = - GetPermissionsForType(permissions_type); - CHECK_LT(index, install_permissions.permissions.size()); - return install_permissions.permissions[index]; + size_t index) const { + CHECK_LT(index, prompt_permissions_.permissions.size()); + return prompt_permissions_.permissions[index]; } base::string16 ExtensionInstallPrompt::Prompt::GetPermissionsDetails( - size_t index, - PermissionsType permissions_type) const { - const InstallPromptPermissions& install_permissions = - GetPermissionsForType(permissions_type); - CHECK_LT(index, install_permissions.details.size()); - return install_permissions.details[index]; + size_t index) const { + CHECK_LT(index, prompt_permissions_.details.size()); + return prompt_permissions_.details[index]; } bool ExtensionInstallPrompt::Prompt::GetIsShowingDetails( @@ -496,9 +445,6 @@ case PERMISSIONS_DETAILS: CHECK_LT(index, prompt_permissions_.is_showing_details.size()); return prompt_permissions_.is_showing_details[index]; - case WITHHELD_PERMISSIONS_DETAILS: - CHECK_LT(index, withheld_prompt_permissions_.is_showing_details.size()); - return withheld_prompt_permissions_.is_showing_details[index]; case RETAINED_FILES_DETAILS: return is_showing_details_for_retained_files_; case RETAINED_DEVICES_DETAILS: @@ -531,22 +477,6 @@ return !retained_files_.empty() || !retained_device_messages_.empty(); } -ExtensionInstallPrompt::Prompt::InstallPromptPermissions& -ExtensionInstallPrompt::Prompt::GetPermissionsForType( - PermissionsType permissions_type) { - DCHECK_NE(ALL_PERMISSIONS, permissions_type); - return permissions_type == REGULAR_PERMISSIONS ? prompt_permissions_ - : withheld_prompt_permissions_; -} - -const ExtensionInstallPrompt::Prompt::InstallPromptPermissions& -ExtensionInstallPrompt::Prompt::GetPermissionsForType( - PermissionsType permissions_type) const { - DCHECK_NE(ALL_PERMISSIONS, permissions_type); - return permissions_type == REGULAR_PERMISSIONS ? prompt_permissions_ - : withheld_prompt_permissions_; -} - bool ExtensionInstallPrompt::Prompt::ShouldDisplayRevokeFilesButton() const { return !retained_files_.empty(); } @@ -731,7 +661,7 @@ permissions_to_display = custom_permissions_.get(); } else if (extension_) { // Initialize permissions if they have not already been set so that - // withheld permissions are displayed properly in the install prompt. + // any transformations are correctly reflected in the install prompt. extensions::PermissionsUpdater( profile_, extensions::PermissionsUpdater::INIT_FLAG_TRANSIENT) .InitializePermissions(extension_); @@ -758,19 +688,7 @@ extensions::PermissionMessageProvider::Get(); prompt_->AddPermissions(message_provider->GetPermissionMessages( - message_provider->GetAllPermissionIDs( - *permissions_to_display, type)), - REGULAR_PERMISSIONS); - - const PermissionSet* withheld = - extension_ ? &extension_->permissions_data()->withheld_permissions() - : nullptr; - if (withheld && !withheld->IsEmpty()) { - prompt_->AddPermissions( - message_provider->GetPermissionMessages( - message_provider->GetAllPermissionIDs(*withheld, type)), - WITHHELD_PERMISSIONS); - } + message_provider->GetAllPermissionIDs(*permissions_to_display, type))); } prompt_->set_extension(extension_);
diff --git a/chrome/browser/extensions/extension_install_prompt.h b/chrome/browser/extensions/extension_install_prompt.h index ce4a83e..db454db0 100644 --- a/chrome/browser/extensions/extension_install_prompt.h +++ b/chrome/browser/extensions/extension_install_prompt.h
@@ -75,19 +75,10 @@ // Enumeration for permissions and retained files details. enum DetailsType { PERMISSIONS_DETAILS = 0, - WITHHELD_PERMISSIONS_DETAILS, RETAINED_FILES_DETAILS, RETAINED_DEVICES_DETAILS, }; - // This enum is used to differentiate regular and withheld permissions for - // segregation in the install prompt. - enum PermissionsType { - REGULAR_PERMISSIONS = 0, - WITHHELD_PERMISSIONS, - ALL_PERMISSIONS, - }; - // Extra information needed to display an installation or uninstallation // prompt. Gets populated with raw data and exposes getters for formatted // strings so that the GTK/views/Cocoa install dialogs don't have to repeat @@ -97,8 +88,7 @@ explicit Prompt(PromptType type); ~Prompt(); - void AddPermissions(const extensions::PermissionMessages& permissions, - PermissionsType permissions_type); + void AddPermissions(const extensions::PermissionMessages& permissions); void SetIsShowingDetails(DetailsType type, size_t index, bool is_showing_details); @@ -115,8 +105,7 @@ // Returns the empty string when there should be no "accept" button. base::string16 GetAcceptButtonLabel() const; base::string16 GetAbortButtonLabel() const; - base::string16 GetPermissionsHeading( - PermissionsType permissions_type) const; + base::string16 GetPermissionsHeading() const; base::string16 GetRetainedFilesHeading() const; base::string16 GetRetainedDevicesHeading() const; @@ -135,13 +124,10 @@ void AppendRatingStars(StarAppender appender, void* data) const; base::string16 GetRatingCount() const; base::string16 GetUserCount() const; - size_t GetPermissionCount(PermissionsType permissions_type) const; - size_t GetPermissionsDetailsCount(PermissionsType permissions_type) const; - base::string16 GetPermission(size_t index, - PermissionsType permissions_type) const; - base::string16 GetPermissionsDetails( - size_t index, - PermissionsType permissions_type) const; + size_t GetPermissionCount() const; + size_t GetPermissionsDetailsCount() const; + base::string16 GetPermission(size_t index) const; + base::string16 GetPermissionsDetails(size_t index) const; bool GetIsShowingDetails(DetailsType type, size_t index) const; size_t GetRetainedFileCount() const; base::string16 GetRetainedFile(size_t index) const; @@ -191,13 +177,6 @@ bool ShouldDisplayRevokeButton() const; - // Returns the InstallPromptPermissions corresponding to - // |permissions_type|. - InstallPromptPermissions& GetPermissionsForType( - PermissionsType permissions_type); - const InstallPromptPermissions& GetPermissionsForType( - PermissionsType permissions_type) const; - bool ShouldDisplayRevokeFilesButton() const; const PromptType type_; @@ -205,8 +184,6 @@ // Permissions that are being requested (may not be all of an extension's // permissions if only additional ones are being requested) InstallPromptPermissions prompt_permissions_; - // Permissions that will be withheld upon install. - InstallPromptPermissions withheld_prompt_permissions_; bool is_showing_details_for_retained_files_; bool is_showing_details_for_retained_devices_;
diff --git a/chrome/browser/extensions/extension_install_prompt_unittest.cc b/chrome/browser/extensions/extension_install_prompt_unittest.cc index afda5d27..bc649303 100644 --- a/chrome/browser/extensions/extension_install_prompt_unittest.cc +++ b/chrome/browser/extensions/extension_install_prompt_unittest.cc
@@ -54,17 +54,11 @@ void VerifyPromptPermissionsCallback( const base::Closure& quit_closure, size_t regular_permissions_count, - size_t withheld_permissions_count, ExtensionInstallPromptShowParams* params, const ExtensionInstallPrompt::DoneCallback& done_callback, std::unique_ptr<ExtensionInstallPrompt::Prompt> install_prompt) { ASSERT_TRUE(install_prompt.get()); - EXPECT_EQ(regular_permissions_count, - install_prompt->GetPermissionCount( - ExtensionInstallPrompt::REGULAR_PERMISSIONS)); - EXPECT_EQ(withheld_permissions_count, - install_prompt->GetPermissionCount( - ExtensionInstallPrompt::WITHHELD_PERMISSIONS)); + EXPECT_EQ(regular_permissions_count, install_prompt->GetPermissionCount()); quit_closure.Run(); } @@ -124,8 +118,7 @@ ExtensionInstallPrompt::PERMISSIONS_PROMPT), std::move(permission_set), base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(), - 1u, // |regular_permissions_count|. - 0u)); // |withheld_permissions_count|. + 1u)); // |regular_permissions_count|. run_loop.Run(); } @@ -157,8 +150,7 @@ ExtensionInstallPrompt::DoneCallback(), extension.get(), nullptr, std::move(sub_prompt), base::Bind(&VerifyPromptPermissionsCallback, run_loop.QuitClosure(), - 2u, // |regular_permissions_count|. - 0u)); // |withheld_permissions_count|. + 2u)); // |regular_permissions_count|. run_loop.Run(); }
diff --git a/chrome/browser/extensions/external_install_error.cc b/chrome/browser/extensions/external_install_error.cc index fa54735..4ac7215 100644 --- a/chrome/browser/extensions/external_install_error.cc +++ b/chrome/browser/extensions/external_install_error.cc
@@ -243,11 +243,6 @@ std::vector<base::string16> ExternalInstallBubbleAlert::GetBubbleViewMessages() { - ExtensionInstallPrompt::PermissionsType regular_permissions = - ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS; - ExtensionInstallPrompt::PermissionsType withheld_permissions = - ExtensionInstallPrompt::PermissionsType::WITHHELD_PERMISSIONS; - std::vector<base::string16> messages; int heading_id = IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_BUBBLE_HEADING_EXTENSION; @@ -257,22 +252,11 @@ heading_id = IDS_EXTENSION_EXTERNAL_INSTALL_ALERT_BUBBLE_HEADING_THEME; messages.push_back(l10n_util::GetStringUTF16(heading_id)); - if (prompt_->GetPermissionCount(regular_permissions)) { - messages.push_back(prompt_->GetPermissionsHeading(regular_permissions)); - for (size_t i = 0; i < prompt_->GetPermissionCount(regular_permissions); - ++i) { + if (prompt_->GetPermissionCount()) { + messages.push_back(prompt_->GetPermissionsHeading()); + for (size_t i = 0; i < prompt_->GetPermissionCount(); ++i) { messages.push_back(l10n_util::GetStringFUTF16( - IDS_EXTENSION_PERMISSION_LINE, - prompt_->GetPermission(i, regular_permissions))); - } - } - if (prompt_->GetPermissionCount(withheld_permissions)) { - messages.push_back(prompt_->GetPermissionsHeading(withheld_permissions)); - for (size_t i = 0; i < prompt_->GetPermissionCount(withheld_permissions); - ++i) { - messages.push_back(l10n_util::GetStringFUTF16( - IDS_EXTENSION_PERMISSION_LINE, - prompt_->GetPermission(i, withheld_permissions))); + IDS_EXTENSION_PERMISSION_LINE, prompt_->GetPermission(i))); } } // TODO(yoz): OAuth issue advice?
diff --git a/chrome/browser/extensions/scripting_permissions_modifier.cc b/chrome/browser/extensions/scripting_permissions_modifier.cc index 8851efe..7b96194 100644 --- a/chrome/browser/extensions/scripting_permissions_modifier.cc +++ b/chrome/browser/extensions/scripting_permissions_modifier.cc
@@ -48,7 +48,8 @@ return !extension.ShouldDisplayInExtensionSettings() || Manifest::IsPolicyLocation(extension.location()) || Manifest::IsComponentLocation(extension.location()) || - PermissionsData::CanExecuteScriptEverywhere(&extension); + PermissionsData::CanExecuteScriptEverywhere(extension.id(), + extension.location()); } // Sets the preference for whether the extension with |id| is allowed to execute
diff --git a/chrome/browser/hang_monitor/DEPS b/chrome/browser/hang_monitor/DEPS deleted file mode 100644 index a22d8288..0000000 --- a/chrome/browser/hang_monitor/DEPS +++ /dev/null
@@ -1,4 +0,0 @@ -include_rules = [ - # This code is Windows only so it's ok to include this file. - "+chrome/browser/ui/views/simple_message_box_win.h", -]
diff --git a/chrome/browser/hang_monitor/hang_crash_dump.cc b/chrome/browser/hang_monitor/hang_crash_dump.cc new file mode 100644 index 0000000..5f0e0066 --- /dev/null +++ b/chrome/browser/hang_monitor/hang_crash_dump.cc
@@ -0,0 +1,11 @@ +// 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/hang_monitor/hang_crash_dump.h" + +#include "base/logging.h" + +void CrashDumpHungChildProcess(base::ProcessHandle handle) { + NOTIMPLEMENTED(); +}
diff --git a/chrome/browser/hang_monitor/hang_crash_dump.h b/chrome/browser/hang_monitor/hang_crash_dump.h new file mode 100644 index 0000000..9cea93d --- /dev/null +++ b/chrome/browser/hang_monitor/hang_crash_dump.h
@@ -0,0 +1,14 @@ +// Copyright (c) 2012 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_HANG_MONITOR_HANG_CRASH_DUMP_H_ +#define CHROME_BROWSER_HANG_MONITOR_HANG_CRASH_DUMP_H_ + +#include "base/process/process_handle.h" + +// Attempts to generate a crash dump for the child process represented by +// |handle|. This is not implemented on all platofrms. +void CrashDumpHungChildProcess(base::ProcessHandle handle); + +#endif // CHROME_BROWSER_HANG_MONITOR_HANG_CRASH_DUMP_H_
diff --git a/chrome/browser/hang_monitor/hang_crash_dump_mac.cc b/chrome/browser/hang_monitor/hang_crash_dump_mac.cc new file mode 100644 index 0000000..754cbb8 --- /dev/null +++ b/chrome/browser/hang_monitor/hang_crash_dump_mac.cc
@@ -0,0 +1,19 @@ +// 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/hang_monitor/hang_crash_dump.h" + +#include "base/process/process.h" +#include "components/crash/content/app/crashpad.h" +#include "content/public/browser/browser_child_process_host.h" +#include "content/public/common/result_codes.h" + +void CrashDumpHungChildProcess(base::ProcessHandle handle) { + base::PortProvider* provider = + content::BrowserChildProcessHost::GetPortProvider(); + mach_port_t task_port = provider->TaskForPid(handle); + if (task_port != MACH_PORT_NULL) { + crash_reporter::DumpProcessWithoutCrashing(task_port); + } +}
diff --git a/chrome/browser/hang_monitor/hang_crash_dump_win.cc b/chrome/browser/hang_monitor/hang_crash_dump_win.cc index e7201ecc..8a4cd17c1 100644 --- a/chrome/browser/hang_monitor/hang_crash_dump_win.cc +++ b/chrome/browser/hang_monitor/hang_crash_dump_win.cc
@@ -2,36 +2,26 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/hang_monitor/hang_crash_dump_win.h" +#include "chrome/browser/hang_monitor/hang_crash_dump.h" -#include "base/debug/crash_logging.h" +#include <windows.h> + #include "base/logging.h" -#include "base/strings/string_util.h" -#include "chrome/common/chrome_constants.h" #include "components/crash/content/app/crash_export_thunks.h" -#include "content/public/common/result_codes.h" namespace { -// How long do we wait for the terminated thread or process to die (in ms) -static const int kTerminateTimeoutMS = 2000; - // How long do we wait for the crash to be generated (in ms). static const int kGenerateDumpTimeoutMS = 10000; } // namespace -void CrashDumpAndTerminateHungChildProcess(HANDLE hprocess) { - // Before terminating the process we try collecting a dump. Which - // a transient thread in the child process will do for us. - HANDLE remote_thread = InjectDumpForHungInput_ExportThunk(hprocess); +void CrashDumpHungChildProcess(base::ProcessHandle handle) { + HANDLE remote_thread = InjectDumpForHungInput_ExportThunk(handle); DCHECK(remote_thread) << "Failed creating remote thread: error " << GetLastError(); if (remote_thread) { WaitForSingleObject(remote_thread, kGenerateDumpTimeoutMS); CloseHandle(remote_thread); } - - TerminateProcess(hprocess, content::RESULT_CODE_HUNG); - WaitForSingleObject(hprocess, kTerminateTimeoutMS); }
diff --git a/chrome/browser/hang_monitor/hang_crash_dump_win.h b/chrome/browser/hang_monitor/hang_crash_dump_win.h deleted file mode 100644 index 51c009d2..0000000 --- a/chrome/browser/hang_monitor/hang_crash_dump_win.h +++ /dev/null
@@ -1,16 +0,0 @@ -// Copyright (c) 2012 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_HANG_MONITOR_HANG_CRASH_DUMP_WIN_H_ -#define CHROME_BROWSER_HANG_MONITOR_HANG_CRASH_DUMP_WIN_H_ - -#include <windows.h> - -#include "base/strings/string_split.h" - -// Causes the given child process to generate a crash dump and terminates the -// process. -void CrashDumpAndTerminateHungChildProcess(HANDLE hprocess); - -#endif // CHROME_BROWSER_HANG_MONITOR_HANG_CRASH_DUMP_WIN_H_
diff --git a/chrome/browser/net/network_context_configuration_browsertest.cc b/chrome/browser/net/network_context_configuration_browsertest.cc index a84244b1..3480308 100644 --- a/chrome/browser/net/network_context_configuration_browsertest.cc +++ b/chrome/browser/net/network_context_configuration_browsertest.cc
@@ -275,7 +275,7 @@ // Sends a request and expects it to be handled by embedded_test_server() // acting as a proxy; - void TestProxyConfigured() { + void TestProxyConfigured(bool expect_success) { std::unique_ptr<network::ResourceRequest> request = std::make_unique<network::ResourceRequest>(); // This URL should be directed to the test server because of the proxy. @@ -290,9 +290,16 @@ loader_factory(), simple_loader_helper.GetCallback()); simple_loader_helper.WaitForCallback(); - EXPECT_EQ(net::OK, simple_loader->NetError()); - ASSERT_TRUE(simple_loader_helper.response_body()); - EXPECT_EQ(*simple_loader_helper.response_body(), "Echo"); + if (expect_success) { + EXPECT_EQ(net::OK, simple_loader->NetError()); + ASSERT_TRUE(simple_loader_helper.response_body()); + EXPECT_EQ(*simple_loader_helper.response_body(), "Echo"); + } else { + // TestHostResolver returns net::ERR_NOT_IMPLEMENTED for non-local host + // URLs. + EXPECT_EQ(net::ERR_NOT_IMPLEMENTED, simple_loader->NetError()); + ASSERT_FALSE(simple_loader_helper.response_body()); + } } // Makes a request that hangs, and will live until browser shutdown. @@ -726,7 +733,7 @@ IN_PROC_BROWSER_TEST_P(NetworkContextConfigurationBrowserTest, ProxyConfig) { SetProxyPref(embedded_test_server()->host_port_pair()); - TestProxyConfigured(); + TestProxyConfigured(/*expect_success=*/true); } // This test should not end in an AssertNoURLLRequests CHECK. @@ -833,7 +840,7 @@ // use that configuration. IN_PROC_BROWSER_TEST_P(NetworkContextConfigurationProxyOnStartBrowserTest, TestInitialProxyConfig) { - TestProxyConfigured(); + TestProxyConfigured(/*expect_success=*/true); } // Make sure the system URLRequestContext can handle fetching PAC scripts from @@ -872,7 +879,7 @@ }; IN_PROC_BROWSER_TEST_P(NetworkContextConfigurationHttpPacBrowserTest, HttpPac) { - TestProxyConfigured(); + TestProxyConfigured(/*expect_success=*/true); } // Make sure the system URLRequestContext can handle fetching PAC scripts from @@ -907,7 +914,19 @@ }; IN_PROC_BROWSER_TEST_P(NetworkContextConfigurationFilePacBrowserTest, FilePac) { - TestProxyConfigured(); + bool network_service_disabled = + !base::FeatureList::IsEnabled(network::features::kNetworkService); +#if defined(OS_MACOSX) + // https://crbug.com/843324: the NetworkServiceTestHelper does not work on Mac + // so the TestHostResolver is not used to resolve the host name when the + // network service is enabled. The system host resolver is used instead + // and goed to the network, which we don't want in tests. (and it does not + // return the expected net::ERR_NOT_IMPLEMENTED). + if (!network_service_disabled) + return; +#endif + // PAC file URLs are not supported with the network service + TestProxyConfigured(/*expect_success=*/network_service_disabled); } // Make sure the system URLRequestContext can handle fetching PAC scripts from @@ -930,7 +949,7 @@ }; IN_PROC_BROWSER_TEST_P(NetworkContextConfigurationDataPacBrowserTest, DataPac) { - TestProxyConfigured(); + TestProxyConfigured(/*expect_success=*/true); } // Make sure the system URLRequestContext can handle fetching PAC scripts from @@ -1088,7 +1107,7 @@ // |NetworkServiceTestHelper| doesn't work on browser_tests on OSX. // See https://crbug.com/757088 #if defined(OS_MACOSX) -// Instiates tests with a prefix indicating which NetworkContext is being +// Instantiates tests with a prefix indicating which NetworkContext is being // tested, and a suffix of "/0" if the network service is disabled and "/1" if // it's enabled. #define INSTANTIATE_TEST_CASES_FOR_TEST_FIXTURE(TestFixture) \ @@ -1142,9 +1161,9 @@ ::testing::Values(TestCase({NetworkServiceState::kDisabled, \ NetworkContextType::kSafeBrowsing}), \ TestCase({NetworkServiceState::kEnabled, \ - NetworkContextType::kSystem}), \ + NetworkContextType::kSafeBrowsing}), \ TestCase({NetworkServiceState::kRestarted, \ - NetworkContextType::kSystem}))); \ + NetworkContextType::kSafeBrowsing}))); \ \ INSTANTIATE_TEST_CASE_P( \ ProfileMainNetworkContext, TestFixture, \
diff --git a/chrome/browser/notifications/notification_helper_launches_chrome_unittest.cc b/chrome/browser/notifications/notification_helper_launches_chrome_unittest.cc index ec4303d2..e69f292a 100644 --- a/chrome/browser/notifications/notification_helper_launches_chrome_unittest.cc +++ b/chrome/browser/notifications/notification_helper_launches_chrome_unittest.cc
@@ -32,6 +32,7 @@ #include "base/test/test_timeouts.h" #include "base/win/scoped_com_initializer.h" #include "base/win/windows_version.h" +#include "build/build_config.h" #include "chrome/install_static/install_util.h" #include "chrome/installer/setup/install_worker.h" #include "chrome/installer/util/install_util.h" @@ -240,7 +241,14 @@ DISALLOW_COPY_AND_ASSIGN(NotificationHelperLaunchesChrome); }; -TEST_F(NotificationHelperLaunchesChrome, ChromeLaunchTest) { +// TODO(https://crbug.com/841475): Test is flaky on Win10. Re-enable after +// unflaking. +#if defined(OS_WIN) +#define MAYBE_ChromeLaunchTest DISABLED_ChromeLaunchTest +#else +#define MAYBE_ChromeLaunchTest ChromeLaunchTest +#endif +TEST_F(NotificationHelperLaunchesChrome, MAYBE_ChromeLaunchTest) { // This test requires WinRT core functions, which are not available in // older versions of Windows. if (base::win::GetVersion() < base::win::VERSION_WIN8)
diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrome/browser/offline_pages/android/offline_page_bridge.cc index da2b9b9..161752c 100644 --- a/chrome/browser/offline_pages/android/offline_page_bridge.cc +++ b/chrome/browser/offline_pages/android/offline_page_bridge.cc
@@ -871,6 +871,15 @@ return offline_page_model_->IsArchiveInInternalDir(file_path); } +jboolean OfflinePageBridge::IsUserRequestedDownloadNamespace( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& obj, + const base::android::JavaParamRef<jstring>& j_name_space) { + std::string name_space(ConvertJavaStringToUTF8(env, j_name_space)); + return (offline_page_model_->GetPolicyController()->IsUserRequestedDownload( + name_space)); +} + ScopedJavaLocalRef<jobject> OfflinePageBridge::GetOfflinePage( JNIEnv* env, const JavaParamRef<jobject>& obj,
diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.h b/chrome/browser/offline_pages/android/offline_page_bridge.h index 489c65f..5f9168c 100644 --- a/chrome/browser/offline_pages/android/offline_page_bridge.h +++ b/chrome/browser/offline_pages/android/offline_page_bridge.h
@@ -190,6 +190,11 @@ const base::android::JavaParamRef<jobject>& obj, const base::android::JavaParamRef<jstring>& j_file_path); + jboolean IsUserRequestedDownloadNamespace( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& obj, + const base::android::JavaParamRef<jstring>& j_name_space); + base::android::ScopedJavaLocalRef<jobject> GetOfflinePage( JNIEnv* env, const base::android::JavaParamRef<jobject>& obj,
diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc index 549de23..678f50d 100644 --- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc
@@ -51,9 +51,9 @@ #define RECORD_HISTOGRAMS_FOR_SUFFIX(data, value, histogram_suffix) \ do { \ PAGE_LOAD_HISTOGRAM(GetConstHistogramWithSuffix(histogram_suffix), value); \ - if (data->lofi_requested()) { \ + if (data->lite_page_received()) { \ PAGE_LOAD_HISTOGRAM( \ - std::string(internal::kHistogramDataReductionProxyLoFiOnPrefix) \ + std::string(internal::kHistogramDataReductionProxyLitePagePrefix) \ .append(histogram_suffix), \ value); \ } \ @@ -75,8 +75,8 @@ const char kHistogramDataReductionProxyPrefix[] = "PageLoad.Clients.DataReductionProxy."; -const char kHistogramDataReductionProxyLoFiOnPrefix[] = - "PageLoad.Clients.DataReductionProxy.LoFiOn."; +const char kHistogramDataReductionProxyLitePagePrefix[] = + "PageLoad.Clients.Previews.LitePages."; const char kResourcesPercentProxied[] = "Experimental.CompletedResources.Network.PercentProxied";
diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h index 65d5ff9a..e4f9a54 100644 --- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h +++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h
@@ -30,7 +30,7 @@ // Various UMA histogram names for DataReductionProxy core page load metrics. extern const char kHistogramDataReductionProxyPrefix[]; -extern const char kHistogramDataReductionProxyLoFiOnPrefix[]; +extern const char kHistogramDataReductionProxyLitePagePrefix[]; // Byte and request specific histogram suffixes. extern const char kResourcesPercentProxied[];
diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc index 0ddada29..fd53b0f 100644 --- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
@@ -113,11 +113,11 @@ TestDataReductionProxyMetricsObserver(content::WebContents* web_contents, TestPingbackClient* pingback_client, bool data_reduction_proxy_used, - bool lofi_used) + bool lite_page_used) : web_contents_(web_contents), pingback_client_(pingback_client), data_reduction_proxy_used_(data_reduction_proxy_used), - lofi_used_(lofi_used) {} + lite_page_used_(lite_page_used) {} ~TestDataReductionProxyMetricsObserver() override {} @@ -128,7 +128,7 @@ DataForNavigationHandle(web_contents_, navigation_handle); data->set_used_data_reduction_proxy(data_reduction_proxy_used_); data->set_request_url(GURL(kDefaultTestUrl)); - data->set_lofi_requested(lofi_used_); + data->set_lite_page_received(lite_page_used_); return DataReductionProxyMetricsObserver::OnCommit(navigation_handle, source_id); } @@ -160,7 +160,7 @@ content::WebContents* web_contents_; TestPingbackClient* pingback_client_; bool data_reduction_proxy_used_; - bool lofi_used_; + bool lite_page_used_; DISALLOW_COPY_AND_ASSIGN(TestDataReductionProxyMetricsObserver); }; @@ -171,7 +171,7 @@ DataReductionProxyMetricsObserverTest() : pingback_client_(new TestPingbackClient()), data_reduction_proxy_used_(false), - is_using_lofi_(false), + is_using_lite_page_(false), opt_out_expected_(false) {} void ResetTest() { @@ -195,10 +195,10 @@ } void RunTest(bool data_reduction_proxy_used, - bool is_using_lofi, + bool is_using_lite_page, bool opt_out_expected) { data_reduction_proxy_used_ = data_reduction_proxy_used; - is_using_lofi_ = is_using_lofi; + is_using_lite_page_ = is_using_lite_page; opt_out_expected_ = opt_out_expected; NavigateAndCommit(GURL(kDefaultTestUrl)); SimulateTimingUpdate(timing_); @@ -206,9 +206,9 @@ } void RunTestAndNavigateToUntrackedUrl(bool data_reduction_proxy_used, - bool is_using_lofi, + bool is_using_lite_page, bool opt_out_expected) { - RunTest(data_reduction_proxy_used, is_using_lofi, opt_out_expected); + RunTest(data_reduction_proxy_used, is_using_lite_page, opt_out_expected); NavigateToUntrackedUrl(); } @@ -301,9 +301,9 @@ .append(histogram_suffix), data_reduction_proxy_used_ ? 1 : 0); histogram_tester().ExpectTotalCount( - std::string(internal::kHistogramDataReductionProxyLoFiOnPrefix) + std::string(internal::kHistogramDataReductionProxyLitePagePrefix) .append(histogram_suffix), - is_using_lofi_ ? 1 : 0); + is_using_lite_page_ ? 1 : 0); if (!data_reduction_proxy_used_) return; histogram_tester().ExpectUniqueSample( @@ -312,12 +312,12 @@ static_cast<base::HistogramBase::Sample>( event.value().InMilliseconds()), 1); - if (!is_using_lofi_) + if (!is_using_lite_page_) return; histogram_tester().ExpectUniqueSample( - std::string(internal::kHistogramDataReductionProxyLoFiOnPrefix) + std::string(internal::kHistogramDataReductionProxyLitePagePrefix) .append(histogram_suffix), - event.value().InMilliseconds(), is_using_lofi_ ? 1 : 0); + event.value().InMilliseconds(), is_using_lite_page_ ? 1 : 0); } void ValidateDataHistograms(int network_resources, @@ -397,7 +397,7 @@ tracker->AddObserver( std::make_unique<TestDataReductionProxyMetricsObserver>( web_contents(), pingback_client_.get(), data_reduction_proxy_used_, - is_using_lofi_)); + is_using_lite_page_)); } std::unique_ptr<TestPingbackClient> pingback_client_; @@ -405,7 +405,7 @@ private: bool data_reduction_proxy_used_; - bool is_using_lofi_; + bool is_using_lite_page_; bool opt_out_expected_; DISALLOW_COPY_AND_ASSIGN(DataReductionProxyMetricsObserverTest); @@ -420,16 +420,16 @@ TEST_F(DataReductionProxyMetricsObserverTest, DataReductionProxyOn) { ResetTest(); - // Verify that when the data reduction proxy was used, but lofi was not used, - // the correpsonding UMA is reported. + // Verify that when the data reduction proxy was used, but lite page was not + // used, the correpsonding UMA is reported. RunTest(true, false, false); ValidateHistograms(); } -TEST_F(DataReductionProxyMetricsObserverTest, LofiEnabled) { +TEST_F(DataReductionProxyMetricsObserverTest, LitePageEnabled) { ResetTest(); - // Verify that when the data reduction proxy was used and lofi was used, both - // histograms are reported. + // Verify that when the data reduction proxy was used and lite page was used, + // both histograms are reported. RunTest(true, true, false); ValidateHistograms(); } @@ -488,7 +488,6 @@ data->set_lofi_received(true); // Verify LoFi is tracked when a LoFi response is received. - page_load_metrics::ExtraRequestCompleteInfo resource = { GURL(kResourceUrl), net::HostPortPair(),
diff --git a/chrome/browser/password_manager/password_manager_browsertest.cc b/chrome/browser/password_manager/password_manager_browsertest.cc index fbd9002..9c92fd19 100644 --- a/chrome/browser/password_manager/password_manager_browsertest.cc +++ b/chrome/browser/password_manager/password_manager_browsertest.cc
@@ -255,8 +255,7 @@ bubble_observer.AcceptSavePrompt(); WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("random")); + CheckThatCredentialsStored("temp", "random"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -645,45 +644,6 @@ } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - PromptForXHRWithoutOnSubmit) { - NavigateToFile("/password/password_xhr_submit.html"); - - // Verify that if XHR navigation occurs and the form is properly filled out, - // we try and save the password even though onsubmit hasn't been called. - NavigationObserver observer(WebContents()); - std::unique_ptr<BubbleObserver> prompt_observer( - new BubbleObserver(WebContents())); - std::string fill_and_navigate = - "document.getElementById('username_field').value = 'temp';" - "document.getElementById('password_field').value = 'random';" - "send_xhr()"; - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_navigate)); - observer.Wait(); - EXPECT_TRUE(prompt_observer->IsSavePromptShownAutomatically()); -} - -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - PromptForXHRWithNewPasswordsWithoutOnSubmit) { - NavigateToFile("/password/password_xhr_submit.html"); - - // Verify that if XHR navigation occurs and the form is properly filled out, - // we try and save the password even though onsubmit hasn't been called. - // Specifically verify that the password form saving new passwords is treated - // the same as a login form. - NavigationObserver observer(WebContents()); - std::unique_ptr<BubbleObserver> prompt_observer( - new BubbleObserver(WebContents())); - std::string fill_and_navigate = - "document.getElementById('signup_username_field').value = 'temp';" - "document.getElementById('signup_password_field').value = 'random';" - "document.getElementById('confirmation_password_field').value = 'random';" - "send_xhr()"; - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_navigate)); - observer.Wait(); - EXPECT_TRUE(prompt_observer->IsSavePromptShownAutomatically()); -} - -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, PromptForXHRSubmitWithoutNavigation) { NavigateToFile("/password/password_xhr_submit.html"); @@ -818,45 +778,6 @@ } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - PromptForFetchWithoutOnSubmit) { - NavigateToFile("/password/password_fetch_submit.html"); - - // Verify that if Fetch navigation occurs and the form is properly filled out, - // we try and save the password even though onsubmit hasn't been called. - NavigationObserver observer(WebContents()); - std::unique_ptr<BubbleObserver> prompt_observer( - new BubbleObserver(WebContents())); - std::string fill_and_navigate = - "document.getElementById('username_field').value = 'temp';" - "document.getElementById('password_field').value = 'random';" - "send_fetch()"; - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_navigate)); - observer.Wait(); - EXPECT_TRUE(prompt_observer->IsSavePromptShownAutomatically()); -} - -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - PromptForFetchWithNewPasswordsWithoutOnSubmit) { - NavigateToFile("/password/password_fetch_submit.html"); - - // Verify that if Fetch navigation occurs and the form is properly filled out, - // we try and save the password even though onsubmit hasn't been called. - // Specifically verify that the password form saving new passwords is treated - // the same as a login form. - NavigationObserver observer(WebContents()); - std::unique_ptr<BubbleObserver> prompt_observer( - new BubbleObserver(WebContents())); - std::string fill_and_navigate = - "document.getElementById('signup_username_field').value = 'temp';" - "document.getElementById('signup_password_field').value = 'random';" - "document.getElementById('confirmation_password_field').value = 'random';" - "send_fetch()"; - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_navigate)); - observer.Wait(); - EXPECT_TRUE(prompt_observer->IsSavePromptShownAutomatically()); -} - -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, PromptForFetchSubmitWithoutNavigation) { NavigateToFile("/password/password_fetch_submit.html"); @@ -1133,8 +1054,7 @@ // Check that credentials are stored. WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("random")); + CheckThatCredentialsStored("temp", "random"); } // Test for checking that no prompt is shown for URLs with file: scheme. @@ -1633,8 +1553,7 @@ // Wait for password store and check that credentials are stored. WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("user"), - base::ASCIIToUTF16("password")); + CheckThatCredentialsStored("user", "password"); } // Tests that after HTTP -> HTTPS migration the credential is autofilled. @@ -1759,15 +1678,6 @@ EXPECT_FALSE(password_store->IsEmpty()); } -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - AutofillSuggestionsForPasswordFormWithoutUsernameField) { - std::string submit = - "document.getElementById('password').value = 'mypassword';" - "document.getElementById('submit-button').click();"; - VerifyPasswordIsSavedAndFilled("/password/form_with_only_password_field.html", - submit, "password", "mypassword"); -} - // Test that if a form gets autofilled, then it gets autofilled on re-creation // as well. IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -2169,30 +2079,6 @@ EXPECT_TRUE(prompt_observer->IsSavePromptShownAutomatically()); } -// Tests that if a site embeds the login and signup forms into one <form>, the -// login form still gets autofilled. -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - AutofillSuggestionsForLoginSignupForm) { - std::string submit = - "document.getElementById('username').value = 'myusername';" - "document.getElementById('password').value = 'mypassword';" - "document.getElementById('submit').click();"; - VerifyPasswordIsSavedAndFilled("/password/login_signup_form.html", - submit, "password", "mypassword"); -} - -// Check that we can fill in cases where <base href> is set and the action of -// the form is not set. Regression test for https://crbug.com/360230. -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - BaseTagWithNoActionTest) { - std::string submit = - "document.getElementById('username_field').value = 'myusername';" - "document.getElementById('password_field').value = 'mypassword';" - "document.getElementById('submit_button').click();"; - VerifyPasswordIsSavedAndFilled("/password/password_xhr_submit.html", - submit, "password_field", "mypassword"); -} - // Check that a username and password are filled into forms in iframes // that don't share the security origin with the main frame, but have PSL // matched origins. @@ -2412,18 +2298,6 @@ WaitForElementValue("iframe", "password_field", "pa55w0rd"); } -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - NoFormElementTest) { - std::string submit = - "document.getElementById('username_field').value = 'myusername';" - "document.getElementById('password_field').value = 'mypassword';" - "send_xhr();"; - VerifyPasswordIsSavedAndFilled("/password/no_form_element.html", - submit, - "password_field", - "mypassword"); -} - // The password manager driver will kill processes when they try to access // passwords of sites other than the site the process is dedicated to, under // site isolation. @@ -2504,8 +2378,7 @@ // Check that credentials are stored. WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16(""), - base::ASCIIToUTF16("new_pw")); + CheckThatCredentialsStored("", "new_pw"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -2547,8 +2420,7 @@ prompt_observer->AcceptUpdatePrompt(pending_credentials); WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("new_pw")); + CheckThatCredentialsStored("temp", "new_pw"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -2590,8 +2462,7 @@ password_store->stored_passwords().begin()->second[0]; prompt_observer->AcceptUpdatePrompt(stored_form); WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("new_pw")); + CheckThatCredentialsStored("temp", "new_pw"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -2622,8 +2493,7 @@ // The stored password "pw" was not overriden, so update prompt is not // expected. EXPECT_FALSE(prompt_observer->IsUpdatePromptShownAutomatically()); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("pw")); + CheckThatCredentialsStored("temp", "pw"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -2668,8 +2538,7 @@ base::ASCIIToUTF16("chg_new_password_wo_username_2")))); bubble_observer.AcceptSavePrompt(); WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16(""), - base::ASCIIToUTF16("pass1")); + CheckThatCredentialsStored("", "pass1"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -2709,8 +2578,7 @@ password_store->stored_passwords().begin()->second[0]; prompt_observer->AcceptUpdatePrompt(stored_form); WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("new_pw")); + CheckThatCredentialsStored("temp", "new_pw"); } // Test whether the password form with the username and password fields having @@ -3135,7 +3003,7 @@ prompt_observer->AcceptSavePrompt(); WaitForPasswordStore(); - CheckThatCredentialsStored(base::string16(), base::ASCIIToUTF16("pw")); + CheckThatCredentialsStored("", "pw"); } // Tests that no bubble shown when a password form without username submitted @@ -3206,8 +3074,7 @@ prompt_observer->AcceptUpdatePrompt(stored_form); WaitForPasswordStore(); - CheckThatCredentialsStored(base::ASCIIToUTF16("temp"), - base::ASCIIToUTF16("new_pw")); + CheckThatCredentialsStored("temp", "new_pw"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, @@ -3258,19 +3125,6 @@ EXPECT_TRUE(prompt_observer->IsSavePromptShownAutomatically()); } -// Tests that password suggestions still work if the fields have the -// "autocomplete" attribute set to off. -IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithViewsFeature, - AutofillSuggestionsForPasswordFormWithAutocompleteOff) { - std::string submit = - "document.getElementById('username').value = 'temp';" - "document.getElementById('password').value = 'mypassword';" - "document.getElementById('submit').click();"; - VerifyPasswordIsSavedAndFilled( - "/password/password_autocomplete_off_test.html", submit, "password", - "mypassword"); -} - IN_PROC_BROWSER_TEST_P( PasswordManagerBrowserTestWithViewsFeature, SkipZeroClickNotToggledAfterSuccessfulSubmissionWithAPI) {
diff --git a/chrome/browser/password_manager/password_manager_interactive_test_base.cc b/chrome/browser/password_manager/password_manager_interactive_test_base.cc new file mode 100644 index 0000000..3ef6090 --- /dev/null +++ b/chrome/browser/password_manager/password_manager_interactive_test_base.cc
@@ -0,0 +1,78 @@ +// 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/password_manager/password_manager_interactive_test_base.h" + +#include "content/public/test/browser_test_utils.h" +#include "ui/events/keycodes/dom_us_layout_data.h" +#include "ui/events/keycodes/keyboard_code_conversion.h" + +PasswordManagerInteractiveTestBase::PasswordManagerInteractiveTestBase() = + default; + +PasswordManagerInteractiveTestBase::~PasswordManagerInteractiveTestBase() = + default; + +void PasswordManagerInteractiveTestBase::FillElementWithValue( + const std::string& element_id, + const std::string& value) { + ASSERT_TRUE(content::ExecuteScript( + RenderFrameHost(), + base::StringPrintf("document.getElementById('%s').focus();", + element_id.c_str()))); + for (base::char16 character : value) { + ui::DomKey dom_key = ui::DomKey::FromCharacter(character); + const ui::PrintableCodeEntry* code_entry = std::find_if( + std::begin(ui::kPrintableCodeMap), std::end(ui::kPrintableCodeMap), + [character](const ui::PrintableCodeEntry& entry) { + return entry.character[0] == character || + entry.character[1] == character; + }); + ASSERT_TRUE(code_entry != std::end(ui::kPrintableCodeMap)); + bool shift = code_entry->character[1] == character; + ui::DomCode dom_code = code_entry->dom_code; + content::SimulateKeyPress(WebContents(), dom_key, dom_code, + ui::DomCodeToUsLayoutKeyboardCode(dom_code), + false, shift, false, false); + } +} + +void PasswordManagerInteractiveTestBase::VerifyPasswordIsSavedAndFilled( + const std::string& filename, + const std::string& username_id, + const std::string& password_id, + const std::string& submission_script) { + EXPECT_FALSE(password_id.empty()); + + NavigateToFile(filename); + + NavigationObserver observer(WebContents()); + const char kUsername[] = "user"; + const char kPassword[] = "123"; + if (!username_id.empty()) + FillElementWithValue(username_id, kUsername); + FillElementWithValue(password_id, kPassword); + ASSERT_TRUE(content::ExecuteScript(RenderFrameHost(), submission_script)); + observer.Wait(); + WaitForPasswordStore(); + + BubbleObserver(WebContents()).AcceptSavePrompt(); + + // Spin the message loop to make sure the password store had a chance to save + // the password. + WaitForPasswordStore(); + CheckThatCredentialsStored(username_id.empty() ? "" : kUsername, kPassword); + + NavigateToFile(filename); + + // Let the user interact with the page, so that DOM gets modification events, + // needed for autofilling fields. + content::SimulateMouseClickAt( + WebContents(), 0, blink::WebMouseEvent::Button::kLeft, gfx::Point(1, 1)); + + // Wait until that interaction causes the password value to be revealed. + if (!username_id.empty()) + WaitForElementValue(username_id, kUsername); + WaitForElementValue(password_id, kPassword); +}
diff --git a/chrome/browser/password_manager/password_manager_interactive_test_base.h b/chrome/browser/password_manager/password_manager_interactive_test_base.h new file mode 100644 index 0000000..0e507d6 --- /dev/null +++ b/chrome/browser/password_manager/password_manager_interactive_test_base.h
@@ -0,0 +1,37 @@ +// 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_PASSWORD_MANAGER_PASSWORD_MANAGER_INTERACTIVE_TEST_BASE_H_ +#define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_MANAGER_INTERACTIVE_TEST_BASE_H_ + +#include <string> + +#include "chrome/browser/password_manager/password_manager_test_base.h" + +class PasswordManagerInteractiveTestBase + : public PasswordManagerBrowserTestBase { + public: + PasswordManagerInteractiveTestBase(); + ~PasswordManagerInteractiveTestBase() override; + + // Focuses an input element with id |element_id| in the main frame and + // emulates typing |value| into it. + void FillElementWithValue(const std::string& element_id, + const std::string& value); + + // Navigates to |filename|, fills |username_id| and |password_id| if nonempty + // and runs |submission_script| to submit. The credential is then saved via + // the password prompt. + // Navigates back to |filename| and then verifies that the same elements are + // filled. + void VerifyPasswordIsSavedAndFilled(const std::string& filename, + const std::string& username_id, + const std::string& password_id, + const std::string& submission_script); + + private: + DISALLOW_COPY_AND_ASSIGN(PasswordManagerInteractiveTestBase); +}; + +#endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_MANAGER_INTERACTIVE_TEST_BASE_H_
diff --git a/chrome/browser/password_manager/password_manager_interactive_uitest.cc b/chrome/browser/password_manager/password_manager_interactive_uitest.cc index 37cc6d15e..d264812 100644 --- a/chrome/browser/password_manager/password_manager_interactive_uitest.cc +++ b/chrome/browser/password_manager/password_manager_interactive_uitest.cc
@@ -7,7 +7,7 @@ #include "base/feature_list.h" #include "base/strings/utf_string_conversions.h" #include "base/test/scoped_feature_list.h" -#include "chrome/browser/password_manager/password_manager_test_base.h" +#include "chrome/browser/password_manager/password_manager_interactive_test_base.h" #include "chrome/browser/password_manager/password_store_factory.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" @@ -15,34 +15,10 @@ #include "components/autofill/core/browser/autofill_experiments.h" #include "components/password_manager/core/browser/test_password_store.h" #include "content/public/test/browser_test_utils.h" -#include "content/public/test/test_utils.h" -#include "ui/events/keycodes/keyboard_codes.h" namespace { -void SimulateUserTypingInField(content::WebContents* web_contents, - const std::string& field_id) { - std::string focus("document.getElementById('" + field_id + "').focus();"); - ASSERT_TRUE(content::ExecuteScript(web_contents, focus)); - - content::SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('O'), - ui::DomCode::US_O, ui::VKEY_O, false, false, false, - false); - content::SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('R'), - ui::DomCode::US_R, ui::VKEY_R, false, false, false, - false); - content::SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('A'), - ui::DomCode::US_A, ui::VKEY_A, false, false, false, - false); - content::SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('R'), - ui::DomCode::US_R, ui::VKEY_R, false, false, false, - false); - content::SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('Y'), - ui::DomCode::US_Y, ui::VKEY_Y, false, false, false, - false); -} - -// Erases all characters that have been typed by SimulateUserTypingInField. +// Erases all characters that have been typed into |field_id|. void SimulateUserDeletingFieldContent(content::WebContents* web_contents, const std::string& field_id) { std::string focus("document.getElementById('" + field_id + "').focus();"); @@ -66,7 +42,7 @@ // - bool popup_views_enabled: whether feature AutofillExpandedPopupViews // is enabled for testing. class PasswordManagerBrowserTestWithConditionalPopupViews - : public PasswordManagerBrowserTestBase, + : public PasswordManagerInteractiveTestBase, public ::testing::WithParamInterface<bool> { public: PasswordManagerBrowserTestWithConditionalPopupViews() = default; @@ -83,7 +59,7 @@ } scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features); - PasswordManagerBrowserTestBase::SetUp(); + PasswordManagerInteractiveTestBase::SetUp(); } private: @@ -115,15 +91,15 @@ WaitForElementValue("username_field", "temp"); WaitForElementValue("password_field", "random"); - // Change username and submit. This should add the characters "ORARY" to the + // Change username and submit. This should add the characters "orary" to the // already autofilled username. - SimulateUserTypingInField(WebContents(), "username_field"); + FillElementWithValue("username_field", "orary"); // Move the focus out of the inputs before waiting because WaitForElementValue // uses "onchange" event. The event is triggered only when the control looses // focus. chrome::FocusLocationBar(browser()); - WaitForElementValue("username_field", "tempORARY"); + WaitForElementValue("username_field", "temporary"); NavigationObserver navigation_observer(WebContents()); BubbleObserver prompt_observer(WebContents()); @@ -147,7 +123,7 @@ EXPECT_EQ(2u, stored_passwords.begin()->second.size()); EXPECT_EQ(base::UTF8ToUTF16("temp"), (stored_passwords.begin()->second)[0].username_value); - EXPECT_EQ(base::UTF8ToUTF16("tempORARY"), + EXPECT_EQ(base::UTF8ToUTF16("temporary"), (stored_passwords.begin()->second)[1].username_value); } @@ -155,9 +131,7 @@ ManualFallbackForSaving) { NavigateToFile("/password/password_form.html"); - std::string focus("document.getElementById('password_field').focus();"); - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), focus)); - SimulateUserTypingInField(WebContents(), "password_field"); + FillElementWithValue("password_field", "123"); BubbleObserver prompt_observer(WebContents()); prompt_observer.WaitForFallbackForSaving(); @@ -176,7 +150,7 @@ prompt_observer.AcceptSavePrompt(); WaitForPasswordStore(); - CheckThatCredentialsStored(base::string16(), base::ASCIIToUTF16("ORARY")); + CheckThatCredentialsStored("", "123"); } IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, @@ -184,9 +158,7 @@ NavigateToFile("/password/password_form.html"); ManagePasswordsUIController::set_save_fallback_timeout_in_seconds(0); - std::string focus("document.getElementById('password_field').focus();"); - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), focus)); - SimulateUserTypingInField(WebContents(), "password_field"); + FillElementWithValue("password_field", "123"); BubbleObserver prompt_observer(WebContents()); prompt_observer.WaitForFallbackForSaving(); @@ -200,9 +172,7 @@ ManualFallbackForSaving_HideIcon) { NavigateToFile("/password/password_form.html"); - std::string focus("document.getElementById('password_field').focus();"); - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), focus)); - SimulateUserTypingInField(WebContents(), "password_field"); + FillElementWithValue("password_field", "123"); BubbleObserver prompt_observer(WebContents()); prompt_observer.WaitForFallbackForSaving(); @@ -228,9 +198,7 @@ NavigateToFile("/password/password_form.html"); - std::string focus("document.getElementById('password_field').focus();"); - ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), focus)); - SimulateUserTypingInField(WebContents(), "password_field"); + FillElementWithValue("password_field", "123"); BubbleObserver prompt_observer(WebContents()); prompt_observer.WaitForFallbackForSaving(); @@ -239,6 +207,111 @@ prompt_observer.WaitForManagementState(); } +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + PromptForXHRWithoutOnSubmit) { + NavigateToFile("/password/password_xhr_submit.html"); + + // Verify that if XHR navigation occurs and the form is properly filled out, + // we try and save the password even though onsubmit hasn't been called. + FillElementWithValue("username_field", "user"); + FillElementWithValue("password_field", "1234"); + NavigationObserver observer(WebContents()); + ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), "send_xhr()")); + observer.Wait(); + EXPECT_TRUE(BubbleObserver(WebContents()).IsSavePromptShownAutomatically()); +} + +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + PromptForXHRWithNewPasswordsWithoutOnSubmit) { + NavigateToFile("/password/password_xhr_submit.html"); + + // Verify that if XHR navigation occurs and the form is properly filled out, + // we try and save the password even though onsubmit hasn't been called. + // Specifically verify that the password form saving new passwords is treated + // the same as a login form. + FillElementWithValue("signup_username_field", "user"); + FillElementWithValue("signup_password_field", "1234"); + FillElementWithValue("confirmation_password_field", "1234"); + NavigationObserver observer(WebContents()); + ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), "send_xhr()")); + observer.Wait(); + EXPECT_TRUE(BubbleObserver(WebContents()).IsSavePromptShownAutomatically()); +} + +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + PromptForFetchWithoutOnSubmit) { + NavigateToFile("/password/password_fetch_submit.html"); + + // Verify that if Fetch navigation occurs and the form is properly filled out, + // we try and save the password even though onsubmit hasn't been called. + FillElementWithValue("username_field", "user"); + FillElementWithValue("password_field", "1234"); + + NavigationObserver observer(WebContents()); + ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), "send_fetch()")); + observer.Wait(); + EXPECT_TRUE(BubbleObserver(WebContents()).IsSavePromptShownAutomatically()); +} + +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + PromptForFetchWithNewPasswordsWithoutOnSubmit) { + NavigateToFile("/password/password_fetch_submit.html"); + + // Verify that if Fetch navigation occurs and the form is properly filled out, + // we try and save the password even though onsubmit hasn't been called. + // Specifically verify that the password form saving new passwords is treated + // the same as a login form. + FillElementWithValue("signup_username_field", "user"); + FillElementWithValue("signup_password_field", "1234"); + FillElementWithValue("confirmation_password_field", "1234"); + NavigationObserver observer(WebContents()); + ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), "send_fetch()")); + observer.Wait(); + EXPECT_TRUE(BubbleObserver(WebContents()).IsSavePromptShownAutomatically()); +} + +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + AutofillPasswordFormWithoutUsernameField) { + std::string submit = "document.getElementById('submit-button').click();"; + VerifyPasswordIsSavedAndFilled("/password/form_with_only_password_field.html", + std::string(), "password", submit); +} + +// Tests that if a site embeds the login and signup forms into one <form>, the +// login form still gets autofilled. +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + AutofillLoginSignupForm) { + std::string submit = "document.getElementById('submit').click();"; + VerifyPasswordIsSavedAndFilled("/password/login_signup_form.html", "username", + "password", submit); +} + +// Tests that password suggestions still work if the fields have the +// "autocomplete" attribute set to off. +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + AutofillPasswordFormWithAutocompleteOff) { + std::string submit = "document.getElementById('submit').click();"; + VerifyPasswordIsSavedAndFilled( + "/password/password_autocomplete_off_test.html", "username", "password", + submit); +} + +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + AutofillPasswordNoFormElement) { + VerifyPasswordIsSavedAndFilled("/password/no_form_element.html", + "username_field", "password_field", + "send_xhr();"); +} + +// Check that we can fill in cases where <base href> is set and the action of +// the form is not set. Regression test for https://crbug.com/360230. +IN_PROC_BROWSER_TEST_P(PasswordManagerBrowserTestWithConditionalPopupViews, + AutofillBaseTagWithNoActionTest) { + std::string submit = "document.getElementById('submit_button').click();"; + VerifyPasswordIsSavedAndFilled("/password/password_xhr_submit.html", + "username_field", "password_field", submit); +} + INSTANTIATE_TEST_CASE_P(All, PasswordManagerBrowserTestWithConditionalPopupViews, /*popup_views_enabled=*/::testing::Bool());
diff --git a/chrome/browser/password_manager/password_manager_test_base.cc b/chrome/browser/password_manager/password_manager_test_base.cc index f7ffcad..2ced5ae0 100644 --- a/chrome/browser/password_manager/password_manager_test_base.cc +++ b/chrome/browser/password_manager/password_manager_test_base.cc
@@ -14,6 +14,7 @@ #include "base/memory/ref_counted.h" #include "base/optional.h" #include "base/strings/stringprintf.h" +#include "base/strings/utf_string_conversions.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" #include "chrome/browser/password_manager/password_store_factory.h" #include "chrome/browser/profiles/profile.h" @@ -486,42 +487,6 @@ observer.Wait(); } -void PasswordManagerBrowserTestBase::VerifyPasswordIsSavedAndFilled( - const std::string& filename, - const std::string& submission_script, - const std::string& expected_element, - const std::string& expected_value) { - password_manager::TestPasswordStore* password_store = - static_cast<password_manager::TestPasswordStore*>( - PasswordStoreFactory::GetForProfile( - browser()->profile(), ServiceAccessType::IMPLICIT_ACCESS).get()); - EXPECT_TRUE(password_store->IsEmpty()); - - NavigateToFile(filename); - - NavigationObserver observer(WebContents()); - ASSERT_TRUE(content::ExecuteScript(RenderFrameHost(), submission_script)); - observer.Wait(); - WaitForPasswordStore(); - - BubbleObserver(WebContents()).AcceptSavePrompt(); - - // Spin the message loop to make sure the password store had a chance to save - // the password. - WaitForPasswordStore(); - ASSERT_FALSE(password_store->IsEmpty()); - - NavigateToFile(filename); - - // Let the user interact with the page, so that DOM gets modification events, - // needed for autofilling fields. - content::SimulateMouseClickAt( - WebContents(), 0, blink::WebMouseEvent::Button::kLeft, gfx::Point(1, 1)); - - // Wait until that interaction causes the password value to be revealed. - WaitForElementValue(expected_element, expected_value); -} - void PasswordManagerBrowserTestBase::WaitForElementValue( const std::string& element_id, const std::string& expected_value) { @@ -688,8 +653,8 @@ } void PasswordManagerBrowserTestBase::CheckThatCredentialsStored( - const base::string16& username, - const base::string16& password) { + const std::string& username, + const std::string& password) { scoped_refptr<password_manager::TestPasswordStore> password_store = static_cast<password_manager::TestPasswordStore*>( PasswordStoreFactory::GetForProfile( @@ -700,6 +665,6 @@ auto& passwords_vector = passwords_map.begin()->second; ASSERT_EQ(1u, passwords_vector.size()); const autofill::PasswordForm& form = passwords_vector[0]; - EXPECT_EQ(username, form.username_value); - EXPECT_EQ(password, form.password_value); + EXPECT_EQ(base::ASCIIToUTF16(username), form.username_value); + EXPECT_EQ(base::ASCIIToUTF16(password), form.password_value); }
diff --git a/chrome/browser/password_manager/password_manager_test_base.h b/chrome/browser/password_manager/password_manager_test_base.h index 99deff3..09d59dd 100644 --- a/chrome/browser/password_manager/password_manager_test_base.h +++ b/chrome/browser/password_manager/password_manager_test_base.h
@@ -59,11 +59,12 @@ DISALLOW_COPY_AND_ASSIGN(NavigationObserver); }; -// Observes the save password prompt for a specified WebContents, keeps track of -// whether or not it is currently shown, and allows accepting saving passwords -// through it. +// Checks the save password prompt for a specified WebContents and allows +// accepting saving passwords through it. class BubbleObserver { public: + // The constructor doesn't start tracking |web_contents|. To check the status + // of the prompt one can even construct a temporary BubbleObserver. explicit BubbleObserver(content::WebContents* web_contents); // Checks if the save prompt is being currently available due to either manual @@ -146,14 +147,6 @@ // return immediately. void NavigateToFile(const std::string& path); - // Navigates to |filename| and runs |submission_script| to submit. Navigates - // back to |filename| and then verifies that |expected_element| has - // |expected_value|. - void VerifyPasswordIsSavedAndFilled(const std::string& filename, - const std::string& submission_script, - const std::string& expected_element, - const std::string& expected_value); - // Waits until the "value" attribute of the HTML element with |element_id| is // equal to |expected_value|. If the current value is not as expected, this // waits until the "change" event is fired for the element. This also @@ -198,8 +191,8 @@ // Checks that |password_store| stores only one credential with |username| and // |password|. - void CheckThatCredentialsStored(const base::string16& username, - const base::string16& password); + void CheckThatCredentialsStored(const std::string& username, + const std::string& password); // Accessors // Return the first created tab with a custom ManagePasswordsUIController.
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index f41edfe..1dfa2a8 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -365,6 +365,8 @@ PDFExtensionTest::SetUpCommandLine(command_line); if (GetParam()) { feature_list_.InitAndEnableFeature(features::kEnableVizHitTestDrawQuad); + } else { + feature_list_.InitAndDisableFeature(features::kEnableVizHitTestDrawQuad); } }
diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service_unittest.cc b/chrome/browser/printing/cloud_print/cloud_print_proxy_service_unittest.cc index e7ba86b..f2828ee 100644 --- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service_unittest.cc +++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service_unittest.cc
@@ -149,7 +149,7 @@ service_manager::InterfaceProvider::TestApi test_api( &process_control_.remote_interfaces()); test_api.SetBinderForName( - "cloud_print::mojom::CloudPrint", + "cloud_print.mojom.CloudPrint", base::Bind(&TestCloudPrintProxyService::HandleCloudPrintProxyRequest, base::Unretained(this))); service_manager::mojom::InterfaceProviderPtr handle; @@ -160,7 +160,7 @@ ~TestCloudPrintProxyService() override { service_manager::InterfaceProvider::TestApi test_api( &ServiceProcessControl::GetInstance()->remote_interfaces()); - test_api.ClearBinderForName("cloud_print::mojom::CloudPrint"); + test_api.ClearBinderForName("cloud_print.mojom.CloudPrint"); } void Initialize() {
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc index d9af8bd..9d970c9 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -62,6 +62,7 @@ #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/chrome_pages.h" +#include "chrome/browser/ui/exclusive_access/keyboard_lock_controller.h" #include "chrome/browser/ui/tab_contents/core_tab_helper.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/web_applications/web_app.h" @@ -909,6 +910,16 @@ return controller->IsTabFullscreen(); } +bool RenderViewContextMenu::IsPressAndHoldEscRequiredToExitFullscreen() const { + Browser* browser = chrome::FindBrowserWithWebContents(source_web_contents_); + if (!browser) + return false; + + KeyboardLockController* controller = + browser->exclusive_access_manager()->keyboard_lock_controller(); + return controller->RequiresPressAndHoldEscToExit(); +} + #if BUILDFLAG(ENABLE_PLUGINS) void RenderViewContextMenu::HandleAuthorizeAllPlugins() { ChromePluginServiceFilter::GetInstance()->AuthorizeAllPlugins(
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chrome/browser/renderer_context_menu/render_view_context_menu.h index 9d88aae3..4383274 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.h +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -99,6 +99,10 @@ // page (as opposed to the user). Used to determine which shortcut to display. bool IsHTML5Fullscreen() const; + // Returns true if keyboard lock is active and requires the user to press and + // hold escape to exit exclusive access mode. + bool IsPressAndHoldEscRequiredToExitFullscreen() const; + private: friend class RenderViewContextMenuTest; friend class TestRenderViewContextMenu;
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc index dbce2c3..4f9a660 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc
@@ -284,24 +284,6 @@ DiscardTabImpl(reason); } -void TabManager::DiscardTabById(int32_t tab_id, DiscardReason reason) { - for (LifecycleUnit* lifecycle_unit : lifecycle_units_) { - if (lifecycle_unit->GetID() == tab_id) { - lifecycle_unit->Discard(reason); - return; - } - } -} - -void TabManager::FreezeTabById(int32_t tab_id) { - for (LifecycleUnit* lifecycle_unit : lifecycle_units_) { - if (lifecycle_unit->GetID() == tab_id) { - lifecycle_unit->Freeze(); - return; - } - } -} - WebContents* TabManager::DiscardTabByExtension(content::WebContents* contents) { if (contents) { TabLifecycleUnitExternal* tab_lifecycle_unit_external =
diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h index be87524..856d4133 100644 --- a/chrome/browser/resource_coordinator/tab_manager.h +++ b/chrome/browser/resource_coordinator/tab_manager.h
@@ -107,17 +107,6 @@ // unload handler and fast-kill the tab regardless). void DiscardTab(DiscardReason reason); - // Discards a tab with the given unique ID. The tab still exists in the - // tab-strip; clicking on it will reload it. Returns null if the tab cannot - // be found or cannot be discarded. Otherwise returns the new web_contents - // of the discarded tab. - void DiscardTabById(int32_t tab_id, DiscardReason reason); - - // Freezes a tab with the given unique ID. Unlike discarding, freezing does - // not kill or change the tab other than stopping its task queues. Revisiting - // the tab causes it to unfreeze. - void FreezeTabById(int32_t tab_id); - // Method used by the extensions API to discard tabs. If |contents| is null, // discards the least important tab using DiscardTab(). Otherwise discards // the given contents. Returns the new web_contents or null if no tab
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 a3f26b8..446eb21e 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />፣ የይለፍ ቃል ጽሑፍ ሳጥን</translation> <translation id="1467432559032391204">ግራ</translation> <translation id="1474557363159888097">ምንም ቀዳሚ መልህቅ የለም።</translation> +<translation id="1480046233931937785">ክሬዲቶች</translation> <translation id="1487494366197411587">በChromebook ላይ የSearch ቁልፉ ልክ ከግራው Shift በላይ ነው።</translation> <translation id="1499041187027566160">ድምጽ ጨምር</translation> <translation id="1502086903961450562">ቀዳሚ ስዕላዊ</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">የመሬት ምልክት</translation> <translation id="5683155931978483559">ቀዳሚ አመልካች ሳጥን</translation> <translation id="5684277895745049190">ዝርዝር</translation> -<translation id="5695831708991916435">የሚከተሉት ጥቂት አቋራጮች የChromeVox ትዕዛዞች አይደሉም፣ ነገር ግን ከChrome ምርጡን ሁሉ ለማግኘት አሁንም በጣም ጠቃሚ ናቸው። -እንደ አዝራሮች እና አገናኞች ባሉ የእርምጃ ንጥሎች ውስጥ ወደፊት ለመሄድ የTab አዝራሩን ይጫኑ። ወደኋላ ለመሄድ Shift+Tab ይጫኑ። -እንዲሁም ኦምኒቦክ በመባል ወደሚታወቀው የChrome አሳሽ የአድራሻ ሳጥን ለመግባት Control + L ይጫኑ። -ወደ አዲስ ትር በራስ-ሰር ለመሄድ እና ለመክፈት Control+T ይጫኑ። የእርስዎ ጠቋሚ በኦሚኒቦክሱ ውስጥ ይሆናል። -አንድ ትር ለመዝጋት Control+W ይጫኑ። -በክፍት ትሮች መካከል ወደፊት ለመሄድ Control+Tab ይጠቀሙ። -የChrome አሳሽ ምናሌውን ለመክፈት Alt+F ይጫኑ።</translation> <translation id="5700650669149824506">ምንም ቀዳሚ የደረጃ 4 ርዕስ የለም።</translation> <translation id="5703716265115423771">ድምጽ ቀንስ</translation> <translation id="5709192780268610569">ምንም ረጅም ማብራሪያ የለም</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 1d3d970..8c32d21 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">مربع نص كلمة المرور بالقيمة <ph name="VALUE" /></translation> <translation id="1467432559032391204">اليسار</translation> <translation id="1474557363159888097">ليس هناك إرساء سابق.</translation> +<translation id="1480046233931937785">أسماء المشاركين</translation> <translation id="1487494366197411587">على جهاز Chromebook، يكون مفتاح البحث أعلى مفتاح Shift الأيسر مباشرةً.</translation> <translation id="1499041187027566160">الصوت مرتفع</translation> <translation id="1502086903961450562">الرسم السابق</translation> @@ -424,7 +425,7 @@ <translation id="461613135510474570">جملة</translation> <translation id="463135993322337640">اضغط على "ChromeVox o، n" للاطلاع على الميزات الجديدة.</translation> <translation id="4647836961514597010">علبة الألوان</translation> -<translation id="4652110509054054146">يمكنك استخدام الزر Search مع السهم الأيسر أو الأيمن كبديل عن Home أو End، وSearch مع Control والسهم الأيسر أو الأيمن كبديل عن Control Home أو End، وكذلك Search مع السهم لأعلى أو لأسفل لتحريك الصفحة لأعلى أو لأسفل.</translation> +<translation id="4652110509054054146">يمكنك استخدام الزر Search مع السهم الأيسر أو الأيمن كبديل عن Home أو End، وSearch مع Control والسهم الأيسر أو الأيمن كبديل عن Control Home أوControl End، وكذلك Search مع السهم المتجه للأعلى أو للأسفل لتحريك الصفحة للأعلى أو للأسفل.</translation> <translation id="4660783501463101648">تمت إزالة الإصدار الكلاسيكي. وتمت إزالة مفتاح تبديل لوحة المفاتيح للعودة إلى الإصدار الكلاسيكي من ChromeVox.</translation> <translation id="4661075872484491155">متفرع</translation> <translation id="4668929960204016307">،</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">مَعلم</translation> <translation id="5683155931978483559">مربع الاختيار السابق</translation> <translation id="5684277895745049190">القائمة</translation> -<translation id="5695831708991916435">الاختصارات التالية القليلة ليست أوامر في ChromeVox، ولكنها ما زالت مفيدة جدًا لتحقيق أقصى استفادة من Chrome. -للتنقل للأمام خلال العناصر القابلة للتنفيذ مثل الأزرار والروابط، اضغط على مفتاح Tab. وللتنقل للخلف، اضغط على Shift+Tab. -للدخول إلى مربع عناوين متصفح Chrome، يُسمى أيضًا المربّع متعدد الاستخدامات، اضغط على Control + L. -لفتح علامة تبويب جديدة والانتقال إليها تلقائيًا، اضغط على Control+T. وسيكون مؤشر الماوس في المربّع متعدد الاستخدمات. -لإغلاق علامة تبويب، اضغط على Control+W. -للانتقال للأمام بين علامات التبويب المفتوحة، استخدم Control+Tab. -لفتح قائمة متصفح Chrome، اضغط على Alt+F.</translation> <translation id="5700650669149824506">ليس هناك عنوان سابق من المستوى الرابع.</translation> <translation id="5703716265115423771">صوت منخفض</translation> <translation id="5709192780268610569">ليس هناك وصف مطول</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb index b55fb2e..fd8f350 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bg.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, текстово поле за парола</translation> <translation id="1467432559032391204">Наляво</translation> <translation id="1474557363159888097">Няма предишна котва.</translation> +<translation id="1480046233931937785">Признание</translation> <translation id="1487494366197411587">На Chromebook клавишът „търсене“ е точно над левия клавиш Shift.</translation> <translation id="1499041187027566160">увеличаване на силата на звука</translation> <translation id="1502086903961450562">Предишната графика</translation> @@ -423,7 +424,7 @@ <translation id="461613135510474570">Изречение</translation> <translation id="463135993322337640">Натиснете „o“ и „n“ в ChromeVox, за да научите кои са новите неща</translation> <translation id="4647836961514597010">Инструмент за избор на цветове</translation> -<translation id="4652110509054054146">„Търсене“ и стрелка наляво или надясно за Home или End, „Търсене“, Control и стрелка наляво или надясно за Control Home или End, клавиш „Търсене“ и стрелка нагоре или надолу за Page Up или Page Down.</translation> +<translation id="4652110509054054146">Използвайте клавиш „Търсене“ и стрелка наляво или надясно за Home или End, клавиш „Търсене“, клавиш Control и стрелка наляво или надясно за Control Home или End, клавиш „Търсене“ и стрелка нагоре или надолу за Page Up или Page Down.</translation> <translation id="4660783501463101648">Класическият изглед е премахнат: Превключвателят на клавиатурата за връщане към класическия изглед на ChromeVox е премахнат.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Ориентир</translation> <translation id="5683155931978483559">Предишното квадратче за отметка</translation> <translation id="5684277895745049190">Списък</translation> -<translation id="5695831708991916435">Следващите няколко клавишни комбинации не са команди на ChromeVox, но са много полезни за пълноценна работа с Chrome. -За придвижване напред през позволяващи действие елементи, като бутони и връзки, натиснете клавиша Tab. За придвижване назад натиснете Shift + Tab. -За да влезете в полето за адрес в браузъра Chrome, наричано също „поле за всичко“, натиснете Control + L. -За да отворите нов раздел и автоматично да минете в него, натиснете Control + T. Курсорът ще бъде в полето за всичко. -За да затворите раздел, натиснете Control + W. -За придвижване напред през отворените раздели използвайте Control + Tab. -За да отворите менюто на браузъра Chrome, натиснете Alt + F.</translation> <translation id="5700650669149824506">Няма предишно заглавие от четвърто ниво.</translation> <translation id="5703716265115423771">намаляване на силата на звука</translation> <translation id="5709192780268610569">Няма дълго описание</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 8b30c6f9..b9d80b5 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bn.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bn.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, পাসওয়ার্ড পাঠ্য বাক্স</translation> <translation id="1467432559032391204">বামে</translation> <translation id="1474557363159888097">কোনো পূর্ববর্তী অ্যাঙ্কর নেই৷</translation> +<translation id="1480046233931937785">কৃতিত্ব</translation> <translation id="1487494366197411587">Chromebook এ বাঁ Shift কী এর ঠিক উপরেই অনুসন্ধান কী।</translation> <translation id="1499041187027566160">ভলিউম বাড়ান</translation> <translation id="1502086903961450562">পূর্ববর্তী গ্রাফিক</translation> @@ -89,6 +90,7 @@ <translation id="1810107444790159527">তালিকা বাক্স</translation> <translation id="1828385960365606039">মে</translation> <translation id="1834891354138622109">কলাম</translation> +<translation id="1845944666972354496">চালু করতে ডবল ট্যাপ করুন</translation> <translation id="1865601187525349519">পাঠ্যের শেষে</translation> <translation id="1876229593313240038">দস্তাবেজ</translation> <translation id="188130072164734898">বর্তমান সময় ও তারিখ বলে৷</translation> @@ -120,6 +122,7 @@ <translation id="2179452035581866348">আপনাকে অপরিহার্য ও অতিরিক্ত তথ্য দিতে ChromeVox সাউন্ড ব্যবহার করে। প্রতিটি সাউন্ড কি বোঝায় তা শিখে নিলে আপনি আরও দ্রুত নেভিগেট করতে পারবেন। আপনি এতে স্বাচ্ছন্দ বোধ করলে, স্পিচে ভারবোস বর্ণনা বন্ধ করে দিতে পারেন এবং কোনো পৃষ্ঠার অপরিহার্য তথ্যের জন্য এই সাউন্ডগুলির উপর নির্ভর করতে পারেন। এখানে সাউন্ডগুলির পুরো তালিকা এবং সেগুলির কোনটির কি কাজ তা দেখতে পাচ্ছেন।</translation> <translation id="2188751878842439466">{COUNT,plural, =1{ডান বন্ধনী}one{#টি ডান বন্ধনী}other{#টি ডান বন্ধনী}}</translation> <translation id="2199994615414171367">পূর্ববর্তী গাণিতিক</translation> +<translation id="2203046366315513658">কমান</translation> <translation id="2220529011494928058">কোনো সমস্যার অভিযোগ করুন</translation> <translation id="2223693656926968778">বর্তমান আইটেমের উপর ব্যবস্থা গ্রহণ করুন</translation> <translation id="225732394367814946">কথনের হার বাড়ান</translation> @@ -158,6 +161,7 @@ <translation id="2637227747952042642">গণিত</translation> <translation id="2639750663247012216">ChromeVox সংশোধক</translation> <translation id="2644542693584024604">misspelled</translation> +<translation id="2673280813984708147">এডিট করছেন</translation> <translation id="267442004702508783">রিফ্রেশ করুন</translation> <translation id="2684412629217766642">ChromeVox টিউটোরিয়াল বন্ধ করুন</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +213,7 @@ <translation id="3060756054951570867"><ph name="TITLE" /> মেনু খোলা আছে</translation> <translation id="3078345202707391975">পরবর্তী স্তর ২ শিরোনাম</translation> <translation id="3078740164268491126">সারণী</translation> +<translation id="3082249673510793544">স্ক্রল করে ফিরে যান</translation> <translation id="3082557070674409251">ক্লিক করা হয়েছে</translation> <translation id="3084806535845658316">কোনো টাইপিং ইকো নেই</translation> <translation id="3086746722712840547">দ্রষ্টব্য</translation> @@ -343,7 +348,7 @@ <translation id="3909320334364316587">পূর্ববর্তী স্তর ৬ শিরোনাম</translation> <translation id="3914173277599553213">প্রয়োজন</translation> <translation id="3914732343065571127">ChromeVox কমান্ড রেফারেন্স</translation> -<translation id="3962990492275676168">বর্তমান অবস্থান থেকে পড়া শুরু করুন</translation> +<translation id="3962990492275676168">বর্তমান লোকেশন থেকে পড়া শুরু করুন</translation> <translation id="4004802134384979325">চেক করা</translation> <translation id="4006140876663370126">img</translation> <translation id="4038349100599457191">মাস নির্বাচন</translation> @@ -396,6 +401,7 @@ <translation id="4372705107434148843">স্পিচ থামান</translation> <translation id="4373197658375206385">এমন কোনো পূর্ববর্তী আইটেম নেই যা লিঙ্ক নয়৷</translation> <translation id="4376316291247992553">ব্রেইল হিসাবে গ্রাফিক দেখুন</translation> +<translation id="4378308539633073595">স্ক্রল করে এগিয়ে যান</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">পুনঃসেট করুন</translation> <translation id="4457472090507035117">এখনকার ভয়েসটি বেছে নিন:</translation> @@ -403,6 +409,7 @@ <translation id="4476183483923481720">নতুন লাইন</translation> <translation id="4482330759234983253">পূর্ববর্তী সারণী</translation> <translation id="4491109536499578614">ছবি</translation> +<translation id="4517854969512651305">বাড়ান</translation> <translation id="4529987814483543472">ক্লাসিক কীম্যাপ</translation> <translation id="4532633738839459153">{COUNT,plural, =1{স্ল্যাশ}one{#টি স্ল্যাশ}other{#টি স্ল্যাশ}}</translation> <translation id="4547556996012970016">পরবর্তী স্তর ৫ শিরোনাম</translation> @@ -418,6 +425,7 @@ <translation id="461613135510474570">বাক্য</translation> <translation id="463135993322337640">নতুন কি আছে তা দেখার জন্য ChromeVox o, n টিপুন</translation> <translation id="4647836961514597010">রঙ চয়নকারী</translation> +<translation id="4652110509054054146">হোম বা এন্ডে যেতে সার্চের সাথে বাঁ অথবা ডান দিকের তীরচিহ্ন টিপুন, কন্ট্রোল হম অথবে এন্ডের জন্য সার্চ কন্ট্রোলের সাথে বাঁ অথবা ডান দিকের তীরচিহ্ন টিপুন, পেজ আপ ও পেজ ডাউনের জন্য সার্চের সাথে উপরের বা নিচের তীরচিহ্ন টিপুন।</translation> <translation id="4660783501463101648">ক্লাসিক ভার্সন সরানো হয়েছে। কীবোর্ড টগল করে ChromeVox ক্লাসিক ভার্সনে ফিরে যাওয়ার সুবিধা সরিয়ে দেওয়া হয়েছে।</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -549,13 +557,6 @@ <translation id="5682113568322255809">ল্যান্ডমার্ক</translation> <translation id="5683155931978483559">পূর্ববর্তী চেকবাক্স</translation> <translation id="5684277895745049190">তালিকা</translation> -<translation id="5695831708991916435">পরবর্তী কয়েকটি শর্টকাট ChromeVox কমান্ড না, কিন্তু এরপরও Chrome থেকে সর্বাধিক সুবিধা আদায় করার জন্য খুব দরকারী। -বোতাম এবং লিঙ্কগুলির মতো ক্রিয়াযোগ্য আইটেমগুলির মাধ্যমে নেভিগেট করে এগোনর জন্য ট্যাব কী চাপুন। পিছন দিকে নেভিগেট করতে Shift + ট্যাব টিপুন। -Chrome ব্রাউজারে ঠিকানা বাক্সে ঢুকতে, যা বহুউপযোগী ক্ষেত্র নামেও পরিচিত, কন্ট্রোল + L টিুপন। -স্বয়ংক্রিয়ভাবে একটি নতুন ট্যাব খুলতে ও সেটিতে যেতে কন্ট্রোল+T টিপুন। আপনার কার্সারটি বহুউপযোগী ক্ষেত্রে থাকবে। -একটি ট্যাব বন্ধ করতে, কন্ট্রোল+W টিপুন। -খোলা ট্যাবগুলির মধ্যে অগ্রসর হতে, কন্ট্রোল+ট্যাব ব্যবহার করুন। -Chrome ব্রাউজার মেনু খুলতে, Alt+F টিপুন।</translation> <translation id="5700650669149824506">কোনো পূর্ববর্তী স্তর ৪ শিরোনাম নেই৷</translation> <translation id="5703716265115423771">ভলিউম কমান</translation> <translation id="5709192780268610569">কোনো দীর্ঘ বিবরণ নেই</translation> @@ -789,7 +790,7 @@ <translation id="817440585505441544">{COUNT,plural, =1{আন্ডারস্কোর}one{#টি আন্ডারস্কোর}other{#টি আন্ডারস্কোর}}</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8184828902145951186">সারি</translation> -<translation id="8186185314313222077">পূর্ণ স্ক্রীন টগল করুন</translation> +<translation id="8186185314313222077">পূর্ণ স্ক্রিন টগল করুন</translation> <translation id="8199231515320852133">বর্তমান কক্ষের শিরোলেখ ঘোষণা করুন</translation> <translation id="820417203470636242">ফাঁকা কক্ষ৷</translation> <translation id="820469951249669083">পরের সারিতে যান</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb index a522535..63b9bc3 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ca.xtb
@@ -6,7 +6,7 @@ <translation id="1013742170491673792">srched</translation> <translation id="1022586497894531524">És el primer cop que fas servir els comentaris de veu de l'extensió ChromeVox? En aquest tutorial ràpid s'expliquen els aspectes bàsics per començar a utilitzar-la.</translation> <translation id="1023866615269196768">Amb abast.</translation> -<translation id="1025074108959230262">S'ha desactivat el mode atractiu.</translation> +<translation id="1025074108959230262">S'ha desactivat el mode persistent.</translation> <translation id="1031961866430398710">i, a continuació,</translation> <translation id="1038643060055067718">Línies:</translation> <translation id="1038795173450935438">Per avançar pels elements d'una pàgina, prem Cerca+fletxa dreta i per tornar enrere, Cerca+fletxa esquerra. Per anar a la línia següent, prem Cerca+fletxa avall i, per anar a la línia anterior, fes servir Cerca+fletxa amunt. Si vols fer clic a l'element en el qual et trobes, prem Cerca+espai.</translation> @@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, quadre de text de contrasenya</translation> <translation id="1467432559032391204">A l'esquerra</translation> <translation id="1474557363159888097">No hi ha cap ancoratge anterior.</translation> +<translation id="1480046233931937785">Crèdits</translation> <translation id="1487494366197411587">A Chromebook, la tecla Cerca es troba just a sobre de la tecla Maj de l'esquerra.</translation> <translation id="1499041187027566160">apuja el volum</translation> <translation id="1502086903961450562">Gràfic anterior</translation> @@ -501,7 +502,7 @@ <translation id="5291783959063340370">Objecte</translation> <translation id="5304943142864553931"><ph name="TITLE" />, pestanya</translation> <translation id="5310788376443009632">s'ha suprimit:</translation> -<translation id="5320727453979144100">S'ha activat el mode atractiu.</translation> +<translation id="5320727453979144100">S'ha activat el mode persistent.</translation> <translation id="5321085947096604457">{COUNT,plural, =1{coma}other{# comes}}</translation> <translation id="532371086589123547"><ph name="VALUE" />, quadre de text</translation> <translation id="5330443287809544590"><ph name="NAME" />, enllaç</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Punt de referència</translation> <translation id="5683155931978483559">Casella de selecció anterior</translation> <translation id="5684277895745049190">Llista</translation> -<translation id="5695831708991916435">Les dreceres següents no són ordres de ChromeVox, però són molt útils per treure tot el profit de Chrome. -Per desplaçar-te endavant per diversos elements clicables, com ara botons i enllaços, prem la tecla Tab. Per desplaçar-te enrere, prem Maj+Tab. -Per entrar al quadre d'adreces de Chrome, que també s'anomena omnibox, prem Control+L. -Per obrir una pestanya nova i anar-hi automàticament, prem Control+T. El cursor se situarà a l'omnibox. -Per tancar una pestanya, prem Control+W. -Per avançar per diverses pestanyes obertes, prem Control+Tab. -Per obrir el menú de Chrome, prem Alt+F.</translation> <translation id="5700650669149824506">No hi ha cap capçalera anterior del nivell 4.</translation> <translation id="5703716265115423771">abaixa el volum</translation> <translation id="5709192780268610569">No hi ha cap descripció llarga.</translation> @@ -898,7 +892,7 @@ <translation id="930275611743429116">Inicia o finalitza la selecció.</translation> <translation id="948171205378458592">Disminueix la velocitat de la veu.</translation> <translation id="962913030769097253">Capçalera del nivell 1 següent</translation> -<translation id="973955474346881951">Activa/desactiva el mode atractiu</translation> +<translation id="973955474346881951">Activa o desactiva el mode persistent</translation> <translation id="976849232629612000">No hi ha elements.</translation> <translation id="995852680044449248">Inici del ratllat</translation> </translationbundle> \ No newline at end of file
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 aa02339..4c0c0ee9 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, textové pole pro heslo</translation> <translation id="1467432559032391204">Doleva</translation> <translation id="1474557363159888097">Žádné předchozí ukotvení.</translation> +<translation id="1480046233931937785">Poděkování</translation> <translation id="1487494366197411587">Klávesa Hledat se na Chromebooku nachází ihned nad levou klávesou Shift.</translation> <translation id="1499041187027566160">zvýšit hlasitost</translation> <translation id="1502086903961450562">Předchozí obrázek</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Orientační bod</translation> <translation id="5683155931978483559">Předchozí zaškrtávací políčko</translation> <translation id="5684277895745049190">Seznam</translation> -<translation id="5695831708991916435">Následující klávesové zkratky nejsou příkazy nástroje ChromeVox, ale přesto jsou velmi užitečné pro maximální využití Chromu. -Chcete-li přejít na další položku, která umožňuje provedení akce (například tlačítko nebo odkaz), stiskněte tabulátor. Zpět přejdete stisknutím kláves Shift + Tabulátor. -Chcete-li přejít do adresního řádku prohlížeče Chrome (omniboxu), stiskněte Control + L. -Chcete-li otevřít novou kartu a automaticky na ni přejít, stiskněte Control + T. Kurzor bude v omniboxu. -Chcete-li zavřít kartu, stiskněte Control + W. -Chcete-li přejít na další otevřenou kartu, stiskněte Control + Tabulátor. -Chcete-li otevřít nabídku prohlížeče Chrome, stiskněte Alt + F.</translation> <translation id="5700650669149824506">Žádný předchozí nadpis 4. úrovně.</translation> <translation id="5703716265115423771">snížit hlasitost</translation> <translation id="5709192780268610569">Žádný dlouhý popis</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 b8345526..e45b9df5 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">Adgangskodetekstfeltet <ph name="VALUE" /></translation> <translation id="1467432559032391204">Venstre</translation> <translation id="1474557363159888097">Ingen tidligere ankre.</translation> +<translation id="1480046233931937785">Medvirkende</translation> <translation id="1487494366197411587">På en Chromebook finder du tasten Søg lige over Shift-tasten.</translation> <translation id="1499041187027566160">lydstyrke op</translation> <translation id="1502086903961450562">Forrige grafik</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Orienteringspunkt</translation> <translation id="5683155931978483559">Forrige afkrydsningsfelt</translation> <translation id="5684277895745049190">Liste</translation> -<translation id="5695831708991916435">Følgende genveje er ikke kommandoer i ChromeVox, men de kan stadig hjælpe dig med at optimere din Chrome-oplevelse. -Tryk på tabulatortasten for at gå fremad mellem elementer, der ved tryk eller klik medfører en handling, f.eks. knapper og links. Tryk på Shift+tabulatortast for at gå tilbage. -Tryk på Ctrl+L for at indtaste Chrome-browserens adressefelt, der også kaldes omnifeltet. -Tryk på Ctrl+T for automatisk at åbne og gå til en ny fane. Markøren er i omnifeltet. -Tryk på Ctrl+W for at lukke en fane. -Tryk på Ctrl+tabulatortast for at gå fremad mellem åbne faner. -Tryk på Alt+F for at åbne browsermenuen i Chrome.</translation> <translation id="5700650669149824506">Ingen tidligere niveau 4-overskrifter.</translation> <translation id="5703716265115423771">lydstyrke ned</translation> <translation id="5709192780268610569">Ingen lang beskrivelse</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb index c6c3869..e818f40 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, Passwort-Textfeld</translation> <translation id="1467432559032391204">Links</translation> <translation id="1474557363159888097">Kein vorheriges Ankerelement</translation> +<translation id="1480046233931937785">Mitwirkende</translation> <translation id="1487494366197411587">Auf dem Chromebook befindet sich die Suchtaste direkt über der linken Umschalttaste-Taste.</translation> <translation id="1499041187027566160">Lautstärke erhöhen</translation> <translation id="1502086903961450562">Vorherige Grafik</translation> @@ -159,7 +160,7 @@ <translation id="2637227747952042642">Mathematik</translation> <translation id="2639750663247012216">ChromeVox-Modifikator</translation> <translation id="2644542693584024604">misspelled</translation> -<translation id="2673280813984708147">bearbeitet gerade</translation> +<translation id="2673280813984708147">wird bearbeitet</translation> <translation id="267442004702508783">Aktualisieren</translation> <translation id="2684412629217766642">ChromeVox-Anleitung schließen</translation> <translation id="2697408785920771974">autoinl</translation> @@ -423,7 +424,7 @@ <translation id="461613135510474570">Satz</translation> <translation id="463135993322337640">Wenn Sie mehr über die neuen Funktionen von ChromeVox erfahren möchten, drücken Sie ChromeVox "O" und "N"</translation> <translation id="4647836961514597010">Farbauswahl</translation> -<translation id="4652110509054054146">Drücken Sie die Suchtaste in Verbindung mit dem Links- oder Rechtspfeil für "Home" oder "Ende", die Suchtaste in Verbindung mit der linken oder rechten Steuerungstaste für "Strg-Home" oder "Strg-Ende" und die Suchtaste in Verbindung mit dem Aufwärts- oder Abwärtspfeil für "Bild auf" oder "Bild ab".</translation> +<translation id="4652110509054054146">Drücken Sie die Suchtaste in Verbindung mit dem Links- oder Rechtspfeil für "Home" oder "Ende", die Suchtaste in Verbindung mit der Steuerungstaste und dem Links- oder Rechtspfeil für "Strg-Home" oder "Strg-Ende" und die Suchtaste in Verbindung mit dem Aufwärts- oder Abwärtspfeil für "Bild auf" oder "Bild ab".</translation> <translation id="4660783501463101648">Classic wurde entfernt. Die Tastaturschaltfläche für den Wechsel zu ChromeVox Classic wurde entfernt.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Markierung</translation> <translation id="5683155931978483559">Vorheriges Kästchen</translation> <translation id="5684277895745049190">Liste</translation> -<translation id="5695831708991916435">Bei den nächsten Tastenkombinationen handelt es sich zwar nicht um ChromeVox-Befehle, aber sie sind dennoch sehr nützlich, um Chrome optimal zu nutzen. -Wenn Sie durch ausführbare Elemente, z. B. Schaltflächen und Links, vorwärts navigieren möchten, drücken Sie die Tabulatortaste. Rückwärts gelangen Sie mit Umschalttaste + Tab. -Wenn Sie auf die Adressleiste des Chrome-Browsers, auch als Omnibox bezeichnet, zugreifen möchten, drücken Sie Strg + L. -Um einen neuen Tab zu öffnen und automatisch dorthin zu wechseln, drücken Sie Strg + T. Ihr Cursor befindet sich dann in der Omnibox. -Wenn Sie einen Tab schließen möchten, drücken Sie Strg + W. -Um zwischen offenen Tabs vorwärts zu springen, verwenden Sie Strg + Tab. -Um das Chrome-Browsermenü zu öffnen, drücken Sie Alt + F.</translation> <translation id="5700650669149824506">Keine vorherige Überschrift der Ebene 4</translation> <translation id="5703716265115423771">Lautstärke verringern</translation> <translation id="5709192780268610569">Keine ausführliche Beschreibung</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb index 59e3447b..36fe9c5a 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_el.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, πλαίσιο κειμένου κωδικού πρόσβασης</translation> <translation id="1467432559032391204">Αριστερά</translation> <translation id="1474557363159888097">Δεν υπάρχει προηγούμενη αγκύρωση.</translation> +<translation id="1480046233931937785">Συντελεστές</translation> <translation id="1487494366197411587">Στο Chromebook, το πλήκτρο αναζήτησης βρίσκεται ακριβώς πάνω από το αριστερό πλήκτρο Shift.</translation> <translation id="1499041187027566160">αύξηση έντασης ήχου</translation> <translation id="1502086903961450562">Προηγούμενο γραφικό</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Ορόσημο</translation> <translation id="5683155931978483559">Προηγούμενο πλαίσιο ελέγχου</translation> <translation id="5684277895745049190">Λίστα</translation> -<translation id="5695831708991916435">Οι ακόλουθες συντομεύσεις δεν είναι εντολές του ChromeVox, αλλά είναι εξαιρετικά χρήσιμες για να αξιοποιήσετε στο έπακρο το Chrome. -Για μετάβαση προς τα εμπρός μεταξύ των στοιχείων ενεργειών όπως κουμπιά και σύνδεσμοι, πατήστε το πλήκτρο Tab. Για μετάβαση προς τα πίσω, πατήστε Shift+Tab. -Για χρήση του πλαισίου διευθύνσεων του προγράμματος περιήγησης Chrome που ονομάζεται επίσης "κύριο πλαίσιο", πατήστε Control + L. -Για άνοιγμα και αυτόματη μετάβαση σε μια νέα καρτέλα, πατήστε Control+T. Ο δείκτης του ποντικιού θα τοποθετηθεί στο κύριο πλαίσιο. -Για κλείσιμο μιας καρτέλας, πατήστε Control+W. -Για μετακίνηση προς τα εμπρός μεταξύ των ανοικτών καρτελών, χρησιμοποιήστε τον συνδυασμό Control+Tab. -Για άνοιγμα του μενού του προγράμματος περιήγησης Chrome, πατήστε Alt+F.</translation> <translation id="5700650669149824506">Δεν υπάρχει προηγούμενη επικεφαλίδα επιπέδου 4.</translation> <translation id="5703716265115423771">μείωση έντασης ήχου</translation> <translation id="5709192780268610569">Χωρίς εκτενή περιγραφή</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_en-GB.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_en-GB.xtb index 7971c40..0f142e2 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_en-GB.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_en-GB.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, password text box</translation> <translation id="1467432559032391204">Left</translation> <translation id="1474557363159888097">No previous anchor.</translation> +<translation id="1480046233931937785">Credits</translation> <translation id="1487494366197411587">On the Chromebook, the Search key is immediately above the left Shift key.</translation> <translation id="1499041187027566160">volume up</translation> <translation id="1502086903961450562">Previous graphic</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Landmark</translation> <translation id="5683155931978483559">Previous tick box</translation> <translation id="5684277895745049190">List</translation> -<translation id="5695831708991916435">The next few shortcuts aren’t ChromeVox commands, but they’re still very useful for getting the most out of Chrome. -To navigate forward through actionable items like buttons and links, press the Tab key. To navigate backwards, press Shift+Tab. -To enter the Chrome browser address box, also called the omnibox, press Control + L. -To open and go to a new tab automatically, press Control+T. Your cursor will be in the omnibox. -To close a tab, press Control+W. -To move forward between open tabs, use Control+Tab. -To open the Chrome browser menu, press Alt+F.</translation> <translation id="5700650669149824506">No previous level 4 heading.</translation> <translation id="5703716265115423771">volume down</translation> <translation id="5709192780268610569">No long description</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb index b1f58b7..70bb41c 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es-419.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, cuadro de texto de la contraseña</translation> <translation id="1467432559032391204">Izquierda</translation> <translation id="1474557363159888097">No hay ningún anclaje anterior.</translation> +<translation id="1480046233931937785">Créditos</translation> <translation id="1487494366197411587">En la Chromebook, la tecla de búsqueda está arriba de la de mayúscula izquierda.</translation> <translation id="1499041187027566160">subir volumen</translation> <translation id="1502086903961450562">Gráfico anterior</translation> @@ -160,7 +161,7 @@ <translation id="2637227747952042642">Math</translation> <translation id="2639750663247012216">Tecla modificadora de ChromeVox</translation> <translation id="2644542693584024604">error ortográfico</translation> -<translation id="2673280813984708147">está editando</translation> +<translation id="2673280813984708147">se está editando</translation> <translation id="267442004702508783">actualizar</translation> <translation id="2684412629217766642">Cierra el instructivo de ChromeVox</translation> <translation id="2697408785920771974">autoinl</translation> @@ -424,7 +425,7 @@ <translation id="461613135510474570">Frase</translation> <translation id="463135993322337640">Presiona ChromeVox o, n para conocer las novedades</translation> <translation id="4647836961514597010">Selector de color</translation> -<translation id="4652110509054054146">Usa Búsqueda+flecha hacia la izquierda o derecha para ir al inicio o fin, Búsqueda+Ctrl+flecha hacia la izquierda o derecha para ir al inicio o fin de control y Búsqueda+flecha hacia arriba o abajo para ir a la página anterior o siguiente respectivamente.</translation> +<translation id="4652110509054054146">Usa Búsqueda más flecha hacia la izquierda o derecha para ir al inicio o fin, Búsqueda más Ctrl más flecha hacia la izquierda o derecha para ir al inicio o fin de control y Búsqueda más flecha hacia arriba o abajo para ir a la página anterior o siguiente respectivamente.</translation> <translation id="4660783501463101648">Se quitó la combinación de teclas para cambiar a la versión clásica de ChromeVox.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Punto de referencia</translation> <translation id="5683155931978483559">Casilla de verificación anterior</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">Los siguientes accesos directos no son comandos de ChromeVox, pero resultan muy útiles para aprovechar al máximo Chrome. -Para navegar hacia adelante entre elementos que permiten una acción, como botones o vínculos, presiona tabulador; para navegar hacia atrás, presiona mayúsculas + tabulador. -Para ingresar al cuadro de direcciones del navegador Chrome, también llamado cuadro multifunción, presiona Ctrl + L. -Para abrir e ir a una nueva pestaña de forma automática, presiona Ctrl + T. Tu cursor aparecerá en el cuadro multifunción. -Para cerrar una pestaña, presiona Ctrl + W. -Para moverte hacia adelante entre pestañas abiertas, usa Ctrl + tabulador. -Para abrir el menú del navegador Chrome, presiona Alt + F.</translation> <translation id="5700650669149824506">No hay ningún encabezado de nivel 4 anterior.</translation> <translation id="5703716265115423771">bajar volumen</translation> <translation id="5709192780268610569">No hay descripción larga.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb index 59b82c5..72a4c402 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_es.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, cuadro de texto de contraseña</translation> <translation id="1467432559032391204">Izquierda</translation> <translation id="1474557363159888097">No hay ningún anclaje anterior.</translation> +<translation id="1480046233931937785">Créditos</translation> <translation id="1487494366197411587">En el Chromebook, la tecla de búsqueda está justamente encima de la tecla Mayús.</translation> <translation id="1499041187027566160">subir el volumen</translation> <translation id="1502086903961450562">Gráfico anterior</translation> @@ -400,7 +401,7 @@ <translation id="4372705107434148843">Detiene la voz</translation> <translation id="4373197658375206385">No hay ningún elemento anterior que no sea un enlace.</translation> <translation id="4376316291247992553">Muestra los gráficos en braille</translation> -<translation id="4378308539633073595">Desplazarse hacia delante.</translation> +<translation id="4378308539633073595">Desplazarse hacia delante</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">restablecer</translation> <translation id="4457472090507035117">Selecciona la voz actual:</translation> @@ -424,7 +425,7 @@ <translation id="461613135510474570">Oración</translation> <translation id="463135993322337640">Pulsa las teclas O y N en ChromeVox para descubrir las novedades</translation> <translation id="4647836961514597010">Selector de color</translation> -<translation id="4652110509054054146">Usa la tecla de búsqueda + flecha hacia la izquierda o hacia la derecha para Inicio o Fin; la tecla de búsqueda + Control + flecha hacia la izquierda o hacia la derecha para Control + Inicio o Fin; y la tecla de búsqueda + flecha hacia arriba o hacia abajo para Re Pág o Av Pág</translation> +<translation id="4652110509054054146">Usa la tecla de búsqueda + flecha izquierda o derecha para Inicio o Fin; la tecla de búsqueda + Control + flecha izquierda o derecha para Control , Inicio o Fin; y la tecla de búsqueda + flecha hacia arriba o hacia abajo para Re Pág o Av Pág</translation> <translation id="4660783501463101648">Versión clásica de ChromeVox eliminada. Se ha quitado la combinación de teclas para volver a la versión anterior.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Punto de referencia</translation> <translation id="5683155931978483559">Casilla de verificación anterior</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">Aunque las siguientes combinaciones de teclas no son comandos de ChromeVox, siguen resultando muy útiles para sacar el máximo partido a Chrome. -Para desplazarte hacia adelante por los elementos accionables, como botones y enlaces, pulsa el tabulador. Para retroceder, pulsa Mayús+Tabulador. -Para acceder al cuadro de direcciones del navegador Chrome, también denominado omnibox, pulsa Control+L. -Para abrir una nueva pestaña y acceder automáticamente a ella, pulsa Control+T. El cursor se situará en el omnibox. -Para cerrar una pestaña, pulsa Control+W. -Para desplazarte hacia adelante por las pestañas abiertas, utiliza Control+Tabulador. -Para abrir el menú del navegador Chrome, pulsa Alt+F.</translation> <translation id="5700650669149824506">No hay ningún título de nivel 4 anterior.</translation> <translation id="5703716265115423771">bajar el volumen</translation> <translation id="5709192780268610569">No hay descripción larga.</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 979324c..e1c476e 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, parooli tekstikast</translation> <translation id="1467432559032391204">Vasakule</translation> <translation id="1474557363159888097">Eelmist ankrut ei ole.</translation> +<translation id="1480046233931937785">Tiitrid</translation> <translation id="1487494366197411587">Chromebooki otsinguklahv asub otse tõstuklahvi kohal.</translation> <translation id="1499041187027566160">suurendab helitugevust</translation> <translation id="1502086903961450562">Eelmine graafik</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Maamärk</translation> <translation id="5683155931978483559">Eelmine märkeruut</translation> <translation id="5684277895745049190">Loend</translation> -<translation id="5695831708991916435">Järgmised otseteed ei ole ChromeVoxi käsud, ent need on siiski väga kasulikud ja võimaldavad Chrome'i parimal moel kasutada. -Interaktiivsete üksuste, näiteks nuppude ja linkide hulgas navigeerimiseks kasutage tabeldusklahvi. Tagasisuunas navigeerimiseks vajutage tõstuklahvi ja tabeldusklahvi. -Chrome'i brauseri aadressiriba ehk omnikastikese valimiseks vajutage klahvikombinatsiooni Control + L. -Uue vahelehe avamiseks ja automaatselt aktiveerimiseks vajutage klahvikombinatsiooni Control + T. Teie kursor asub uuel vahelehel omnikastikeses. -Vahelehe sulgemiseks vajutage klahvikombinatsiooni Control + W. -Avatud vahelehtede hulgas edasiliikumiseks vajutage klahvi Control ja tabeldusklahvi. -Chrome'i brauseri menüü avamiseks vajutage klahvikombinatsiooni Alt + F.</translation> <translation id="5700650669149824506">Eelmist 4. taseme pealkirja ei ole.</translation> <translation id="5703716265115423771">vähendab helitugevust</translation> <translation id="5709192780268610569">Pikk kirjeldus puudub</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 720638f..1ca9e1e 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />، کادر نوشتاری گذرواژه</translation> <translation id="1467432559032391204">چپ</translation> <translation id="1474557363159888097">کد لنگر قبلی موجود نیست.</translation> +<translation id="1480046233931937785">دستاندرکاران</translation> <translation id="1487494366197411587">در Chromebook، کلید «جستجو» دقیقاً در بالای کلید Shift چپ قرار دارد.</translation> <translation id="1499041187027566160">بالا بردن صدا</translation> <translation id="1502086903961450562">گرافیک قبلی</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">علامت مشخصه</translation> <translation id="5683155931978483559">کادر انتخاب قبلی</translation> <translation id="5684277895745049190">فهرست</translation> -<translation id="5695831708991916435">چند میانبر بعدی جزء فرمانهای ChromeVox نیستند، اما برای استفاده بهتر از Chrome مفید هستند. -برای پیمایش رو به جلو در بین موارد عملکردی مثل دکمهها و پیوندها، کلید Tab را فشار دهید. برای پیمایش رو به عقب، Shift+Tab را فشار دهید. -برای وارد کردن کادر نشانی مرورگر Chrome (که omnibox هم گفته میشود)، روی Control + L فشار دهید. -برای باز کردن برگه جدید و رفتن به آن بهصورت خودکار، Control+T را فشار دهید. مکاننمای شما در omnibox قرار میگیرد. -برای بستن برگه، Control+W را فشار دهید. -برای حرکت به جلو بین برگههای باز، از Control+Tab استفاده کنید. -برای باز کردن منوی مرورگر Chrome، روی Alt+F فشار دهید.</translation> <translation id="5700650669149824506">عنوان سطح ۴ قبلی وجود ندارد.</translation> <translation id="5703716265115423771">پایین آوردن صدا</translation> <translation id="5709192780268610569">بدون شرح طولانی</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb index deb3376..9131bc5 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fi.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, salasanan tekstikenttä</translation> <translation id="1467432559032391204">Vasemmalle</translation> <translation id="1474557363159888097">Ei edellisiä ankkureita.</translation> +<translation id="1480046233931937785">Tekijät</translation> <translation id="1487494366197411587">Hakunäppäin on Chromebookissa heti vasemman vaihtonäppäimen yläpuolella.</translation> <translation id="1499041187027566160">Lisää äänenvoimakkuutta.</translation> <translation id="1502086903961450562">Edellinen grafiikka</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Maamerkki</translation> <translation id="5683155931978483559">Edellinen valintaruutu</translation> <translation id="5684277895745049190">Luettelo</translation> -<translation id="5695831708991916435">Seuraavat pikanäppäimet eivät ole ChromeVox-komentoja, mutta ne auttavat silti käyttämään Chromea tehokkaasti. -Siirry seuraavaan interaktiiviseen kohteeseen, esim. painikkeeseen tai linkkiin, sarkainnäppäimellä. Siirry edelliseen kohteeseen painamalla vaihto + sarkain. -Siirry Chrome-selaimen osoitekenttään eli omniboxiin painamalla Control + L. -Avaa uusi välilehti ja siirry sille automaattisesti painamalla Control + T. Osoitin siirtyy automaattisesti omniboxiin. -Sulje välilehti painamalla Control + W. -Siirry avoimelta välilehdeltä toiselle painamalla Control + sarkain. -Avaa Chrome-selaimen valikko painamalla Alt + F.</translation> <translation id="5700650669149824506">Ei edellisiä tason 4 otsikoita.</translation> <translation id="5703716265115423771">Vähennä äänenvoimakkuutta.</translation> <translation id="5709192780268610569">Ei pitkää kuvausta</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 21e2bf51..1b054b42 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, text box ng password</translation> <translation id="1467432559032391204">Kaliwa</translation> <translation id="1474557363159888097">Walang nakaraang anchor.</translation> +<translation id="1480046233931937785">Mga Credit</translation> <translation id="1487494366197411587">Sa Chromebook, ang key sa Paghahanap ay nasa itaas lang ng kaliwang Shift key.</translation> <translation id="1499041187027566160">lakasan ang volume</translation> <translation id="1502086903961450562">Nakaraang graphic</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Landmark</translation> <translation id="5683155931978483559">Nakaraang checkbox</translation> <translation id="5684277895745049190">Listahan</translation> -<translation id="5695831708991916435">Ang susunod na ilang shortcut ay hindi mga command sa ChromeVox, ngunit mapapakinabangan pa rin ang mga ito upang masulit ang paggamit sa Chrome. -Upang mag-navigate papunta sa mga item ng pagkilos tulad ng mga button at link, pindutin ang Tab key. Upang mag-navigate pabalik, pindutin ang Shift+Tab. -Upang mapunta sa kahon para sa address ng Chrome browser, na tinatawag ding omnibox, pindutin ang Control + L. -Upang awtomatikong magbukas ng tab at pumunta sa isang bagong tab, pindutin ang Control+T. Mapupunta ang iyong cursor sa omnibox. -Upang magsara ng tab, pindutin ang Control+W. -Upang magpalipat-lipat sa mga bukas na tab, gamitin ang Control+Tab. -Upang buksan ang menu ng Chrome browser, pindutin ang Alt+F.</translation> <translation id="5700650669149824506">Walang nakaraang heading sa antas 4.</translation> <translation id="5703716265115423771">hinaan ang volume</translation> <translation id="5709192780268610569">Walang mahabang paglalarawan</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 2999e85..ab6d82c 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, zone de texte du mot de passe</translation> <translation id="1467432559032391204">Vers la gauche</translation> <translation id="1474557363159888097">Aucun ancrage précédent</translation> +<translation id="1480046233931937785">Remerciements</translation> <translation id="1487494366197411587">Sur un Chromebook, la touche de recherche se trouve juste au-dessus de la touche Maj.</translation> <translation id="1499041187027566160">augmenter le volume</translation> <translation id="1502086903961450562">Élément graphique précédent</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Rep</translation> <translation id="5683155931978483559">Case à cocher précédente</translation> <translation id="5684277895745049190">Liste</translation> -<translation id="5695831708991916435">Les quelques nouveaux raccourcis ne sont pas des commandes ChromeVox, mais ils restent très utiles pour exploiter tout le potentiel de Chrome. -Pour passer à l'élément interactif suivant comme un bouton ou un lien, appuyez sur la touche Tabulation, et pour revenir à l'élément précédent, appuyez sur Maj+Tabulation. -Pour accéder à la zone d'adresse du navigateur Chrome, appelée également "omnibox", appuyez sur Ctrl+L. -Pour ouvrir et accéder à un nouvel onglet automatiquement, appuyez sur Ctrl+T. Le curseur est alors placé dans l'omnibox. -Pour fermer un onglet, appuyez sur Ctrl+W. -Pour passer à l'onglet ouvert suivant, appuyez sur Ctrl+Tabulation. -Pour ouvrir le menu du navigateur Chrome, appuyez sur Alt+F.</translation> <translation id="5700650669149824506">Aucun titre de niveau 4 précédent</translation> <translation id="5703716265115423771">baisser le volume</translation> <translation id="5709192780268610569">Aucune description longue</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 4427ac73..d06c196 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_gu.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_gu.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, પાસવર્ડ ટેક્સ્ટ બૉક્સ</translation> <translation id="1467432559032391204">ડાબું</translation> <translation id="1474557363159888097">પહેલાનું એન્કર નથી</translation> +<translation id="1480046233931937785">ક્રેડિટ્સ</translation> <translation id="1487494366197411587">Chromebook પર, શોધ કી એ ડાબી Shift કીની એકદમ ઉપરની કી છે.</translation> <translation id="1499041187027566160">વૉલ્યૂમ વધારો</translation> <translation id="1502086903961450562">પહેલાનું ગ્રાફિક</translation> @@ -549,13 +550,6 @@ <translation id="5682113568322255809">સ્થળનિશાની</translation> <translation id="5683155931978483559">પહેલાનું ચેકબૉક્સ</translation> <translation id="5684277895745049190">સૂચિ</translation> -<translation id="5695831708991916435">આગલા અમુક શૉર્ટકટ્સ ChromeVox આદેશો નથી, પરંતુ તે Chrome નો સર્વોત્તમ લાભ લેવા માટે હજી પણ ઉપયોગી છે. -બટન અને લિંક્સ જેવી ક્રિયા કરવા યોગ્ય આઇટમ્સ મારફતે આગળ નેવિગેટ કરવા માટે, Tab કી દબાવો. પાછળ નેવિગેટ કરવા માટે, Shift+Tab દબાવો. -Chrome બ્રાઉઝર સરનામાં બૉક્સમાં દાખલ થવા માટે, જે ઑમ્નિબૉક્સ પણ કહેવાય છે, Control + L દબાવો. -એક નવા ટૅબને આપમેળે ખોલવા અને તેના પર જવા માટે, Control+T દબાવો. તમારું કર્સર ઑમ્નિબૉક્સમાં હશે. -કોઈ ટૅબને બંધ કરવા માટે, Control+W દબાવો. -ખુલ્લા ટૅબ્સમાં આગળ જવા માટે, Control+Tab નો ઉપયોગ કરો. -Chrome બ્રાઉઝર મેનૂ ખોલવા માટે, Alt+F દબાવો.</translation> <translation id="5700650669149824506">પહેલાંનુ સ્તર 4 મથાળું નથી.</translation> <translation id="5703716265115423771">વૉલ્યૂમ ઘટાડો</translation> <translation id="5709192780268610569">કોઈ લાંબું વર્ણન નથી</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb index 68b8a1a..397ec6c 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, पासवर्ड लेख बॉक्स</translation> <translation id="1467432559032391204">बाएं</translation> <translation id="1474557363159888097">कोई पिछला एंकर नहीं.</translation> +<translation id="1480046233931937785">क्रेडिट</translation> <translation id="1487494366197411587">Chromebook पर Search की, बाईं Shift की के ठीक ऊपर होती है.</translation> <translation id="1499041187027566160">वॉल्यूम बढ़ाएं</translation> <translation id="1502086903961450562">पिछला ग्राफ़िक</translation> @@ -89,6 +90,7 @@ <translation id="1810107444790159527">सूची बॉक्स</translation> <translation id="1828385960365606039">मई</translation> <translation id="1834891354138622109">स्तंभ</translation> +<translation id="1845944666972354496">चालू करने के लिए दो बार टैप करें</translation> <translation id="1865601187525349519">लेख का अंत</translation> <translation id="1876229593313240038">दस्तावेज़</translation> <translation id="188130072164734898">वर्तमान समय और दिनांक बोलें.</translation> @@ -120,6 +122,7 @@ <translation id="2179452035581866348">ChromeVox आपको आवश्यक और अतिरिक्त जानकारी देने के लिए ध्वनियों का उपयोग करता है. हर ध्वनि का क्या अर्थ है, इसे सीखकर आप अधिक तेज़ी से नेविगेट करने के लिए इन ध्वनियों का उपयोग कर सकते हैं. अपने आपको सहज महसूस करने पर आप बोली में विस्तृत विवरणों को बंद कर सकते हैं और पेज के बारे में आवश्यक जानकारी के लिए उन पर विश्वास कर सकते हैं. यहां ध्वनियों की पूरी सूची और उनके अर्थ दिए गए हैं.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{बंद कोष्ठक}one{# बंद कोष्ठक}other{# बंद कोष्ठक}}</translation> <translation id="2199994615414171367">पिछला गणित</translation> +<translation id="2203046366315513658">मान घटाएं</translation> <translation id="2220529011494928058">किसी समस्या की रिपोर्ट करें</translation> <translation id="2223693656926968778">वर्तमान आइटम पर कार्रवाई करें</translation> <translation id="225732394367814946">बोली की दर बढ़ाएं</translation> @@ -158,6 +161,7 @@ <translation id="2637227747952042642">गणित</translation> <translation id="2639750663247012216">ChromeVox संशोधक</translation> <translation id="2644542693584024604">गलत वर्तनी</translation> +<translation id="2673280813984708147">बदलाव कर रहे हैं</translation> <translation id="267442004702508783">रीफ्रेश करें</translation> <translation id="2684412629217766642">ChromeVox ट्यूटोरियल बंद करें</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +213,7 @@ <translation id="3060756054951570867"><ph name="TITLE" />, मेनू खुल गया</translation> <translation id="3078345202707391975">अगले स्तर 2 का शीर्षक</translation> <translation id="3078740164268491126">तालिका</translation> +<translation id="3082249673510793544">पीछे की ओर स्क्रोल करें</translation> <translation id="3082557070674409251">क्लिक किया गया</translation> <translation id="3084806535845658316">कोई टाइपिंग इको नहीं</translation> <translation id="3086746722712840547">नोट</translation> @@ -396,6 +401,7 @@ <translation id="4372705107434148843">बोली रोकें</translation> <translation id="4373197658375206385">कोई पिछला आइटम नहीं जो लिंक नहीं है.</translation> <translation id="4376316291247992553">ग्राफिक को ब्रेल के रूप में देखें</translation> +<translation id="4378308539633073595">आगे की ओर स्क्रोल करें</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">रीसेट करें</translation> <translation id="4457472090507035117">मौजूदा ध्वनि चुनें:</translation> @@ -403,6 +409,7 @@ <translation id="4476183483923481720">नई पंक्ति</translation> <translation id="4482330759234983253">पिछली तालिका</translation> <translation id="4491109536499578614">चित्र</translation> +<translation id="4517854969512651305">मान बढ़ाएं</translation> <translation id="4529987814483543472">क्लासिक कीमैप</translation> <translation id="4532633738839459153">{COUNT,plural, =1{स्लैश}one{# स्लैश}other{# स्लैश}}</translation> <translation id="4547556996012970016">अगले स्तर 5 का शीर्षक</translation> @@ -418,6 +425,7 @@ <translation id="461613135510474570">वाक्य</translation> <translation id="463135993322337640">नया क्या है, यह जानने के लिए ChromeVox o, n दबाएं</translation> <translation id="4647836961514597010">रंग पिकर</translation> +<translation id="4652110509054054146">होम या एंड के लिए सर्च लेफ़्ट या राइट, कंट्रोल होम या एंड के लिए सर्च कंट्रोल लेफ़्ट या राइट, पेज अप या डाउन के लिए सर्च अप या डाउन का इस्तेमाल करें.</translation> <translation id="4660783501463101648">क्लासिक को हटाया गया. ChromeVox क्लासिक में वापस ले जाने वाला कीबोर्ड टॉगल हटा दिया गया है.</translation> <translation id="4661075872484491155">ट्री</translation> <translation id="4668929960204016307">,</translation> @@ -549,13 +557,6 @@ <translation id="5682113568322255809">स्थानचिह्न</translation> <translation id="5683155931978483559">पिछला चेकबॉक्स</translation> <translation id="5684277895745049190">सूची</translation> -<translation id="5695831708991916435">अगले कुछ शॉर्टकट ChromeVox आदेश नहीं हैं, लेकिन फिर भी Chrome का अधिकतम लाभ प्राप्त करने के लिए वे बहुत उपयोगी हैं. -बटन और लिंक जैसे कार्रवाई योग्य आइटम के माध्यम से आगे नेविगेट करने के लिए, Tab कुंजी दबाएं. पीछे नेविगेट करने के लिए, Shift+Tab दबाएं. -Chrome ब्राउज़र पता बॉक्स डालने के लिए, जिसे खोज वाली पट्टी भी कहा जाता है, Control + L दबाएं. -अपने आप नया टैब खोलने और उस पर जाने के लिए, Control+T दबाएं. आपका कर्सर खोज वाली पट्टी में होगा. -कोई टैब बंद करने के लिए, Control+W दबाएं. -खुले टैब में आगे जाने के लिए, Control+Tab का उपयोग करें. -Chrome ब्राउज़र मेनू खोलने के लिए, Alt+F दबाएं.</translation> <translation id="5700650669149824506">कोई पिछला स्तर 4 शीर्षक नहीं.</translation> <translation id="5703716265115423771">वॉल्यूम कम करें</translation> <translation id="5709192780268610569">कोई बड़ा विवरण नहीं</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 efcff73a..1c7e5e9d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, tekstualni okvir zaporke</translation> <translation id="1467432559032391204">Ulijevo</translation> <translation id="1474557363159888097">Nema prethodnog sidra.</translation> +<translation id="1480046233931937785">Sudjelovali</translation> <translation id="1487494366197411587">Tipka za pretraživanje na Chromebooku nalazi se neposredno iznad lijeve tipke Shift.</translation> <translation id="1499041187027566160">pojačavanje glasnoće</translation> <translation id="1502086903961450562">Prethodna slika</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Orijentir</translation> <translation id="5683155931978483559">Prethodni potvrdni okvir</translation> <translation id="5684277895745049190">Popis</translation> -<translation id="5695831708991916435">Sljedećih nekoliko prečaca nisu naredbe ChromeVoxa, ali su također vrlo korisni za najbolju moguću upotrebu Chromea. -Za kretanje po stavkama koje omogućuju radnju, kao što su gumbi i veze, pritišćite tipku Tab. Za pomicanje unatrag pritišćite tipke Shift i Tab. -Za ulazak u adresni okvir preglednika Chrome, ili višenamjenski okvir kako se još naziva, pritisnite tipke Control i L. -Za otvaranje nove kartice i automatski prelazak na nju pritisnite tipke Control i T. Pokazivač će biti u višenamjenskom okviru. -Da biste zatvorili karticu, pritisnite tipke Control i W. -Za pomicanje unaprijed kroz otvorene kartice koristite tipke Control i Tab. -Za otvaranje izbornika preglednika Chrome pritisnite tipke Alt i F.</translation> <translation id="5700650669149824506">Nema prethodnog naslova razine 4.</translation> <translation id="5703716265115423771">smanjivanje glasnoće</translation> <translation id="5709192780268610569">Nema dugačkih opisa</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 ad72fe7..f18e4f4 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, jelszómező</translation> <translation id="1467432559032391204">Balra</translation> <translation id="1474557363159888097">Nincs előző horgony.</translation> +<translation id="1480046233931937785">Készítők</translation> <translation id="1487494366197411587">A Chromebookon a keresőbillentyű közvetlenül a Shift billentyű felett található.</translation> <translation id="1499041187027566160">hangerő növelése</translation> <translation id="1502086903961450562">Előző grafika</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Határjel</translation> <translation id="5683155931978483559">Előző jelölőnégyzet</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">A következő néhány billentyűparancs nem ChromeVox-parancs, de nagyon hasznosak, ha a lehető legtöbbet szeretné kihozni a Chrome-ból. -A kattintható elemek (például a gombok és linkek) közötti előre történő navigációhoz nyomja le a Tab billentyűt. A visszafelé történő navigáláshoz nyomja le a Shift + Tab billentyűkombinációt. -A Chrome böngésző címsávjába vagy más néven cím- és keresősávjába lépéshez nyomja le a Control + L billentyűkombinációt. -A megnyitáshoz és egy új lap automatikus megnyitásához nyomja le a Control + T billentyűkombinációt. A kurzor a cím- és keresősávba kerül. -Az adott lap bezárásához nyomja le a Control + W billentyűkombinációt. -A megnyitott lapok közötti előrelépéshez használja a Control + Tab billentyűkombinációt. -A Chrome böngésző menüjének megnyitásához nyomja le az Alt + F billentyűkombinációt.</translation> <translation id="5700650669149824506">Nincs előző 4-es szintű címsor.</translation> <translation id="5703716265115423771">hangerő csökkentése</translation> <translation id="5709192780268610569">Nincs hosszú leírás</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 9351293..1545504 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, kotak teks sandi</translation> <translation id="1467432559032391204">Kiri</translation> <translation id="1474557363159888097">Tidak ada jangkar sebelumnya.</translation> +<translation id="1480046233931937785">Kredit</translation> <translation id="1487494366197411587">Di Chromebook, tombol Search berada tepat di atas tombol Shift kiri.</translation> <translation id="1499041187027566160">mengeraskan volume</translation> <translation id="1502086903961450562">Grafik sebelumnya</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Bangunan terkenal</translation> <translation id="5683155931978483559">Kotak centang sebelumnya</translation> <translation id="5684277895745049190">Daftar</translation> -<translation id="5695831708991916435">Beberapa pintasan berikutnya bukanlah perintah ChromeVox, namun tetap berguna untuk mengoptimalkan Chrome. -Untuk menavigasi maju melalui item yang dapat ditindaklanjuti seperti tombol dan link, tekan tombol Tab. Untuk menavigasi ke belakang, tekan Shift+Tab. -Untuk memasukkan kotak alamat browser Chrome, yang juga disebut omnibox, tekan Control + L. -Untuk membuka dan menuju tab secara otomatis, tekan Control+T. Kursor akan berada dalam omnibox. -Untuk menutup tab, tekan Control+W. -Untuk maju antar-tab yang terbuka, gunakan Control+Tab. -Untuk membuka menu browser Chrome, tekan Alt+F.</translation> <translation id="5700650669149824506">Tidak ada judul tingkat 4 sebelumnya.</translation> <translation id="5703716265115423771">mengecilkan volume</translation> <translation id="5709192780268610569">Tidak ada deskripsi panjang</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 91e397aa..5e4cb19 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, casella di testo della password</translation> <translation id="1467432559032391204">Sinistra</translation> <translation id="1474557363159888097">Nessun ancoraggio precedente.</translation> +<translation id="1480046233931937785">Riconoscimenti</translation> <translation id="1487494366197411587">Sul Chromebook il tasto per la ricerca è subito sopra il tasto MAIUSC di sinistra.</translation> <translation id="1499041187027566160">alza volume</translation> <translation id="1502086903961450562">Immagine precedente</translation> @@ -423,7 +424,7 @@ <translation id="461613135510474570">Frase</translation> <translation id="463135993322337640">Premi i tasti O e N con ChromeVox per scoprire le novità</translation> <translation id="4647836961514597010">Selettore colori</translation> -<translation id="4652110509054054146">Utilizza il tasto per la ricerca con le frecce destra e sinistra per aprire la home page oppure Fine, comando per la ricerca, frecce destra e sinistra per esplorare la Home page oppure Fine, tasto per la ricerca e freccia verso l'alto o verso il basso per muoverti verso l'alto o verso il basso nella pagina.</translation> +<translation id="4652110509054054146">Utilizza il tasto per la ricerca con le frecce destra e sinistra per HOME oppure FINE, il tasto per la ricerca, Control, frecce destra e sinistra per Control HOME oppure FINE, il tasto per la ricerca e freccia verso l'alto o verso il basso per muoverti verso l'alto o verso il basso nella pagina.</translation> <translation id="4660783501463101648">Rimozione di Classic. La funzione di attivazione/disattivazione della tastiera per passare nuovamente a ChromeVox Classic è stata rimossa.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Punto di riferimento</translation> <translation id="5683155931978483559">Casella di controllo precedente</translation> <translation id="5684277895745049190">Elenco</translation> -<translation id="5695831708991916435">Le scorciatoie riportate di seguito non sono comandi di ChromeVox, ma sono comunque molto utili per utilizzare al meglio Chrome. -Per avanzare tra gli elementi su cui è possibile eseguire azioni, come pulsanti e link, premi il tasto TAB. Per tornare indietro premi MAIUSC + TAB. -Per andare alla casella dell'indirizzo del browser Chrome, chiamata anche omnibox, premi CTRL+ L. -Per aprire e andare automaticamente a una nuova scheda premi CTRL + T. Il puntatore verrà posizionato nella ominibox. -Per chiudere una scheda, premi CTRL + W. -Per passare alla scheda successiva in una serie di schede aperte, utilizza CTRL + TAB. -Per aprire il menu del browser Chrome premi ALT + F.</translation> <translation id="5700650669149824506">Nessuna intestazione livello 4 precedente.</translation> <translation id="5703716265115423771">abbassa volume</translation> <translation id="5709192780268610569">Nessuna descrizione lunga</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 64524ecd..357613f 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, תיבת טקסט של סיסמה</translation> <translation id="1467432559032391204">שמאלה</translation> <translation id="1474557363159888097">אין עוגן קודם.</translation> +<translation id="1480046233931937785">שותפים לעשייה</translation> <translation id="1487494366197411587">ב-Chromebook, מקש החיפוש נמצא בדיוק מעל מקש Shift השמאלי.</translation> <translation id="1499041187027566160">הגברת עוצמת הקול</translation> <translation id="1502086903961450562">הגרפיקה הקודמת</translation> @@ -89,7 +90,7 @@ <translation id="1810107444790159527">תיבת רשימה</translation> <translation id="1828385960365606039">מאי</translation> <translation id="1834891354138622109">עמודה</translation> -<translation id="1845944666972354496">אפשר להפעיל באמצעות הקשה כפולה</translation> +<translation id="1845944666972354496">אפשר להפעיל באמצעות לחיצה פעמיים</translation> <translation id="1865601187525349519">סוף הטקסט</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">אמור את התאריך והשעה הנוכחיים.</translation> @@ -121,7 +122,7 @@ <translation id="2179452035581866348">ChromeVox משתמש בצליל כדי לספק לך מידע נוסף וחשוב. למד מה המשמעות של כל צליל כדי להשתמש בצלילים האלו לניווט מהיר יותר. אחרי שתתרגל לצלילים, תוכל להשבית תיאורים מילוליים בדיבור ולהפעיל אותם רק כדי לקבל מידע חשוב על הדף. הנה רשימה של כל הצלילים והמשמעות שלהם.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{סגור סוגריים}two{# סימני סגור סוגריים}many{# סימני סגור סוגריים}other{# סימני סגור סוגריים}}</translation> <translation id="2199994615414171367">הביטוי המתמטי הקודם</translation> -<translation id="2203046366315513658">החלשת עוצמת הקול</translation> +<translation id="2203046366315513658">הפחתת ערך</translation> <translation id="2220529011494928058">דיווח על בעיה</translation> <translation id="2223693656926968778">נקוט פעולה לגבי הפריט הנוכחי</translation> <translation id="225732394367814946">הגבר את קצב הדיבור</translation> @@ -160,7 +161,7 @@ <translation id="2637227747952042642">Math</translation> <translation id="2639750663247012216">מקש צירוף של ChromeVox</translation> <translation id="2644542693584024604">misspelled</translation> -<translation id="2673280813984708147">עורך/ת</translation> +<translation id="2673280813984708147">בעריכה</translation> <translation id="267442004702508783">רענון</translation> <translation id="2684412629217766642">סגור את מערך השיעור של ChromeVox</translation> <translation id="2697408785920771974">autoinl</translation> @@ -408,7 +409,7 @@ <translation id="4476183483923481720">שורה חדשה</translation> <translation id="4482330759234983253">הטבלה הקודמת</translation> <translation id="4491109536499578614">תמונה</translation> -<translation id="4517854969512651305">הגברת עוצמת הקול</translation> +<translation id="4517854969512651305">הגדלת ערך</translation> <translation id="4529987814483543472">מפת מקשים קלאסית</translation> <translation id="4532633738839459153">{COUNT,plural, =1{קו נטוי}two{# סימני קו נטוי}many{# סימני קו נטוי}other{# סימני קו נטוי}}</translation> <translation id="4547556996012970016">הכותרת הבאה של רמה 5</translation> @@ -424,7 +425,7 @@ <translation id="461613135510474570">משפט</translation> <translation id="463135993322337640">לחיצה על ChromeVox+o+n תציג את העדכונים</translation> <translation id="4647836961514597010">בוחר צבעים</translation> -<translation id="4652110509054054146">אפשר להשתמש במקש החיפוש יחד עם החץ שמאלה או ימינה במקום מקש Home או End, אפשר להשתמש במקש החיפוש יחד עם Control וחץ ימינה או שמאלה במקום Control עם מקש Home או End, אפשר להשתמש במקש החיפוש יחד עם החץ כלפי מעלה או מטה במקום מקש Page Up או Page Down.</translation> +<translation id="4652110509054054146">אפשר להשתמש במקש החיפוש יחד עם החץ שמאלה או ימינה במקום מקש Home או End, אפשר להשתמש במקש החיפוש יחד עם Control וחץ ימינה או שמאלה במקום Control עם מקש Home או End, ואפשר להשתמש במקש החיפוש יחד עם החץ כלפי מעלה או מטה במקום מקש Page Up או Page Down.</translation> <translation id="4660783501463101648">הגירסה הקלאסית הוסרה. לחצן החלפת המצב במקלדת למעבר חזרה אל הגירסה הקלאסית של ChromeVox הוסר.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">ציון דרך</translation> <translation id="5683155931978483559">תיבת הסימון הקודמת</translation> <translation id="5684277895745049190">רשימה</translation> -<translation id="5695831708991916435">מקשי הקיצור הבאים אינם פקודות ChromeVox, אבל הם עדיין מאוד מועילים לשימוש יעיל ב-Chrome. -כדי לנווט קדימה בפריטים המאפשרים ביצוע פעולה, כמו לחצנים וקישורים, הקש על מקש Tab. כדי לנווט אחורה, הקש על Shift ועל Tab. -כדי לעבור אל תיבת הכתובות בדפדפן Chrome, שנקראת גם סרגל הכתובות, הקש על Control ועל L. -כדי לפתוח באופן אוטומטי כרטיסייה חדשה ולעבור אליה, הקש על Control ועל T. הסמן יופיע בסרגל הכתובות. -כדי לסגור את הכרטיסייה, הקש על Control ועל W. -כדי לעבור קדימה בין כרטיסיות פתוחות, הקש על Control ועל Tab. -כדי לפתוח את תפריט דפדפן Chrome הקש על Alt ועל F.</translation> <translation id="5700650669149824506">אין כותרת קודמת של רמה 4.</translation> <translation id="5703716265115423771">הפחתת עוצמת הקול</translation> <translation id="5709192780268610569">אין תיאור ארוך</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 e02baac..e7d23eb 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />、パスワード テキスト ボックス</translation> <translation id="1467432559032391204">左</translation> <translation id="1474557363159888097">前のアンカーはありません。</translation> +<translation id="1480046233931937785">クレジット</translation> <translation id="1487494366197411587">Chromebook では、検索キーは左の Shift キーのすぐ上にあります。</translation> <translation id="1499041187027566160">音量を上げる</translation> <translation id="1502086903961450562">前の図</translation> @@ -160,7 +161,7 @@ <translation id="2637227747952042642">数式</translation> <translation id="2639750663247012216">ChromeVox 修飾キー</translation> <translation id="2644542693584024604">スペルミス</translation> -<translation id="2673280813984708147">編集しています</translation> +<translation id="2673280813984708147">は編集中です</translation> <translation id="267442004702508783">更新</translation> <translation id="2684412629217766642">ChromeVox のチュートリアルを閉じる</translation> <translation id="2697408785920771974">インライン オートコンプリート</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">ランドマーク</translation> <translation id="5683155931978483559">前のチェックボックス</translation> <translation id="5684277895745049190">リスト</translation> -<translation id="5695831708991916435">次に紹介するいくつかのショートカットは ChromeVox のコマンドではありませんが、Chrome を活用する際に役立ちます。 -ボタンやリンクなどの操作可能な項目間を移動するには、順方向の場合は Tab キー、逆方向の場合は Shift+Tab キーを押します。 -Chrome ブラウザのアドレスバー(オムニボックスとも呼ばれます)に移動するには、Ctrl+L キーを押します。 -新しいタブを自動的に開いてそのタブに移動するには、Ctrl+T キーを押します。カーソルはアドレスバー内に置かれます。 -タブを閉じるには Ctrl+W キーを押します。 -開いているタブ間を移動するには、Ctrl+Tab キーを押します。 -Chrome ブラウザのメニューを開くには、Alt+F キーを押します。</translation> <translation id="5700650669149824506">前のレベル 4 見出しはありません。</translation> <translation id="5703716265115423771">音量を下げる</translation> <translation id="5709192780268610569">長い説明はありません</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 2172936..f6b5296 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, ಪಾಸ್ವರ್ಡ್ ಪಠ್ಯ ಬಾಕ್ಸ್</translation> <translation id="1467432559032391204">ಎಡಕ್ಕೆ</translation> <translation id="1474557363159888097">ಹಿಂದಿನ ಆಧಾರವಿಲ್ಲ.</translation> +<translation id="1480046233931937785">ಕ್ರೆಡಿಟ್ಗಳು</translation> <translation id="1487494366197411587">Chromebook ನಲ್ಲಿ, ಎಡ Shift ಕೀಯ ಮೇಲ್ಭಾಗದಲ್ಲಿಯೇ ಹುಡುಕಾಟ ಕೀ ಇರುತ್ತದೆ.</translation> <translation id="1499041187027566160">ವಾಲ್ಯೂಮ್ ಹೆಚ್ಚು ಮಾಡಿ</translation> <translation id="1502086903961450562">ಹಿಂದಿನ ಗ್ರಾಫಿಕ್</translation> @@ -89,6 +90,7 @@ <translation id="1810107444790159527">ಪಟ್ಟಿಯ ಬಾಕ್ಸ್</translation> <translation id="1828385960365606039">ಮೇ</translation> <translation id="1834891354138622109">ಕಾಲಮ್</translation> +<translation id="1845944666972354496">ಸಕ್ರಿಯಗೊಳಿಸಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ</translation> <translation id="1865601187525349519">ಪಠ್ಯದ ಕೊನೆ</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">ಪ್ರಸ್ತುತ ಸಮಯ ಮತ್ತು ದಿನಾಂಕವನ್ನು ಮಾತನಾಡಿ.</translation> @@ -120,6 +122,7 @@ <translation id="2179452035581866348">ChromeVox ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಮತ್ತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ನೀಡಲು ಧ್ವನಿಗಳನ್ನು ಬಳಸುತ್ತದೆ. ನೀವು ಪ್ರತಿಯೊಂದು ಧ್ವನಿಯ ಅರ್ಥ ಏನು ಎನ್ನುವುದನ್ನು ಕಲಿಯುವ ಮೂಲಕ ಇನ್ನಷ್ಟು ತ್ವರಿತವಾಗಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಈ ಧ್ವನಿಗಳನ್ನು ಬಳಸಬಹುದು. ಒಮ್ಮೆ ನಿಮಗೆ ಒಮ್ಮೆ ಹೆಚ್ಚು ಹಿತವೆನಿಸಿದರೆ, ಪುಟದ ಕುರಿತು ಅಗತ್ಯವಿರುವ ಮಾಹಿತಿಗಾಗಿ ಅವುಗಳ ಮಾತಿನಲ್ಲಿರುವ ವರ್ಬೋಸ್ ವಿವರಣೆಗಳು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ನೀವು ಆಫ್ ಮಾಡಬಹುದು. ಧ್ವನಿಗಳು ಮತ್ತು ಅದು ಏನೆಂಬುದರ ಸಂಪೂರ್ಣ ಪಟ್ಟಿ ಇಲ್ಲಿದೆ.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{ಮುಚ್ಚಿದ ಆವರಣ}one{# ಮುಚ್ಚಿದ ಆವರಣಗಳು}other{# ಮುಚ್ಚಿದ ಆವರಣಗಳು}}</translation> <translation id="2199994615414171367">ಹಿಂದಿನ ಗಣಿತ</translation> +<translation id="2203046366315513658">ಮೌಲ್ಯವನ್ನು ಕಡಿಮೆ ಮಾಡಿ</translation> <translation id="2220529011494928058">ಸಮಸ್ಯೆ ವರದಿಮಾಡಿ</translation> <translation id="2223693656926968778">ಪ್ರಸ್ತುತ ಐಟಂ ಕುರಿತು ಕ್ರಮ ಕೈಗೊಳ್ಳಿ</translation> <translation id="225732394367814946">ಮಾತಿನ ಪ್ರಮಾಣವನ್ನು ಹೆಚ್ಚಿಸಿ</translation> @@ -158,6 +161,7 @@ <translation id="2637227747952042642">ಗಣಿತ</translation> <translation id="2639750663247012216">ChromeVox ಪರಿವರ್ತಕ</translation> <translation id="2644542693584024604">ತಪ್ಪು ಕಾಗುಣಿತ</translation> +<translation id="2673280813984708147">ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="267442004702508783">ರಿಫ್ರೆಶ್ ಮಾಡಿ</translation> <translation id="2684412629217766642">ChromeVox ಟ್ಯುಟೋರಿಯಲ್ ಮುಚ್ಚು</translation> <translation id="2697408785920771974">autoinl</translation> @@ -209,6 +213,7 @@ <translation id="3060756054951570867"><ph name="TITLE" /> ಮೆನು ತೆರೆಯಲಾಗಿದೆ</translation> <translation id="3078345202707391975">ಮುಂದಿನ ಹಂತದ 2 ಶಿರೋನಾಮೆ</translation> <translation id="3078740164268491126">ಕೋಷ್ಟಕ</translation> +<translation id="3082249673510793544">ಹಿಂದಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ</translation> <translation id="3082557070674409251">ಕ್ಲಿಕ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="3084806535845658316">ಯಾವುದೇ ಟೈಪಿಂಗ್ ಎಕೋ ಇಲ್ಲ</translation> <translation id="3086746722712840547">ಟಿಪ್ಪಣಿ</translation> @@ -396,6 +401,7 @@ <translation id="4372705107434148843">ಮಾತು ನಿಲ್ಲಿಸಿ</translation> <translation id="4373197658375206385">ಹಿಂದಿನ ಯಾವುದೇ ಐಟಂ ಲಿಂಕ್ ಆಗಿಲ್ಲ</translation> <translation id="4376316291247992553">ಗ್ರಾಫಿಕ್ ಅನ್ನು ಬ್ರೈಲ್ನಂತೆ ವೀಕ್ಷಿಸಿ</translation> +<translation id="4378308539633073595">ಮುಂದಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">ಮರುಹೊಂದಿಸು</translation> <translation id="4457472090507035117">ಪ್ರಸ್ತುತ ಧ್ವನಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ:</translation> @@ -403,6 +409,7 @@ <translation id="4476183483923481720">ಹೊಸ ಸಾಲು</translation> <translation id="4482330759234983253">ಹಿಂದಿನ ಕೋಷ್ಟಕ</translation> <translation id="4491109536499578614">ಚಿತ್ರ</translation> +<translation id="4517854969512651305">ಮೌಲ್ಯವನ್ನು ಹೆಚ್ಚಿಸಿ</translation> <translation id="4529987814483543472">ಕ್ಲಾಸಿಕ್ ಕೀಮ್ಯಾಪ್</translation> <translation id="4532633738839459153">{COUNT,plural, =1{ಸ್ಲ್ಯಾಷ್}one{# ಸ್ಲ್ಯಾಷ್ಗಳು}other{# ಸ್ಲ್ಯಾಷ್ಗಳು}}</translation> <translation id="4547556996012970016">ಮುಂದಿನ ಹಂತ 5 ಶಿರೋನಾಮೆ</translation> @@ -418,6 +425,7 @@ <translation id="461613135510474570">ವಾಕ್ಯ</translation> <translation id="463135993322337640">ಹೊಸದೇನಿದೆ ಎಂಬುದನ್ನು ಕಂಡುಕೊಳ್ಳಲು ChromeVox o, n ಅನ್ನು ಒತ್ತಿ</translation> <translation id="4647836961514597010">ಬಣ್ಣ ಆಯ್ಕೆಮಾಡುವಿಕೆ</translation> +<translation id="4652110509054054146">ಹೋಮ್ ಅಥವಾ ಎಂಡ್ಗಾಗಿ ಹುಡುಕಾಟ ಎಡ ಅಥವಾ ಬಲ, ಕಂಟ್ರೋಲ್ ಹೋಮ್ ಅಥವಾ ಎಂಡ್ಗಾಗಿ ಹುಡುಕಾಟ ಕಂಟ್ರೋಲ್ ಎಡ ಅಥವಾ ಬಲ, ಪುಟ ಮೇಲೆ ಅಥವಾ ಕೆಳಗೆ ಮಾಡಲು ಹುಡುಕಾಟ ಮೇಲೆ ಅಥವಾ ಕೆಳಗೆ ಬಳಸಿ</translation> <translation id="4660783501463101648">ಕ್ಲಾಸಿಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ChromeVox ಕ್ಲಾಸಿಕ್ಗೆ ಹಿಂತಿರುಗಲು ಕೀಬೋರ್ಡ್ ಟಾಗಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.</translation> <translation id="4661075872484491155">ಮರ</translation> <translation id="4668929960204016307">,</translation> @@ -549,13 +557,6 @@ <translation id="5682113568322255809">ಹೆಗ್ಗುರುತು</translation> <translation id="5683155931978483559">ಹಿಂದಿನ ಚೆಕ್ಬಾಕ್ಸ್</translation> <translation id="5684277895745049190">ಪಟ್ಟಿ</translation> -<translation id="5695831708991916435">ಮುಂದಿನ ಕೆಲವು ಶಾರ್ಟ್ಕಟ್ಗಳು ChromeVox ಆದೇಶಗಳಲ್ಲ, ಆದರೆ ಇನ್ನೂ ಸಹ ಅವುಗಳು Chrome ನಿಂದ ಹೆಚ್ಚಿನದನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ತೀರಾ ಉಪಯುಕ್ತವಾಗಿವೆ. -ಬಟನ್ಗಳು ಮತ್ತು ಲಿಂಕ್ಗಳಂತಹ ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಬಹುದಾದ ಐಟಂಗಳ ಮೂಲಕ ಮುಂದಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು, Tab ಕೀ ಒತ್ತಿ. ಹಿಂದಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು, Shift+Tab ಒತ್ತಿ. -ಆಮ್ನಿಬಾಕ್ಸ್ ಎಂದು ಕರೆಯಲಾಗುವ Chrome ಬ್ರೌಸರ್ ವಿಳಾಸ ಪೆಟ್ಟಿಗೆಯನ್ನು ನಮೂದಿಸಲು, Control + L ಒತ್ತಿ. -ಹೊಸ ಟ್ಯಾಬ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರೆಯಲು ಮತ್ತು ಅಲ್ಲಿಗೆ ಹೋಗಲು, Control+T ಒತ್ತಿ. ನಿಮ್ಮ ಕರ್ಸರ್ ಆಮ್ನಿಬಾಕ್ಸ್ನಲ್ಲಿರುತ್ತದೆ. -ಟ್ಯಾಬ್ ಮುಚ್ಚಲು, Control+W ಒತ್ತಿ. -ತೆರೆದ ಟ್ಯಾಬ್ಗಳ ನಡುವೆ ಮುಂದಕ್ಕೆ ಸರಿಸಲು, Control+Tab ಬಳಸಿ. -Chrome ಬ್ರೌಸರ್ ಮೆನು ತೆರೆಯಲು, Alt+F ಒತ್ತಿ.</translation> <translation id="5700650669149824506">ಯಾವುದೇ ಹಿಂದಿನ ಮಟ್ಟದ 4 ಶಿರೋನಾಮೆಯಿಲ್ಲ.</translation> <translation id="5703716265115423771">ವಾಲ್ಯೂಮ್ ಕಡಿಮೆ ಮಾಡಿ</translation> <translation id="5709192780268610569">ಯಾವುದೇ ದೀರ್ಘ ವಿವರಣೆಯಿಲ್ಲ</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb index 4c8a5d9d..16f689d7 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ko.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, 비밀번호 입력란</translation> <translation id="1467432559032391204">왼쪽</translation> <translation id="1474557363159888097">이전 앵커가 없습니다.</translation> +<translation id="1480046233931937785">크레딧</translation> <translation id="1487494366197411587">Chromebook에서 검색 키는 왼쪽 Shift 키 바로 위에 있습니다.</translation> <translation id="1499041187027566160">볼륨 크게</translation> <translation id="1502086903961450562">이전 그래픽</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">랜드마크</translation> <translation id="5683155931978483559">이전 체크박스</translation> <translation id="5684277895745049190">목록</translation> -<translation id="5695831708991916435">다음 단축키들은 ChromeVox 명령어는 아니지만 Chrome 사용에 도움이 되는 유용한 단축키들입니다. -버튼과 링크 등 실행 가능한 항목 간에 이동하려면 Tab을 눌러 앞으로 이동, Shift+Tab을 눌러 뒤로 이동합니다. -Chrome 브라우저 주소창(검색주소창이라고도 함)에 입력하려면 Control+L을 누릅니다. -새 탭을 열고 자동으로 이동하려면 Control+T를 누릅니다. 커서는 검색주소창에 있습니다. -탭을 닫으려면 Control+W를 누릅니다. -열려 있는 탭 간에 앞으로 이동하려면 Control+Tab을 누릅니다. -Chrome 브라우저 메뉴를 열려면 Alt+F를 누릅니다.</translation> <translation id="5700650669149824506">이전 수준 4 제목이 없습니다.</translation> <translation id="5703716265115423771">볼륨 작게</translation> <translation id="5709192780268610569">자세한 설명 없음</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 02475b8..0812586 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, slaptažodžio teksto laukelis</translation> <translation id="1467432559032391204">Kairė</translation> <translation id="1474557363159888097">Nėra ankstesnio prieraišo.</translation> +<translation id="1480046233931937785">Titrai</translation> <translation id="1487494366197411587">„Chromebook“ klavišas „Search“ yra iškart virš klavišo „Shift“.</translation> <translation id="1499041187027566160">garsumo didinimas</translation> <translation id="1502086903961450562">Ankstesnis grafinis elementas</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Orientyras</translation> <translation id="5683155931978483559">Ankstesnis žymimasis laukelis</translation> <translation id="5684277895745049190">Sąrašas</translation> -<translation id="5695831708991916435">Toliau pateikti keli spartieji klavišai nėra „ChromeVox“ komandos, bet jie vis tiek labai naudingi norint išnaudoti visas „Chrome“ galimybes. -Jei norite pereiti nuo vieno suaktyvinamo elemento, pvz., mygtuko ar nuorodos, prie kito, paspauskite tabuliavimo klavišą. Jei norite grįžti atgal, paspauskite „Shift“ ir tabuliavimo klavišą. -Kad pereitumėte į „Chrome“ naršyklės adreso laukelį, kuris dar vadinamas „omnibox“, paspauskite „Control“ ir L. -Kad atidarytumėte ir automatiškai pereitumėte į naują skirtuką, paspauskite „Control“ ir T. Žymeklis bus laukelyje „omnibox“. -Kad uždarytumėte skirtuką, paspauskite „Control“ ir W. -Kad pereitumėte nuo vieno atidaryto skirtuko prie kito, naudokite „Control“ ir tabuliavimo klavišą. -Kad atidarytumėte „Chrome“ naršyklės meniu, paspauskite „Alt“ ir F.</translation> <translation id="5700650669149824506">Nėra ankstesnės 4 lygio antraštės.</translation> <translation id="5703716265115423771">garsumo mažinimas</translation> <translation id="5709192780268610569">Nėra ilgo aprašo</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb index 602e533..cdc370d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lv.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, paroles tekstlodziņš</translation> <translation id="1467432559032391204">Pa kreisi</translation> <translation id="1474557363159888097">Iepriekš nav neviena enkura.</translation> +<translation id="1480046233931937785">Titri</translation> <translation id="1487494366197411587">Chromebook datorā meklēšanas taustiņš atrodas tieši virs kreisā pārslēgšanas (Shift) taustiņa.</translation> <translation id="1499041187027566160">palielināt skaļumu</translation> <translation id="1502086903961450562">Iepriekšējā grafika</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Orientieris</translation> <translation id="5683155931978483559">Iepriekšējā izvēles rūtiņa</translation> <translation id="5684277895745049190">Saraksts</translation> -<translation id="5695831708991916435">Daži nākamie īsinājumtaustiņi nav ChromeVox komandas, taču tie ir ļoti noderīgi efektīvai Chrome izmantošanai. -Lai pārietu uz priekšu pa izmantojamiem vienumiem, piemēram, pogām un saitēm, nospiediet tabulēšanas taustiņu. Lai pārietu atpakaļ, vienlaikus nospiediet pārslēgšanas un tabulēšanas taustiņus. -Lai ievadītu tekstu pārlūka Chrome adreses joslā, kas arī tiek saukta par universālo lodziņu, vienlaikus nospiediet vadības taustiņu un taustiņu L. -Lai atvērtu jaunu cilni un automātiski pārietu uz to, vienlaikus nospiediet vadības taustiņu un taustiņu T. Kursors atradīsies universālajā lodziņā. -Lai aizvērtu cilni, vienlaikus nospiediet vadības taustiņu un taustiņu W. -Lai pārvietotos uz priekšu pa atvērtām cilnēm, vienlaikus nospiediet vadības un tabulēšanas taustiņus. -Lai atvērtu Chrome pārlūka izvēlni, vienlaikus nospiediet alternēšanas taustiņu un taustiņu F.</translation> <translation id="5700650669149824506">Iepriekš nav neviena 4. līmeņa virsraksta.</translation> <translation id="5703716265115423771">samazināt skaļumu</translation> <translation id="5709192780268610569">Nav garā apraksta.</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 908b284..b51c7fc7 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, പാസ്വേഡ് വാചക ബോക്സ്</translation> <translation id="1467432559032391204">ഇടത്</translation> <translation id="1474557363159888097">മുൻ ആങ്കർ ഒന്നുമില്ല.</translation> +<translation id="1480046233931937785">ക്രെഡിറ്റുകൾ</translation> <translation id="1487494366197411587">Chromebook-ൽ, ഇടത് ഷിഫ്റ്റ് കീയുടെ തൊട്ടുമുകളിലുള്ളതാണ് തിരയൽ കീ.</translation> <translation id="1499041187027566160">വോളിയം കൂട്ടുക</translation> <translation id="1502086903961450562">മുൻ ഗ്രാഫിക്</translation> @@ -89,6 +90,7 @@ <translation id="1810107444790159527">പട്ടിക ബോക്സ്</translation> <translation id="1828385960365606039">മേയ്</translation> <translation id="1834891354138622109">നിര</translation> +<translation id="1845944666972354496">സജ്ജീവമാക്കാൻ രണ്ട് തവണ ടാപ്പ് ചെയ്യുക</translation> <translation id="1865601187525349519">വാചകത്തിന്റെ അവസാനം</translation> <translation id="1876229593313240038">doc</translation> <translation id="188130072164734898">നിലവിലെ സമയവും തീയതിയും പറയുക.</translation> @@ -119,6 +121,7 @@ <translation id="2179452035581866348">നിങ്ങൾക്ക് പ്രധാനപ്പെട്ട കൂടുതൽ വിവരങ്ങൾ നൽകാൻ ChromeVox ശബ്ദങ്ങൾ ഉപയോഗിക്കുന്നു. ഓരോ ശബ്ദത്തിന്റെയും അർത്ഥം മനസ്സിലാക്കി കൂടുതൽ വേഗത്തിൽ നാവിഗേറ്റുചെയ്യാൻ നിങ്ങൾക്ക് ഈ ശബ്ദങ്ങൾ ഉപയോഗിക്കാം. കൂടുതൽ പരിചിതമായ ശേഷം, സംഭാഷണത്തിലെ വെർബോസ് വിവരണങ്ങൾ ഓഫാക്കി, പേജിനെ കുറിച്ചുള്ള സുപ്രധാന വിവരങ്ങൾക്ക് അവയെ ആശ്രയിക്കാം. ശബ്ദങ്ങളുടെ പൂർണ്ണമായ ലിസ്റ്റും അവയുടെ അർത്ഥവും ഇവിടെ കാണാം.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{ക്ലോസ് പരാന്തിസിസ്}other{# ക്ലോസ് പരാന്തിസിസുകൾ}}</translation> <translation id="2199994615414171367">മുമ്പത്തെ മാത്ത്</translation> +<translation id="2203046366315513658">മൂല്യം കുറയ്ക്കുക</translation> <translation id="2220529011494928058">ഒരു പ്രശ്നം റിപ്പോർട്ടുചെയ്യുക</translation> <translation id="2223693656926968778">നിലവിലുള്ള ഇനത്തിൽ പ്രവർത്തനം നടത്തുക</translation> <translation id="225732394367814946">സംഭാഷണ റേറ്റ് വർദ്ധിപ്പിക്കുക</translation> @@ -157,6 +160,7 @@ <translation id="2637227747952042642">മാത്ത്</translation> <translation id="2639750663247012216">ChromeVox മോഡിഫയർ</translation> <translation id="2644542693584024604">അക്ഷരത്തെറ്റ്</translation> +<translation id="2673280813984708147">എഡിറ്റ് ചെയ്യുന്നു</translation> <translation id="267442004702508783">പുതുക്കുക</translation> <translation id="2684412629217766642">ChromeVox ട്യൂട്ടോറിയൽ അടയ്ക്കുക</translation> <translation id="2697408785920771974">autoinl</translation> @@ -208,6 +212,7 @@ <translation id="3060756054951570867"><ph name="TITLE" /> മെനു തുറന്നു</translation> <translation id="3078345202707391975">അടുത്ത നില 2 ശീർഷകം</translation> <translation id="3078740164268491126">പട്ടിക</translation> +<translation id="3082249673510793544">പുറകിലേക്ക് സ്ക്രോൾ ചെയ്യുക</translation> <translation id="3082557070674409251">ക്ലിക്കുചെയ്തു</translation> <translation id="3084806535845658316">ടൈപ്പുചെയ്യൽ എക്കോകളൊന്നുമില്ല</translation> <translation id="3086746722712840547">note</translation> @@ -395,6 +400,7 @@ <translation id="4372705107434148843">സംഭാഷണം അവസാനിപ്പിക്കുക</translation> <translation id="4373197658375206385">ഒരു ലിങ്ക് അല്ലാത്ത മുൻ ഇനം ഒന്നുമില്ല.</translation> <translation id="4376316291247992553">ഗ്രാഫിക്കിനെ ബ്രെയ്ലിയായി കാണുക</translation> +<translation id="4378308539633073595">മുമ്പിലേക്ക് സ്ക്രോൾ ചെയ്യുക</translation> <translation id="4391478986194775161">cntntinfo</translation> <translation id="443163561286008705">പുനഃസജ്ജമാക്കുക</translation> <translation id="4457472090507035117">നിലവിലെ ശബ്ദം തിരഞ്ഞെടുക്കുക:</translation> @@ -402,6 +408,7 @@ <translation id="4476183483923481720">പുതിയ വരി</translation> <translation id="4482330759234983253">മുൻ പട്ടിക</translation> <translation id="4491109536499578614">ചിത്രം</translation> +<translation id="4517854969512651305">മൂല്യം കൂട്ടുക</translation> <translation id="4529987814483543472">ക്ലാസിക്ക് കീമാപ്പ്</translation> <translation id="4532633738839459153">{COUNT,plural, =1{സ്ലാഷ്}other{# സ്ലാഷുകൾ}}</translation> <translation id="4547556996012970016">അടുത്ത നില 5 ശീർഷകം</translation> @@ -417,6 +424,7 @@ <translation id="461613135510474570">വാക്യം</translation> <translation id="463135993322337640">പുതിയതെന്തെന്ന് അറിയാൻ ChromeVox o, n എന്നിവ അമർത്തുക</translation> <translation id="4647836961514597010">വർണ്ണ പിക്കർ</translation> +<translation id="4652110509054054146">ഹോമിനോ അവസാനിപ്പിക്കുന്നതിനോ ഇടത്തോട്ടോ വലത്തോട്ടോ തിരയുക ഉപയോഗിക്കുക, ഹോം നിയന്ത്രിക്കുന്നതിനോ അവസാനിപ്പിക്കുന്നതിനോ മുകളിലേക്കോ താഴേക്കോ നിയന്ത്രിക്കുക തിരയുക, പേജ് മുകളിലേക്കോ താഴേക്കോ ലഭിക്കാൻ മുകളിലേക്കോ താഴേക്കോ തിരയുക</translation> <translation id="4660783501463101648">ക്ലാസ്സിക്ക് നീക്കം ചെയ്തു. ChromeVox ക്ലാസ്സിക്കിലേക്ക് തിരികെ മാറുന്നതിനുള്ള കീബോർഡ് ടോഗിൾ നീക്കം ചെയ്തിരിക്കുന്നു.</translation> <translation id="4661075872484491155">ട്രീ</translation> <translation id="4668929960204016307">,</translation> @@ -548,13 +556,6 @@ <translation id="5682113568322255809">ലാൻഡ്മാർക്ക്</translation> <translation id="5683155931978483559">മുൻ ചെക്ക്ബോക്സ്</translation> <translation id="5684277895745049190">ലിസ്റ്റ്</translation> -<translation id="5695831708991916435">അടുത്ത ചില കുറുക്കുവഴികൾ ChromeVox കമാൻഡുകളല്ലെങ്കിലും, Chrome പരമാവധി പ്രയോജനപ്പെടുത്താൻ അവ വളരെ ഉപയോഗപ്രദമാണ്. -ബട്ടണുകളും ലിങ്കുകളും പോലുള്ള തീർക്കാവുന്ന ജോലികളിലൂടെ മുന്നോട്ട് പോകാൻ, ടാബ് കീ അമർത്തുക. പിന്നോട്ട് പോകാൻ, ഷിഫ്റ്റ്+ടാബ് അമർത്തുക. -ഓമ്നിബോക്സ് എന്നും വിളിക്കുന്ന Chrome ബ്രൗസർ വിലാസ ബോക്സിൽ പ്രവേശിക്കാൻ കൺട്രോൾ + L അമർത്തുക. -ഒരു പുതിയ ടാബ് സ്വയം തുറന്ന് അതിലേക്ക് പോകാൻ, കൺട്രോൾ+T അമർത്തുക. നിങ്ങളുടെ കഴ്സർ ഓമ്നിബോക്സിലായിരിക്കും. -ഒരു ടാബ് അടയ്ക്കാൻ, കൺട്രോൾ+W അമർത്തുക. -തുറന്ന ടാബുകളിലൂടെ മുന്നോട്ട് നീക്കാൻ, കൺട്രോൾ+ടാബ് ഉപയോഗിക്കുക. -Chrome ബ്രൗസർ മെനു തുറക്കാൻ, Alt+F അമർത്തുക.</translation> <translation id="5700650669149824506">മുൻ നില 4 ശീർഷകം ഒന്നുമില്ല.</translation> <translation id="5703716265115423771">വോളിയം കുറയ്ക്കുക</translation> <translation id="5709192780268610569">ദൈർഘ്യമേറിയ വിവരണങ്ങളൊന്നുമില്ല</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb index d1fd903..9cc3df6 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, पासवर्ड मजकूर बॉक्स</translation> <translation id="1467432559032391204">डावे</translation> <translation id="1474557363159888097">मागील अँकर नाही.</translation> +<translation id="1480046233931937785">क्रेडिट</translation> <translation id="1487494366197411587">Chromebook वर, शोध की डाव्या Shift की वर असते.</translation> <translation id="1499041187027566160">आवाज वाढवा</translation> <translation id="1502086903961450562">मागील ग्राफिक्स</translation> @@ -548,14 +549,6 @@ <translation id="5682113568322255809">महत्त्वाची खुण</translation> <translation id="5683155931978483559">मागील चेकबॉक्स</translation> <translation id="5684277895745049190">सूची</translation> -<translation id="5695831708991916435">पुढील काही शॉर्टकट हे ChromeVox आदेश नाहीत परंतु तरीही Chrome मधून सर्वोत्कृष्ट मिळविण्यासाठी ते खूप उपयुक्त आहेत. -बटणे आणि दुवे यासारख्या क्रिया करण्यायोग्य आयटम मधून पुढे नेव्हिगेट करण्यासाठी, टॅब की दाबा. -मागे नेव्हिगेट करण्यासाठी, Shift+टॅब दाबा. -Chrome ब्राउझरच्या ओम्निबॉक्स देखील म्हणविल्या जाणार्या, अॅड्रेस बॉक्समध्ये प्रवेश करण्यासाठी Control + L दाबा. -नवीन टॅब उघडण्यासाठी आणि त्यामध्ये स्वयंचलितपणे जाण्यासाठी, Control+T दाबा. आपला कर्सर ओम्निबॉक्स मध्ये असेल. -टॅब बंद करण्यासाठी, Control+W दाबा. -खुल्या टॅबमध्ये पुढे जाण्यासाठी, Control+टॅब वापरा. -Chrome ब्राउझर मेनू उघडण्यासाठी, Alt+F दाबा.</translation> <translation id="5700650669149824506">मागील स्तर 4 मथळा नाही.</translation> <translation id="5703716265115423771">आवाज कमी करा</translation> <translation id="5709192780268610569">कोणतेही मोठे वर्णन नाही</translation> @@ -669,7 +662,7 @@ <translation id="6877435256196695200">पुढील ग्राफिक नाही.</translation> <translation id="6897341342232909480">डावीकडे हलवा</translation> <translation id="6901540140423170855">तारीख</translation> -<translation id="6910211073230771657">हटविला</translation> +<translation id="6910211073230771657">हटवला</translation> <translation id="6910969481785184048">चालू करा, बंद करा आणि थांबा</translation> <translation id="6911965441508464308">वर सेल नाही.</translation> <translation id="6919104639734799681">सारणी सूची दर्शवा</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 a0b37bf..db3b1c3 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">Kotak teks kata laluan, <ph name="VALUE" /></translation> <translation id="1467432559032391204">Kiri</translation> <translation id="1474557363159888097">Tiada penambat terdahulu.</translation> +<translation id="1480046233931937785">Kredit</translation> <translation id="1487494366197411587">Pada Chromebook, kekunci Carian berada betul-betul di atas kekunci Shift kiri.</translation> <translation id="1499041187027566160">tambahkan kelantangan</translation> <translation id="1502086903961450562">Grafik sebelumnya</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Mercu Tanda</translation> <translation id="5683155931978483559">Kotak pilihan sebelumnya</translation> <translation id="5684277895745049190">Senarai</translation> -<translation id="5695831708991916435">Beberapa pintasan yang berikut ini bukan merupakan perintah ChromeVox, tetapi pintasan ini sangat berguna untuk memanfaatkan sepenuhnya Chrome. -Untuk menavigasi ke hadapan dari satu item yang boleh diambil tindakan ke satu item yang lain seperti butang dan pautan, tekan kekunci Tab. Untuk menavigasi ke belakang, tekan Shift + Tab. -Untuk pergi ke kotak alamat penyemak imbas Chrome, yang juga dikenali sebagai kotak omni, tekan Control + L. -Untuk membuka dan pergi ke tab baharu secara automatik, tekan Control+T. Kursor anda akan berada dalam kotak omni. -Untuk menutup tab, tekan Control+W. -Untuk bergerak ke hadapan dari satu tab terbuka ke satu tab terbuka yang lain, gunakan Control+Tab. -Untuk membuka menu penyemak imbas Chrome, tekan Alt+F.</translation> <translation id="5700650669149824506">Tiada tajuk tahap 4 terdahulu.</translation> <translation id="5703716265115423771">kurangkan kelantangan</translation> <translation id="5709192780268610569">Tiada huraian panjang</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb index f6801d8..0ef27fd0 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_nl.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, tekstvak voor wachtwoord</translation> <translation id="1467432559032391204">Links</translation> <translation id="1474557363159888097">Geen vorig anker.</translation> +<translation id="1480046233931937785">Credits</translation> <translation id="1487494366197411587">De zoektoets op je Chromebook bevindt zich meteen boven de Shift-toets aan de linkerkant.</translation> <translation id="1499041187027566160">volume omhoog</translation> <translation id="1502086903961450562">Vorige afbeelding</translation> @@ -159,7 +160,7 @@ <translation id="2637227747952042642">Wiskunde</translation> <translation id="2639750663247012216">ChromeVox-functietoets</translation> <translation id="2644542693584024604">spelfout</translation> -<translation id="2673280813984708147">is bezig met bewerken</translation> +<translation id="2673280813984708147">bezig met bewerken</translation> <translation id="267442004702508783">vernieuwen</translation> <translation id="2684412629217766642">Handleiding van ChromeVox sluiten</translation> <translation id="2697408785920771974">autoinl</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Oriëntatiepunt</translation> <translation id="5683155931978483559">Vorig selectievakje</translation> <translation id="5684277895745049190">Lijst</translation> -<translation id="5695831708991916435">De volgende snelkoppelingen zijn geen ChromeVox-opdrachten, maar wel handig om optimaal gebruik te maken van Chrome. -Als je vooruit door actiegerichte items (zoals knoppen en links) wilt navigeren, druk je op de Tab-toets. Als je terug wilt navigeren, druk je op Shift + Tab. -Als je de cursor naar het adresvak van de Chrome-browser (ook wel omnibox genoemd) wilt verplaatsen, druk je op Ctrl + L. -Druk op Ctrl + T om automatisch naar een nieuw tabblad te gaan. Je cursor wordt in de omnibox geplaatst. -Druk op Ctrl + W om een tabblad te sluiten. -Gebruik Ctrl + Tab om vooruit door de geopende tabbladen te browsen. -Druk op Alt + F om het menu van de Chrome-browser te openen.</translation> <translation id="5700650669149824506">Geen vorige kop voor niveau 4.</translation> <translation id="5703716265115423771">volume omlaag</translation> <translation id="5709192780268610569">Geen lange beschrijving</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb index 9573e0f..35f429169 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_no.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, tekstfelt for passord</translation> <translation id="1467432559032391204">Venstre</translation> <translation id="1474557363159888097">Det finnes ingen tidligere ankere.</translation> +<translation id="1480046233931937785">Medvirkende</translation> <translation id="1487494366197411587">Søketasten på Chromebook er plassert rett over den venstre Shift-tasten.</translation> <translation id="1499041187027566160">volum opp</translation> <translation id="1502086903961450562">Forrige illustrasjon</translation> @@ -121,7 +122,7 @@ <translation id="2179452035581866348">ChromeVox bruker lyder for å gi deg viktig informasjon og tilleggsinformasjon. Hvis du lærer hva hver lyd betyr, kan du bruke dem til å navigere raskere. Når du er mer komfortabel, kan du slå av de omfattende beskrivelsene i tale og bruke dem for å få viktig informasjon om siden. Her er en komplett liste over lyder og hva de betyr.</translation> <translation id="2188751878842439466">{COUNT,plural, =1{høyreparentes}other{# høyreparenteser}}</translation> <translation id="2199994615414171367">Forrige matteuttrykk</translation> -<translation id="2203046366315513658">Reduser verdi</translation> +<translation id="2203046366315513658">Reduser verdien</translation> <translation id="2220529011494928058">Rapportér et problem</translation> <translation id="2223693656926968778">Gjør noe med det aktuelle elementet</translation> <translation id="225732394367814946">Øk talehastigheten</translation> @@ -408,7 +409,7 @@ <translation id="4476183483923481720">ny linje</translation> <translation id="4482330759234983253">Forrige tabell</translation> <translation id="4491109536499578614">Bilde</translation> -<translation id="4517854969512651305">Øk verdi</translation> +<translation id="4517854969512651305">Øk verdien</translation> <translation id="4529987814483543472">Klassisk tastaturoppsett</translation> <translation id="4532633738839459153">{COUNT,plural, =1{skråstrek}other{# skråstreker}}</translation> <translation id="4547556996012970016">Neste overskrift på nivå 5</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Landemerke</translation> <translation id="5683155931978483559">Forrige avmerkingsrute</translation> <translation id="5684277895745049190">Liste</translation> -<translation id="5695831708991916435">De neste hurtigtastene er ikke ChromeVox-spesifikke kommandoer, men er likevel nyttige for å få mest mulig ut av Chrome. -For å navigere fremover gjennom elementer som knapper og linker, trykk på Tab-tasten. For å navigere bakover, trykk på Shift+Tab. -For å skrive i adressefeltet i Chrome-nettleseren (også kalt multifunksjonsfeltet), trykk på Control+L. -For å åpne og automatisk gå til nye faner, trykk på Control+T. Markøren er da i multifunksjonsfeltet. -For å lukke en fane, trykk på Control+W. -For å navigere mellom åpne faner, trykk på Control+Tab. -For å åpne Chrome-menyen, trykk på Alt+F.</translation> <translation id="5700650669149824506">Det finnes ikke tidligere overskrifter på nivå 4.</translation> <translation id="5703716265115423771">volum ned</translation> <translation id="5709192780268610569">Ingen lang beskrivelse</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 9bc111e8..e425c97 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, pole tekstowe hasła</translation> <translation id="1467432559032391204">W lewo</translation> <translation id="1474557363159888097">Brak poprzedniej kotwicy.</translation> +<translation id="1480046233931937785">Autorzy</translation> <translation id="1487494366197411587">W Chromebooku klawisz Wyszukaj znajduje się tuż nad lewym klawiszem Shift.</translation> <translation id="1499041187027566160">zwiększ głośność</translation> <translation id="1502086903961450562">Poprzednia grafika</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Punkt orientacyjny</translation> <translation id="5683155931978483559">Poprzednie pole wyboru</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">Poniższe skróty nie są poleceniami czytnika ChromeVox, ale są bardzo przydatne podczas korzystania z Chrome. -Aby przejść do następnego aktywnego elementu, np. przycisku lub linku, naciśnij klawisz Tab. Aby przejść do poprzedniego elementu, naciśnij Shift + Tab. -Aby otworzyć pole adresu (omnibox), naciśnij Ctrl + L. -Aby otworzyć nową kartę i automatycznie do niej przejść, naciśnij Ctrl + T. Kursor będzie ustawiony w omniboksie. -Aby zamknąć kartę, naciśnij Ctrl + W. -Aby przejść do następnej otwartej karty, naciśnij Ctrl + Tab. -Aby otworzyć menu przeglądarki Chrome, naciśnij Alt + F.</translation> <translation id="5700650669149824506">Brak poprzedniego nagłówka poziomu 4.</translation> <translation id="5703716265115423771">zmniejsz głośność</translation> <translation id="5709192780268610569">Brak długiego opisu</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 4a172447..b886aee 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
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">Caixa de texto de senha <ph name="VALUE" /></translation> <translation id="1467432559032391204">Para a esquerda</translation> <translation id="1474557363159888097">Nenhuma âncora anterior.</translation> +<translation id="1480046233931937785">Créditos</translation> <translation id="1487494366197411587">No Chromebook, a tecla Pesquisa fica imediatamente acima da tecla Shift do lado esquerdo.</translation> <translation id="1499041187027566160">aumentar o volume</translation> <translation id="1502086903961450562">Gráfico anterior</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Ponto de referência</translation> <translation id="5683155931978483559">Caixa de seleção anterior</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">Os próximos atalhos não são comandos do ChromeVox, mas ainda são muito úteis para aproveitar ao máximo o Chrome. -Para avançar por itens acionáveis, como botões e links, pressione a tecla Tab. Para retroceder, pressione Shift+Tab. -Para digitar na caixa de endereço do navegador Chrome, também chamada de omnibox, pressione Control + L. -Para abrir e acessar uma nova guia automaticamente, pressione Control+T. O cursor estará na omnibox. -Para fechar uma guia, pressione Ctrl+W. -Para avançar entre as guias abertas, use Control+Tab. -Para abrir o menu do navegador Chrome, pressione Alt+F.</translation> <translation id="5700650669149824506">Nenhum cabeçalho anterior de nível 4.</translation> <translation id="5703716265115423771">diminuir o volume</translation> <translation id="5709192780268610569">Nenhuma descrição longa</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb index 4f11c0dc..e908308 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-PT.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, caixa de texto da palavra-passe</translation> <translation id="1467432559032391204">Esquerda</translation> <translation id="1474557363159888097">Não existe nenhuma âncora anterior.</translation> +<translation id="1480046233931937785">Créditos</translation> <translation id="1487494366197411587">No Chromebook, a tecla Pesquisar está imediatamente acima da tecla Shift esquerda.</translation> <translation id="1499041187027566160">aumentar o volume</translation> <translation id="1502086903961450562">Gráfico anterior</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Ponto de referência</translation> <translation id="5683155931978483559">Caixa de verificação anterior</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">Os próximos atalhos não são comandos do ChromeVox, mas continuam a ser úteis para tirar o máximo partido do Chrome. -Para avançar em itens acionáveis, como botões e links, prima a tecla Tab. Para recuar, prima Shift + Tab. -Para entrar na caixa de endereço do navegador Chrome, também denominada caixa geral, prima Control + L. -Para abrir e aceder a um novo separador automaticamente, prima Control + T. O cursor está na caixa geral. -Para fechar um separador, prima Control + W. -Para avançar entre separadores abertos, utilize Control + Tab. -Para abrir o menu do navegador Chrome, prima Alt + F.</translation> <translation id="5700650669149824506">Não existe nenhum título de nível 4 anterior.</translation> <translation id="5703716265115423771">diminuir o volume</translation> <translation id="5709192780268610569">Sem descrição longa</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb index 1a9f480..2a53988 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ro.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, casetă text pentru parolă</translation> <translation id="1467432559032391204">Stânga</translation> <translation id="1474557363159888097">Nu există o ancoră anterioară.</translation> +<translation id="1480046233931937785">Mulțumiri</translation> <translation id="1487494366197411587">Pe Chromebook, tasta de căutare se află imediat deasupra tastei Shift din stânga.</translation> <translation id="1499041187027566160">mărește volumul</translation> <translation id="1502086903961450562">Graficul anterior</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Reper</translation> <translation id="5683155931978483559">Caseta de selectare anterioară</translation> <translation id="5684277895745049190">Listă</translation> -<translation id="5695831708991916435">Următoarele câteva comenzi rapide nu sunt comenzi ChromeVox, dar sunt foarte utile pentru a folosi Chrome la potențial maxim. -Pentru a naviga înainte de la un element acționabil la altul, cum ar fi butoane și linkuri, apasă pe tasta Tab. Pentru a naviga înapoi, apasă pe Shift + Tab. -Pentru a accesa caseta de adrese a browserului Chrome, numită și casetă polivalentă, apasă pe Ctrl + L. -Pentru a deschide și a accesa automat o filă nouă, apasă pe Ctrl + T. Cursorul se va afla în caseta polivalentă. -Pentru a închide o filă, apasă pe Ctrl + W. -Pentru a trece înainte de la o filă deschisă la alta, folosește Ctrl + Tab. -Pentru a deschide meniul browserului Chrome, apasă pe Alt + F.</translation> <translation id="5700650669149824506">Nu există un titlu de nivel 4 anterior.</translation> <translation id="5703716265115423771">reduce volumul</translation> <translation id="5709192780268610569">Fără descriere lungă</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb index 4a3df6a..1830ed4 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ru.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">Поле для ввода пароля, <ph name="VALUE" /></translation> <translation id="1467432559032391204">Слева</translation> <translation id="1474557363159888097">Предыдущей привязки нет.</translation> +<translation id="1480046233931937785">Авторы</translation> <translation id="1487494366197411587">На клавиатуре Chromebook клавиша SEARCH расположена слева над клавишей SHIFT.</translation> <translation id="1499041187027566160">увеличить громкость</translation> <translation id="1502086903961450562">Перейти к предыдущей диаграмме</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Ориентир</translation> <translation id="5683155931978483559">Перейти к предыдущему флажку</translation> <translation id="5684277895745049190">Список</translation> -<translation id="5695831708991916435">Следующие быстрые клавиши не относятся к ChromeVox, но они пригодятся вам при работе в браузере Chrome. -Чтобы перемещаться между кнопками, ссылками и другими элементами страниц, нажимайте клавишу TAB. Чтобы вернуться к предыдущему элементу, нажмите SHIFT + TAB. -Чтобы перейти к адресной строке Chrome, также называемой омнибоксом, нажмите CTRL + L. -Чтобы открыть новую вкладку, нажмите CTRL + T. Курсор будет помещен в омнибокс. -Чтобы закрыть вкладку, нажмите CTRL + W. -Чтобы перейти к следующей открытой вкладке, нажмите CTRL + TAB. -Чтобы открыть меню браузера Chrome, нажмите ALT + F.</translation> <translation id="5700650669149824506">Предыдущего заголовка четвертого уровня нет.</translation> <translation id="5703716265115423771">уменьшить громкость</translation> <translation id="5709192780268610569">Подробного описания нет</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 1e01db1d..5abd8ff 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, textové pole pre heslo</translation> <translation id="1467432559032391204">Doľava</translation> <translation id="1474557363159888097">Žiadne predchádzajúce ukotvenie</translation> +<translation id="1480046233931937785">Poďakovanie</translation> <translation id="1487494366197411587">Kláves Hľadať sa na Chromebooku nachádza priamo nad ľavým klávesom Shift.</translation> <translation id="1499041187027566160">zvýšenie hlasitosti</translation> <translation id="1502086903961450562">Predchádzajúci obrázok</translation> @@ -423,7 +424,7 @@ <translation id="461613135510474570">Veta</translation> <translation id="463135993322337640">Ak chcete získať ďalšie informácie o novinkách, stlačte tlačidlá ChromeVox + O + N</translation> <translation id="4647836961514597010">Výber farieb</translation> -<translation id="4652110509054054146">Pomocou kombinácie klávesov Hľadať + šípka doľava alebo doprava prejdete na začiatok alebo na koniec, pomocou kombinácie Hľadať + Ctrl + šípka doľava alebo doprava prejdete na začiatok alebo na koniec pomocou klávesa Ctrl a pomocou kombinácie klávesov Hľadať + šípka nahor alebo nadol prejdete hore alebo dole.</translation> +<translation id="4652110509054054146">Kombinácia klávesov Hľadať + šípka doľava alebo doprava slúži ako Home alebo End, kombinácia Hľadať + Ctrl + šípka doľava alebo doprava funguje ako Ctrl Home alebo Ctrl End, kombinácia klávesov Hľadať + šípka nahor alebo nadol slúži ako Page Up alebo Page Down.</translation> <translation id="4660783501463101648">Klasická verzia bola odstránená. Prepínač na klávesnici umožňujúci prepnúť späť na verziu ChromeVox Classic bol odstránený.</translation> <translation id="4661075872484491155">strom</translation> <translation id="4668929960204016307">,</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Orientačný bod</translation> <translation id="5683155931978483559">Predchádzajúce začiarkavacie políčko</translation> <translation id="5684277895745049190">Zoznam</translation> -<translation id="5695831708991916435">Nasledujúce skratky nie sú príkazy čítačky ChromeVox, ale sú stále veľmi užitočné a pomôžu vám získať z Chromu maximum. -Ak chcete prechádzať dopredu medzi klikateľnými položkami, ako sú tlačidlá a odkazy, stláčajte kláves Tab. Ak chcete prechádzať dozadu, stláčajte klávesy Shift + Tab. -Ak chcete aktivovať panel s adresou prehliadača Chrome (nazývaný tiež všeobecné pole), stlačte klávesy Control + L. -Ak chcete otvoriť novú kartu a automaticky na ňu prejsť, stlačte klávesy Ctrl + T. Kurzor sa presunie do všeobecného poľa. -Ak chcete zavrieť kartu, stlačte kombináciu klávesov Ctrl + W. -Ak chcete prechádzať dopredu medzi otvorenými kartami, stlačte kombináciu klávesov Ctrl + Tab. -Ak chcete otvoriť ponuku prehliadača Chrome, stlačte kombináciu klávesov Alt + F.</translation> <translation id="5700650669149824506">Žiaden predchádzajúci nadpis 4. úrovne</translation> <translation id="5703716265115423771">zníženie hlasitosti</translation> <translation id="5709192780268610569">Žiadny dlhý popis</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 000ee5b..b8a7eeb 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">Polje z besedilom za geslo z vrednostjo <ph name="VALUE" /></translation> <translation id="1467432559032391204">V levo</translation> <translation id="1474557363159888097">Ni prejšnjega sidra.</translation> +<translation id="1480046233931937785">Seznam sodelujočih</translation> <translation id="1487494366197411587">Pri Chromebookih je tipka za iskanje prva tipka nad levo tipko Shift.</translation> <translation id="1499041187027566160">povečanje glasnosti</translation> <translation id="1502086903961450562">Prejšnja grafika</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Mejnik</translation> <translation id="5683155931978483559">Prejšnje potrditveno polje</translation> <translation id="5684277895745049190">Seznam</translation> -<translation id="5695831708991916435">Naslednje bližnjične tipke niso ukazi za ChromeVox, ampak so kljub temu zelo uporabne, če želite najbolje izkoristiti Chrome. -Če se želite pomikati naprej med elementi, ki omogočajo dejanja, na primer med gumbi in povezavami, pritisnite tabulatorko. Če se želite pomikati nazaj, pritisnite tipko Shift in tabulatorko. -Če želite izbrati Chromovo naslovno vrstico, pritisnite tipko Control in črko L. -Če želite odpreti in samodejno izbrati novi zavihek, pritisnite tipko Control in črko T. Kazalec se bo pomaknil v naslovno vrstico. -Če želite zapreti zavihek, pritisnite tipko Control in črko W. -Če se želite pomikati med odprtimi zavihki, uporabite kombinacijo tipke Control in tabulatorke. -Če želite odpreti meni brskalnika Chrome, pritisnite tipko Alt in črko F.</translation> <translation id="5700650669149824506">Ni prejšnjega naslova na ravni 4.</translation> <translation id="5703716265115423771">zmanjšanje glasnosti</translation> <translation id="5709192780268610569">Ni dolgega opisa</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb index c77d21b02..33b28f09 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sr.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, оквир за лозинку</translation> <translation id="1467432559032391204">Улево</translation> <translation id="1474557363159888097">Нема претходног сидра.</translation> +<translation id="1480046233931937785">Заслуге</translation> <translation id="1487494366197411587">Тастер за претрагу на Chromebook-у се налази одмах изнад левог тастера Shift.</translation> <translation id="1499041187027566160">појачај звук</translation> <translation id="1502086903961450562">Претходна слика</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Обележје</translation> <translation id="5683155931978483559">Претходно поље за потврду</translation> <translation id="5684277895745049190">Листа</translation> -<translation id="5695831708991916435">Следећих пар пречица нису ChromeVox команде, али су и даље веома корисне ако желите да користите Chrome на најбољи начин. -Да бисте се кретали унапред кроз ставке за одређене радње, попут дугмади и линкова, притисните тастер Tab. Да бисте се кретали уназад, притисните Shift + Tab. -Да бисте ушли у оквир за адресу Chrome прегледача, који се зове и омнибокс, притисните Control + L. -Да бисте аутоматски отворили нову картицу и отишли на њу, притисните Control + T. Курсор ће бити у омнибоксу. -Да бисте затворили картицу, притисните Control + W. -Да бисте се кретали унапред по отвореним картицама, користите Control + Tab. -Да бисте отворили мени Chrome прегледача, притисните Alt + F.</translation> <translation id="5700650669149824506">Нема претходног заглавља 4. нивоа.</translation> <translation id="5703716265115423771">утишај звук</translation> <translation id="5709192780268610569">Нема дугог описа</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb index 9d8365f..0f79b363 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sv.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, lösenordsruta</translation> <translation id="1467432559032391204">Vänster</translation> <translation id="1474557363159888097">Det finns inget föregående ankare.</translation> +<translation id="1480046233931937785">Medverkande</translation> <translation id="1487494366197411587">På Chromebook sitter söktangenten precis ovanför den vänstra Skift-tangenten.</translation> <translation id="1499041187027566160">höj volymen</translation> <translation id="1502086903961450562">Föregående bild</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Landmärke</translation> <translation id="5683155931978483559">Föregående kryssruta</translation> <translation id="5684277895745049190">Lista</translation> -<translation id="5695831708991916435">De följande kortkommandona är inte ChromeVox-kommandon, men de är fortfarande mycket användbara för att få ut så mycket som möjligt av Chrome. -Navigera framåt genom objekt som knappar och länkar genom att trycka på tabbtangenten. Navigera bakåt genom att trycka på Skift + tabbtangenten. -Öppna adressfältet i Chrome genom att trycka på Ctrl + L. -Öppna en ny flik automatiskt genom att trycka på Ctrl + T. Markören kommer att vara i adressfältet. -Stäng en flik genom att trycka Ctrl + W. -Flytta framåt mellan öppna flikar genom att trycka på Ctrl + tabbtangenten. -Öppna Chrome-menyn genom att trycka på Alt + F.</translation> <translation id="5700650669149824506">Det finns ingen föregående rubrik på nivå 4.</translation> <translation id="5703716265115423771">sänk volymen</translation> <translation id="5709192780268610569">Det finns ingen lång beskrivning</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 6f25768..2042cb9 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb
@@ -53,6 +53,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, kikasha maandishi cha nenosiri</translation> <translation id="1467432559032391204">Kushoto</translation> <translation id="1474557363159888097">Hakuna nanga iliyotangulia.</translation> +<translation id="1480046233931937785">Mikopo</translation> <translation id="1487494366197411587">Kitufe cha Tafuta kwenye Chromebook kinapatikana juu ya kitufe cha Shift cha kushoto.</translation> <translation id="1499041187027566160">ongeza sauti</translation> <translation id="1502086903961450562">Mchoro uliotangulia</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Kivutio</translation> <translation id="5683155931978483559">Kisanduku cha kuteua kilichotangulia</translation> <translation id="5684277895745049190">Orodha</translation> -<translation id="5695831708991916435">Njia chache za mikato zinazofuata si amri za ChromeVox, lakini bado ni muhimu kwa kutumia Chrome kikamilifu. -Ili kusogeza mbele kupitia vipengee vinavyotekelezeka kama vile vitufe na viungo, bonyeza kitufe cha Kichupo. Ili kurudi nyuma, bonyeza Shift+Tab. -Ili kutumia upau wa kutafutia wa kivinjari cha Chrome, ambao pia unaitwa sanduku kuu, bonyeza Control + L. -Ili kufungua na kuenda kwenye kichupo kipya kiotomatiki, bonyeza Control+T. Kiashiria chako kitakuwa katika sanduku kuu. -Ili kufunga kichupo, bonyeza Control+W. -Ili kusonga mbele kati ya vichupo vilivyo wazi, tumia Control+Tab. -Ili kufungua menyu ya kivinjari cha Chrome, bonyeza Alt+F.</translation> <translation id="5700650669149824506">Hakuna kichwa cha ngazi ya 4 kilichotangulia.</translation> <translation id="5703716265115423771">punguza sauti</translation> <translation id="5709192780268610569">Hakuna maelezo marefu</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 0730e52f..452e75b 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, கடவுச்சொல் உரைப் பெட்டி</translation> <translation id="1467432559032391204">இடது</translation> <translation id="1474557363159888097">முந்தைய ஆங்கர் இல்லை.</translation> +<translation id="1480046233931937785">பங்களித்தவர்கள்</translation> <translation id="1487494366197411587">Chromebook இல், தேடல் விசையானது இடதுபுற ஷிஃப்ட் விசைக்கு மேலே இருக்கும்.</translation> <translation id="1499041187027566160">ஒலியளவை அதிகரிக்கும்</translation> <translation id="1502086903961450562">முந்தைய கிராஃபிக்</translation> @@ -424,7 +425,7 @@ <translation id="461613135510474570">வாக்கியம்</translation> <translation id="463135993322337640">புதிய அம்சங்களைப் பார்க்க, ChromeVox o, n ஆகியவற்றை அழுத்தவும்</translation> <translation id="4647836961514597010">வண்ணத் தேர்வி</translation> -<translation id="4652110509054054146">Home அல்லது Endக்காக, Search Left அல்லது Rightஐயும் Control Home அல்லது Endக்காக, Search Control Left அல்லது Rightஐயும் Page Up அல்லது Downக்காக, Search Up அல்லது Downஐயும் பயன்படுத்தவும்.</translation> +<translation id="4652110509054054146">Home அல்லது Endக்கு Search Left அல்லது Rightஐயும், Control Home அல்லது Endக்கு Search Control Left அல்லது Rightஐயும், Page Up அல்லது Downக்கு Search Up அல்லது Downஐயும் பயன்படுத்தவும்.</translation> <translation id="4660783501463101648">கிளாசிக் அகற்றப்பட்டது. ChromeVox கிளாசிக்கிற்கு மீண்டும் மாறுவதற்கான விசைப்பலகை நிலைமாற்றி அகற்றப்பட்டது.</translation> <translation id="4661075872484491155">tree</translation> <translation id="4668929960204016307">,</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">லேண்ட்மார்க்</translation> <translation id="5683155931978483559">முந்தைய செக் பாக்ஸ்</translation> <translation id="5684277895745049190">பட்டியல்</translation> -<translation id="5695831708991916435">அடுத்துவரும் சில குறுக்குவழிகள் ChromeVox கட்டளைகள் இல்லை, எனினும் அவை Chromeஐச் சிறப்பாகப் பயன்படுத்த பயனுள்ளவையாக இருக்கும். -பொத்தான்கள், இணைப்புகள் போன்ற செயல்படக்கூடியவற்றில் அடுத்தடுத்து செல்ல, டேப் விசையை அழுத்தவும். பின்செல்ல, ஷிஃப்ட்+டேப் விசைகளை அழுத்தவும். -சர்வபுலம் என்றழைக்கப்படும் Chrome உலாவியின் முகவரிப் பட்டிக்குச் செல்ல, கன்ட்ரோல் + L விசைகளை அழுத்தவும். -தானாகவே புதிய தாவலைத் திறந்து, அதற்குச் செல்ல, கன்ட்ரோல்+T விசைகளை அழுத்தவும். உங்கள் கர்சர் சர்வபுலத்தில் இருக்கும். -தாவலை மூட, கன்ட்ரோல்+W விசைகளை அழுத்தவும். -திறந்துள்ள தாவல்களில் அடுத்தடுத்து செல்ல, கன்ட்ரோல்+டேப் விசைகளைப் பயன்படுத்தவும். -Chrome உலாவி மெனுவைத் திறக்க, ஆல்ட்+F விசைகளை அழுத்தவும்.</translation> <translation id="5700650669149824506">முந்தைய 4 ஆம் நிலை தலைப்பு இல்லை.</translation> <translation id="5703716265115423771">ஒலியளவைக் குறைக்கும்</translation> <translation id="5709192780268610569">நீண்ட விளக்கம் இல்லை</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 d5907d5..07c73cd 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, పాస్వర్డ్ వచన పెట్టె</translation> <translation id="1467432559032391204">ఎడమ</translation> <translation id="1474557363159888097">మునుపటి యాంకర్ లేదు.</translation> +<translation id="1480046233931937785">క్రెడిట్లు</translation> <translation id="1487494366197411587">Chromebookలో, శోధన కీ సరిగ్గా ఎడమ Shift కీ పైనే ఉంటుంది.</translation> <translation id="1499041187027566160">వాల్యూమ్ పెంచుతుంది</translation> <translation id="1502086903961450562">మునుపటి గ్రాఫిక్</translation> @@ -549,13 +550,6 @@ <translation id="5682113568322255809">మైలురాయి</translation> <translation id="5683155931978483559">మునుపటి తనిఖీపెట్టె</translation> <translation id="5684277895745049190">జాబితా</translation> -<translation id="5695831708991916435">తదుపరి అందించిన కొన్ని సత్వరమార్గాలు ChromeVox ఆదేశాలు కావు, అయినప్పటికీ Chrome నుండి అత్యధిక ప్రయోజనాలు పొందడంలో చాలా ఉపయోగకరంగా ఉంటాయి. -బటన్లు మరియు లింక్ల వంటి చర్య చేయదగిన అంశాల్లో ముందుకు నావిగేట్ చేయడానికి, Tab కీని నొక్కండి. వెనుకకు నావిగేట్ చేయడానికి, Shift+Tab నొక్కండి. -ఓమ్నిపెట్టెగా కూడా పిలువబడే Chrome బ్రౌజర్ చిరునామా పెట్టెలోకి ప్రవేశించడానికి, Control + L నొక్కండి. -స్వయంచాలకంగా కొత్త ట్యాబ్ను తెరిచి, అందులోకి ప్రవేశించడానికి Control+T నొక్కండి. మీ కర్సర్ ఓమ్నిపెట్టెలో ఉంటుంది. -ట్యాబ్ను మూసివేయడానికి, Control+W నొక్కండి. -తెరిచిన ట్యాబ్ల్లో ముందుకు వెళ్లడానికి, Control+Tab ఉపయోగించండి. -Chrome బ్రౌజర్ మెనును తెరవడానికి, Alt+F నొక్కండి.</translation> <translation id="5700650669149824506">మునుపటి స్థాయి 4 శీర్షిక లేదు.</translation> <translation id="5703716265115423771">వాల్యూమ్ తగ్గిస్తుంది</translation> <translation id="5709192780268610569">పెద్ద వివరణ లేదు</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 ce8ae11..a96a542 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652">ช่องข้อความรหัสผ่าน <ph name="VALUE" /></translation> <translation id="1467432559032391204">ซ้าย</translation> <translation id="1474557363159888097">ไม่มีการเชื่อมโยงก่อนหน้า</translation> +<translation id="1480046233931937785">เครดิต</translation> <translation id="1487494366197411587">บน Chromebook ปุ่มค้นหาจะอยู่เหนือปุ่ม Shift ด้านซ้าย</translation> <translation id="1499041187027566160">เพิ่มระดับเสียง</translation> <translation id="1502086903961450562">กราฟิกก่อนหน้า</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">จุดสังเกต</translation> <translation id="5683155931978483559">ช่องทำเครื่องหมายก่อนหน้า</translation> <translation id="5684277895745049190">รายการ</translation> -<translation id="5695831708991916435">แป้นพิพม์ลัดต่อไปนี้ไม่ใช่คำสั่ง ChromeVox แต่มีประโยชน์มากสำหรับการใช้ Chrome -หากต้องการเลื่อนไปข้างหน้าผ่านรายการที่ใช้งานได้ เช่น ปุ่มและลิงก์ ให้กดปุ่ม Tab และหากต้องการย้อนกลับ ให้กด Shift+Tab -หากต้องการป้อนข้อมูลในช่องที่อยู่เบราว์เซอร์บน Chrome ให้กด Control + L เพื่อเรียกแถบอเนกประสงค์ -หากต้องการเปิดและไปที่แท็บใหม่อัตโนมัติ ให้กด Control+T เคอร์เซอร์ของคุณจะอยู่ในแถบอเนกประสงค์ -หากต้องการปิดแท็บ ให้กด Control+W -หากต้องการเลื่อนไปข้างหน้าระหว่างแท็บที่เปิดอยู่ ให้ใช้ Control+Tab -หากต้องการเปิดเมนูเบราว์เซอร์ Chrome ให้กด Alt+F</translation> <translation id="5700650669149824506">ไม่มีส่วนหัวระดับ 4 ก่อนหน้า</translation> <translation id="5703716265115423771">ลดระดับเสียง</translation> <translation id="5709192780268610569">ไม่มีคำอธิบายแบบยาว</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb index 694303c..52b3fa66 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_tr.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, şifre metin kutusu</translation> <translation id="1467432559032391204">Sola</translation> <translation id="1474557363159888097">Önceki bağlantı yok.</translation> +<translation id="1480046233931937785">Katkıda Bulunanlar</translation> <translation id="1487494366197411587">Chromebook'ta, Arama tuşu sol Üst Karakter tuşunun hemen üzerindedir.</translation> <translation id="1499041187027566160">sesi aç</translation> <translation id="1502086903961450562">Önceki grafik</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Önemli Nokta</translation> <translation id="5683155931978483559">Önceki onay kutusu</translation> <translation id="5684277895745049190">Liste</translation> -<translation id="5695831708991916435">Sonraki birkaç kısayol ChromeVox komutu değildir, ancak yine de Chrome'dan en iyi şekilde yararlanmanıza çok yardımcı olur. -Düğmeler ve bağlantılar gibi işlem yapılabilir öğelerde ileriye doğru gezinmek için Sekme tuşuna basın. Geriye gitmek için Üst Karakter+Sekme tuşlarına basın. -Çok amaçlı adres çubuğu olarak adlandırılan Chrome tarayıcı adres kutusuna girmek için Control+L tuşlarına basın. -Yeni bir sekme açmak ve otomatik olarak o sekmeye gitmek için Control+T tuşlarına basın. İmleciniz çok amaçlı adres çubuğuna yerleştirilir. -Bir sekmeyi kapatmak için Control+W tuşlarına basın. -Açık sekmeler arasında ileriye doğru gitmek için Control+Sekme tuşlarını kullanın. -Chrome tarayıcı menüsünü açmak için Alt+F tuşlarına basın.</translation> <translation id="5700650669149824506">Önceki 4. düzey başlık yok.</translation> <translation id="5703716265115423771">sesi kıs</translation> <translation id="5709192780268610569">Uzun açıklama yok</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 f5fa46b..f76273d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, текстове поле пароля</translation> <translation id="1467432559032391204">Ліворуч</translation> <translation id="1474557363159888097">Немає попередньої прив’язки.</translation> +<translation id="1480046233931937785">Учасники</translation> <translation id="1487494366197411587">На Chromebook клавіша Search розташована прямо над лівою клавішею Shift.</translation> <translation id="1499041187027566160">збільшити гучність</translation> <translation id="1502086903961450562">Попереднє зображення</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">Орієнтир</translation> <translation id="5683155931978483559">Попередній прапорець</translation> <translation id="5684277895745049190">Список</translation> -<translation id="5695831708991916435">Комбінації клавіш нижче не є командами в ChromeVox, але вони дуже зручні для продуктивної роботи в Chrome. -Щоб переходити між інтерактивними елементами, як-от кнопками чи посиланнями, натискайте клавішу Tab (уперед) або Shift+Tab (назад). -Щоб перейти до адресного рядка веб-переглядача Chrome (універсальне вікно пошуку), натисніть Control+L. -Щоб відкрити нову вкладку й автоматично на неї перейти, натисніть Control+T. Курсор буде в універсальному вікні пошуку. -Щоб закрити вкладку, натисніть Control+W. -Щоб перейти на наступну відкриту вкладку, натисніть Control+Tab. -Щоб відкрити меню веб-переглядача Chrome, натисніть Alt+F.</translation> <translation id="5700650669149824506">Немає попереднього заголовка рівня 4.</translation> <translation id="5703716265115423771">зменшити гучність</translation> <translation id="5709192780268610569">Немає докладного опису</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 aa4908f..0983f51d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />, hộp văn bản nhập mật khẩu</translation> <translation id="1467432559032391204">Trái</translation> <translation id="1474557363159888097">Không có ký tự liên kết trước nào.</translation> +<translation id="1480046233931937785">Tín dụng</translation> <translation id="1487494366197411587">Trên Chromebook, phím Tìm kiếm ở ngay phía trên phím Shift bên trái.</translation> <translation id="1499041187027566160">tăng âm lượng</translation> <translation id="1502086903961450562">Hình trước</translation> @@ -424,7 +425,7 @@ <translation id="461613135510474570">Câu</translation> <translation id="463135993322337640">Bạn có thể tìm hiểu tính năng mới bằng cách nhấn ChromeVox, o, n</translation> <translation id="4647836961514597010">Công cụ chọn màu</translation> -<translation id="4652110509054054146">Sử dụng tổ hợp phím Tìm kiếm Mũi tên trái hoặc phải để chuyển lên đầu dòng hoặc xuống cuối dòng, Tìm kiếm Control Mũi tên trái hoặc phải để chuyển lên đầu trang hoặc xuống cuối trang, Tìm kiếm Mũi tên lên hoặc xuống để chuyển lên một trang hoặc xuống một trang.</translation> +<translation id="4652110509054054146">Sử dụng tổ hợp phím Tìm kiếm Mũi tên trái hoặc phải để thay thế phím Home hoặc End, Tìm kiếm Control Mũi tên trái hoặc Mũi tên phải để thay thế phím Control Home hoặc End, Tìm kiếm Mũi tên lên hoặc xuống để thay thế phím Page Up hoặc Down.</translation> <translation id="4660783501463101648">Đã xóa phiên bản cổ điển. Phím chuyển đổi trên bàn phím để quay về phiên bản ChromeVox cổ điển đã bị xóa.</translation> <translation id="4661075872484491155">cây</translation> <translation id="4668929960204016307">,</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">Mốc</translation> <translation id="5683155931978483559">Hộp kiểm trước</translation> <translation id="5684277895745049190">Danh sách</translation> -<translation id="5695831708991916435">Một số phím tắt tiếp theo không phải là các phím lệnh của ChromeVox nhưng chúng vẫn rất hữu ích để khai thác tối đa lợi ích của Chrome. -Để chuyển tiếp qua các mục có thể nhấp vào như nút và liên kết, nhấn phím Tab. Để quay lại, nhấn phím Shift+Tab. -Để tới hộp địa chỉ của trình duyệt Chrome, còn được gọi là thanh địa chỉ, nhấn phím Control + L. -Để mở và tự động chuyển sang tab mới, nhấn phím Control+T. Con trỏ của bạn sẽ nằm trong thanh địa chỉ. -Để đóng tab, nhấn phím Control+W. -Để chuyển tiếp giữa các tab đang mở, sử dụng phím Control+Tab. -Để mở menu của trình duyệt Chrome, nhấn phím Alt+F.</translation> <translation id="5700650669149824506">Không có tiêu đề cấp 4 trước nào.</translation> <translation id="5703716265115423771">giảm âm lượng</translation> <translation id="5709192780268610569">Không có mô tả dài nào</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb index af1e556b..5c3644728 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />,密码文本框</translation> <translation id="1467432559032391204">向左</translation> <translation id="1474557363159888097">不存在上一个定位点。</translation> +<translation id="1480046233931937785">鸣谢</translation> <translation id="1487494366197411587">在 Chromebook 上,搜索键位于左侧 Shift 键的正上方。</translation> <translation id="1499041187027566160">调高音量</translation> <translation id="1502086903961450562">上一个图形</translation> @@ -555,13 +556,6 @@ <translation id="5682113568322255809">地标</translation> <translation id="5683155931978483559">上一个复选框</translation> <translation id="5684277895745049190">列表</translation> -<translation id="5695831708991916435">以下几个快捷键并不是 ChromeVox 命令,但它们非常实用,有助于您充分利用 Chrome。 -要移到下一个可操作项(例如按钮和链接),请按 Tab 键。要移到前一个可操作项,请按 Shift+Tab。 -要进入 Chrome 浏览器的地址框(也称为多功能框),请按 Ctrl+L。 -要自动打开并转到新标签页,请按 Ctrl+T。光标将位于多功能框中。 -要关闭标签页,请按 Ctrl+W。 -要转到下一个打开的标签页,请按 Ctrl+Tab。 -要打开 Chrome 浏览器菜单,请按 Alt+F。</translation> <translation id="5700650669149824506">不存在上一个4级标题。</translation> <translation id="5703716265115423771">调低音量</translation> <translation id="5709192780268610569">无详细说明</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 cf66861..03ecde6 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
@@ -54,6 +54,7 @@ <translation id="1452236308086741652"><ph name="VALUE" />,密碼文字方塊</translation> <translation id="1467432559032391204">向左</translation> <translation id="1474557363159888097">沒有上一個錨點。</translation> +<translation id="1480046233931937785">製作人員名單</translation> <translation id="1487494366197411587">Chromebook 的搜尋鍵位於左側 Shift 鍵的正上方。</translation> <translation id="1499041187027566160">調高音量</translation> <translation id="1502086903961450562">上一個圖形</translation> @@ -556,13 +557,6 @@ <translation id="5682113568322255809">地標</translation> <translation id="5683155931978483559">上一個核取方塊</translation> <translation id="5684277895745049190">清單</translation> -<translation id="5695831708991916435">以下這些快速鍵並非 ChromeVox 指令,但仍然很實用,可協助您善用 Chrome。 -如要前往下一個操作項目 (例如按鈕和連結),請按下 Tab 鍵;如要返回上一個操作項目,請按下 Shift + Tab 鍵。 -如要進入 Chrome 瀏覽器的網址方塊 (又稱為網址列),請按下 Control + L 鍵。 -如要自動開啟並前往新分頁,請按下 Control + T 鍵 (游標會移至網址列)。 -如要關閉分頁,請按下 Control + W 鍵。 -如要移至下一個開啟的分頁,請使用 Control + Tab 鍵。 -如要開啟 Chrome 瀏覽器選單,請按下 Alt + F 鍵。</translation> <translation id="5700650669149824506">沒有上一個第 4 階標題。</translation> <translation id="5703716265115423771">調低音量</translation> <translation id="5709192780268610569">無詳細說明</translation>
diff --git a/chrome/browser/resources/media_router/OWNERS b/chrome/browser/resources/media_router/OWNERS index c2e2660..2d837de 100644 --- a/chrome/browser/resources/media_router/OWNERS +++ b/chrome/browser/resources/media_router/OWNERS
@@ -1,5 +1,4 @@ amp@chromium.org -apacible@chromium.org imcheng@chromium.org mfoltz@chromium.org
diff --git a/chrome/browser/resources/print_preview/new/BUILD.gn b/chrome/browser/resources/print_preview/new/BUILD.gn index f412b962..9d50917 100644 --- a/chrome/browser/resources/print_preview/new/BUILD.gn +++ b/chrome/browser/resources/print_preview/new/BUILD.gn
@@ -37,7 +37,6 @@ ":provisional_destination_resolver", ":scaling_settings", ":settings_behavior", - ":settings_section_behavior", ":settings_select", ":state", ] @@ -64,6 +63,7 @@ ":scaling_settings", ":state", "..:cloud_print_interface", + "..:metrics", "..:native_layer", "../data:destination", "../data:destination_store", @@ -91,7 +91,6 @@ js_library("destination_settings") { deps = [ ":destination_dialog", - ":settings_section_behavior", ":state", "../data:destination", "../data:destination_store", @@ -106,7 +105,6 @@ deps = [ ":input_behavior", ":settings_behavior", - ":settings_section_behavior", "../data:document_info", "//ui/webui/resources/js:load_time_data", ] @@ -116,28 +114,24 @@ deps = [ ":number_settings_section", ":settings_behavior", - ":settings_section_behavior", ] } js_library("layout_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ] } js_library("color_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ] } js_library("media_size_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ":settings_select", ] } @@ -145,14 +139,12 @@ js_library("margins_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ] } js_library("dpi_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ":settings_select", "//ui/webui/resources/js:cr", "//ui/webui/resources/js:load_time_data", @@ -162,7 +154,6 @@ js_library("pages_per_sheet_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ] } @@ -170,7 +161,6 @@ deps = [ ":number_settings_section", ":settings_behavior", - ":settings_section_behavior", "../data:document_info", ] } @@ -178,7 +168,6 @@ js_library("other_options_settings") { deps = [ ":settings_behavior", - ":settings_section_behavior", ] } @@ -186,14 +175,13 @@ deps = [ ":advanced_settings_dialog", ":settings_behavior", - ":settings_section_behavior", "../data:destination", ] } js_library("more_settings") { deps = [ - ":settings_section_behavior", + "..:metrics", "//ui/webui/resources/js:i18n_behavior", ] } @@ -219,12 +207,6 @@ ] } -js_library("settings_section_behavior") { - deps = [ - "//ui/webui/resources/js:cr", - ] -} - js_library("input_behavior") { deps = [ "//ui/webui/resources/js:cr",
diff --git a/chrome/browser/resources/print_preview/new/advanced_options_settings.html b/chrome/browser/resources/print_preview/new/advanced_options_settings.html index ad3f6a7b..77ac579 100644 --- a/chrome/browser/resources/print_preview/new/advanced_options_settings.html +++ b/chrome/browser/resources/print_preview/new/advanced_options_settings.html
@@ -7,7 +7,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-advanced-options-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/advanced_options_settings.js b/chrome/browser/resources/print_preview/new/advanced_options_settings.js index 2d6ab8d..b47ab004 100644 --- a/chrome/browser/resources/print_preview/new/advanced_options_settings.js +++ b/chrome/browser/resources/print_preview/new/advanced_options_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-advanced-options-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { disabled: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/app.html b/chrome/browser/resources/print_preview/new/app.html index e79b6be5..1209ecb 100644 --- a/chrome/browser/resources/print_preview/new/app.html +++ b/chrome/browser/resources/print_preview/new/app.html
@@ -3,7 +3,9 @@ <link rel="import" href="chrome://resources/html/event_tracker.html"> <link rel="import" href="chrome://resources/html/util.html"> <link rel="import" href="chrome://resources/html/webui_listener_tracker.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/iron-collapse/iron-collapse.html"> <link rel="import" href="../cloud_print_interface.html"> +<link rel="import" href="../metrics.html"> <link rel="import" href="../native_layer.html"> <link rel="import" href="../data/destination.html"> <link rel="import" href="../data/destination_store.html"> @@ -67,8 +69,7 @@ <print-preview-model id="model" settings="{{settings}}" destination="{{destination_}}" document-info="{{documentInfo_}}" recent-destinations="{{recentDestinations_}}" - on-save-sticky-settings="onSaveStickySettings_" - on-settings-availability-updated="updateSettingsVisibility_"> + on-save-sticky-settings="onSaveStickySettings_"> </print-preview-model> <div id="sidebar" on-setting-valid-changed="onSettingValidChanged_"> <print-preview-header destination="[[destination_]]" state="[[state]]" @@ -80,67 +81,69 @@ <print-preview-destination-settings id="destinationSettings" destination="[[destination_]]" destination-store="[[destinationStore_]]" - invitation-store="[[invitationStore_]]" class="settings-section" + invitation-store="[[invitationStore_]]" disabled="[[controlsDisabled_]]" state="[[state]]" recent-destinations="[[recentDestinations_]]" user-info="{{userInfo_}}" available> </print-preview-destination-settings> <print-preview-pages-settings settings="{{settings}}" document-info="[[documentInfo_]]" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.pages.available]]"> + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.pages.available]]"> </print-preview-pages-settings> <print-preview-copies-settings settings="{{settings}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.copies.available]]"> + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.copies.available]]"> </print-preview-copies-settings> <print-preview-layout-settings settings="{{settings}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.layout.available]]"> + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.layout.available]]"> </print-preview-layout-settings> <print-preview-color-settings settings="{{settings}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.color.available]]"> - </print-preview-color-settings> - <print-preview-more-settings settings-expanded="{{settingsExpanded_}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[shouldShowMoreSettings_]]"> - </print-preview-more-settings> - <print-preview-media-size-settings settings="{{settings}}" - capability="[[destination_.capabilities.printer.media_size]]" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.mediaSize.available]]" collapsible> - </print-preview-media-size-settings> - <print-preview-margins-settings settings="{{settings}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.margins.available]]" collapsible> - </print-preview-margins-settings> - <print-preview-dpi-settings settings="{{settings}}" - capability="[[destination_.capabilities.printer.dpi]]" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.dpi.available]]" collapsible> - </print-preview-dpi-settings> - <template is="dom-if" if="[[showPagesPerSheet_]]"> - <print-preview-pages-per-sheet-settings settings="{{settings}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.pagesPerSheet.available]]" - collapsible hidden> - </print-preview-pages-per-sheet-settings> - </template> - <print-preview-scaling-settings settings="{{settings}}" - document-info="[[documentInfo_]]" class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.scaling.available]]" collapsible> - </print-preview-scaling-settings> - <print-preview-other-options-settings settings="{{settings}}" - class="settings-section" disabled="[[controlsDisabled_]]" - available="[[settings.otherOptions.available]]" collapsible> - </print-preview-other-options-settings> - <print-preview-advanced-options-settings settings="{{settings}}" - class="settings-section" - destination="[[destination_]]" disabled="[[controlsDisabled_]]" - available="[[settings.vendorItems.available]]" collapsible> - </print-preview-advanced-options-settings> + hidden$="[[!settings.color.available]]"> + </print-preview-color-settings> + <print-preview-more-settings + settings-expanded-by-user="{{settingsExpandedByUser_}}" + disabled="[[controlsDisabled_]]" + hidden$="[[!shouldShowMoreSettings_]]"> + </print-preview-more-settings> + <iron-collapse id="moreSettings" + opened="[[shouldExpandSettings_( + settingsExpandedByUser_, shouldShowMoreSettings_)]]"> + <print-preview-media-size-settings settings="{{settings}}" + capability="[[destination_.capabilities.printer.media_size]]" + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.mediaSize.available]]"> + </print-preview-media-size-settings> + <print-preview-margins-settings settings="{{settings}}" + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.margins.available]]"> + </print-preview-margins-settings> + <print-preview-dpi-settings settings="{{settings}}" + capability="[[destination_.capabilities.printer.dpi]]" + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.dpi.available]]"> + </print-preview-dpi-settings> + <template is="dom-if" if="[[showPagesPerSheet_]]"> + <print-preview-pages-per-sheet-settings settings="{{settings}}" + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.pagesPerSheet.available]]"> + </print-preview-pages-per-sheet-settings> + </template> + <print-preview-scaling-settings settings="{{settings}}" + document-info="[[documentInfo_]]" disabled="[[controlsDisabled_]]" + hidden$="[[!settings.scaling.available]]"> + </print-preview-scaling-settings> + <print-preview-other-options-settings settings="{{settings}}" + disabled="[[controlsDisabled_]]" + hidden$="[[!settings.otherOptions.available]]"> + </print-preview-other-options-settings> + <print-preview-advanced-options-settings settings="{{settings}}" + destination="[[destination_]]" disabled="[[controlsDisabled_]]" + hidden$="[[!settings.vendorItems.available]]"> + </print-preview-advanced-options-settings> + </iron-collapse> <if expr="not chromeos"> <print-preview-link-container destination="[[destination_]]" app-kiosk-mode="[[isInAppKioskMode_]]"
diff --git a/chrome/browser/resources/print_preview/new/app.js b/chrome/browser/resources/print_preview/new/app.js index 65da13c..83ccdad 100644 --- a/chrome/browser/resources/print_preview/new/app.js +++ b/chrome/browser/resources/print_preview/new/app.js
@@ -107,11 +107,10 @@ }, /** @private {boolean} */ - settingsExpanded_: { + settingsExpandedByUser_: { type: Boolean, notify: true, value: false, - observer: 'updateSettingsVisibility_', }, /** @private {boolean} */ @@ -366,6 +365,14 @@ } else if (this.state == print_preview_new.State.HIDDEN) { this.nativeLayer_.hidePreview(); } else if (this.state == print_preview_new.State.PRINTING) { + if (this.shouldShowMoreSettings_) { + new print_preview.PrintSettingsUiMetricsContext().record( + this.settingsExpandedByUser_ ? + print_preview.Metrics.PrintSettingsUiBucket + .PRINT_WITH_SETTINGS_EXPANDED : + print_preview.Metrics.PrintSettingsUiBucket + .PRINT_WITH_SETTINGS_COLLAPSED); + } const destination = assert(this.destinationStore_.selectedDestination); const whenPrintDone = this.nativeLayer_.print(this.$.model.createPrintTicket( @@ -481,7 +488,8 @@ break; case print_preview_new.PreviewAreaState.INVALID_SETTINGS: case print_preview_new.PreviewAreaState.UNSUPPORTED_CLOUD_PRINTER: - this.$.state.transitTo(print_preview_new.State.INVALID_PRINTER); + if (this.state != print_preview_new.State.INVALID_PRINTER) + this.$.state.transitTo(print_preview_new.State.INVALID_PRINTER); break; case print_preview_new.PreviewAreaState.DISPLAY_PREVIEW: case print_preview_new.PreviewAreaState.OPEN_IN_PREVIEW_LOADED: @@ -551,18 +559,14 @@ }, 1) > MAX_SECTIONS_TO_SHOW; }, - /** Changes the visibility of settings sections. */ - updateSettingsVisibility_: function() { - Array.from(this.shadowRoot.querySelectorAll('.settings-section')) - .forEach(section => { - if (!section.available || - (section.collapsible && this.shouldShowMoreSettings_ && - !this.settingsExpanded_)) { - section.hide(); - return; - } - section.show(); - }); + /** + * @return {boolean} Whether the "more settings" collapse should be expanded. + * @private + */ + shouldExpandSettings_: function() { + // Expand the settings if the user has requested them expanded or if more + // settings is not displayed (i.e. less than 6 total settings available). + return this.settingsExpandedByUser_ || !this.shouldShowMoreSettings_; }, /** @private */
diff --git a/chrome/browser/resources/print_preview/new/color_settings.html b/chrome/browser/resources/print_preview/new/color_settings.html index d74a61d..88adf84 100644 --- a/chrome/browser/resources/print_preview/new/color_settings.html +++ b/chrome/browser/resources/print_preview/new/color_settings.html
@@ -3,7 +3,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="select_css.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-color-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/color_settings.js b/chrome/browser/resources/print_preview/new/color_settings.js index a652d08..4c8631aa 100644 --- a/chrome/browser/resources/print_preview/new/color_settings.js +++ b/chrome/browser/resources/print_preview/new/color_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-color-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { disabled: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/copies_settings.html b/chrome/browser/resources/print_preview/new/copies_settings.html index 3c50618..f64b6812 100644 --- a/chrome/browser/resources/print_preview/new/copies_settings.html +++ b/chrome/browser/resources/print_preview/new/copies_settings.html
@@ -4,7 +4,6 @@ <link rel="import" href="number_settings_section.html"> <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-copies-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/copies_settings.js b/chrome/browser/resources/print_preview/new/copies_settings.js index f76e484..aeaa23f 100644 --- a/chrome/browser/resources/print_preview/new/copies_settings.js +++ b/chrome/browser/resources/print_preview/new/copies_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-copies-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { /** @private {string} */
diff --git a/chrome/browser/resources/print_preview/new/destination_dialog.html b/chrome/browser/resources/print_preview/new/destination_dialog.html index 8e526f97..016f332 100644 --- a/chrome/browser/resources/print_preview/new/destination_dialog.html +++ b/chrome/browser/resources/print_preview/new/destination_dialog.html
@@ -27,8 +27,12 @@ --cr-dialog-native: { box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(0, 0, 0, 0.15); + min-height: calc(100vh - 40px); width: 640px; } + --cr-dialog-body: { + height: 100vh; + } } :host .user-info {
diff --git a/chrome/browser/resources/print_preview/new/destination_settings.html b/chrome/browser/resources/print_preview/new/destination_settings.html index 6412fb3d..f5cf7145 100644 --- a/chrome/browser/resources/print_preview/new/destination_settings.html +++ b/chrome/browser/resources/print_preview/new/destination_settings.html
@@ -13,7 +13,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="throbber_css.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <link rel="import" href="strings.html"> <dom-module id="print-preview-destination-settings">
diff --git a/chrome/browser/resources/print_preview/new/destination_settings.js b/chrome/browser/resources/print_preview/new/destination_settings.js index 287164b4..8095bdb 100644 --- a/chrome/browser/resources/print_preview/new/destination_settings.js +++ b/chrome/browser/resources/print_preview/new/destination_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-destination-settings', - behaviors: [I18nBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [I18nBehavior], properties: { /** @type {!print_preview.Destination} */
diff --git a/chrome/browser/resources/print_preview/new/dpi_settings.html b/chrome/browser/resources/print_preview/new/dpi_settings.html index 52e1757..3511643 100644 --- a/chrome/browser/resources/print_preview/new/dpi_settings.html +++ b/chrome/browser/resources/print_preview/new/dpi_settings.html
@@ -4,7 +4,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <link rel="import" href="settings_select.html"> <link rel="import" href="strings.html">
diff --git a/chrome/browser/resources/print_preview/new/dpi_settings.js b/chrome/browser/resources/print_preview/new/dpi_settings.js index 28141fb..31e95f6d 100644 --- a/chrome/browser/resources/print_preview/new/dpi_settings.js +++ b/chrome/browser/resources/print_preview/new/dpi_settings.js
@@ -24,7 +24,7 @@ Polymer({ is: 'print-preview-dpi-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { /** @type {{ option: Array<!print_preview_new.SelectOption> }} */
diff --git a/chrome/browser/resources/print_preview/new/layout_settings.html b/chrome/browser/resources/print_preview/new/layout_settings.html index 883a5ed..0b0e7ae 100644 --- a/chrome/browser/resources/print_preview/new/layout_settings.html +++ b/chrome/browser/resources/print_preview/new/layout_settings.html
@@ -4,7 +4,6 @@ <link rel="import" href="select_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-layout-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/layout_settings.js b/chrome/browser/resources/print_preview/new/layout_settings.js index c707f56..b84fbe2b 100644 --- a/chrome/browser/resources/print_preview/new/layout_settings.js +++ b/chrome/browser/resources/print_preview/new/layout_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-layout-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { disabled: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/margins_settings.html b/chrome/browser/resources/print_preview/new/margins_settings.html index 230aef8..7bf74d1b 100644 --- a/chrome/browser/resources/print_preview/new/margins_settings.html +++ b/chrome/browser/resources/print_preview/new/margins_settings.html
@@ -4,7 +4,6 @@ <link rel="import" href="select_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-margins-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/margins_settings.js b/chrome/browser/resources/print_preview/new/margins_settings.js index 1d1261ca..c641b40c 100644 --- a/chrome/browser/resources/print_preview/new/margins_settings.js +++ b/chrome/browser/resources/print_preview/new/margins_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-margins-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { disabled: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/media_size_settings.html b/chrome/browser/resources/print_preview/new/media_size_settings.html index e38178e..03223df 100644 --- a/chrome/browser/resources/print_preview/new/media_size_settings.html +++ b/chrome/browser/resources/print_preview/new/media_size_settings.html
@@ -3,7 +3,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <link rel="import" href="settings_select.html"> <dom-module id="print-preview-media-size-settings">
diff --git a/chrome/browser/resources/print_preview/new/media_size_settings.js b/chrome/browser/resources/print_preview/new/media_size_settings.js index f3f8b62..1ff1bfb07 100644 --- a/chrome/browser/resources/print_preview/new/media_size_settings.js +++ b/chrome/browser/resources/print_preview/new/media_size_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-media-size-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { capability: Object,
diff --git a/chrome/browser/resources/print_preview/new/model.js b/chrome/browser/resources/print_preview/new/model.js index d34cadc..9bc784f 100644 --- a/chrome/browser/resources/print_preview/new/model.js +++ b/chrome/browser/resources/print_preview/new/model.js
@@ -271,14 +271,13 @@ }, observers: [ - 'updateSettings_(' + - 'destination.id, destination.capabilities, ' + + 'updateSettingsFromDestination_(destination.capabilities)', + 'updateSettingsAvailabilityFromDocumentInfo_(' + 'documentInfo.isModifiable, documentInfo.hasCssMediaStyles,' + 'documentInfo.hasSelection)', 'updateHeaderFooterAvailable_(' + - 'documentInfo.isModifiable, documentInfo.margins, ' + - 'settings.margins.value, settings.customMargins.value, ' + - 'settings.mediaSize.value)', + 'documentInfo.margins, settings.margins.value, ' + + 'settings.customMargins.value, settings.mediaSize.value)', 'updateRecentDestinations_(destination, destination.capabilities)', 'stickySettingsChanged_(' + 'settings.collate.value, settings.layout.value, settings.color.value,' + @@ -300,22 +299,23 @@ /** * Updates the availability of the settings sections and values of dpi and - * media size settings. + * media size settings based on the destination capabilities. * @private */ - updateSettings_: function() { + updateSettingsFromDestination_: function() { const caps = (!!this.destination && !!this.destination.capabilities) ? this.destination.capabilities.printer : null; - this.updateSettingsAvailability_(caps); - - if (!caps) - return; if (this.destination.capabilities == this.lastDestinationCapabilities_) return; this.lastDestinationCapabilities_ = this.destination.capabilities; + this.updateSettingsAvailabilityFromDestination_(caps); + + if (!caps) + return; + this.updateSettingsValues_(caps); }, @@ -323,31 +323,54 @@ * @param {?print_preview.CddCapabilities} caps The printer capabilities. * @private */ - updateSettingsAvailability_: function(caps) { - const isSaveToPdf = this.destination.id == - print_preview.Destination.GooglePromotedId.SAVE_AS_PDF; - const knownSizeToSaveAsPdf = isSaveToPdf && - (!this.documentInfo.isModifiable || - this.documentInfo.hasCssMediaStyles); + updateSettingsAvailabilityFromDestination_: function(caps) { this.set('settings.copies.available', !!caps && !!(caps.copies)); this.set('settings.collate.available', !!caps && !!(caps.collate)); this.set('settings.layout.available', this.isLayoutAvailable_(caps)); this.set('settings.color.available', this.destination.hasColorCapability); - this.set('settings.margins.available', this.documentInfo.isModifiable); - this.set( - 'settings.customMargins.available', this.documentInfo.isModifiable); - this.set( - 'settings.mediaSize.available', - !!caps && !!caps.media_size && !knownSizeToSaveAsPdf); this.set( 'settings.dpi.available', !!caps && !!caps.dpi && !!caps.dpi.option && caps.dpi.option.length > 1); + this.set('settings.duplex.available', !!caps && !!caps.duplex); + this.set( + 'settings.vendorItems.available', !!caps && !!caps.vendor_capability); + + if (this.documentInfo) + this.updateSettingsAvailabilityFromDestinationAndDocumentInfo_(); + }, + + /** @private */ + updateSettingsAvailabilityFromDestinationAndDocumentInfo_: function() { + const knownSizeToSaveAsPdf = this.destination.id == + print_preview.Destination.GooglePromotedId.SAVE_AS_PDF && + (!this.documentInfo.isModifiable || + this.documentInfo.hasCssMediaStyles); this.set( 'settings.fitToPage.available', - !this.documentInfo.isModifiable && !isSaveToPdf); + !knownSizeToSaveAsPdf && !this.documentInfo.isModifiable); this.set('settings.scaling.available', !knownSizeToSaveAsPdf); - this.set('settings.duplex.available', !!caps && !!caps.duplex); + const caps = (!!this.destination && !!this.destination.capabilities) ? + this.destination.capabilities.printer : + null; + this.set( + 'settings.mediaSize.available', + !!caps && !!caps.media_size && !knownSizeToSaveAsPdf); + this.set('settings.layout.available', this.isLayoutAvailable_(caps)); + this.set( + 'settings.otherOptions.available', + this.settings.duplex.available || + this.settings.cssBackground.available || + this.settings.selectionOnly.available || + this.settings.headerFooter.available || + this.settings.rasterize.available); + }, + + /** @private */ + updateSettingsAvailabilityFromDocumentInfo_: function() { + this.set('settings.margins.available', this.documentInfo.isModifiable); + this.set( + 'settings.customMargins.available', this.documentInfo.isModifiable); this.set( 'settings.cssBackground.available', this.documentInfo.isModifiable); this.set( @@ -358,23 +381,15 @@ this.set( 'settings.rasterize.available', !this.documentInfo.isModifiable && !cr.isWindows && !cr.isMac); - this.set( - 'settings.otherOptions.available', - this.settings.duplex.available || - this.settings.cssBackground.available || - this.settings.selectionOnly.available || - this.settings.headerFooter.available || - this.settings.rasterize.available); - this.set( - 'settings.vendorItems.available', !!caps && !!caps.vendor_capability); - this.fire('settings-availability-updated'); + + if (this.destination) + this.updateSettingsAvailabilityFromDestinationAndDocumentInfo_(); }, /** @private */ updateHeaderFooterAvailable_: function() { this.set( 'settings.headerFooter.available', this.isHeaderFooterAvailable_()); - this.fire('settings-availability-updated'); }, /**
diff --git a/chrome/browser/resources/print_preview/new/more_settings.html b/chrome/browser/resources/print_preview/new/more_settings.html index 4c034d6..6aeb7df 100644 --- a/chrome/browser/resources/print_preview/new/more_settings.html +++ b/chrome/browser/resources/print_preview/new/more_settings.html
@@ -4,13 +4,13 @@ <link rel="import" href="chrome://resources/html/action_link.html"> <link rel="import" href="chrome://resources/html/action_link_css.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> -<link rel="import" href="settings_section_behavior.html"> +<link rel="import" href="../metrics.html"> <link rel="import" href="strings.html"> <dom-module id="print-preview-more-settings"> <template> <style include="action-link cr-hidden-style"> - :host([available]) { + :host { align-items: center; display: flex; margin-top: 4px; @@ -18,6 +18,10 @@ padding: 5px 20px; } + :host([hidden]) { + display: none; + } + :host #label { margin: 0 10px; } @@ -39,9 +43,9 @@ url(../images/2x/plus.png) 2x); } </style> - <div id="icon" class$="[[getIconClass_(settingsExpanded)]]"></div> + <div id="icon" class$="[[getIconClass_(settingsExpandedByUser)]]"></div> <a id="label" is="action-link" disabled="[[disabled]]"> - [[getLabelText_(settingsExpanded)]] + [[getLabelText_(settingsExpandedByUser)]] </a> </template> <script src="more_settings.js"></script>
diff --git a/chrome/browser/resources/print_preview/new/more_settings.js b/chrome/browser/resources/print_preview/new/more_settings.js index 5efde4a..431625fb 100644 --- a/chrome/browser/resources/print_preview/new/more_settings.js +++ b/chrome/browser/resources/print_preview/new/more_settings.js
@@ -5,10 +5,10 @@ Polymer({ is: 'print-preview-more-settings', - behaviors: [I18nBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [I18nBehavior], properties: { - settingsExpanded: { + settingsExpandedByUser: { type: Boolean, notify: true, }, @@ -20,13 +20,16 @@ 'click': 'onMoreSettingsClick_', }, + /** @private {!print_preview.PrintSettingsUiMetricsContext} */ + metrics_: new print_preview.PrintSettingsUiMetricsContext(), + /** * @return {string} 'plus-icon' if settings are collapsed, 'minus-icon' if * they are expanded. * @private */ getIconClass_: function() { - return this.settingsExpanded ? 'minus-icon' : 'plus-icon'; + return this.settingsExpandedByUser ? 'minus-icon' : 'plus-icon'; }, /** @@ -35,11 +38,15 @@ */ getLabelText_: function() { return this.i18n( - this.settingsExpanded ? 'lessOptionsLabel' : 'moreOptionsLabel'); + this.settingsExpandedByUser ? 'lessOptionsLabel' : 'moreOptionsLabel'); }, /** @private */ onMoreSettingsClick_: function() { - this.settingsExpanded = !this.settingsExpanded; + this.settingsExpandedByUser = !this.settingsExpandedByUser; + this.metrics_.record( + this.settingsExpandedByUser ? + print_preview.Metrics.PrintSettingsUiBucket.MORE_SETTINGS_CLICKED : + print_preview.Metrics.PrintSettingsUiBucket.LESS_SETTINGS_CLICKED); }, });
diff --git a/chrome/browser/resources/print_preview/new/other_options_settings.html b/chrome/browser/resources/print_preview/new/other_options_settings.html index 1484f097..d5ee2d5 100644 --- a/chrome/browser/resources/print_preview/new/other_options_settings.html +++ b/chrome/browser/resources/print_preview/new/other_options_settings.html
@@ -5,7 +5,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-other-options-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/other_options_settings.js b/chrome/browser/resources/print_preview/new/other_options_settings.js index efb0cae..adca5d1 100644 --- a/chrome/browser/resources/print_preview/new/other_options_settings.js +++ b/chrome/browser/resources/print_preview/new/other_options_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-other-options-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { disabled: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html index 917ff7f..97bcb34 100644 --- a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html +++ b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html
@@ -4,7 +4,6 @@ <link rel="import" href="select_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-pages-per-sheet-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js index f14df28..e74e3b5d 100644 --- a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js +++ b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-pages-per-sheet-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { disabled: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/pages_settings.html b/chrome/browser/resources/print_preview/new/pages_settings.html index 4c4bc5a..2cd551e0 100644 --- a/chrome/browser/resources/print_preview/new/pages_settings.html +++ b/chrome/browser/resources/print_preview/new/pages_settings.html
@@ -7,7 +7,6 @@ <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> <link rel="import" href="settings_section.html"> -<link rel="import" href="settings_section_behavior.html"> <link rel="import" href="strings.html"> <dom-module id="print-preview-pages-settings">
diff --git a/chrome/browser/resources/print_preview/new/pages_settings.js b/chrome/browser/resources/print_preview/new/pages_settings.js index 741fa2d..6b4a692 100644 --- a/chrome/browser/resources/print_preview/new/pages_settings.js +++ b/chrome/browser/resources/print_preview/new/pages_settings.js
@@ -15,10 +15,7 @@ Polymer({ is: 'print-preview-pages-settings', - behaviors: [ - SettingsBehavior, print_preview_new.SettingsSectionBehavior, - print_preview_new.InputBehavior - ], + behaviors: [SettingsBehavior, print_preview_new.InputBehavior], properties: { /** @type {!print_preview.DocumentInfo} */
diff --git a/chrome/browser/resources/print_preview/new/preview_area.html b/chrome/browser/resources/print_preview/new/preview_area.html index 09bd6a0..b57d5df 100644 --- a/chrome/browser/resources/print_preview/new/preview_area.html +++ b/chrome/browser/resources/print_preview/new/preview_area.html
@@ -117,7 +117,7 @@ </style> <div class$="preview-area-overlay-layer [[getInvisible_(previewState)]]" - aria-hidden$="[[previewLoaded_]]"> + aria-hidden$="[[getAriaHidden_(previewState)]]"> <div class="preview-area-messages"> <div class="preview-area-message"> <div>
diff --git a/chrome/browser/resources/print_preview/new/preview_area.js b/chrome/browser/resources/print_preview/new/preview_area.js index 1903857..28de03e 100644 --- a/chrome/browser/resources/print_preview/new/preview_area.js +++ b/chrome/browser/resources/print_preview/new/preview_area.js
@@ -34,6 +34,14 @@ */ print_preview_new.PDFPlugin; +/** + * @typedef {{ + * width_microns: number, + * height_microns: number, + * }} + */ +print_preview_new.MediaSizeValue; + /** @enum {string} */ print_preview_new.PreviewAreaState = { NO_PLUGIN: 'no-plugin', @@ -90,7 +98,7 @@ previewLoaded_: { type: Boolean, notify: true, - computed: 'computePreviewLoaded_(previewState)', + computed: 'computePreviewLoaded_(documentReady_, pluginLoaded_)', }, }, @@ -102,17 +110,28 @@ observers: [ 'onSettingsChanged_(settings.color.value, settings.cssBackground.value, ' + 'settings.fitToPage.value, settings.headerFooter.value, ' + - 'settings.layout.value, settings.margins.value, ' + - 'settings.customMargins.value, settings.mediaSize.value, ' + - 'settings.ranges.value, settings.selectionOnly.value, ' + - 'settings.scaling.value, settings.pagesPerSheet.value, ' + - 'settings.rasterize.value, destination.id, destination.capabilities)', + 'settings.layout.value, settings.ranges.value, ' + + 'settings.selectionOnly.value, settings.scaling.value, ' + + 'settings.pagesPerSheet.value, settings.rasterize.value, destination)', + 'onMarginsChanged_(settings.margins.value)', + 'onCustomMarginsChanged_(settings.customMargins.value)', + 'onMediaSizeChanged_(settings.mediaSize.value)', 'pluginOrDocumentStatusChanged_(pluginLoaded_, documentReady_)', ], - /** @private {print_preview.NativeLayer} */ + /** @private {?print_preview.NativeLayer} */ nativeLayer_: null, + /** + * @private {?print_preview.MarginsSetting} + */ + lastCustomMargins_: null, + + /** + * @private {?print_preview_new.MediaSizeValue} + */ + lastMediaSize_: null, + /** @private {number} */ inFlightRequestId_: -1, @@ -157,10 +176,7 @@ * @private */ computePreviewLoaded_: function() { - return this.previewState == - print_preview_new.PreviewAreaState.DISPLAY_PREVIEW || - this.previewState == - print_preview_new.PreviewAreaState.OPEN_IN_PREVIEW_LOADED; + return this.documentReady_ && this.pluginLoaded_; }, /** @return {boolean} Whether the preview is loaded. */ @@ -229,7 +245,24 @@ * @private */ getInvisible_: function() { - return this.previewLoaded() ? 'invisible' : ''; + return this.isInDisplayPreviewState_() ? 'invisible' : ''; + }, + + /** + * @return {string} 'true' if overlay is aria-hidden, 'false' otherwise. + * @private + */ + getAriaHidden_: function() { + return this.isInDisplayPreviewState_().toString(); + }, + + /** + * @return {boolean} Whether the preview area is in DISPLAY_PREVIEW state. + * @private + */ + isInDisplayPreviewState_: function() { + return this.previewState == + print_preview_new.PreviewAreaState.DISPLAY_PREVIEW; }, /** @@ -281,9 +314,13 @@ return this.i18n('noPlugin'); case print_preview_new.PreviewAreaState.LOADING: return this.i18n('loading'); + case print_preview_new.PreviewAreaState.DISPLAY_PREVIEW: + return ''; + // <if expr="is_macosx"> case print_preview_new.PreviewAreaState.OPEN_IN_PREVIEW_LOADING: case print_preview_new.PreviewAreaState.OPEN_IN_PREVIEW_LOADED: return this.i18n('openingPDFInPreview'); + // </if> case print_preview_new.PreviewAreaState.INVALID_SETTINGS: return this.i18n('invalidPrinterSettings'); case print_preview_new.PreviewAreaState.PREVIEW_FAILED: @@ -318,11 +355,7 @@ /** @private */ onStateChanged_: function() { - if (this.state == print_preview_new.State.NOT_READY) { - // Resetting the destination clears the invalid settings error. - this.previewState = print_preview_new.PreviewAreaState.LOADING; - } else if ( - this.state == print_preview_new.State.READY && + if (this.state == print_preview_new.State.READY && this.requestPreviewWhenReady_) { this.startPreview_(); this.requestPreviewWhenReady_ = false; @@ -334,7 +367,7 @@ setOpeningPdfInPreview: function() { assert(cr.isMac); this.previewState = - (this.previewState == print_preview_new.PreviewAreaState.LOADING) ? + this.previewState == print_preview_new.PreviewAreaState.LOADING ? print_preview_new.PreviewAreaState.OPEN_IN_PREVIEW_LOADING : print_preview_new.PreviewAreaState.OPEN_IN_PREVIEW_LOADED; }, @@ -586,6 +619,49 @@ this.i18n('gcpCertificateErrorLearnMoreURL')); }, + /** @private */ + onMarginsChanged_: function() { + if (this.getSettingValue('margins') != + print_preview.ticket_items.MarginsTypeValue.CUSTOM) { + this.lastCustomMargins_ = null; + this.onSettingsChanged_(); + } else { + this.lastCustomMargins_ = + /** @type {!print_preview.MarginsSetting} */ ( + this.getSettingValue('customMargins')); + } + }, + + /** @private */ + onCustomMarginsChanged_: function() { + const newValue = + /** @type {!print_preview.MarginsSetting} */ ( + this.getSettingValue('customMargins')); + if (!!this.lastCustomMargins_ && + this.getSettingValue('margins') == + print_preview.ticket_items.MarginsTypeValue.CUSTOM && + (this.lastCustomMargins_.marginTop != newValue.marginTop || + this.lastCustomMargins_.marginLeft != newValue.marginLeft || + this.lastCustomMargins_.marginRight != newValue.marginRight || + this.lastCustomMargins_.marginBottom != newValue.marginBottom)) { + this.onSettingsChanged_(); + } + this.lastCustomMargins_ = newValue; + }, + + /** @private */ + onMediaSizeChanged_: function() { + const newValue = + /** @type {!print_preview_new.MediaSizeValue} */ ( + this.getSettingValue('mediaSize')); + if (!!this.lastMediaSize_ && + (newValue.height_microns != this.lastMediaSize_.height_microns || + newValue.width_microns != this.lastMediaSize_.width_microns)) { + this.onSettingsChanged_(); + } + this.lastMediaSize_ = newValue; + }, + /** * Requests a preview from the native layer. * @return {!Promise} Promise that resolves when the preview has been
diff --git a/chrome/browser/resources/print_preview/new/scaling_settings.html b/chrome/browser/resources/print_preview/new/scaling_settings.html index 1c4208a..6fc479af 100644 --- a/chrome/browser/resources/print_preview/new/scaling_settings.html +++ b/chrome/browser/resources/print_preview/new/scaling_settings.html
@@ -5,7 +5,6 @@ <link rel="import" href="number_settings_section.html"> <link rel="import" href="print_preview_shared_css.html"> <link rel="import" href="settings_behavior.html"> -<link rel="import" href="settings_section_behavior.html"> <dom-module id="print-preview-scaling-settings"> <template>
diff --git a/chrome/browser/resources/print_preview/new/scaling_settings.js b/chrome/browser/resources/print_preview/new/scaling_settings.js index 6f33df9..c0052b66 100644 --- a/chrome/browser/resources/print_preview/new/scaling_settings.js +++ b/chrome/browser/resources/print_preview/new/scaling_settings.js
@@ -5,7 +5,7 @@ Polymer({ is: 'print-preview-scaling-settings', - behaviors: [SettingsBehavior, print_preview_new.SettingsSectionBehavior], + behaviors: [SettingsBehavior], properties: { /** @type {Object} */
diff --git a/chrome/browser/resources/print_preview/new/settings_section_behavior.html b/chrome/browser/resources/print_preview/new/settings_section_behavior.html deleted file mode 100644 index e48abd6..0000000 --- a/chrome/browser/resources/print_preview/new/settings_section_behavior.html +++ /dev/null
@@ -1,3 +0,0 @@ -<link rel="import" href="chrome://resources/html/cr.html"> - -<script src="settings_section_behavior.js"></script>
diff --git a/chrome/browser/resources/print_preview/new/settings_section_behavior.js b/chrome/browser/resources/print_preview/new/settings_section_behavior.js deleted file mode 100644 index 74d7e5a..0000000 --- a/chrome/browser/resources/print_preview/new/settings_section_behavior.js +++ /dev/null
@@ -1,34 +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. - -cr.define('print_preview_new', function() { - /** - * Helper functions for settings sections that need to be collapsed and - * expanded. - * @polymerBehavior - */ - const SettingsSectionBehavior = { - properties: { - available: { - type: Boolean, - reflectToAttribute: true, - }, - - collapsible: { - type: Boolean, - reflectToAttribute: true, - }, - }, - - show: function() { - this.hidden = false; - }, - - hide: function() { - this.hidden = true; - }, - }; - - return {SettingsSectionBehavior: SettingsSectionBehavior}; -});
diff --git a/chrome/browser/resources/print_preview/print_preview_resources.grd b/chrome/browser/resources/print_preview/print_preview_resources.grd index 8eea362..9293252 100644 --- a/chrome/browser/resources/print_preview/print_preview_resources.grd +++ b/chrome/browser/resources/print_preview/print_preview_resources.grd
@@ -155,7 +155,8 @@ type="chrome_html" /> <structure name="IDR_PRINT_PREVIEW_NEW_PREVIEW_AREA_JS" file="new/preview_area.js" - type="chrome_html" /> + type="chrome_html" + preprocess="true" /> <structure name="IDR_PRINT_PREVIEW_NEW_HEADER_HTML" file="new/header.html" type="chrome_html" /> @@ -168,12 +169,6 @@ <structure name="IDR_PRINT_PREVIEW_NEW_SETTINGS_BEHAVIOR_JS" file="new/settings_behavior.js" type="chrome_html" /> - <structure name="IDR_PRINT_PREVIEW_NEW_SETTINGS_SECTION_BEHAVIOR_HTML" - file="new/settings_section_behavior.html" - type="chrome_html" /> - <structure name="IDR_PRINT_PREVIEW_NEW_SETTINGS_SECTION_BEHAVIOR_JS" - file="new/settings_section_behavior.js" - type="chrome_html" /> <structure name="IDR_PRINT_PREVIEW_NEW_INPUT_BEHAVIOR_HTML" file="new/input_behavior.html" type="chrome_html" />
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html index b954596e..36434295 100644 --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -1,6 +1,7 @@ <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> +<link rel="import" href="chrome://resources/cr_elements/paper_tabs_style_css.html"> <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-pages/iron-pages.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> @@ -18,7 +19,7 @@ <dom-module id="settings-clear-browsing-data-dialog"> <template> - <style include="settings-shared"> + <style include="settings-shared paper-tabs-style"> :host { /* Fixed height to allow multiple tabs with different height. * The last entry in the advanced tab should show half an entry. @@ -80,23 +81,12 @@ } paper-tabs { - --paper-tabs-selection-bar-color: var(--google-blue-500); --paper-tabs: { font-size: 100%; height: 40px; } } - paper-tab { - --paper-tab-content: { - color: var(--google-blue-700); - }; - --paper-tab-content-unselected: { - opacity: 1; - color: var(--paper-grey-600); - }; - } - .time-range-row { margin-bottom: 12px; }
diff --git a/chrome/browser/resources/settings/device_page/display.html b/chrome/browser/resources/settings/device_page/display.html index ee1fa3a..84acc34 100644 --- a/chrome/browser/resources/settings/device_page/display.html +++ b/chrome/browser/resources/settings/device_page/display.html
@@ -3,6 +3,7 @@ <link rel="import" href="chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html"> <link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html"> <link rel="import" href="chrome://resources/cr_elements/cr_toggle/cr_toggle.html"> +<link rel="import" href="chrome://resources/cr_elements/paper_tabs_style_css.html"> <link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> @@ -23,7 +24,7 @@ <dom-module id="settings-display"> <template> - <style include="settings-shared md-select iron-flex iron-flex-alignment"> + <style include="settings-shared md-select iron-flex iron-flex-alignment paper-tabs-style"> .indented { -webkit-margin-start: var(--cr-section-indent-padding); align-self: stretch; @@ -54,10 +55,6 @@ -webkit-padding-start: 0 } - paper-tab { - text-transform: uppercase; - } - #controlsDiv > .settings-box:first-of-type { border-top: none; }
diff --git a/chrome/browser/resources/settings/settings_vars_css.html b/chrome/browser/resources/settings/settings_vars_css.html index e914c74..31bba82 100644 --- a/chrome/browser/resources/settings/settings_vars_css.html +++ b/chrome/browser/resources/settings/settings_vars_css.html
@@ -54,7 +54,5 @@ --iron-icon-width: var(--cr-icon-size); --paper-radio-group-item-padding: 0; - - --paper-tabs-selection-bar-color: var(--paper-blue-500); } </style>
diff --git a/chrome/browser/safe_search_api/safe_search_url_checker.cc b/chrome/browser/safe_search_api/safe_search_url_checker.cc index 9a84593a..733a670 100644 --- a/chrome/browser/safe_search_api/safe_search_url_checker.cc +++ b/chrome/browser/safe_search_api/safe_search_url_checker.cc
@@ -20,15 +20,12 @@ #include "google_apis/google_api_keys.h" #include "net/base/escape.h" #include "net/base/load_flags.h" -#include "net/url_request/url_fetcher.h" -#include "net/url_request/url_request_context.h" +#include "net/url_request/url_request_status.h" +#include "services/network/public/cpp/resource_request.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" +#include "services/network/public/cpp/simple_url_loader.h" #include "url/url_constants.h" -using net::URLFetcher; -using net::URLFetcherDelegate; -using net::URLRequestContextGetter; -using net::URLRequestStatus; - namespace { const char kSafeSearchApiUrl[] = @@ -45,23 +42,6 @@ return base::StringPrintf(kDataFormat, api_key.c_str(), query.c_str()); } -// Creates a URLFetcher to call the SafeSearch API for |url|. -std::unique_ptr<net::URLFetcher> CreateFetcher( - URLFetcherDelegate* delegate, - URLRequestContextGetter* context, - const std::string& api_key, - const GURL& url, - const net::NetworkTrafficAnnotationTag& traffic_annotation) { - std::unique_ptr<net::URLFetcher> fetcher = - URLFetcher::Create(0, GURL(kSafeSearchApiUrl), URLFetcher::POST, delegate, - traffic_annotation); - fetcher->SetUploadData(kDataContentType, BuildRequestData(api_key, url)); - fetcher->SetRequestContext(context); - fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | - net::LOAD_DO_NOT_SAVE_COOKIES); - return fetcher; -} - // Parses a SafeSearch API |response| and stores the result in |is_porn|. // On errors, returns false and doesn't set |is_porn|. bool ParseResponse(const std::string& response, bool* is_porn) { @@ -93,21 +73,22 @@ struct SafeSearchURLChecker::Check { Check(const GURL& url, - std::unique_ptr<net::URLFetcher> fetcher, + std::unique_ptr<network::SimpleURLLoader> simple_url_loader, CheckCallback callback); ~Check(); GURL url; - std::unique_ptr<net::URLFetcher> fetcher; + std::unique_ptr<network::SimpleURLLoader> simple_url_loader; std::vector<CheckCallback> callbacks; base::TimeTicks start_time; }; -SafeSearchURLChecker::Check::Check(const GURL& url, - std::unique_ptr<net::URLFetcher> fetcher, - CheckCallback callback) +SafeSearchURLChecker::Check::Check( + const GURL& url, + std::unique_ptr<network::SimpleURLLoader> simple_url_loader, + CheckCallback callback) : url(url), - fetcher(std::move(fetcher)), + simple_url_loader(std::move(simple_url_loader)), start_time(base::TimeTicks::Now()) { callbacks.push_back(std::move(callback)); } @@ -125,15 +106,17 @@ timestamp(base::TimeTicks::Now()) {} SafeSearchURLChecker::SafeSearchURLChecker( - URLRequestContextGetter* context, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, const net::NetworkTrafficAnnotationTag& traffic_annotation) - : SafeSearchURLChecker(context, traffic_annotation, kDefaultCacheSize) {} + : SafeSearchURLChecker(std::move(url_loader_factory), + traffic_annotation, + kDefaultCacheSize) {} SafeSearchURLChecker::SafeSearchURLChecker( - URLRequestContextGetter* context, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, const net::NetworkTrafficAnnotationTag& traffic_annotation, size_t cache_size) - : context_(context), + : url_loader_factory_(std::move(url_loader_factory)), traffic_annotation_(traffic_annotation), cache_(cache_size), cache_timeout_( @@ -183,48 +166,56 @@ DVLOG(1) << "Checking URL " << url; std::string api_key = google_apis::GetAPIKey(); - std::unique_ptr<URLFetcher> fetcher( - CreateFetcher(this, context_, api_key, url, traffic_annotation_)); - fetcher->Start(); - checks_in_progress_.push_back( - std::make_unique<Check>(url, std::move(fetcher), std::move(callback))); + auto resource_request = std::make_unique<network::ResourceRequest>(); + resource_request->url = GURL(kSafeSearchApiUrl); + resource_request->method = "POST"; + resource_request->load_flags = + net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES; + std::unique_ptr<network::SimpleURLLoader> simple_url_loader = + network::SimpleURLLoader::Create(std::move(resource_request), + traffic_annotation_); + simple_url_loader->AttachStringForUpload(BuildRequestData(api_key, url), + kDataContentType); + auto it = checks_in_progress_.insert( + checks_in_progress_.begin(), + std::make_unique<Check>(url, std::move(simple_url_loader), + std::move(callback))); + network::SimpleURLLoader* loader = it->get()->simple_url_loader.get(); + loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie( + url_loader_factory_.get(), + base::BindOnce(&SafeSearchURLChecker::OnSimpleLoaderComplete, + base::Unretained(this), std::move(it))); return false; } -void SafeSearchURLChecker::OnURLFetchComplete(const net::URLFetcher* source) { - auto it = checks_in_progress_.begin(); - while (it != checks_in_progress_.end()) { - if (source == (*it)->fetcher.get()) - break; - ++it; - } - DCHECK(it != checks_in_progress_.end()); +void SafeSearchURLChecker::OnSimpleLoaderComplete( + CheckList::iterator it, + std::unique_ptr<std::string> response_body) { Check* check = it->get(); - const URLRequestStatus& status = source->GetStatus(); - if (!status.is_success()) { + GURL url = check->url; + std::vector<CheckCallback> callbacks = std::move(check->callbacks); + base::TimeTicks start_time = check->start_time; + checks_in_progress_.erase(it); + + if (!response_body) { DLOG(WARNING) << "URL request failed! Letting through..."; - for (size_t i = 0; i < check->callbacks.size(); i++) - std::move(check->callbacks[i]) - .Run(check->url, Classification::SAFE, true); - checks_in_progress_.erase(it); + for (size_t i = 0; i < callbacks.size(); i++) + std::move(callbacks[i]).Run(url, Classification::SAFE, true); return; } - std::string response_body; - source->GetResponseAsString(&response_body); bool is_porn = false; - bool uncertain = !ParseResponse(response_body, &is_porn); + bool uncertain = !ParseResponse(*response_body, &is_porn); Classification classification = is_porn ? Classification::UNSAFE : Classification::SAFE; // TODO(msramek): Consider moving this to SupervisedUserResourceThrottle. UMA_HISTOGRAM_TIMES("ManagedUsers.SafeSitesDelay", - base::TimeTicks::Now() - check->start_time); + base::TimeTicks::Now() - start_time); - cache_.Put(check->url, CheckResult(classification, uncertain)); + cache_.Put(url, CheckResult(classification, uncertain)); - for (size_t i = 0; i < check->callbacks.size(); i++) - std::move(check->callbacks[i]).Run(check->url, classification, uncertain); - checks_in_progress_.erase(it); + for (size_t i = 0; i < callbacks.size(); i++) + std::move(callbacks[i]).Run(url, classification, uncertain); }
diff --git a/chrome/browser/safe_search_api/safe_search_url_checker.h b/chrome/browser/safe_search_api/safe_search_url_checker.h index 078e881..195225e 100644 --- a/chrome/browser/safe_search_api/safe_search_url_checker.h +++ b/chrome/browser/safe_search_api/safe_search_url_checker.h
@@ -13,20 +13,19 @@ #include "base/callback_forward.h" #include "base/containers/mru_cache.h" #include "base/macros.h" +#include "base/memory/scoped_refptr.h" #include "base/time/time.h" #include "net/traffic_annotation/network_traffic_annotation.h" -#include "net/url_request/url_fetcher_delegate.h" #include "url/gurl.h" -namespace net { -class URLFetcher; -class URLRequestContextGetter; -} +namespace network { +class SharedURLLoaderFactory; +} // namespace network // This class uses the SafeSearch API to check the SafeSearch classification // of the content on a given URL and returns the result asynchronously // via a callback. -class SafeSearchURLChecker : net::URLFetcherDelegate { +class SafeSearchURLChecker { public: enum class Classification { SAFE, UNSAFE }; @@ -35,13 +34,13 @@ void(const GURL&, Classification classification, bool /* uncertain */)>; explicit SafeSearchURLChecker( - net::URLRequestContextGetter* context, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, const net::NetworkTrafficAnnotationTag& traffic_annotation); SafeSearchURLChecker( - net::URLRequestContextGetter* context, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, const net::NetworkTrafficAnnotationTag& traffic_annotation, size_t cache_size); - ~SafeSearchURLChecker() override; + ~SafeSearchURLChecker(); // Returns whether |callback| was run synchronously. bool CheckURL(const GURL& url, CheckCallback callback); @@ -58,14 +57,15 @@ bool uncertain; base::TimeTicks timestamp; }; + using CheckList = std::list<std::unique_ptr<Check>>; - // net::URLFetcherDelegate implementation. - void OnURLFetchComplete(const net::URLFetcher* source) override; + void OnSimpleLoaderComplete(CheckList::iterator it, + std::unique_ptr<std::string> response_body); - net::URLRequestContextGetter* context_; + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; const net::NetworkTrafficAnnotationTag traffic_annotation_; - std::vector<std::unique_ptr<Check>> checks_in_progress_; + CheckList checks_in_progress_; base::MRUCache<GURL, CheckResult> cache_; base::TimeDelta cache_timeout_;
diff --git a/chrome/browser/safe_search_api/safe_search_url_checker_unittest.cc b/chrome/browser/safe_search_api/safe_search_url_checker_unittest.cc index c0d7a770..eed292d3 100644 --- a/chrome/browser/safe_search_api/safe_search_url_checker_unittest.cc +++ b/chrome/browser/safe_search_api/safe_search_url_checker_unittest.cc
@@ -18,8 +18,9 @@ #include "base/values.h" #include "net/base/net_errors.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" -#include "net/url_request/test_url_fetcher_factory.h" -#include "net/url_request/url_request_test_util.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/test/test_url_loader_factory.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" @@ -31,8 +32,6 @@ const size_t kCacheSize = 2; -const int kSafeSearchURLCheckerURLFetcherID = 0; - const char* kURLs[] = { "http://www.randomsite1.com", "http://www.randomsite2.com", @@ -45,6 +44,9 @@ "http://www.randomsite9.com", }; +const char kSafeSearchApiUrl[] = + "https://safesearch.googleapis.com/v1:classify"; + std::string BuildResponse(bool is_porn) { base::DictionaryValue dict; std::unique_ptr<base::DictionaryValue> classification_dict( @@ -66,9 +68,10 @@ public: SafeSearchURLCheckerTest() : next_url_(0), - request_context_(new net::TestURLRequestContextGetter( - base::ThreadTaskRunnerHandle::Get())), - checker_(request_context_.get(), + test_shared_loader_factory_( + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + &test_url_loader_factory_)), + checker_(test_shared_loader_factory_, TRAFFIC_ANNOTATION_FOR_TESTS, kCacheSize) {} @@ -83,59 +86,62 @@ return GURL(kURLs[next_url_++]); } + void SetupResponse(const GURL& url, + net::Error error, + const std::string& response) { + network::URLLoaderCompletionStatus status(error); + status.decoded_body_length = response.size(); + test_url_loader_factory_.AddResponse(GURL(kSafeSearchApiUrl), + network::ResourceResponseHead(), + response, status); + } + // Returns true if the result was returned synchronously (cache hit). bool CheckURL(const GURL& url) { - return checker_.CheckURL(url, - base::Bind(&SafeSearchURLCheckerTest::OnCheckDone, - base::Unretained(this))); + bool cached = checker_.CheckURL( + url, base::BindOnce(&SafeSearchURLCheckerTest::OnCheckDone, + base::Unretained(this))); + return cached; } - net::TestURLFetcher* GetURLFetcher() { - net::TestURLFetcher* url_fetcher = - url_fetcher_factory_.GetFetcherByID(kSafeSearchURLCheckerURLFetcherID); - EXPECT_TRUE(url_fetcher); - return url_fetcher; + void WaitForResponse() { base::RunLoop().RunUntilIdle(); } + + bool SendValidResponse(const GURL& url, bool is_porn) { + SetupResponse(url, net::OK, BuildResponse(is_porn)); + bool result = CheckURL(url); + WaitForResponse(); + return result; } - void SendResponse(net::Error error, const std::string& response) { - net::TestURLFetcher* url_fetcher = GetURLFetcher(); - url_fetcher->set_status(net::URLRequestStatus::FromError(error)); - url_fetcher->set_response_code(net::HTTP_OK); - url_fetcher->SetResponseString(response); - url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); + bool SendFailedResponse(const GURL& url) { + SetupResponse(url, net::ERR_ABORTED, std::string()); + bool result = CheckURL(url); + WaitForResponse(); + return result; } - void SendValidResponse(bool is_porn) { - SendResponse(net::OK, BuildResponse(is_porn)); - } - - void SendFailedResponse() { SendResponse(net::ERR_ABORTED, std::string()); } - size_t next_url_; base::MessageLoop message_loop_; - scoped_refptr<net::TestURLRequestContextGetter> request_context_; - net::TestURLFetcherFactory url_fetcher_factory_; + network::TestURLLoaderFactory test_url_loader_factory_; + scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_; SafeSearchURLChecker checker_; }; TEST_F(SafeSearchURLCheckerTest, Simple) { { GURL url(GetNewURL()); - ASSERT_FALSE(CheckURL(url)); EXPECT_CALL(*this, OnCheckDone(url, Classification::SAFE, false)); - SendValidResponse(false); + ASSERT_FALSE(SendValidResponse(url, false)); } { GURL url(GetNewURL()); - ASSERT_FALSE(CheckURL(url)); EXPECT_CALL(*this, OnCheckDone(url, Classification::UNSAFE, false)); - SendValidResponse(true); + ASSERT_FALSE(SendValidResponse(url, true)); } { GURL url(GetNewURL()); - ASSERT_FALSE(CheckURL(url)); EXPECT_CALL(*this, OnCheckDone(url, Classification::SAFE, true)); - SendFailedResponse(); + ASSERT_FALSE(SendFailedResponse(url)); } } @@ -147,37 +153,35 @@ GURL url3(GetNewURL()); // Populate the cache. - ASSERT_FALSE(CheckURL(url1)); EXPECT_CALL(*this, OnCheckDone(url1, Classification::SAFE, false)); - SendValidResponse(false); - ASSERT_FALSE(CheckURL(url2)); + ASSERT_FALSE(SendValidResponse(url1, false)); EXPECT_CALL(*this, OnCheckDone(url2, Classification::SAFE, false)); - SendValidResponse(false); + ASSERT_FALSE(SendValidResponse(url2, false)); - // Now we should get results synchronously. + // Now we should get results synchronously, without a network request. + test_url_loader_factory_.ClearResponses(); EXPECT_CALL(*this, OnCheckDone(url2, Classification::SAFE, false)); ASSERT_TRUE(CheckURL(url2)); EXPECT_CALL(*this, OnCheckDone(url1, Classification::SAFE, false)); ASSERT_TRUE(CheckURL(url1)); // Now |url2| is the LRU and should be evicted on the next check. - ASSERT_FALSE(CheckURL(url3)); EXPECT_CALL(*this, OnCheckDone(url3, Classification::SAFE, false)); - SendValidResponse(false); + ASSERT_FALSE(SendValidResponse(url3, false)); - ASSERT_FALSE(CheckURL(url2)); EXPECT_CALL(*this, OnCheckDone(url2, Classification::SAFE, false)); - SendValidResponse(false); + ASSERT_FALSE(SendValidResponse(url2, false)); } TEST_F(SafeSearchURLCheckerTest, CoalesceRequestsToSameURL) { GURL url(GetNewURL()); // Start two checks for the same URL. + SetupResponse(url, net::OK, BuildResponse(false)); ASSERT_FALSE(CheckURL(url)); ASSERT_FALSE(CheckURL(url)); - // A single response should answer both checks. + // A single response should answer both of those checks EXPECT_CALL(*this, OnCheckDone(url, Classification::SAFE, false)).Times(2); - SendValidResponse(false); + WaitForResponse(); } TEST_F(SafeSearchURLCheckerTest, CacheTimeout) { @@ -185,13 +189,11 @@ checker_.SetCacheTimeoutForTesting(base::TimeDelta::FromSeconds(0)); - ASSERT_FALSE(CheckURL(url)); EXPECT_CALL(*this, OnCheckDone(url, Classification::SAFE, false)); - SendValidResponse(false); + ASSERT_FALSE(SendValidResponse(url, false)); // Since the cache timeout is zero, the cache entry should be invalidated // immediately. - ASSERT_FALSE(CheckURL(url)); EXPECT_CALL(*this, OnCheckDone(url, Classification::UNSAFE, false)); - SendValidResponse(true); + ASSERT_FALSE(SendValidResponse(url, true)); }
diff --git a/chrome/browser/sessions/tab_restore_browsertest.cc b/chrome/browser/sessions/tab_restore_browsertest.cc index b4c3bbe..2d00a8b2 100644 --- a/chrome/browser/sessions/tab_restore_browsertest.cc +++ b/chrome/browser/sessions/tab_restore_browsertest.cc
@@ -510,6 +510,10 @@ static_cast<sessions::TabRestoreService::Window*>(entry); auto& tabs = entry_win->tabs; EXPECT_EQ(3u, tabs.size()); + EXPECT_EQ(url::kAboutBlankURL, tabs[0]->navigations.front().virtual_url()); + EXPECT_EQ(url1_, tabs[1]->navigations.front().virtual_url()); + EXPECT_EQ(url2_, tabs[2]->navigations.front().virtual_url()); + EXPECT_EQ(2, entry_win->selected_tab_index); // Find the Tab to restore. SessionID tab_id_to_restore = SessionID::InvalidValue(); @@ -541,6 +545,12 @@ EXPECT_EQ(2, browser->tab_strip_model()->count()); EXPECT_EQ(url1_, browser->tab_strip_model()->GetActiveWebContents()->GetURL()); + + // Check that the window entry was adjusted. + EXPECT_EQ(2u, tabs.size()); + EXPECT_EQ(url::kAboutBlankURL, tabs[0]->navigations.front().virtual_url()); + EXPECT_EQ(url2_, tabs[1]->navigations.front().virtual_url()); + EXPECT_EQ(1, entry_win->selected_tab_index); } // Tests that a duplicate history entry is not created when we restore a page
diff --git a/chrome/browser/ssl/ssl_error_navigation_throttle_unittest.cc b/chrome/browser/ssl/ssl_error_navigation_throttle_unittest.cc index d75606e1..6020c75 100644 --- a/chrome/browser/ssl/ssl_error_navigation_throttle_unittest.cc +++ b/chrome/browser/ssl/ssl_error_navigation_throttle_unittest.cc
@@ -130,7 +130,7 @@ << "Asynchronous MockHandleSSLError: " << async_); content::NavigationThrottle::ThrottleCheckResult result = - handle_->CallWillFailRequestForTesting(base::nullopt); + handle_->CallWillFailRequestForTesting(main_rfh(), base::nullopt); EXPECT_FALSE(handle_->GetSSLInfo().is_valid()); EXPECT_EQ(content::NavigationThrottle::PROCEED, result); @@ -145,7 +145,7 @@ net::SSLInfo ssl_info; ssl_info.cert_status = net::CERT_STATUS_IS_EV; content::NavigationThrottle::ThrottleCheckResult result = - handle_->CallWillFailRequestForTesting(ssl_info); + handle_->CallWillFailRequestForTesting(main_rfh(), ssl_info); EXPECT_EQ(net::CERT_STATUS_IS_EV, handle_->GetSSLInfo().cert_status); EXPECT_EQ(content::NavigationThrottle::PROCEED, result); @@ -162,7 +162,7 @@ net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem"); ssl_info.cert_status = net::CERT_STATUS_COMMON_NAME_INVALID; content::NavigationThrottle::ThrottleCheckResult synchronous_result = - handle_->CallWillFailRequestForTesting(ssl_info); + handle_->CallWillFailRequestForTesting(main_rfh(), ssl_info); EXPECT_EQ(content::NavigationThrottle::DEFER, synchronous_result.action()); base::RunLoop().RunUntilIdle();
diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc index 43ca383..358dee3 100644 --- a/chrome/browser/supervised_user/supervised_user_service.cc +++ b/chrome/browser/supervised_user/supervised_user_service.cc
@@ -45,6 +45,7 @@ #include "content/public/browser/storage_partition.h" #include "extensions/buildflags/buildflags.h" #include "net/traffic_annotation/network_traffic_annotation.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" #include "ui/base/l10n/l10n_util.h" #if !defined(OS_ANDROID) @@ -588,7 +589,9 @@ supervised_users::IsSafeSitesOnlineCheckEnabled(profile_); if (use_online_check != url_filter_.HasAsyncURLChecker()) { if (use_online_check) - url_filter_.InitAsyncURLChecker(profile_->GetRequestContext()); + url_filter_.InitAsyncURLChecker( + content::BrowserContext::GetDefaultStoragePartition(profile_) + ->GetURLLoaderFactoryForBrowserProcess()); else url_filter_.ClearAsyncURLChecker(); }
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.cc b/chrome/browser/supervised_user/supervised_user_url_filter.cc index 1e3b6fb..1d954d6c 100644 --- a/chrome/browser/supervised_user/supervised_user_url_filter.cc +++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
@@ -32,6 +32,7 @@ #include "net/base/escape.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "net/base/url_util.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" #include "url/gurl.h" #include "url/url_constants.h" @@ -530,7 +531,7 @@ } void SupervisedUserURLFilter::InitAsyncURLChecker( - net::URLRequestContextGetter* context) { + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory) { net::NetworkTrafficAnnotationTag traffic_annotation = net::DefineNetworkTrafficAnnotation("supervised_user_url_filter", R"( semantics { @@ -552,8 +553,8 @@ "family dashboard." policy_exception_justification: "Not implemented." })"); - async_url_checker_.reset( - new SafeSearchURLChecker(context, traffic_annotation)); + async_url_checker_.reset(new SafeSearchURLChecker( + std::move(url_loader_factory), traffic_annotation)); } void SupervisedUserURLFilter::ClearAsyncURLChecker() {
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.h b/chrome/browser/supervised_user/supervised_user_url_filter.h index 4431521..5c69418 100644 --- a/chrome/browser/supervised_user/supervised_user_url_filter.h +++ b/chrome/browser/supervised_user/supervised_user_url_filter.h
@@ -28,9 +28,9 @@ class TaskRunner; } -namespace net { -class URLRequestContextGetter; -} +namespace network { +class SharedURLLoaderFactory; +} // namespace network // This class manages the filtering behavior for URLs, i.e. it tells callers // if a URL should be allowed, blocked or warned about. It uses information @@ -160,7 +160,8 @@ void SetManualURLs(std::map<GURL, bool> url_map); // Initializes the experimental asynchronous checker. - void InitAsyncURLChecker(net::URLRequestContextGetter* context); + void InitAsyncURLChecker( + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory); // Clears any asynchronous checker. void ClearAsyncURLChecker();
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 99743df0..d907022 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -2410,6 +2410,10 @@ "cocoa/profiles/profile_menu_controller.mm", "cocoa/renderer_context_menu/render_view_context_menu_mac.h", "cocoa/renderer_context_menu/render_view_context_menu_mac.mm", + "cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h", + "cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm", + "cocoa/renderer_context_menu/render_view_context_menu_mac_views.h", + "cocoa/renderer_context_menu/render_view_context_menu_mac_views.mm", "cocoa/scoped_menu_bar_lock.h", "cocoa/scoped_menu_bar_lock.mm", "cocoa/share_menu_controller.h", @@ -3491,9 +3495,6 @@ "app_list/app_list_model_builder.h", "app_list/app_list_model_updater.h", "app_list/app_list_model_updater_delegate.h", - "app_list/app_list_service.h", - "app_list/app_list_service_impl.cc", - "app_list/app_list_service_impl.h", "app_list/app_list_syncable_service.cc", "app_list/app_list_syncable_service.h", "app_list/app_list_syncable_service_factory.cc",
diff --git a/chrome/browser/ui/app_list/app_list_client_impl.cc b/chrome/browser/ui/app_list/app_list_client_impl.cc index 9441431..c3a28cb 100644 --- a/chrome/browser/ui/app_list/app_list_client_impl.cc +++ b/chrome/browser/ui/app_list/app_list_client_impl.cc
@@ -21,7 +21,6 @@ #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" #include "chrome/browser/ui/app_list/app_list_model_updater.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" #include "chrome/browser/ui/app_list/app_sync_ui_state_watcher.h" @@ -36,6 +35,12 @@ #include "ui/display/types/display_constants.h" #include "ui/gfx/geometry/rect.h" +namespace { + +AppListClientImpl* g_app_list_client_instance = nullptr; + +} // namespace + AppListClientImpl::AppListClientImpl() : template_url_service_observer_(this), binding_(this), @@ -47,21 +52,28 @@ ash::mojom::AppListClientPtr client; binding_.Bind(mojo::MakeRequest(&client)); app_list_controller_->SetClient(std::move(client)); - - AppListServiceImpl::GetInstance()->SetAppListControllerAndClient( - app_list_controller_.get(), this); - user_manager::UserManager::Get()->AddSessionStateObserver(this); + + DCHECK(!g_app_list_client_instance); + g_app_list_client_instance = this; } AppListClientImpl::~AppListClientImpl() { user_manager::UserManager::Get()->RemoveSessionStateObserver(this); + + DCHECK_EQ(this, g_app_list_client_instance); + g_app_list_client_instance = nullptr; +} + +// static +AppListClientImpl* AppListClientImpl::GetInstance() { + return g_app_list_client_instance; } void AppListClientImpl::StartSearch(const base::string16& raw_query) { if (search_controller_) { search_controller_->Start(raw_query); - controller_delegate_->OnSearchStarted(); + controller_delegate_.OnSearchStarted(); } } @@ -118,7 +130,7 @@ } void AppListClientImpl::ViewClosing() { - controller_delegate_->SetAppListDisplayId(display::kInvalidDisplayId); + controller_delegate_.SetAppListDisplayId(display::kInvalidDisplayId); } void AppListClientImpl::ViewShown(int64_t display_id) { @@ -127,7 +139,7 @@ base::UmaHistogramSparse("Apps.AppListBadgedAppsCount", model_updater_->BadgedItemCount()); } - controller_delegate_->SetAppListDisplayId(display_id); + controller_delegate_.SetAppListDisplayId(display_id); } void AppListClientImpl::ActivateItem(const std::string& id, int event_flags) { @@ -163,11 +175,11 @@ } void AppListClientImpl::OnAppListTargetVisibilityChanged(bool visible) { - AppListServiceImpl::GetInstance()->set_app_list_target_visible(visible); + app_list_target_visibility_ = visible; } void AppListClientImpl::OnAppListVisibilityChanged(bool visible) { - AppListServiceImpl::GetInstance()->set_app_list_visible(visible); + app_list_visible_ = visible; } void AppListClientImpl::StartVoiceInteractionSession() { @@ -275,7 +287,7 @@ new app_list::SearchResourceManager(profile_, model_updater_)); search_controller_ = app_list::CreateSearchController( - profile_, model_updater_, controller_delegate_); + profile_, model_updater_, &controller_delegate_); } app_list::SearchController* AppListClientImpl::GetSearchControllerForTest() { @@ -297,6 +309,38 @@ model_updater_->SetSearchEngineIsGoogle(is_google); } +void AppListClientImpl::ShowAndSwitchToState(ash::AppListState state) { + if (!app_list_controller_) + return; + app_list_controller_->ShowAppListAndSwitchToState(state); +} + +void AppListClientImpl::ShowAppList() { + // This may not work correctly if the profile passed in is different from the + // one the ash Shell is currently using. + if (!app_list_controller_) + return; + app_list_controller_->ShowAppList(); +} + +void AppListClientImpl::DismissAppList() { + if (!app_list_controller_) + return; + app_list_controller_->DismissAppList(); +} + +Profile* AppListClientImpl::GetCurrentAppListProfile() const { + return ChromeLauncherController::instance()->profile(); +} + +AppListControllerDelegate* AppListClientImpl::GetControllerDelegate() { + return &controller_delegate_; +} + +ash::mojom::AppListController* AppListClientImpl::GetAppListController() const { + return app_list_controller_.get(); +} + void AppListClientImpl::FlushMojoForTesting() { app_list_controller_.FlushForTesting(); binding_.FlushForTesting();
diff --git a/chrome/browser/ui/app_list/app_list_client_impl.h b/chrome/browser/ui/app_list/app_list_client_impl.h index 1095249..5d4cabb 100644 --- a/chrome/browser/ui/app_list/app_list_client_impl.h +++ b/chrome/browser/ui/app_list/app_list_client_impl.h
@@ -15,6 +15,7 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observer.h" +#include "chrome/browser/ui/app_list/app_list_controller_impl.h" #include "components/search_engines/template_url_service.h" #include "components/search_engines/template_url_service_observer.h" #include "components/user_manager/user_manager.h" @@ -26,7 +27,6 @@ class SearchResourceManager; } // namespace app_list -class AppListControllerDelegate; class AppListModelUpdater; class AppSyncUIStateWatcher; class Profile; @@ -39,6 +39,8 @@ AppListClientImpl(); ~AppListClientImpl() override; + static AppListClientImpl* GetInstance(); + // ash::mojom::AppListClient: void StartSearch(const base::string16& raw_query) override; void OpenSearchResult(const std::string& result_id, int event_flags) override; @@ -76,9 +78,23 @@ // client is accessed or active user is changed. void UpdateProfile(); - void set_controller_delegate(AppListControllerDelegate* controller_delegate) { - controller_delegate_ = controller_delegate; + // Shows the app list if it isn't already showing and switches to |state|, + // unless it is |INVALID_STATE| (in which case, opens on the default state). + void ShowAndSwitchToState(ash::AppListState state); + + void ShowAppList(); + void DismissAppList(); + + bool app_list_target_visibility() const { + return app_list_target_visibility_; } + bool app_list_visible() const { return app_list_visible_; } + + // Returns a pointer to control the app list views in ash. + ash::mojom::AppListController* GetAppListController() const; + + AppListControllerDelegate* GetControllerDelegate(); + Profile* GetCurrentAppListProfile() const; app_list::SearchController* GetSearchControllerForTest(); @@ -95,11 +111,10 @@ // Updates the speech webview and start page for the current |profile_|. void SetUpSearchUI(); - // Unowned pointer to the controller delegate. - AppListControllerDelegate* controller_delegate_ = nullptr; // Unowned pointer to the associated profile. May change if SetProfile is // called. Profile* profile_ = nullptr; + // Unowned pointer to the model updater owned by AppListSyncableService. // Will change if |profile_| changes. AppListModelUpdater* model_updater_ = nullptr; @@ -114,6 +129,11 @@ mojo::Binding<ash::mojom::AppListClient> binding_; ash::mojom::AppListControllerPtr app_list_controller_; + AppListControllerDelegateImpl controller_delegate_; + + bool app_list_target_visibility_ = false; + bool app_list_visible_ = false; + base::WeakPtrFactory<AppListClientImpl> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(AppListClientImpl);
diff --git a/chrome/browser/ui/app_list/app_list_service_impl_browsertest.cc b/chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc similarity index 79% rename from chrome/browser/ui/app_list/app_list_service_impl_browsertest.cc rename to chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc index 662f1d4..a2b8d93 100644 --- a/chrome/browser/ui/app_list/app_list_service_impl_browsertest.cc +++ b/chrome/browser/ui/app_list/app_list_client_impl_browsertest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/app_list/app_list_service_impl.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include <memory> @@ -13,7 +13,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/app_list/app_list_model_updater.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/chrome_app_list_item.h" #include "chrome/browser/ui/app_list/test/chrome_app_list_test_support.h" #include "chrome/browser/ui/browser.h" @@ -23,18 +22,18 @@ #include "extensions/common/constants.h" #include "ui/base/models/menu_model.h" -// Browser Test for AppListServiceImpl. -using AppListServiceImplBrowserTest = InProcessBrowserTest; +// Browser Test for AppListClientImpl. +using AppListClientImplBrowserTest = InProcessBrowserTest; // Test that all the items in the context menu for a hosted app have valid // labels. -IN_PROC_BROWSER_TEST_F(AppListServiceImplBrowserTest, ShowContextMenu) { - AppListService* service = AppListService::Get(); - EXPECT_TRUE(service); +IN_PROC_BROWSER_TEST_F(AppListClientImplBrowserTest, ShowContextMenu) { + AppListClientImpl* client = AppListClientImpl::GetInstance(); + EXPECT_TRUE(client); // Show the app list to ensure it has loaded a profile. - service->Show(); - AppListModelUpdater* model_updater = test::GetModelUpdater(service); + client->ShowAppList(); + AppListModelUpdater* model_updater = test::GetModelUpdater(client); EXPECT_TRUE(model_updater); // Get the webstore hosted app, which is always present.
diff --git a/chrome/browser/ui/app_list/app_list_client_interactive_uitest.cc b/chrome/browser/ui/app_list/app_list_client_interactive_uitest.cc new file mode 100644 index 0000000..f507edc --- /dev/null +++ b/chrome/browser/ui/app_list/app_list_client_interactive_uitest.cc
@@ -0,0 +1,26 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/app_list/app_list_client_impl.h" + +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" + +// Interactive UI Test for AppListClientImpl that runs on all platforms +// supporting app_list. Interactive because the app list uses focus changes to +// dismiss itself, which will cause tests that check the visibility to fail +// flakily. +using AppListClientInteractiveTest = InProcessBrowserTest; + +// Show the app list, then dismiss it. +IN_PROC_BROWSER_TEST_F(AppListClientInteractiveTest, ShowAndDismiss) { + AppListClientImpl* client = AppListClientImpl::GetInstance(); + ASSERT_FALSE(client->app_list_visible()); + client->ShowAppList(); + client->FlushMojoForTesting(); + ASSERT_TRUE(client->app_list_visible()); + client->DismissAppList(); + client->FlushMojoForTesting(); + ASSERT_FALSE(client->app_list_visible()); +}
diff --git a/chrome/browser/ui/app_list/app_list_controller_browsertest.cc b/chrome/browser/ui/app_list/app_list_controller_browsertest.cc index 8751d04a..ea6aa10 100644 --- a/chrome/browser/ui/app_list/app_list_controller_browsertest.cc +++ b/chrome/browser/ui/app_list/app_list_controller_browsertest.cc
@@ -16,7 +16,6 @@ #include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" #include "chrome/browser/ui/app_list/app_list_model_updater.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" #include "chrome/browser/ui/app_list/search/search_controller.h" #include "chrome/browser/ui/app_list/test/chrome_app_list_test_support.h" #include "chrome/browser/ui/browser.h" @@ -34,8 +33,8 @@ // Test the CreateNewWindow function of the controller delegate. IN_PROC_BROWSER_TEST_F(AppListControllerBrowserTest, CreateNewWindow) { - AppListService* service = AppListService::Get(); - AppListControllerDelegate* controller(service->GetControllerDelegate()); + AppListClientImpl* client = AppListClientImpl::GetInstance(); + AppListControllerDelegate* controller(client->GetControllerDelegate()); ASSERT_TRUE(controller); EXPECT_EQ(1U, chrome::GetBrowserCount(browser()->profile())); @@ -64,14 +63,16 @@ .AppendASCII("platform_apps") .AppendASCII("minimal"); - AppListServiceImpl* service = AppListServiceImpl::GetInstance(); - ASSERT_TRUE(service); - AppListModelUpdater* model_updater = test::GetModelUpdater(service); - app_list::SearchController* search_controller = - service->GetAppListClient()->GetSearchControllerForTest(); + AppListClientImpl* client = AppListClientImpl::GetInstance(); + ASSERT_TRUE(client); + // Associate |client| with the current profile. + client->UpdateProfile(); + + AppListModelUpdater* model_updater = test::GetModelUpdater(client); ASSERT_TRUE(model_updater); - // Getting the AppListClient to associate it with the current profile. - ASSERT_TRUE(service->GetAppListClient()); + app_list::SearchController* search_controller = + client->GetSearchControllerForTest(); + ASSERT_TRUE(search_controller); // Install the extension. const extensions::Extension* extension = InstallExtension( @@ -81,8 +82,8 @@ const std::string title = extension->name(); // Show the app list first, otherwise we won't have a search box to update. - service->Show(); - service->FlushForTesting(); + client->ShowAppList(); + client->FlushMojoForTesting(); // Currently the search box is empty, so we have no result. EXPECT_FALSE(search_controller->GetResultByTitleForTest(title)); @@ -92,19 +93,19 @@ true /* initiated_by_user */); // Ensure everything is done, from Chrome to Ash and backwards. - service->FlushForTesting(); + client->FlushMojoForTesting(); EXPECT_TRUE(search_controller->GetResultByTitleForTest(title)); // Uninstall the extension. UninstallExtension(extension->id()); // Ensure everything is done, from Chrome to Ash and backwards. - service->FlushForTesting(); + client->FlushMojoForTesting(); // We cannot find the extension any more. EXPECT_FALSE(search_controller->GetResultByTitleForTest(title)); - service->DismissAppList(); + client->DismissAppList(); } class AppListControllerGuestModeBrowserTest : public InProcessBrowserTest { @@ -130,9 +131,9 @@ // Test creating the initial app list in guest mode. IN_PROC_BROWSER_TEST_F(AppListControllerGuestModeBrowserTest, Incognito) { - AppListService* service = AppListService::Get(); - EXPECT_TRUE(service->GetCurrentAppListProfile()); + AppListClientImpl* client = AppListClientImpl::GetInstance(); + EXPECT_TRUE(client->GetCurrentAppListProfile()); - service->Show(); - EXPECT_EQ(browser()->profile(), service->GetCurrentAppListProfile()); + client->ShowAppList(); + EXPECT_EQ(browser()->profile(), client->GetCurrentAppListProfile()); }
diff --git a/chrome/browser/ui/app_list/app_list_service.h b/chrome/browser/ui/app_list/app_list_service.h deleted file mode 100644 index fc5cca59..0000000 --- a/chrome/browser/ui/app_list/app_list_service.h +++ /dev/null
@@ -1,48 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_H_ -#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_H_ - -#include "base/macros.h" - -class Profile; -class AppListControllerDelegate; - -class AppListService { - public: - // Get the AppListService. - static AppListService* Get(); - - // Show the app list for the profile configured in the user data dir for the - // current browser process. - virtual void Show() = 0; - - // Dismiss the app list. - virtual void DismissAppList() = 0; - - // Get the profile the app list is currently showing. - virtual Profile* GetCurrentAppListProfile() = 0; - - // Returns true if the app list target is visible. - virtual bool GetTargetVisibility() const = 0; - - // Returns true if the app list is visible. - virtual bool IsAppListVisible() const = 0; - - // Returns a pointer to the platform specific AppListControllerDelegate. - virtual AppListControllerDelegate* GetControllerDelegate() = 0; - - // Flush pending mojo calls to Ash AppListControllerImpl. - virtual void FlushForTesting() = 0; - - protected: - AppListService() {} - virtual ~AppListService() {} - - private: - DISALLOW_COPY_AND_ASSIGN(AppListService); -}; - -#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_H_
diff --git a/chrome/browser/ui/app_list/app_list_service_impl.cc b/chrome/browser/ui/app_list/app_list_service_impl.cc deleted file mode 100644 index 65540bee..0000000 --- a/chrome/browser/ui/app_list/app_list_service_impl.cc +++ /dev/null
@@ -1,99 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/app_list/app_list_service_impl.h" - -#include <stddef.h> -#include <stdint.h> -#include <string> -#include <utility> - -#include "ash/app_list/app_list_controller_impl.h" -#include "ash/shell.h" -#include "base/bind.h" -#include "base/memory/singleton.h" -#include "base/strings/string16.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/profiles/profile_manager.h" -#include "chrome/browser/ui/app_list/app_list_client_impl.h" -#include "chrome/browser/ui/app_list/app_list_syncable_service.h" -#include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" -#include "chrome/browser/ui/ash/ash_util.h" -#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" -#include "chrome/browser/ui/ash/session_util.h" - -// static -AppListServiceImpl* AppListServiceImpl::GetInstance() { - return base::Singleton<AppListServiceImpl, - base::LeakySingletonTraits<AppListServiceImpl>>::get(); -} - -AppListServiceImpl::AppListServiceImpl() - : local_state_(g_browser_process->local_state()), weak_factory_(this) {} - -AppListServiceImpl::~AppListServiceImpl() = default; - -void AppListServiceImpl::SetAppListControllerAndClient( - ash::mojom::AppListController* app_list_controller, - AppListClientImpl* app_list_client) { - app_list_controller_ = app_list_controller; - controller_delegate_.SetAppListController(app_list_controller); - app_list_client_ = app_list_client; - app_list_client_->set_controller_delegate(&controller_delegate_); -} - -ash::mojom::AppListController* AppListServiceImpl::GetAppListController() { - return app_list_controller_; -} - -AppListClientImpl* AppListServiceImpl::GetAppListClient() { - app_list_client_->UpdateProfile(); - return app_list_client_; -} - -AppListControllerDelegate* AppListServiceImpl::GetControllerDelegate() { - return &controller_delegate_; -} - -Profile* AppListServiceImpl::GetCurrentAppListProfile() { - return ChromeLauncherController::instance()->profile(); -} - -void AppListServiceImpl::Show() { - // This may not work correctly if the profile passed in is different from the - // one the ash Shell is currently using. - if (!app_list_controller_) - return; - app_list_controller_->ShowAppList(); -} - -void AppListServiceImpl::ShowAndSwitchToState(ash::AppListState state) { - if (!app_list_controller_) - return; - app_list_controller_->ShowAppListAndSwitchToState(state); -} - -void AppListServiceImpl::DismissAppList() { - if (!app_list_controller_) - return; - app_list_controller_->DismissAppList(); -} - -bool AppListServiceImpl::GetTargetVisibility() const { - return app_list_target_visible_; -} - -bool AppListServiceImpl::IsAppListVisible() const { - return app_list_visible_; -} - -// static -AppListService* AppListService::Get() { - return AppListServiceImpl::GetInstance(); -} - -void AppListServiceImpl::FlushForTesting() { - app_list_client_->FlushMojoForTesting(); -}
diff --git a/chrome/browser/ui/app_list/app_list_service_impl.h b/chrome/browser/ui/app_list/app_list_service_impl.h deleted file mode 100644 index 37d5a55..0000000 --- a/chrome/browser/ui/app_list/app_list_service_impl.h +++ /dev/null
@@ -1,82 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_IMPL_H_ -#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_IMPL_H_ - -#include <memory> -#include <string> - -#include "ash/public/interfaces/app_list.mojom.h" -#include "base/macros.h" -#include "base/memory/weak_ptr.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/app_list/app_list_controller_impl.h" -#include "chrome/browser/ui/app_list/app_list_service.h" - -class AppListClientImpl; -class AppListControllerDelegateImpl; - -namespace base { -template <typename T> -struct DefaultSingletonTraits; -} - -// An implementation of AppListService. -class AppListServiceImpl : public AppListService { - public: - ~AppListServiceImpl() override; - - static AppListServiceImpl* GetInstance(); - - // AppListService overrides: - Profile* GetCurrentAppListProfile() override; - void Show() override; - void DismissAppList() override; - bool IsAppListVisible() const override; - bool GetTargetVisibility() const override; - void FlushForTesting() override; - AppListControllerDelegate* GetControllerDelegate() override; - - // Shows the app list if it isn't already showing and Switches to |state|, - // unless it is |INVALID_STATE| (in which case, opens on the default state). - void ShowAndSwitchToState(ash::AppListState state); - - // Updates app list (target) visibility from AppListClientImpl. - void set_app_list_visible(bool visible) { app_list_visible_ = visible; } - void set_app_list_target_visible(bool visible) { - app_list_target_visible_ = visible; - } - - // Sets the pointers to the app list controller in Ash, and the app list - // client in Chrome. - void SetAppListControllerAndClient( - ash::mojom::AppListController* app_list_controller, - AppListClientImpl* app_list_client); - - // Returns a pointer to control the app list views in ash. - ash::mojom::AppListController* GetAppListController(); - AppListClientImpl* GetAppListClient(); - - private: - friend struct base::DefaultSingletonTraits<AppListServiceImpl>; - - AppListServiceImpl(); - std::string GetProfileName(); - - PrefService* local_state_; - - AppListControllerDelegateImpl controller_delegate_; - ash::mojom::AppListController* app_list_controller_ = nullptr; - AppListClientImpl* app_list_client_ = nullptr; - - bool app_list_visible_ = false; - bool app_list_target_visible_ = false; - - base::WeakPtrFactory<AppListServiceImpl> weak_factory_; - - DISALLOW_COPY_AND_ASSIGN(AppListServiceImpl); -}; - -#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_IMPL_H_
diff --git a/chrome/browser/ui/app_list/app_list_service_interactive_uitest.cc b/chrome/browser/ui/app_list/app_list_service_interactive_uitest.cc deleted file mode 100644 index 966d716..0000000 --- a/chrome/browser/ui/app_list/app_list_service_interactive_uitest.cc +++ /dev/null
@@ -1,25 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/ui/app_list/app_list_service.h" - -#include "chrome/browser/ui/browser.h" -#include "chrome/test/base/in_process_browser_test.h" - -// Interactive UI Test for AppListService that runs on all platforms supporting -// app_list. Interactive because the app list uses focus changes to dismiss -// itself, which will cause tests that check the visibility to fail flakily. -using AppListServiceInteractiveTest = InProcessBrowserTest; - -// Show the app list, then dismiss it. -IN_PROC_BROWSER_TEST_F(AppListServiceInteractiveTest, ShowAndDismiss) { - AppListService* service = AppListService::Get(); - ASSERT_FALSE(service->IsAppListVisible()); - service->Show(); - service->FlushForTesting(); - ASSERT_TRUE(service->IsAppListVisible()); - service->DismissAppList(); - service->FlushForTesting(); - ASSERT_FALSE(service->IsAppListVisible()); -}
diff --git a/chrome/browser/ui/app_list/app_list_syncable_service.cc b/chrome/browser/ui/app_list/app_list_syncable_service.cc index e6c2a990..6cd93450 100644 --- a/chrome/browser/ui/app_list/app_list_syncable_service.cc +++ b/chrome/browser/ui/app_list/app_list_syncable_service.cc
@@ -19,8 +19,8 @@ #include "chrome/browser/chromeos/genius_app/app_id.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/app_list_model_updater.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/arc/arc_app_item.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" #include "chrome/browser/ui/app_list/arc/arc_app_model_builder.h" @@ -388,9 +388,9 @@ // TODO(calamity): make this a DCHECK after a dev channel release. CHECK(IsExtensionServiceReady()); AppListControllerDelegate* controller = NULL; - AppListService* service = AppListService::Get(); - if (service) - controller = service->GetControllerDelegate(); + AppListClientImpl* client = AppListClientImpl::GetInstance(); + if (client) + controller = client->GetControllerDelegate(); apps_builder_.reset(new ExtensionAppModelBuilder(controller)); if (arc::IsArcAllowedForProfile(profile_)) arc_apps_builder_.reset(new ArcAppModelBuilder(controller));
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc index 2a2eb4a..690ad32 100644 --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
@@ -20,7 +20,6 @@ #include "chrome/browser/chromeos/arc/policy/arc_policy_util.h" #include "chrome/browser/chromeos/login/session/user_session_manager.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h" #include "chrome/browser/ui/app_list/arc/arc_app_utils.h" #include "chrome/browser/ui/app_list/arc/arc_package_syncable_service.h"
diff --git a/chrome/browser/ui/app_list/arc/arc_usb_host_permission_browsertest.cc b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_browsertest.cc index af49e55..1efc37a2d 100644 --- a/chrome/browser/ui/app_list/arc/arc_usb_host_permission_browsertest.cc +++ b/chrome/browser/ui/app_list/arc/arc_usb_host_permission_browsertest.cc
@@ -11,7 +11,6 @@ #include "chrome/browser/chromeos/arc/arc_session_manager.h" #include "chrome/browser/chromeos/arc/arc_util.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h" #include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
diff --git a/chrome/browser/ui/app_list/chrome_app_list_item.cc b/chrome/browser/ui/app_list/chrome_app_list_item.cc index 68acbf5..fc21feb 100644 --- a/chrome/browser/ui/app_list/chrome_app_list_item.cc +++ b/chrome/browser/ui/app_list/chrome_app_list_item.cc
@@ -7,7 +7,7 @@ #include <utility> #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/app_list/app_list_service.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" #include "chrome/browser/ui/app_list/chrome_app_list_model_updater.h" #include "extensions/browser/app_sorting.h" @@ -121,7 +121,7 @@ AppListControllerDelegate* ChromeAppListItem::GetController() { return g_controller_for_test != nullptr ? g_controller_for_test - : AppListService::Get()->GetControllerDelegate(); + : AppListClientImpl::GetInstance()->GetControllerDelegate(); } void ChromeAppListItem::UpdateFromSync(
diff --git a/chrome/browser/ui/app_list/chrome_app_list_model_updater.cc b/chrome/browser/ui/app_list/chrome_app_list_model_updater.cc index 806cf85..85ae4fc1 100644 --- a/chrome/browser/ui/app_list/chrome_app_list_model_updater.cc +++ b/chrome/browser/ui/app_list/chrome_app_list_model_updater.cc
@@ -8,7 +8,7 @@ #include <utility> #include "base/strings/utf_string_conversions.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/chrome_app_list_item.h" #include "chrome/browser/ui/app_list/search/chrome_search_result.h" #include "chrome/browser/ui/ash/ash_util.h" @@ -26,7 +26,7 @@ return; app_list_controller_ = - active ? AppListServiceImpl::GetInstance()->GetAppListController() + active ? AppListClientImpl::GetInstance()->GetAppListController() : nullptr; if (!app_list_controller_) return;
diff --git a/chrome/browser/ui/app_list/crostini/crostini_installer_view_browsertest.cc b/chrome/browser/ui/app_list/crostini/crostini_installer_view_browsertest.cc index db3433e..0030e1d7 100644 --- a/chrome/browser/ui/app_list/crostini/crostini_installer_view_browsertest.cc +++ b/chrome/browser/ui/app_list/crostini/crostini_installer_view_browsertest.cc
@@ -10,10 +10,9 @@ #include "base/test/scoped_feature_list.h" #include "chrome/browser/chromeos/crostini/crostini_pref_names.h" #include "chrome/browser/chromeos/crostini/crostini_util.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/app_list/app_list_client_impl.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" #include "chrome/browser/ui/app_list/crostini/crostini_app_model_builder.h" -#include "chrome/browser/ui/app_list/crostini/crostini_installer_view.h" #include "chrome/browser/ui/app_list/test/chrome_app_list_test_support.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/test/test_browser_dialog.h" @@ -30,9 +29,7 @@ // DialogBrowserTest: void ShowUi(const std::string& name) override { - AppListServiceImpl* service = test::GetAppListServiceImpl(); - AppListClientImpl* client = service->GetAppListClient(); - client->ActivateItem(kCrostiniTerminalId, 0); + test::GetAppListClient()->ActivateItem(kCrostiniTerminalId, 0); } void SetUp() override {
diff --git a/chrome/browser/ui/app_list/test/chrome_app_list_test_support.cc b/chrome/browser/ui/app_list/test/chrome_app_list_test_support.cc index 2692a20..4ad704c 100644 --- a/chrome/browser/ui/app_list/test/chrome_app_list_test_support.cc +++ b/chrome/browser/ui/app_list/test/chrome_app_list_test_support.cc
@@ -10,8 +10,7 @@ #include "base/run_loop.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile_manager.h" -#include "chrome/browser/ui/app_list/app_list_service.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" @@ -54,16 +53,16 @@ } // namespace -AppListModelUpdater* GetModelUpdater(AppListService* service) { +AppListModelUpdater* GetModelUpdater(AppListClientImpl* client) { return app_list::AppListSyncableServiceFactory::GetForProfile( - service->GetCurrentAppListProfile()) + client->GetCurrentAppListProfile()) ->GetModelUpdater(); } -AppListServiceImpl* GetAppListServiceImpl() { - // AppListServiceImpl is the only subclass of AppListService, which has pure - // virtuals. So this must either be NULL, or an AppListServiceImpl. - return static_cast<AppListServiceImpl*>(AppListService::Get()); +AppListClientImpl* GetAppListClient() { + AppListClientImpl* client = AppListClientImpl::GetInstance(); + client->UpdateProfile(); + return client; } Profile* CreateSecondProfileAsync() {
diff --git a/chrome/browser/ui/app_list/test/chrome_app_list_test_support.h b/chrome/browser/ui/app_list/test/chrome_app_list_test_support.h index e5df15ee..00c5c4e 100644 --- a/chrome/browser/ui/app_list/test/chrome_app_list_test_support.h +++ b/chrome/browser/ui/app_list/test/chrome_app_list_test_support.h
@@ -5,18 +5,18 @@ #ifndef CHROME_BROWSER_UI_APP_LIST_TEST_CHROME_APP_LIST_TEST_SUPPORT_H_ #define CHROME_BROWSER_UI_APP_LIST_TEST_CHROME_APP_LIST_TEST_SUPPORT_H_ +class AppListClientImpl; class AppListModelUpdater; -class AppListService; -class AppListServiceImpl; class Profile; namespace test { // Gets the model updater keyed to the profile currently associated with // |service|. -AppListModelUpdater* GetModelUpdater(AppListService* service); +AppListModelUpdater* GetModelUpdater(AppListClientImpl* client); -AppListServiceImpl* GetAppListServiceImpl(); +// Gets a client to control AppList or get its status. +AppListClientImpl* GetAppListClient(); // Creates a second profile in a nested run loop for testing the app list. Profile* CreateSecondProfileAsync();
diff --git a/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc b/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc index 12890a8..0ede81c2 100644 --- a/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc +++ b/chrome/browser/ui/ash/launcher/arc_app_launcher_browsertest.cc
@@ -20,8 +20,8 @@ #include "chrome/browser/chromeos/arc/arc_session_manager.h" #include "chrome/browser/chromeos/arc/arc_util.h" #include "chrome/browser/extensions/extension_browsertest.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/app_list_syncable_service.h" #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" @@ -491,8 +491,8 @@ SendPackageAdded(kTestAppPackage, true); const std::string app_id = GetTestApp1Id(kTestAppPackage); - AppListService* service = AppListService::Get(); - AppListControllerDelegate* delegate = service->GetControllerDelegate(); + AppListClientImpl* client = AppListClientImpl::GetInstance(); + AppListControllerDelegate* delegate = client->GetControllerDelegate(); EXPECT_FALSE(delegate->IsAppOpen(app_id)); arc::LaunchApp(profile(), app_id, ui::EF_LEFT_MOUSE_BUTTON); EXPECT_FALSE(delegate->IsAppOpen(app_id));
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc index c221097c..b60bb40 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
@@ -28,7 +28,7 @@ #include "chrome/browser/prefs/pref_service_syncable_util.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" -#include "chrome/browser/ui/app_list/app_list_service_impl.h" +#include "chrome/browser/ui/app_list/app_list_client_impl.h" #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" #include "chrome/browser/ui/app_list/app_sync_ui_state.h" #include "chrome/browser/ui/app_list/arc/arc_app_icon_loader.h" @@ -515,7 +515,7 @@ } if (window->IsActive() && allow_minimize && - !AppListServiceImpl::GetInstance()->GetTargetVisibility()) { + !AppListClientImpl::GetInstance()->app_list_target_visibility()) { window->Minimize(); return ash::SHELF_ACTION_WINDOW_MINIMIZED; }
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc index fc868a2..88da020 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
@@ -32,7 +32,6 @@ #include "chrome/browser/extensions/launch_util.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_test_util.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h"
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm index 34daec2..47463649 100644 --- a/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm +++ b/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm
@@ -68,7 +68,6 @@ // returned. - (NSString*) appendPermissionsForPrompt:(const ExtensionInstallPrompt::Prompt&)prompt - withType:(ExtensionInstallPrompt::PermissionsType)type children:(NSMutableArray*)children; - (void)updateViewFrame:(NSRect)frame; @end @@ -641,7 +640,6 @@ - (NSArray*)buildWarnings:(const ExtensionInstallPrompt::Prompt&)prompt { NSMutableArray* warnings = [NSMutableArray array]; NSString* heading = nil; - NSString* withheldHeading = nil; bool hasPermissions = prompt.GetPermissionCount( ExtensionInstallPrompt::PermissionsType::ALL_PERMISSIONS); @@ -649,18 +647,10 @@ kBoldText | kAutoExpandCell | kNoExpandMarker; if (prompt.ShouldShowPermissions()) { NSMutableArray* children = [NSMutableArray array]; - NSMutableArray* withheldChildren = [NSMutableArray array]; heading = [self appendPermissionsForPrompt:prompt - withType:ExtensionInstallPrompt::PermissionsType - ::REGULAR_PERMISSIONS children:children]; - withheldHeading = - [self appendPermissionsForPrompt:prompt - withType:ExtensionInstallPrompt::PermissionsType - ::WITHHELD_PERMISSIONS - children:withheldChildren]; if (!hasPermissions) { [children addObject: @@ -676,13 +666,6 @@ cellAttributes:warningCellAttributes children:children]]; } - - // Add withheld permissions to the prompt if they exist. - if (withheldHeading) { - [warnings addObject:[self buildItemWithTitle:withheldHeading - cellAttributes:warningCellAttributes - children:withheldChildren]]; - } } if (prompt.GetRetainedFileCount() > 0) { @@ -741,28 +724,26 @@ - (NSString*) appendPermissionsForPrompt:(const ExtensionInstallPrompt::Prompt&)prompt - withType:(ExtensionInstallPrompt::PermissionsType)type children:(NSMutableArray*)children { - size_t permissionsCount = prompt.GetPermissionCount(type); + size_t permissionsCount = prompt.GetPermissionCount(); if (permissionsCount == 0) return NULL; for (size_t i = 0; i < permissionsCount; ++i) { - NSDictionary* item = [self - buildItemWithTitle:SysUTF16ToNSString(prompt.GetPermission(i, type)) - cellAttributes:kUseBullet - children:nil]; + NSDictionary* item = + [self buildItemWithTitle:SysUTF16ToNSString(prompt.GetPermission(i)) + cellAttributes:kUseBullet + children:nil]; [children addObject:item]; // If there are additional details, add them below this item. - if (!prompt.GetPermissionsDetails(i, type).empty()) { + if (!prompt.GetPermissionsDetails(i).empty()) { if (prompt.GetIsShowingDetails( ExtensionInstallPrompt::PERMISSIONS_DETAILS, i)) { - item = - [self buildItemWithTitle:SysUTF16ToNSString( - prompt.GetPermissionsDetails(i, type)) - cellAttributes:kNoExpandMarker - children:nil]; + item = [self buildItemWithTitle:SysUTF16ToNSString( + prompt.GetPermissionsDetails(i)) + cellAttributes:kNoExpandMarker + children:nil]; [children addObject:item]; } @@ -772,7 +753,7 @@ } } - return SysUTF16ToNSString(prompt.GetPermissionsHeading(type)); + return SysUTF16ToNSString(prompt.GetPermissionsHeading()); } - (void)updateViewFrame:(NSRect)frame {
diff --git a/chrome/browser/ui/cocoa/hung_renderer_controller.mm b/chrome/browser/ui/cocoa/hung_renderer_controller.mm index d2127e1..8f295a6 100644 --- a/chrome/browser/ui/cocoa/hung_renderer_controller.mm +++ b/chrome/browser/ui/cocoa/hung_renderer_controller.mm
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "base/scoped_observer.h" #include "base/strings/sys_string_conversions.h" +#include "chrome/browser/hang_monitor/hang_crash_dump.h" #import "chrome/browser/ui/cocoa/multi_key_equivalent_button.h" #import "chrome/browser/ui/cocoa/tab_contents/favicon_util_mac.h" #include "chrome/browser/ui/hung_renderer/hung_renderer_core.h" @@ -208,8 +209,11 @@ } - (IBAction)kill:(id)sender { - if (hungWidget_) - hungWidget_->GetProcess()->Shutdown(content::RESULT_CODE_HUNG); + if (hungWidget_) { + auto* rph = hungWidget_->GetProcess(); + CrashDumpHungChildProcess(rph->GetProcess().Handle()); + rph->Shutdown(content::RESULT_CODE_HUNG); + } // Cannot call performClose:, because the close button is disabled. [self close];
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h index ca2449d..21faae5 100644 --- a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h
@@ -7,13 +7,10 @@ #import <Cocoa/Cocoa.h> -#include "base/mac/scoped_nsobject.h" #include "base/macros.h" #include "chrome/browser/renderer_context_menu/render_view_context_menu.h" #include "ui/base/cocoa/text_services_context_menu.h" -@class MenuControllerCocoa; - // Mac implementation of the context menu display code. Uses a Cocoa NSMenu // to display the context menu. Internally uses an obj-c object as the // target of the NSMenu, bridging back to this C++ class. @@ -21,8 +18,7 @@ public ui::TextServicesContextMenu::Delegate { public: RenderViewContextMenuMac(content::RenderFrameHost* render_frame_host, - const content::ContextMenuParams& params, - NSView* parent_view); + const content::ContextMenuParams& params); ~RenderViewContextMenuMac() override; // SimpleMenuModel::Delegate: @@ -30,9 +26,6 @@ bool IsCommandIdChecked(int command_id) const override; bool IsCommandIdEnabled(int command_id) const override; - // RenderViewContextMenuBase: - void Show() override; - // TextServicesContextMenu::Delegate: base::string16 GetSelectedText() const override; bool IsTextDirectionEnabled( @@ -42,47 +35,23 @@ void UpdateTextDirection(base::i18n::TextDirection direction) override; protected: + // Adds menu to the platform's toolkit. + void InitToolkitMenu(); + // RenderViewContextMenu: void AppendPlatformEditableItems() override; private: - friend class ToolkitDelegateMac; - - // Adds menu to the platform's toolkit. - void InitToolkitMenu(); - - // Cancels the menu. - void CancelToolkitMenu(); - - // Updates the status and text of the specified context-menu item. - void UpdateToolkitMenuItem(int command_id, - bool enabled, - bool hidden, - const base::string16& title); - // Handler for the "Look Up" menu item. void LookUpInDictionary(); // Returns the ContextMenuParams value associated with |direction|. int ParamsForTextDirection(base::i18n::TextDirection direction) const; - // The Cocoa menu controller for this menu. - base::scoped_nsobject<MenuControllerCocoa> menu_controller_; - - // The Cocoa parent view. - NSView* parent_view_; - // The context menu that adds and handles Speech and BiDi. ui::TextServicesContextMenu text_services_context_menu_; DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuMac); }; -// The ChromeSwizzleServicesMenuUpdater filters Services menu items in the -// contextual menus and elsewhere using swizzling. -@interface ChromeSwizzleServicesMenuUpdater : NSObject -// Return filtered entries, for testing. -+ (void)storeFilteredEntriesForTestingInArray:(NSMutableArray*)array; -@end - #endif // CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_H_
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.mm b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.mm index 60c6b53..425698b4 100644 --- a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.mm +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.mm
@@ -6,191 +6,27 @@ #include <utility> -#include "base/compiler_specific.h" #include "base/mac/mac_util.h" -#import "base/mac/scoped_objc_class_swizzler.h" -#import "base/mac/scoped_sending_event.h" #include "base/macros.h" -#include "base/message_loop/message_loop_current.h" -#import "base/message_loop/message_pump_mac.h" #include "base/strings/sys_string_conversions.h" #include "chrome/app/chrome_command_ids.h" -#import "chrome/browser/mac/nsprocessinfo_additions.h" #include "chrome/grit/generated_resources.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/render_widget_host.h" #include "content/public/browser/render_widget_host_view.h" -#import "ui/base/cocoa/menu_controller.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "ui/resources/grit/ui_resources.h" #include "ui/strings/grit/ui_strings.h" -using content::WebContents; - -namespace { - -IMP g_original_populatemenu_implementation = nullptr; - -// |g_filtered_entries_array| is only set during testing (see -// +[ChromeSwizzleServicesMenuUpdater storeFilteredEntriesForTestingInArray:]). -// Otherwise it remains nil. -NSMutableArray* g_filtered_entries_array = nil; - -// Retrieves an NSMenuItem which has the specified command_id. This function -// traverses the given |model| in the depth-first order. When this function -// finds an item whose command_id is the same as the given |command_id|, it -// returns the NSMenuItem associated with the item. This function emulates -// views::MenuItemViews::GetMenuItemByID() for Mac. -NSMenuItem* GetMenuItemByID(ui::MenuModel* model, - NSMenu* menu, - int command_id) { - for (int i = 0; i < model->GetItemCount(); ++i) { - NSMenuItem* item = [menu itemAtIndex:i]; - if (model->GetCommandIdAt(i) == command_id) - return item; - - ui::MenuModel* submenu = model->GetSubmenuModelAt(i); - if (submenu && [item hasSubmenu]) { - NSMenuItem* subitem = GetMenuItemByID(submenu, - [item submenu], - command_id); - if (subitem) - return subitem; - } - } - return nil; -} - -} // namespace - -// An AppKit-private class that adds Services items to contextual menus and -// the application Services menu. -@interface _NSServicesMenuUpdater : NSObject -- (void)populateMenu:(NSMenu*)menu - withServiceEntries:(NSArray*)entries - forDisplay:(BOOL)display; -@end - -// An AppKit-private class representing a Services menu entry. -@interface _NSServiceEntry : NSObject -- (NSString*)bundleIdentifier; -@end - -@implementation ChromeSwizzleServicesMenuUpdater - -- (void)populateMenu:(NSMenu*)menu - withServiceEntries:(NSArray*)entries - forDisplay:(BOOL)display { - // Create a new service entry array that does not include the redundant - // Services vended by Safari. - NSMutableArray* remainingEntries = [NSMutableArray array]; - [g_filtered_entries_array removeAllObjects]; - - for (_NSServiceEntry* nextEntry in entries) { - if (![[nextEntry bundleIdentifier] isEqualToString:@"com.apple.Safari"]) { - [remainingEntries addObject:nextEntry]; - } else { - [g_filtered_entries_array addObject:nextEntry]; - } - } - - // Pass the filtered array along to the _NSServicesMenuUpdater. - g_original_populatemenu_implementation( - self, _cmd, menu, remainingEntries, display); -} - -+ (void)storeFilteredEntriesForTestingInArray:(NSMutableArray*)array { - [g_filtered_entries_array release]; - g_filtered_entries_array = [array retain]; -} - -+ (void)load { - // Swizzling should not happen in renderer processes or on 10.6. - if (![[NSProcessInfo processInfo] cr_isMainBrowserOrTestProcess]) - return; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - // Confirm that the AppKit's private _NSServiceEntry class exists. This - // class cannot be accessed at link time and is not guaranteed to exist in - // past or future AppKits so use NSClassFromString() to locate it. Also - // check that the class implements the bundleIdentifier method. The browser - // test checks for all of this as well, but the checks here ensure that we - // don't crash out in the wild when running on some future version of OS X. - // Odds are a developer will be running a newer version of OS X sooner than - // the bots - NOTREACHED() will get them to tell us if compatibility breaks. - if (![NSClassFromString(@"_NSServiceEntry") instancesRespondToSelector: - @selector(bundleIdentifier)]) { - NOTREACHED(); - return; - } - - // Perform similar checks on the AppKit's private _NSServicesMenuUpdater - // class. - SEL targetSelector = @selector(populateMenu:withServiceEntries:forDisplay:); - Class targetClass = NSClassFromString(@"_NSServicesMenuUpdater"); - if (![targetClass instancesRespondToSelector:targetSelector]) { - NOTREACHED(); - return; - } - - // Replace the populateMenu:withServiceEntries:forDisplay: method in - // _NSServicesMenuUpdater with an implementation that can filter Services - // menu entries from contextual menus and elsewhere. Place the swizzler into - // a static so that it never goes out of scope, because the scoper's - // destructor undoes the swizzling. - Class swizzleClass = [ChromeSwizzleServicesMenuUpdater class]; - CR_DEFINE_STATIC_LOCAL(base::mac::ScopedObjCClassSwizzler, - servicesMenuFilter, - (targetClass, swizzleClass, targetSelector)); - g_original_populatemenu_implementation = - servicesMenuFilter.GetOriginalImplementation(); - }); -} - -@end - -// OSX implemenation of the ToolkitDelegate. -// This simply (re)delegates calls to RVContextMenuMac because they do not -// have to be componentized. -class ToolkitDelegateMac : public RenderViewContextMenuBase::ToolkitDelegate { - public: - explicit ToolkitDelegateMac(RenderViewContextMenuMac* context_menu) - : context_menu_(context_menu) {} - ~ToolkitDelegateMac() override {} - - private: - // ToolkitDelegate: - void Init(ui::SimpleMenuModel* menu_model) override { - context_menu_->InitToolkitMenu(); - } - void Cancel() override { context_menu_->CancelToolkitMenu(); } - void UpdateMenuItem(int command_id, - bool enabled, - bool hidden, - const base::string16& title) override { - context_menu_->UpdateToolkitMenuItem( - command_id, enabled, hidden, title); - } - - RenderViewContextMenuMac* context_menu_; - DISALLOW_COPY_AND_ASSIGN(ToolkitDelegateMac); -}; - // Obj-C bridge class that is the target of all items in the context menu. // Relies on the tag being set to the command id. RenderViewContextMenuMac::RenderViewContextMenuMac( content::RenderFrameHost* render_frame_host, - const content::ContextMenuParams& params, - NSView* parent_view) + const content::ContextMenuParams& params) : RenderViewContextMenu(render_frame_host, params), - parent_view_(parent_view), - text_services_context_menu_(this) { - std::unique_ptr<ToolkitDelegate> delegate(new ToolkitDelegateMac(this)); - set_toolkit_delegate(std::move(delegate)); -} + text_services_context_menu_(this) {} RenderViewContextMenuMac::~RenderViewContextMenuMac() { } @@ -203,6 +39,9 @@ } bool RenderViewContextMenuMac::IsCommandIdChecked(int command_id) const { + if (text_services_context_menu_.SupportsCommand(command_id)) + return text_services_context_menu_.IsCommandIdChecked(command_id); + if (command_id == IDC_CONTENT_CONTEXT_LOOK_UP) return false; @@ -210,58 +49,15 @@ } bool RenderViewContextMenuMac::IsCommandIdEnabled(int command_id) const { + if (text_services_context_menu_.SupportsCommand(command_id)) + return text_services_context_menu_.IsCommandIdEnabled(command_id); + if (command_id == IDC_CONTENT_CONTEXT_LOOK_UP) return true; return RenderViewContextMenu::IsCommandIdEnabled(command_id); } -void RenderViewContextMenuMac::Show() { - menu_controller_.reset([[MenuControllerCocoa alloc] initWithModel:&menu_model_ - useWithPopUpButtonCell:NO]); - - gfx::Point params_position(params_.x, params_.y); - - // Synthesize an event for the click, as there is no certainty that - // [NSApp currentEvent] will return a valid event. - NSEvent* currentEvent = [NSApp currentEvent]; - NSWindow* window = [parent_view_ window]; - NSPoint position = - NSMakePoint(params_position.x(), - NSHeight([parent_view_ bounds]) - params_position.y()); - position = [parent_view_ convertPoint:position toView:nil]; - NSTimeInterval eventTime = [currentEvent timestamp]; - NSEvent* clickEvent = [NSEvent mouseEventWithType:NSRightMouseDown - location:position - modifierFlags:NSRightMouseDownMask - timestamp:eventTime - windowNumber:[window windowNumber] - context:nil - eventNumber:0 - clickCount:1 - pressure:1.0]; - - { - // Make sure events can be pumped while the menu is up. - base::MessageLoopCurrent::ScopedNestableTaskAllower allow; - - // Ensure the UI can update while the menu is fading out. - base::ScopedPumpMessagesInPrivateModes pump_private; - - // One of the events that could be pumped is |window.close()|. - // User-initiated event-tracking loops protect against this by - // setting flags in -[CrApplication sendEvent:], but since - // web-content menus are initiated by IPC message the setup has to - // be done manually. - base::mac::ScopedSendingEvent sendingEventScoper; - - // Show the menu. - [NSMenu popUpContextMenu:[menu_controller_ menu] - withEvent:clickEvent - forView:parent_view_]; - } -} - base::string16 RenderViewContextMenuMac::GetSelectedText() const { return params_.selection_text; } @@ -333,27 +129,6 @@ text_services_context_menu_.AppendToContextMenu(&menu_model_); } -void RenderViewContextMenuMac::CancelToolkitMenu() { - [menu_controller_ cancel]; -} - -void RenderViewContextMenuMac::UpdateToolkitMenuItem( - int command_id, - bool enabled, - bool hidden, - const base::string16& title) { - NSMenuItem* item = GetMenuItemByID(&menu_model_, [menu_controller_ menu], - command_id); - if (!item) - return; - - // Update the returned NSMenuItem directly so we can update it immediately. - [item setEnabled:enabled]; - [item setTitle:base::SysUTF16ToNSString(title)]; - [item setHidden:hidden]; - [[item menu] itemChanged:item]; -} - void RenderViewContextMenuMac::LookUpInDictionary() { content::RenderWidgetHostView* view = GetRenderViewHost()->GetWidget()->GetView();
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h new file mode 100644 index 0000000..f73b0e7 --- /dev/null +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h
@@ -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. + +#ifndef CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_COCOA_H_ +#define CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_COCOA_H_ + +#import <Cocoa/Cocoa.h> + +#include "base/mac/scoped_nsobject.h" +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h" + +@class MenuControllerCocoa; + +// Mac Cocoa implementation of the renderer context menu display code. Uses a +// NSMenu to display the context menu. Internally uses an Obj-C object as the +// target of the NSMenu, bridging back to this C++ class. +class RenderViewContextMenuMacCocoa : public RenderViewContextMenuMac { + public: + RenderViewContextMenuMacCocoa(content::RenderFrameHost* render_frame_host, + const content::ContextMenuParams& params, + NSView* parent_view); + + ~RenderViewContextMenuMacCocoa() override; + + // RenderViewContextMenuViewsMac: + void Show() override; + + private: + friend class ToolkitDelegateMacCocoa; + + // Cancels the menu. + void CancelToolkitMenu(); + + // Updates the status and text of the specified context-menu item. + void UpdateToolkitMenuItem(int command_id, + bool enabled, + bool hidden, + const base::string16& title); + + // The Cocoa menu controller for this menu. + base::scoped_nsobject<MenuControllerCocoa> menu_controller_; + + // The Cocoa parent view. + NSView* parent_view_; + + DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuMacCocoa); +}; + +// The ChromeSwizzleServicesMenuUpdater filters Services menu items in the +// contextual menus and elsewhere using swizzling. +@interface ChromeSwizzleServicesMenuUpdater : NSObject +// Return filtered entries, for testing. ++ (void)storeFilteredEntriesForTestingInArray:(NSMutableArray*)array; +@end + +#endif // CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_COCOA_H_ \ No newline at end of file
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm new file mode 100644 index 0000000..8334a9a --- /dev/null +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
@@ -0,0 +1,250 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h" + +#include <utility> + +#include "base/compiler_specific.h" +#include "base/mac/mac_util.h" +#import "base/mac/scoped_objc_class_swizzler.h" +#import "base/mac/scoped_sending_event.h" +#include "base/macros.h" +#include "base/message_loop/message_loop_current.h" +#import "base/message_loop/message_pump_mac.h" +#include "base/strings/sys_string_conversions.h" +#import "chrome/browser/mac/nsprocessinfo_additions.h" +#import "ui/base/cocoa/menu_controller.h" + +namespace { + +IMP g_original_populatemenu_implementation = nullptr; + +// |g_filtered_entries_array| is only set during testing (see +// +[ChromeSwizzleServicesMenuUpdater storeFilteredEntriesForTestingInArray:]). +// Otherwise it remains nil. +NSMutableArray* g_filtered_entries_array = nil; + +// Retrieves an NSMenuItem which has the specified command_id. This function +// traverses the given |model| in the depth-first order. When this function +// finds an item whose command_id is the same as the given |command_id|, it +// returns the NSMenuItem associated with the item. This function emulates +// views::MenuItemViews::GetMenuItemByID() for Mac. +NSMenuItem* GetMenuItemByID(ui::MenuModel* model, + NSMenu* menu, + int command_id) { + for (int i = 0; i < model->GetItemCount(); ++i) { + NSMenuItem* item = [menu itemAtIndex:i]; + if (model->GetCommandIdAt(i) == command_id) + return item; + + ui::MenuModel* submenu = model->GetSubmenuModelAt(i); + if (submenu && [item hasSubmenu]) { + NSMenuItem* subitem = + GetMenuItemByID(submenu, [item submenu], command_id); + if (subitem) + return subitem; + } + } + return nil; +} + +} // namespace + +// An AppKit-private class that adds Services items to contextual menus and +// the application Services menu. +@interface _NSServicesMenuUpdater : NSObject +- (void)populateMenu:(NSMenu*)menu + withServiceEntries:(NSArray*)entries + forDisplay:(BOOL)display; +@end + +// An AppKit-private class representing a Services menu entry. +@interface _NSServiceEntry : NSObject +- (NSString*)bundleIdentifier; +@end + +@implementation ChromeSwizzleServicesMenuUpdater + +- (void)populateMenu:(NSMenu*)menu + withServiceEntries:(NSArray*)entries + forDisplay:(BOOL)display { + // Create a new service entry array that does not include the redundant + // Services vended by Safari. + NSMutableArray* remainingEntries = [NSMutableArray array]; + [g_filtered_entries_array removeAllObjects]; + + for (_NSServiceEntry* nextEntry in entries) { + if (![[nextEntry bundleIdentifier] isEqualToString:@"com.apple.Safari"]) { + [remainingEntries addObject:nextEntry]; + } else { + [g_filtered_entries_array addObject:nextEntry]; + } + } + + // Pass the filtered array along to the _NSServicesMenuUpdater. + g_original_populatemenu_implementation(self, _cmd, menu, remainingEntries, + display); +} + ++ (void)storeFilteredEntriesForTestingInArray:(NSMutableArray*)array { + [g_filtered_entries_array release]; + g_filtered_entries_array = [array retain]; +} + ++ (void)load { + // Swizzling should not happen in renderer processes. + if (![[NSProcessInfo processInfo] cr_isMainBrowserOrTestProcess]) + return; + + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + // Confirm that the AppKit's private _NSServiceEntry class exists. This + // class cannot be accessed at link time and is not guaranteed to exist in + // past or future AppKits so use NSClassFromString() to locate it. Also + // check that the class implements the bundleIdentifier method. The browser + // test checks for all of this as well, but the checks here ensure that we + // don't crash out in the wild when running on some future version of OS X. + // Odds are a developer will be running a newer version of OS X sooner than + // the bots - NOTREACHED() will get them to tell us if compatibility breaks. + if (![NSClassFromString(@"_NSServiceEntry") + instancesRespondToSelector:@selector(bundleIdentifier)]) { + NOTREACHED(); + return; + } + + // Perform similar checks on the AppKit's private _NSServicesMenuUpdater + // class. + SEL targetSelector = @selector(populateMenu:withServiceEntries:forDisplay:); + Class targetClass = NSClassFromString(@"_NSServicesMenuUpdater"); + if (![targetClass instancesRespondToSelector:targetSelector]) { + NOTREACHED(); + return; + } + + // Replace the populateMenu:withServiceEntries:forDisplay: method in + // _NSServicesMenuUpdater with an implementation that can filter Services + // menu entries from contextual menus and elsewhere. Place the swizzler into + // a static so that it never goes out of scope, because the scoper's + // destructor undoes the swizzling. + Class swizzleClass = [ChromeSwizzleServicesMenuUpdater class]; + CR_DEFINE_STATIC_LOCAL(base::mac::ScopedObjCClassSwizzler, + servicesMenuFilter, + (targetClass, swizzleClass, targetSelector)); + g_original_populatemenu_implementation = + servicesMenuFilter.GetOriginalImplementation(); + }); +} + +@end + +// OSX implemenation of the ToolkitDelegate. +// This simply (re)delegates calls to RVContextMenuMac because they do not +// have to be componentized. +class ToolkitDelegateMacCocoa : public RenderViewContextMenu::ToolkitDelegate { + public: + explicit ToolkitDelegateMacCocoa(RenderViewContextMenuMacCocoa* context_menu) + : context_menu_(context_menu) {} + + ~ToolkitDelegateMacCocoa() override {} + + private: + // ToolkitDelegate: + void Init(ui::SimpleMenuModel* menu_model) override { + context_menu_->InitToolkitMenu(); + } + + void Cancel() override { context_menu_->CancelToolkitMenu(); } + + void UpdateMenuItem(int command_id, + bool enabled, + bool hidden, + const base::string16& title) override { + context_menu_->UpdateToolkitMenuItem(command_id, enabled, hidden, title); + } + + RenderViewContextMenuMacCocoa* context_menu_; + DISALLOW_COPY_AND_ASSIGN(ToolkitDelegateMacCocoa); +}; + +// Obj-C bridge class that is the target of all items in the context menu. +// Relies on the tag being set to the command id. +RenderViewContextMenuMacCocoa::RenderViewContextMenuMacCocoa( + content::RenderFrameHost* render_frame_host, + const content::ContextMenuParams& params, + NSView* parent_view) + : RenderViewContextMenuMac(render_frame_host, params), + parent_view_(parent_view) { + auto delegate = std::make_unique<ToolkitDelegateMacCocoa>(this); + set_toolkit_delegate(std::move(delegate)); +} + +RenderViewContextMenuMacCocoa::~RenderViewContextMenuMacCocoa() {} + +void RenderViewContextMenuMacCocoa::Show() { + menu_controller_.reset([[MenuControllerCocoa alloc] initWithModel:&menu_model_ + useWithPopUpButtonCell:NO]); + + gfx::Point params_position(params_.x, params_.y); + + // Synthesize an event for the click, as there is no certainty that + // [NSApp currentEvent] will return a valid event. + NSEvent* currentEvent = [NSApp currentEvent]; + NSWindow* window = [parent_view_ window]; + NSPoint position = + NSMakePoint(params_position.x(), + NSHeight([parent_view_ bounds]) - params_position.y()); + position = [parent_view_ convertPoint:position toView:nil]; + NSTimeInterval eventTime = [currentEvent timestamp]; + NSEvent* clickEvent = [NSEvent mouseEventWithType:NSRightMouseDown + location:position + modifierFlags:NSRightMouseDownMask + timestamp:eventTime + windowNumber:[window windowNumber] + context:nil + eventNumber:0 + clickCount:1 + pressure:1.0]; + + { + // Make sure events can be pumped while the menu is up. + base::MessageLoopCurrent::ScopedNestableTaskAllower allow; + + // Ensure the UI can update while the menu is fading out. + base::ScopedPumpMessagesInPrivateModes pump_private; + + // One of the events that could be pumped is |window.close()|. + // User-initiated event-tracking loops protect against this by + // setting flags in -[CrApplication sendEvent:], but since + // web-content menus are initiated by IPC message the setup has to + // be done manually. + base::mac::ScopedSendingEvent sendingEventScoper; + + // Show the menu. + [NSMenu popUpContextMenu:[menu_controller_ menu] + withEvent:clickEvent + forView:parent_view_]; + } +} + +void RenderViewContextMenuMacCocoa::CancelToolkitMenu() { + [menu_controller_ cancel]; +} + +void RenderViewContextMenuMacCocoa::UpdateToolkitMenuItem( + int command_id, + bool enabled, + bool hidden, + const base::string16& title) { + NSMenuItem* item = + GetMenuItemByID(&menu_model_, [menu_controller_ menu], command_id); + if (!item) + return; + + // Update the returned NSMenuItem directly so we can update it immediately. + [item setEnabled:enabled]; + [item setTitle:base::SysUTF16ToNSString(title)]; + [item setHidden:hidden]; + [[item menu] itemChanged:item]; +}
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_browsertest.mm b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa_browsertest.mm similarity index 85% rename from chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_browsertest.mm rename to chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa_browsertest.mm index bf72da2..70c5e81 100644 --- a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_browsertest.mm +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa_browsertest.mm
@@ -1,8 +1,8 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h" +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h" #include "base/mac/foundation_util.h" #include "base/mac/mac_util.h" @@ -17,9 +17,9 @@ #include "content/public/test/test_utils.h" #import "testing/gtest_mac.h" -class RenderViewContextMenuMacBrowserTest : public InProcessBrowserTest { +class RenderViewContextMenuMacCocoaBrowserTest : public InProcessBrowserTest { public: - RenderViewContextMenuMacBrowserTest() {} + RenderViewContextMenuMacCocoaBrowserTest() {} protected: void SetUpOnMainThread() override { @@ -46,26 +46,27 @@ base::scoped_nsobject<NSTextField> textField_; private: - DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuMacBrowserTest); + DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuMacCocoaBrowserTest); }; // Confirm that the private classes used to filter Safari's redundant Services // items exist and implement the expected methods, and that the filtering code // successfully removes those Services items. -IN_PROC_BROWSER_TEST_F(RenderViewContextMenuMacBrowserTest, ServicesFiltering) { +IN_PROC_BROWSER_TEST_F(RenderViewContextMenuMacCocoaBrowserTest, + ServicesFiltering) { // Confirm that the _NSServicesMenuUpdater class exists and implements the // method we expect it to. Class menuUpdaterClass = NSClassFromString(@"_NSServicesMenuUpdater"); EXPECT_TRUE(menuUpdaterClass); - EXPECT_TRUE([menuUpdaterClass instancesRespondToSelector: - @selector(populateMenu:withServiceEntries:forDisplay:)]); + EXPECT_TRUE([menuUpdaterClass instancesRespondToSelector:@selector + (populateMenu:withServiceEntries:forDisplay:)]); // Confirm that the _NSServiceEntry class exists and implements the // method we expect it to. Class serviceEntryClass = NSClassFromString(@"_NSServiceEntry"); EXPECT_TRUE(serviceEntryClass); - EXPECT_TRUE([serviceEntryClass instancesRespondToSelector: - @selector(bundleIdentifier)]); + EXPECT_TRUE([serviceEntryClass + instancesRespondToSelector:@selector(bundleIdentifier)]); // Make the testing textfield the browser window's first responder, in // preparation for the contextual menu we're about to display. Even though the
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.h b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.h new file mode 100644 index 0000000..e5db11b9 --- /dev/null +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.h
@@ -0,0 +1,32 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_VIEWS_H_ +#define CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_VIEWS_H_ + +#import <Cocoa/Cocoa.h> + +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h" + +// Mac Views implementation of the renderer context menu display code. +class RenderViewContextMenuMacViews : public RenderViewContextMenuMac { + public: + RenderViewContextMenuMacViews(content::RenderFrameHost* render_frame_host, + const content::ContextMenuParams& params, + NSView* parent_view); + + ~RenderViewContextMenuMacViews() override; + + // RenderViewContextMenuMac: + void Show() override; + + private: + friend class ToolkitDelegateViewsMac; + + NSView* parent_view_; + + DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuMacViews); +}; + +#endif // CHROME_BROWSER_UI_COCOA_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_MAC_VIEWS_H_ \ No newline at end of file
diff --git a/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.mm b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.mm new file mode 100644 index 0000000..773ebae --- /dev/null +++ b/chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.mm
@@ -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. + +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.h" + +#include "components/renderer_context_menu/views/toolkit_delegate_views.h" +#import "ui/base/cocoa/cocoa_base_utils.h" +#import "ui/gfx/mac/coordinate_conversion.h" + +class ToolkitDelegateViewsMac : public ToolkitDelegateViews { + public: + explicit ToolkitDelegateViewsMac(RenderViewContextMenuMacViews* context_menu) + : context_menu_(context_menu) {} + + ~ToolkitDelegateViewsMac() override {} + + private: + // ToolkitDelegateViews: + void Init(ui::SimpleMenuModel* menu_model) override { + context_menu_->InitToolkitMenu(); + ToolkitDelegateViews::Init(menu_model); + } + + RenderViewContextMenuMacViews* context_menu_; + DISALLOW_COPY_AND_ASSIGN(ToolkitDelegateViewsMac); +}; + +RenderViewContextMenuMacViews::RenderViewContextMenuMacViews( + content::RenderFrameHost* render_frame_host, + const content::ContextMenuParams& params, + NSView* parent_view) + : RenderViewContextMenuMac(render_frame_host, params), + parent_view_(parent_view) { + auto delegate = std::make_unique<ToolkitDelegateViewsMac>(this); + set_toolkit_delegate(std::move(delegate)); +} + +RenderViewContextMenuMacViews::~RenderViewContextMenuMacViews() {} + +void RenderViewContextMenuMacViews::Show() { + NSPoint position = + NSMakePoint(params().x, NSHeight([parent_view_ bounds]) - params().y); + position = [parent_view_ convertPoint:position toView:nil]; + + gfx::Point menu_point = gfx::ScreenPointFromNSPoint( + ui::ConvertPointFromWindowToScreen([parent_view_ window], position)); + + static_cast<ToolkitDelegateViews*>(toolkit_delegate()) + ->RunMenuAt(nullptr, menu_point, params().source_type); +}
diff --git a/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.h b/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.h index edc346b..a7058315 100644 --- a/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.h +++ b/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.h
@@ -58,6 +58,10 @@ content::RenderWidgetHostView* GetActiveRenderWidgetHostView() const; NSWindow* GetNSWindowForFocusTracker() const; + RenderViewContextMenuBase* CreateRenderViewContextMenu( + content::WebContents* web_contents, + const content::ContextMenuParams& params); + // The context menu. Callbacks are asynchronous so we need to keep it around. std::unique_ptr<RenderViewContextMenuBase> context_menu_;
diff --git a/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.mm b/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.mm index 9e4fb2c..8359e7b8 100644 --- a/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.mm +++ b/chrome/browser/ui/cocoa/tab_contents/chrome_web_contents_view_delegate_mac.mm
@@ -10,9 +10,11 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_window.h" -#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac.h" +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.h" +#include "chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_views.h" #include "chrome/browser/ui/cocoa/tab_contents/web_drag_bookmark_handler_mac.h" #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h" +#include "chrome/browser/ui/views_mode_controller.h" #include "content/public/browser/render_widget_host_view.h" #include "content/public/browser/web_contents.h" #import "ui/base/cocoa/focus_tracker.h" @@ -106,22 +108,39 @@ content::WebContents* web_contents, const content::ContextMenuParams& params) { std::unique_ptr<RenderViewContextMenuBase> menu; - content::RenderFrameHost* focused_frame = web_contents->GetFocusedFrame(); - // If the frame tree does not have a focused frame at this point, do not - // bother creating RenderViewContextMenuMac. - // This happens if the frame has navigated to a different page before - // ContextMenu message was received by the current RenderFrameHost. - if (focused_frame) { - content::RenderWidgetHostView* widget_view = - GetActiveRenderWidgetHostView(); - menu.reset(new RenderViewContextMenuMac( - focused_frame, params, widget_view->GetNativeView())); + menu.reset(CreateRenderViewContextMenu(web_contents, params)); + + if (menu) menu->Init(); - } return menu; } +RenderViewContextMenuBase* +ChromeWebContentsViewDelegateMac::CreateRenderViewContextMenu( + content::WebContents* web_contents, + const content::ContextMenuParams& params) { + // If the frame tree does not have a focused frame at this point, do not + // bother creating RenderViewContextMenuBase. This happens if the frame has + // navigated to a different page before ContextMenu message was received by + // the current RenderFrameHost. + content::RenderFrameHost* focused_frame = web_contents->GetFocusedFrame(); + if (!focused_frame) + return nullptr; + + gfx::NativeView parent_view = + GetActiveRenderWidgetHostView()->GetNativeView(); + +#if BUILDFLAG(MAC_VIEWS_BROWSER) + if (!views_mode_controller::IsViewsBrowserCocoa()) { + return new RenderViewContextMenuMacViews(focused_frame, params, + parent_view); + } +#endif + + return new RenderViewContextMenuMacCocoa(focused_frame, params, parent_view); +} + content::RenderWidgetHostView* ChromeWebContentsViewDelegateMac::GetActiveRenderWidgetHostView() const { return web_contents_->GetFullscreenRenderWidgetHostView() ?
diff --git a/chrome/browser/ui/extensions/application_launch.cc b/chrome/browser/ui/extensions/application_launch.cc index 3c267a1..8b95a3e 100644 --- a/chrome/browser/ui/extensions/application_launch.cc +++ b/chrome/browser/ui/extensions/application_launch.cc
@@ -20,7 +20,6 @@ #include "chrome/browser/extensions/launch_util.h" #include "chrome/browser/extensions/tab_helper.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_finder.h"
diff --git a/chrome/browser/ui/hung_plugin_tab_helper.cc b/chrome/browser/ui/hung_plugin_tab_helper.cc index 25aeb2e..03365642 100644 --- a/chrome/browser/ui/hung_plugin_tab_helper.cc +++ b/chrome/browser/ui/hung_plugin_tab_helper.cc
@@ -11,6 +11,7 @@ #include "base/macros.h" #include "base/process/process.h" #include "build/build_config.h" +#include "chrome/browser/hang_monitor/hang_crash_dump.h" #include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/plugins/hung_plugin_infobar_delegate.h" #include "chrome/common/channel_info.h" @@ -22,11 +23,6 @@ #include "content/public/common/process_type.h" #include "content/public/common/result_codes.h" -#if defined(OS_WIN) -#include "chrome/browser/hang_monitor/hang_crash_dump_win.h" -#endif - - namespace { // Called on the I/O thread to actually kill the plugin with the given child @@ -42,13 +38,10 @@ while (!iter.Done()) { const content::ChildProcessData& data = iter.GetData(); if (data.id == child_id) { -#if defined(OS_WIN) - CrashDumpAndTerminateHungChildProcess(data.handle); -#else + CrashDumpHungChildProcess(data.handle); base::Process process = base::Process::DeprecatedGetProcessFromHandle(data.handle); process.Terminate(content::RESULT_CODE_HUNG, false); -#endif break; } ++iter;
diff --git a/chrome/browser/ui/libgtkui/BUILD.gn b/chrome/browser/ui/libgtkui/BUILD.gn index e9838d7..ccbed52 100644 --- a/chrome/browser/ui/libgtkui/BUILD.gn +++ b/chrome/browser/ui/libgtkui/BUILD.gn
@@ -110,6 +110,7 @@ "//ui/base/ime", "//ui/display", "//ui/events", + "//ui/events:dom_keycode_converter", "//ui/events:events_base", "//ui/events/platform/x11", "//ui/gfx",
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.cc b/chrome/browser/ui/libgtkui/gtk_ui.cc index e8a8f94..6bc83d0 100644 --- a/chrome/browser/ui/libgtkui/gtk_ui.cc +++ b/chrome/browser/ui/libgtkui/gtk_ui.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/ui/libgtkui/gtk_ui.h" #include <dlfcn.h> +#include <gdk/gdk.h> #include <math.h> #include <pango/pango.h> @@ -45,6 +46,8 @@ #include "third_party/skia/include/core/SkShader.h" #include "ui/base/resource/resource_bundle.h" #include "ui/display/display.h" +#include "ui/events/keycodes/dom/dom_code.h" +#include "ui/events/keycodes/dom/keycode_converter.h" #include "ui/gfx/canvas.h" #include "ui/gfx/font_render_params.h" #include "ui/gfx/geometry/rect.h" @@ -838,6 +841,47 @@ } #endif +base::flat_map<std::string, std::string> GtkUi::GetKeyboardLayoutMap() { + GdkDisplay* display = gdk_display_get_default(); + GdkKeymap* keymap = gdk_keymap_get_for_display(display); + + auto map = base::flat_map<std::string, std::string>(); + if (!keymap) + return map; + + for (unsigned int i = 0; i < ui::kWritingSystemKeyDomCodeEntries; ++i) { + ui::DomCode domcode = ui::writing_system_key_domcodes[i]; + guint16 keycode = ui::KeycodeConverter::DomCodeToNativeKeycode(domcode); + GdkKeymapKey* keys = nullptr; + guint* keyvals = nullptr; + gint n_entries = 0; + + // The order of the layouts is based on the system default ordering in + // Keyboard Settings. The currently active layout does not affect this + // order. + if (gdk_keymap_get_entries_for_keycode(keymap, keycode, &keys, &keyvals, + &n_entries)) { + for (gint i = 0; i < n_entries; ++i) { + // There are 4 entries per layout, one each for shift level 0..3. + // We only care about the unshifted values (level = 0). + if (keys[i].level != 0 || keyvals[i] >= 255) + continue; + char keystring[2]; + keystring[0] = keyvals[i]; + keystring[1] = '\0'; + map.emplace(ui::KeycodeConverter::DomCodeToCodeString(domcode), + keystring); + break; + } + } + g_free(keys); + keys = nullptr; + g_free(keyvals); + keyvals = nullptr; + } + return map; +} + bool GtkUi::MatchEvent(const ui::Event& event, std::vector<ui::TextEditCommandAuraLinux>* commands) { // Ensure that we have a keyboard handler.
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.h b/chrome/browser/ui/libgtkui/gtk_ui.h index 922d04f..d4c4826 100644 --- a/chrome/browser/ui/libgtkui/gtk_ui.h +++ b/chrome/browser/ui/libgtkui/gtk_ui.h
@@ -112,6 +112,7 @@ #if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS) std::unique_ptr<views::NavButtonProvider> CreateNavButtonProvider() override; #endif + base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override; // ui::TextEditKeybindingDelegate: bool MatchEvent(const ui::Event& event,
diff --git a/chrome/browser/ui/views/arc_app_dialog_view.cc b/chrome/browser/ui/views/arc_app_dialog_view.cc index c6d36af..b5fd0f5 100644 --- a/chrome/browser/ui/views/arc_app_dialog_view.cc +++ b/chrome/browser/ui/views/arc_app_dialog_view.cc
@@ -10,7 +10,6 @@ #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/app_list/arc/arc_app_icon_loader.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h" #include "chrome/browser/ui/app_list/arc/arc_app_utils.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 560aea8..54df38b 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
@@ -18,6 +18,7 @@ #include "ui/accessibility/ax_node_data.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/font.h" +#include "ui/gfx/geometry/rect_conversions.h" #include "ui/native_theme/native_theme.h" #include "ui/views/accessibility/view_accessibility.h" #include "ui/views/background.h" @@ -361,11 +362,32 @@ } gfx::Size AutofillPopupViewNativeViews::CalculatePreferredSize() const { + // The border of the input element should be aligned with the border of the + // dropdown when suggestions are not too wide. + int contents_width = + gfx::ToEnclosingRect(controller_->element_bounds()).width(); + + // Compute the internal width needed for the contents by discounting the + // width required for the border. This will ensure that, once added, the + // dropdown border aligns with the element's border. + contents_width -= GetWidget()->GetRootView()->GetInsets().width(); + + // Allow the dropdown to grow beyond the element width if it requires more + // horizontal space to render the suggestions. gfx::Size size = AutofillPopupBaseView::CalculatePreferredSize(); - int width = size.width(); - if (width % kDropdownWidthMultiple) - width = width + (kDropdownWidthMultiple - (width % kDropdownWidthMultiple)); - size.set_width(std::max(kDropdownMinWidth, width)); + if (contents_width < size.width()) { + contents_width = size.width(); + // Use multiples of |kDropdownWidthMultiple| if the required width is larger + // than the element width. + if (contents_width % kDropdownWidthMultiple) { + contents_width += + kDropdownWidthMultiple - (contents_width % kDropdownWidthMultiple); + } + } + + // Notwithstanding all the above rules, enforce a hard minimum so the dropdown + // is not too small to interact with. + size.set_width(std::max(kDropdownMinWidth, contents_width)); return size; }
diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc index 2c4a208..5a3f993bf 100644 --- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc +++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
@@ -215,20 +215,18 @@ // Adds a section to |sections| for permissions of |perm_type| if there are any. void AddPermissions(ExtensionInstallPrompt::Prompt* prompt, std::vector<ExtensionInfoSection>& sections, - int available_width, - ExtensionInstallPrompt::PermissionsType perm_type) { - if (prompt->GetPermissionCount(perm_type) == 0) - return; + int available_width) { + DCHECK_GT(prompt->GetPermissionCount(), 0u); auto permissions_view = std::make_unique<PermissionsView>(available_width); - for (size_t i = 0; i < prompt->GetPermissionCount(perm_type); ++i) { - permissions_view->AddItem(prompt->GetPermission(i, perm_type), - prompt->GetPermissionsDetails(i, perm_type)); + for (size_t i = 0; i < prompt->GetPermissionCount(); ++i) { + permissions_view->AddItem(prompt->GetPermission(i), + prompt->GetPermissionsDetails(i)); } sections.push_back( - {prompt->GetPermissionsHeading(perm_type), std::move(permissions_view)}); + {prompt->GetPermissionsHeading(), std::move(permissions_view)}); } } // namespace @@ -276,16 +274,9 @@ std::vector<ExtensionInfoSection> sections; if (prompt_->ShouldShowPermissions()) { - bool has_permissions = - prompt_->GetPermissionCount( - ExtensionInstallPrompt::PermissionsType::ALL_PERMISSIONS) > 0; + bool has_permissions = prompt_->GetPermissionCount() > 0; if (has_permissions) { - AddPermissions( - prompt_.get(), sections, content_width, - ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS); - AddPermissions( - prompt_.get(), sections, content_width, - ExtensionInstallPrompt::PermissionsType::WITHHELD_PERMISSIONS); + AddPermissions(prompt_.get(), sections, content_width); } else { sections.push_back( {l10n_util::GetStringUTF16(IDS_EXTENSION_NO_SPECIAL_PERMISSIONS),
diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view_browsertest.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view_browsertest.cc index 4b33dde9..8502d4b 100644 --- a/chrome/browser/ui/views/extensions/extension_install_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view_browsertest.cc
@@ -129,8 +129,7 @@ } std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(ExtensionInstallPrompt::PERMISSIONS_PROMPT); - prompt->AddPermissions(permissions, - ExtensionInstallPrompt::REGULAR_PERMISSIONS); + prompt->AddPermissions(permissions); ASSERT_TRUE(IsScrollbarVisible(std::move(prompt))) << "Scrollbar is not visible"; } @@ -145,8 +144,7 @@ PermissionIDSet())); std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt = CreatePrompt(ExtensionInstallPrompt::PERMISSIONS_PROMPT); - prompt->AddPermissions(permissions, - ExtensionInstallPrompt::REGULAR_PERMISSIONS); + prompt->AddPermissions(permissions); ASSERT_FALSE(IsScrollbarVisible(std::move(prompt))) << "Scrollbar is visible"; } @@ -247,10 +245,7 @@ icon.eraseARGB(255, 128, 255, 128); auto prompt = std::make_unique<ExtensionInstallPrompt::Prompt>(type_); - prompt->AddPermissions(permissions_, - ExtensionInstallPrompt::REGULAR_PERMISSIONS); - prompt->AddPermissions(withheld_permissions_, - ExtensionInstallPrompt::WITHHELD_PERMISSIONS); + prompt->AddPermissions(permissions_); prompt->set_retained_files(retained_files_); prompt->set_retained_device_messages(retained_devices_); @@ -274,11 +269,6 @@ PermissionMessage(base::ASCIIToUTF16(permission), PermissionIDSet())); } - void AddWithheldPermission(std::string permission) { - withheld_permissions_.push_back( - PermissionMessage(base::ASCIIToUTF16(permission), PermissionIDSet())); - } - void AddRetainedFile(const base::FilePath& path) { retained_files_.push_back(path); } @@ -300,7 +290,6 @@ ExtensionInstallPrompt::INLINE_INSTALL_PROMPT; bool from_webstore_ = false; PermissionMessages permissions_; - PermissionMessages withheld_permissions_; std::vector<base::FilePath> retained_files_; std::vector<base::string16> retained_devices_; @@ -373,12 +362,6 @@ } IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogViewInteractiveBrowserTest, - InvokeUi_WithheldPermission) { - AddWithheldPermission("Example permission"); - ShowAndVerifyUi(); -} - -IN_PROC_BROWSER_TEST_F(ExtensionInstallDialogViewInteractiveBrowserTest, InvokeUi_WithRetainedFiles) { AddRetainedFile(base::FilePath(FILE_PATH_LITERAL("/dev/null"))); AddRetainedFile(base::FilePath(FILE_PATH_LITERAL("/dev/zero")));
diff --git a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc index 084c7ff..bce66a6 100644 --- a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc +++ b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc
@@ -10,7 +10,6 @@ #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" #include "chrome/browser/extensions/extension_uninstall_dialog.h" -#include "chrome/browser/ui/app_list/app_list_service.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/harmony/chrome_layout_provider.h"
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc index e3c2454..d6bfa2d5 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
@@ -6,7 +6,6 @@ #include <algorithm> -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_back_button.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" #include "ash/frame/default_frame_header.h" @@ -16,6 +15,7 @@ #include "ash/public/cpp/app_types.h" #include "ash/public/cpp/ash_constants.h" #include "ash/public/cpp/ash_features.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/window_properties.h" #include "ash/public/interfaces/constants.mojom.h" @@ -236,9 +236,9 @@ } const int header_height = - restored - ? GetAshLayoutSize(AshLayoutSize::kBrowserCaptionRestored).height() - : frame_header_->GetHeaderHeight(); + restored ? GetAshLayoutSize(ash::AshLayoutSize::kBrowserCaptionRestored) + .height() + : frame_header_->GetHeaderHeight(); return header_height - browser_view()->GetTabStripHeight(); } @@ -653,7 +653,7 @@ header = std::move(browser_frame_header); } else { std::unique_ptr<ash::DefaultFrameHeader> default_frame_header = - std::make_unique<ash::DefaultFrameHeader>(frame(), this, + std::make_unique<ash::DefaultFrameHeader>(this, caption_button_container_); // TODO(alancutter): Move this branch into a new HostedAppFrameHeader class. if (extensions::HostedAppBrowserController::
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc index df850862..de7628a 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
@@ -6,12 +6,12 @@ #include <string> -#include "ash/ash_layout_constants.h" #include "ash/frame/caption_buttons/frame_caption_button.h" #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" #include "ash/frame/default_frame_header.h" #include "ash/frame/frame_header.h" #include "ash/public/cpp/ash_constants.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/ash_switches.h" #include "ash/public/cpp/immersive/immersive_fullscreen_controller_test_api.h" #include "ash/public/cpp/vector_icons/vector_icons.h" @@ -722,7 +722,7 @@ // contents don't exceed the height of the caption buttons. IN_PROC_BROWSER_TEST_P(HostedAppNonClientFrameViewAshTest, FrameSize) { EXPECT_EQ(frame_header_->GetHeaderHeight(), - GetAshLayoutSize(AshLayoutSize::kNonBrowserCaption).height()); + GetAshLayoutSize(ash::AshLayoutSize::kNonBrowserCaption).height()); EXPECT_LE(app_menu_button_->size().height(), frame_header_->GetHeaderHeight()); EXPECT_LE(hosted_app_button_container_->size().height(),
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc index a6c8ba0..e2de133 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mus.cc
@@ -37,7 +37,7 @@ #include "ui/views/widget/widget_delegate.h" #if defined(OS_CHROMEOS) -#include "ash/ash_layout_constants.h" +#include "ash/public/cpp/ash_layout_constants.h" #include "ash/public/cpp/window_properties.h" #endif @@ -458,10 +458,10 @@ int BrowserNonClientFrameViewMus::GetHeaderHeight() const { #if defined(OS_CHROMEOS) - // TODO: move ash_layout_constants to ash/public/cpp. const bool restored = !frame()->IsMaximized() && !frame()->IsFullscreen(); - return GetAshLayoutSize(restored ? AshLayoutSize::kBrowserCaptionRestored - : AshLayoutSize::kBrowserCaptionMaximized) + return GetAshLayoutSize(restored + ? ash::AshLayoutSize::kBrowserCaptionRestored + : ash::AshLayoutSize::kBrowserCaptionMaximized) .height(); #else return views::WindowManagerFrameValues::instance().normal_insets.top();
diff --git a/chrome/browser/ui/views/hung_renderer_view.cc b/chrome/browser/ui/views/hung_renderer_view.cc index 8af7a213..56a9cf6 100644 --- a/chrome/browser/ui/views/hung_renderer_view.cc +++ b/chrome/browser/ui/views/hung_renderer_view.cc
@@ -13,6 +13,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" +#include "chrome/browser/hang_monitor/hang_crash_dump.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_finder.h" @@ -45,7 +46,6 @@ #include "ui/views/widget/widget.h" #if defined(OS_WIN) -#include "chrome/browser/hang_monitor/hang_crash_dump_win.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/shell_integration_win.h" #include "ui/base/win/shell.h" @@ -369,12 +369,9 @@ content::RenderProcessHost* rph = hung_pages_table_model_->GetRenderWidgetHost()->GetProcess(); if (rph) { -#if defined(OS_WIN) // Try to generate a crash report for the hung process. - CrashDumpAndTerminateHungChildProcess(rph->GetProcess().Handle()); -#else + CrashDumpHungChildProcess(rph->GetProcess().Handle()); rph->Shutdown(content::RESULT_CODE_HUNG); -#endif } return true; }
diff --git a/chrome/browser/ui/views/media_router/OWNERS b/chrome/browser/ui/views/media_router/OWNERS index c2e2660..2d837de 100644 --- a/chrome/browser/ui/views/media_router/OWNERS +++ b/chrome/browser/ui/views/media_router/OWNERS
@@ -1,5 +1,4 @@ amp@chromium.org -apacible@chromium.org imcheng@chromium.org mfoltz@chromium.org
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc index c59a0a9..a4d66a53 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -28,6 +28,8 @@ } namespace { +const gfx::Size kMinWindowSize = gfx::Size(144, 100); + const int kBorderThickness = 5; const int kResizeAreaCornerSize = 16; @@ -137,8 +139,8 @@ max_size_ = gfx::Size(work_area.width() / 2, work_area.height() / 2); // Lower bound size of the window is a fixed value to allow for minimal sizes - // on UI affordances, such as buttons. This is currently a placeholder value. - min_size_ = gfx::Size(144, 100); + // on UI affordances, such as buttons. + min_size_ = kMinWindowSize; // Initial size of the window is always 20% of the display width and height, // constrained by the min and max sizes. Only explicitly update this the first @@ -214,7 +216,7 @@ kPlayPauseIconSize.width(), SK_ColorWHITE); play_pause_controls_view_->SetToggledImage(views::Button::STATE_NORMAL, &pause_icon); - play_pause_controls_view_->SetToggled(controller_->IsPlayerActive()); + play_pause_controls_view_->SetToggled(!controller_->IsPlayerActive()); // Paint to ui::Layers to use in the OverlaySurfaceEmbedder. video_view_->SetPaintToLayer(ui::LAYER_TEXTURED);
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc index 7f48bf2..5c464037 100644 --- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
@@ -11,7 +11,6 @@ #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/payments/ssl_validity_checker.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/views/payments/payment_request_dialog_view.h" #include "chrome/browser/ui/views/payments/payment_request_views_util.h" #include "chrome/grit/generated_resources.h" @@ -21,14 +20,9 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/web_contents.h" #include "ui/base/l10n/l10n_util.h" -#include "ui/gfx/color_utils.h" #include "ui/gfx/image/image_skia.h" -#include "ui/gfx/paint_vector_icon.h" #include "ui/views/background.h" #include "ui/views/border.h" -#include "ui/views/controls/button/button.h" -#include "ui/views/controls/button/image_button.h" -#include "ui/views/controls/button/image_button_factory.h" #include "ui/views/controls/image_view.h" #include "ui/views/controls/label.h" #include "ui/views/controls/progress_bar.h" @@ -38,15 +32,6 @@ namespace payments { -constexpr int kFirstTagValue = static_cast<int>( - payments::PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX); - -// Tags for the buttons in the payment sheet -enum class PaymentHandlerWebFlowTags { - SITE_SETTINGS_TAG = kFirstTagValue, - MAX_TAG, // Always keep last. -}; - class ReadOnlyOriginView : public views::View { public: ReadOnlyOriginView(const base::string16& page_title, @@ -119,10 +104,6 @@ kPaymentHandlerIconSize); top_level_columns->AddPaddingColumn(0, 8); } - constexpr int kSiteSettingsSize = 16; - top_level_columns->AddColumn( - views::GridLayout::TRAILING, views::GridLayout::FILL, 0, - views::GridLayout::FIXED, kSiteSettingsSize, kSiteSettingsSize); top_level_layout->StartRow(0, 0); top_level_layout->AddView(title_origin_container.release()); @@ -134,28 +115,6 @@ gfx::Size(kPaymentHandlerIconSize, kPaymentHandlerIconSize)); top_level_layout->AddView(instrument_icon_view.release()); } - - views::ImageButton* site_settings_button = - views::CreateVectorImageButton(site_settings_listener); - - // Inline the contents of views::SetImageFromVectorIcon to be able to - // properly set the icon size. - const SkColor icon_color = color_utils::DeriveDefaultIconColor( - GetForegroundColorForBackground(background_color)); - site_settings_button->SetImage( - views::Button::STATE_NORMAL, - gfx::CreateVectorIcon(kSettingsIcon, kSiteSettingsSize, icon_color)); - site_settings_button->set_ink_drop_base_color(icon_color); - - site_settings_button->SetSize( - gfx::Size(kSiteSettingsSize, kSiteSettingsSize)); - // This icon should be focusable in both regular and accessibility mode. - site_settings_button->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); - site_settings_button->set_tag( - static_cast<int>(PaymentHandlerWebFlowTags::SITE_SETTINGS_TAG)); - site_settings_button->SetAccessibleName( - l10n_util::GetStringUTF16(IDS_SETTINGS_SITE_SETTINGS)); - top_level_layout->AddView(site_settings_button); } ~ReadOnlyOriginView() override {} @@ -173,12 +132,16 @@ : PaymentRequestSheetController(spec, state, dialog), profile_(profile), target_(target), - progress_bar_is_shown_(false), + show_progress_bar_(false), progress_bar_( std::make_unique<views::ProgressBar>(/*preferred_height=*/2)), + separator_(std::make_unique<views::Separator>()), first_navigation_complete_callback_( std::move(first_navigation_complete_callback)) { progress_bar_->set_owned_by_client(); + separator_->set_owned_by_client(); + separator_->SetColor(separator_->GetNativeTheme()->GetSystemColor( + ui::NativeTheme::kColorId_SeparatorColor)); } PaymentHandlerWebFlowViewController::~PaymentHandlerWebFlowViewController() {} @@ -192,20 +155,7 @@ void PaymentHandlerWebFlowViewController::FillContentView( views::View* content_view) { - views::GridLayout* content_layout = content_view->SetLayoutManager( - std::make_unique<views::GridLayout>(content_view)); - views::ColumnSet* columns = content_layout->AddColumnSet(0); - columns->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, - views::GridLayout::USE_PREF, 0, 0); - - // Content header to display progress bar. - content_layout->StartRow(0, 0); - content_header_view_ = std::make_unique<views::View>(); - content_header_view_->set_owned_by_client(); - content_layout->AddView(content_header_view_.get()); - - // Content body to display the web page. - content_layout->StartRow(0, 0); + content_view->SetLayoutManager(std::make_unique<views::FillLayout>()); std::unique_ptr<views::WebView> web_view = std::make_unique<views::WebView>(profile_); Observe(web_view->GetWebContents()); @@ -218,7 +168,7 @@ // total_dialog_height - header_height. On the other hand, the width will be // properly set so it can be 0 here. web_view->SetPreferredSize(gfx::Size(0, kDialogHeight - 75)); - content_layout->AddView(web_view.release()); + content_view->AddChildView(web_view.release()); } bool PaymentHandlerWebFlowViewController::ShouldShowSecondaryButton() { @@ -237,6 +187,13 @@ background->get_color(), this); } +views::View* +PaymentHandlerWebFlowViewController::CreateHeaderContentSeparatorView() { + if (show_progress_bar_) + return progress_bar_.get(); + return separator_.get(); +} + std::unique_ptr<views::Background> PaymentHandlerWebFlowViewController::GetHeaderBackground() { if (!web_contents()) @@ -244,18 +201,14 @@ return views::CreateSolidBackground(web_contents()->GetThemeColor()); } -void PaymentHandlerWebFlowViewController::ButtonPressed( - views::Button* sender, - const ui::Event& event) { - if (sender->tag() == - static_cast<int>(PaymentHandlerWebFlowTags::SITE_SETTINGS_TAG)) { - if (web_contents()) { - chrome::ShowSiteSettings(dialog()->GetProfile(), - web_contents()->GetLastCommittedURL()); - } - } else { - PaymentRequestSheetController::ButtonPressed(sender, event); - } +bool PaymentHandlerWebFlowViewController::GetSheetId(DialogViewID* sheet_id) { + *sheet_id = DialogViewID::PAYMENT_APP_OPENED_WINDOW_SHEET; + return true; +} + +bool PaymentHandlerWebFlowViewController:: + DisplayDynamicBorderForHiddenContents() { + return false; } void PaymentHandlerWebFlowViewController::LoadProgressChanged( @@ -265,23 +218,17 @@ progress_bar_->SetValue(progress); - if (progress == 1.0 && !progress_bar_is_shown_) + if (progress == 1.0 && show_progress_bar_) { + show_progress_bar_ = false; + UpdateHeaderContentSeparatorView(); return; - - if (progress < 1.0 && progress_bar_is_shown_) - return; - - content_header_view_->RemoveAllChildViews(/*delete_children=*/true); - if (progress_bar_is_shown_) { - progress_bar_is_shown_ = false; - } else { - content_header_view_->SetLayoutManager( - std::make_unique<views::FillLayout>()); - content_header_view_->AddChildView(progress_bar_.get()); - progress_bar_is_shown_ = true; } - RelayoutPane(); + if (progress < 1.0 && !show_progress_bar_) { + show_progress_bar_ = true; + UpdateHeaderContentSeparatorView(); + return; + } } void PaymentHandlerWebFlowViewController::VisibleSecurityStateChanged(
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.h b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.h index 897cf80..c17d5503 100644 --- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.h +++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.h
@@ -10,6 +10,7 @@ #include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_observer.h" #include "ui/views/controls/progress_bar.h" +#include "ui/views/controls/separator.h" #include "url/gurl.h" class Profile; @@ -47,8 +48,10 @@ void FillContentView(views::View* content_view) override; bool ShouldShowSecondaryButton() override; std::unique_ptr<views::View> CreateHeaderContentView() override; + views::View* CreateHeaderContentSeparatorView() override; std::unique_ptr<views::Background> GetHeaderBackground() override; - void ButtonPressed(views::Button* sender, const ui::Event& event) override; + bool GetSheetId(DialogViewID* sheet_id) override; + bool DisplayDynamicBorderForHiddenContents() override; // content::WebContentsDelegate: void LoadProgressChanged(content::WebContents* source, @@ -67,9 +70,9 @@ Profile* profile_; GURL target_; - bool progress_bar_is_shown_; + bool show_progress_bar_; std::unique_ptr<views::ProgressBar> progress_bar_; - std::unique_ptr<views::View> content_header_view_; + std::unique_ptr<views::Separator> separator_; PaymentHandlerOpenWindowCallback first_navigation_complete_callback_; };
diff --git a/chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h b/chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h index b4d4a13..1121338 100644 --- a/chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h +++ b/chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h
@@ -89,6 +89,9 @@ // The combobox to choose a billing address to associate to a credit card. CREDIT_CARD_BILLING_ADDRESS, + // The sheet opens payment app window. + PAYMENT_APP_OPENED_WINDOW_SHEET, + // NOTE: Keep these values last. // Used to offset the IDs of input fields, which gets added to the Autofill // type value they represent.
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc index 090843f..88991391 100644 --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc
@@ -19,6 +19,7 @@ #include "ui/views/controls/scroll_view.h" #include "ui/views/focus/focus_search.h" #include "ui/views/layout/box_layout.h" +#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/grid_layout.h" #include "ui/views/painter.h" @@ -237,6 +238,12 @@ header_view_->set_owned_by_client(); layout->AddView(header_view_.get()); + layout->StartRow(0, 0); + header_content_separator_container_ = std::make_unique<views::View>(); + header_content_separator_container_->set_owned_by_client(); + layout->AddView(header_content_separator_container_.get()); + UpdateHeaderContentSeparatorView(); + layout->StartRow(1, 0); // |content_view| will go into a views::ScrollView so it needs to be sized now // otherwise it'll be sized to the ScrollView's viewport height, preventing @@ -260,7 +267,9 @@ pane_layout->AddView(content_view_); pane_->SizeToPreferredSize(); - scroll_ = std::make_unique<BorderedScrollView>(); + scroll_ = DisplayDynamicBorderForHiddenContents() + ? std::make_unique<BorderedScrollView>() + : std::make_unique<views::ScrollView>(); scroll_->set_owned_by_client(); scroll_->set_hide_horizontal_scrollbar(true); scroll_->SetContents(pane_); @@ -292,6 +301,29 @@ header_view_->SchedulePaint(); } +void PaymentRequestSheetController::UpdateHeaderContentSeparatorView() { + header_content_separator_container_->RemoveAllChildViews(true); + views::View* separator = CreateHeaderContentSeparatorView(); + if (separator) { + header_content_separator_container_->SetLayoutManager( + std::make_unique<views::FillLayout>()); + header_content_separator_container_->AddChildView(separator); + } + + // Relayout sheet view after updating header content separator. + DialogViewID sheet_id; + if (!GetSheetId(&sheet_id)) + return; + SheetView* sheet_view = static_cast<SheetView*>( + dialog()->GetViewByID(static_cast<int>(sheet_id))); + // This will be null on first call since it's not been set until CreateView + // returns, and the first call to UpdateHeaderContentSeparatorView comes + // from CreateView. + if (sheet_view) { + sheet_view->Layout(); + } +} + void PaymentRequestSheetController::UpdateFocus(views::View* focused_view) { DialogViewID sheet_id; if (GetSheetId(&sheet_id)) { @@ -347,6 +379,10 @@ return title_label; } +views::View* PaymentRequestSheetController::CreateHeaderContentSeparatorView() { + return nullptr; +} + std::unique_ptr<views::Background> PaymentRequestSheetController::GetHeaderBackground() { return views::CreateThemedSolidBackground( @@ -442,6 +478,10 @@ return false; } +bool PaymentRequestSheetController::DisplayDynamicBorderForHiddenContents() { + return true; +} + bool PaymentRequestSheetController::PerformPrimaryButtonAction() { // Return "true" to prevent other views from handling the event. if (!dialog()->IsInteractive())
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h index 36ee1c23..366b57b 100644 --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h
@@ -69,6 +69,9 @@ // Clears and recreates the header view for this sheet. void UpdateHeaderView(); + // Clears and recreates the header content separator view for this sheet. + void UpdateHeaderContentSeparatorView(); + // Update the focus to |focused_view|. void UpdateFocus(views::View* focused_view); @@ -120,6 +123,10 @@ // header. virtual std::unique_ptr<views::View> CreateHeaderContentView(); + // Creates and returns the view to be inserted in the header content separator + // container betweem header and content. + virtual views::View* CreateHeaderContentSeparatorView(); + // Returns the background to use for the header section of the sheet. virtual std::unique_ptr<views::Background> GetHeaderBackground(); @@ -142,6 +149,9 @@ // sets |sheet_id| to the desired value. virtual bool GetSheetId(DialogViewID* sheet_id); + // Returns true to display dynamic top and bottom border for hidden contents. + virtual bool DisplayDynamicBorderForHiddenContents(); + views::Button* primary_button() { return primary_button_.get(); } private: @@ -172,6 +182,7 @@ std::unique_ptr<views::Button> primary_button_; std::unique_ptr<views::Button> secondary_button_; std::unique_ptr<views::View> header_view_; + std::unique_ptr<views::View> header_content_separator_container_; DISALLOW_COPY_AND_ASSIGN(PaymentRequestSheetController); };
diff --git a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc index d7795774..b63932a84 100644 --- a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc +++ b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
@@ -137,6 +137,11 @@ case IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN: // Esc only works in HTML5 (site-triggered) fullscreen. if (IsHTML5Fullscreen()) { + // Per UX design feedback, do not show an accelerator when press and + // hold is required to exit fullscreen. + if (IsPressAndHoldEscRequiredToExitFullscreen()) + return false; + *accel = ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE); return true; }
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc index 58a83147..2104075 100644 --- a/chrome/browser/ui/views/tabs/tab.cc +++ b/chrome/browser/ui/views/tabs/tab.cc
@@ -1205,7 +1205,7 @@ const int tab_height = GetContentsBounds().height(); gfx::RectF separator_bounds; - separator_bounds.set_size(gfx::SizeF(1, 16)); + separator_bounds.set_size(gfx::SizeF(1, 20)); separator_bounds.set_origin(gfx::PointF( GetTabEndcapWidth() / 2, (tab_height - separator_bounds.height()) / 2)); // The following will paint the separator using an opacity that should
diff --git a/chrome/browser/ui/views/tabs/tab_close_button.cc b/chrome/browser/ui/views/tabs/tab_close_button.cc index e5a358d..73e91a4 100644 --- a/chrome/browser/ui/views/tabs/tab_close_button.cc +++ b/chrome/browser/ui/views/tabs/tab_close_button.cc
@@ -146,10 +146,10 @@ } SkAlpha TabCloseButton::GetOpacity() { - if (!MD::IsRefreshUi() && !IsMouseHovered()) + Tab* tab = static_cast<Tab*>(parent()); + if (!MD::IsRefreshUi() || IsMouseHovered() || tab->IsActive()) return SK_AlphaOPAQUE; - const double animation_value = - static_cast<Tab*>(parent())->hover_controller()->GetAnimationValue(); + const double animation_value = tab->hover_controller()->GetAnimationValue(); return gfx::Tween::IntValueBetween(animation_value, 0, 255); }
diff --git a/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc b/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc index cdc687eb..3b0d43d 100644 --- a/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc
@@ -407,7 +407,8 @@ // effect of dropping the FRE requirement if it was previously in effect. const AutoEnrollmentController::FRERequirement requirement = AutoEnrollmentController::GetFRERequirement(); - if (requirement != AutoEnrollmentController::EXPLICITLY_REQUIRED) { + if (requirement != + AutoEnrollmentController::FRERequirement::kExplicitlyRequired) { LaunchResetScreen(); } }
diff --git a/chrome/browser/ui/webui/discards/discards_ui.cc b/chrome/browser/ui/webui/discards/discards_ui.cc index 163fbf7..1f4c338 100644 --- a/chrome/browser/ui/webui/discards/discards_ui.cc +++ b/chrome/browser/ui/webui/discards/discards_ui.cc
@@ -50,6 +50,15 @@ #endif } +resource_coordinator::LifecycleUnit* GetLifecycleUnitById(int32_t id) { + for (resource_coordinator::LifecycleUnit* lifecycle_unit : + g_browser_process->GetTabManager()->GetSortedLifecycleUnits()) { + if (lifecycle_unit->GetID() == id) + return lifecycle_unit; + } + return nullptr; +} + class DiscardsDetailsProviderImpl : public mojom::DiscardsDetailsProvider { public: // This instance is deleted when the supplied pipe is destroyed. @@ -108,28 +117,32 @@ std::move(callback).Run(std::move(infos)); } - void SetAutoDiscardable(int32_t tab_id, + void SetAutoDiscardable(int32_t id, bool is_auto_discardable, SetAutoDiscardableCallback callback) override { - resource_coordinator::TabManager* tab_manager = - g_browser_process->GetTabManager(); - tab_manager->SetTabAutoDiscardableState(tab_id, is_auto_discardable); + auto* lifecycle_unit = GetLifecycleUnitById(id); + if (lifecycle_unit) { + auto* tab_lifecycle_unit_external = + lifecycle_unit->AsTabLifecycleUnitExternal(); + if (tab_lifecycle_unit_external) + tab_lifecycle_unit_external->SetAutoDiscardable(is_auto_discardable); + } std::move(callback).Run(); } - void DiscardById(int32_t tab_id, + void DiscardById(int32_t id, bool urgent, DiscardByIdCallback callback) override { - resource_coordinator::TabManager* tab_manager = - g_browser_process->GetTabManager(); - tab_manager->DiscardTabById(tab_id, GetDiscardReason(urgent)); + auto* lifecycle_unit = GetLifecycleUnitById(id); + if (lifecycle_unit) + lifecycle_unit->Discard(GetDiscardReason(urgent)); std::move(callback).Run(); } - void FreezeById(int32_t tab_id) override { - resource_coordinator::TabManager* tab_manager = - g_browser_process->GetTabManager(); - tab_manager->FreezeTabById(tab_id); + void FreezeById(int32_t id) override { + auto* lifecycle_unit = GetLifecycleUnitById(id); + if (lifecycle_unit) + lifecycle_unit->Freeze(); } void Discard(bool urgent, DiscardCallback callback) override {
diff --git a/chrome/browser/ui/webui/media_router/OWNERS b/chrome/browser/ui/webui/media_router/OWNERS index c2e2660..2d837de 100644 --- a/chrome/browser/ui/webui/media_router/OWNERS +++ b/chrome/browser/ui/webui/media_router/OWNERS
@@ -1,5 +1,4 @@ amp@chromium.org -apacible@chromium.org imcheng@chromium.org mfoltz@chromium.org
diff --git a/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc b/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc index 8241044..88885a3d 100644 --- a/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc +++ b/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
@@ -27,6 +27,7 @@ #include "components/supervised_user_error_page/supervised_user_error_page.h" #include "components/url_formatter/url_fixer.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/storage_partition.h" #include "content/public/browser/web_ui.h" using content::BrowserThread;
diff --git a/chrome/browser/ui/webui/welcome_win10_handler.cc b/chrome/browser/ui/webui/welcome_win10_handler.cc index fcc39583b..eb83e527 100644 --- a/chrome/browser/ui/webui/welcome_win10_handler.cc +++ b/chrome/browser/ui/webui/welcome_win10_handler.cc
@@ -99,6 +99,10 @@ base::Unretained(this))); } +void WelcomeWin10Handler::OnJavascriptDisallowed() { + pinned_state_callback_id_.clear(); +} + void WelcomeWin10Handler::HandleGetPinnedToTaskbarState( const base::ListValue* args) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
diff --git a/chrome/browser/ui/webui/welcome_win10_handler.h b/chrome/browser/ui/webui/welcome_win10_handler.h index 4233361..70a09709 100644 --- a/chrome/browser/ui/webui/welcome_win10_handler.h +++ b/chrome/browser/ui/webui/welcome_win10_handler.h
@@ -25,6 +25,7 @@ // content::WebUIMessageHandler: void RegisterMessages() override; + void OnJavascriptDisallowed() override; private: // Handlers for javascript calls.
diff --git a/chrome/browser/vr/BUILD.gn b/chrome/browser/vr/BUILD.gn index adc47e3..7beb204 100644 --- a/chrome/browser/vr/BUILD.gn +++ b/chrome/browser/vr/BUILD.gn
@@ -301,8 +301,6 @@ "service/vr_device_manager_unittest.cc", "sliding_average_unittest.cc", "speech_recognizer_unittest.cc", - "test/fake_ui_element_renderer.cc", - "test/fake_ui_element_renderer.h", "test/paths.cc", "test/paths.h", "test/run_all_unittests.cc",
diff --git a/chrome/browser/vr/elements/spinner_unittest.cc b/chrome/browser/vr/elements/spinner_unittest.cc index 0786f143..6774ddf4 100644 --- a/chrome/browser/vr/elements/spinner_unittest.cc +++ b/chrome/browser/vr/elements/spinner_unittest.cc
@@ -11,7 +11,6 @@ #include "chrome/browser/vr/elements/ui_texture.h" #include "chrome/browser/vr/test/animation_utils.h" #include "chrome/browser/vr/test/constants.h" -#include "chrome/browser/vr/test/fake_ui_element_renderer.h" #include "chrome/browser/vr/ui_scene.h" namespace vr {
diff --git a/chrome/browser/vr/elements/vector_icon_unittest.cc b/chrome/browser/vr/elements/vector_icon_unittest.cc index b1bd0bcf..5c4591aa 100644 --- a/chrome/browser/vr/elements/vector_icon_unittest.cc +++ b/chrome/browser/vr/elements/vector_icon_unittest.cc
@@ -11,7 +11,6 @@ #include "chrome/browser/vr/elements/ui_texture.h" #include "chrome/browser/vr/test/animation_utils.h" #include "chrome/browser/vr/test/constants.h" -#include "chrome/browser/vr/test/fake_ui_element_renderer.h" #include "chrome/browser/vr/ui_scene.h" #include "components/vector_icons/vector_icons.h"
diff --git a/chrome/browser/vr/test/fake_ui_element_renderer.cc b/chrome/browser/vr/test/fake_ui_element_renderer.cc deleted file mode 100644 index 078cf344..0000000 --- a/chrome/browser/vr/test/fake_ui_element_renderer.cc +++ /dev/null
@@ -1,88 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/vr/test/fake_ui_element_renderer.h" - -#include "ui/gfx/geometry/size_f.h" - -namespace vr { - -FakeUiElementRenderer::FakeUiElementRenderer() : UiElementRenderer(false) {} -FakeUiElementRenderer::~FakeUiElementRenderer() {} - -void FakeUiElementRenderer::DrawTexturedQuad( - int texture_data_handle, - int overlay_texture_data_handle, - TextureLocation texture_location, - const gfx::Transform& view_proj_matrix, - const gfx::RectF& clip_rect, - float opacity, - const gfx::SizeF& element_size, - float corner_radius, - bool blend) { - opacity_ = opacity; - called_ = true; -} - -void FakeUiElementRenderer::DrawGradientQuad( - const gfx::Transform& view_proj_matrix, - const SkColor edge_color, - const SkColor center_color, - const gfx::RectF& clip_rect, - float opacity, - const gfx::SizeF& element_size, - const CornerRadii& corner_radii) { - opacity_ = opacity; - called_ = true; -} - -void FakeUiElementRenderer::DrawGradientGridQuad( - const gfx::Transform& view_proj_matrix, - const SkColor edge_color, - const SkColor center_color, - const SkColor grid_color, - int gridline_count, - float opacity) { - opacity_ = opacity; - called_ = true; -} - -void FakeUiElementRenderer::DrawController( - float opacity, - const gfx::Transform& model_view_proj_matrix) { - opacity_ = opacity; - called_ = true; -} - -void FakeUiElementRenderer::DrawLaser(float opacity, - const gfx::Transform& view_proj_matrix) { - opacity_ = opacity; - called_ = true; -} - -void FakeUiElementRenderer::DrawReticle( - float opacity, - const gfx::Transform& view_proj_matrix) { - opacity_ = opacity; - called_ = true; -} - -void FakeUiElementRenderer::DrawShadow( - const gfx::Transform& model_view_proj_matrix, - const gfx::SizeF& element_size, - float x_padding, - float y_padding, - float y_offset, - SkColor color, - float opacity, - float corner_radius) { - // We do not verify the opacity used by shadows -- they adjust this at the - // last moment before calling into the UiElementRenderer. -} - -void FakeUiElementRenderer::DrawStars( - float t, - const gfx::Transform& model_view_proj_matrix) {} - -} // namespace vr
diff --git a/chrome/browser/vr/test/fake_ui_element_renderer.h b/chrome/browser/vr/test/fake_ui_element_renderer.h deleted file mode 100644 index db6cdaa8..0000000 --- a/chrome/browser/vr/test/fake_ui_element_renderer.h +++ /dev/null
@@ -1,76 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_VR_TEST_FAKE_UI_ELEMENT_RENDERER_H_ -#define CHROME_BROWSER_VR_TEST_FAKE_UI_ELEMENT_RENDERER_H_ - -#include "base/macros.h" -#include "chrome/browser/vr/ui_element_renderer.h" - -namespace vr { - -class FakeUiElementRenderer : public UiElementRenderer { - public: - FakeUiElementRenderer(); - ~FakeUiElementRenderer() override; - - bool called() const { return called_; } - float opacity() const { return opacity_; } - - void DrawTexturedQuad(int texture_data_handle, - int overlay_texture_data_handle, - TextureLocation texture_location, - const gfx::Transform& view_proj_matrix, - const gfx::RectF& clip_rect, - float opacity, - const gfx::SizeF& element_size, - float corner_radius, - bool blend) override; - - void DrawGradientQuad(const gfx::Transform& view_proj_matrix, - const SkColor edge_color, - const SkColor center_color, - const gfx::RectF& clip_rect, - float opacity, - const gfx::SizeF& element_size, - const CornerRadii& corner_radii) override; - - void DrawGradientGridQuad(const gfx::Transform& view_proj_matrix, - const SkColor edge_color, - const SkColor center_color, - const SkColor grid_color, - int gridline_count, - float opacity) override; - - void DrawController(float opacity, - const gfx::Transform& model_view_proj_matrix) override; - - void DrawLaser(float opacity, - const gfx::Transform& view_proj_matrix) override; - - void DrawReticle(float opacity, - const gfx::Transform& view_proj_matrix) override; - - void DrawShadow(const gfx::Transform& model_view_proj_matrix, - const gfx::SizeF& element_size, - float x_padding, - float y_padding, - float y_offset, - SkColor color, - float opacity, - float corner_radius) override; - - void DrawStars(float t, - const gfx::Transform& model_view_proj_matrix) override; - - private: - float opacity_ = -1.f; - float called_ = false; - - DISALLOW_COPY_AND_ASSIGN(FakeUiElementRenderer); -}; - -} // namespace vr - -#endif // CHROME_BROWSER_VR_TEST_FAKE_UI_ELEMENT_RENDERER_H_
diff --git a/chrome/browser/vr/test/ui_test.cc b/chrome/browser/vr/test/ui_test.cc index e2c08be..81ac0404 100644 --- a/chrome/browser/vr/test/ui_test.cc +++ b/chrome/browser/vr/test/ui_test.cc
@@ -8,7 +8,6 @@ #include "chrome/browser/vr/model/model.h" #include "chrome/browser/vr/test/animation_utils.h" #include "chrome/browser/vr/test/constants.h" -#include "chrome/browser/vr/test/fake_ui_element_renderer.h" #include "chrome/browser/vr/ui.h" #include "chrome/browser/vr/ui_renderer.h" #include "chrome/browser/vr/ui_scene.h"
diff --git a/chrome/common/extensions/permissions/permissions_data_unittest.cc b/chrome/common/extensions/permissions/permissions_data_unittest.cc index d8d5f6b8..1708231f 100644 --- a/chrome/common/extensions/permissions/permissions_data_unittest.cc +++ b/chrome/common/extensions/permissions/permissions_data_unittest.cc
@@ -125,8 +125,8 @@ // We should only allow other schemes for extensions when it's a whitelisted // extension. error.clear(); - bool allow_on_other_schemes = - PermissionsData::CanExecuteScriptEverywhere(extension); + bool allow_on_other_schemes = PermissionsData::CanExecuteScriptEverywhere( + extension->id(), extension->location()); EXPECT_EQ(!allow_on_other_schemes, PermissionsData::IsRestrictedUrl( invalid_url, extension, &error)) << name;
diff --git a/chrome/installer/linux/rpm/additional_deps b/chrome/installer/linux/rpm/additional_deps index 4eb1b128..ce3f135 100644 --- a/chrome/installer/linux/rpm/additional_deps +++ b/chrome/installer/linux/rpm/additional_deps
@@ -23,6 +23,11 @@ libnss3.so(NSS_3.22)(64bit) libssl3.so(NSS_3.28)(64bit) +# This dependency is added by newer versions of rpmlib. To ensure consistency +# of expected dependencies when Chrome is built with the older versions, add it +# as a manual dependency. +rpmlib(FileDigests) <= 4.6.0-1 + # For uploading crash reports with Breakpad. wget
diff --git a/chrome/installer/linux/rpm/build.sh b/chrome/installer/linux/rpm/build.sh index 261faeaf..d2d40ea 100755 --- a/chrome/installer/linux/rpm/build.sh +++ b/chrome/installer/linux/rpm/build.sh
@@ -60,6 +60,7 @@ local ACTUAL_DEPENDS="${TMPFILEDIR}/actual_rpm_depends" local ADDITIONAL_RPM_DEPENDS="/bin/sh, \ rpmlib(CompressedFileNames) <= 3.0.4-1, \ + rpmlib(FileDigests) <= 4.6.0-1, \ rpmlib(PayloadFilesHavePrefix) <= 4.0-1, \ /usr/sbin/update-alternatives" if [ ${IS_OFFICIAL_BUILD} -ne 0 ]; then @@ -67,7 +68,7 @@ rpmlib(PayloadIsXz) <= 5.2-1" fi echo "${DEPENDS}" "${ADDITIONAL_RPM_DEPENDS}" | sed 's/,/\n/g' | \ - sed 's/^ *//' | LANG=C sort > "${EXPECTED_DEPENDS}" + sed 's/^ *//' | LANG=C sort | uniq > "${EXPECTED_DEPENDS}" rpm -qpR "${OUTPUTDIR}/${PKGNAME}.${ARCHITECTURE}.rpm" | LANG=C sort | uniq \ > "${ACTUAL_DEPENDS}" BAD_DIFF=0
diff --git a/chrome/renderer/autofill/form_autofill_browsertest.cc b/chrome/renderer/autofill/form_autofill_browsertest.cc index 9def392..67d8b43 100644 --- a/chrome/renderer/autofill/form_autofill_browsertest.cc +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
@@ -1584,7 +1584,7 @@ EXPECT_EQ(19, input_element.SelectionEnd()); } - void TestClearFormWithNode(const char* html, bool unowned) { + void TestClearSectionWithNode(const char* html, bool unowned) { LoadHTML(html); WebLocalFrame* web_frame = GetMainFrame(); ASSERT_NE(nullptr, web_frame); @@ -1608,7 +1608,7 @@ notenabled.SetValue(WebString::FromUTF8("no clear")); // Clear the form. - EXPECT_TRUE(form_cache.ClearFormWithElement(firstname)); + EXPECT_TRUE(form_cache.ClearSectionWithElement(firstname)); // Verify that the auto-filled attribute has been turned off. EXPECT_FALSE(firstname.IsAutofilled()); @@ -1686,8 +1686,113 @@ EXPECT_EQ(0, firstname.SelectionEnd()); } - void TestClearFormWithNodeContainingSelectOne(const char* html, - bool unowned) { + void TestClearTwoSections(const char* html, bool unowned) { + LoadHTML(html); + WebLocalFrame* web_frame = GetMainFrame(); + ASSERT_NE(nullptr, web_frame); + + FormCache form_cache(web_frame); + std::vector<FormData> forms = form_cache.ExtractNewForms(); + ASSERT_EQ(1U, forms.size()); + + // Set the autofilled attribute and specify the section attribute. + WebInputElement firstname_shipping = + GetInputElementById("firstname-shipping"); + firstname_shipping.SetAutofillValue("John"); + firstname_shipping.SetAutofilled(true); + firstname_shipping.SetAutofillSection("shipping"); + + WebInputElement lastname_shipping = + GetInputElementById("lastname-shipping"); + lastname_shipping.SetAutofillValue("Smith"); + lastname_shipping.SetAutofilled(true); + lastname_shipping.SetAutofillSection("shipping"); + + WebInputElement city_shipping = GetInputElementById("city-shipping"); + city_shipping.SetAutofillValue("Montreal"); + city_shipping.SetAutofilled(true); + city_shipping.SetAutofillSection("shipping"); + + WebInputElement firstname_billing = + GetInputElementById("firstname-billing"); + firstname_billing.SetAutofillValue("John"); + firstname_billing.SetAutofilled(true); + firstname_billing.SetAutofillSection("billing"); + + WebInputElement lastname_billing = GetInputElementById("lastname-billing"); + lastname_billing.SetAutofillValue("Smith"); + lastname_billing.SetAutofilled(true); + lastname_billing.SetAutofillSection("billing"); + + WebInputElement city_billing = GetInputElementById("city-billing"); + city_billing.SetAutofillValue("Paris"); + city_billing.SetAutofilled(true); + city_billing.SetAutofillSection("billing"); + + // Clear the first (shipping) section. + EXPECT_TRUE(form_cache.ClearSectionWithElement(firstname_shipping)); + + // Verify that the autofilled attribute is false only for the shipping + // section. + EXPECT_FALSE(firstname_shipping.IsAutofilled()); + EXPECT_FALSE(lastname_shipping.IsAutofilled()); + EXPECT_FALSE(city_shipping.IsAutofilled()); + EXPECT_TRUE(firstname_billing.IsAutofilled()); + EXPECT_TRUE(lastname_billing.IsAutofilled()); + EXPECT_TRUE(city_billing.IsAutofilled()); + + // Verify that the shipping section is cleared, but not the billing one. + FormData form; + FormFieldData field; + EXPECT_TRUE(FindFormAndFieldForFormControlElement(firstname_shipping, &form, + &field)); + EXPECT_EQ(GetCanonicalOriginForDocument(web_frame->GetDocument()), + form.origin); + EXPECT_FALSE(form.origin.is_empty()); + if (!unowned) { + EXPECT_EQ(ASCIIToUTF16("TestForm"), form.name); + EXPECT_EQ(GURL("http://abc.com"), form.action); + } + + const std::vector<FormFieldData>& fields = form.fields; + ASSERT_EQ(6U, fields.size()); + + FormFieldData expected; + expected.form_control_type = "text"; + expected.max_length = WebInputElement::DefaultMaxLength(); + + // shipping section + expected.is_autofilled = false; + expected.name = ASCIIToUTF16("firstname-shipping"); + EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[0]); + + expected.name = ASCIIToUTF16("lastname-shipping"); + EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[1]); + + expected.name = ASCIIToUTF16("city-shipping"); + EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]); + + // billing section + expected.is_autofilled = true; + expected.name = ASCIIToUTF16("firstname-billing"); + expected.value = ASCIIToUTF16("John"); + EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[3]); + + expected.name = ASCIIToUTF16("lastname-billing"); + expected.value = ASCIIToUTF16("Smith"); + EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[4]); + + expected.name = ASCIIToUTF16("city-billing"); + expected.value = ASCIIToUTF16("Paris"); + EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[5]); + + // Verify that the cursor position has been updated. + EXPECT_EQ(0, firstname_shipping.SelectionStart()); + EXPECT_EQ(0, firstname_shipping.SelectionEnd()); + } + + void TestClearSectionWithNodeContainingSelectOne(const char* html, + bool unowned) { LoadHTML(html); WebLocalFrame* web_frame = GetMainFrame(); ASSERT_NE(nullptr, web_frame); @@ -1709,7 +1814,7 @@ state.SetAutofilled(true); // Clear the form. - EXPECT_TRUE(form_cache.ClearFormWithElement(firstname)); + EXPECT_TRUE(form_cache.ClearSectionWithElement(firstname)); // Verify that the auto-filled attribute has been turned off. EXPECT_FALSE(firstname.IsAutofilled()); @@ -1936,7 +2041,7 @@ phone.SetAutofilled(true); // Clear the fields. - EXPECT_TRUE(form_cache.ClearFormWithElement(firstname)); + EXPECT_TRUE(form_cache.ClearSectionWithElement(firstname)); // Verify only autofilled fields are cleared. EXPECT_EQ(ASCIIToUTF16("Wyatt"), firstname.Value().Utf16()); @@ -4584,8 +4689,8 @@ true, nullptr, nullptr, nullptr, nullptr, nullptr); } -TEST_F(FormAutofillTest, ClearFormWithNode) { - TestClearFormWithNode( +TEST_F(FormAutofillTest, ClearSectionWithNode) { + TestClearSectionWithNode( "<FORM name='TestForm' action='http://abc.com' method='post'>" " <INPUT type='text' id='firstname' value='Wyatt'/>" " <INPUT type='text' id='lastname' value='Earp'/>" @@ -4604,8 +4709,22 @@ false); } -TEST_F(FormAutofillTest, ClearFormWithNodeForUnownedForm) { - TestClearFormWithNode( +// Test regular FillForm function. +TEST_F(FormAutofillTest, ClearTwoSections) { + TestClearTwoSections( + "<FORM name='TestForm' action='http://abc.com' method='post'>" + " <INPUT type='text' id='firstname-shipping'/>" + " <INPUT type='text' id='lastname-shipping'/>" + " <INPUT type='text' id='city-shipping'/>" + " <INPUT type='text' id='firstname-billing'/>" + " <INPUT type='text' id='lastname-billing'/>" + " <INPUT type='text' id='city-billing'/>" + "</FORM>", + false); +} + +TEST_F(FormAutofillTest, ClearSectionWithNodeForUnownedForm) { + TestClearSectionWithNode( "<HEAD><TITLE>store checkout</TITLE></HEAD>" " <!-- Indented on purpose //-->" " <INPUT type='text' id='firstname' value='Wyatt'/>" @@ -4624,8 +4743,8 @@ true); } -TEST_F(FormAutofillTest, ClearFormWithNodeContainingSelectOne) { - TestClearFormWithNodeContainingSelectOne( +TEST_F(FormAutofillTest, ClearSectionWithNodeContainingSelectOne) { + TestClearSectionWithNodeContainingSelectOne( "<FORM name='TestForm' action='http://abc.com' method='post'>" " <INPUT type='text' id='firstname' value='Wyatt'/>" " <INPUT type='text' id='lastname' value='Earp'/>" @@ -4640,8 +4759,9 @@ false); } -TEST_F(FormAutofillTest, ClearFormWithNodeContainingSelectOneForUnownedForm) { - TestClearFormWithNodeContainingSelectOne( +TEST_F(FormAutofillTest, + ClearSectionWithNodeContainingSelectOneForUnownedForm) { + TestClearSectionWithNodeContainingSelectOne( "<HEAD><TITLE>store checkout</TITLE></HEAD>" "<INPUT type='text' id='firstname' value='Wyatt'/>" "<INPUT type='text' id='lastname' value='Earp'/>"
diff --git a/chrome/services/file_util/manifest.json b/chrome/services/file_util/manifest.json index 04a07e1..8d36bff 100644 --- a/chrome/services/file_util/manifest.json +++ b/chrome/services/file_util/manifest.json
@@ -5,8 +5,8 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "analyze_archive": [ "chrome::mojom::SafeArchiveAnalyzer" ], - "zip_file": [ "chrome::mojom::ZipFileCreator" ] + "analyze_archive": [ "chrome.mojom.SafeArchiveAnalyzer" ], + "zip_file": [ "chrome.mojom.ZipFileCreator" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chrome/services/media_gallery_util/manifest.json b/chrome/services/media_gallery_util/manifest.json index 4d1bd24..b027fecf 100644 --- a/chrome/services/media_gallery_util/manifest.json +++ b/chrome/services/media_gallery_util/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "parse_media": [ "chrome::mojom::MediaParserFactory" ] + "parse_media": [ "chrome.mojom.MediaParserFactory" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chrome/services/printing/manifest.json b/chrome/services/printing/manifest.json index 27b3b9c..ee22aec 100644 --- a/chrome/services/printing/manifest.json +++ b/chrome/services/printing/manifest.json
@@ -6,8 +6,8 @@ "service_manager:connector": { "provides": { "converter": [ - "printing::mojom::PdfToEmfConverterFactory", - "printing::mojom::PdfToPwgRasterConverter" ] + "printing.mojom.PdfToEmfConverterFactory", + "printing.mojom.PdfToPwgRasterConverter" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chrome/services/removable_storage_writer/manifest.json b/chrome/services/removable_storage_writer/manifest.json index 1fb339aba..94ffe6e 100644 --- a/chrome/services/removable_storage_writer/manifest.json +++ b/chrome/services/removable_storage_writer/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "removable_storage_writer": [ "chrome::mojom::RemovableStorageWriter" ] + "removable_storage_writer": [ "chrome.mojom.RemovableStorageWriter" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chrome/services/util_win/manifest.json b/chrome/services/util_win/manifest.json index 4ecc1edd..3ba51f3 100644 --- a/chrome/services/util_win/manifest.json +++ b/chrome/services/util_win/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "shell_util_win": [ "chrome::mojom::ShellUtilWin" ] + "shell_util_win": [ "chrome.mojom.ShellUtilWin" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chrome/services/wifi_util_win/manifest.json b/chrome/services/wifi_util_win/manifest.json index fbea9eac..cf078b6c 100644 --- a/chrome/services/wifi_util_win/manifest.json +++ b/chrome/services/wifi_util_win/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "wifi_credentials": [ "chrome::mojom::WiFiCredentialsGetter" ] + "wifi_credentials": [ "chrome.mojom.WiFiCredentialsGetter" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 9774f08f..9f4d131 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1894,7 +1894,7 @@ "../browser/ui/cocoa/passwords/passwords_bubble_browsertest.mm", "../browser/ui/cocoa/permission_bubble/permission_bubble_views_cocoa_browsertest.mm", "../browser/ui/cocoa/profiles/profile_signin_confirmation_view_controller_browsertest.mm", - "../browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_browsertest.mm", + "../browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa_browsertest.mm", "../browser/ui/cocoa/ssl_client_certificate_selector_cocoa_browsertest.mm", "../browser/ui/cocoa/task_manager_mac_browsertest.mm", "../browser/ui/cocoa/view_id_util_browsertest.mm", @@ -1971,8 +1971,8 @@ } if (enable_app_list) { sources += [ + "../browser/ui/app_list/app_list_client_impl_browsertest.cc", "../browser/ui/app_list/app_list_controller_browsertest.cc", - "../browser/ui/app_list/app_list_service_impl_browsertest.cc", "../browser/ui/app_list/search/webstore/webstore_provider_browsertest.cc", ] } @@ -4602,6 +4602,8 @@ "../browser/notifications/message_center_notifications_browsertest.cc", "../browser/notifications/platform_notification_service_interactive_uitest.cc", "../browser/password_manager/password_generation_interactive_uitest.cc", + "../browser/password_manager/password_manager_interactive_test_base.cc", + "../browser/password_manager/password_manager_interactive_test_base.h", "../browser/password_manager/password_manager_interactive_uitest.cc", "../browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc", "../browser/renderer_context_menu/render_view_context_menu_browsertest_util.h", @@ -4998,7 +5000,7 @@ if (enable_app_list) { sources += - [ "../browser/ui/app_list/app_list_service_interactive_uitest.cc" ] + [ "../browser/ui/app_list/app_list_client_interactive_uitest.cc" ] } if (enable_extensions) {
diff --git a/chrome/test/chromedriver/alert_commands.cc b/chrome/test/chromedriver/alert_commands.cc index 63c153a..7a5a53a 100644 --- a/chrome/test/chromedriver/alert_commands.cc +++ b/chrome/test/chromedriver/alert_commands.cc
@@ -73,7 +73,7 @@ web_view->GetJavaScriptDialogManager(); if (!dialog_manager->IsDialogOpen()) - return Status(kNoAlertOpen); + return Status(kNoSuchAlert); std::string type; Status status = dialog_manager->GetTypeOfDialog(&type);
diff --git a/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc b/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc index 0f91f835..dce0853e 100644 --- a/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc +++ b/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc
@@ -24,7 +24,7 @@ Status JavaScriptDialogManager::GetDialogMessage(std::string* message) { if (!IsDialogOpen()) - return Status(kNoAlertOpen); + return Status(kNoSuchAlert); *message = unhandled_dialog_queue_.front(); return Status(kOk); @@ -32,7 +32,7 @@ Status JavaScriptDialogManager::GetTypeOfDialog(std::string* type) { if (!IsDialogOpen()) - return Status(kNoAlertOpen); + return Status(kNoSuchAlert); *type = dialog_type_queue_.front(); return Status(kOk); @@ -41,7 +41,7 @@ Status JavaScriptDialogManager::HandleDialog(bool accept, const std::string* text) { if (!IsDialogOpen()) - return Status(kNoAlertOpen); + return Status(kNoSuchAlert); base::DictionaryValue params; params.SetBoolean("accept", accept);
diff --git a/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc b/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc index dd11cc7..c6f68d52 100644 --- a/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc +++ b/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc
@@ -19,10 +19,10 @@ BrowserInfo browser_info; JavaScriptDialogManager manager(&client, &browser_info); std::string message("HI"); - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); ASSERT_FALSE(manager.IsDialogOpen()); ASSERT_STREQ("HI", message.c_str()); - ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, NULL).code()); } TEST(JavaScriptDialogManager, HandleDialogPassesParams) { @@ -78,8 +78,8 @@ ASSERT_TRUE(manager.OnConnected(&client).IsOk()); ASSERT_EQ("Page.enable", client.commands_[0].method); ASSERT_FALSE(manager.IsDialogOpen()); - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); - ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, NULL).code()); } namespace { @@ -129,7 +129,7 @@ params.SetString("defaultPrompt", ""); ASSERT_FALSE(manager.IsDialogOpen()); std::string message; - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); ASSERT_EQ( kOk, @@ -144,8 +144,8 @@ client.set_closing_count(1); ASSERT_EQ(kOk, manager.HandleDialog(false, NULL).code()); ASSERT_FALSE(manager.IsDialogOpen()); - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); - ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, NULL).code()); } TEST(JavaScriptDialogManager, TwoDialogs) { @@ -183,8 +183,8 @@ client.set_closing_count(2); ASSERT_EQ(kOk, manager.HandleDialog(false, NULL).code()); ASSERT_FALSE(manager.IsDialogOpen()); - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); - ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, NULL).code()); } TEST(JavaScriptDialogManager, OneDialogManualClose) { @@ -197,7 +197,7 @@ params.SetString("defaultPrompt", ""); ASSERT_FALSE(manager.IsDialogOpen()); std::string message; - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); ASSERT_EQ( kOk, @@ -213,6 +213,6 @@ kOk, manager.OnEvent(&client, "Page.javascriptDialogClosed", params).code()); ASSERT_FALSE(manager.IsDialogOpen()); - ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); - ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, NULL).code()); }
diff --git a/chrome/test/chromedriver/chrome/status.cc b/chrome/test/chromedriver/chrome/status.cc index 20b369d..ba9955f0 100644 --- a/chrome/test/chromedriver/chrome/status.cc +++ b/chrome/test/chromedriver/chrome/status.cc
@@ -50,8 +50,8 @@ return "invalid cookie domain"; case kUnexpectedAlertOpen: return "unexpected alert open"; - case kNoAlertOpen: - return "no alert open"; + case kNoSuchAlert: + return "no such alert"; case kScriptTimeout: return "asynchronous script timeout"; case kInvalidSelector:
diff --git a/chrome/test/chromedriver/chrome/status.h b/chrome/test/chromedriver/chrome/status.h index d70c0bac..ba5b4a4a 100644 --- a/chrome/test/chromedriver/chrome/status.h +++ b/chrome/test/chromedriver/chrome/status.h
@@ -29,7 +29,7 @@ kNoSuchWindow = 23, kInvalidCookieDomain = 24, kUnexpectedAlertOpen = 26, - kNoAlertOpen = 27, + kNoSuchAlert = 27, kScriptTimeout = 28, kInvalidSelector = 32, kSessionNotCreatedException = 33,
diff --git a/chrome/test/chromedriver/client/chromedriver.py b/chrome/test/chromedriver/client/chromedriver.py index d371db5..da75a92 100644 --- a/chrome/test/chromedriver/client/chromedriver.py +++ b/chrome/test/chromedriver/client/chromedriver.py
@@ -49,7 +49,7 @@ pass class UnexpectedAlertOpen(ChromeDriverException): pass -class NoAlertOpen(ChromeDriverException): +class NoSuchAlert(ChromeDriverException): pass class NoSuchCookie(ChromeDriverException): pass @@ -79,7 +79,7 @@ 23: NoSuchWindow, 24: InvalidCookieDomain, 26: UnexpectedAlertOpen, - 27: NoAlertOpen, + 27: NoSuchAlert, 28: ScriptTimeout, 32: InvalidSelector, 33: SessionNotCreatedException, @@ -105,7 +105,7 @@ 'no such window': NoSuchWindow, 'invalid cookie domain': InvalidCookieDomain, 'unexpected alert open': UnexpectedAlertOpen, - 'no alert open': NoAlertOpen, + 'no such alert': NoSuchAlert, 'asynchronous script timeout': ScriptTimeout, 'invalid selector': InvalidSelector, 'session not created exception': SessionNotCreatedException,
diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc index 252f6f6..e97d92e 100644 --- a/chrome/test/chromedriver/server/http_handler.cc +++ b/chrome/test/chromedriver/server/http_handler.cc
@@ -766,6 +766,9 @@ response.reset( new net::HttpServerResponseInfo(net::HTTP_INTERNAL_SERVER_ERROR)); break; + case kNoSuchAlert: + response.reset(new net::HttpServerResponseInfo(net::HTTP_NOT_FOUND)); + break; case kNoSuchCookie: response.reset(new net::HttpServerResponseInfo(net::HTTP_NOT_FOUND)); break; @@ -819,7 +822,6 @@ // TODO(kereliuk): evaluate the usage of these as they relate to the spec case kElementNotVisible: case kXPathLookupError: - case kNoAlertOpen: case kNoSuchExecutionContext: response.reset(new net::HttpServerResponseInfo(net::HTTP_BAD_REQUEST)); break;
diff --git a/chrome/test/chromedriver/test/run_java_tests.py b/chrome/test/chromedriver/test/run_java_tests.py index c547e127..3bbf01c3 100755 --- a/chrome/test/chromedriver/test/run_java_tests.py +++ b/chrome/test/chromedriver/test/run_java_tests.py
@@ -111,6 +111,16 @@ os.path.abspath(chrome_path)) st = os.stat(chrome_wrapper_path) os.chmod(chrome_wrapper_path, st.st_mode | stat.S_IEXEC) + elif util.IsMac(): + # Use srgb color profile, otherwise the default color profile on Mac + # causes some color adjustments, so screenshots have unexpected colors. + chrome_wrapper_path = os.path.join(test_dir, 'chrome-wrapper') + with open(chrome_wrapper_path, 'w') as f: + f.write('#!/bin/sh\n') + f.write('exec %s --force-color-profile=srgb "$@"\n' % + os.path.abspath(chrome_path)) + st = os.stat(chrome_wrapper_path) + os.chmod(chrome_wrapper_path, st.st_mode | stat.S_IEXEC) else: chrome_wrapper_path = os.path.abspath(chrome_path) sys_props += ['webdriver.chrome.binary=' + chrome_wrapper_path]
diff --git a/chrome/test/chromedriver/test/test_expectations b/chrome/test/chromedriver/test/test_expectations index cf86cf9f..1dd62f9 100644 --- a/chrome/test/chromedriver/test/test_expectations +++ b/chrome/test/chromedriver/test/test_expectations
@@ -114,12 +114,6 @@ _OS_NEGATIVE_FILTER['linux'] = [ ] _OS_NEGATIVE_FILTER['mac'] = [ - # Flaky: https://bugs.chromium.org/p/chromedriver/issues/detail?id=416 - 'TakesScreenshotTest.testShouldCaptureScreenshotAtFramePage', - # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1857 - 'TakesScreenshotTest.testShouldCaptureScreenshot', - 'TakesScreenshotTest.testShouldCaptureScreenshotAtFramePageAfterSwitching', - 'TakesScreenshotTest.testShouldCaptureScreenshotAtIFramePageAfterSwitching', ] _SPECIFIC_OS_REVISION_NEGATIVE_FILTER = {}
diff --git a/chrome/test/data/extensions/api_test/settings_private/test.js b/chrome/test/data/extensions/api_test/settings_private/test.js index 580971f..b5550bcf 100644 --- a/chrome/test/data/extensions/api_test/settings_private/test.js +++ b/chrome/test/data/extensions/api_test/settings_private/test.js
@@ -6,8 +6,8 @@ // that callbacks are correctly invoked, expected parameters are correct, // and failures are detected. -var kTestPrefName = 'download.default_directory'; -var kTestPrefValue = '/Downloads'; +var kTestPrefName = 'autofill.enabled'; +var kTestPrefValue = true; // This corresponds to policy key: kHomepageIsNewTabPage used in // settings_private_apitest.cc.
diff --git a/chrome/test/data/webui/cr_elements/cr_checkbox_test.js b/chrome/test/data/webui/cr_elements/cr_checkbox_test.js index 6fb5bd6f..270fc6bb 100644 --- a/chrome/test/data/webui/cr_elements/cr_checkbox_test.js +++ b/chrome/test/data/webui/cr_elements/cr_checkbox_test.js
@@ -187,4 +187,15 @@ // Initializing with disabled should make tabindex="-1". assertEquals(-1, checkbox.tabIndex); }); + + // Ensure that even if user clicks on the element, the entire element gets + // focused, as opposed to focusing the inner <button> only. + test('FocusAfterClicking', function() { + const innerButton = checkbox.$$('button'); + innerButton.focus(); + assertNotChecked(); + assertEquals(null, checkbox.shadowRoot.activeElement); + assertEquals('CR-CHECKBOX', document.activeElement.tagName); + }); + });
diff --git a/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js b/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js index b530845..d683718 100644 --- a/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js +++ b/chrome/test/data/webui/cr_elements/cr_elements_browsertest.js
@@ -309,52 +309,6 @@ * @constructor * @extends {CrElementsBrowserTest} */ -function CrElementsToggleTest() {} - -CrElementsToggleTest.prototype = { - __proto__: CrElementsBrowserTest.prototype, - - /** @override */ - browsePreload: 'chrome://resources/cr_elements/cr_toggle/cr_toggle.html', - - /** @override */ - extraLibraries: CrElementsBrowserTest.prototype.extraLibraries.concat([ - '../settings/test_util.js', - 'cr_toggle_test.js', - ]), -}; - -TEST_F('CrElementsToggleTest', 'All', function() { - mocha.run(); -}); - -/** - * @constructor - * @extends {CrElementsBrowserTest} - */ -function CrElementsCheckboxTest() {} - -CrElementsCheckboxTest.prototype = { - __proto__: CrElementsBrowserTest.prototype, - - /** @override */ - browsePreload: 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html', - - /** @override */ - extraLibraries: CrElementsBrowserTest.prototype.extraLibraries.concat([ - '../settings/test_util.js', - 'cr_checkbox_test.js', - ]), -}; - -TEST_F('CrElementsCheckboxTest', 'All', function() { - mocha.run(); -}); - -/** - * @constructor - * @extends {CrElementsBrowserTest} - */ function CrElementsRadioButtonTest() {} CrElementsRadioButtonTest.prototype = {
diff --git a/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js b/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js index 907f754..80e4538 100644 --- a/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js +++ b/chrome/test/data/webui/cr_elements/cr_elements_focus_test.js
@@ -56,3 +56,50 @@ cr_profile_avatar_selector.registerTests(); mocha.grep(cr_profile_avatar_selector.TestNames.Focus).run(); }); + +/** + * @constructor + * @extends {CrElementsFocusTest} + */ +function CrElementsToggleTest() {} + +CrElementsToggleTest.prototype = { + __proto__: CrElementsFocusTest.prototype, + + /** @override */ + browsePreload: 'chrome://resources/cr_elements/cr_toggle/cr_toggle.html', + + /** @override */ + extraLibraries: CrElementsFocusTest.prototype.extraLibraries.concat([ + '../settings/test_util.js', + 'cr_toggle_test.js', + ]), +}; + +TEST_F('CrElementsToggleTest', 'All', function() { + mocha.run(); +}); + + +/** + * @constructor + * @extends {CrElementsFocusTest} + */ +function CrElementsCheckboxTest() {} + +CrElementsCheckboxTest.prototype = { + __proto__: CrElementsFocusTest.prototype, + + /** @override */ + browsePreload: 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.html', + + /** @override */ + extraLibraries: CrElementsFocusTest.prototype.extraLibraries.concat([ + '../settings/test_util.js', + 'cr_checkbox_test.js', + ]), +}; + +TEST_F('CrElementsCheckboxTest', 'All', function() { + mocha.run(); +});
diff --git a/chrome/test/data/webui/cr_elements/cr_toggle_test.js b/chrome/test/data/webui/cr_elements/cr_toggle_test.js index b3a9efc..a0bb7c1 100644 --- a/chrome/test/data/webui/cr_elements/cr_toggle_test.js +++ b/chrome/test/data/webui/cr_elements/cr_toggle_test.js
@@ -180,6 +180,16 @@ }); }); + // Ensure that even if user clicks on the element, the entire element gets + // focused, as opposed to focusing the inner <button> only. + test('FocusAfterClicking', function() { + const innerButton = toggle.$$('button'); + innerButton.focus(); + assertNotChecked(); + assertEquals(null, toggle.shadowRoot.activeElement); + assertEquals('CR-TOGGLE', document.activeElement.tagName); + }); + // Test that the control is not affected by user interaction when disabled. test('ToggleWhenDisabled', function() { assertNotDisabled();
diff --git a/chrome/test/data/webui/print_preview/invalid_settings_browsertest.js b/chrome/test/data/webui/print_preview/invalid_settings_browsertest.js index d8e4c94..663a2ac 100644 --- a/chrome/test/data/webui/print_preview/invalid_settings_browsertest.js +++ b/chrome/test/data/webui/print_preview/invalid_settings_browsertest.js
@@ -139,7 +139,8 @@ // Expected message const expectedMessage = 'The selected printer is not available or not ' - + 'installed correctly.'; + + 'installed correctly. Check your printer or try selecting another ' + + 'printer.'; // Get references to relevant elements. const previewAreaEl = page.$.previewArea;
diff --git a/chrome/test/data/webui/print_preview/preview_generation_test.js b/chrome/test/data/webui/print_preview/preview_generation_test.js index 9326725..4402100 100644 --- a/chrome/test/data/webui/print_preview/preview_generation_test.js +++ b/chrome/test/data/webui/print_preview/preview_generation_test.js
@@ -257,9 +257,8 @@ barDestination.capabilities = print_preview_test_utils.getCddTemplate(barDestination.id) .capabilities; - page.set('destination_', barDestination); nativeLayer.resetResolver('getPreview'); - page.set('destination_.capabilities', barDestination.capabilities); + page.set('destination_', barDestination); return nativeLayer.whenCalled('getPreview'); }).then(function(args) { assertEquals('BarDevice', page.destination_.id);
diff --git a/chrome/test/data/webui/print_preview/settings_section_test.js b/chrome/test/data/webui/print_preview/settings_section_test.js index 9d7b538..e604815 100644 --- a/chrome/test/data/webui/print_preview/settings_section_test.js +++ b/chrome/test/data/webui/print_preview/settings_section_test.js
@@ -243,9 +243,7 @@ test(assert(TestNames.MediaSize), function() { const mediaSizeElement = page.$$('print-preview-media-size-settings'); - assertTrue(mediaSizeElement.hidden); - // Expand more settings to reveal the element. toggleMoreSettings(); assertFalse(mediaSizeElement.hidden); @@ -306,9 +304,7 @@ // Section is available for HTML (modifiable) documents initDocumentInfo(false, false); - assertTrue(marginsElement.hidden); - // Expand more settings to reveal the element. toggleMoreSettings(); assertFalse(marginsElement.hidden); @@ -319,7 +315,6 @@ test(assert(TestNames.Dpi), function() { const dpiElement = page.$$('print-preview-dpi-settings'); - assertTrue(dpiElement.hidden); // Expand more settings to reveal the element. toggleMoreSettings(); @@ -344,9 +339,7 @@ test(assert(TestNames.Scaling), function() { const scalingElement = page.$$('print-preview-scaling-settings'); - assertTrue(scalingElement.hidden); - // Expand more settings to reveal the element. toggleMoreSettings(); assertFalse(scalingElement.hidden); @@ -363,9 +356,6 @@ // PDF to non-PDF destination -> checkbox and input shown. Check that if // more settings is collapsed the section is hidden. initDocumentInfo(true, false); - toggleMoreSettings(); - assertTrue(scalingElement.hidden); - toggleMoreSettings(); assertFalse(scalingElement.hidden); assertFalse(fitToPageContainer.hidden); assertFalse(scalingInputWrapper.hidden); @@ -388,7 +378,7 @@ let capabilities = print_preview_test_utils.getCddTemplate('FooPrinter').capabilities; page.set('destination_.capabilities', capabilities); - assertTrue(optionsElement.hidden); + //assertTrue(optionsElement.hidden); // Expanding more settings will show the section. toggleMoreSettings(); @@ -450,7 +440,6 @@ let capabilities = print_preview_test_utils.getCddTemplate('FooPrinter').capabilities; page.set('destination_.capabilities', capabilities); - assertTrue(optionsElement.hidden); toggleMoreSettings(); assertFalse(optionsElement.hidden);
diff --git a/chrome/test/media_router/OWNERS b/chrome/test/media_router/OWNERS index 562d5657..d9b5dc3f 100644 --- a/chrome/test/media_router/OWNERS +++ b/chrome/test/media_router/OWNERS
@@ -1,7 +1,6 @@ # OWNERS with committer privileges. amp@chromium.org imcheng@chromium.org -apacible@chromium.org mfoltz@chromium.org # Team members without committer privileges, for potential FYI reviews.
diff --git a/chrome/utility/importer/profile_import_manifest.json b/chrome/utility/importer/profile_import_manifest.json index 94ac4b4..92e9337 100644 --- a/chrome/utility/importer/profile_import_manifest.json +++ b/chrome/utility/importer/profile_import_manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "import": [ "chrome::mojom::ProfileImport" ] + "import": [ "chrome.mojom.ProfileImport" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/chromecast/OWNERS b/chromecast/OWNERS index b81d6dca6..2c8e133 100644 --- a/chromecast/OWNERS +++ b/chromecast/OWNERS
@@ -2,6 +2,10 @@ servolk@chromium.org slan@chromium.org +# Android +per-file *android*=file://chromecast/android/OWNERS +per-file *.java=file://chromecast/android/OWNERS + # For major changes, please use one of the reviewers above! alexst@chromium.org spang@chromium.org
diff --git a/chromecast/android/OWNERS b/chromecast/android/OWNERS new file mode 100644 index 0000000..c602e13e --- /dev/null +++ b/chromecast/android/OWNERS
@@ -0,0 +1,3 @@ +sanfin@chromium.org + +# COMPONENT: Chromecast
diff --git a/chromecast/app/android/OWNERS b/chromecast/app/android/OWNERS new file mode 100644 index 0000000..874af25 --- /dev/null +++ b/chromecast/app/android/OWNERS
@@ -0,0 +1,3 @@ +file://chromecast/android/OWNERS + +# COMPONENT: Chromecast
diff --git a/chromecast/app/cast_main_delegate.cc b/chromecast/app/cast_main_delegate.cc index 991d46d..33875dc 100644 --- a/chromecast/app/cast_main_delegate.cc +++ b/chromecast/app/cast_main_delegate.cc
@@ -13,8 +13,8 @@ #include "base/files/file.h" #include "base/files/file_enumerator.h" #include "base/files/file_util.h" -#include "base/lazy_instance.h" #include "base/logging.h" +#include "base/no_destructor.h" #include "base/path_service.h" #include "base/posix/global_descriptors.h" #include "build/build_config.h" @@ -43,8 +43,11 @@ namespace { #if defined(OS_LINUX) -base::LazyInstance<chromecast::CastCrashReporterClient>::Leaky - g_crash_reporter_client = LAZY_INSTANCE_INITIALIZER; +chromecast::CastCrashReporterClient* GetCastCrashReporter() { + static base::NoDestructor<chromecast::CastCrashReporterClient> + crash_reporter_client; + return crash_reporter_client.get(); +} #endif // defined(OS_LINUX) #if defined(OS_ANDROID) @@ -145,7 +148,7 @@ base::PathService::Get(FILE_CAST_ANDROID_LOG, &log_file); chromecast::CrashHandler::Initialize(process_type, log_file); #elif defined(OS_LINUX) - crash_reporter::SetCrashReporterClient(g_crash_reporter_client.Pointer()); + crash_reporter::SetCrashReporterClient(GetCastCrashReporter()); if (process_type != switches::kZygoteProcess) { CastCrashReporterClient::InitCrashReporter(process_type);
diff --git a/chromecast/base/android/OWNERS b/chromecast/base/android/OWNERS new file mode 100644 index 0000000..874af25 --- /dev/null +++ b/chromecast/base/android/OWNERS
@@ -0,0 +1,3 @@ +file://chromecast/android/OWNERS + +# COMPONENT: Chromecast
diff --git a/chromecast/base/cast_features.cc b/chromecast/base/cast_features.cc index 62acd77..32465af 100644 --- a/chromecast/base/cast_features.cc +++ b/chromecast/base/cast_features.cc
@@ -9,7 +9,6 @@ #include "base/command_line.h" #include "base/feature_list.h" -#include "base/lazy_instance.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_param_associator.h" #include "base/metrics/field_trial_params.h" @@ -25,14 +24,18 @@ // The name of the default group to use for Cast DCS features. const char kDefaultDCSFeaturesGroup[] = "default_dcs_features_group"; -base::LazyInstance<std::unordered_set<int32_t>>::Leaky g_experiment_ids = - LAZY_INSTANCE_INITIALIZER; +std::unordered_set<int32_t>& GetExperimentIds() { + static base::NoDestructor<std::unordered_set<int32_t>> g_experiment_ids; + return *g_experiment_ids; +} + bool g_experiment_ids_initialized = false; // The collection of features that have been registered by unit tests std::vector<const base::Feature*>& GetTestFeatures() { - static base::NoDestructor<std::vector<const base::Feature*>> g_features_for_test; - return *g_features_for_test; + static base::NoDestructor<std::vector<const base::Feature*>> + features_for_test; + return *features_for_test; } void SetExperimentIds(const base::ListValue& list) { @@ -46,7 +49,7 @@ LOG(ERROR) << "Non-integer value found in experiment id list!"; } } - g_experiment_ids.Get().swap(ids); + GetExperimentIds().swap(ids); g_experiment_ids_initialized = true; } @@ -318,7 +321,7 @@ const std::unordered_set<int32_t>& GetDCSExperimentIds() { DCHECK(g_experiment_ids_initialized); - return g_experiment_ids.Get(); + return GetExperimentIds(); } void ResetCastFeaturesForTesting() {
diff --git a/chromecast/base/chromecast_config_android.cc b/chromecast/base/chromecast_config_android.cc index 5f97a637..96b2b8b 100644 --- a/chromecast/base/chromecast_config_android.cc +++ b/chromecast/base/chromecast_config_android.cc
@@ -7,7 +7,6 @@ #include <utility> #include "base/android/jni_android.h" -#include "base/lazy_instance.h" #include "jni/ChromecastConfigAndroid_jni.h" using base::android::JavaParamRef; @@ -15,14 +14,10 @@ namespace chromecast { namespace android { -namespace { -base::LazyInstance<ChromecastConfigAndroid>::DestructorAtExit g_instance = - LAZY_INSTANCE_INITIALIZER; -} // namespace - // static ChromecastConfigAndroid* ChromecastConfigAndroid::GetInstance() { - return g_instance.Pointer(); + static base::NoDestructor<ChromecastConfigAndroid> instance; + return instance.get(); } ChromecastConfigAndroid::ChromecastConfigAndroid() {
diff --git a/chromecast/base/chromecast_config_android.h b/chromecast/base/chromecast_config_android.h index e27ef08d..d200906 100644 --- a/chromecast/base/chromecast_config_android.h +++ b/chromecast/base/chromecast_config_android.h
@@ -8,8 +8,8 @@ #include <jni.h> #include "base/callback.h" -#include "base/lazy_instance.h" #include "base/macros.h" +#include "base/no_destructor.h" namespace chromecast { namespace android { @@ -31,7 +31,7 @@ void RunSendUsageStatsChangedCallback(bool enabled); private: - friend struct base::LazyInstanceTraitsBase<ChromecastConfigAndroid>; + friend class base::NoDestructor<ChromecastConfigAndroid>; ChromecastConfigAndroid(); ~ChromecastConfigAndroid();
diff --git a/chromecast/base/metrics/grouped_histogram.cc b/chromecast/base/metrics/grouped_histogram.cc index b45dbef..1bc541c9 100644 --- a/chromecast/base/metrics/grouped_histogram.cc +++ b/chromecast/base/metrics/grouped_histogram.cc
@@ -7,11 +7,11 @@ #include <stddef.h> #include <stdint.h> -#include "base/lazy_instance.h" #include "base/logging.h" #include "base/macros.h" #include "base/metrics/histogram.h" #include "base/metrics/statistics_recorder.h" +#include "base/no_destructor.h" #include "base/strings/string_piece.h" #include "base/strings/stringprintf.h" #include "base/synchronization/lock.h" @@ -30,12 +30,14 @@ std::string app_name; }; -base::LazyInstance<CurrentAppNameWithLock>::DestructorAtExit g_current_app = - LAZY_INSTANCE_INITIALIZER; +CurrentAppNameWithLock& GetCurrentApp() { + static base::NoDestructor<CurrentAppNameWithLock> current_app; + return *current_app; +} std::string GetAppName() { - base::AutoLock lock(g_current_app.Get().lock); - const std::string& app_name = g_current_app.Get().app_name; + base::AutoLock lock(GetCurrentApp().lock); + const std::string& app_name = GetCurrentApp().app_name; return app_name.empty() ? kAppNameErrorNoApp : app_name; } @@ -177,8 +179,8 @@ } void TagAppStartForGroupedHistograms(const std::string& app_name) { - base::AutoLock lock(g_current_app.Get().lock); - g_current_app.Get().app_name = app_name; + base::AutoLock lock(GetCurrentApp().lock); + GetCurrentApp().app_name = app_name; } } // namespace metrics
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java index c248f148..4903e1bc 100644 --- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java +++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastSysInfoAndroidThings.java
@@ -14,8 +14,10 @@ */ @JNINamespace("chromecast") public final class CastSysInfoAndroidThings { + private static final UpdateManager sUpdateManager = new UpdateManager(); + @CalledByNative private static String getReleaseChannel() { - return UpdateManager.getInstance().getChannel(); + return sUpdateManager.getChannel(); } }
diff --git a/chromecast/browser/cast_content_browser_manifest_overlay.json b/chromecast/browser/cast_content_browser_manifest_overlay.json index e05217d..34e964d 100644 --- a/chromecast/browser/cast_content_browser_manifest_overlay.json +++ b/chromecast/browser/cast_content_browser_manifest_overlay.json
@@ -5,15 +5,15 @@ "service_manager:connector": { "provides": { "renderer": [ - "chromecast::media::mojom::MediaCaps", - "chromecast::mojom::MemoryPressureController" + "chromecast.media.mojom.MediaCaps", + "chromecast.mojom.MemoryPressureController" ] } }, "navigation:frame": { "provides": { "renderer": [ - "chromecast::shell::mojom::ApplicationMediaCapabilities" + "chromecast.shell.mojom.ApplicationMediaCapabilities" ] } }
diff --git a/chromecast/browser/extensions/cast_extension_host_delegate.cc b/chromecast/browser/extensions/cast_extension_host_delegate.cc index 9e20efa..6f1dd159 100644 --- a/chromecast/browser/extensions/cast_extension_host_delegate.cc +++ b/chromecast/browser/extensions/cast_extension_host_delegate.cc
@@ -4,8 +4,8 @@ #include "chromecast/browser/extensions/cast_extension_host_delegate.h" -#include "base/lazy_instance.h" #include "base/logging.h" +#include "base/no_destructor.h" #include "chromecast/browser/extensions/cast_extension_web_contents_observer.h" #include "extensions/browser/media_capture_util.h" #include "extensions/browser/serial_extension_host_queue.h" @@ -57,11 +57,9 @@ return media_capture_util::CheckMediaAccessPermission(type, extension); } -static base::LazyInstance<SerialExtensionHostQueue>::DestructorAtExit g_queue = - LAZY_INSTANCE_INITIALIZER; - ExtensionHostQueue* CastExtensionHostDelegate::GetExtensionHostQueue() const { - return g_queue.Pointer(); + static base::NoDestructor<SerialExtensionHostQueue> queue; + return queue.get(); } } // namespace extensions
diff --git a/chromecast/common/cast_extensions_client.cc b/chromecast/common/cast_extensions_client.cc index 2136e16..4e0347b 100644 --- a/chromecast/common/cast_extensions_client.cc +++ b/chromecast/common/cast_extensions_client.cc
@@ -7,9 +7,9 @@ #include <memory> #include <string> -#include "base/lazy_instance.h" #include "base/logging.h" #include "base/macros.h" +#include "base/no_destructor.h" #include "chromecast/common/extensions_api/cast_aliases.h" #include "chromecast/common/extensions_api/cast_api_features.h" #include "chromecast/common/extensions_api/cast_api_permissions.h" @@ -79,9 +79,6 @@ DISALLOW_COPY_AND_ASSIGN(ShellPermissionMessageProvider); }; -base::LazyInstance<ShellPermissionMessageProvider>::DestructorAtExit - g_permission_message_provider = LAZY_INSTANCE_INITIALIZER; - } // namespace CastExtensionsClient::CastExtensionsClient() @@ -109,7 +106,9 @@ const PermissionMessageProvider& CastExtensionsClient::GetPermissionMessageProvider() const { NOTIMPLEMENTED(); - return g_permission_message_provider.Get(); + static base::NoDestructor<ShellPermissionMessageProvider> + g_permission_message_provider; + return *g_permission_message_provider; } const std::string CastExtensionsClient::GetProductName() {
diff --git a/chromecast/crash/app_state_tracker.cc b/chromecast/crash/app_state_tracker.cc index 05ef940..e11956cf 100644 --- a/chromecast/crash/app_state_tracker.cc +++ b/chromecast/crash/app_state_tracker.cc
@@ -4,7 +4,7 @@ #include "chromecast/crash/app_state_tracker.h" -#include "base/lazy_instance.h" +#include "base/no_destructor.h" #include "chromecast/crash/cast_crash_keys.h" #include "components/crash/core/common/crash_key.h" @@ -16,11 +16,9 @@ std::string last_launched_app; }; -base::LazyInstance<CurrentAppState>::DestructorAtExit g_app_state = - LAZY_INSTANCE_INITIALIZER; - CurrentAppState* GetAppState() { - return g_app_state.Pointer(); + static base::NoDestructor<CurrentAppState> app_state; + return app_state.get(); } } // namespace
diff --git a/chromecast/device/bluetooth/le/le_scan_result.cc b/chromecast/device/bluetooth/le/le_scan_result.cc index ff48b11..10d7e1f 100644 --- a/chromecast/device/bluetooth/le/le_scan_result.cc +++ b/chromecast/device/bluetooth/le/le_scan_result.cc
@@ -58,9 +58,9 @@ return base::nullopt; } - ret.emplace_back(); for (size_t i = 0; i < field.size(); i += sizeof(bluetooth_v2_shlib::Uuid)) { + ret.emplace_back(); // GAP UUIDs are little endian and bluetooth_v2_shlib::Uuid is big endian. std::reverse_copy(field.begin() + i, field.begin() + i + sizeof(bluetooth_v2_shlib::Uuid),
diff --git a/chromecast/device/bluetooth/le/le_scan_result_test.cc b/chromecast/device/bluetooth/le/le_scan_result_test.cc index 9f74affa..d740f03 100644 --- a/chromecast/device/bluetooth/le/le_scan_result_test.cc +++ b/chromecast/device/bluetooth/le/le_scan_result_test.cc
@@ -240,18 +240,26 @@ static const bluetooth_v2_shlib::Uuid kUuid2 = { {0xa8, 0x22, 0xc8, 0x85, 0xaf, 0x02, 0xc7, 0x80, 0x9d, 0x4d, 0xbd, 0x9a, 0x1f, 0xa0, 0x6d, 0x93}}; + static const bluetooth_v2_shlib::Uuid kUuid3 = { + {0xaa, 0x22, 0xc8, 0x85, 0xaf, 0x02, 0xc7, 0x80, 0x9d, 0x4d, 0xbd, 0x9a, + 0x1f, 0xa0, 0x6d, 0x93}}; LeScanResult scan_result; scan_result.type_to_data[LeScanResult::kGapComplete128BitServiceUuids] .emplace_back(kUuid1.rbegin(), kUuid1.rend()); scan_result.type_to_data[LeScanResult::kGapComplete128BitServiceUuids] .emplace_back(kUuid2.rbegin(), kUuid2.rend()); + auto& end = + scan_result.type_to_data[LeScanResult::kGapComplete128BitServiceUuids] + .back(); + end.insert(end.end(), kUuid3.rbegin(), kUuid3.rend()); auto uuids = scan_result.CompleteListOf128BitServiceUuids(); ASSERT_TRUE(uuids); - ASSERT_EQ(2ul, uuids->size()); + ASSERT_EQ(3ul, uuids->size()); EXPECT_EQ(kUuid1, (*uuids)[0]); EXPECT_EQ(kUuid2, (*uuids)[1]); + EXPECT_EQ(kUuid3, (*uuids)[2]); } TEST(LeScanResultTest, AllServiceData) {
diff --git a/chromecast/device/bluetooth/le/remote_device_impl.cc b/chromecast/device/bluetooth/le/remote_device_impl.cc index ecad561..6b622da 100644 --- a/chromecast/device/bluetooth/le/remote_device_impl.cc +++ b/chromecast/device/bluetooth/le/remote_device_impl.cc
@@ -288,6 +288,10 @@ LOG(ERROR) << "Couldn't discover services, disconnecting"; Disconnect({}); } + } else { + uuid_to_service_.clear(); + handle_to_characteristic_.clear(); + handle_to_descriptor_.clear(); } }
diff --git a/chromecast/media/cma/backend/android/audio_sink_manager.cc b/chromecast/media/cma/backend/android/audio_sink_manager.cc index f3f17f05..99bad49 100644 --- a/chromecast/media/cma/backend/android/audio_sink_manager.cc +++ b/chromecast/media/cma/backend/android/audio_sink_manager.cc
@@ -6,7 +6,7 @@ #include <algorithm> -#include "base/lazy_instance.h" +#include "base/no_destructor.h" #include "chromecast/media/cma/backend/android/audio_sink_android.h" namespace chromecast { @@ -23,14 +23,12 @@ DISALLOW_COPY_AND_ASSIGN(AudioSinkManagerInstance); }; -base::LazyInstance<AudioSinkManagerInstance>::DestructorAtExit - g_sink_manager_instance = LAZY_INSTANCE_INITIALIZER; - } // namespace // static AudioSinkManager* AudioSinkManager::Get() { - return g_sink_manager_instance.Pointer(); + base::NoDestructor<AudioSinkManagerInstance> sink_manager_instance; + return sink_manager_instance.get(); } // static
diff --git a/chromecast/media/cma/backend/android/volume_control_android.cc b/chromecast/media/cma/backend/android/volume_control_android.cc index bcbdfae8..864640b 100644 --- a/chromecast/media/cma/backend/android/volume_control_android.cc +++ b/chromecast/media/cma/backend/android/volume_control_android.cc
@@ -14,11 +14,11 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/files/file_util.h" -#include "base/lazy_instance.h" #include "base/location.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" +#include "base/no_destructor.h" #include "chromecast/base/init_command_line_shlib.h" #include "chromecast/base/serializers.h" #include "chromecast/chromecast_buildflags.h" @@ -68,8 +68,10 @@ } // namespace -base::LazyInstance<VolumeControlAndroid>::Leaky g_volume_control = - LAZY_INSTANCE_INITIALIZER; +VolumeControlAndroid& GetVolumeControl() { + static base::NoDestructor<VolumeControlAndroid> volume_control; + return *volume_control; +} VolumeControlAndroid::VolumeControlAndroid() : thread_("VolumeControl"), @@ -319,37 +321,37 @@ // static void VolumeControl::AddVolumeObserver(VolumeObserver* observer) { - g_volume_control.Get().AddVolumeObserver(observer); + GetVolumeControl().AddVolumeObserver(observer); } // static void VolumeControl::RemoveVolumeObserver(VolumeObserver* observer) { - g_volume_control.Get().RemoveVolumeObserver(observer); + GetVolumeControl().RemoveVolumeObserver(observer); } // static float VolumeControl::GetVolume(AudioContentType type) { - return g_volume_control.Get().GetVolume(type); + return GetVolumeControl().GetVolume(type); } // static void VolumeControl::SetVolume(AudioContentType type, float level) { - g_volume_control.Get().SetVolume(type, level); + GetVolumeControl().SetVolume(type, level); } // static bool VolumeControl::IsMuted(AudioContentType type) { - return g_volume_control.Get().IsMuted(type); + return GetVolumeControl().IsMuted(type); } // static void VolumeControl::SetMuted(AudioContentType type, bool muted) { - g_volume_control.Get().SetMuted(type, muted); + GetVolumeControl().SetMuted(type, muted); } // static void VolumeControl::SetOutputLimit(AudioContentType type, float limit) { - g_volume_control.Get().SetOutputLimit(type, limit); + GetVolumeControl().SetOutputLimit(type, limit); } // static
diff --git a/chromecast/media/cma/backend/stream_mixer.cc b/chromecast/media/cma/backend/stream_mixer.cc index 03df1166..f367aad 100644 --- a/chromecast/media/cma/backend/stream_mixer.cc +++ b/chromecast/media/cma/backend/stream_mixer.cc
@@ -14,7 +14,7 @@ #include "base/bind_helpers.h" #include "base/compiler_specific.h" -#include "base/lazy_instance.h" +#include "base/no_destructor.h" #include "base/single_thread_task_runner.h" #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" @@ -175,9 +175,6 @@ #endif } -base::LazyInstance<StreamMixer>::DestructorAtExit g_mixer_instance = - LAZY_INSTANCE_INITIALIZER; - } // namespace float StreamMixer::VolumeInfo::GetEffectiveVolume() { @@ -186,7 +183,8 @@ // static StreamMixer* StreamMixer::Get() { - return g_mixer_instance.Pointer(); + static base::NoDestructor<StreamMixer> mixer_instance; + return mixer_instance.get(); } StreamMixer::StreamMixer()
diff --git a/chromecast/media/cma/backend/volume_control.cc b/chromecast/media/cma/backend/volume_control.cc index cde24ef..a52f765 100644 --- a/chromecast/media/cma/backend/volume_control.cc +++ b/chromecast/media/cma/backend/volume_control.cc
@@ -16,12 +16,12 @@ #include "base/bind_helpers.h" #include "base/files/file_path.h" #include "base/files/file_util.h" -#include "base/lazy_instance.h" #include "base/location.h" #include "base/logging.h" #include "base/macros.h" #include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" +#include "base/no_destructor.h" #include "base/synchronization/lock.h" #include "base/synchronization/waitable_event.h" #include "base/threading/thread.h" @@ -69,7 +69,10 @@ } } -base::LazyInstance<VolumeMap>::Leaky g_volume_map = LAZY_INSTANCE_INITIALIZER; +VolumeMap& GetVolumeMap() { + static base::NoDestructor<VolumeMap> volume_map; + return *volume_map; +} class VolumeControlInternal : public SystemVolumeControl::Delegate { public: @@ -79,7 +82,7 @@ base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED) { // Load volume map to check that the config file is correct. - g_volume_map.Get(); + GetVolumeMap(); stored_values_.SetDouble(kKeyMediaDbFS, kDefaultMediaDbFS); stored_values_.SetDouble(kKeyAlarmDbFS, kDefaultAlarmDbFS); @@ -339,15 +342,19 @@ DISALLOW_COPY_AND_ASSIGN(VolumeControlInternal); }; -base::LazyInstance<VolumeControlInternal>::Leaky g_volume_control = - LAZY_INSTANCE_INITIALIZER; +// base::LazyInstance<VolumeControlInternal>::Leaky g_volume_control = +// LAZY_INSTANCE_INITIALIZER; +VolumeControlInternal& GetVolumeControl() { + static base::NoDestructor<VolumeControlInternal> g_volume_control; + return *g_volume_control; +} } // namespace // static void VolumeControl::Initialize(const std::vector<std::string>& argv) { chromecast::InitCommandLineShlib(argv); - g_volume_control.Get(); + GetVolumeControl(); } // static @@ -357,52 +364,52 @@ // static void VolumeControl::AddVolumeObserver(VolumeObserver* observer) { - g_volume_control.Get().AddVolumeObserver(observer); + GetVolumeControl().AddVolumeObserver(observer); } // static void VolumeControl::RemoveVolumeObserver(VolumeObserver* observer) { - g_volume_control.Get().RemoveVolumeObserver(observer); + GetVolumeControl().RemoveVolumeObserver(observer); } // static float VolumeControl::GetVolume(AudioContentType type) { - return g_volume_control.Get().GetVolume(type); + return GetVolumeControl().GetVolume(type); } // static void VolumeControl::SetVolume(AudioContentType type, float level) { - g_volume_control.Get().SetVolume(type, level); + GetVolumeControl().SetVolume(type, level); } // static bool VolumeControl::IsMuted(AudioContentType type) { - return g_volume_control.Get().IsMuted(type); + return GetVolumeControl().IsMuted(type); } // static void VolumeControl::SetMuted(AudioContentType type, bool muted) { - g_volume_control.Get().SetMuted(type, muted); + GetVolumeControl().SetMuted(type, muted); } // static void VolumeControl::SetOutputLimit(AudioContentType type, float limit) { - g_volume_control.Get().SetOutputLimit(type, limit); + GetVolumeControl().SetOutputLimit(type, limit); } // static float VolumeControl::VolumeToDbFS(float volume) { - return g_volume_map.Get().VolumeToDbFS(volume); + return GetVolumeMap().VolumeToDbFS(volume); } // static float VolumeControl::DbFSToVolume(float db) { - return g_volume_map.Get().DbFSToVolume(db); + return GetVolumeMap().DbFSToVolume(db); } // static void VolumeControl::SetPowerSaveMode(bool power_save_on) { - g_volume_control.Get().SetPowerSaveMode(power_save_on); + GetVolumeControl().SetPowerSaveMode(power_save_on); } } // namespace media
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 12ba117..8c6aa0ad 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -10680.0.0 \ No newline at end of file +10681.0.0 \ No newline at end of file
diff --git a/chromeos/account_manager/account_manager.cc b/chromeos/account_manager/account_manager.cc index ce3cc9f..9017f4c 100644 --- a/chromeos/account_manager/account_manager.cc +++ b/chromeos/account_manager/account_manager.cc
@@ -156,7 +156,10 @@ std::move(cb).Run(); } initialization_callbacks_.clear(); - NotifyAccountListObservers(); + + for (const auto& token : tokens_) { + NotifyTokenObservers(token.first); + } } AccountManager::~AccountManager() { @@ -208,14 +211,10 @@ DCHECK(account_key.IsValid()) << "Invalid account_key: " << account_key; auto it = tokens_.find(account_key); - const bool is_new_account = (it == tokens_.end()); - if (is_new_account || (it->second != token)) { + if ((it == tokens_.end()) || (it->second != token)) { tokens_[account_key] = token; PersistTokensAsync(); - } - - if (is_new_account) { - NotifyAccountListObservers(); + NotifyTokenObservers(account_key); } } @@ -225,12 +224,11 @@ std::make_unique<std::string>(GetSerializedTokens(tokens_))); } -void AccountManager::NotifyAccountListObservers() { +void AccountManager::NotifyTokenObservers(const AccountKey& account_key) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - std::vector<AccountKey> accounts = GetAccountKeys(tokens_); for (auto& observer : observers_) { - observer.OnAccountListUpdated(accounts); + observer.OnTokenUpserted(account_key); } }
diff --git a/chromeos/account_manager/account_manager.h b/chromeos/account_manager/account_manager.h index f15c25c..4016ea2 100644 --- a/chromeos/account_manager/account_manager.h +++ b/chromeos/account_manager/account_manager.h
@@ -63,18 +63,15 @@ Observer(); virtual ~Observer(); - // Called when the list of accounts known to |AccountManager| is updated. + // Called when the token for |account_key| is updated/inserted. // Use |AccountManager::AddObserver| to add an |Observer|. - // Note: This is not called when the token for an already known account is - // updated. // Note: |Observer|s which register with |AccountManager| before its // initialization is complete will get notified when |AccountManager| is // fully initialized. // Note: |Observer|s which register with |AccountManager| after its // initialization is complete will not get an immediate // notification-on-registration. - virtual void OnAccountListUpdated( - const std::vector<AccountKey>& accounts) = 0; + virtual void OnTokenUpserted(const AccountKey& account_key) = 0; private: DISALLOW_COPY_AND_ASSIGN(Observer); @@ -155,8 +152,8 @@ // persist the current state of |tokens_|. void PersistTokensAsync(); - // Notify |Observer|s about an account list update. - void NotifyAccountListObservers(); + // Notify |Observer|s about a token update. + void NotifyTokenObservers(const AccountKey& account_key); // Status of this object's initialization. InitializationState init_state_ = InitializationState::kNotStarted;
diff --git a/chromeos/account_manager/account_manager_unittest.cc b/chromeos/account_manager/account_manager_unittest.cc index 96c194c5..dd6d5518 100644 --- a/chromeos/account_manager/account_manager_unittest.cc +++ b/chromeos/account_manager/account_manager_unittest.cc
@@ -4,6 +4,7 @@ #include "chromeos/account_manager/account_manager.h" +#include <set> #include <string> #include <utility> #include <vector> @@ -48,14 +49,13 @@ AccountManagerObserver() = default; ~AccountManagerObserver() override = default; - void OnAccountListUpdated( - const std::vector<AccountManager::AccountKey>& accounts) override { + void OnTokenUpserted(const AccountManager::AccountKey& account_key) override { is_callback_called_ = true; - accounts_ = accounts; + accounts_.insert(account_key); } bool is_callback_called_ = false; - std::vector<AccountManager::AccountKey> accounts_; + std::set<AccountManager::AccountKey> accounts_; private: DISALLOW_COPY_AND_ASSIGN(AccountManagerObserver); @@ -130,7 +130,22 @@ EXPECT_EQ(kAccountKey_, accounts[0]); } -TEST_F(AccountManagerTest, TestObserverAddAccount) { +TEST_F(AccountManagerTest, ObserversAreNotifiedOnTokenInsertion) { + auto observer = std::make_unique<AccountManagerObserver>(); + EXPECT_FALSE(observer->is_callback_called_); + + account_manager_->AddObserver(observer.get()); + + account_manager_->UpsertToken(kAccountKey_, "123"); + scoped_task_environment_.RunUntilIdle(); + EXPECT_TRUE(observer->is_callback_called_); + EXPECT_EQ(1UL, observer->accounts_.size()); + EXPECT_EQ(kAccountKey_, *observer->accounts_.begin()); + + account_manager_->RemoveObserver(observer.get()); +} + +TEST_F(AccountManagerTest, ObserversAreNotifiedOnTokenUpdate) { auto observer = std::make_unique<AccountManagerObserver>(); EXPECT_FALSE(observer->is_callback_called_); @@ -138,17 +153,32 @@ account_manager_->UpsertToken(kAccountKey_, "123"); scoped_task_environment_.RunUntilIdle(); - EXPECT_TRUE(observer->is_callback_called_); - EXPECT_EQ(1UL, observer->accounts_.size()); - EXPECT_EQ(kAccountKey_, observer->accounts_[0]); - - // Observers should not be called if account list does not change. + // Observers should be called when token is updated. observer->is_callback_called_ = false; account_manager_->UpsertToken(kAccountKey_, "456"); scoped_task_environment_.RunUntilIdle(); + EXPECT_TRUE(observer->is_callback_called_); + EXPECT_EQ(1UL, observer->accounts_.size()); + EXPECT_EQ(kAccountKey_, *observer->accounts_.begin()); + + account_manager_->RemoveObserver(observer.get()); +} + +TEST_F(AccountManagerTest, ObserversAreNotNotifiedIfTokenIsNotUpdated) { + auto observer = std::make_unique<AccountManagerObserver>(); + const std::string& kToken = "123"; EXPECT_FALSE(observer->is_callback_called_); - // Don't leak + account_manager_->AddObserver(observer.get()); + account_manager_->UpsertToken(kAccountKey_, kToken); + scoped_task_environment_.RunUntilIdle(); + + // Observers should not be called when token is not updated. + observer->is_callback_called_ = false; + account_manager_->UpsertToken(kAccountKey_, kToken); + scoped_task_environment_.RunUntilIdle(); + EXPECT_FALSE(observer->is_callback_called_); + account_manager_->RemoveObserver(observer.get()); }
diff --git a/chromeos/chromeos_switches.cc b/chromeos/chromeos_switches.cc index 96cea1d..b0b1d283 100644 --- a/chromeos/chromeos_switches.cc +++ b/chromeos/chromeos_switches.cc
@@ -392,6 +392,10 @@ const char kEnterpriseEnableForcedReEnrollment[] = "enterprise-enable-forced-re-enrollment"; +// Whether to enable initial enterprise enrollment. +const char kEnterpriseEnableInitialEnrollment[] = + "enterprise-enable-initial-enrollment"; + // Enables the zero-touch enterprise enrollment flow. const char kEnterpriseEnableZeroTouchEnrollment[] = "enterprise-enable-zero-touch-enrollment";
diff --git a/chromeos/chromeos_switches.h b/chromeos/chromeos_switches.h index 02e904c..5edf4ed 100644 --- a/chromeos/chromeos_switches.h +++ b/chromeos/chromeos_switches.h
@@ -115,6 +115,7 @@ CHROMEOS_EXPORT extern const char kEnterpriseDisableArc[]; CHROMEOS_EXPORT extern const char kEnterpriseDisableLicenseTypeSelection[]; CHROMEOS_EXPORT extern const char kEnterpriseEnableForcedReEnrollment[]; +CHROMEOS_EXPORT extern const char kEnterpriseEnableInitialEnrollment[]; CHROMEOS_EXPORT extern const char kEnterpriseEnableZeroTouchEnrollment[]; CHROMEOS_EXPORT extern const char kEnterpriseEnrollmentInitialModulus[]; CHROMEOS_EXPORT extern const char kEnterpriseEnrollmentModulusLimit[];
diff --git a/chromeos/services/assistant/BUILD.gn b/chromeos/services/assistant/BUILD.gn index 1b597e0a..ae8bacf 100644 --- a/chromeos/services/assistant/BUILD.gn +++ b/chromeos/services/assistant/BUILD.gn
@@ -120,3 +120,16 @@ testonly = true embedded_services = [ ":unittest_manifest" ] } + +static_library("test_support") { + testonly = true + sources = [ + "test_support/mock_assistant.cc", + "test_support/mock_assistant.h", + ] + deps = [ + "//base", + "//chromeos/services/assistant/public/mojom", + "//testing/gmock", + ] +}
diff --git a/chromeos/services/assistant/manifest.json b/chromeos/services/assistant/manifest.json index 04c32d0..015eb88 100644 --- a/chromeos/services/assistant/manifest.json +++ b/chromeos/services/assistant/manifest.json
@@ -9,9 +9,9 @@ }, "provides": { "assistant": [ - "chromeos::assistant::mojom::Assistant", - "chromeos::assistant::mojom::AssistantPlatform", - "chromeos::assistant::mojom::AssistantSettingsManager" + "chromeos.assistant.mojom.Assistant", + "chromeos.assistant.mojom.AssistantPlatform", + "chromeos.assistant.mojom.AssistantSettingsManager" ] } }
diff --git a/chromeos/services/assistant/test_support/mock_assistant.cc b/chromeos/services/assistant/test_support/mock_assistant.cc new file mode 100644 index 0000000..cd3a1d6 --- /dev/null +++ b/chromeos/services/assistant/test_support/mock_assistant.cc
@@ -0,0 +1,15 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chromeos/services/assistant/test_support/mock_assistant.h" + +namespace chromeos { +namespace assistant { + +MockAssistant::MockAssistant() = default; + +MockAssistant::~MockAssistant() = default; + +} // namespace assistant +} // namespace chromeos
diff --git a/chromeos/services/assistant/test_support/mock_assistant.h b/chromeos/services/assistant/test_support/mock_assistant.h new file mode 100644 index 0000000..61cef97 --- /dev/null +++ b/chromeos/services/assistant/test_support/mock_assistant.h
@@ -0,0 +1,36 @@ +// 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_ASSISTANT_TEST_SUPPORT_MOCK_ASSISTANT_H_ +#define CHROMEOS_SERVICES_ASSISTANT_TEST_SUPPORT_MOCK_ASSISTANT_H_ + +#include "base/macros.h" +#include "chromeos/services/assistant/public/mojom/assistant.mojom.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace chromeos { +namespace assistant { + +class MockAssistant : public mojom::Assistant { + public: + MockAssistant(); + ~MockAssistant() override; + + MOCK_METHOD0(StartVoiceInteraction, void()); + + MOCK_METHOD0(StopActiveInteraction, void()); + + MOCK_METHOD1(SendTextQuery, void(const std::string&)); + + MOCK_METHOD1(AddAssistantEventSubscriber, + void(chromeos::assistant::mojom::AssistantEventSubscriberPtr)); + + private: + DISALLOW_COPY_AND_ASSIGN(MockAssistant); +}; + +} // namespace assistant +} // namespace chromeos + +#endif // CHROMEOS_SERVICES_ASSISTANT_TEST_SUPPORT_MOCK_ASSISTANT_H_
diff --git a/chromeos/services/assistant/unittest_manifest.json b/chromeos/services/assistant/unittest_manifest.json index dadd11f..5fbe95a 100644 --- a/chromeos/services/assistant/unittest_manifest.json +++ b/chromeos/services/assistant/unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/chromeos/services/device_sync/manifest.json b/chromeos/services/device_sync/manifest.json index fecdc7f2..7c3ffd2 100644 --- a/chromeos/services/device_sync/manifest.json +++ b/chromeos/services/device_sync/manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "device_sync": [ "device_sync::mojom::DeviceSync" ] + "device_sync": [ "device_sync.mojom.DeviceSync" ] } } }
diff --git a/chromeos/services/multidevice_setup/manifest.json b/chromeos/services/multidevice_setup/manifest.json index c120f296..3f2b329f3 100644 --- a/chromeos/services/multidevice_setup/manifest.json +++ b/chromeos/services/multidevice_setup/manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "multidevice_setup" : [ - "chromeos::multidevice_setup::mojom::MultiDeviceSetup" + "chromeos.multidevice_setup.mojom.MultiDeviceSetup" ] } }
diff --git a/chromeos/services/secure_channel/BUILD.gn b/chromeos/services/secure_channel/BUILD.gn index db6fd5f..d753f3f5 100644 --- a/chromeos/services/secure_channel/BUILD.gn +++ b/chromeos/services/secure_channel/BUILD.gn
@@ -6,6 +6,10 @@ static_library("secure_channel") { sources = [ + "authenticated_channel.cc", + "authenticated_channel.h", + "authenticated_channel_impl.cc", + "authenticated_channel_impl.h", "connect_to_device_operation.h", "connect_to_device_operation_base.h", "connect_to_device_operation_factory.h", @@ -31,6 +35,8 @@ testonly = true sources = [ + "fake_authenticated_channel.cc", + "fake_authenticated_channel.h", "fake_connect_to_device_operation.cc", "fake_connect_to_device_operation.h", "fake_connect_to_device_operation_factory.cc", @@ -59,6 +65,7 @@ testonly = true sources = [ + "authenticated_channel_impl_unittest.cc", "connect_to_device_operation_base_unittest.cc", "connect_to_device_operation_factory_base_unittest.cc", "connection_attempt_base_unittest.cc",
diff --git a/chromeos/services/secure_channel/authenticated_channel.cc b/chromeos/services/secure_channel/authenticated_channel.cc new file mode 100644 index 0000000..e3c1219 --- /dev/null +++ b/chromeos/services/secure_channel/authenticated_channel.cc
@@ -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. + +#include "chromeos/services/secure_channel/authenticated_channel.h" + +#include "base/callback.h" +#include "base/guid.h" + +namespace chromeos { + +namespace secure_channel { + +AuthenticatedChannel::Observer::~Observer() = default; + +AuthenticatedChannel::AuthenticatedChannel() + : channel_id_(base::GenerateGUID()) {} + +AuthenticatedChannel::~AuthenticatedChannel() = default; + +bool AuthenticatedChannel::SendMessage(const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback) { + if (is_disconnected_) + return false; + + PerformSendMessage(feature, payload, std::move(on_sent_callback)); + return true; +} + +void AuthenticatedChannel::AddObserver(Observer* observer) { + observer_list_.AddObserver(observer); +} + +void AuthenticatedChannel::RemoveObserver(Observer* observer) { + observer_list_.RemoveObserver(observer); +} + +void AuthenticatedChannel::NotifyDisconnected() { + is_disconnected_ = true; + + // Make a copy before notifying observers to ensure that if one observer + // deletes |this| before the next observer is able to be processed, a segfault + // is prevented. + const std::string channel_id_copy = channel_id_; + + for (auto& observer : observer_list_) + observer.OnDisconnected(channel_id_copy); +} + +void AuthenticatedChannel::NotifyMessageReceived(const std::string& feature, + const std::string& payload) { + // Make a copy before notifying observers to ensure that if one observer + // deletes |this| before the next observer is able to be processed, a segfault + // is prevented. + const std::string channel_id_copy = channel_id_; + const std::string feature_copy = feature; + const std::string payload_copy = payload; + + for (auto& observer : observer_list_) + observer.OnMessageReceived(channel_id_copy, feature_copy, payload_copy); +} + +} // namespace secure_channel + +} // namespace chromeos
diff --git a/chromeos/services/secure_channel/authenticated_channel.h b/chromeos/services/secure_channel/authenticated_channel.h new file mode 100644 index 0000000..4b1bb984 --- /dev/null +++ b/chromeos/services/secure_channel/authenticated_channel.h
@@ -0,0 +1,76 @@ +// 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_SECURE_CHANNEL_AUTHENTICATED_CHANNEL_H_ +#define CHROMEOS_SERVICES_SECURE_CHANNEL_AUTHENTICATED_CHANNEL_H_ + +#include <string> + +#include "base/callback_forward.h" +#include "base/macros.h" +#include "base/observer_list.h" + +namespace chromeos { + +namespace secure_channel { + +// A full-duplex communication channel which is guaranteed to be authenticated +// (i.e., the two sides of the channel both belong to the same underlying user). +// All messages sent and received over the channel are encrypted. +class AuthenticatedChannel { + public: + class Observer { + public: + virtual ~Observer(); + virtual void OnDisconnected(const std::string& channel_id) = 0; + virtual void OnMessageReceived(const std::string& channel_id, + const std::string& feature, + const std::string& payload) = 0; + }; + + virtual ~AuthenticatedChannel(); + + // Sends a message with the specified |feature| and |payload|. Once the + // message has been sent, |on_sent_callback| will be invoked. Returns whether + // this AuthenticatedChannel was able to start sending the message; this + // function only fails if the underlying connection has been disconnected. + bool SendMessage(const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback); + + // Note: Channel ID is guaranteed to be unique among all channels. + const std::string& channel_id() const { return channel_id_; } + + bool is_disconnected() const { return is_disconnected_; } + + void AddObserver(Observer* observer); + void RemoveObserver(Observer* observer); + + protected: + AuthenticatedChannel(); + + // Performs the actual logic of sending the message. By the time this function + // is called, it has already been confirmed that the channel has not been + // disconnected. + virtual void PerformSendMessage(const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback) = 0; + + void NotifyDisconnected(); + void NotifyMessageReceived(const std::string& feature, + const std::string& payload); + + private: + const std::string channel_id_; + base::ObserverList<Observer> observer_list_; + bool is_disconnected_ = false; + + DISALLOW_COPY_AND_ASSIGN(AuthenticatedChannel); +}; + +} // namespace secure_channel + +} // namespace chromeos + +#endif // CHROMEOS_SERVICES_SECURE_CHANNEL_AUTHENTICATED_CHANNEL_H_
diff --git a/chromeos/services/secure_channel/authenticated_channel_impl.cc b/chromeos/services/secure_channel/authenticated_channel_impl.cc new file mode 100644 index 0000000..c3ab6d14 --- /dev/null +++ b/chromeos/services/secure_channel/authenticated_channel_impl.cc
@@ -0,0 +1,119 @@ +// 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/secure_channel/authenticated_channel_impl.h" + +#include "base/logging.h" +#include "base/memory/ptr_util.h" +#include "base/no_destructor.h" +#include "chromeos/components/proximity_auth/logging/logging.h" + +namespace chromeos { + +namespace secure_channel { + +// static +AuthenticatedChannelImpl::Factory* + AuthenticatedChannelImpl::Factory::test_factory_ = nullptr; + +// static +AuthenticatedChannelImpl::Factory* AuthenticatedChannelImpl::Factory::Get() { + if (test_factory_) + return test_factory_; + + static base::NoDestructor<AuthenticatedChannelImpl::Factory> factory; + return factory.get(); +} + +// static +void AuthenticatedChannelImpl::Factory::SetFactoryForTesting( + Factory* test_factory) { + test_factory_ = test_factory; +} + +std::unique_ptr<AuthenticatedChannel> +AuthenticatedChannelImpl::Factory::BuildInstance( + std::unique_ptr<cryptauth::SecureChannel> secure_channel) { + return base::WrapUnique( + new AuthenticatedChannelImpl(std::move(secure_channel))); +} + +AuthenticatedChannelImpl::AuthenticatedChannelImpl( + std::unique_ptr<cryptauth::SecureChannel> secure_channel) + : AuthenticatedChannel(), secure_channel_(std::move(secure_channel)) { + // |secure_channel_| should be a valid and already authenticated. + DCHECK(secure_channel_); + DCHECK_EQ(secure_channel_->status(), + cryptauth::SecureChannel::Status::AUTHENTICATED); + + secure_channel_->AddObserver(this); +} + +AuthenticatedChannelImpl::~AuthenticatedChannelImpl() { + secure_channel_->RemoveObserver(this); +} + +void AuthenticatedChannelImpl::PerformSendMessage( + const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback) { + DCHECK_EQ(secure_channel_->status(), + cryptauth::SecureChannel::Status::AUTHENTICATED); + + int sequence_number = secure_channel_->SendMessage(feature, payload); + + if (base::ContainsKey(sequence_number_to_callback_map_, sequence_number)) { + PA_LOG(ERROR) << "AuthenticatedChannelImpl::SendMessage(): Started sending " + << "a message whose sequence number already exists in the " + << "map."; + NOTREACHED(); + } + + sequence_number_to_callback_map_[sequence_number] = + std::move(on_sent_callback); +} + +void AuthenticatedChannelImpl::OnSecureChannelStatusChanged( + cryptauth::SecureChannel* secure_channel, + const cryptauth::SecureChannel::Status& old_status, + const cryptauth::SecureChannel::Status& new_status) { + DCHECK_EQ(secure_channel_.get(), secure_channel); + + // The only expected status change is AUTHENTICATED => DISCONNECTED. + DCHECK_EQ(old_status, cryptauth::SecureChannel::Status::AUTHENTICATED); + DCHECK_EQ(new_status, cryptauth::SecureChannel::Status::DISCONNECTED); + + NotifyDisconnected(); +} + +void AuthenticatedChannelImpl::OnMessageReceived( + cryptauth::SecureChannel* secure_channel, + const std::string& feature, + const std::string& payload) { + DCHECK_EQ(secure_channel_.get(), secure_channel); + NotifyMessageReceived(feature, payload); +} + +void AuthenticatedChannelImpl::OnMessageSent( + cryptauth::SecureChannel* secure_channel, + int sequence_number) { + DCHECK_EQ(secure_channel_.get(), secure_channel); + + if (!base::ContainsKey(sequence_number_to_callback_map_, sequence_number)) { + PA_LOG(WARNING) << "AuthenticatedChannelImpl::OnMessageSent(): Sent a " + << "message whose sequence number did not exist in the " + << "map. Disregarding."; + // Note: No DCHECK() is performed here, since |secure_channel_| could have + // already been in the process of sending a message before the + // AuthenticatedChannelImpl object was created. + return; + } + + std::move(sequence_number_to_callback_map_[sequence_number]).Run(); + sequence_number_to_callback_map_.erase(sequence_number); +} + +} // namespace secure_channel + +} // namespace chromeos
diff --git a/chromeos/services/secure_channel/authenticated_channel_impl.h b/chromeos/services/secure_channel/authenticated_channel_impl.h new file mode 100644 index 0000000..5b94bfea --- /dev/null +++ b/chromeos/services/secure_channel/authenticated_channel_impl.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 CHROMEOS_SERVICES_SECURE_CHANNEL_AUTHENTICATED_CHANNEL_IMPL_H_ +#define CHROMEOS_SERVICES_SECURE_CHANNEL_AUTHENTICATED_CHANNEL_IMPL_H_ + +#include <string> + +#include "base/macros.h" +#include "chromeos/services/secure_channel/authenticated_channel.h" +#include "components/cryptauth/secure_channel.h" + +namespace cryptauth { +class SecureChannel; +} // namespace cryptauth + +namespace chromeos { + +namespace secure_channel { + +// Concrete AuthenticatedChannel implementation, whose send/receive mechanisms +// are implemented via SecureChannel. +class AuthenticatedChannelImpl : public AuthenticatedChannel, + public cryptauth::SecureChannel::Observer { + public: + class Factory { + public: + static Factory* Get(); + static void SetFactoryForTesting(Factory* test_factory); + virtual std::unique_ptr<AuthenticatedChannel> BuildInstance( + std::unique_ptr<cryptauth::SecureChannel> secure_channel); + + private: + static Factory* test_factory_; + }; + + ~AuthenticatedChannelImpl() override; + + // AuthenticatedChannel: + void PerformSendMessage(const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback) final; + + private: + AuthenticatedChannelImpl( + std::unique_ptr<cryptauth::SecureChannel> secure_channel); + + // cryptauth::SecureChannel::Observer: + void OnSecureChannelStatusChanged( + cryptauth::SecureChannel* secure_channel, + const cryptauth::SecureChannel::Status& old_status, + const cryptauth::SecureChannel::Status& new_status) override; + void OnMessageReceived(cryptauth::SecureChannel* secure_channel, + const std::string& feature, + const std::string& payload) override; + void OnMessageSent(cryptauth::SecureChannel* secure_channel, + int sequence_number) override; + + std::unique_ptr<cryptauth::SecureChannel> secure_channel_; + std::unordered_map<int, base::OnceClosure> sequence_number_to_callback_map_; + + DISALLOW_COPY_AND_ASSIGN(AuthenticatedChannelImpl); +}; + +} // namespace secure_channel + +} // namespace chromeos + +#endif // CHROMEOS_SERVICES_SECURE_CHANNEL_AUTHENTICATED_CHANNEL_IMPL_H_
diff --git a/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc b/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc new file mode 100644 index 0000000..cfec520 --- /dev/null +++ b/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc
@@ -0,0 +1,186 @@ +// 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/secure_channel/authenticated_channel_impl.h" + +#include <memory> +#include <unordered_map> +#include <unordered_set> +#include <utility> + +#include "base/bind.h" +#include "base/stl_util.h" +#include "base/test/scoped_task_environment.h" +#include "chromeos/services/secure_channel/fake_authenticated_channel.h" +#include "components/cryptauth/fake_connection.h" +#include "components/cryptauth/fake_secure_channel.h" +#include "components/cryptauth/remote_device_test_util.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace chromeos { + +namespace secure_channel { + +class SecureChannelAuthenticatedChannelImplTest : public testing::Test { + protected: + SecureChannelAuthenticatedChannelImplTest() + : test_device_(cryptauth::CreateRemoteDeviceForTest()) {} + + ~SecureChannelAuthenticatedChannelImplTest() override = default; + + void SetUp() override { + auto fake_secure_channel = std::make_unique<cryptauth::FakeSecureChannel>( + std::make_unique<cryptauth::FakeConnection>(test_device_), + nullptr /* cryptauth_service */); + fake_secure_channel->ChangeStatus( + cryptauth::SecureChannel::Status::AUTHENTICATED); + fake_secure_channel_ = fake_secure_channel.get(); + + channel_ = AuthenticatedChannelImpl::Factory::Get()->BuildInstance( + std::move(fake_secure_channel)); + + test_observer_ = std::make_unique<FakeAuthenticatedChannelObserver>( + channel_->channel_id()); + channel_->AddObserver(test_observer_.get()); + } + + void TearDown() override { channel_->RemoveObserver(test_observer_.get()); } + + // Returns the sequence number for this SendMessageAndVerifyResults() call. + // To determine if the message has finished being sent, use + // HasMessageBeenSent(). If |expected_to_succeed| is false, -1 is returned. + int SendMessageAndVerifyResults(const std::string& feature, + const std::string& payload, + bool expected_to_succeed = true) { + size_t num_sent_messages_before_call = + fake_secure_channel_->sent_messages().size(); + + // Note: This relies on an implicit assumption that FakeSecureChannel starts + // its counter at 0. If that ever changes, this test needs to be updated. + int sequence_number = num_times_send_message_called_++; + + bool success = channel_->SendMessage( + feature, payload, + base::BindOnce( + &SecureChannelAuthenticatedChannelImplTest::OnMessageSent, + base::Unretained(this), sequence_number)); + EXPECT_EQ(expected_to_succeed, success); + + if (!expected_to_succeed) + return -1; + + std::vector<cryptauth::FakeSecureChannel::SentMessage> sent_messages = + fake_secure_channel_->sent_messages(); + EXPECT_EQ(num_sent_messages_before_call + 1u, sent_messages.size()); + EXPECT_EQ(feature, sent_messages.back().feature); + EXPECT_EQ(payload, sent_messages.back().payload); + + return sequence_number; + } + + bool HasMessageBeenSent(int sequence_number) { + // -1 is returned by SendMessageAndVerifyResults() when + // |expected_to_succeed| is false. + EXPECT_NE(-1, sequence_number); + return base::ContainsKey(sent_sequence_numbers_, sequence_number); + } + + cryptauth::FakeSecureChannel* fake_secure_channel() { + return fake_secure_channel_; + } + + FakeAuthenticatedChannelObserver* test_observer() { + return test_observer_.get(); + } + + private: + void OnMessageSent(int sequence_number) { + sent_sequence_numbers_.insert(sequence_number); + } + + const base::test::ScopedTaskEnvironment scoped_task_environment_; + const cryptauth::RemoteDevice test_device_; + + int num_times_send_message_called_ = 0; + + std::unordered_set<int> sent_sequence_numbers_; + + cryptauth::FakeSecureChannel* fake_secure_channel_; + std::unique_ptr<FakeAuthenticatedChannelObserver> test_observer_; + + std::unique_ptr<AuthenticatedChannel> channel_; + + DISALLOW_COPY_AND_ASSIGN(SecureChannelAuthenticatedChannelImplTest); +}; + +TEST_F(SecureChannelAuthenticatedChannelImplTest, SendReceiveAndDisconnect) { + const auto& received_messages = test_observer()->received_messages(); + + int sequence_number_1 = SendMessageAndVerifyResults("feature1", "payload1"); + EXPECT_FALSE(HasMessageBeenSent(sequence_number_1)); + fake_secure_channel()->CompleteSendingMessage(sequence_number_1); + EXPECT_TRUE(HasMessageBeenSent(sequence_number_1)); + + fake_secure_channel()->ReceiveMessage("feature1", "payload2"); + EXPECT_EQ(1u, received_messages.size()); + EXPECT_EQ("feature1", received_messages[0].first); + EXPECT_EQ("payload2", received_messages[0].second); + + int sequence_number_2 = SendMessageAndVerifyResults("feature1", "payload3"); + EXPECT_FALSE(HasMessageBeenSent(sequence_number_2)); + fake_secure_channel()->CompleteSendingMessage(sequence_number_2); + EXPECT_TRUE(HasMessageBeenSent(sequence_number_2)); + + fake_secure_channel()->ReceiveMessage("feature1", "payload4"); + EXPECT_EQ(2u, received_messages.size()); + EXPECT_EQ("feature1", received_messages[1].first); + EXPECT_EQ("payload4", received_messages[1].second); + + EXPECT_FALSE(test_observer()->has_been_notified_of_disconnection()); + fake_secure_channel()->ChangeStatus( + cryptauth::SecureChannel::Status::DISCONNECTED); + EXPECT_TRUE(test_observer()->has_been_notified_of_disconnection()); + + SendMessageAndVerifyResults("feature1", "payload5", + false /* expected_to_succeed */); +} + +TEST_F(SecureChannelAuthenticatedChannelImplTest, SendReceive_Async) { + const auto& received_messages = test_observer()->received_messages(); + + // Start sending a message, but do not complete it. + int sequence_number_1 = SendMessageAndVerifyResults("feature1", "payload1"); + EXPECT_FALSE(HasMessageBeenSent(sequence_number_1)); + + // Receive a message for a different feature. + fake_secure_channel()->ReceiveMessage("feature2", "payload2"); + EXPECT_EQ(1u, received_messages.size()); + EXPECT_EQ("feature2", received_messages[0].first); + EXPECT_EQ("payload2", received_messages[0].second); + + // Finish sending the first message. + EXPECT_FALSE(HasMessageBeenSent(sequence_number_1)); + fake_secure_channel()->CompleteSendingMessage(sequence_number_1); + EXPECT_TRUE(HasMessageBeenSent(sequence_number_1)); + + // Start sending a second message for a different feature, but do not complete + // it. + int sequence_number_2 = SendMessageAndVerifyResults("feature3", "payload3"); + EXPECT_FALSE(HasMessageBeenSent(sequence_number_2)); + + // Receive a message for yet another feature. + fake_secure_channel()->ReceiveMessage("feature4", "payload4"); + EXPECT_EQ(2u, received_messages.size()); + EXPECT_EQ("feature4", received_messages[1].first); + EXPECT_EQ("payload4", received_messages[1].second); + + // Finish sending the second message. + EXPECT_FALSE(HasMessageBeenSent(sequence_number_2)); + fake_secure_channel()->CompleteSendingMessage(sequence_number_2); + EXPECT_TRUE(HasMessageBeenSent(sequence_number_2)); +} + +} // namespace secure_channel + +} // namespace chromeos
diff --git a/chromeos/services/secure_channel/connect_to_device_operation.h b/chromeos/services/secure_channel/connect_to_device_operation.h index 07661ee..d1041d8 100644 --- a/chromeos/services/secure_channel/connect_to_device_operation.h +++ b/chromeos/services/secure_channel/connect_to_device_operation.h
@@ -9,14 +9,12 @@ #include "base/macros.h" #include "chromeos/components/proximity_auth/logging/logging.h" -namespace cryptauth { -class SecureChannel; -} // namespace cryptauth - namespace chromeos { namespace secure_channel { +class AuthenticatedChannel; + // Performs an operation which creates a connection to a remote device. A // ConnectToDeviceOperation can only be used for a single connection attempt; if // clients wish to retry a failed connection attempt, a new @@ -25,7 +23,7 @@ class ConnectToDeviceOperation { public: using ConnectionSuccessCallback = - base::OnceCallback<void(std::unique_ptr<cryptauth::SecureChannel>)>; + base::OnceCallback<void(std::unique_ptr<AuthenticatedChannel>)>; using ConnectionFailedCallback = base::OnceCallback<void(FailureDetailType)>; virtual ~ConnectToDeviceOperation() { @@ -60,7 +58,7 @@ virtual void PerformCancellation() = 0; void OnSuccessfulConnectionAttempt( - std::unique_ptr<cryptauth::SecureChannel> authenticated_channel) { + std::unique_ptr<AuthenticatedChannel> authenticated_channel) { if (!is_active_) { PA_LOG(ERROR) << "ConnectToDeviceOperation::" << "OnSuccessfulConnectionAttempt(): Tried to "
diff --git a/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc b/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc index 639c5c1..d6ebde1 100644 --- a/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc +++ b/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc
@@ -10,8 +10,7 @@ #include "base/memory/ref_counted.h" #include "base/test/scoped_task_environment.h" #include "base/test/test_simple_task_runner.h" -#include "components/cryptauth/fake_connection.h" -#include "components/cryptauth/fake_secure_channel.h" +#include "chromeos/services/secure_channel/fake_authenticated_channel.h" #include "components/cryptauth/remote_device_test_util.h" #include "testing/gtest/include/gtest/gtest.h" @@ -122,8 +121,8 @@ return test_operation_.get(); } - const cryptauth::SecureChannel* last_secure_channel() const { - return last_secure_channel_.get(); + const AuthenticatedChannel* last_authenticated_channel() const { + return last_authenticated_channel_.get(); } const std::string& last_failure_detail() const { @@ -134,8 +133,8 @@ private: void OnSuccessfulConnectionAttempt( - std::unique_ptr<cryptauth::SecureChannel> secure_channel) { - last_secure_channel_ = std::move(secure_channel); + std::unique_ptr<AuthenticatedChannel> authenticated_channel) { + last_authenticated_channel_ = std::move(authenticated_channel); } void OnFailedConnectionAttempt(std::string failure_detail) { @@ -147,7 +146,7 @@ const base::test::ScopedTaskEnvironment scoped_task_environment_; const cryptauth::RemoteDevice test_device_; - std::unique_ptr<cryptauth::SecureChannel> last_secure_channel_; + std::unique_ptr<AuthenticatedChannel> last_authenticated_channel_; std::string last_failure_detail_; bool destructor_callback_called_ = false; @@ -157,13 +156,12 @@ }; TEST_F(SecureChannelConnectToDeviceOperationBaseTest, Success) { - auto fake_secure_channel = std::make_unique<cryptauth::FakeSecureChannel>( - std::make_unique<cryptauth::FakeConnection>(test_device()), - nullptr /* cryptauth_service */); - auto* fake_secure_channel_raw = fake_secure_channel.get(); + auto fake_authenticated_channel = + std::make_unique<FakeAuthenticatedChannel>(); + auto* fake_authenticated_channel_raw = fake_authenticated_channel.get(); test_operation()->OnSuccessfulConnectionAttempt( - std::move(fake_secure_channel)); - EXPECT_EQ(fake_secure_channel_raw, last_secure_channel()); + std::move(fake_authenticated_channel)); + EXPECT_EQ(fake_authenticated_channel_raw, last_authenticated_channel()); } TEST_F(SecureChannelConnectToDeviceOperationBaseTest, Failure) {
diff --git a/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc b/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc index dcdab53..777d516a4 100644 --- a/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc +++ b/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc
@@ -8,6 +8,7 @@ #include "base/bind_helpers.h" #include "base/test/gtest_util.h" +#include "chromeos/services/secure_channel/authenticated_channel.h" #include "chromeos/services/secure_channel/fake_connect_to_device_operation.h" #include "components/cryptauth/remote_device_test_util.h" #include "components/cryptauth/secure_channel.h"
diff --git a/chromeos/services/secure_channel/connection_attempt.h b/chromeos/services/secure_channel/connection_attempt.h index c39b90f..7b5cb69 100644 --- a/chromeos/services/secure_channel/connection_attempt.h +++ b/chromeos/services/secure_channel/connection_attempt.h
@@ -10,14 +10,12 @@ #include "chromeos/services/secure_channel/connection_attempt_delegate.h" #include "chromeos/services/secure_channel/pending_connection_request.h" -namespace cryptauth { -class SecureChannel; -} // namespace cryptauth - namespace chromeos { namespace secure_channel { +class AuthenticatedChannel; + // ConnectionAttempt represents an ongoing attempt to connect to a given device // over a given medium. Each ConnectionAttempt is comprised of one or // more PendingConnectionRequests and notifies its delegate when the attempt has @@ -64,7 +62,7 @@ std::unique_ptr<PendingConnectionRequest<FailureDetailType>> request) = 0; void OnConnectionAttemptSucceeded( - std::unique_ptr<cryptauth::SecureChannel> secure_channel) { + std::unique_ptr<AuthenticatedChannel> authenticated_channel) { if (has_notified_delegate_) { PA_LOG(ERROR) << "ConnectionAttempt::OnConnectionAttemptSucceeded(): " << "Tried to alert delegate of a successful connection, " @@ -74,7 +72,7 @@ has_notified_delegate_ = true; delegate_->OnConnectionAttemptSucceeded(attempt_id_, - std::move(secure_channel)); + std::move(authenticated_channel)); } void OnConnectionAttemptFinishedWithoutConnection() {
diff --git a/chromeos/services/secure_channel/connection_attempt_base.h b/chromeos/services/secure_channel/connection_attempt_base.h index 5134fba2..9de2da48 100644 --- a/chromeos/services/secure_channel/connection_attempt_base.h +++ b/chromeos/services/secure_channel/connection_attempt_base.h
@@ -24,6 +24,8 @@ namespace secure_channel { +class AuthenticatedChannel; + // ConnectionAttempt implementation which stays active for as long as at least // one of its requests has not yet completed. While a ConnectionAttemptBase is // active, it starts one or more operations to connect to the device. If an @@ -114,10 +116,10 @@ } void OnConnectToDeviceOperationSuccess( - std::unique_ptr<cryptauth::SecureChannel> secure_channel) { + std::unique_ptr<AuthenticatedChannel> authenticated_channel) { DCHECK(current_operation_); current_operation_.reset(); - this->OnConnectionAttemptSucceeded(std::move(secure_channel)); + this->OnConnectionAttemptSucceeded(std::move(authenticated_channel)); } void OnConnectToDeviceOperationFailure(FailureDetailType failure_detail) {
diff --git a/chromeos/services/secure_channel/connection_attempt_base_unittest.cc b/chromeos/services/secure_channel/connection_attempt_base_unittest.cc index 47e4c03d..3bf5e3b 100644 --- a/chromeos/services/secure_channel/connection_attempt_base_unittest.cc +++ b/chromeos/services/secure_channel/connection_attempt_base_unittest.cc
@@ -9,14 +9,12 @@ #include "base/bind.h" #include "base/test/scoped_task_environment.h" #include "base/test/test_simple_task_runner.h" +#include "chromeos/services/secure_channel/fake_authenticated_channel.h" #include "chromeos/services/secure_channel/fake_connect_to_device_operation.h" #include "chromeos/services/secure_channel/fake_connect_to_device_operation_factory.h" #include "chromeos/services/secure_channel/fake_connection_attempt_delegate.h" #include "chromeos/services/secure_channel/fake_pending_connection_request.h" #include "chromeos/services/secure_channel/pending_connection_request_delegate.h" -#include "components/cryptauth/fake_connection.h" -#include "components/cryptauth/fake_secure_channel.h" -#include "components/cryptauth/remote_device_test_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos { @@ -50,10 +48,7 @@ ~SecureChannelConnectionAttemptBaseTest() override = default; void SetUp() override { - fake_secure_channel_ = std::make_unique<cryptauth::FakeSecureChannel>( - std::make_unique<cryptauth::FakeConnection>( - cryptauth::CreateRemoteDeviceForTest()), - nullptr /* cryptauth_service */); + fake_authenticated_channel_ = std::make_unique<FakeAuthenticatedChannel>(); auto factory = std::make_unique<FakeConnectToDeviceOperationFactory>(); fake_operation_factory_ = factory.get(); @@ -150,16 +145,19 @@ } void FinishOperationSuccessfully(FakeConnectToDeviceOperation* operation) { - EXPECT_TRUE(fake_secure_channel_); - auto* fake_secure_channel_raw = fake_secure_channel_.get(); + EXPECT_TRUE(fake_authenticated_channel_); + auto* fake_authenticated_channel_raw = fake_authenticated_channel_.get(); EXPECT_EQ(active_operation_, operation); - operation->OnSuccessfulConnectionAttempt(std::move(fake_secure_channel_)); + operation->OnSuccessfulConnectionAttempt( + std::move(fake_authenticated_channel_)); active_operation_ = nullptr; - // |fake_delegate_|'s delegate should have received the SecureChannel. + // |fake_delegate_|'s delegate should have received the + // AuthenticatedChannel. EXPECT_EQ(connection_attempt_->attempt_id(), fake_delegate_->attempt_id()); - EXPECT_EQ(fake_secure_channel_raw, fake_delegate_->secure_channel()); + EXPECT_EQ(fake_authenticated_channel_raw, + fake_delegate_->authenticated_channel()); } void RunNextOperationTask() { @@ -174,9 +172,9 @@ void VerifyDelegateNotifiedOfFailure() { // |fake_delegate_| should have received the failing attempt's ID but no - // SecureChannel. + // AuthenticatedChannel. EXPECT_EQ(connection_attempt_->attempt_id(), fake_delegate_->attempt_id()); - EXPECT_FALSE(fake_delegate_->secure_channel()); + EXPECT_FALSE(fake_delegate_->authenticated_channel()); } private: @@ -190,7 +188,7 @@ std::unique_ptr<FakeConnectionAttemptDelegate> fake_delegate_; scoped_refptr<base::TestSimpleTaskRunner> test_task_runner_; - std::unique_ptr<cryptauth::FakeSecureChannel> fake_secure_channel_; + std::unique_ptr<FakeAuthenticatedChannel> fake_authenticated_channel_; std::set<FakePendingConnectionRequest*> active_requests_; FakeConnectToDeviceOperation* active_operation_ = nullptr; bool was_active_operation_canceled_in_teardown_ = false;
diff --git a/chromeos/services/secure_channel/connection_attempt_delegate.h b/chromeos/services/secure_channel/connection_attempt_delegate.h index fb26d35..e4ee4676 100644 --- a/chromeos/services/secure_channel/connection_attempt_delegate.h +++ b/chromeos/services/secure_channel/connection_attempt_delegate.h
@@ -10,14 +10,12 @@ #include "base/macros.h" -namespace cryptauth { -class SecureChannel; -} // namespace cryptauth - namespace chromeos { namespace secure_channel { +class AuthenticatedChannel; + class ConnectionAttemptDelegate { public: ConnectionAttemptDelegate() = default; @@ -28,7 +26,7 @@ // ConnectionAttempt::attempt_id(). virtual void OnConnectionAttemptSucceeded( const std::string& attempt_id, - std::unique_ptr<cryptauth::SecureChannel> secure_channel) = 0; + std::unique_ptr<AuthenticatedChannel> authenticated_channel) = 0; // Invoked when a ConnectionAttempt has finished without achieving a // connection to the remote device (due to cancellation by the client or
diff --git a/chromeos/services/secure_channel/fake_authenticated_channel.cc b/chromeos/services/secure_channel/fake_authenticated_channel.cc new file mode 100644 index 0000000..0191dfc1 --- /dev/null +++ b/chromeos/services/secure_channel/fake_authenticated_channel.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 "chromeos/services/secure_channel/fake_authenticated_channel.h" + +namespace chromeos { + +namespace secure_channel { + +FakeAuthenticatedChannel::FakeAuthenticatedChannel() : AuthenticatedChannel() {} + +FakeAuthenticatedChannel::~FakeAuthenticatedChannel() = default; + +void FakeAuthenticatedChannel::PerformSendMessage( + const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback) { + sent_messages_.push_back( + std::make_tuple(feature, payload, std::move(on_sent_callback))); +} + +FakeAuthenticatedChannelObserver::FakeAuthenticatedChannelObserver( + const std::string& expected_channel_id) + : expected_channel_id_(expected_channel_id) {} + +FakeAuthenticatedChannelObserver::~FakeAuthenticatedChannelObserver() = default; + +void FakeAuthenticatedChannelObserver::OnDisconnected( + const std::string& channel_id) { + DCHECK_EQ(expected_channel_id_, channel_id); + has_been_notified_of_disconnection_ = true; +} + +void FakeAuthenticatedChannelObserver::OnMessageReceived( + const std::string& channel_id, + const std::string& feature, + const std::string& payload) { + DCHECK_EQ(expected_channel_id_, channel_id); + received_messages_.push_back(std::make_pair(feature, payload)); +} + +} // namespace secure_channel + +} // namespace chromeos
diff --git a/chromeos/services/secure_channel/fake_authenticated_channel.h b/chromeos/services/secure_channel/fake_authenticated_channel.h new file mode 100644 index 0000000..6eb3f75 --- /dev/null +++ b/chromeos/services/secure_channel/fake_authenticated_channel.h
@@ -0,0 +1,78 @@ +// 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_SECURE_CHANNEL_FAKE_AUTHENTICATED_CHANNEL_H_ +#define CHROMEOS_SERVICES_SECURE_CHANNEL_FAKE_AUTHENTICATED_CHANNEL_H_ + +#include <string> +#include <tuple> +#include <vector> + +#include "base/callback.h" +#include "base/logging.h" +#include "base/macros.h" +#include "chromeos/services/secure_channel/authenticated_channel.h" + +namespace chromeos { + +namespace secure_channel { + +// Test AuthenticatedChannel implementation. +class FakeAuthenticatedChannel : public AuthenticatedChannel { + public: + FakeAuthenticatedChannel(); + ~FakeAuthenticatedChannel() override; + + const std::vector<std::tuple<std::string, std::string, base::OnceClosure>>& + sent_messages() { + return sent_messages_; + } + + // AuthenticatedChannel: + void PerformSendMessage(const std::string& feature, + const std::string& payload, + base::OnceClosure on_sent_callback) override; + + // Make Notify{Disconnected|MessageReceived}() public for testing. + using AuthenticatedChannel::NotifyDisconnected; + using AuthenticatedChannel::NotifyMessageReceived; + + private: + std::vector<std::tuple<std::string, std::string, base::OnceClosure>> + sent_messages_; + + DISALLOW_COPY_AND_ASSIGN(FakeAuthenticatedChannel); +}; + +// Test AuthenticatedChannel::Observer implementation. +class FakeAuthenticatedChannelObserver : public AuthenticatedChannel::Observer { + public: + FakeAuthenticatedChannelObserver(const std::string& expected_channel_id); + ~FakeAuthenticatedChannelObserver() override; + + bool has_been_notified_of_disconnection() { + return has_been_notified_of_disconnection_; + } + + const std::vector<std::pair<std::string, std::string>>& received_messages() { + return received_messages_; + } + + // AuthenticatedChannel::Observer: + void OnDisconnected(const std::string& channel_id) override; + void OnMessageReceived(const std::string& channel_id, + const std::string& feature, + const std::string& payload) override; + + private: + const std::string expected_channel_id_; + bool has_been_notified_of_disconnection_ = false; + std::vector<std::pair<std::string, std::string>> received_messages_; +}; + +} // namespace secure_channel + +} // namespace chromeos + +#endif // CHROMEOS_SERVICES_SECURE_CHANNEL_FAKE_AUTHENTICATED_CHANNEL_H_
diff --git a/chromeos/services/secure_channel/fake_connection_attempt_delegate.cc b/chromeos/services/secure_channel/fake_connection_attempt_delegate.cc index aa1f64cd..8e753068 100644 --- a/chromeos/services/secure_channel/fake_connection_attempt_delegate.cc +++ b/chromeos/services/secure_channel/fake_connection_attempt_delegate.cc
@@ -5,7 +5,7 @@ #include "chromeos/services/secure_channel/fake_connection_attempt_delegate.h" #include "base/logging.h" -#include "components/cryptauth/secure_channel.h" +#include "chromeos/services/secure_channel/authenticated_channel.h" namespace chromeos { @@ -17,12 +17,12 @@ void FakeConnectionAttemptDelegate::OnConnectionAttemptSucceeded( const std::string& attempt_id, - std::unique_ptr<cryptauth::SecureChannel> secure_channel) { + std::unique_ptr<AuthenticatedChannel> authenticated_channel) { DCHECK(attempt_id_.empty()); DCHECK(!attempt_id.empty()); attempt_id_ = attempt_id; - secure_channel_ = std::move(secure_channel); + authenticated_channel_ = std::move(authenticated_channel); } void FakeConnectionAttemptDelegate::
diff --git a/chromeos/services/secure_channel/fake_connection_attempt_delegate.h b/chromeos/services/secure_channel/fake_connection_attempt_delegate.h index 1b70c0d..1d0ef9a 100644 --- a/chromeos/services/secure_channel/fake_connection_attempt_delegate.h +++ b/chromeos/services/secure_channel/fake_connection_attempt_delegate.h
@@ -10,21 +10,19 @@ #include "base/macros.h" #include "chromeos/services/secure_channel/connection_attempt_delegate.h" -namespace cryptauth { -class SecureChannel; -} // namespace cryptauth - namespace chromeos { namespace secure_channel { +class AuthenticatedChannel; + class FakeConnectionAttemptDelegate : public ConnectionAttemptDelegate { public: FakeConnectionAttemptDelegate(); ~FakeConnectionAttemptDelegate() override; - const cryptauth::SecureChannel* secure_channel() const { - return secure_channel_.get(); + const AuthenticatedChannel* authenticated_channel() const { + return authenticated_channel_.get(); } const std::string& attempt_id() const { return attempt_id_; } @@ -33,12 +31,12 @@ // ConnectionAttemptDelegate: void OnConnectionAttemptSucceeded( const std::string& attempt_id, - std::unique_ptr<cryptauth::SecureChannel> secure_channel) override; + std::unique_ptr<AuthenticatedChannel> authenticated_channel) override; void OnConnectionAttemptFinishedWithoutConnection( const std::string& attempt_id) override; std::string attempt_id_; - std::unique_ptr<cryptauth::SecureChannel> secure_channel_; + std::unique_ptr<AuthenticatedChannel> authenticated_channel_; DISALLOW_COPY_AND_ASSIGN(FakeConnectionAttemptDelegate); };
diff --git a/components/arc/common/bluetooth.mojom b/components/arc/common/bluetooth.mojom index 22b709e..548f35b2 100644 --- a/components/arc/common/bluetooth.mojom +++ b/components/arc/common/bluetooth.mojom
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Next MinVersion: 10 +// Next MinVersion: 11 module arc.mojom; @@ -405,7 +405,7 @@ => (BluetoothGattStatus status); }; -// Next Method ID: 19 +// Next Method ID: 20 interface BluetoothInstance { // DEPRECATED: Please use Init@18 instead. InitDeprecated@0(BluetoothHost host_ptr); @@ -465,10 +465,11 @@ array<uint8> value, [MinVersion=9] BluetoothGattDBAttributeType attribute_type) => (BluetoothGattStatus status); + [MinVersion=10] OnMTUReceived@19(BluetoothAddress remote_addr, uint16 mtu); // Bluetooth SDP function [MinVersion=5] OnGetSdpRecords@17(BluetoothStatus status, - BluetoothAddress remove_addr, + BluetoothAddress remote_addr, BluetoothUUID target_uuid, array<BluetoothSdpRecord> records); };
diff --git a/components/arc/test/fake_bluetooth_instance.cc b/components/arc/test/fake_bluetooth_instance.cc index f4c06d32..58c86b9 100644 --- a/components/arc/test/fake_bluetooth_instance.cc +++ b/components/arc/test/fake_bluetooth_instance.cc
@@ -126,8 +126,12 @@ void FakeBluetoothInstance::OnGetSdpRecords( mojom::BluetoothStatus status, - mojom::BluetoothAddressPtr remove_addr, + mojom::BluetoothAddressPtr remote_addr, const device::BluetoothUUID& target_uuid, std::vector<mojom::BluetoothSdpRecordPtr> records) {} +void FakeBluetoothInstance::OnMTUReceived( + mojom::BluetoothAddressPtr remote_addr, + uint16_t mtu) {} + } // namespace arc
diff --git a/components/arc/test/fake_bluetooth_instance.h b/components/arc/test/fake_bluetooth_instance.h index 41d85e3d..230d1ae 100644 --- a/components/arc/test/fake_bluetooth_instance.h +++ b/components/arc/test/fake_bluetooth_instance.h
@@ -128,10 +128,13 @@ void OnGetSdpRecords( mojom::BluetoothStatus status, - mojom::BluetoothAddressPtr remove_addr, + mojom::BluetoothAddressPtr remote_addr, const device::BluetoothUUID& target_uuid, std::vector<mojom::BluetoothSdpRecordPtr> records) override; + void OnMTUReceived(mojom::BluetoothAddressPtr remote_addr, + uint16_t mtu) override; + const std::vector<std::vector<mojom::BluetoothPropertyPtr>>& device_found_data() const { return device_found_data_;
diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc index ef5b819..10784fd 100644 --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc
@@ -124,10 +124,10 @@ GetAutofillAgent()->AcceptDataListSuggestion(value); } -void ContentAutofillDriver::RendererShouldClearFilledForm() { +void ContentAutofillDriver::RendererShouldClearFilledSection() { if (!RendererIsAvailable()) return; - GetAutofillAgent()->ClearForm(); + GetAutofillAgent()->ClearSection(); } void ContentAutofillDriver::RendererShouldClearPreviewedForm() {
diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h index 9296121..96d93f94 100644 --- a/components/autofill/content/browser/content_autofill_driver.h +++ b/components/autofill/content/browser/content_autofill_driver.h
@@ -61,7 +61,7 @@ const std::vector<FormStructure*>& forms) override; void RendererShouldAcceptDataListSuggestion( const base::string16& value) override; - void RendererShouldClearFilledForm() override; + void RendererShouldClearFilledSection() override; void RendererShouldClearPreviewedForm() override; void RendererShouldFillFieldWithValue(const base::string16& value) override; void RendererShouldPreviewFieldWithValue(
diff --git a/components/autofill/content/browser/content_autofill_driver_unittest.cc b/components/autofill/content/browser/content_autofill_driver_unittest.cc index 8888df1..bb19918 100644 --- a/components/autofill/content/browser/content_autofill_driver_unittest.cc +++ b/components/autofill/content/browser/content_autofill_driver_unittest.cc
@@ -47,7 +47,7 @@ FakeAutofillAgent() : fill_form_id_(-1), preview_form_id_(-1), - called_clear_form_(false), + called_clear_section_(false), called_clear_previewed_form_(false) {} ~FakeAutofillAgent() override {} @@ -101,7 +101,7 @@ // Returns whether mojo interface method mojom::AutofillAgent::ClearForm() got // called. - bool GetCalledClearForm() { return called_clear_form_; } + bool GetCalledClearSection() { return called_clear_section_; } // Returns whether mojo interface method // mojom::AutofillAgent::ClearPreviewedForm() got called. @@ -167,8 +167,8 @@ CallDone(); } - void ClearForm() override { - called_clear_form_ = true; + void ClearSection() override { + called_clear_section_ = true; CallDone(); } @@ -222,8 +222,8 @@ base::Optional<FormData> preview_form_form_; // Records data received from FieldTypePredictionsAvailable() call. base::Optional<std::vector<FormDataPredictions>> predictions_; - // Records whether ClearForm() got called. - bool called_clear_form_; + // Records whether ClearSection() got called. + bool called_clear_section_; // Records whether ClearPreviewedForm() got called. bool called_clear_previewed_form_; // Records string received from FillFieldWithValue() call. @@ -410,13 +410,13 @@ EXPECT_EQ(input_value, output_value); } -TEST_F(ContentAutofillDriverTest, ClearFilledFormSentToRenderer) { +TEST_F(ContentAutofillDriverTest, ClearFilledSectionSentToRenderer) { base::RunLoop run_loop; fake_agent_.SetQuitLoopClosure(run_loop.QuitClosure()); - driver_->RendererShouldClearFilledForm(); + driver_->RendererShouldClearFilledSection(); run_loop.RunUntilIdle(); - EXPECT_TRUE(fake_agent_.GetCalledClearForm()); + EXPECT_TRUE(fake_agent_.GetCalledClearSection()); } TEST_F(ContentAutofillDriverTest, ClearPreviewedFormSentToRenderer) {
diff --git a/components/autofill/content/common/autofill_agent.mojom b/components/autofill/content/common/autofill_agent.mojom index bec0acd..66a2f59 100644 --- a/components/autofill/content/common/autofill_agent.mojom +++ b/components/autofill/content/common/autofill_agent.mojom
@@ -21,8 +21,10 @@ // Sends the heuristic and server field type predictions to the renderer. FieldTypePredictionsAvailable(array<FormDataPredictions> forms); - // Clears the currently displayed Autofill results. - ClearForm(); + // Clears the currently displayed Autofill results of the current section. + // The current section is the section to which the element corresponding to + // the last request belongs. + ClearSection(); // Tells the renderer that the Autofill previewed form should be cleared. ClearPreviewedForm();
diff --git a/components/autofill/content/common/autofill_types.mojom b/components/autofill/content/common/autofill_types.mojom index eb40ea5..8d64f71 100644 --- a/components/autofill/content/common/autofill_types.mojom +++ b/components/autofill/content/common/autofill_types.mojom
@@ -115,6 +115,7 @@ uint64 max_length; bool is_autofilled; + string section; CheckStatus check_status; bool is_focusable; bool should_autocomplete;
diff --git a/components/autofill/content/common/autofill_types_struct_traits.cc b/components/autofill/content/common/autofill_types_struct_traits.cc index ef347e1..e3ba6c97 100644 --- a/components/autofill/content/common/autofill_types_struct_traits.cc +++ b/components/autofill/content/common/autofill_types_struct_traits.cc
@@ -570,6 +570,9 @@ if (!data.ReadCssClasses(&out->css_classes)) return false; + if (!data.ReadSection(&out->section)) + return false; + out->properties_mask = data.properties_mask(); out->max_length = data.max_length();
diff --git a/components/autofill/content/common/autofill_types_struct_traits.h b/components/autofill/content/common/autofill_types_struct_traits.h index 3441237..9e5feb0 100644 --- a/components/autofill/content/common/autofill_types_struct_traits.h +++ b/components/autofill/content/common/autofill_types_struct_traits.h
@@ -167,6 +167,10 @@ return r.is_autofilled; } + static const std::string& section(const autofill::FormFieldData& r) { + return r.section; + } + static autofill::FormFieldData::CheckStatus check_status( const autofill::FormFieldData& r) { return r.check_status;
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc index a2f372b..1791a02 100644 --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -468,11 +468,11 @@ } } -void AutofillAgent::ClearForm() { +void AutofillAgent::ClearSection() { if (element_.IsNull()) return; - form_cache_.ClearFormWithElement(element_); + form_cache_.ClearSectionWithElement(element_); } void AutofillAgent::ClearPreviewedForm() {
diff --git a/components/autofill/content/renderer/autofill_agent.h b/components/autofill/content/renderer/autofill_agent.h index b9c7ffb2..36bf731 100644 --- a/components/autofill/content/renderer/autofill_agent.h +++ b/components/autofill/content/renderer/autofill_agent.h
@@ -71,7 +71,7 @@ void PreviewForm(int32_t id, const FormData& form) override; void FieldTypePredictionsAvailable( const std::vector<FormDataPredictions>& forms) override; - void ClearForm() override; + void ClearSection() override; void ClearPreviewedForm() override; void FillFieldWithValue(const base::string16& value) override; void PreviewFieldWithValue(const base::string16& value) override;
diff --git a/components/autofill/content/renderer/form_autofill_util.cc b/components/autofill/content/renderer/form_autofill_util.cc index b5cab99..65355883 100644 --- a/components/autofill/content/renderer/form_autofill_util.cc +++ b/components/autofill/content/renderer/form_autofill_util.cc
@@ -910,8 +910,9 @@ filters, force_override, callback); } -// Sets the |field|'s value to the value in |data|. -// Also sets the "autofilled" attribute, causing the background to be yellow. +// Sets the |field|'s value to the value in |data|, and specifies the section +// for filled fields. Also sets the "autofilled" attribute, +// causing the background to be yellow. void FillFormField(const FormFieldData& data, bool is_initiating_node, blink::WebFormControlElement* field) { @@ -940,6 +941,7 @@ return; field->SetAutofilled(true); + field->SetAutofillSection(WebString::FromUTF8(data.section)); if (is_initiating_node && ((IsTextInput(input_element) || IsMonthInput(input_element)) ||
diff --git a/components/autofill/content/renderer/form_cache.cc b/components/autofill/content/renderer/form_cache.cc index 56e905e..9603bdb 100644 --- a/components/autofill/content/renderer/form_cache.cc +++ b/components/autofill/content/renderer/form_cache.cc
@@ -265,7 +265,7 @@ initial_checked_state_.clear(); } -bool FormCache::ClearFormWithElement(const WebFormControlElement& element) { +bool FormCache::ClearSectionWithElement(const WebFormControlElement& element) { WebFormElement form_element = element.Form(); std::vector<WebFormControlElement> control_elements; if (form_element.IsNull()) { @@ -285,6 +285,9 @@ if (!control_element.IsAutofilled()) continue; + if (control_element.AutofillSection() != element.AutofillSection()) + continue; + control_element.SetAutofilled(false); WebInputElement* input_element = ToWebInputElement(&control_element);
diff --git a/components/autofill/content/renderer/form_cache.h b/components/autofill/content/renderer/form_cache.h index c4f66297..7dff3ca2 100644 --- a/components/autofill/content/renderer/form_cache.h +++ b/components/autofill/content/renderer/form_cache.h
@@ -39,9 +39,9 @@ // Resets the forms. void Reset(); - // Clears the values of all input elements in the form that contains - // |element|. Returns false if the form is not found. - bool ClearFormWithElement(const blink::WebFormControlElement& element); + // Clears the values of all input elements in the section of the form that + // contains |element|. Returns false if the form is not found. + bool ClearSectionWithElement(const blink::WebFormControlElement& element); // For each field in the |form|, if |attach_predictions_to_dom| is true, sets // the title to include the field's heuristic type, server type, and
diff --git a/components/autofill/core/browser/autofill_driver.h b/components/autofill/core/browser/autofill_driver.h index 5422060f..2ed290d 100644 --- a/components/autofill/core/browser/autofill_driver.h +++ b/components/autofill/core/browser/autofill_driver.h
@@ -68,8 +68,8 @@ virtual void RendererShouldAcceptDataListSuggestion( const base::string16& value) = 0; - // Tells the renderer to clear the currently filled Autofill results. - virtual void RendererShouldClearFilledForm() = 0; + // Tells the renderer to clear the current section of the autofilled values. + virtual void RendererShouldClearFilledSection() = 0; // Tells the renderer to clear the currently previewed Autofill results. virtual void RendererShouldClearPreviewedForm() = 0;
diff --git a/components/autofill/core/browser/autofill_external_delegate.cc b/components/autofill/core/browser/autofill_external_delegate.cc index a07bed2..ae6fcfc 100644 --- a/components/autofill/core/browser/autofill_external_delegate.cc +++ b/components/autofill/core/browser/autofill_external_delegate.cc
@@ -212,7 +212,7 @@ manager_->ShowAutofillSettings(); } else if (identifier == POPUP_ITEM_ID_CLEAR_FORM) { // User selected 'Clear form'. - driver_->RendererShouldClearFilledForm(); + driver_->RendererShouldClearFilledSection(); } else if (identifier == POPUP_ITEM_ID_PASSWORD_ENTRY || identifier == POPUP_ITEM_ID_USERNAME_ENTRY) { NOTREACHED(); // Should be handled elsewhere.
diff --git a/components/autofill/core/browser/autofill_external_delegate_unittest.cc b/components/autofill/core/browser/autofill_external_delegate_unittest.cc index 1307873..7f02b139 100644 --- a/components/autofill/core/browser/autofill_external_delegate_unittest.cc +++ b/components/autofill/core/browser/autofill_external_delegate_unittest.cc
@@ -51,7 +51,7 @@ // Mock methods to enable testability. MOCK_METHOD1(RendererShouldAcceptDataListSuggestion, void(const base::string16&)); - MOCK_METHOD0(RendererShouldClearFilledForm, void()); + MOCK_METHOD0(RendererShouldClearFilledSection, void()); MOCK_METHOD0(RendererShouldClearPreviewedForm, void()); MOCK_METHOD1(RendererShouldFillFieldWithValue, void(const base::string16&)); MOCK_METHOD1(RendererShouldPreviewFieldWithValue, @@ -584,7 +584,7 @@ // the user accepted the suggestion to clear the form. TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateClearForm) { EXPECT_CALL(autofill_client_, HideAutofillPopup()); - EXPECT_CALL(*autofill_driver_, RendererShouldClearFilledForm()); + EXPECT_CALL(*autofill_driver_, RendererShouldClearFilledSection()); external_delegate_->DidAcceptSuggestion(base::string16(), POPUP_ITEM_ID_CLEAR_FORM,
diff --git a/components/autofill/core/browser/autofill_field.h b/components/autofill/core/browser/autofill_field.h index 996efc9e..34aedb7 100644 --- a/components/autofill/core/browser/autofill_field.h +++ b/components/autofill/core/browser/autofill_field.h
@@ -33,7 +33,6 @@ const base::string16& unique_name() const { return unique_name_; } - const std::string& section() const { return section_; } ServerFieldType heuristic_type() const { return heuristic_type_; } ServerFieldType server_type() const { return server_type_; } const std::vector<AutofillQueryResponseContents::Field::FieldPrediction>& @@ -48,8 +47,7 @@ const base::string16& parseable_name() const { return parseable_name_; } bool only_fill_when_focused() const { return only_fill_when_focused_; } - // Setters for the detected type and section for this field. - void set_section(const std::string& section) { section_ = section; } + // Setters for the detected types. void set_heuristic_type(ServerFieldType type); void set_server_type(ServerFieldType type); void set_server_predictions( @@ -157,10 +155,6 @@ // The unique name of this field, generated by Autofill. base::string16 unique_name_; - // The unique identifier for the section (e.g. billing vs. shipping address) - // that this field belongs to. - std::string section_; - // The type of the field, as determined by the Autofill server. ServerFieldType server_type_;
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc index dd86d00..eeff15e 100644 --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc
@@ -108,7 +108,7 @@ const std::string& section) { DCHECK_EQ(form_structure.field_count(), form.fields.size()); for (size_t i = 0; i < form_structure.field_count(); ++i) { - if (form_structure.field(i)->section() == section && + if (form_structure.field(i)->section == section && form.fields[i].is_autofilled) { return true; } @@ -601,7 +601,7 @@ suggestions.assign(1, warning_suggestion); } else { bool section_has_autofilled_field = SectionHasAutofilledField( - *form_structure, form, autofill_field->section()); + *form_structure, form, autofill_field->section); if (section_has_autofilled_field) { // If the relevant section has auto-filled fields and the renderer is // querying for suggestions, then for some fields, the user is editing @@ -672,7 +672,7 @@ DCHECK_EQ(form_structure->field_count(), form.fields.size()); for (size_t i = 0; i < form_structure->field_count(); ++i) { - if (form_structure->field(i)->section() == autofill_field->section() && + if (form_structure->field(i)->section == autofill_field->section && form_structure->field(i)->Type().GetStorableType() == CREDIT_CARD_NUMBER && form.fields[i].value.empty() && !form.fields[i].is_autofilled) { @@ -1323,7 +1323,7 @@ FormData result = form; if (base::FeatureList::IsEnabled(kAutofillRationalizeFieldTypePredictions)) { - form_structure->RationalizePhoneNumbersInSection(autofill_field->section()); + form_structure->RationalizePhoneNumbersInSection(autofill_field->section); } DCHECK_EQ(form_structure->field_count(), form.fields.size()); @@ -1346,7 +1346,7 @@ !is_refill && !is_credit_card; for (size_t i = 0; i < form_structure->field_count(); ++i) { - if (form_structure->field(i)->section() != autofill_field->section()) + if (form_structure->field(i)->section != autofill_field->section) continue; if (form_structure->field(i)->only_fill_when_focused() && @@ -1410,6 +1410,9 @@ FillFieldWithValue(cached_field, data_model, &result.fields[i], should_notify, cvc); + if (result.fields[i].is_autofilled) + result.fields[i].section = form_structure->field(i)->section; + if ((!cached_field->is_focusable || cached_field->role == FormFieldData::ROLE_ATTRIBUTE_PRESENTATION) && result.fields[i].is_autofilled) {
diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc index 13ad202..9cf74c37 100644 --- a/components/autofill/core/browser/autofill_manager_unittest.cc +++ b/components/autofill/core/browser/autofill_manager_unittest.cc
@@ -4288,11 +4288,11 @@ // Although the heuristic types of the first two fields belongs to the address // section, the final fields' section should be based on the overall // prediction, therefore they should be grouped in one section. - const auto section = form_structure->field(0)->section(); - EXPECT_EQ(section, form_structure->field(1)->section()); - EXPECT_EQ(section, form_structure->field(2)->section()); - EXPECT_EQ(section, form_structure->field(3)->section()); - EXPECT_EQ(section, form_structure->field(4)->section()); + const auto section = form_structure->field(0)->section; + EXPECT_EQ(section, form_structure->field(1)->section); + EXPECT_EQ(section, form_structure->field(2)->section); + EXPECT_EQ(section, form_structure->field(3)->section); + EXPECT_EQ(section, form_structure->field(4)->section); } // Test that we are able to save form data when forms are submitted and we only
diff --git a/components/autofill/core/browser/form_data_importer.cc b/components/autofill/core/browser/form_data_importer.cc index a012ab2..5e5d5b33 100644 --- a/components/autofill/core/browser/form_data_importer.cc +++ b/components/autofill/core/browser/form_data_importer.cc
@@ -193,7 +193,7 @@ std::set<std::string> sections; for (const auto& field : form) { if (field->Type().group() != CREDIT_CARD) - sections.insert(field->section()); + sections.insert(field->section); } // We save a maximum of 2 profiles per submitted form (e.g. for shipping and @@ -230,7 +230,7 @@ // Go through each |form| field and attempt to constitute a valid profile. for (const auto& field : form) { // Reject fields that are not within the specified |section|. - if (field->section() != section) + if (field->section != section) continue; base::string16 value;
diff --git a/components/autofill/core/browser/form_structure.cc b/components/autofill/core/browser/form_structure.cc index 60e2091..6ad2524 100644 --- a/components/autofill/core/browser/form_structure.cc +++ b/components/autofill/core/browser/form_structure.cc
@@ -583,7 +583,7 @@ annotated_field.overall_type = field->Type().ToString(); annotated_field.parseable_name = base::UTF16ToUTF8(field->parseable_name()); - annotated_field.section = field->section(); + annotated_field.section = field->section; form.fields.push_back(annotated_field); } @@ -702,7 +702,7 @@ field->set_heuristic_type(cached_field->second->heuristic_type()); field->SetHtmlType(cached_field->second->html_type(), cached_field->second->html_mode()); - field->set_section(cached_field->second->section()); + field->section = cached_field->second->section; field->set_only_fill_when_focused( cached_field->second->only_fill_when_focused()); } @@ -880,7 +880,7 @@ // in the default section. These default section names will be overridden // by subsequent heuristic parsing steps if there are no author-specified // section names. - field->set_section(kDefaultSection); + field->section = kDefaultSection; std::vector<std::string> tokens = LowercaseAndTokenizeAttributeString(field->autocomplete_attribute); @@ -930,8 +930,8 @@ tokens.pop_back(); } - DCHECK_EQ(kDefaultSection, field->section()); - std::string section = field->section(); + DCHECK_EQ(kDefaultSection, field->section); + std::string section = field->section; HtmlFieldMode mode = HTML_MODE_NONE; // (3) The preceding token, if any, may be a fixed string that is either @@ -964,7 +964,7 @@ if (section != kDefaultSection) { has_author_specified_sections_ = true; - field->set_section(section); + field->section = section; } // No errors encountered while parsing! @@ -1223,7 +1223,7 @@ return; std::vector<AutofillField*> fields; for (size_t i = 0; i < field_count(); ++i) { - if (field(i)->section() != section) + if (field(i)->section != section) continue; fields.push_back(field(i)); } @@ -1350,7 +1350,7 @@ // All credit card fields belong to the same section that's different // from address sections. if (AutofillType(current_type).group() == CREDIT_CARD) { - field->set_section("credit-card"); + field->section = "credit-card"; continue; } @@ -1423,7 +1423,7 @@ is_hidden_section = false; } - field->set_section(base::UTF16ToUTF8(current_section)); + field->section = base::UTF16ToUTF8(current_section); } } @@ -1432,9 +1432,9 @@ for (const auto& field : fields_) { FieldTypeGroup field_type_group = field->Type().group(); if (field_type_group == CREDIT_CARD) - field->set_section(field->section() + "-cc"); + field->section = field->section + "-cc"; else - field->set_section(field->section() + "-default"); + field->section = field->section + "-default"; } }
diff --git a/components/autofill/core/browser/form_structure_unittest.cc b/components/autofill/core/browser/form_structure_unittest.cc index 22018dd..bcadb7d6 100644 --- a/components/autofill/core/browser/form_structure_unittest.cc +++ b/components/autofill/core/browser/form_structure_unittest.cc
@@ -1269,7 +1269,7 @@ // sections. std::set<std::string> section_names; for (size_t i = 0; i < 9; ++i) { - section_names.insert(form_structure.field(i)->section()); + section_names.insert(form_structure.field(i)->section); } EXPECT_EQ(9U, section_names.size()); } @@ -1313,7 +1313,7 @@ // section. std::set<std::string> section_names; for (size_t i = 0; i < 6; ++i) { - section_names.insert(form_structure.field(i)->section()); + section_names.insert(form_structure.field(i)->section); } EXPECT_EQ(1U, section_names.size()); } @@ -1342,7 +1342,7 @@ // section. std::set<std::string> section_names; for (size_t i = 0; i < 2; ++i) { - section_names.insert(form_structure.field(i)->section()); + section_names.insert(form_structure.field(i)->section); } EXPECT_EQ(1U, section_names.size()); } @@ -1380,8 +1380,7 @@ // form, we do not apply these usual heuristics. EXPECT_EQ(ASCIIToUTF16("one"), form_structure.field(0)->name); EXPECT_EQ(ASCIIToUTF16("two"), form_structure.field(3)->name); - EXPECT_EQ(form_structure.field(0)->section(), - form_structure.field(3)->section()); + EXPECT_EQ(form_structure.field(0)->section, form_structure.field(3)->section); } TEST_F(FormStructureTest, HeuristicsSample8) {
diff --git a/components/autofill/core/browser/test_autofill_driver.cc b/components/autofill/core/browser/test_autofill_driver.cc index 53327e7..94ef6316 100644 --- a/components/autofill/core/browser/test_autofill_driver.cc +++ b/components/autofill/core/browser/test_autofill_driver.cc
@@ -41,8 +41,7 @@ const base::string16& value) { } -void TestAutofillDriver::RendererShouldClearFilledForm() { -} +void TestAutofillDriver::RendererShouldClearFilledSection() {} void TestAutofillDriver::RendererShouldClearPreviewedForm() { }
diff --git a/components/autofill/core/browser/test_autofill_driver.h b/components/autofill/core/browser/test_autofill_driver.h index ef51d80..f5bbb55 100644 --- a/components/autofill/core/browser/test_autofill_driver.h +++ b/components/autofill/core/browser/test_autofill_driver.h
@@ -32,7 +32,7 @@ const std::vector<FormStructure*>& forms) override; void RendererShouldAcceptDataListSuggestion( const base::string16& value) override; - void RendererShouldClearFilledForm() override; + void RendererShouldClearFilledSection() override; void RendererShouldClearPreviewedForm() override; void RendererShouldFillFieldWithValue(const base::string16& value) override; void RendererShouldPreviewFieldWithValue(
diff --git a/components/autofill/core/common/form_field_data.cc b/components/autofill/core/common/form_field_data.cc index 06b712e..9b254bd8e 100644 --- a/components/autofill/core/common/form_field_data.cc +++ b/components/autofill/core/common/form_field_data.cc
@@ -159,6 +159,9 @@ // of the field, so we don't want to compare the values. // Similarly, flags like is_enabled, which are only used for parsing but are // not stored persistently, are not used for comparison. + // is_autofilled and section are also secondary properties of a field. Two + // fields could be the same, and have different sections, because the section + // is updated for one, but not for the other. return name == field.name && id == field.id && form_control_type == field.form_control_type && autocomplete_attribute == field.autocomplete_attribute &&
diff --git a/components/autofill/core/common/form_field_data.h b/components/autofill/core/common/form_field_data.h index d548b94..b60df38 100644 --- a/components/autofill/core/common/form_field_data.h +++ b/components/autofill/core/common/form_field_data.h
@@ -107,6 +107,11 @@ std::string autocomplete_attribute; base::string16 placeholder; base::string16 css_classes; + + // The unique identifier of the section (e.g. billing vs. shipping address) + // of this field. + std::string section; + // Note: we use uint64_t instead of size_t because this struct is sent over // IPC which could span 32 & 64 bit processes. We chose uint64_t instead of // uint32_t to maintain compatibility with old code which used size_t @@ -160,6 +165,7 @@ EXPECT_EQ(expected.max_length, actual.max_length); \ EXPECT_EQ(expected.css_classes, actual.css_classes); \ EXPECT_EQ(expected.is_autofilled, actual.is_autofilled); \ + EXPECT_EQ(expected.section, actual.section); \ EXPECT_EQ(expected.check_status, actual.check_status); \ EXPECT_EQ(expected.properties_mask, actual.properties_mask); \ EXPECT_EQ(expected.id, actual.id); \
diff --git a/components/autofill/ios/browser/autofill_driver_ios.h b/components/autofill/ios/browser/autofill_driver_ios.h index febf00c..a39cbc3 100644 --- a/components/autofill/ios/browser/autofill_driver_ios.h +++ b/components/autofill/ios/browser/autofill_driver_ios.h
@@ -46,7 +46,7 @@ const std::vector<autofill::FormStructure*>& forms) override; void SendAutofillTypePredictionsToRenderer( const std::vector<FormStructure*>& forms) override; - void RendererShouldClearFilledForm() override; + void RendererShouldClearFilledSection() override; void RendererShouldClearPreviewedForm() override; void RendererShouldAcceptDataListSuggestion( const base::string16& value) override;
diff --git a/components/autofill/ios/browser/autofill_driver_ios.mm b/components/autofill/ios/browser/autofill_driver_ios.mm index 6d1e612..d94e80e6 100644 --- a/components/autofill/ios/browser/autofill_driver_ios.mm +++ b/components/autofill/ios/browser/autofill_driver_ios.mm
@@ -91,8 +91,7 @@ } } -void AutofillDriverIOS::RendererShouldClearFilledForm() { -} +void AutofillDriverIOS::RendererShouldClearFilledSection() {} void AutofillDriverIOS::RendererShouldClearPreviewedForm() { }
diff --git a/components/autofill/ios/browser/resources/autofill_controller.js b/components/autofill/ios/browser/resources/autofill_controller.js index 555be8b..5bb6f60 100644 --- a/components/autofill/ios/browser/resources/autofill_controller.js +++ b/components/autofill/ios/browser/resources/autofill_controller.js
@@ -329,12 +329,14 @@ } }; +// TODO(crbug.com/816941): Clear should only clear the current section and not +// the whole form. /** - * Clear autofilled fields of the specified form. Fields that are not currently - * autofilled are not modified. + * Clear autofilled fields of the specified form section. Fields that are not + * currently autofilled are not modified. * Field contents are cleared, and Autofill flag and styling are removed. * 'change' events are sent for fields whose contents changed. - * Based on FormCache::ClearFormWithElement(). + * Based on FormCache::ClearSectionWithElement(). * * @param {string} formName Identifier for form element (from * getFormIdentifier).
diff --git a/components/component_updater/component_updater_url_constants.cc b/components/component_updater/component_updater_url_constants.cc index 754f8339..f797f7259 100644 --- a/components/component_updater/component_updater_url_constants.cc +++ b/components/component_updater/component_updater_url_constants.cc
@@ -14,13 +14,10 @@ // // The value of |kDefaultUrlSource| can be overridden with // --component-updater=url-source=someurl. -const char kUpdaterDefaultUrl[] = "https://clients2.google.com/service/update2"; - -const char kUpdaterFallbackUrl[] = "http://clients2.google.com/service/update2"; - -const char kUpdaterDefaultUrlAlt[] = +const char kUpdaterDefaultUrl[] = "https://update.googleapis.com/service/update2"; -const char kUpdaterFallbackUrlAlt[] = +const char kUpdaterFallbackUrl[] = "http://update.googleapis.com/service/update2"; + } // namespace component_updater
diff --git a/components/component_updater/component_updater_url_constants.h b/components/component_updater/component_updater_url_constants.h index 51875ad8..10f3287 100644 --- a/components/component_updater/component_updater_url_constants.h +++ b/components/component_updater/component_updater_url_constants.h
@@ -9,8 +9,6 @@ extern const char kUpdaterDefaultUrl[]; extern const char kUpdaterFallbackUrl[]; -extern const char kUpdaterDefaultUrlAlt[]; -extern const char kUpdaterFallbackUrlAlt[]; } // namespace component_updater
diff --git a/components/component_updater/configurator_impl.cc b/components/component_updater/configurator_impl.cc index 43e9696..fecd63e 100644 --- a/components/component_updater/configurator_impl.cc +++ b/components/component_updater/configurator_impl.cc
@@ -9,7 +9,6 @@ #include <algorithm> #include "base/command_line.h" -#include "base/feature_list.h" #include "base/stl_util.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" @@ -56,9 +55,6 @@ const char kSwitchDisableBackgroundDownloads[] = "disable-background-downloads"; #endif // defined(OS_WIN) -const base::Feature kAlternateComponentUrls{"AlternateComponentUrls", - base::FEATURE_ENABLED_BY_DEFAULT}; - // If there is an element of |vec| of the form |test|=.*, returns the right- // hand side of that assignment. Otherwise, returns an empty string. // The right-hand side may contain additional '=' characters, allowing for @@ -134,20 +130,11 @@ } std::vector<GURL> ConfiguratorImpl::UpdateUrl() const { - std::vector<GURL> urls; if (url_source_override_.is_valid()) { - urls.push_back(GURL(url_source_override_)); - return urls; + return {GURL(url_source_override_)}; } - if (base::FeatureList::IsEnabled(kAlternateComponentUrls)) { - urls.push_back(GURL(kUpdaterDefaultUrlAlt)); - urls.push_back(GURL(kUpdaterFallbackUrlAlt)); - } else { - urls.push_back(GURL(kUpdaterDefaultUrl)); - urls.push_back(GURL(kUpdaterFallbackUrl)); - } - + std::vector<GURL> urls{GURL(kUpdaterDefaultUrl), GURL(kUpdaterFallbackUrl)}; if (require_encryption_) update_client::RemoveUnsecureUrls(&urls);
diff --git a/components/crash/content/app/BUILD.gn b/components/crash/content/app/BUILD.gn index 79aa52b..4d9d30a 100644 --- a/components/crash/content/app/BUILD.gn +++ b/components/crash/content/app/BUILD.gn
@@ -98,6 +98,13 @@ ] } + if (is_mac) { + deps += [ + "//third_party/crashpad/crashpad/minidump", + "//third_party/crashpad/crashpad/snapshot", + ] + } + if (is_android) { libs = [ "log" ] }
diff --git a/components/crash/content/app/crashpad.cc b/components/crash/content/app/crashpad.cc index a5f6b2e6..c6a9829 100644 --- a/components/crash/content/app/crashpad.cc +++ b/components/crash/content/app/crashpad.cc
@@ -379,4 +379,12 @@ return g_database_path->value().c_str(); } +namespace internal { + +crashpad::CrashReportDatabase* GetCrashReportDatabase() { + return g_database; +} + +} // namespace internal + } // namespace crash_reporter
diff --git a/components/crash/content/app/crashpad.h b/components/crash/content/app/crashpad.h index cae8cfd..7717dccc 100644 --- a/components/crash/content/app/crashpad.h +++ b/components/crash/content/app/crashpad.h
@@ -23,6 +23,7 @@ namespace crashpad { class CrashpadClient; +class CrashReportDatabase; } namespace crash_reporter { @@ -127,6 +128,12 @@ // The implementation function for GetCrashpadDatabasePath. base::FilePath::StringType::const_pointer GetCrashpadDatabasePathImpl(); +#if defined(OS_MACOSX) +// Captures a minidump for the process named by its |task_port| and stores it +// in the current crash report database. +void DumpProcessWithoutCrashing(task_t task_port); +#endif + namespace internal { #if defined(OS_WIN) @@ -169,6 +176,10 @@ const std::string& user_data_dir, const base::FilePath& exe_path); +// Returns the current crash report database object, or null if it has not +// been initialized yet. +crashpad::CrashReportDatabase* GetCrashReportDatabase(); + } // namespace internal } // namespace crash_reporter
diff --git a/components/crash/content/app/crashpad_mac.mm b/components/crash/content/app/crashpad_mac.mm index eb82f44053..91aaa80 100644 --- a/components/crash/content/app/crashpad_mac.mm +++ b/components/crash/content/app/crashpad_mac.mm
@@ -26,8 +26,39 @@ #include "third_party/crashpad/crashpad/client/crashpad_info.h" #include "third_party/crashpad/crashpad/client/settings.h" #include "third_party/crashpad/crashpad/client/simulate_crash.h" +#include "third_party/crashpad/crashpad/minidump/minidump_file_writer.h" +#include "third_party/crashpad/crashpad/snapshot/mac/process_snapshot_mac.h" namespace crash_reporter { + +void DumpProcessWithoutCrashing(task_t task_port) { + crashpad::CrashReportDatabase* database = internal::GetCrashReportDatabase(); + if (!database) + return; + + crashpad::ProcessSnapshotMac snapshot; + if (!snapshot.Initialize(task_port)) + return; + + snapshot.SetAnnotationsSimpleMap( + {{"is-dump-process-without-crashing", "true"}}); + + crashpad::MinidumpFileWriter minidump; + minidump.InitializeFromSnapshot(&snapshot); + + std::unique_ptr<crashpad::CrashReportDatabase::NewReport> new_report; + if (database->PrepareNewCrashReport(&new_report) != + crashpad::CrashReportDatabase::kNoError) { + return; + } + + if (!minidump.WriteEverything(new_report->Writer())) + return; + + crashpad::UUID uuid; + database->FinishedWritingCrashReport(std::move(new_report), &uuid); +} + namespace internal { base::FilePath PlatformCrashpadInitialization(bool initial_client,
diff --git a/components/cronet/android/api/src/org/chromium/net/CronetProvider.java b/components/cronet/android/api/src/org/chromium/net/CronetProvider.java index 1902682..c302e64 100644 --- a/components/cronet/android/api/src/org/chromium/net/CronetProvider.java +++ b/components/cronet/android/api/src/org/chromium/net/CronetProvider.java
@@ -226,6 +226,15 @@ } String className = context.getResources().getString(resId); + // If the resource specifies a well known provider, don't load it because + // there will be an attempt to load it anyways. + if (className == null || className.equals(PLAY_SERVICES_CRONET_PROVIDER_CLASS) + || className.equals(GMS_CORE_CRONET_PROVIDER_CLASS) + || className.equals(JAVA_CRONET_PROVIDER_CLASS) + || className.equals(NATIVE_CRONET_PROVIDER_CLASS)) { + return false; + } + if (!addCronetProviderImplByClassName(context, className, providers, true)) { Log.e(TAG, "Unable to instantiate Cronet implementation class " + className
diff --git a/components/download/internal/common/download_file_impl.cc b/components/download/internal/common/download_file_impl.cc index eefdd2ce..05d8f7c5 100644 --- a/components/download/internal/common/download_file_impl.cc +++ b/components/download/internal/common/download_file_impl.cc
@@ -229,7 +229,7 @@ CancelRequest(offset); return; } - + DCHECK(source_streams_.find(offset) == source_streams_.end()); source_streams_[offset] = std::make_unique<SourceStream>(offset, length, std::move(stream)); OnSourceStreamAdded(source_streams_[offset].get());
diff --git a/components/download/internal/common/download_file_unittest.cc b/components/download/internal/common/download_file_unittest.cc index 3fb6077..f0f2204 100644 --- a/components/download/internal/common/download_file_unittest.cc +++ b/components/download/internal/common/download_file_unittest.cc
@@ -1042,8 +1042,8 @@ .RetiresOnSaturation(); download_file_->AddInputStream( - std::unique_ptr<MockInputStream>(additional_streams_[0]), 0, - DownloadSaveInfo::kLengthFullContent); + std::unique_ptr<MockInputStream>(additional_streams_[0]), + strlen(kTestData1), DownloadSaveInfo::kLengthFullContent); // The stream should get terminated and reset the callback. EXPECT_TRUE(sink_callback_.is_null());
diff --git a/components/download/internal/common/download_item_impl.cc b/components/download/internal/common/download_item_impl.cc index 1574628..cd9f9b1 100644 --- a/components/download/internal/common/download_item_impl.cc +++ b/components/download/internal/common/download_item_impl.cc
@@ -1479,9 +1479,8 @@ if (state_ == RESUMING_INTERNAL) UpdateValidatorsOnResumption(new_create_info); - // If the download is not parallel download during resumption, clear the - // |received_slices_|. - if (!job_->IsParallelizable() && !received_slices_.empty()) { + // If the download is not parallel, clear the |received_slices_|. + if (!received_slices_.empty() && !job_->IsParallelizable()) { destination_info_.received_bytes = GetMaxContiguousDataBlockSizeFromBeginning(received_slices_); received_slices_.clear();
diff --git a/components/download/internal/common/download_job_factory.cc b/components/download/internal/common/download_job_factory.cc index 4071ba6b..c9cffbeb 100644 --- a/components/download/internal/common/download_job_factory.cc +++ b/components/download/internal/common/download_job_factory.cc
@@ -44,10 +44,12 @@ net::HttpResponseInfo::CONNECTION_INFO_HTTP1_1; bool http_get_method = create_info.method == "GET" && create_info.url().SchemeIsHTTPOrHTTPS(); - + bool partial_response_success = + download_item->GetReceivedSlices().empty() || create_info.offset != 0; bool is_parallelizable = has_strong_validator && create_info.accept_range && has_content_length && satisfy_min_file_size && - satisfy_connection_type && http_get_method; + satisfy_connection_type && http_get_method && + partial_response_success; if (!IsParallelDownloadEnabled()) return is_parallelizable;
diff --git a/components/download/internal/common/download_worker.cc b/components/download/internal/common/download_worker.cc index 49cdc605..b6f3aa5 100644 --- a/components/download/internal/common/download_worker.cc +++ b/components/download/internal/common/download_worker.cc
@@ -137,7 +137,8 @@ Pause(); } - delegate_->OnInputStreamReady(this, std::move(input_stream)); + delegate_->OnInputStreamReady(this, std::move(input_stream), + std::move(create_info)); } void DownloadWorker::OnUrlDownloadStopped(UrlDownloadHandler* downloader) {
diff --git a/components/download/internal/common/download_worker.h b/components/download/internal/common/download_worker.h index 2c411a3e..8c71260 100644 --- a/components/download/internal/common/download_worker.h +++ b/components/download/internal/common/download_worker.h
@@ -31,7 +31,8 @@ // destination file. virtual void OnInputStreamReady( DownloadWorker* worker, - std::unique_ptr<InputStream> input_stream) = 0; + std::unique_ptr<InputStream> input_stream, + std::unique_ptr<DownloadCreateInfo> download_create_info) = 0; }; DownloadWorker(DownloadWorker::Delegate* delegate,
diff --git a/components/download/internal/common/parallel_download_job.cc b/components/download/internal/common/parallel_download_job.cc index b0eae34..e72f9af 100644 --- a/components/download/internal/common/parallel_download_job.cc +++ b/components/download/internal/common/parallel_download_job.cc
@@ -123,9 +123,14 @@ void ParallelDownloadJob::OnInputStreamReady( DownloadWorker* worker, - std::unique_ptr<InputStream> input_stream) { - bool success = DownloadJob::AddInputStream( - std::move(input_stream), worker->offset(), worker->length()); + std::unique_ptr<InputStream> input_stream, + std::unique_ptr<DownloadCreateInfo> download_create_info) { + // If server returns a wrong range, abort the parallel request. + bool success = download_create_info->offset == worker->offset(); + if (success) { + success = DownloadJob::AddInputStream(std::move(input_stream), + worker->offset(), worker->length()); + } RecordParallelDownloadAddStreamSuccess(success); // Destroy the request if the sink is gone.
diff --git a/components/download/internal/common/parallel_download_job.h b/components/download/internal/common/parallel_download_job.h index 2a1de8f..a6803e2 100644 --- a/components/download/internal/common/parallel_download_job.h +++ b/components/download/internal/common/parallel_download_job.h
@@ -68,8 +68,10 @@ friend class ParallelDownloadJobTest; // DownloadWorker::Delegate implementation. - void OnInputStreamReady(DownloadWorker* worker, - std::unique_ptr<InputStream> input_stream) override; + void OnInputStreamReady( + DownloadWorker* worker, + std::unique_ptr<InputStream> input_stream, + std::unique_ptr<DownloadCreateInfo> download_create_info) override; // Build parallel requests after a delay, to effectively measure the single // stream bandwidth.
diff --git a/components/download/internal/common/parallel_download_job_unittest.cc b/components/download/internal/common/parallel_download_job_unittest.cc index ff5e9bc..61761c4 100644 --- a/components/download/internal/common/parallel_download_job_unittest.cc +++ b/components/download/internal/common/parallel_download_job_unittest.cc
@@ -94,8 +94,10 @@ return min_remaining_time_; } - void OnInputStreamReady(DownloadWorker* worker, - std::unique_ptr<InputStream> input_stream) override { + void OnInputStreamReady( + DownloadWorker* worker, + std::unique_ptr<InputStream> input_stream, + std::unique_ptr<DownloadCreateInfo> download_create_info) override { CountOnInputStreamReady(); }
diff --git a/components/nacl/broker/nacl_broker_manifest.json b/components/nacl/broker/nacl_broker_manifest.json index 1dc1c44..d5273bf 100644 --- a/components/nacl/broker/nacl_broker_manifest.json +++ b/components/nacl/broker/nacl_broker_manifest.json
@@ -5,15 +5,15 @@ "service_manager:connector": { "provides": { "browser": [ - "IPC::mojom::ChannelBootstrap", + "IPC.mojom.ChannelBootstrap", // NOTE: The interfaces below are not implemented in the nacl_loader // service, but they are requested from all child processes by common // browser-side code. We list them here to make the Service Manager // happy. - "content::mojom::Child", - "content::mojom::ChildControl", - "content::mojom::ChildHistogramFetcherFactory" + "content.mojom.Child", + "content.mojom.ChildControl", + "content.mojom.ChildHistogramFetcherFactory" ] } }
diff --git a/components/nacl/loader/nacl_loader_manifest.json b/components/nacl/loader/nacl_loader_manifest.json index 480d742..30e0f64 100644 --- a/components/nacl/loader/nacl_loader_manifest.json +++ b/components/nacl/loader/nacl_loader_manifest.json
@@ -5,11 +5,11 @@ "service_manager:connector": { "provides": { "browser": [ - "IPC::mojom::ChannelBootstrap", - "content::mojom::Child", - "content::mojom::ChildControl", - "content::mojom::ChildHistogramFetcherFactory", - "content::mojom::ResourceUsageReporter" + "IPC.mojom.ChannelBootstrap", + "content.mojom.Child", + "content.mojom.ChildControl", + "content.mojom.ChildHistogramFetcherFactory", + "content.mojom.ResourceUsageReporter" ] } }
diff --git a/components/omnibox/browser/favicon_cache.cc b/components/omnibox/browser/favicon_cache.cc index 4d76c8c..744bc420 100644 --- a/components/omnibox/browser/favicon_cache.cc +++ b/components/omnibox/browser/favicon_cache.cc
@@ -21,9 +21,6 @@ } // namespace -// static -const int FaviconCache::kEmptyFaviconCacheLifetimeInSeconds = 60; - bool FaviconCache::Request::operator<(const Request& rhs) const { // Compare |type| first, and if equal, compare |url|. return std::tie(type, url) < std::tie(rhs.type, rhs.url); @@ -36,8 +33,13 @@ mru_cache_(GetFaviconCacheSize()), responses_without_favicons_(GetFaviconCacheSize()), weak_factory_(this) { - if (history_service) + if (history_service) { history_observer_.Add(history_service); + + favicons_changed_subscription_ = + history_service->AddFaviconsChangedCallback(base::BindRepeating( + &FaviconCache::OnFaviconsChanged, weak_factory_.GetWeakPtr())); + } } FaviconCache::~FaviconCache() {} @@ -71,7 +73,6 @@ return cache_iterator->second; // Early exit if we've already established that we don't have the favicon. - AgeOutOldCachedEmptyFavicons(); if (responses_without_favicons_.Peek(request) != responses_without_favicons_.end()) { return gfx::Image(); @@ -110,7 +111,7 @@ const Request& request, const favicon_base::FaviconImageResult& result) { if (result.image.IsEmpty()) { - responses_without_favicons_.Put(request, GetTimeNow()); + responses_without_favicons_.Put(request, true); pending_requests_.erase(request); return; } @@ -136,21 +137,18 @@ responses_without_favicons_.Erase(it); } -void FaviconCache::AgeOutOldCachedEmptyFavicons() { - // TODO(tommycli): This code is based on chrome_browser_net::TimedCache. - // Investigate combining. - base::TimeDelta max_duration = - base::TimeDelta::FromSeconds(kEmptyFaviconCacheLifetimeInSeconds); - base::TimeTicks age_cutoff = GetTimeNow() - max_duration; - auto eldest = responses_without_favicons_.rbegin(); - while (eldest != responses_without_favicons_.rend() && - eldest->second <= age_cutoff) { - eldest = responses_without_favicons_.Erase(eldest); +void FaviconCache::InvalidateCachedRequests(const Request& request) { + { + auto it = mru_cache_.Peek(request); + if (it != mru_cache_.end()) + mru_cache_.Erase(it); } -} -base::TimeTicks FaviconCache::GetTimeNow() { - return base::TimeTicks::Now(); + { + auto it = responses_without_favicons_.Peek(request); + if (it != responses_without_favicons_.end()) + responses_without_favicons_.Erase(it); + } } void FaviconCache::OnURLsDeleted(history::HistoryService* history_service, @@ -161,12 +159,20 @@ if (deletion_info.IsAllHistory()) { mru_cache_.Clear(); + responses_without_favicons_.Clear(); return; } for (const history::URLRow& row : deletion_info.deleted_rows()) { - auto it = mru_cache_.Peek({RequestType::BY_PAGE_URL, row.url()}); - if (it != mru_cache_.end()) - mru_cache_.Erase(it); + InvalidateCachedRequests({RequestType::BY_PAGE_URL, row.url()}); } } + +void FaviconCache::OnFaviconsChanged(const std::set<GURL>& page_urls, + const GURL& icon_url) { + for (GURL page_url : page_urls) { + InvalidateCachedRequests({RequestType::BY_PAGE_URL, page_url}); + } + + InvalidateCachedRequests({RequestType::BY_ICON_URL, icon_url}); +}
diff --git a/components/omnibox/browser/favicon_cache.h b/components/omnibox/browser/favicon_cache.h index 00173c2b..b0f5a22 100644 --- a/components/omnibox/browser/favicon_cache.h +++ b/components/omnibox/browser/favicon_cache.h
@@ -9,13 +9,13 @@ #include <map> #include "base/callback_forward.h" +#include "base/callback_list.h" #include "base/containers/mru_cache.h" #include "base/gtest_prod_util.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observer.h" #include "base/task/cancelable_task_tracker.h" -#include "base/time/time.h" #include "components/favicon_base/favicon_types.h" #include "components/history/core/browser/history_service_observer.h" #include "components/history/core/browser/history_types.h" @@ -37,8 +37,8 @@ // of them so we can synchronously deliver them to the UI to prevent flicker as // the user types. // -// It also stores and times out null results from when we cannot fetch a favicon -// from the history database. Null results timeout after a while. +// This class also observes the HistoryService, and invalidates cached favicons +// and null responses when matching favicons are updated. class FaviconCache : public history::HistoryServiceObserver { public: FaviconCache(favicon::FaviconService* favicon_service, @@ -73,7 +73,7 @@ private: FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ClearIconsWithHistoryDeletions); FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ExpireNullFaviconsByHistory); - FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ExpireNullFaviconsByTime); + FRIEND_TEST_ALL_PREFIXES(FaviconCacheTest, ObserveFaviconsChanged); enum class RequestType { BY_PAGE_URL, @@ -88,9 +88,6 @@ bool operator<(const Request& rhs) const; }; - // Chosen arbitrarily. Declared in the class for testing. - static const int kEmptyFaviconCacheLifetimeInSeconds; - // Internal method backing GetFaviconForPageUrl and GetFaviconForIconUrl. gfx::Image GetFaviconInternal(const Request& request, FaviconFetchedCallback on_favicon_fetched); @@ -100,10 +97,9 @@ void OnFaviconFetched(const Request& request, const favicon_base::FaviconImageResult& result); - void AgeOutOldCachedEmptyFavicons(); - - // Virtual for testing. - virtual base::TimeTicks GetTimeNow(); + // Removes cached favicons and null responses that match |request| from the + // cache. Subsequent matching requests pull fresh data from FaviconService. + void InvalidateCachedRequests(const Request& request); // history::HistoryServiceObserver: void OnURLVisited(history::HistoryService* history_service, @@ -113,6 +109,7 @@ base::Time visit_time) override; void OnURLsDeleted(history::HistoryService* history_service, const history::DeletionInfo& deletion_info) override; + void OnFaviconsChanged(const std::set<GURL>& page_urls, const GURL& icon_url); // Non-owning pointer to a KeyedService. favicon::FaviconService* favicon_service_; @@ -126,8 +123,13 @@ // Keep responses with empty favicons in a separate list, to prevent a // response with an empty favicon from ever evicting an existing favicon. - // The value is used to age out entries that are too old. - base::MRUCache<Request, base::TimeTicks> responses_without_favicons_; + // The value is always set to true and has no meaning. + base::MRUCache<Request, bool> responses_without_favicons_; + + // Subscription for notifications of changes to favicons. + std::unique_ptr<base::CallbackList<void(const std::set<GURL>&, + const GURL&)>::Subscription> + favicons_changed_subscription_; base::WeakPtrFactory<FaviconCache> weak_factory_;
diff --git a/components/omnibox/browser/favicon_cache_unittest.cc b/components/omnibox/browser/favicon_cache_unittest.cc index a7f024ce..454d01a 100644 --- a/components/omnibox/browser/favicon_cache_unittest.cc +++ b/components/omnibox/browser/favicon_cache_unittest.cc
@@ -44,19 +44,6 @@ FAIL() << "This asynchronous callback should never have been called."; } -class TestFaviconCache : public FaviconCache { - public: - explicit TestFaviconCache(favicon::FaviconService* favicon_service) - : FaviconCache(favicon_service, nullptr /* history_service */) {} - ~TestFaviconCache() override {} - - base::TimeTicks GetTimeNow() override { return fake_time_now_; } - void SetTimeNow(base::TimeTicks now) { fake_time_now_ = now; } - - private: - base::TimeTicks fake_time_now_; -}; - } // namespace class FaviconCacheTest : public testing::Test { @@ -65,7 +52,8 @@ const GURL kUrlB = GURL("http://www.b.com/"); const GURL kIconUrl = GURL("http://a.com/favicon.ico"); - FaviconCacheTest() : cache_(&favicon_service_) {} + FaviconCacheTest() + : cache_(&favicon_service_, nullptr /* history_service */) {} testing::NiceMock<favicon::MockFaviconService> favicon_service_; @@ -100,7 +88,7 @@ favicon_base::FaviconImageCallback favicon_service_a_site_response_; favicon_base::FaviconImageCallback favicon_service_b_site_response_; - TestFaviconCache cache_; + FaviconCache cache_; }; TEST_F(FaviconCacheTest, Basic) { @@ -275,7 +263,7 @@ cache_.GetFaviconForPageUrl(kUrlA, base::BindOnce(&Fail)).IsEmpty()); } -TEST_F(FaviconCacheTest, ExpireNullFaviconsByTime) { +TEST_F(FaviconCacheTest, ObserveFaviconsChanged) { ExpectFaviconServiceForPageUrlCalls(2, 1); EXPECT_TRUE( @@ -283,21 +271,11 @@ EXPECT_TRUE( cache_.GetFaviconForPageUrl(kUrlB, base::BindOnce(&Fail)).IsEmpty()); - base::TimeDelta max_duration = base::TimeDelta::FromSeconds( - FaviconCache::kEmptyFaviconCacheLifetimeInSeconds); - - // Set the time to epoch and respond with the first empty favicon. - cache_.SetTimeNow(base::TimeTicks()); + // Simulate responses to both requests. favicon_service_a_site_response_.Run(favicon_base::FaviconImageResult()); - - // Increment the time to half the duration of the expiry time and respond - // with the second empty favicon. - cache_.SetTimeNow(base::TimeTicks() + max_duration / 2); favicon_service_b_site_response_.Run(favicon_base::FaviconImageResult()); - // Now increment the time so the the first, but not the second, cached empty - // favicon is expired. - cache_.SetTimeNow(base::TimeTicks() + max_duration); + cache_.OnFaviconsChanged({kUrlA}, GURL()); // Request the two favicons again. EXPECT_TRUE( @@ -307,5 +285,5 @@ // Our call to |ExpectFaviconServiceForPageUrlCalls(expected A calls, expected // B calls)| above should verify that we re-request the icon for kUrlA only - // (because the empty result has been aged out). + // (because the null result has been invalidated by OnFaviconsChanged). }
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index e516233..e61444de 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -12037,6 +12037,10 @@ 'desc': '''Text pointing the user to the reference page for this policy, which may have more info (since it doesn't have a size limit)''', 'text': '''Reference: <ph name="REFERENCE_URL">$6<ex>https://www.chromium.org/administrators/policy-list-3#WallpaperImage</ex></ph>''', }, + 'doc_legacy_single_line_label': { + 'desc': '''A label for the legacy single-line textbox for a policy also has a more user-friendly multi-line textbox. See http://crbug/829328''', + 'text': '''<ph name="POLICY_NAME">$6<ex>Wallpaper Image</ex></ph> (The single-line field is deprecated and will be removed in the future. Please start using the multi-line textbox below.)''', + }, }, 'placeholders': [], }
diff --git a/components/policy/resources/policy_templates_am.xtb b/components/policy/resources/policy_templates_am.xtb index d984476..2bc1523 100644 --- a/components/policy/resources/policy_templates_am.xtb +++ b/components/policy/resources/policy_templates_am.xtb
@@ -27,6 +27,7 @@ ይህ መመሪያ ከተዋቀረ የመግቢያ ገጹ ሁልጊዜ በዚህ መመሪያ (መመሪያው እንደ ወደፊት ማስተላለፍ ተኳሃኝ ሆኖ የተገለጸ ነው) ላይ በተጠቀሰው የመጀመሪያው እሴት በሚሰጠው ቋንቋ ነው የሚታየው። ይህ መመሪያ ካልተዋቀረ ወይም ወደ ባዶ ዝርዝር ከተዋቀረ የመግቢያ ገጹ በመጨረሻው የተጠቃሚ ክፍለ-ጊዜ ላይ በነበረው ቋንቋ ነው የሚታየው። ይህ እሴት የሚሠራ ወዳልሆነ ቋንቋ ከሆነ የተዋቀረው የመግቢያ ገጹ በነባሪ ቋንቋ (አሁን en-US ነው) ነው የሚታየው።</translation> <translation id="1062011392452772310">ለመሣሪያው በርቀት ማስረገጥን ያንቁ</translation> <translation id="1062407476771304334">ተካ</translation> +<translation id="1079801999187584280">የገንቢውን መሣሪያዎች አጠቃቀም አትፍቀድ</translation> <translation id="109166998561583554">የይለፍ ቃል ጥበቃ በስጋት ላይ የሆነ መለያን መጠቆሚያ መቀስቀሻ</translation> <translation id="1093082332347834239">ይህ ቅንብር ከነቃ የርቀት ረዳት አስተናጋጁ ከ<ph name="UIACCESS_PERMISSION_NAME" /> ፈቃዶች ጋር በአንድ ሂደት ውስጥ ያሂዳል። ይሄ የርቀት ተጠቃሚዎች በአከባቢያዊ የተጠቃሚ ዴስክቶፕ ውስጥ ካሉ ከፍ ያሉ መስኮቶች ጋር መስተጋብር እንዲፈጸሙ ያስችለዋል። @@ -79,6 +80,7 @@ የማስፋት መለኪያው 100% ወይም ከዚያ በላይ መሆን አለበት።</translation> <translation id="131353325527891113">የተጠቃሚ ስሞችን በመግቢያ ገጽ ላይ አሳይ</translation> +<translation id="1325295456374328159">በተጠቃሚ ክፍለ ጊዜ የተፈቀዱ አካባቢዎችን አዋቅር</translation> <translation id="1327466551276625742">ከመስመር ውጪ ሲሆን የአውታረ መረብ መዋቅር ጥያቄን ያንቁ</translation> <translation id="1330145147221172764">የታይታ የቁልፍ ሰሌዳን አንቃ</translation> <translation id="13356285923490863">የመምሪያ ስም</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">በSymantec Corporation የLegacy PKI Infrastructure ውስጥ እምነትን ማንቃት ወይም አለማንቃት</translation> <translation id="1393485621820363363">የድርጅት መሣሪያ አታሚዎች አንቅቷል</translation> <translation id="1397855852561539316">ነባሪ ፍለጋ አቅራቢ የሚጠቁመው ዩአርኤል</translation> +<translation id="1424081297104898791">የገንቢው መሣሪያዎች የት ጥቅም ላይ እንደሚውሉ እንዲቆጣጠሩ ያስችልዎታል። + + ይህ መመሪያ ወደ 'DeveloperToolsDisallowedForForceInstalledExtensions' ከተቀናበረ (እሴት 0፣ ለድርጅት ተጠቃሚዎች ነባሪው ነው)፣ የገንቢው መሣሪያዎቹ እና ጃቫስክሪፕት መሥሪያ በአጠቃላይ ሊደርሳባቸው ይችላሉ፣ ሆኖም ግን በድርጅት መመሪያ በተጫኑ ቅጣያዎች የነገር አገባብ አውድ ላይ ሊደርሱ አይችሉም። + ይህ መመሪያ ወደ 'DeveloperToolsAllowed' ከተቀናበረ (እሴት 1፣ ለማይተዳደሩ ተጠቃሚዎች ነባሪው ነው)፣ የገንቢው መሣሪያዎቹ እና ጃቫስክሪፕት መሥሪያ በአጠቃላይ ሊደርሳባቸው ይችላሉ፣ ሆኖም ግን በድርጅት መመሪያ በተጫኑ ቅጣያዎች አገባብ ላይ ሊደርሱ አይችሉም። + ይህ መመሪያ ወደ 'DeveloperToolsDisallowed' ከተቀናበረ (እሴት 2)፣ የገንቢ መሣሪያዎቹ ሊደረስባቸው አይችልም እንዲሁም የድር ጣቢያ አባለ ነገራት ከዚያ ጊዜ በኋላ ሊመረመሩ አይችሉም። የገንቢ መሣሪያዎችን እና የጃቫስክሪፕት መሥሪያ ለመክፈት ጥቅም ላይ የሚውሉ ማናቸውም የቁልፍ ሰሌዳ አቋራጮች እና ማናቸውም የምናሌ ወይም የአውደነገር አገባብ ምናሌ ግቤቶች ይሰናከላሉ። + የቆየው መመሪያ DeveloperToolsDisabled ወደ እውነት ከተቀናበረ፣ የመመሪያው እሴት ችላ ይባል እና የገንቢው መሣሪያ ይሰናከላል።</translation> <translation id="1426410128494586442">አዎ</translation> <translation id="1427655258943162134">የተኪ አገልጋይ አድራሻ ወይም ዩአርኤል</translation> <translation id="1435659902881071157">የመሣሪያ ደረጃ አውታረ መረብ ውቅር</translation> @@ -204,6 +212,7 @@ <translation id="1803646570632580723">በአስጀማሪው ላይ የሚያዩ የተሰኩ መተግበሪያዎች ዝርዝር</translation> <translation id="1808715480127969042">በእነዚህ ጣቢያዎች ላይ ኩኪዎችን አግድ</translation> <translation id="1810261428246410396">ቅጽበታዊ እንደ ሞደም መሰካትን ይፍቀዱ።</translation> +<translation id="1826282708349731794">እንዴት Chrome Cleanup ውሂብን ወደ Google ሪፖርት እንደሚያደርግ ይቆጣጠራል</translation> <translation id="1827523283178827583">ቋሚ ተኪ አገልጋዮችን ይጠቀሙ</translation> <translation id="1843117931376765605">የተጠቃሚ መመሪያ እድሳት ፍጥነት</translation> <translation id="1844620919405873871">ከፈጣን አከፋፈት ጋር የተያያዙ መመሪያዎችን ያዋቅራል።</translation> @@ -601,6 +610,7 @@ ይህ መመሪያ ተጠቃሚዎች በተናጠል መሣሪያዎች ላይ ያሉ ማተሚያዎችን የማዋቀር ችሎታ ላይ ምንም ውጤት የለውም። ተናጠል ተጠቃሚዎች ለሚያደርጓቸው የማተሚያዎች ውቅረት እንደ ጭማሪ እንዲሆኑ የታሰበ ነው። </translation> <translation id="2633084400146331575">የተነገረ ግብረ መልስን ያንቁ</translation> +<translation id="2640843331263301324">የChrome ማጽጃ በWindows ላይ ያነቃል</translation> <translation id="2646290749315461919">ድር ጣቢያዎች የተጠቃሚዎች አካላዊ አካባቢን መከታተል ይፈቀድላቸው እንደሆነ እንዲያዋቅሩ ያስችልዎታል። የተጠቃሚዎች አካላዊ አካባቢ በነባሪነት ሊፈቀድ ይችላል፣ በነባሪነት ሊከለከል ይችላል ወይም አንድ ድር ጣቢያ አካላዊ አካባቢውን በጠየቀ ቁጥር ተጠያቂው እንዲጠየቅ ማድረግ ይቻላል። ይህ መመሪያ እንዳልተዋቀረ ከተተወ «AskGeolocation» ስራ ላይ ይውልና ተጠቃሚው ሊቀይረው ይችላል።</translation> @@ -670,13 +680,6 @@ ይህ መመሪያ ስራ ላይ ከዋለ በዚህ መመሪያ ውስጥ ካሉ እሴቶች የሚዛመዱ መታወቂያዎች ያላቸው አታሚዎች ብቻ ናቸው ለተጠቃሚው የሚገኙት። መታወቂያዎቹ በ<ph name="DEVICE_PRINTERS_POLICY" /> ውስጥ በተገለጸው ፋይል ላይ ከተገለጹ የ«id» ወይም የ«guid» ጋር የሚዛመዱ መሆን አለባቸው። </translation> -<translation id="2844404652289407061">በ<ph name="PRODUCT_NAME" /> ይዘት እይታ ውስጥ ለመፈለግ የመንካት ተገኝነትን ያነቃል። - - ይህን ቅንብር ካነቁት ለመፈለግ መንካት ለተጠቃሚው የሚገኝ ይሆናል፣ እና ባህሪውን ለማብራት ወይም ለማጥፋት መምረጥ ይችላሉ። - - ይህን ቅንብር ካሰናከሉት ለመፈለግ መንካት ሙሉ በሙሉ ይሰናከላል። - - ይህ መመሪያ እንዳልተዋቀረ ከተተወ ከመንቃት ጋር እኩል ነው፣ ከላይ ያለውን መግለጫ ይመልከቱ።</translation> <translation id="285480231336205327">የከፍተኛ ንፅፅር ሁነታን ያንቁ</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" /> በሕትመት ቅድመ-ዕይታ ላይ በጣም በቅርብ ጊዜ በጥቅም ላይ ከዋለው ማተሚያ ይልቅ ነባሪውን የስርዓት ማተሚያውን እንደ ነባሪ ማተሚያ እንዲጠቀም ይደርጋል። @@ -1253,12 +1256,14 @@ <translation id="4554651132977135445">የተጠቃሚ መመሪያ ድግግሞሽ ተመላሽ ማስኬጃ ሁነታ</translation> <translation id="4555850956567117258">ለተጠቃሚው በርቀት ማስረገጥን ያንቁ</translation> <translation id="4557134566541205630">የነባሪ የፍለጋ አቅራቢ አዲስ ትር ገጽ ዩአርኤል</translation> +<translation id="4567137030726189378">የገንቢ መሣሪያዎችን አጠቃቀም ፍቀድ</translation> <translation id="4600786265870346112">ትልቅ ጠቋሚን ያንቁ</translation> <translation id="4604931264910482931">የተከለከሉ የቤተኛ የመልዕክት መላላኪያ ዝርዝርን አዋቅር</translation> <translation id="4613508646038788144">መመሪያው ወደ ሐሰት ከተዋቀረ የሶስተኛ ወገን ሶፍትዌር የሚገባ ተፈጻሚ ኮድ ወደ የChrome ሂደቶች እንዲያስገባ ይፈቀድለታል። መመሪያው ካልተዋቀረ ወይም ወደ እውነት ከተዋቀረ የሶስተኛ ወገን ሶፍትዌር ተፈጻሚ ኮድ ወደ የChrome ሂደቶች እንዲያስገባ አይፈቀድለትም።</translation> <translation id="4617338332148204752">በ<ph name="PRODUCT_FRAME_NAME" /> ውስጥ የዲበ መለያ ማረጋገጥን ይዝለሉ</translation> <translation id="4625915093043961294">የተፈቀደላቸው የቅጥያ ጭነቶችን ያዋቅሩ</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" /> የተዘረዘረው የይዘት አይነቶችን እንዲይዛቸው ይፍቀዱ</translation> +<translation id="4632566332417930481">በድርጅት መመሪያ በተጫኑ ቅጥያዎች ላይ የገንቢ መሣሪያዎችን አጠቃቀም አትፍቀድ፣ የገንቢ መሣሪያዎችን አጠቃቀም በሌላ አገባቦች ላይ ፍቀድ</translation> <translation id="4633786464238689684">የላይኛው ረድፍ ቁልፎች በነባሪነት የተግባር ቁልፍ ያደርጋቸዋል። ይህ መመሪያ ወደ እውነት ከተዋቀረ የቁልፍ ሰሌዳው ላይኛው ረድፍ ቁልፎች በነባሪነት የተግባር ቁልፍ ትዕዛዞችን ነው የሚፈጥሩት። ባህሪያቸውን ተመልሶ ወደ የማህደረመረጃ ቁልፎች ለማድህር የፍለጋ ቁልፉ መጫን አለበት። @@ -1532,10 +1537,14 @@ ካልተዋቀረ ተጠቃሚው ያስመጣ እንደሆነ ወይም ማስመጣት በራስ-ሰር እንዲከናወን ሊጠየቅ ይችላል።</translation> <translation id="5423197884968724595">የAndroid WebView ገደብ ስም፦</translation> +<translation id="5442026853063570579">ይህ መመሪያ እንዲሁም ማን የAndroid ገንቢ አማራጮች መዳረሻ እንዳለው ይቆጣጠራል። ይህን መመሪያ ወደ 'DeveloperToolsDisallowed' (እሴት 2) ካዋቀሩት ተጠቃሚዎች የገንቢ አማራጮችን መድረስ አይችሉም። ይህን መመሪያ ወደ ሌላ እሴት ካዋቀሩት ወይም እንዳልተዋቀረ ከተዉት ተጠቃሚዎች በAndroid ቅንብሮች መተግበሪያው ውስጥ ያለውን የግንብ ቁጥሩን ሰባት ጊዜ መታ በማድረግ የገንቢ አማራጮችን መድረስ ይችላሉ።</translation> <translation id="5447306928176905178">የማህደረ ትውስታ መረጃ (JS ቁልል መጠን) ለገጽ ሪፖርት ማድረግን ያንቁ (የተቋረጠ)</translation> <translation id="5457065417344056871">በአሳሽ ውስጥ የእንግዳ ሁነታን ያንቁ</translation> <translation id="5457924070961220141"><ph name="PRODUCT_FRAME_NAME" /> ሲጫን ነባሪውን የኤች ቲ ኤም ኤል ማሳያውን እንዲያዋቅሩ ያስችልዎታል። ይህ መመሪያ እንዳልተዋቀረ ሲተው ስራ ላይ የሚውለው ነባሪ ቅንብር አስተናጋጅ አሳሹ ማሳየቱን እንዲፈጽም መፍቀድ ነው፣ ግን ከፈለጉም ይህንን ሽረው <ph name="PRODUCT_FRAME_NAME" /> በነባሪነት የኤች ቲ ኤም ኤል ገጾችን እንዲያሳይ ማድረግ ይችላሉ።</translation> +<translation id="5459155981813668716">አካባቢ ቋንቋዎችን <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" /> በዚህ መመሪያ ወደ ተጠቀሰው የመጀመሪያው የሚሠራ እሴት ወይም ተመላሽ የአካባቢ ቋንቋ (አሁን ላይ en-US) ይቀየራል፣ ይህም የሚሆነው ይህ መመሪያ የማይሠሩ ግቤቶች ካሉት ብቻ ነው።</translation> <translation id="5464816904705580310">የሚቀናበሩ ተጠቃሚዎች ቅንብሮችን ያዋቅሩ።</translation> <translation id="546726650689747237">በሶኬት ኃይል ላይ ሲሆን የማያ ገጽ መፍዘዝ መዘግየት</translation> <translation id="5469484020713359236">ኩኪዎች እንዲያዋቅሩ የተፈቀደላቸው የዩ አር ኤል ስርዓተ ጥለቶች ዝርዝር እንዲያስቀምጡ ያስችልዎታል። @@ -1657,7 +1666,6 @@ ይህ መመሪያ እንዳልተዋቀረ ከተተወ የመግቢያ ገጹ መጀመሪያ ላይ ሲታይ የሚነገር ግብረመልስ ይሰናከላል። ተጠቃሚዎች በማንኛውም ጊዜ የሚነገር ግብረመልስን ሊያነቁ ወይም ሊያሰናክሉ ይችላሉ፣ እና በመግቢያ ገጹ ላይ ያለው ሁኔታው በተጠቃሚዎች መካከል ቋሚ ነው።</translation> <translation id="5868414965372171132">የተጠቃሚ-ደረጃ የአውታረ መረብ ውቅር</translation> -<translation id="588135807064822874">ለመፈለግ መንካትን ያንቁ</translation> <translation id="5883015257301027298">ነባሪ የኩኪዎች ቅንብር</translation> <translation id="5887414688706570295">በሩቅ መዳረሻ አስተናጋጆች ስራ ላይ የሚውል የTalkGadget ቅድመ-ቅጥያውን የሚያዋቅርና ተጠቃሚዎች እንዳይቀይሩት የሚያግድ ነው። @@ -1761,6 +1769,7 @@ <translation id="6036523166753287175">በኬላ ውስጥ ማለፍን ከሩቅ መዳረሻ አስተናጅ ያንቁ</translation> <translation id="6070667616071269965">የመሣሪያ መግቢያ ገጽ የቁልፍ ሰሌዳ አቀማመጦች</translation> <translation id="6074963268421707432">ማናቸውንም ጣቢያዎች የዴስክቶፕ ማስታወቂያዎችን እንዲያሳዩ አትፍቀድ</translation> +<translation id="6074964551275531965">ለዝማኔ ማሳወቂያዎች ክፍለ ጊዜን ያዋቅሩ</translation> <translation id="6076099373507468537">በቀጥታ በድር መተግበሪያ ውስጥ በchrome.usb ኤፒአዩ ውስጥ መጠቀም እንዲቻሉ ከአውራ ከዋኝ ነጂያቸው እንዲላቀቁ የሚፈቀድላቸው የዩኤስቢ መሣሪያዎች ዝርዝር ይገልጻል። ግቤቶች የተወሰነ ሃርድዌር የሚለዩ የዩኤስቢ አቅራቢ ለዪ እና የምርት ለዪ ጥምሮች ናቸው። ይህ መመሪያ ካልተዋቀረ መላቀቅ የሚችሉ የዩኤስቢ መሣሪያዎች ዝርዝር ባዶ ነው።</translation> @@ -1843,6 +1852,11 @@ ይህን ቅንብር ካነቁ ወይም እሴት ካላስቀመጡ ራስ-ሙላ በተጠቃሚው ቁጥጥር ስር እንደሆነ ይቀራል። ይሄ የራስ-ሙላ መገለጫዎችን እንዲያዋቅሩ እና እንደ ምርጫቸው ራስ-ሙላን እንዲያበሩ ወይም እንዲያጠፉ ያስችላቸዋል።</translation> <translation id="6394350458541421998">ይህ መመሪያ ከ<ph name="PRODUCT_OS_NAME" /> ስሪት 29 ጀምሮ ስራ አቁሟል። እባክዎ ይልቁንስ የ PresentationScreenDimDelayScale መመሪያውን ይጠቀሙ።</translation> <translation id="6401669939808766804">ተጠቃሚውን ያስወጡት</translation> +<translation id="6412477120967771054">ወደ ሐሰት ከተቀናበረ Chrome ማጽጃ ከማይፈለግ ሶፍትዌር የሥርዓት ቅኝት እና ማጽዳት ሥራዎችን እንዳይሠራ ይከላከለዋል። Chrome ማጽጃን ከchrome://settings/cleanup ላይ በእጅ ማስጀመር ተሰናክሏል። + + ወደ እውነት ከተቀናበረ ወይም ሳይቀናበር ከተተወ፣ Chrome ማጽጃ በተወሰነ ክፍለ ጊዜ ልዩነት ሥርዓቱን ላልተፈለገ ሶፍትዌር ይቃኘዋል እንዲሁም ምንም ዓይነት ያልተፈለገ ሶፍትዌር ቢገኝ፣ ተጠቃሚውን ሊያስወግዱት ይፈልጉ እንደሆነ ይጠይቃቸዋል። Chrome ማጽጃን ከchrome://settings ላይ በእጅ ማስጀመር ነቅቷል። + + ይህ መመሪያ ወደ <ph name="MS_AD_NAME" /> ጎራ ባልተቀላቀሉ በWindows ቅጽበቶች ላይ አይገኝም።</translation> <translation id="6417861582779909667">ኩኪዎችን እንዲያዘጋጁ ያልተፈቀደላቸው ጣቢያዎችን የሚገልጹ የዩ አር ኤል ስርዓተ ጥለቶችን እንዲያዘጋጁ ያስችልዎታል። ይህ መመሪያ እንዳልተዋቀረ ከተተወ፣ ከተዋቀረ «DefaultCookiesSetting»፣ አለበለዚያ ደግሞ የተጠቃሚው የግል ውቅር ሁለንተናዊው ነባሪ እሴት ለሁሉም ጣቢያዎች ስራ ላይ ይውላል።</translation> @@ -1865,6 +1879,13 @@ የትኛዎቹ ድር ጣቢያዎች Flashን እንዲያሄዱ እንደተፈቀደላቸው ለመቆጣጠር የ«DefaultPluginsSetting»፣ «PluginsAllowedForUrls» እና «PluginsBlockedForUrls» መመሪያዎችን ይመልከቱ። ይህ ቅንብር ከተሰናከለ ወይም ካልተዋቀረ ከሌሎች ምንጮች የመጣ የFlash ይዘት ወይም አነስተኛ ይዘት ሊታገዱ ይችላሉ።</translation> +<translation id="6535639183431116351">ይህ መመሪያ በM68 ተቋርጧል፣ እባክዎ በምትኩ DeveloperToolsAvailability ይጠቀሙ። + + የገንቢ መሣሪያዎቹን እና የጃቫስክሪፕት መሥሪያውን ያሰናክላል። + + ይህን ቅንብር ካነቁ የገንቢ መሣሪያዎች ሊደረሰባቸው አይችልም፣ እና የድር ጣቢያ ክፍሎች ከአሁን በኋላ ሊመረመሩ አይችሉም። የየገንቢ መሣሪያውን ወይም የጃቫስክሪፕት መሥሪያውን የሚከፍቱ ማንኛውም የቁልፍ ሰሌዳ አቋረጮች እና ምናሌ ወይም የአግባበ ምናሌ ግቤቶች ይሰናከላሉ። + + ይህን አማራጭ እንዲሰናከል ማዋቀር ወይም እንዳልተዋቀረ መተው የገንቢ መሣሪያዎችን እና የጃቫስክሪፕት መሥሪያን ተጠቃሚው እንዲጠቀምባቸው ያደርጋቸዋል።</translation> <translation id="653608967792832033">በባትሪ ኃይል ላይ ሲሆን ማያ ገጹ ከመቆለፉ በፊት ተጠቃሚ ግብዓት ሳያስገባ የሚቆይበት ጊዜ ይገልጻል። ይህ መመሪያ ከዜሮ በላይ ወደሆነ ዋጋ ሲዋቀር <ph name="PRODUCT_OS_NAME" /> ማያ ገጹን ከመቆለፉ በፊት ተጠቃሚው ስራ ፈትቶ መቆየት ያለበት ጊዜ ይገልጻል። @@ -1930,11 +1951,6 @@ <translation id="6689792153960219308">የሃርድዌር ሁኔታን ሪፓርት ያድርጉ</translation> <translation id="6698071416141001300">የይለፍ ቃል ጥበቃ በስጋት ላይ የሆነ መለያ መጠቆሚያ በይለፍ ቃል ዳግም መጠቀም ይቀሰቀሳል</translation> <translation id="6699880231565102694">ባለሁለት ክፍል ማረጋገጫ ለሩቅ መዳረሻ አስተናጋጆችን ያንቁ</translation> -<translation id="6702257826895463228">ጣቢያዎች ብቅ-ባዮችን በአንድ ላይ እንዲያስሱ እና እንዲከፍቱ ያስችላል። - - ሙሉ ገለጻ ለማግኘት https://www.chromestatus.com/features/5675755719622656ን ይመልከቱ። - ይህ መመሪያ ከነቃ ጣቢያዎች አዲስ መስኮቶችን/ትሮችን በአንድ ላይ እንዲያስሱ እና እንዲከፍቱ ይፈቀድላቸዋል። - ይህ መመሪያ ከተሰናከለ ወይም ካልተዋቀረ ጥኣቢያዎች አዲስ መስኮት/ትር በአንድ ላይ እንዳያስሱ እና እንዳይከፍቱ ይከለከላሉ።</translation> <translation id="6724842112053619797">ይህን ቅንብር ካነቁት እንደ ዕልባቶች፣ የራስ-ሙላ ውሂብ፣ የይለፍ ቃላት፣ ወዘተ ያሉ በ<ph name="PRODUCT_NAME" /> መገለጫዎች ውስጥ የተከማቹት ቅንብሮች እንዲሁም በተንዣባቢ የተጠቃሚ መገለጫ አቃፊ ውስጥ ባለ የተከማቸ ፋይል ወይም በ<ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> መመሪያ በኩል በአስተዳዳሪው በተገለጸ ቦታ ላይ ይጻፋሉ። ይህን መመሪያ ማንቃት የደመና ስምረትን ያሰናከላል። ይህ መመሪያ ከተሰናከለ ወይም ካልተዋቀረ መደበኛዎቹ አካባቢያዊ መገለጫዎች ብቻ ናቸው ጥቅም ላይ የሚውሉት። @@ -2290,6 +2306,7 @@ የጥንቃቄ አሰሳ ላይ ተጨማሪ መረጃ ለማግኘት https://developers.google.com/safe-browsingን ይመልከቱ።</translation> <translation id="7643883929273267746">በ<ph name="PRODUCT_NAME" /> ውስጥ የሚታዩ መለያዎችን ይገድቡ</translation> <translation id="7651739109954974365">የውሂብ ዝውውር ለዚህ መሣሪያ መንቃት ካለበት ይወስናል። ወደ እውነት ከተዋቀረ የውሂብ ዝውውር ይፈቀዳል። እንዳልተዋቀረ ከተተወ ወይም ወደ ሐሰት ከተዋቀረ የውሂብ ዝውውር አይገኝም።</translation> +<translation id="7673194325208122247">የጊዜ ክፍለ ጊዜ (ሚሊሰከንዶች)</translation> <translation id="7683777542468165012">ተለዋዋጭ የመምሪያ እድሳት</translation> <translation id="7694807474048279351">የ<ph name="PRODUCT_OS_NAME" /> ዝማኔ ከተተገበረ በኋላ ራስ-ሰር ዳግም መጀመር መርሐግብር ያስይዙ። @@ -2423,6 +2440,13 @@ ይህ ቅንብር ከተሰናከለና ወጪ የUDP ግንኙነቶች በኬላው ከተጣሩ ይህ ማሽን በአውታረ መረብ ውስጥ ካሉ አስተናጋጅ ማሽኖች ብቻ ነው ሊገናኝ የሚችለው።</translation> <translation id="7976157349247117979">የ<ph name="PRODUCT_NAME" /> መድረሻው</translation> +<translation id="7977445800390854860">ካልተዋቀረ፣ Chrome ማጽጃ የማይፈለግ ሶፍትዌርን ፈልጎ ያገኛል፣ ስለ ቅኝቱ ዲበውሂብን ወደ Google በSafeBrowsingExtendedReportingEnabled በተቀመጠው መመሪያ መሠረት ሪፖርት ያደርጋል። Chrome ማጽጃ በመቀጠል ተጠቃሚውን የማይፈልገውን ሶፍትዌር ማጽዳት ይፈልጉ እንደሆነ ይጠይቃቸዋል። ተጠቃሚው የማጽጃ ውጤቶቹን ከGoogle ጋር ወደፊት ከሚኖሩ የማይፈልጉ የሶፍትዌር ፈልጎ ማግኘት ጋር እንዲያግዝ መጋራት ይፈልጉ እንደሆነ መመረጥ ይችላሉ። እነዚህ ውጤቶች ፋይል ዲበውሂብን እና የምዝገባ ቁልፎችን በChrome Privacy Whitepaper ላይ በተብራራው መሠረት በውስጣቸው ይይዛሉ። + + ወደ ሐሰት ከተቀናበረ፣ Chrome ማጽጃ የማይፈለግ ሶፍትዌር መኖሩን ፈልጎ ሲደርስበት ስለቅኝቱ ዲበውሂብ ወደ Google፣ ማናቸውንም በSafeBrowsingExtendedReportingEnabled የተቀመጡ መመሪያዎችን በመሻር ሪፖርት አያደርግም። Chrome ማጽጃ በመቀጠል ተጠቃሚውን የማይፈልገውን ሶፍትዌር ማጽዳት ይፈልጉ እንደሆነ ይጠይቃቸዋል። የማጽጃ ውጤቶቹ ወደ Google ሪፖርት አይደረጉም እና ተጠቃሚው ይህን እንዲያደርጉ ምርጫው አይኖራቸውም። + + ወደ እውነት ከተቀናበረ፣ Chrome ማጽጃ የማይፈለግ ሶፍትዌር መኖሩን ፈልጎ ከደረሰበት፣ ስለ ቅኝቱ ዲበውሂብ ወደ Google በSafeBrowsingExtendedReportingEnabled በተቀመጠው መመሪያ መሠረት ሪፖርት ያደርጋል። Chrome ማጽጃ በመቀጠል ተጠቃሚውን የማይፈልገውን ሶፍትዌር ማጽዳት ይፈልጉ እንደሆነ ይጠይቃቸዋል። የማጽጃ ውጤቶቹ ወደ Google ሪፖርት ይደረጋሉ እና ተጠቃሚው ለመከላከል የሚያስችል ምርጫ አይኖራቸውም። + + ይህ መመሪያ ወደ <ph name="MS_AD_NAME" /> ጎራ ባልተቀላቀሉ በWindows ቅጽበቶች ላይ አይገኝም።</translation> <translation id="7978060394348264922"> IsolateOriginsን እርስዎ ሊያገልሏቸው በሚፈልጓቸው የጣቢያዎች ዝርዝር ላይ በመጠቀም ከሁለቱም ዓለም፣ የማግለል እና ለተጠቃሚዎች የተወሰነ ተጽዕኖ፣ ምርጡን ለማግኘት የIsolateOrigins መመሪያውን መመልከቱ ከግምት ውስጥ ማስገባቱ ሳይሻል አይቀርም። ይህ ቅንብር SitePerProcess ሁሉንም ጣቢያዎች ያገልላል። መመሪያው ከነቃ እያንዳንዱ ጣቢያ በራሱ ሂደት ውስጥ ነው የሚያሄደው። @@ -2543,6 +2567,7 @@ <translation id="8300455783946254851">ወደ እውነት ሲዋቀር Google Drive በተንቀሳቃሽ ስልክ ግንኙነት ላይ በ<ph name="PRODUCT_OS_NAME" /> ፋይሎች መተግበሪያው ውስጥ መመሳሰልን ያሰናክላል። በዚህ አጋጣሚ ውሂብ ከGoogle Drive ጋር የሚመሳሰለው በWiFi ወይም ኤተርኔት ላይ ብቻ ሲገናኝ ነው። ካልተዋቀረ ወይም ወደ ሐሰት ከተዋቀረ ተጠቃሚዎች ፋይሎችን በተንቀሳቃሽ ስልክ ግንኙነቶች ላይ ወደ Google Drive ማስተላለፍ ይችላሉ።</translation> +<translation id="8300992833374611099">የገንቢ መሣሪያዎች የት ጥቅም ላይ ሊውሉ እንደሚችሉ ይቆጣጠሩ</translation> <translation id="8312129124898414409">ድር ጣቢያዎች ቁልፍ ማመንጨትን እንዲጠቀሙ ይፈቀድላቸው ወይም አይፈቀድላቸው እንደሆነ እንዲያዋቅሩ ያስችለዎታል። ቁልፍ ማመንጨትን ለሁሉም ጣቢያዎች ሊፈቀድ ወይም ሊከለከል ይችላል። ይህ መመሪያ እንዳልተዋቀረ ከተተወ «BlockKeygen» ጥቅም ላይ ይውላል፣ እና ተጠቃሚው ሊቀይረው የሚችል ይሆናል።</translation> @@ -2776,6 +2801,11 @@ <translation id="9035964157729712237">ከተከለከሉት ዝርዝር ነፃ የሚደረጉ የቅጥያ መታወቂያዎች</translation> <translation id="9042911395677044526">የአውታረ መረብ ውቅር መግፋት በእያንዳንዱ ተጠቃሚ በ<ph name="PRODUCT_OS_NAME" /> መሣሪያ ላይ እንዲተገበር ያስችላል። የአውታረ መረቡ ውቅር በ<ph name="ONC_SPEC_URL" /> ላይ እንደተብራራው በክፍት አውታረ መረብ ውቅር ቅርጸት የተገለጸ የJSON ቅርጸት ህብረቁምፊ ነው</translation> <translation id="9084985621503260744">የቪዲዮ እንቅስቃሴ የኃይል አስተዳደሩ ላይ ተጽዕኖ ይኖርበት ወይም አይኖርበት ይገልጻል</translation> +<translation id="9085839450090699752">ተጠቃሚዎች <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 ሚሊሰከንዶች (አንድ ሳምንት) ለአሳሾች ጥቅም ላይ ይውላሉ።</translation> <translation id="9088433379343318874">ክትትል የሚደረግበት የተጠቃሚ ይዘት አቅራቢን አንቃ</translation> <translation id="9088444059179765143">የራስ-ሰር ሰዓት ሰቅ ማወቂያ ስልቱን ያዋቅሩ</translation> <translation id="9096086085182305205">የተፈቀደላቸው የማረጋገጫ አገልጋይ ዝርዝር</translation>
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb index f19865b4..a06c372 100644 --- a/components/policy/resources/policy_templates_ar.xtb +++ b/components/policy/resources/policy_templates_ar.xtb
@@ -645,13 +645,6 @@ في حال استخدام هذه السياسة، لا تُتاح طابعات للمستخدم إلا تلك التي تحمل أرقام تعريف مُطابقة للقيم المُدرجة في هذه السياسة. ويجب أن تتوافق أرقام التعريف مع الحقل "id" أو "guid" في الملف المُحدَّد في <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">تفعيل إتاحة ميزة البحث باللمس في عرض محتوى <ph name="PRODUCT_NAME" />. - - إذا مكّنت هذا الإعداد، فستتوفر ميزة البحث باللمس للمستخدم ويمكنه اختيار تشغيل أو إيقاف هذه الميزة. - - إذا أوقفت هذا الإعداد، فسيتم بالتالي إيقاف ميزة البحث باللمس نهائيًا. - - إذا تركت هذه السياسة غير معينة، فستكون وكأنه تم تفعيلها، اطلّع على الوصف المذكور أعلاه.</translation> <translation id="285480231336205327">تفعيل وضع التباين العالي</translation> <translation id="2854919890879212089">يؤدي إعداد هذه السياسة إلى استخدام <ph name="PRODUCT_NAME" /> للطابعة التلقائية للنظام باعتبارها الخيار التلقائي في معاينة الطباعة بدلاً من الطابعة المستخدمة مؤخرًا. @@ -1564,7 +1557,6 @@ في حالة ترك هذه السياسة بدون تعيين، سيتم إيقاف التعليقات المنطوقة عند ظهور شاشة تسجيل الدخول للمرة الأولى. ويُمكن للمستخدمين تفعيل التعليقات المنطوقة أو إيقافها في أي وقت وستستمر الحالة في شاشة تسجيل الدخول بين المستخدمين.</translation> <translation id="5868414965372171132">تهيئة الشبكة على مستوى المستخدم</translation> -<translation id="588135807064822874">تفعيل ميزة البحث باللمس</translation> <translation id="5883015257301027298">الإعدادات التلقائية لملفات تعريف الارتباط</translation> <translation id="5887414688706570295">لتهيئة بادئة TalkGadget التي سيتم استخدامها بواسطة عمليات استضافة الدخول عن بُعد ومنع المستخدمين من تغييرها. @@ -1811,11 +1803,6 @@ <translation id="6689792153960219308">الإبلاغ عن حالة الأجهزة</translation> <translation id="6698071416141001300">تم تشغيل الإبلاغ عن الحسابات المعرضة للخطر لحماية كلمة المرور من خلال إعادة استخدام كلمة المرور.</translation> <translation id="6699880231565102694">تفعيل المصادقة الثنائية لعمليات استضافة الدخول عن بُعد</translation> -<translation id="6702257826895463228">تسمح هذه السياسة للمواقع بالانتقال وفتح النوافذ المنبثقة في آنٍ واحد. - - للحصول على شرح كامل، يمكنك الاطِّلاع على https://www.chromestatus.com/features/5675755719622656. - في حال تفعيل هذه السياسة، سيتم السماح للمواقع بالانتقال وفتح علامات التبويب/النوافذ الجديدة في آنٍ واحد. - في حال إيقاف هذه السياسة أو عدم تعيينها، لن يتم السماح للمواقع بالانتقال وفتح علامة التبويب/النوافذ الجديدة في آنٍ واحد.</translation> <translation id="6724842112053619797">في حالة تفعيل هذا الإعداد، سيتم أيضًا تسجيل الإعدادات المخزّنة في الملفات الشخصية في <ph name="PRODUCT_NAME" />، مثل الإشارات المرجعية، وبيانات الملء التلقائي، وكلمات المرور وغيرها، في ملف مخزّن في مجلد الملف الشخصي للتجوال التابع للمستخدم أو في موقع تم تحديده من قِبل المشرف من خلال سياسة <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. ويعمل تفعيل هذه السياسة على إيقاف المزامنة عبر السحاب. في حالة إيقاف هذه السياسة أو تركها بدون تعيين، سيتم استخدام الملفات الشخصية المحلية العادية فقط.
diff --git a/components/policy/resources/policy_templates_bg.xtb b/components/policy/resources/policy_templates_bg.xtb index de25637..986e52a9 100644 --- a/components/policy/resources/policy_templates_bg.xtb +++ b/components/policy/resources/policy_templates_bg.xtb
@@ -27,6 +27,7 @@ Ако това правило е зададено, екранът за вход винаги ще се показва на локала, посочен като първа стойност в правилото (то се дефинира като списък за съвместимост с бъдещи версии). В случай че то не е зададено или е конфигурирано като празен списък, ще се използва локалът от последната потребителска сесия. При задаване на невалидна стойност в правилото екранът за вход ще се показва на резервния локал (понастоящем en-US).</translation> <translation id="1062011392452772310">Активиране на отдалечено удостоверяване за устройството</translation> <translation id="1062407476771304334">Замяна</translation> +<translation id="1079801999187584280">Забраняване на използването на инструментите за програмисти</translation> <translation id="109166998561583554">Механизъм, контролиращ регистрирането на рискове за профила от услугата за защита на паролата</translation> <translation id="1093082332347834239">Ако настройката е активирана, хостът за отдалечено съдействие ще се изпълнява в процес с разрешения <ph name="UIACCESS_PERMISSION_NAME" />. Това ще позволи на отдалечените потребители да взаимодействат с прозорци с администраторски права на локалния работен плот на потребителя. @@ -75,6 +76,7 @@ Коефициентът на промяна трябва да е 100% или по-голям.</translation> <translation id="131353325527891113">Показване на потребителските имена на екрана за вход</translation> +<translation id="1325295456374328159">Конфигуриране на разрешените локали за потребителските сесии</translation> <translation id="1327466551276625742">Активиране на подканата за конфигуриране на мрежа, когато устройството е офлайн</translation> <translation id="1330145147221172764">Активиране на екранната клавиатура</translation> <translation id="13356285923490863">Име на правилото</translation> @@ -87,6 +89,12 @@ <translation id="1387596372902085462">Дали старата инфраструктура на Symantec Corporation за удостоверяване с публичен ключ да бъде смятана за надеждна</translation> <translation id="1393485621820363363">Активирани корпоративни принтери за устройствата</translation> <translation id="1397855852561539316">URL адрес за предложения от търсещата машина по подразбиране</translation> +<translation id="1424081297104898791">Дава възможност да контролирате къде да е разрешено използването на инструментите за програмисти. + +Ако за това правило е зададено DeveloperToolsDisallowedForForceInstalledExtensions (стойност 0, която е стандартна за корпоративни потребители), инструментите за програмисти и конзолата на JavaScript ще бъдат достъпни, но няма да могат да се използват в контекста на разширения, инсталирани чрез корпоративно правило. +При DeveloperToolsAllowed (стойност 1, която е стандартна за неуправлявани потребители) инструментите за програмисти и конзолата на JavaScript ще бъдат достъпни и използваеми във всеки контекст, включително във връзка с разширения, инсталирани чрез корпоративно правило. +Ако е зададено DeveloperToolsDisallowed (стойност 2), инструментите за програмисти няма да бъдат достъпни и проверката на елементи на уебсайтове няма да е възможна. Всички клавишни комбинации и записи в менюта или в контекстни менюта, служещи за отваряне на тези инструменти или конзолата на JavaScript, ще бъдат деактивирани. +Ако предишното правило DeveloperToolsDisabled е true, стойността на настоящото се пренебрегва и инструментите за програмисти са деактивирани.</translation> <translation id="1426410128494586442">Да</translation> <translation id="1427655258943162134">Адрес или URL адрес на прокси сървъра</translation> <translation id="1435659902881071157">Конфигурация на мрежата на ниво устройство</translation> @@ -196,6 +204,7 @@ <translation id="1803646570632580723">Списък с фиксирани приложения, които да се показват в стартовия панел</translation> <translation id="1808715480127969042">Блокиране на „бисквитките“ на тези сайтове</translation> <translation id="1810261428246410396">Разрешаване на използването на незабавен тетъринг</translation> +<translation id="1826282708349731794">Контролиране на начина, по който инструментът за почистване на Chrome съобщава данни на Google</translation> <translation id="1827523283178827583">Използване на фиксирани прокси сървъри</translation> <translation id="1843117931376765605">Честота на опресняване за потребителските правила</translation> <translation id="1844620919405873871">Служи за конфигуриране на правилата, свързани с функцията за бързо отключване.</translation> @@ -586,6 +595,7 @@ Това правило няма ефект върху възможността на потребителите да конфигурират принтери на отделни устройства. То е предназначено да допълва конфигурациите на принтери от отделни потребители. </translation> <translation id="2633084400146331575">Да се активира обратната връзка с говор</translation> +<translation id="2640843331263301324">Активиране на инструмента за почистване на Chrome под Windows</translation> <translation id="2646290749315461919">Позволява да зададете дали на уебсайтовете е разрешено да проследяват физическото местоположение на потребителите. Тази опция може да бъде разрешена или отказана по подразбиране или потребителят може да бъде питан всеки път, когато уебсайт изисква физическото местоположение. Ако това правило е оставено незададено, ще се използва „AskGeolocation“ и потребителят ще може да го променя.</translation> <translation id="2647069081229792812">Активиране или деактивиране на редактирането на отметки</translation> @@ -650,13 +660,6 @@ Когато то се използва, потребителят ще има достъп само до принтерите, чиито идентификатори съответстват на стойностите в правилото. Идентификаторите трябва да отговарят на стойностите за полетата id или guid във файла, посочен в <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Активира наличието на функцията за търсене с докосване в изгледа на <ph name="PRODUCT_NAME" /> за съдържание. - -Ако активирате тази настройка, функцията ще е налице за потребителя и той ще може да я включва и изключва. - -В случай че деактивирате настройката, търсенето с докосване ще се изключи изцяло. - -Незадаването на правилото е равносилно на активирането му (вижте описанието по-горе).</translation> <translation id="285480231336205327">Да се активира режимът на висок контраст</translation> <translation id="2854919890879212089">Налага като стандартна опция във визуализацията за печат на <ph name="PRODUCT_NAME" /> да се ползва системният принтер по подразбиране вместо последно използвания. @@ -1213,12 +1216,14 @@ <translation id="4554651132977135445">Режим за обработване на правилата за потребители от GPO на ниво устройство</translation> <translation id="4555850956567117258">Активиране на отдалеченото удостоверяване за потребителя</translation> <translation id="4557134566541205630">URL адрес на новия раздел за търсещата машина по подразбиране</translation> +<translation id="4567137030726189378">Разрешаване на използването на инструментите за програмисти</translation> <translation id="4600786265870346112">Активиране на голям курсор</translation> <translation id="4604931264910482931">Конфигуриране на черния списък за обмен на съобщения с приложения с директно изпълнение</translation> <translation id="4613508646038788144">Ако зададете false за правилото, софтуерът на трети страни ще може да инжектира изпълним код в процесите на Chrome. Това няма да е възможно, в случай че правилото не е зададено или е true.</translation> <translation id="4617338332148204752">Пропускане на проверката на meta маркерите в <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Конфигуриране на белия списък за инсталиране на разширения</translation> <translation id="4632343302005518762">Разрешаване на <ph name="PRODUCT_FRAME_NAME" /> да обработва посочените типове съдържание</translation> +<translation id="4632566332417930481">Забраняване на използването на инструментите за програмисти в разширения, инсталирани чрез корпоративно правило, и разрешаване на използването им в друг контекст</translation> <translation id="4633786464238689684">Променя стандартното поведение на клавишите от най-горния ред така, че да работят като функционални. Ако за това правило е зададено true, клавишите от най-горния ред на клавиатурата ще служат по подразбиране за функционални команди. За да действат отново като мултимедийни клавиши, трябва да се натисне клавишът „търсене“. @@ -1469,9 +1474,13 @@ Ако за това правило е съставен списък с идентификатори за методи на въвеждане, посочените методи ще са налице на екрана за вход и първият от тях ще бъде избран предварително. Докато фокусът на екрана за вход е поставен върху потребителски модул, последно използваният метод на потребителя ще се показва заедно с посочените в правилото. Ако то не е зададено, методите на въвеждане на екрана за вход ще се извличат от използвания за екрана локал. Стойностите, които не са валидни идентификатори за метод на въвеждане, ще се пренебрегват.</translation> <translation id="5423001109873148185">Ако е активирано, това правило принудително импортира търсещите машини от текущия браузър по подразбиране. В такъв случай то оказва влияние и върху диалоговия прозорец за импортиране. Ако правилото е деактивирано, основната търсеща машина не се импортира. В случай че не е зададено, потребителят може да бъде попитан дали операцията да се извърши, или импортирането може да стане автоматично.</translation> <translation id="5423197884968724595">Име на ограничението за WebView за Android:</translation> +<translation id="5442026853063570579">Това правило контролира и достъпа до опциите за програмисти под Android. Ако зададете DeveloperToolsDisallowed (стойност 2), потребителите няма да имат достъп до тях. В случай че посочите друга стойност за правилото или не го конфигурирате, потребителите ще могат да използват опциите за програмисти, като докоснат седем пъти номера на компилацията в приложението Настройки на Android.</translation> <translation id="5447306928176905178">Активиране на отчитането на информация за паметта (размера на свободната памет за JS) към страницата (оттеглено)</translation> <translation id="5457065417344056871">Активиране на режима на гост в браузъра</translation> <translation id="5457924070961220141">Позволява да конфигурирате стандартната програма за изобразяване на HTML, когато продуктът <ph name="PRODUCT_FRAME_NAME" /> е инсталиран. Настройката по подразбиране, използвана, когато това правило е оставено незададено, е да се разреши на браузъра на хоста да извършва изобразяването, но можете да я отмените по свой избор и да зададете на <ph name="PRODUCT_FRAME_NAME" /> да изпълнява тази функция по подразбиране.</translation> +<translation id="5459155981813668716">Конфигурира локалите, на които да е разрешено показването на <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" /> ще превключи към първата валидна стойност, посочена в правилото, или към резервен локал (който понастоящем е en-US), ако то съдържа само невалидни записи.</translation> <translation id="5464816904705580310">Конфигурирайте настройките за управлявани потребители.</translation> <translation id="546726650689747237">Забавяне преди затъмняване на екрана при работа на променлив ток</translation> <translation id="5469484020713359236">Позволява да зададете списък с образци за URL адреси, посочващи сайтове, на които е разрешено да задават „бисквитки“. Ако това правило е оставено незададено, за всички сайтове ще се използва глобалната стандартна стойност от правилото „DefaultCookiesSetting“, ако е зададено, или в противен случай – личната конфигурация на потребителя.</translation> @@ -1585,7 +1594,6 @@ Ако правилото не бъде зададено, обратната връзка с говор е деактивирана при първото показване на екрана за вход. Потребителите могат да я активират или деактивират по всяко време и състоянието й в екрана за вход се запазва между тях.</translation> <translation id="5868414965372171132">Конфигурация на мрежата на ниво потребител</translation> -<translation id="588135807064822874">Активиране на търсенето с докосване</translation> <translation id="5883015257301027298">Настройка по подразбиране за „бисквитките“</translation> <translation id="5887414688706570295">Конфигурира префикса за притурката за Talk, който ще се използва от хостовете за отдалечен достъп, и не разрешава на потребителите да го променят. @@ -1689,6 +1697,7 @@ <translation id="6036523166753287175">Активиране на преминаването през защитни стени от хоста за отдалечен достъп</translation> <translation id="6070667616071269965">Клавиатурни подредби на екрана за вход в устройството</translation> <translation id="6074963268421707432">Забраняване на сайтовете да показват известия на работния плот</translation> +<translation id="6074964551275531965">Задаване на периода от време за известията за актуализиране</translation> <translation id="6076099373507468537">Определя списъка с USB устройства, за които е разрешено да бъдат отделяни от драйвера на ядрото, за да се използват директно в уеб приложения чрез приложния програмен интерфейс (API) chrome.usb. Записите представляват двойки от идентификатор на производителя и идентификатор на продукта за USB, чрез които се разпознава конкретният хардуер. Ако това правило не е конфигурирано, списъкът с отделящи се USB устройства ще се счита за празен.</translation> @@ -1761,6 +1770,11 @@ <translation id="6392973646875039351">Активира функцията на <ph name="PRODUCT_NAME" /> за автоматично попълване и позволява на потребителите да попълват автоматично уеб формуляри чрез вече съхранени данни, като адрес или информация за кредитни карти. В случай че деактивирате тази настройка, потребителите няма да имат достъп до автоматичното попълване. Ако я активирате или не зададете стойност, функцията ще остане под контрола на потребителите. Това ще им позволи да конфигурират потребителски профили за автоматично довършване и да включват и изключват функцията по свое усмотрение.</translation> <translation id="6394350458541421998">Това правило е оттеглено от версия 29 на <ph name="PRODUCT_OS_NAME" />. Моля, вместо това използвайте правилото PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Излизане на потребителя</translation> +<translation id="6412477120967771054">При false инструментът за почистване на Chrome няма да сканира системата за нежелан софтуер и да го премахва от нея. Ръчното задействане на инструмента от chrome://settings/cleanup ще бъде деактивирано. + +Ако правилото е true или не е зададено, инструментът за почистване на Chrome периодично ще сканира системата за нежелан софтуер и при намиране на такъв ще пита потребителя дали да го премахне. Ръчното задействане на инструмента от chrome://settings ще бъде активирано. + +Това правило не е налице за екземпляри на Windows, които не са част от домейн на <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Позволява да зададете списък с образци за URL адреси, посочващи сайтове, на които не е разрешено да задават „бисквитки“. Ако това правило е оставено незададено, за всички сайтове ще се използва глобалната стандартна стойност от правилото „DefaultCookiesSetting“, ако е зададено, или в противен случай – личната конфигурация на потребителя.</translation> <translation id="6426205278746959912">Не можете да заставите приложенията за Android да използват прокси сървър. За тях е налице поднабор от настройки за прокси сървър, които не е задължително да спазват: @@ -1781,6 +1795,13 @@ За да контролирате на кои уебсайтове да е разрешено да изпълняват Flash, вижте правилата DefaultPluginsSetting, PluginsAllowedForUrls и PluginsBlockedForUrls. В случай че тази настройка е деактивирана или не е зададена, съдържанието с Flash от други източници или това с малък размер може да бъде блокирано.</translation> +<translation id="6535639183431116351">Това правило е оттеглено във версия M68. Моля, вместо него използвайте DeveloperToolsAvailability. + +Деактивира инструментите за програмисти и конзолата на JavaScript. + +Ако активирате тази настройка, инструментите за програмисти няма да бъдат достъпни и проверката на елементи на уебсайтове няма да е възможна. Всички клавишни комбинации и записи в менюта или в контекстни менюта, служещи за отваряне на тези инструменти или конзолата на JavaScript, ще бъдат деактивирани. + +Ако деактивирате или не зададете тази опция, потребителят ще може да използва съответните инструменти и конзола.</translation> <translation id="653608967792832033">Посочва периода от време без потребителска активност, след който при работа на променлив ток екранът се заключва. Когато зададената за това правило стойност е по-голяма от нула, то посочва времето, за което потребителят трябва да остане неактивен, преди <ph name="PRODUCT_OS_NAME" /> да заключи екрана. @@ -1843,16 +1864,10 @@ В случай че това правило не е зададено, за всички сайтове ще се използва глобалната стандартна стойност от правилото DefaultWebUsbGuardSetting, ако е зададено, а ако не е, ще се използва личната конфигурация на потребителя. - Образците на URL адреси в правилото не бива да са в конфликт с конфигурираните чрез WebUsbAskForUrls. Ако URL адрес се среща и в двете правила, не е определено кое от тях има предимство.</translation> <translation id="6689792153960219308">Изпращане на информация за състоянието на хардуера</translation> <translation id="6698071416141001300">Регистриране на риск за профила, когато паролата се използва повторно</translation> <translation id="6699880231565102694">Активиране на двуфакторното удостоверяване за хостове за отдалечен достъп</translation> -<translation id="6702257826895463228">Разрешаване на сайтовете да отварят изскачащи прозорци по време на навигация. - -За пълно обяснение посетете https://www.chromestatus.com/features/5675755719622656. -Ако това правило е активирано, сайтовете ще могат да навигират и същевременно да отварят нови прозорци/раздели. -В случай че правилото е деактивирано или не е зададено, това няма да е разрешено.</translation> <translation id="6724842112053619797">Ако активирате това правило, запазените в потребителските профили в <ph name="PRODUCT_NAME" /> настройки, като например отметки, данни за автоматично попълване, пароли и др., ще се записват и във файл, съхраняван в папката за подвижни потребителски профили или в местоположение, посочено от администратора чрез <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. При активиране на правилото синхронизирането с облака ще се изключи. В случай че правилото е деактивирано или не е зададено, ще се използват само обикновените локални потребителски профили. @@ -2197,6 +2212,7 @@ Посетете https://developers.google.com/safe-browsing за повече информация относно Безопасно сърфиране.</translation> <translation id="7643883929273267746">Ограничаване на видимостта на профилите в <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Определя дали роумингът за данни трябва да е активиран за устройството. Ако за правилото е зададено „true“, роумингът е разрешен. В случай че е оставено неконфигурирано или е зададено „false“, функцията няма да е налице.</translation> +<translation id="7673194325208122247">Период от време (милисекунди)</translation> <translation id="7683777542468165012">Динамично опресняване на правилото</translation> <translation id="7694807474048279351">Насрочване на автоматично рестартиране след прилагане на актуализация на <ph name="PRODUCT_OS_NAME" />. @@ -2327,6 +2343,13 @@ Ако настройката е деактивирана и изходящите връзки по UDP се филтрират от защитната стена, тогава тази машина може да се свързва само с хостове в локалната мрежа.</translation> <translation id="7976157349247117979">Име на местоназначението за <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Ако правилото не е зададено и инструментът за почистване на Chrome открие нежелан софтуер, той може да изпрати метаданните за сканирането до Google в съответствие с правилото, зададено чрез SafeBrowsingExtendedReportingEnabled. След това инструментът ще попита потребителя дали нежеланият софтуер да бъде премахнат. Потребителят може да сподели с Google резултатите от почистването, за да улесни бъдещото откриване на нежелан софтуер. Тези резултати съдържат метаданни за съответните файлове и ключове в системния регистър, както е описано в информационния бюлетин за поверителността на Chrome. + +Ако зададете false и инструментът за почистване на Chrome открие нежелан софтуер, метаданните за сканирането няма да бъдат изпратени на Google и всяко правило, зададено чрез SafeBrowsingExtendedReportingEnabled, ще бъде пренебрегнато. Инструментът ще попита потребителя дали нежеланият софтуер да бъде премахнат. Резултатите от почистването няма да ни бъдат съобщени и потребителят няма да има възможност да ги сподели с нас. + +Ако зададете true и инструментът за почистване на Chrome открие нежелан софтуер, той може да изпрати метаданните за сканирането до Google в съответствие с правилото, зададено чрез SafeBrowsingExtendedReportingEnabled. Инструментът ще попита потребителя дали нежеланият софтуер да бъде премахнат. Резултатите от почистването ще бъдат съобщени на Google и потребителят няма да може да предотврати това. + +Това правило не е налице за екземпляри на Windows, които не са част от домейн на <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Бихте могли да разгледате настройката IsolateOrigins, за да получите най-доброто съчетание между изолиране и ограничено въздействие върху потребителите. За целта @@ -2449,6 +2472,7 @@ <translation id="8300455783946254851">Когато за правилото е зададено true, синхронизирането на Диск в приложението Файлове за <ph name="PRODUCT_OS_NAME" /> се деактивира при използване на мобилна връзка. В този случай данните се синхронизират с Диск само при връзка чрез Wi-Fi или Ethernet. Ако правилото не е зададено или е false, потребителите ще могат да прехвърлят файлове в Google Диск през мобилни връзки.</translation> +<translation id="8300992833374611099">Контролиране къде да е разрешено използването на инструментите за програмисти</translation> <translation id="8312129124898414409">Дава възможност да зададете дали на уебсайтовете е разрешено да генерират ключове. Това може да се позволи или откаже за всички сайтове. Ако правилото не е зададено, ще се използва „BlockKeygen“ и потребителят ще може да го променя.</translation> @@ -2680,6 +2704,11 @@ <translation id="9035964157729712237">Идентификационни номера на разширения за освобождаване от черния списък</translation> <translation id="9042911395677044526">Разрешава разпространението на конфигурацията на мрежата до всеки потребител на устройство с <ph name="PRODUCT_OS_NAME" />. Тази конфигурация е JSON низ, форматиран съгласно формата за отворена мрежа, както е описано на адрес <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Посочване дали видеоактивността засяга управлението на захранването</translation> +<translation id="9085839450090699752">Дава възможност да зададете периода от време (в милисекунди), през който потребителите да бъдат известявани, че трябва да рестартират <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" /> ще се използва стандартният период от 345600000 милисекунди (четири дни), а за браузъра – 604800000 милисекунди (една седмица).</translation> <translation id="9088433379343318874">Активиране на доставчика на съдържание за контролирани потребители</translation> <translation id="9088444059179765143">Конфигуриране на метода за автоматично откриване на часовата зона</translation> <translation id="9096086085182305205">Бял списък на сървъра за удостоверяване</translation>
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb index 3028a49..47eec1d 100644 --- a/components/policy/resources/policy_templates_bn.xtb +++ b/components/policy/resources/policy_templates_bn.xtb
@@ -21,10 +21,10 @@ নীতিটি যদি মিথ্যাতে সেট করা থাকে, তাহলে পরিসংখ্যানের প্রতিবেদন করা হবে না। নীতিটি যদি সত্যতে সেট করা থাকে বা সেট না করে রাখা হয়, তাহলে পরিসংখ্যানের প্রতিবেদন করা হবে।</translation> <translation id="1046484220783400299">একটি সীমিত সময়ের জন্য ডেপ্রিকেটেড ওয়েব প্ল্যাটফর্ম বৈশিষ্ট্যগুলি সক্রিয় করে</translation> -<translation id="1047128214168693844">ব্যবহারকারীর শারীরিক অবস্থান ট্র্যাক করতে কোনও সাইটকে মঞ্জুরি দেবেন না</translation> -<translation id="1049138910114524876"><ph name="PRODUCT_OS_NAME" /> প্রবেশ করার স্ক্রীনে যে লোকেল কার্যকর করা হয় সেটি কনফিগার করে। +<translation id="1047128214168693844">ব্যবহারকারীর শারীরিক লোকেশন ট্র্যাক করতে কোনও সাইটকে মঞ্জুরি দেবেন না</translation> +<translation id="1049138910114524876"><ph name="PRODUCT_OS_NAME" /> প্রবেশ করার স্ক্রিনে যে লোকেল কার্যকর করা হয় সেটি কনফিগার করে। - এই নীতি সেট করা হলে, প্রবেশ করার স্ক্রীনটি সবসময় এই নীতির (নীতিটিকে ভবিষ্যতে সামঞ্জস্যপূর্ণ হবে এমন এক তালিকা হিসাবে সংজ্ঞায়িত করা হয়) প্রথম মান দ্বারা প্রদত্ত লোকেলে প্রদর্শিত হয়। এই নীতি সেট না করা হলে বা কোনো খালি তালিকায় সেট করা হলে, প্রবেশ করার স্ক্রীনটি সর্বশেষ ব্যবহারকারীর সেশনের লোকেলে প্রদর্শিত হবে। এই নীতিটি যদি বৈধ লোকেল নয় এমন কোনে মানে সেট করা হয়, তাহলে প্রবেশ করার স্ক্রীন একটি ফলব্যাক লোকেলে (বর্তমানে en-US) প্রদর্শিত হবে।</translation> + এই নীতি সেট করা হলে, প্রবেশ করার স্ক্রিনটি সবসময় এই নীতির (নীতিটিকে ভবিষ্যতে সামঞ্জস্যপূর্ণ হবে এমন এক তালিকা হিসাবে সংজ্ঞায়িত করা হয়) প্রথম মান দ্বারা প্রদত্ত লোকেলে প্রদর্শিত হয়। এই নীতি সেট না করা হলে বা কোনো খালি তালিকায় সেট করা হলে, প্রবেশ করার স্ক্রিনটি সর্বশেষ ব্যবহারকারীর সেশনের লোকেলে প্রদর্শিত হবে। এই নীতিটি যদি বৈধ লোকেল নয় এমন কোনে মানে সেট করা হয়, তাহলে প্রবেশ করার স্ক্রিন একটি ফলব্যাক লোকেলে (বর্তমানে en-US) প্রদর্শিত হবে।</translation> <translation id="1062011392452772310">ডিভাইসটির জন্য দূরবর্তী প্রত্যায়ন সক্ষম করুন</translation> <translation id="1062407476771304334">প্রতিস্থাপন করুন</translation> <translation id="1087437665304381368">এই নীতি শুধুমাত্র <ph name="PRODUCT_OS_NAME" /> ডেভেলপার মোড নিয়ন্ত্রণ করে। আপনি যদি Android ডেভেলপার বিকল্পগুলিতে অ্যাক্সেস আটকাতে চান, তাহলে আপনাকে <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> নীতি সেট করতে হবে।</translation> @@ -45,7 +45,7 @@ এই নীতি সেট না করে রাখা হলে, ডিফল্ট ক্যাশে ডিরেক্টরিটি ব্যবহৃত হবে এবং ব্যবহারকারী '--disk-cache-dir' কমান্ড লাইন ফ্ল্যাগ দিয়ে একে ওভাররাইড করতে পারবেন।</translation> <translation id="1138294736309071213">এই নীতি শুধুমাত্র খুচরা মোডে সক্রিয়৷ - স্ক্রীন সেভারের আগে সময়কাল নির্ণয় দেখানো হয়েছে প্রবেশ করুন খুচরা মোডে ডিভাইসের জন্য৷ + স্ক্রিন সেভারের আগে সময়কাল নির্ণয় দেখানো হয়েছে প্রবেশ করুন খুচরা মোডে ডিভাইসের জন্য৷ নীতি মান নির্দিষ্টভাবে মিলিসেকেন্ডে ব্যক্ত করা উচিত৷</translation> <translation id="1151353063931113432">এই সাইটগুলিতে ছবি মঞ্জুর করুন</translation> @@ -74,9 +74,9 @@ এই নীতিটি সেট না করা হলে, বা মিথ্যাতে সেট করা থাকলে, TLS এ RC4 সাইফার স্যুট সক্ষম করা হবে না। অন্যথায়, এটি একটি পুরোনো সার্ভারের সাথে সামঞ্জস্য বজায় রাখার জন্য সত্যতে সেট করা যেতে পারে। এটি একটি অস্থায়ী সমাধান এবং সার্ভারটি আবার কনফিগার করা উচিত।</translation> <translation id="1297182715641689552">একটি .pac প্রক্সি স্ক্রিপ্ট ব্যবহার করুন</translation> <translation id="1304973015437969093">এক্সটেনশান/অ্যাপ আইডিগুলি এবং আপডেট URLগুলি নীরবে ইনস্টল হবে</translation> -<translation id="1313457536529613143">স্ক্রীন অনুজ্বল হওয়ার পরে অথবা স্ক্রীন বন্ধ হয়ে যাওয়ার সাথেসাথেই যখন ব্যবহারকারীর কার্যকলাপ নিরীক্ষণ করা হয় তখন যার দ্বারা স্ক্রীনের অনুজ্বলতার বিলম্বকে পরিমাপ করা হয় তার শতাংশ নির্দিষ্ট করে৷ +<translation id="1313457536529613143">স্ক্রিন অনুজ্বল হওয়ার পরে অথবা স্ক্রিন বন্ধ হয়ে যাওয়ার সাথেসাথেই যখন ব্যবহারকারীর কার্যকলাপ নিরীক্ষণ করা হয় তখন যার দ্বারা স্ক্রিনের অনুজ্বলতার বিলম্বকে পরিমাপ করা হয় তার শতাংশ নির্দিষ্ট করে৷ - এই নীতিটি সেট করা থাকলে, স্ক্রীন অনুজ্বল হওয়ার পরে অথবা স্ক্রীন বন্ধ হয়ে যাওয়ার সাথেসাথেই যখন ব্যবহারকারীর কার্যকলাপ নিরীক্ষণ করা হয় তখন যার দ্বারা স্ক্রীনের অনুজ্বলতার বিলম্বকে পরিমাপ করা হয় তার শতাংশ নির্দিষ্ট করে৷ যখন অনুজ্বলতার বিলম্ব স্কেল করা হয়, তখন যেভাবে মূলত করা হয়েছিল সেভাবে অনুজ্বলতা বিলম্ব থেকে একই সময়কাল বজায় রাখতে স্ক্রিনের উজ্জ্বলতা হ্রাস, স্ক্রিন বন্ধ এবং স্ক্রিন লকের বিলম্বগুলিকে সামঞ্জস্য করা হয়৷ + এই নীতিটি সেট করা থাকলে, স্ক্রিন অনুজ্বল হওয়ার পরে অথবা স্ক্রিন বন্ধ হয়ে যাওয়ার সাথেসাথেই যখন ব্যবহারকারীর কার্যকলাপ নিরীক্ষণ করা হয় তখন যার দ্বারা স্ক্রিনের অনুজ্বলতার বিলম্বকে পরিমাপ করা হয় তার শতাংশ নির্দিষ্ট করে৷ যখন অনুজ্বলতার বিলম্ব স্কেল করা হয়, তখন যেভাবে মূলত করা হয়েছিল সেভাবে অনুজ্বলতা বিলম্ব থেকে একই সময়কাল বজায় রাখতে স্ক্রিনের উজ্জ্বলতা হ্রাস, স্ক্রিন বন্ধ এবং স্ক্রিন লকের বিলম্বগুলিকে সামঞ্জস্য করা হয়৷ এই নীতিটি সেট করা না থাকলে, একটি ডিফল্ট স্কেল ফ্যাক্টর ব্যবহৃত হয়৷ @@ -158,15 +158,15 @@ যদি আপনি এই সেটিসংটি অক্ষম করেন তবে স্বতঃফিল ক্রেডিট কার্ডের তথ্যগুলি সুপারিশ করবে না বা এটি অতিরিক্ত ক্রেডিট কার্ডের তথ্য সংরক্ষণ করবে না যা ওয়েব ব্রাউজ করার সময় ব্যবহারকারী জমা দিতে পারে। আপনি যদি এই সেটিসংটি সক্ষম করেন বা একটি মান সেট না করেন তবে ব্যবহারকারী UI তে সমগ্র অটোফিল বৈশিষ্ট্য (ক্রেডিট কার্ডগুলি সহ) নিয়ন্ত্রণ করতে সক্ষম হবে।</translation> -<translation id="1468307069016535757">লগইন স্ক্রীনে উচ্চ কনট্রাস্ট মোড অ্যাক্সেসযোগ্যতার বৈশিষ্ট্যের ডিফল্ট স্থিতি সেট করে৷ +<translation id="1468307069016535757">লগইন স্ক্রিনে উচ্চ কনট্রাস্ট মোড অ্যাক্সেসযোগ্যতার বৈশিষ্ট্যের ডিফল্ট স্থিতি সেট করে৷ - যদি এই নীতিটি সত্যতে সেট থাকে, তাহলে যখন লগ স্ক্রীন প্রদর্শিত হবে তখন উচ্চ কনট্রাস্ট মোড সক্ষম থাকবে৷ + যদি এই নীতিটি সত্যতে সেট থাকে, তাহলে যখন লগ স্ক্রিন প্রদর্শিত হবে তখন উচ্চ কনট্রাস্ট মোড সক্ষম থাকবে৷ - যদি এই নীতিটি মিথ্যাতে সেট থাকে, তাহলে যখন লগ স্ক্রীন প্রদর্শিত হবে তখন উচ্চ কনট্রাস্ট মোড অক্ষম থাকবে৷ + যদি এই নীতিটি মিথ্যাতে সেট থাকে, তাহলে যখন লগ স্ক্রিন প্রদর্শিত হবে তখন উচ্চ কনট্রাস্ট মোড অক্ষম থাকবে৷ - যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা উচ্চ কনট্রাস্ট মোড সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রীন প্রদর্শিত হয় বা লগইন স্ক্রীনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ + যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা উচ্চ কনট্রাস্ট মোড সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রিন প্রদর্শিত হয় বা লগইন স্ক্রিনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ - যদি এই নীতিটি সেট না করে ফেলে রাখা হয়, তাহলে যখন লগইন স্ক্রীন প্রথমে প্রদর্শিত হয় তখন উচ্চ কনট্রাস্ট মোড অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে উচ্চ কনট্রাস্ট মোড সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রীনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> + যদি এই নীতিটি সেট না করে ফেলে রাখা হয়, তাহলে যখন লগইন স্ক্রিন প্রথমে প্রদর্শিত হয় তখন উচ্চ কনট্রাস্ট মোড অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে উচ্চ কনট্রাস্ট মোড সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রিনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> <translation id="1468707346106619889">এই নীতিটি যদি সত্য হিসেবে সেট করা হয়, তাহলে সমন্বিত ডেস্কটপ অনুমোদিত হয় এবং ডিফল্ট ভাবে সক্ষম হয়, যার ফলে অ্যাপ্লিকেশানগুলি একাধিক প্রদর্শন জুড়ে থাকতে পারে। ব্যবহারকারী স্বতন্ত্র প্রদর্শনের জন্য সমন্বিত ডেস্কটপ অক্ষম করতে পারেন @@ -185,7 +185,7 @@ <ph name="PROXY_HELP_URL" /></translation> <translation id="1504431521196476721">রিমোট প্রত্যয়িত</translation> <translation id="1509692106376861764"><ph name="PRODUCT_NAME" /> ২৯ সংস্করণে এই নীতিটি সরানো হয়েছে৷</translation> -<translation id="1522425503138261032">ব্যবহারকারীর শারীরিক অবস্থান ট্র্যাক করতে সাইটগুলিকে অনুমতি দিন</translation> +<translation id="1522425503138261032">ব্যবহারকারীর শারীরিক লোকেশন ট্র্যাক করতে সাইটগুলিকে অনুমতি দিন</translation> <translation id="152657506688053119">ডিফল্ট অনুসন্ধান প্রদানকারীর জন্য পরিবর্ত URLগুলির তালিকা</translation> <translation id="1530812829012954197">আয়োজক ব্রাউজারে সর্বদা নিম্নোক্ত URL রীতি উপস্থাপন করুন</translation> <translation id="1553684822621013552">এই নীতিটি সত্যতে সেট করা হলে, ব্যবহারকারীর জন্য ARC সক্ষম করা হবে @@ -262,7 +262,7 @@ <translation id="187819629719252111">ফাইল নির্বাচন কথোপকথনগুলি প্রদর্শন করতে <ph name="PRODUCT_NAME" />এর অনুমতি দিয়ে মেশিনে স্থানীয় ফাইলগুলিতে অ্যাক্সেসের অনুমতি দেয়৷ আপনি এই সেটিং সক্ষম করলে, ব্যবহারকারীরা সাধারণ হিসাবে ফাইল নির্বাচন কথোপকথনগুলি খুলতে পারে৷ আপনি এই সেটিং অক্ষম করলে, যখনই ব্যবহারকারী এমন কোনো কার্য করে যা কোনো ফাইল নির্বাচন কথোপকথন (যেমন বুকমার্কগুলির আমদানি, ফাইলগুলি আপলোড করা, লিঙ্কগুলি সংরক্ষণ করা ইত্যাদি)কে প্রণোদনা দেয় একটি বার্তা পরিবর্তে প্রদর্শিত হয় এবং ব্যবহারকারী ফাইল নির্বাচন কথোপকথনে বাতিল ক্লিক করেছে বলে ধরা হয়৷ এই সেটিংটি সেট করা না থাকলে, ব্যবহারকারীগণ সাধারণভাবে ফাইল নির্বাচন কথোপকথনগুলি খুলতে পারে৷</translation> <translation id="1879485426724769439">ডিভাইসে ব্যবহারের জন্য সময়াঞ্চল নির্দিষ্ট করে৷ ব্যবহারকারীরা বর্তমান সেশনের জন্য নির্দিষ্ট সময়াঞ্চলকে ওভাররাইড করতে পারে৷ অবশ্য, লগআউট করলে নির্দিষ্ট সময়াঞ্চল আবার পূর্বেরটিতে ফিরে যায়। যদি কোনো অবৈধ মান দেওয়া হয়, তাহলে সেটির পরিবর্তে "GMT" ব্যবহার করে নীতিটি তখনও সক্রিয় থাকে৷ যদি কোনো খালি মান দেওয়া হয়, তাহলে নীতিটি উপেক্ষা করা হয়। - এই নীতি ব্যবহার করা না হলে, বর্তমানে সক্রিয় সময়াঞ্চল ব্যবহৃত হবে তবে ব্যবহারকারীরা সময়াঞ্চলকে পরিবর্তন করতে পারবে এবং তা স্থায়ী হবে। এভাবে, একজন ব্যবহারকারীর করা পরিবর্তনের ফলে লগইন-স্ক্রীন এবং অন্য সব ব্যবহারকারী প্রভাবিত হয়। + এই নীতি ব্যবহার করা না হলে, বর্তমানে সক্রিয় সময়াঞ্চল ব্যবহৃত হবে তবে ব্যবহারকারীরা সময়াঞ্চলকে পরিবর্তন করতে পারবে এবং তা স্থায়ী হবে। এভাবে, একজন ব্যবহারকারীর করা পরিবর্তনের ফলে লগইন-স্ক্রিন এবং অন্য সব ব্যবহারকারী প্রভাবিত হয়। নতুন ডিভাইসগুলি "US/Pacific" এ সেট থাকা সময়াঞ্চলের সাথে শুরু হয়৷ @@ -299,9 +299,9 @@ </translation> <translation id="193259052151668190">USB বিচ্ছিন্ন করা যায় এমন ডিভাইসের পরিচ্ছন্ন তালিকা</translation> <translation id="1933378685401357864">ওয়ালপেপার ছবি</translation> -<translation id="1956493342242507974"><ph name="PRODUCT_OS_NAME" /> এ লগইন স্ক্রীনে পাওয়ার পরিচালনা কনফিগার করে। +<translation id="1956493342242507974"><ph name="PRODUCT_OS_NAME" /> এ লগইন স্ক্রিনে পাওয়ার পরিচালনা কনফিগার করে। - যখন কিছু সময়ের জন্য কোনো ব্যবহারকারী কার্যকলাপ থাকে না ও লগইন স্ক্রীন দেখানো হয়, তখন <ph name="PRODUCT_OS_NAME" /> কিভাবে আচরণ করবে এই নীতি তা আপনাকে কনফিগার করতে দিবে। এই নীতি একাধিক সেটিংস নিয়ন্ত্রণ করে। এগুলির স্বতন্ত্র সেমানটিক্স ও মান পরিসরের জন্য অনুরূপ নীতিগুলি দেখুন যেগুলি কোনো সেশনের পাওয়ার পরিচালনা নিয়ন্ত্রণ করে। এই নীতির ব্যতিক্রমগুলি হলো: + যখন কিছু সময়ের জন্য কোনো ব্যবহারকারী কার্যকলাপ থাকে না ও লগইন স্ক্রিন দেখানো হয়, তখন <ph name="PRODUCT_OS_NAME" /> কিভাবে আচরণ করবে এই নীতি তা আপনাকে কনফিগার করতে দিবে। এই নীতি একাধিক সেটিংস নিয়ন্ত্রণ করে। এগুলির স্বতন্ত্র সেমানটিক্স ও মান পরিসরের জন্য অনুরূপ নীতিগুলি দেখুন যেগুলি কোনো সেশনের পাওয়ার পরিচালনা নিয়ন্ত্রণ করে। এই নীতির ব্যতিক্রমগুলি হলো: * নিষ্ক্রিয় বা ঢাকনা বন্ধ অবস্থায় সেসন বন্ধ করাকে অ্যাকশন হিসেবে নেয়া যাবে না। * AC বিদ্যুতে চলাকালীন সময়ে নিষ্ক্রিয় অবস্থায় নেয়া ডিফল্ট অ্যাকশন হলো এটি বন্ধ করা। @@ -352,7 +352,7 @@ রিলঞ্চের পরে ব্যবহারকারীর সেশন যেখানে বন্ধ করা হয়েছিল সেখান থেকেই আবার চালু করা হয়।</translation> <translation id="2077129598763517140">যখনই উপলব্ধ তখন হার্ডওয়্যার অ্যাক্সিলারেশন ব্যবহার করুন</translation> -<translation id="2077273864382355561">AC পাওয়ার চলাকালীন স্ক্রীন বন্ধে বিলম্ব</translation> +<translation id="2077273864382355561">AC পাওয়ার চলাকালীন স্ক্রিন বন্ধে বিলম্ব</translation> <translation id="2082205219176343977">ডিভাইসের জন্য সর্বনিম্ন অনুমোদিত Chrome ভার্সন কনফিগার করুন</translation> <translation id="209586405398070749">স্থায়ী চ্যানেল</translation> <translation id="2098658257603918882">ব্যবহার ও ক্র্যাশ-সম্পর্কিত ডেটার প্রতিবেদন সক্ষম করুন</translation> @@ -371,7 +371,7 @@ AutoplayAllowed নীতিটি 'ফল্সে' সেট করা থাকলে এই নীতির অধীনে সেট করা যেকোনও ইউআরএল প্যাটের্নে ভিডিও চলতে পারবে। মনে রাখবেন, যদি <ph name="PRODUCT_NAME" /> ব্যবহার করার সময় এই নীতিটি পরিবর্তন করা হয় তাহলে সেই মুহূর্তের পর থেকে যে ট্যাবগুলি খোলা হবে, নীতিটি শুধুমাত্র সেগুলির উপরে প্রযোজ্য হবে। তার আগে খোলা ট্যাবগুলিতে আগের সেটিংটিই কাজ করতে থাকবে।</translation> -<translation id="2134437727173969994">স্ক্রীন লক করার অনুমতি দেয়</translation> +<translation id="2134437727173969994">স্ক্রিন লক করার অনুমতি দেয়</translation> <translation id="2137064848866899664">এই নীতিটি সেট করা থাকলে, আবার চালু করার সময় প্রতিবার প্রতিটি প্রদর্শন নির্দিষ্ট ওরিয়েন্টেশনে ঘোরানো হয়, এবং নীতির মান পরিবর্তন হওয়ার পরে প্রথমবার এটি সংযুক্ত করা হয়। ব্যবহারকারীরা লগ-ইন করার পরে সেটিংস পৃষ্ঠার মাধ্যমে প্রদর্শনের আবর্তন পরিবর্তন করতে পারবে, কিন্তু তাদের সেটিংটি পরের বার আবার চালু করার সময় নীতির মান দ্বারা ওভাররােইড করা হবে। এই নীতিটি প্রাথমিক ও সকল মাধ্যমিক প্রদর্শন, উভয় ক্ষেত্রে প্রযোজ্য। @@ -393,21 +393,21 @@ TimezoneAutomaticDetectionDisabled এ সেট করা থাকলে, chrome://settings এ স্বয়ংক্রিয় সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় বন্ধ থাকবে। - TimezoneAutomaticDetectionIPOnly এ সেট করা থাকলে, chrome://settings এ সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় চালু থাকবে। অবস্থান নির্ধারণ করতে সময়াঞ্চল শনাক্তকরণ শুধুমাত্র-IP পদ্ধতি ব্যবহার করবে। + TimezoneAutomaticDetectionIPOnly এ সেট করা থাকলে, chrome://settings এ সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় চালু থাকবে। লোকেশন নির্ধারণ করতে সময়াঞ্চল শনাক্তকরণ শুধুমাত্র-IP পদ্ধতি ব্যবহার করবে। - TimezoneAutomaticDetectionSendWiFiAccessPoints এ সেট করা থাকলে, chrome://settings এ সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় চালু থাকবে। সূক্ষ সময়াঞ্চল শনাক্তকরণের জন্য দৃশ্যমান ওয়াই ফাই অ্যাক্সেস-পয়েন্টের তালিকা সবসময় ভৌগোলিক অবস্থান API সার্ভারে পাঠানো হবে। + TimezoneAutomaticDetectionSendWiFiAccessPoints এ সেট করা থাকলে, chrome://settings এ সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় চালু থাকবে। সূক্ষ সময়াঞ্চল শনাক্তকরণের জন্য দৃশ্যমান ওয়াই ফাই অ্যাক্সেস-পয়েন্টের তালিকা সবসময় ভৌগোলিক লোকেশন API সার্ভারে পাঠানো হবে। - যদি TimezoneAutomaticDetectionSendAllLocationInfo এ সেট করা হয়, তাহলে chrome://settings এ সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় চালু থাকবে। সূক্ষ সময়াঞ্চল শনাক্তকরণের জন্য অবস্থানের তথ্য (যেমন, ওয়াই ফাই অ্যাক্সেস-পয়েন্ট, reachable Cell Towers, GPS) সার্ভারে পাঠানো হবে। + যদি TimezoneAutomaticDetectionSendAllLocationInfo এ সেট করা হয়, তাহলে chrome://settings এ সময়াঞ্চল নিয়ন্ত্রণগুলি অক্ষম করা হবে। স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণ সবসময় চালু থাকবে। সূক্ষ সময়াঞ্চল শনাক্তকরণের জন্য লোকেশনের তথ্য (যেমন, ওয়াই ফাই অ্যাক্সেস-পয়েন্ট, reachable Cell Towers, GPS) সার্ভারে পাঠানো হবে। এই নীতিটি সেট না করা থাকলে, এটি এমনভাবে কাজ করবে যেন TimezoneAutomaticDetectionUsersDecide সেট করা আছে। যদি SystemTimezone নীতি সেট করা থাকে, তাহলে এটি এই নীতিকে ওভাররাইড করে। এক্ষেত্রে স্বয়ংক্রিয় সময়াঞ্চল শনাক্তকরণকে সম্পূর্ণরূপে অক্ষম করা হয়।</translation> <translation id="2178899310296064282">YouTube এ পরিমিত সীমাবদ্ধ মোড অন্তত বলবৎ করুন</translation> -<translation id="2183294522275408937">দ্রুত আনলক ব্যবহার করা চালিয়ে যেতে লক স্ক্রীন কত সময় পরপর পাসওয়ার্ড চেয়ে অনুরোধ জানাবে তা এই সেটিংটি নিয়ন্ত্রণ করে। যখনই লক স্ক্রীনে প্রবেশ করা হয়, তখন যদি সর্বশেষ পাসওয়ার্ড এন্ট্রি এই সেটিংয়ে নির্দিষ্ট করা সময়ের চেয়ে বেশি সময়ের হয়, তাহলে লক স্ক্রীনে দ্রুত আনলক উপলব্ধ হবে না। ব্যবহারকারী যদি এই সময়ের চেয়ে বেশি সময় লক স্ক্রীনে থাকেন, তাহলে পরের বার যখন ব্যবহারকারী ভুল পাসওয়ার্ড দেবেন বা লক স্ক্রীনে আবার প্রবেশ করবেন, এর মধ্যে যেটি প্রথমে ঘটবে, তখন একটি পাসওয়ার্ড চাওয়া হবে। +<translation id="2183294522275408937">দ্রুত আনলক ব্যবহার করা চালিয়ে যেতে লক স্ক্রিন কত সময় পরপর পাসওয়ার্ড চেয়ে অনুরোধ জানাবে তা এই সেটিংটি নিয়ন্ত্রণ করে। যখনই লক স্ক্রিনে প্রবেশ করা হয়, তখন যদি সর্বশেষ পাসওয়ার্ড এন্ট্রি এই সেটিংয়ে নির্দিষ্ট করা সময়ের চেয়ে বেশি সময়ের হয়, তাহলে লক স্ক্রিনে দ্রুত আনলক উপলব্ধ হবে না। ব্যবহারকারী যদি এই সময়ের চেয়ে বেশি সময় লক স্ক্রিনে থাকেন, তাহলে পরের বার যখন ব্যবহারকারী ভুল পাসওয়ার্ড দেবেন বা লক স্ক্রিনে আবার প্রবেশ করবেন, এর মধ্যে যেটি প্রথমে ঘটবে, তখন একটি পাসওয়ার্ড চাওয়া হবে। - এই সেটিংটি কনফিগার করা হলে, যেসব ব্যবহারকারী দ্রুত আনলক ব্যবহার করবেন তাদেরকে সেটিং অনুযায়ী লক স্ক্রীনে তাদের পাসওয়ার্ড লিখতে অনুরোধ করা হবে। + এই সেটিংটি কনফিগার করা হলে, যেসব ব্যবহারকারী দ্রুত আনলক ব্যবহার করবেন তাদেরকে সেটিং অনুযায়ী লক স্ক্রিনে তাদের পাসওয়ার্ড লিখতে অনুরোধ করা হবে। - এই সেটিংটি কনফিগার না করা হলে, যেসব ব্যবহারকারী দ্রুত আনলক ব্যবহার করবেন তাদেরকে প্রতিদিন লক স্ক্রীনে তাদের পাসওয়ার্ড লিখতে অনুরোধ করা হবে।</translation> + এই সেটিংটি কনফিগার না করা হলে, যেসব ব্যবহারকারী দ্রুত আনলক ব্যবহার করবেন তাদেরকে প্রতিদিন লক স্ক্রিনে তাদের পাসওয়ার্ড লিখতে অনুরোধ করা হবে।</translation> <translation id="2194470398825717446">M61 এ এই নীতিটি আর ব্যবহার করা হচ্ছে না, অনুগ্রহ করে এর পরিবর্তে EcryptfsMigrationStrategy ব্যবহার করুন। ecryptfs এ থাকা কোনও ডিভাইস কিভাবে আচরণ করবে এটি তা উল্লেখ করে এবং সেটি ext4 এনক্রিপশনে রূপান্তর করতে হবে। @@ -440,13 +440,13 @@ যদি HardwareAccelerationModeEnabled মিথ্যাতে সেট করা থাকে, তাহলে Disable3DAPIs অগ্রাহ্য করা হয় এবং এটি Disable3DAPIs কে সত্যতে সেট করার সমান।</translation> <translation id="2274864612594831715">এই নীতিটি ChromeOS এ ইনপুট ডিভাইস হিসেবে ভার্চুয়াল কীবোর্ড সক্ষম করা কনফিগার করে। ব্যবহারকারীরা এই নীতিটি ওভাররাইড করতে পারবে না। - যদি নীতিটি সত্যতে সেট করা থাকে, তাহলে অন-স্ক্রীন ভার্চুয়াল কীবোর্ড সর্বদা সক্ষম থাকবে। + যদি নীতিটি সত্যতে সেট করা থাকে, তাহলে অন-স্ক্রিন ভার্চুয়াল কীবোর্ড সর্বদা সক্ষম থাকবে। - যদি মিথ্যাতে সেট করা থাকে, তাহলে অন-স্ক্রীন ভার্চুয়াল কীবোর্ড সর্বদা অক্ষম থাকবে। + যদি মিথ্যাতে সেট করা থাকে, তাহলে অন-স্ক্রিন ভার্চুয়াল কীবোর্ড সর্বদা অক্ষম থাকবে। - যদি আপনি এই নীতি সেট করেন, তাহলে ব্যবহারকারীরা পরিবর্তন বা ওভাররাইড করতে পারবে না। যদিও, ব্যবহারকারীরা একটি অ্যাক্সেসিবিলিটি অন-স্ক্রীন কীবোর্ড সক্ষম/অক্ষম করতে পারবে, যা নীতি দ্বারা নিয়ন্ত্রিত ভার্চুয়াল কীবোর্ডের থেকে বেশি প্রাধান্য পায়। অ্যাক্সেসিবিলিটি অন-স্ক্রীন কীবোর্ড নিয়ন্ত্রণ করার জন্য |VirtualKeyboardEnabled| নীতিটি দেখুন। + যদি আপনি এই নীতি সেট করেন, তাহলে ব্যবহারকারীরা পরিবর্তন বা ওভাররাইড করতে পারবে না। যদিও, ব্যবহারকারীরা একটি অ্যাক্সেসিবিলিটি অন-স্ক্রিন কীবোর্ড সক্ষম/অক্ষম করতে পারবে, যা নীতি দ্বারা নিয়ন্ত্রিত ভার্চুয়াল কীবোর্ডের থেকে বেশি প্রাধান্য পায়। অ্যাক্সেসিবিলিটি অন-স্ক্রিন কীবোর্ড নিয়ন্ত্রণ করার জন্য |VirtualKeyboardEnabled| নীতিটি দেখুন। - যদি নীতিটি সেট না করে ছেড়ে রাখা হয় তাহলে, প্রাথমিকভাবে অন-স্ক্রীন কীবোর্ড অক্ষম হলেও, কিন্তু ব্যবহারকারী যে কোনো সময়ে সক্ষম করতে পারবে। কখন কীবোর্ড প্রদর্শিত হবে তা নির্ধারণ করার জন্য আবিষ্কারমূলক নিয়ম ব্যবহার করা হতে পারে।</translation> + যদি নীতিটি সেট না করে ছেড়ে রাখা হয় তাহলে, প্রাথমিকভাবে অন-স্ক্রিন কীবোর্ড অক্ষম হলেও, কিন্তু ব্যবহারকারী যে কোনো সময়ে সক্ষম করতে পারবে। কখন কীবোর্ড প্রদর্শিত হবে তা নির্ধারণ করার জন্য আবিষ্কারমূলক নিয়ম ব্যবহার করা হতে পারে।</translation> <translation id="228659285074633994">ব্যবহারকারীর ইনপুট ছাড়াই সেই সময়ের পরিমান নির্দিষ্ট করে যার পরে AC শক্তি ফুরিয়ে যাওয়ার সময় হলে একটি সতর্কতা ডায়ালগ দেখানো হয়৷ এই নীতিটি সেট করা থাকলে, এটি সেই পরিমান সময়কে নির্দিষ্ট করে যতক্ষণ না <ph name="PRODUCT_OS_NAME" /> ব্যবহারকারীকে নিষ্ক্রিয় থাকার পরিপ্রেক্ষিতে ব্যবস্থা নেওয়া হতে চলেছে বলে এমন একটি সতর্কতা ডায়ালগ প্রদর্শন করা হচ্ছে ততক্ষণ ব্যবহারকারীকে অবশ্যই নিষ্ক্রিয় থাকতে হবে৷ @@ -459,6 +459,21 @@ একটি ডাউনলোড করা অভিধান ব্যাবহার করে বানান এখনও পরীক্ষা করা যেতে পারে; এই নীতি কেবল অনলাইন পরিষেবার ব্যবহারকে নিয়ন্ত্রণ করে৷ এই সেটিং কনফিগার করা না থাকলে বানান পরীক্ষা পরিষেবা ব্যবহার করা হবে কি না ব্যবহারকারী তা চয়ন করতে পারে৷</translation> +<translation id="2294283832646774959">প্রিন্টারের তালিকা কনফিগার করে। + + এই নীতির মাধ্যমে অ্যাডমিনিস্ট্রেটররা তাদের ব্যবহারকারীদের জন্য প্রিন্টারের কনফিগারেশন + দিতে করতে পারে। + + <ph name="PRINTER_DISPLAY_NAME" /> এবং <ph name="PRINTER_DESCRIPTION" /> এমন দুটি স্ট্রিং যেগুলি সহজে প্রিন্টার বেছে নেওয়ার জন্য কাস্টমাইজ করা যায়। <ph name="PRINTER_MANUFACTURER" /> এবং <ph name="PRINTER_MODEL" /> এর সাহায্যে ব্যবহারকারীরা সহজে নির্দিষ্ট কোনও প্রিন্টার চিনে নিতে পারেন। এই দুটি স্ট্রিং-এ প্রিন্টারের প্রস্তুতকারক এবং মডেল নম্বর দেখা যায়। <ph name="PRINTER_URI" />-এ এমন একটি ঠিকানা রাখতে হবে যেটি <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> এবং <ph name="URI_QUEUE" /> সহ অন্যান্য ক্লায়েন্ট কম্পিউটার থেকে অ্যাক্সেস করা যাবে। <ph name="PRINTER_UUID" />-এর তথ্যটি ঐচ্ছিক। উল্লেখ করা থাকলে এই তথ্যটি <ph name="ZEROCONF_DISCOVERY" /> প্রিন্টারের ডুপ্লিকেট সরিয়ে দেওয়ার জন্য ব্যবহার করা হয়। + + <ph name="PRINTER_EFFECTIVE_MODEL" />-এর তথ্যটিকে অবশ্যই এমন কোনও একটি স্ট্রিং-এর সাথে মিলতে হবে যেটি <ph name="PRODUCT_NAME" /> সমর্থিত প্রিন্টারকে নির্দেশ করে। প্রিন্টারের জন্য যথাযথ PPD শনাক্ত এবং ইনস্টল করতে এই স্ট্রিংটি ব্যবহার করা হবে। আরও তথ্যের জন্য https://support.google.com/chrome?p=noncloudprint-এ যান। + + কোনও প্রিন্টার প্রথমবার ব্যবহার করার সময় সেটি সেট-আপ করে নেওয়া হয়। প্রিন্টারের ব্যবহার শুরু না করা পর্যন্ত PPD ডাউনলোড করা হয় না। তার পর থেকে ঘন ঘন ব্যবহার করা PPD ক্যাশে সেভ রাখা হয়। + + ব্যবহারকারীরা বিভিন্ন স্বতন্ত্র ডিভাইসে প্রিন্টার কনফিগার করতে পারছেন কিনা, তা এই নীতির দ্বারা নিয়ন্ত্রিত নয়। স্বতন্ত্র ব্যবহারকারীর প্রিন্টার কনফিগার করার সম্পূরক হিসেবে কাজ করাই এই নীতির লক্ষ্য। + + অ্যাক্টিভ ডিরেক্টরি পরিচালিত ডিভাইসের জন্য এই নীতির মাধ্যমে <ph name="MACHINE_NAME_VARIABLE" /> নামটি বড় করে অ্যাক্টিভ ডিরেক্টরি মেশিনের নাম বা তার একটি সাবস্ট্রিং-এ পরিবর্তন করা যায়। যেমন, যদি মেশিনের নাম হয় <ph name="MACHINE_NAME_EXAMPLE" />, তাহলে <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />-এর জায়গায় ৬টি অক্ষরের পরের ৪টি অক্ষর ব্যবহার করা হবে, অর্থাৎ নামটি <ph name="MACHINE_NAME_PART_EXAMPLE" /> হয়ে যাবে। মনে রাখবেন, অবস্থানটি শূন্য ভিত্তিক। + </translation> <translation id="2294382669900758280">এই নীতিটি <ph name="TRUE" /> এ সেট করা হলেও, Android অ্যাপ্লিকেশানগুলিতে ভিডিও চালানোর বিষয়টি বিবেচনায় আনা হয় না।</translation> <translation id="2298647742290373702"><ph name="PRODUCT_NAME" /> এ ডিফল্ট নতুন ট্যাব পৃষ্ঠা কনফিগfর করুন।</translation> <translation id="2299220924812062390">সক্ষম থাকা প্লাগইনগুলির একটি তালিকা নির্দিষ্ট করুন</translation> @@ -485,7 +500,7 @@ <translation id="237494535617297575">বিজ্ঞপ্তিগুলি প্রদর্শনের জন্য অনুমোদিত এমন সাইটগুলি নির্দিষ্ট করে এমন url ধরণগুলির একটি তালিকা আপনাকে সেট করার অনুমতি দেয়৷ যদি এই নীতিটি বামে সেট না করে ছেড়ে যাওয়া হয়, তাহলে গ্লোবাল ডিফল্ট মান সব সাইটগুলির জন্য ব্যবহার করা হবে যদি 'ডিফল্ট বিজ্ঞপ্তি সেটিং' নীতি সেট করা হয় তা থেকে, নয়তো ব্যবহারকারীদের ব্যক্তিগত কনফিগারেশান থেকে৷</translation> -<translation id="2386362615870139244">স্ক্রীন উজ্জ্বলতার লকগুলির অনুমতি দিন</translation> +<translation id="2386362615870139244">স্ক্রিন উজ্জ্বলতার লকগুলির অনুমতি দিন</translation> <translation id="2411817661175306360">পাসওয়ার্ড সুরক্ষার সতর্কতা বন্ধ আছে</translation> <translation id="2411919772666155530">এই সাইটগুলিতে বিজ্ঞপ্তি অবরোধ করুন</translation> <translation id="2415979855753196119">আপনাকে 'অ্যাকাউন্টে পাসওয়ার্ডের নিরাপত্তা সম্পর্কিত ঝুঁকির ফ্ল্যাগ' ট্রিগার হওয়া নিয়ন্ত্রণ করতে দেয়। 'অ্যাকাউন্টে পাসওয়ার্ডের নিরাপত্তা সম্পর্কিত ঝুঁকির ফ্ল্যাগ'-এর অর্থ Google কে জানিয়ে দেওয়া যে এই অ্যাকাউন্টটি হাইজ্যাক হয়ে যাওয়ার ঝুঁকি রয়েছে। @@ -549,7 +564,7 @@ মনে রাখবেন, ডিভাইসে স্থানীয় ব্যবহারকারীর ডেটা রাখা হয় বা পরিত্যাগ করা হয় তার উপর এই নীতি কোনও প্রভাব ফেলে না।</translation> <translation id="244317009688098048">স্বয়ংক্রিয় লগইনের জন্য বেলআউট কীবোর্ড শর্টকাট সক্রিয় করুন৷ - যদি এই নীতি সেট না করা থাকে বা সত্যতে সেট করা থাকে এবং শূন্য বিলম্ব স্বয়ংক্রিয় লগইনের জন্য একটি ডিভাইস-লোকাল অ্যাকাউন্ট কনফিগার করা থাকে, তাহলে স্বয়ংক্রিয় লগইন বাইপাস করার জন্য এবং লগইন স্ক্রীন দেখানোর জন্য <ph name="PRODUCT_OS_NAME" /> কীবোর্ড শর্টকাট Ctrl+Alt+S মান্য করবে৷ + যদি এই নীতি সেট না করা থাকে বা সত্যতে সেট করা থাকে এবং শূন্য বিলম্ব স্বয়ংক্রিয় লগইনের জন্য একটি ডিভাইস-লোকাল অ্যাকাউন্ট কনফিগার করা থাকে, তাহলে স্বয়ংক্রিয় লগইন বাইপাস করার জন্য এবং লগইন স্ক্রিন দেখানোর জন্য <ph name="PRODUCT_OS_NAME" /> কীবোর্ড শর্টকাট Ctrl+Alt+S মান্য করবে৷ যদি এই নীতি মিথ্যাতে সেট করা থাকে, তাহলে শূন্য বিলম্ব স্বয়ংক্রিয় লগইন (যদি কনফিগার করা থাকে) বাইপাস করা যাবে না৷</translation> <translation id="2463365186486772703">অ্যাপ্লিকেশন লোকেল</translation> @@ -608,9 +623,9 @@ আপনি এই সেটিংসটি সক্ষম বা অক্ষম করলে, ব্যবহারকারীরা এই সেটিংসটি পরিবর্তন করতে বা ওভাররাইড করতে পারবে না৷ এই নীতিটি সেট না করে ছেড়ে যাওয়া হয়, ডেটা কম্প্রেশন প্রক্সি বৈশিষ্ট্যটি ব্যবহার করা বা না করা চয়ন করা ব্যবহারকারীর জন্য উপলব্ধ করা হবে৷</translation> -<translation id="257788512393330403">ছয় ঘন্টা পরপর পাসওয়ার্ড দেওয়া প্রয়োজন।</translation> +<translation id="257788512393330403">ছয় ঘণ্টা পরপর পাসওয়ার্ড দেওয়া প্রয়োজন।</translation> <translation id="2587719089023392205"><ph name="PRODUCT_NAME" /> কে ডিফল্ট ব্রাউজার হিসাবে সেট করুন</translation> -<translation id="2592091433672667839">স্ক্রীন সেভারের আগে নিষ্ক্রিয়তা স্থিতিকাল উপর খুচরা মোডে স্ক্রীন প্রবেশ করুন-প্রদর্শিত হয়</translation> +<translation id="2592091433672667839">স্ক্রিন সেভারের আগে নিষ্ক্রিয়তা স্থিতিকাল উপর খুচরা মোডে স্ক্রিন প্রবেশ করুন-প্রদর্শিত হয়</translation> <translation id="2592162121850992309">এই নীতি সত্যতে সেট থাকলে বা সেট না করে রাখা হলে কোনও নির্দিষ্ট GPU বৈশিষ্ট্য কালোতালিকায় না থাকলে হার্ডওয়্যার অ্যাক্সিলারেশন সক্ষম করা হয়। এই নীতি মিথ্যাতে সেট করা থাকলে, হার্ডওয়্যার অ্যাক্সিলারেশন অক্ষম করা হবে।</translation> @@ -636,7 +651,7 @@ ব্যবহারকারীরা স্বতন্ত্র ডিভাইসে প্রিন্টার কনফিগার করতে পারবেন কিনা তার উপর এই নীতির কোনও প্রভাব থাকে না। এই নীতির উদ্দেশ্য হল পৃথক ব্যবহারকারীর মাধ্যমে কনফিগার করা প্রিন্টারের সাথে অতিরিক্ত সহায়তা প্রদান করা। </translation> <translation id="2633084400146331575">উচ্চারিত প্রতিক্রিয়া সক্ষম করুন</translation> -<translation id="2646290749315461919">ওয়েবসাইটগুলি ব্যবহারকারীদের ভৌত অবস্থানে নজর রাখতে অনুমোদিত কিনা তা আপনাকে সেট করার অনুমতি দেয়৷ ব্যবহারকারীদের ভৌত অবস্থান ডিফল্ট অনুসারে অনুমোদিত হতে পারে, ডিফল্ট অনুসারে অস্বীকৃত হতে পারে বা ওয়েবসাইটটি ভৌত অবস্থানটির অনুরোধ করলে প্রতিবার ব্যবহারকারীকে এটি জিজ্ঞাসা করা হতে পারে৷</translation> +<translation id="2646290749315461919">ওয়েবসাইটগুলি ব্যবহারকারীদের ভৌত লোকেশনে নজর রাখতে অনুমোদিত কিনা তা আপনাকে সেট করার অনুমতি দেয়৷ ব্যবহারকারীদের ভৌত লোকেশন ডিফল্ট অনুসারে অনুমোদিত হতে পারে, ডিফল্ট অনুসারে অস্বীকৃত হতে পারে বা ওয়েবসাইটটি ভৌত লোকেশনটির অনুরোধ করলে প্রতিবার ব্যবহারকারীকে এটি জিজ্ঞাসা করা হতে পারে৷</translation> <translation id="2649896281375932517">ব্যবহারকারীদের সিদ্ধান্ত নিতে দিন</translation> <translation id="2650049181907741121">যখন ব্যবহারকারী লিডটি বন্ধ করবে তখন কি করা হবে</translation> <translation id="2655233147335439767">ডিফল্ট অনুসন্ধান করার সময় ব্যবহৃত অনুসন্ধান ইঞ্জিনটির URLটি নির্দিষ্ট করে। URLটিতে '<ph name="SEARCH_TERM_MARKER" />' স্ট্রিংটি থাকা উচিত, এটি ব্যবহারকারী যে পদটি অনুসন্ধান করছে সে পদটি দিয়ে কুয়েরির সময়টিতে প্রতিস্থাপিত হবে। @@ -705,13 +720,6 @@ যদি এই নীতিটি ব্যবহার করা হয় তাহলে ব্যবহারকারী শুধুমাত্র সেই প্রিন্টার ব্যবহার করতে পারবেন যেটির আইডি এই নীতিতে উল্লেখ করা মানের সাথে মিলে যায়। আইডিকে <ph name="DEVICE_PRINTERS_POLICY" />-এ উল্লেখ করা "id" অথবা "guid"-এ দেওয়া মানের অনুরূপ হতে হবে। </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> এর সামগ্রী দৃশ্যে স্পর্শের মাধ্যমে অনুসন্ধান এর উপলব্ধতা সক্ষম করুন। - - আপনি এই সেটিংটি সক্ষম করলে, ব্যবহারকারীর কাছে স্পর্শের মাধ্যমে অনুসন্ধান উপলব্ধ হবে এবং তারা বৈশিষ্ট্যটি চালু বা বন্ধ করতে পারবেন। - - আপনি এই সেটিংটি অক্ষম করলে, স্পর্শের মাধ্যমে অনুসন্ধান সম্পূর্ণরূপে অক্ষম হয়ে যাবে। - - এই নীতিটি সেট না করে রাখা হলে, এটি সক্ষম রাখার সমতুল, উপরের বিবরণ দেখুন।</translation> <translation id="285480231336205327">উচ্চ কনট্র্যাস্ট মোড সক্ষম করুন</translation> <translation id="2854919890879212089">সম্প্রতি ব্যবহৃত প্রিন্টারের পরিবর্তে প্রিন্ট প্রিভিউতে ডিফল্ট পছন্দ হিসাবে সিস্টেম ডিফল্ট প্রিন্ট করার জন্য <ph name="PRODUCT_NAME" /> ব্যবহার করা হয়। @@ -749,15 +757,15 @@ <translation id="2959469725686993410">সময় অঞ্চল নির্ধারণ করার সময়ে সবসময় সার্ভারে ওয়াই ফাই অ্যাক্সেস-পয়েন্ট পাঠান</translation> <translation id="2959898425599642200">প্রক্সি বাইপাস বিধিসমূহ</translation> <translation id="2960691910306063964">দূরবর্তী অ্যাক্সেস হোস্টের জন্য পিন বিহীন প্রমাণীকরণ অক্ষম বা সক্ষম করে</translation> -<translation id="2976002782221275500">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রীনটির উজ্জ্বলতা হ্রাস হয়ে যায়৷ +<translation id="2976002782221275500">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রিনটির উজ্জ্বলতা হ্রাস হয়ে যায়৷ - যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রীনটির উজ্জ্বলতা হ্রাস হওয়ার উপর ক্রিয়া করার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ + যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রিনটির উজ্জ্বলতা হ্রাস হওয়ার উপর ক্রিয়া করার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ - যখন এই নীতিটিকে শুন্যতে সেট করা হয়, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রীনটির উজ্জ্বলতা হ্রাস হয়ে যায় না৷ + যখন এই নীতিটিকে শুন্যতে সেট করা হয়, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রিনটির উজ্জ্বলতা হ্রাস হয়ে যায় না৷ যখন এই নীতিটিকে সেট না করলে, তখন একটি ডিফল্ট সময়কাল ব্যবহৃত হয়৷ - নীতির মানটি মিলিসেকেন্ডে নির্ধারণ করা উচিত৷ মানগুলি স্ক্রীন বন্ধ হওয়ার এবং নিষ্ক্রিয়তা বিলম্বের থেকে কম বা সমান হিসাবে ধার্য করা হয়ে থাকে (যদি সেট থাকে)৷</translation> + নীতির মানটি মিলিসেকেন্ডে নির্ধারণ করা উচিত৷ মানগুলি স্ক্রিন বন্ধ হওয়ার এবং নিষ্ক্রিয়তা বিলম্বের থেকে কম বা সমান হিসাবে ধার্য করা হয়ে থাকে (যদি সেট থাকে)৷</translation> <translation id="2977997796833930843">মনে রাখবেন যে এই নীতি থামিয়ে দেওয়া হয়েছে এবং ভবিষ্যতে সরিয়ে দেওয়া হবে। এই নীতি আরও-নির্দিষ্ট <ph name="IDLE_ACTION_AC_POLICY_NAME" /> এবং <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" /> নীতির জন্য ফলব্যাক মান প্রদান করে। যদি এই নীতি সেট করা থাকে তাহলে এটির মান ব্যবহার করা হতে পারে যদি সংশ্লিষ্ট আরও-নির্দিষ্ট নীতি সেট না করা থাকে। @@ -845,15 +853,15 @@ <translation id="3220624000494482595">কিয়স্ক অ্যাপ্লিকেশানটি যদি কোনো Android অ্যাপ্লিকেশান হয়, তাহলে <ph name="PRODUCT_OS_NAME" /> সংস্করণের উপর এর কোনো নিয়ন্ত্রণ থাকবে না, এমনকি যদি নীতিটি <ph name="TRUE" /> এও সেট করা হয়।</translation> <translation id="3236046242843493070">URL প্যাটার্নকে এক্সটেনশান, অ্যাপ্লিকেশান এবং ব্যবহারকারী স্ক্রিপ্টকে এর থেকে ইনস্টল করতে অনুমতি দিন</translation> <translation id="3240609035816615922">প্রিন্টার কনফিগারেশন অ্যাক্সেসের নীতি।</translation> -<translation id="3243309373265599239">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রীনটির উজ্জ্বলতা হ্রাস হয়ে যায়৷ +<translation id="3243309373265599239">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রিনটির উজ্জ্বলতা হ্রাস হয়ে যায়৷ - যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রীনটির উজ্জ্বলতা হ্রাস হওয়ার উপর ক্রিয়া করার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ + যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রিনটির উজ্জ্বলতা হ্রাস হওয়ার উপর ক্রিয়া করার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ - যখন এই নীতিটিকে শুন্যতে সেট করা হয়, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রীনটির উজ্জ্বলতা হ্রাস হয়ে যায় না৷ + যখন এই নীতিটিকে শুন্যতে সেট করা হয়, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রিনটির উজ্জ্বলতা হ্রাস হয়ে যায় না৷ যখন এই নীতিটিকে সেট করা হয় না , তখন একটি ডিফল্ট সময়কাল ব্যবহৃত হয়৷ - নীতির মানটি মিলিসেকেন্ডে নির্ধারণ করা উচিত৷ স্ক্রীন বন্ধ হওয়ার এবং নিষ্ক্রিয়তা বিলম্বের শেষ সীমা থেকে কম বা এর সমান হিসাবে মানগুলি ধার্য করা হয়ে থাকে (যদি সেট থাকে)৷</translation> + নীতির মানটি মিলিসেকেন্ডে নির্ধারণ করা উচিত৷ স্ক্রিন বন্ধ হওয়ার এবং নিষ্ক্রিয়তা বিলম্বের শেষ সীমা থেকে কম বা এর সমান হিসাবে মানগুলি ধার্য করা হয়ে থাকে (যদি সেট থাকে)৷</translation> <translation id="3264793472749429012">ডিফল্ট অনুসন্ধান সরবরাহকারী এনকোডিংগুলি</translation> <translation id="3273221114520206906">ডিফল্ট JavaScript সেটিং</translation> <translation id="3284094172359247914">WebUSB এপিআই-এর ব্যবহার নিয়ন্ত্রণ করুন</translation> @@ -953,7 +961,7 @@ <translation id="3631099945620529777">যদি এটি মিথ্যাতে সেট করা হয় তাহলে টাস্ক ম্যানেজারে 'প্রসেস সমাপ্তি' বোতামটি অক্ষম হয়ে যায়। যদি এটি সত্যতে সেট করা হয় বা কনফিগার না করে ছেড়ে দেওয়া হয় তাহলে ব্যবহারকারী টাস্ক ম্যানেজারে প্রসেস সমাপ্ত করতে পারবেন।</translation> -<translation id="3646859102161347133">স্ক্রীন ম্যাগনিফায়ারের প্রকার সেট করুন</translation> +<translation id="3646859102161347133">স্ক্রিন ম্যাগনিফায়ারের প্রকার সেট করুন</translation> <translation id="3653237928288822292">ডিফল্ট অনুসন্ধান সরবরাহকারী আইকন</translation> <translation id="3660562134618097814">লগইন করার সময় SAML IdP কুকি স্থানান্তর করে</translation> <translation id="3709266154059827597">এক্সটেনশান ইনস্টলেশান কালোতালিকা কনফিগার করুন</translation> @@ -1182,14 +1190,14 @@ একটি স্বয়ংক্রিয় রিবুটের জন্য নির্বাচিত সময়টি পূর্বনির্ধারিত হলেও যদি কোনো ব্যবহারকারী এই ডিভাইসটি বর্তমানে ব্যবহার করছেন এমন হয় তাহলে রিবুট ডিভাইসটিতে ২৪ ঘণ্টা পর্যন্ত বিলম্বিত হতে পারে৷ - দ্রষ্টব্য: বর্তমানে লগ ইন স্ক্রীন দেখানো হচ্ছে বা একটি kisok অ্যাপ্লিকেশানের সেশন প্রগতিতে রয়েছে এমন অবস্থায় শুধুমাত্র স্বয়ংক্রিয় রিবুটগুলি সক্ষমিত থাকে৷ এটি ভবিষ্যতে পরিবর্তিত হবে এবং কোনো বিশেষ ধরণের সেশন প্রগতিতে রয়েছে কিনা তা নির্বিশেষে সর্বদা নীতিটি প্রযোজ্য হবে৷ + দ্রষ্টব্য: বর্তমানে লগ ইন স্ক্রিন দেখানো হচ্ছে বা একটি kisok অ্যাপ্লিকেশানের সেশন প্রগতিতে রয়েছে এমন অবস্থায় শুধুমাত্র স্বয়ংক্রিয় রিবুটগুলি সক্ষমিত থাকে৷ এটি ভবিষ্যতে পরিবর্তিত হবে এবং কোনো বিশেষ ধরণের সেশন প্রগতিতে রয়েছে কিনা তা নির্বিশেষে সর্বদা নীতিটি প্রযোজ্য হবে৷ কয়েক সেকেন্ডের মধ্যেই নীতিটির মান নির্দিষ্ট করতে হবে৷ মানগুলি অন্তত ৩৬০০(এক ঘণ্টা) হতে হবে৷</translation> <translation id="4203879074082863035">শুধুমাত্র সাদাতালিকাভুক্ত প্রিন্টারগুলি ব্যবহারকারীদের দেখানো হয়</translation> <translation id="420512303455129789">একটি বুলিয়ান ফ্ল্যাগে অভিধান ম্যাপিং URLগুলি যা হোস্টে অ্যাক্সেসের অনুমতি দেওয়া হবে কিনা (সত্য) বা অবরুদ্ধ (মিথ্যা) করা হবে কিনা তা নির্ধারণ করে৷ এই নীতিটি হল <ph name="PRODUCT_NAME" /> এর নিজস্ব অভ্যন্তরীণ ব্যবহারের জন্য৷</translation> -<translation id="4224610387358583899">যে নিষ্ক্রিয়তা বিলম্বের পর স্ক্রীন বন্ধ হয়ে যাবে</translation> +<translation id="4224610387358583899">যে নিষ্ক্রিয়তা বিলম্বের পর স্ক্রিন বন্ধ হয়ে যাবে</translation> <translation id="423797045246308574">আপনাকে একটি url প্যাটার্নের তালিকা সেট করতে দেয় যা এমন সাইটগুলিকে নির্দিষ্ট করে যেগুলি কী তৈরি করা ব্যবহারের জন্য মঞ্জুরিপ্রাপ্ত নয়। যদি কোনো url প্যাটার্ন 'KeygenBlockedForUrls' এ থাকে, তাহলে সেটি এসব ব্যতিক্রমকে ওভারারইড করে। যদি এই নীতিটি সেট না করে ছেড়ে যাওয়া হয়, তাহলে গ্লোবাল ডিফল্ট মান সব সাইটগুলির জন্য ব্যবহার করা হবে আর যদি 'DefaultKeygenSetting' নীতি সেট করা হয় তাহলে তার থেকে ব্যবহার করা হবে, নয়তো ব্যবহারকারীদের ব্যক্তিগত কনফিগারেশান থেকে।</translation> @@ -1308,6 +1316,7 @@ <translation id="4508686775017063528">যদি এই নীতিটি সত্যতে সেট করা হয় বা সেট না করা হয়, তাহলে <ph name="PRODUCT_NAME" /> সক্ষম করা হবে, এবং ব্যবহারকারী এটি অ্যাপ মেনু থেকে লঞ্চ করতে পারবে, মিডিয়া নিয়ন্ত্রণগুলি এবং,মিডিয়া নিয়ন্ত্রণগুলি এবং (যদি দেখানো হয় তাহলে) Cast টুল দণ্ড আইকন থেকে এটি লঞ্চ করতে সক্ষম হবে। এই নীতিটি মিথ্যাতে সেট করা হলে, <ph name="PRODUCT_NAME" /> অক্ষম হয়ে যাবে।</translation> +<translation id="4515404363392014383">বিশ্বস্ত সূত্রের ক্ষেত্রে নিরাপদ ব্রাউজিং চালু করুন</translation> <translation id="4518251772179446575">যখনই কোনও সাইট ব্যবহারকারীদের ভৌত অবস্থানটি ট্র্যাক করতে চায় তখনই জিজ্ঞাসা করুন</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> এর বহুউপযোগী ক্ষেত্রে অনুসন্ধানের প্রস্তাবনাগুলি সক্ষম করে এবং ব্যবহারকারীদের এই সেটিং পরিবর্তন করতে বাধা দেয়৷ @@ -1441,6 +1450,7 @@ যদি এই নীতি মিথ্যাতে সেট করা থাকে, তাহলে স্ক্রীনের উজ্জ্বলতার লকের অনুরোধগুলিকে উপেক্ষা করা হবে৷</translation> <translation id="487460824085252184">নিজে থেকে মাইগ্রেট হবে, ব্যবহারকারীর সম্মতি নেওয়ার প্রয়োজন নেই।</translation> +<translation id="4874982543810021567">এই সাইটগুলিতে WebUSB ব্লক করুন</translation> <translation id="4876805738539874299">সর্বোচ্চ SSL সংস্করণ সক্ষম করা হয়েছে</translation> <translation id="4897928009230106190">POST এর মাধ্যমে প্রস্তাবনা অনুসন্ধান করার সময় ব্যবহৃত প্যারামিটারগুলি নির্দিষ্ট করে৷ কমা দ্বারা বিভাজিত নাম/মান জোড়াগুলি নিয়ে এটি গঠিত৷ মানটি যদি টেমপ্লেট প্যারামিটার হয়, যেমন উপরোক্ত উদাহরণের {অনুসন্ধানের পদগুলি}, তাহলে এটা আসল অনুসন্ধান পদগুলির ডেটা দ্বারা প্রতিস্থাপন করা হবে৷ @@ -1480,7 +1490,7 @@ যদি অক্ষম করা হয়, কোনো ব্রাউজিং ইতিহাস আমদানি করা যায় না৷ যদি সেট না করা হয়, ব্যবহারকারীকে আমদানি করার কথা বলা হতে পারে, অথবা স্বয়ংক্রিয়ভাবে আমদানি করা হতে পারে৷</translation> -<translation id="5056708224511062314">স্ক্রীন ম্যাগনিফায়ার অক্ষম রয়েছে</translation> +<translation id="5056708224511062314">স্ক্রিন ম্যাগনিফায়ার অক্ষম রয়েছে</translation> <translation id="5067143124345820993">লগইন ব্যবহারকারী শ্বেত তালিকা</translation> <translation id="5068140065960598044"><ph name="PRODUCT_NAME" /> এর ক্লাউড নীতিটি মেশিনের নীতিকে ওভাররাইড করে।</translation> <translation id="5075834892754086022">নীতি সেট করা থাকলে, পিনের কনফিগার করা সর্বনিম্ন পিন দৈর্ঘ্য @@ -1510,10 +1520,10 @@ এই নীতিটি সেই Windows এর ইনস্ট্যান্সগুলিতে কাজ করবে না যেগুলি <ph name="MS_AD_NAME" /> ডোমেনের সাথে যুক্ত নয়।</translation> -<translation id="5105313908130842249">ব্যাটারি পাওয়ার চলাকালীন স্ক্রীন লকে বিলম্ব</translation> +<translation id="5105313908130842249">ব্যাটারি পাওয়ার চলাকালীন স্ক্রিন লকে বিলম্ব</translation> <translation id="5108031557082757679">অক্ষম করা এন্টারপ্রাইজ ডিভাইস প্রিন্টার</translation> <translation id="5130288486815037971">TLS এ RC4 সাইফার স্যুট সক্ষম আছে কিনা</translation> -<translation id="5141670636904227950">লগইন স্ক্রীনে সক্রিয় ডিফল্ট স্ক্রীন ম্যাগনিফায়ারের প্রকার সেট করুন</translation> +<translation id="5141670636904227950">লগইন স্ক্রিনে সক্রিয় ডিফল্ট স্ক্রিন ম্যাগনিফায়ারের প্রকার সেট করুন</translation> <translation id="5142301680741828703">নিম্নলিখিত URL ধরণগুলি সর্বদা <ph name="PRODUCT_FRAME_NAME" />এ রেন্ডার করুন</translation> <translation id="5147665094011258322">DHCP অনুরোধের জন্য ব্যবহার করা ডিভাইসের হোস্টনেম নির্ধারণ করুন। @@ -1546,7 +1556,7 @@ এই নীতিটি সেট না করে ছেড়ে যাওয়া হলে, এটি সক্ষম করা হবে কিন্তু ব্যবহারকারীরা এটিকে পরিবর্তন করতে সমর্থ্য হবে৷</translation> <translation id="5196805177499964601">ডেভেলপার মোড অবরুদ্ধ করুন৷ -যদি এই নীতিটিকে সত্যতে সেট করা হয়, তাহলে <ph name="PRODUCT_OS_NAME" /> ডিভাইসটিকে ডেভেলপার মোডে চালু হতে আটকে দেবে৷ সিস্টেমটি চালু হবে না এবং ডেভেলপার স্যুইচটি চালু থাকবে তখন একটি ত্রুটি স্ক্রীন প্রদর্শন করবে৷ +যদি এই নীতিটিকে সত্যতে সেট করা হয়, তাহলে <ph name="PRODUCT_OS_NAME" /> ডিভাইসটিকে ডেভেলপার মোডে চালু হতে আটকে দেবে৷ সিস্টেমটি চালু হবে না এবং ডেভেলপার স্যুইচটি চালু থাকবে তখন একটি ত্রুটি স্ক্রিন প্রদর্শন করবে৷ যদি নীতিটিকে সেট না করে ফেলে রাখা হয় বা মিথ্যাতে সেট করা থাকে, তাহলে ডেভেলপার মোড ডিভাইসটিতে উপলব্ধ থাকবে৷</translation> <translation id="5208240613060747912">বিজ্ঞপ্তিগুলি প্রদর্শনের জন্য অনুমোদিত এমন সাইটগুলি নির্দিষ্ট করে এমন url ধরণগুলির একটি তালিকা আপনাকে সেট করার অনুমতি দেয়৷ @@ -1634,9 +1644,9 @@ এই সেটিংস সক্ষম থাকলে, দূরবর্তী সংযোগ প্রগতিতে থাকার সময় হোস্টের বাস্তব ইনপুট ও আউটপুট ডিভাইসগুলি অক্ষম হয়৷ এই সেটিংস অক্ষম থাকলে বা সেট না থাকলে, এটি শেয়ার করার সময়, স্থানীয় ও দূরবর্তী উভয় ব্যবহারকারীরাই হোস্টের সাথে পরস্পরক্রিয়া করতে পারে৷</translation> -<translation id="5405289061476885481"><ph name="PRODUCT_OS_NAME" /> প্রবেশ করার স্ক্রীনে কোন কীবোর্ড লেআউটগুলি অনুমোদিত সেটি কনফিগার করে। +<translation id="5405289061476885481"><ph name="PRODUCT_OS_NAME" /> প্রবেশ করার স্ক্রিনে কোন কীবোর্ড লেআউটগুলি অনুমোদিত সেটি কনফিগার করে। - এই নীতি যদি ইনপুট পদ্ধতি শনাক্তকারীর একটি তালিকায় সেট করা থাকে, তাহলে প্রদত্ত ইনপুট পদ্ধতি প্রবেশ করার স্ক্রীনে উপলব্ধ হবে। প্রথমে প্রদত্ত ইনপুট পদ্ধতিটি পূর্বনির্বাচিত হবে। প্রবেশ করার স্ক্রীনে ব্যবহারকারী পড ফোকাস করা হলে, এই নীতির প্রদত্ত ইনপুট পদ্ধতি ছাড়াও ব্যবহারকারীর সম্প্রতি সবচেয়ে কম ব্যবহৃত ইনপুট পদ্ধতিটি উপলব্ধ হবে। নীতিটি সেট করা না থাকলে, প্রবেশ করার স্ক্রীন যে লোকেলে প্রদর্শিত হয়, প্রবেশ করার স্ক্রীনের ইনপুট পদ্ধতি সেই লোকেল থেকে উদ্ভূত হবে। যেসব মান বৈধ ইনপুট পদ্ধতি শনাক্তকারী নয় সেগুলিকে উপেক্ষা করা হবে।</translation> + এই নীতি যদি ইনপুট পদ্ধতি শনাক্তকারীর একটি তালিকায় সেট করা থাকে, তাহলে প্রদত্ত ইনপুট পদ্ধতি প্রবেশ করার স্ক্রিনে উপলব্ধ হবে। প্রথমে প্রদত্ত ইনপুট পদ্ধতিটি পূর্বনির্বাচিত হবে। প্রবেশ করার স্ক্রিনে ব্যবহারকারী পড ফোকাস করা হলে, এই নীতির প্রদত্ত ইনপুট পদ্ধতি ছাড়াও ব্যবহারকারীর সম্প্রতি সবচেয়ে কম ব্যবহৃত ইনপুট পদ্ধতিটি উপলব্ধ হবে। নীতিটি সেট করা না থাকলে, প্রবেশ করার স্ক্রিন যে লোকেলে প্রদর্শিত হয়, প্রবেশ করার স্ক্রিনের ইনপুট পদ্ধতি সেই লোকেল থেকে উদ্ভূত হবে। যেসব মান বৈধ ইনপুট পদ্ধতি শনাক্তকারী নয় সেগুলিকে উপেক্ষা করা হবে।</translation> <translation id="5412057811596122582">যদি সক্ষম করা থাকে বা কনফিগার করা না থাকে (ডিফল্ট), তাহলে AudioCaptureAllowedUrls তালিকাতে কনফিগার করা URLগুলি, যেগুলির জন্য বিজ্ঞাপিত না করেই অ্যাক্সেস দেওয়া হবে সেগুলি ছাড়া ব্যবহারকারীকে অডিও ক্যাপচার অ্যাক্সেসের জন্য বিজ্ঞাপিত করা হবে। @@ -1808,17 +1818,16 @@ URL (যেমন https://example.com/some/path) শুধুমাত্র U2F appID এর সাথে মেলে ডোমেন (যেমন example.com) শুধুমাত্র webauthn RP আইডি সাথে মিলবে অতএব, একটি সাইটে U2F এবং webauthn API উভয় এর জন্য আবরণ করার জন্য, এটি অ্যাপ URL এবং ডোমেন তালিকাভুক্ত করা প্রয়োজন হবে।</translation> <translation id="5836064773277134605">দূরবর্তী অ্যাক্সেস হোস্ট দ্বারা ব্যবহৃত UDP পোর্ট ব্যাপ্তি সীমাবদ্ধ করুন।</translation> -<translation id="5862253018042179045">লগইন স্ক্রীনে কথ্য প্রতিক্রিয়া অ্যাক্সেসযোগ্যতা বৈশিষ্ট্যের ডিফল্ট স্থিতি সেট করে৷ +<translation id="5862253018042179045">লগইন স্ক্রিনে কথ্য প্রতিক্রিয়া অ্যাক্সেসযোগ্যতা বৈশিষ্ট্যের ডিফল্ট স্থিতি সেট করে৷ - যদি এই নীতিটি সত্যতে সেট থাকে, তাহলে লগইন স্ক্রীন প্রদর্শিত হওয়ার সময় কথ্য প্রতিক্রিয়া সক্ষম থাকবে৷ + যদি এই নীতিটি সত্যতে সেট থাকে, তাহলে লগইন স্ক্রিন প্রদর্শিত হওয়ার সময় কথ্য প্রতিক্রিয়া সক্ষম থাকবে৷ - যদি এই নীতিটি মিথ্যাতে সেট থাকে, তাহলে লগইন স্ক্রীন প্রদর্শিত হওয়ার সময় কথ্য প্রতিক্রিয়া অক্ষম থাকবে৷ + যদি এই নীতিটি মিথ্যাতে সেট থাকে, তাহলে লগইন স্ক্রিন প্রদর্শিত হওয়ার সময় কথ্য প্রতিক্রিয়া অক্ষম থাকবে৷ - যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা কথ্য প্রতিক্রিয়া সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রীন প্রদর্শিত হয় বা লগইন স্ক্রীনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ + যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা কথ্য প্রতিক্রিয়া সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রিন প্রদর্শিত হয় বা লগইন স্ক্রিনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ - যদি এই নীতিটি সেট না করে ফেলে রাখা হয়, তাহলে যখন লগইন স্ক্রীন প্রথমবার প্রদর্শিত হয় তখন কথ্য প্রতিক্রিয়া অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে কথ্য প্রতিক্রিয়া সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রীনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> + যদি এই নীতিটি সেট না করে ফেলে রাখা হয়, তাহলে যখন লগইন স্ক্রিন প্রথমবার প্রদর্শিত হয় তখন কথ্য প্রতিক্রিয়া অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে কথ্য প্রতিক্রিয়া সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রিনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> <translation id="5868414965372171132">ব্যবহারকারী-স্তরের নেটওয়ার্ক কনফিগারেশান</translation> -<translation id="588135807064822874">স্পর্শের মাধ্যমে অনুসন্ধান সক্ষম করে</translation> <translation id="5883015257301027298">ডিফল্ট কুকিজ সেটিং</translation> <translation id="5887414688706570295">দূরবর্তী অ্যাক্সেস হোস্ট দ্বারা ব্যবহৃত হবে এমন TalkGadget উপসর্গ কনফিগার করে এবং এটিকে পরিবর্তন করা থেকে ব্যবহারকারীদের আটকায়৷ @@ -1840,15 +1849,15 @@ মিথ্যাতে সেট করা হলে, কোনো থ্রোটলিং হয় না। সত্যতে সেট করা হলে, সরবরাহকৃত আপলোড এবং ডাউনলোড হার (kbits/s এ) পেতে সিস্টেম থ্রোটল করা হয়।</translation> <translation id="5921713479449475707">HTTP এর মাধ্যমে স্বতঃআপডেট ডাউনলোড করার অনুমতি দিন</translation> -<translation id="5921888683953999946">লগইন স্ক্রীনে বড় কার্সার অ্যাক্সেসযোগ্যতার বৈশিষ্ট্যের ডিফল্ট স্থিতি সেট করে৷ +<translation id="5921888683953999946">লগইন স্ক্রিনে বড় কার্সার অ্যাক্সেসযোগ্যতার বৈশিষ্ট্যের ডিফল্ট স্থিতি সেট করে৷ - যদি এই নীতিটি সত্যতে সেট করা হয়, তাহলে যখন লগ স্ক্রীন প্রদর্শিত হবে তখন বড় কার্সার সক্ষমিত হবে৷ + যদি এই নীতিটি সত্যতে সেট করা হয়, তাহলে যখন লগ স্ক্রিন প্রদর্শিত হবে তখন বড় কার্সার সক্ষমিত হবে৷ - যদি এই নীতিটি মিথ্যাতে সেট করা হয়, তাহলে যখন লগ স্ক্রীন প্রদর্শিত হবে তখন বড় কার্সার অক্ষম থাকবে৷ + যদি এই নীতিটি মিথ্যাতে সেট করা হয়, তাহলে যখন লগ স্ক্রিন প্রদর্শিত হবে তখন বড় কার্সার অক্ষম থাকবে৷ - যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা বড় কার্সার সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রীন প্রদর্শিত হয় বা লগইন স্ক্রীনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ + যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা বড় কার্সার সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রিন প্রদর্শিত হয় বা লগইন স্ক্রিনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ - যদি এই নীতিটিকে সেট না করে ছেড়ে রাখা হয়, তাহলে যখন লগইন স্ক্রীন প্রথমে প্রদর্শিত হয় তখন বড় কার্সার অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে বড় কার্সার সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রীনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> + যদি এই নীতিটিকে সেট না করে ছেড়ে রাখা হয়, তাহলে যখন লগইন স্ক্রিন প্রথমে প্রদর্শিত হয় তখন বড় কার্সার অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে বড় কার্সার সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রিনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> <translation id="5929855945144989709">Chrome OS এ ভার্চুয়াল মেশিন চালানোর জন্য ডিভাইসগুলিকে অনুমতি দিন</translation> <translation id="5932767795525445337">Android অ্যাপকে পিন করার জন্যও এই নীতিটি ব্যবহার করা যেতে পারে।</translation> <translation id="5936622343001856595">SafeSearch দিয়ে Google ওয়েব অনুসন্ধানে করা হবে যে ফোর্সেস ক্যোয়ারীগুলি তা সক্রিয় তে সেট করে এবং এই সেটিং পরিবর্তন করতে ব্যবহারকারীদের বাধা দেয়৷ @@ -1868,7 +1877,7 @@ এই সেটিং সক্ষম করা হলে, কোনো ব্যবহারকারী একটি পৃষ্ঠা প্রিন্টের অনুরোধ করলে তখন <ph name="PRODUCT_NAME" /> অন্তর্নিহিত প্রিন্ট পূর্বরূপের পরিবর্তে সিস্টেম প্রিন্টের কথোপকথন খুলবে৷ - যদি এই নীতি সেট করা না হয় বা অকার্যকর হিসাবে সেট করা হয় তাহলে প্রিন্ট আদেশ প্রিন্ট পূর্বরূপ স্ক্রীন চালু করতে প্রণোদিত করে।</translation> + যদি এই নীতি সেট করা না হয় বা অকার্যকর হিসাবে সেট করা হয় তাহলে প্রিন্ট আদেশ প্রিন্ট পূর্বরূপ স্ক্রিন চালু করতে প্রণোদিত করে।</translation> <translation id="6022948604095165524">সূচনায় ক্রিয়া</translation> <translation id="6023030044732320798">এক সেট নীতি নির্দিষ্ট করে যা ARC রানটাইমের কাছে দেওয়া হয়। মানটি অবশ্যই সঠিক JSON হতে হবে। @@ -1920,22 +1929,22 @@ <translation id="602728333950205286">ডিফল্ট অনুসন্ধান সরবরাহকারী তাত্ক্ষণিক URL</translation> <translation id="603410445099326293">POST ব্যবহার করে এমন প্রস্তাবনা URL এর প্যারামিটারগুলি</translation> <translation id="6036523166753287175">দূরবর্তী অ্যাক্সেস হোস্ট থেকে ফায়ারওয়াল ট্র্যাভেরসাল সক্ষম করুন</translation> -<translation id="6070667616071269965">ডিভাইস প্রবেশ করার স্ক্রীন কীবোর্ড লেআউট</translation> +<translation id="6070667616071269965">ডিভাইস প্রবেশ করার স্ক্রিন কীবোর্ড লেআউট</translation> <translation id="6074963268421707432">ডেস্কটপ বিজ্ঞপ্তিগুলি দেখানোর জন্য কোনও সাইটকে মঞ্জুরি দেবেন না</translation> <translation id="6076099373507468537">সেসব USB ডিভাইসগুলির তালিকা সংজ্ঞায়িত করে যেগুলিকে সরাসরি ওয়েব অ্যাপ্লিকেশানের ভিতরে chrome.usb API এর মাধ্যমে ব্যবহার করার জন্য তাদের কার্নেল ড্রাইভার থেকে বিচ্ছিন্ন করার জন্য অনুমতি দেওয়া হয়। এন্ট্রিগুলি USB ভেন্ডর শনাক্তকারী এবং পণ্য শনাক্তকারীর জোড় যা একটি নির্দিষ্ট হার্ডওয়্যার শনাক্ত করার জন্য ব্যবহৃত হয়। এই নীতিটি কনফিগার করা না হলে, বিচ্ছিন্ন করা যায় এমন USB ডিভাইসের তালিকা খালি থাকে।</translation> <translation id="6083631234867522991">Windows (Windows ক্লায়েন্ট):</translation> <translation id="6093156968240188330">দূরবর্তী সহায়তা সেশনে উত্থিত উইন্ডোর সাথে ইন্টারেক্ট করতে দূরবর্তী ব্যবহারকারীদের অনুমতি দিন</translation> -<translation id="6095999036251797924">AC পাওয়ার অথবা ব্যাটারি সংযোগ থাকাকালীন ব্যবহারকারী কোনো কাজ না করে নিষ্ক্রিয় অবস্থায় বসে থাকলে যে নির্দিষ্ট সময়ের পরে স্ক্রীন লক হয়ে যাবে সেই সময় নির্দিষ্ট করে৷ +<translation id="6095999036251797924">AC পাওয়ার অথবা ব্যাটারি সংযোগ থাকাকালীন ব্যবহারকারী কোনো কাজ না করে নিষ্ক্রিয় অবস্থায় বসে থাকলে যে নির্দিষ্ট সময়ের পরে স্ক্রিন লক হয়ে যাবে সেই সময় নির্দিষ্ট করে৷ - এই সময়ের পরিমাণটিকে শূন্য থেকে বড় কোনো মানে সেট করা হলে, তা <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 id="6111936128861357925">ডাইনোসর ইস্টার ডিম গেমকে মঞ্জুরি দিন</translation> @@ -2027,15 +2036,15 @@ কোন ওয়েবসাইটে ফ্ল্যাশ চালানোর অনুমতি আছে তা নিয়ন্ত্রণ করতে "DefaultPluginsSetting", "PluginsAllowedForUrls", and "PluginsBlockedForUrls" এর নীতিগুলি দেখুন। সেটিংসটি যদি অক্ষম থাকে অথবা সেট না করা থাকে, তাহলে অন্যান উৎস অথবা কম সাইজের কন্টেন্ট থেকে ফ্ল্যাশ কন্টেন্ট ব্লক করা হতে পারে।</translation> -<translation id="653608967792832033">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রীনটি লক হয়ে যায়৷ +<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 id="6536600139108165863">ডিভাইস শাটডাউনে স্বয়ংক্রিয়ভাবে পুনরায় চালু করা</translation> @@ -2057,7 +2066,7 @@ যদি এই নীতি সেট না করা অবস্থায় রেখে দেওয়া হয় তবে যখন লগইন স্ক্রীণ প্রথম বার প্রদর্শিত হয় অন-স্ক্রীণ কীবোর্ড প্রাথমিকভাবে অক্ষম থাকে৷ কিন্তু ব্যবহারকারী যেকোনো সময় অন-স্ক্রীণ কীবোর্ড সক্ষম বা অক্ষম করতে পারবেন এবং লগইন স্ক্রীণে এটির স্থিতি ব্যবহারকারীদের মধ্যে বজায় রাখা হয়৷</translation> <translation id="6573305661369899995">URL বিধিনিষেধগুলির একটি বাহ্যিক উৎস সেট করুন</translation> <translation id="6598235178374410284">অবতার ছবি ব্যবহার করুন</translation> -<translation id="6603004149426829878">সময় অঞ্চল নির্ধারণের সময়ে উপলব্ধ যেকোনও অবস্থান সঙ্কেত সবসময় সার্ভারে পাঠান</translation> +<translation id="6603004149426829878">সময় অঞ্চল নির্ধারণের সময়ে উপলব্ধ যেকোনও লোকেশন সঙ্কেত সবসময় সার্ভারে পাঠান</translation> <translation id="6628646143828354685">ওয়েবসাইটগুলিকে আশেপাশের ব্লুটুথ ডিভাইসে অ্যাক্সেসের মঞ্জুরি দেওয়া হবে কি না আপনাকে তা সেট করার মঞ্জুরি দেয়। অ্যাক্সেস পুরোপুরি অবরুদ্ধ করা যাবে, অথবা যখনই কোনো ওয়েবসাইট আশেপাশের ব্লুটুথ ডিভাইসগুলিতে অ্যাক্সেস করতে চায় তখনই ব্যবহারকারীকে জিজ্ঞাসা করা যেতে পারে। এই নীতিটি সেট না করে রাখা হলে, '৩' ব্যবহার করা হবে এবং ব্যবহারকারী এটি পরিবর্তন করতে পারবেন না।</translation> @@ -2084,6 +2093,11 @@ এই নীতিটি যদি সেট না করে রাখা হয়, তাহলে নেটওয়ার্ক পূর্বাভাষ সক্ষম করা হবে কিন্তু ব্যবহারকারী এটি পরিবর্তন করতে পারবেন।</translation> <translation id="6658245400435704251">প্রথমবার সার্ভারে আপডেট কেনার পর থেকে কোনো ডিভাইস বারবার সেটির আপডেট ডাউনলোডে কত সেকেন্ড পর্যন্ত দেরি করতে পারে সেই সংখ্যা নির্দিষ্ট করে৷ ডিভাইস কিছু সময় দেওয়াল-ঘড়ি-সময়ের শর্তাদিতে এবং অবশিষ্ট সময় আপডেট চেকের সংখ্যার শর্তাদিতে অপেক্ষা করতে পারে৷ যেকোনো ক্ষেত্রে, নিক্ষেপনের উর্দ্ধসীমা একতি স্থির সময়ে আবদ্ধ থাকে যাতে কোনো ডিভাইস কখনও কোনো আপডেট ডাউনলোড করতে আটকে না পড়ে৷</translation> +<translation id="6681229465468164801">এমন URL প্যাটার্নের তালিকা সেট করতে দেয়, যেগুলি সেই সমস্ত সাইটকে উল্লেখ করে যেগুলিকে ইউএসবি ডিভাইসে অ্যাক্সেস চাওয়া থেকে ব্লক করা হয়েছে। + + এই নীতিটি যদি সেট করা না হয় এবং 'DefaultWebUsbGuardSetting' নীতিটি যদি সেট করা থাকে, তাহলে সেই অনুযায়ী সমস্ত সাইটের জন্য এই নীতির গ্লোবাল ডিফল্ট সেটিং নির্ধারণ করা হবে। তা না হলে ব্যবহারকারীর ব্যক্তিগত কনফিগারেশন অনুযায়ী এটি সেট করা হবে। + + এই নীতির URL প্যাটার্নগুলি WebUsbAskForUrls-এর মাধ্যমে কনফিগার করা প্যাটার্নের থেকে আলাদা হতে হবে। কোনও URL দুটির সাথেই মিলে গেলে কোনটি প্রযোজ্য হবে, তা নির্ধারণ করা নেই।</translation> <translation id="6689792153960219308">হার্ডওয়্যার স্থিতি প্রতিবেদন করে</translation> <translation id="6698071416141001300">পাসওয়ার্ড সুরক্ষিত নেই, পাসওয়ার্ড আবার ব্যবহার করা হয়েছে বলে অ্যাকাউন্ট থেকে আশঙ্কা জানানো হচ্ছে</translation> <translation id="6699880231565102694">দূরবর্তী অ্যাক্সেস হোস্টের জন্য দুইবার-প্রয়োজনীয় প্রমাণীকরণ সক্ষম করুন</translation> @@ -2227,6 +2241,11 @@ এই নীতিটি সেই Windows এর ইনস্ট্যান্সগুলিতে কাজ করবে না যেগুলি <ph name="MS_AD_NAME" /> ডোমেনের সাথে যুক্ত নয়।</translation> <translation id="7079519252486108041">এই সাইটগুলিতে পপআপগুলি অবরোধ করুন</translation> +<translation id="7085803328069945025">এমন URL প্যাটার্নের তালিকা সেট করতে দেয়, যেগুলি সেই সমস্ত সাইটকে উল্লেখ করে যেগুলিকে ইউএসবি ডিভাইসে অ্যাক্সেস চাওয়ার অনুমতি দেওয়া হয়েছে। + + এই নীতিটি যদি সেট করা না হয় এবং 'DefaultWebUsbGuardSetting' নীতিটি যদি সেট করা থাকে, তাহলে সেই অনুযায়ী সমস্ত সাইটের জন্য এই নীতির গ্লোবাল ডিফল্ট সেটিং নির্ধারণ করা হবে। তা না হলে ব্যবহারকারীর ব্যক্তিগত কনফিগারেশন অনুযায়ী এটি সেট করা হবে। + + এই নীতির URL প্যাটার্নগুলি WebUsbAskForUrls-এর মাধ্যমে কনফিগার করা প্যাটার্নের থেকে আলাদা হতে হবে। কোনও URL দুটির সাথেই মিলে গেলে কোনটি প্রযোজ্য হবে, তা নির্ধারণ করা নেই।</translation> <translation id="7106631983877564505">যখন <ph name="PRODUCT_OS_NAME" /> ডিভাইসগুলি নিষ্ক্রিয় অথবা সাসপেন্ড করা হয়, তখন লক সক্ষম করে। আপনি যদি এই সেটিংটি সক্ষম করেন, ডিভাইসকে জাগিয়ে তুলতে ব্যবহারকারীর কাছে কোনো পাসওয়ার্ড জানতে চাওয়া হবে। @@ -2286,13 +2305,13 @@ যদি এই নীতি সেট না করা হয় তাহলে ব্যবহারকারী এই সেটিংটি ম্যানুয়ালি পরিবর্তন করতে পারবেন।</translation> <translation id="7234280155140786597">নিষিদ্ধ নেটিভ বার্তাপ্রেরণ হোস্টগুলির নাম (বা সবগুলির জন্য *)</translation> -<translation id="7236775576470542603">লগইন স্ক্রীনে সক্ষমিত রয়েছে এমন স্ক্রীন ম্যাগনিফায়ারের ডিফল্ট প্রকার সেট করে৷ +<translation id="7236775576470542603">লগইন স্ক্রিনে সক্ষমিত রয়েছে এমন স্ক্রিন ম্যাগনিফায়ারের ডিফল্ট প্রকার সেট করে৷ - যদি এই নীতিটি সেট করা থাকে, তাহলে যখন লগইন স্ক্রীন প্রদর্শিত হয় তখন এটি সক্ষমিত স্ক্রীন ম্যাগনিফায়ারের প্রকার নিয়ন্ত্রণ করে৷ নীতিটি "কোনোটিই নয়" এ সেট করলে তা স্ক্রীন ম্যাগনিফায়ারটিকে অক্ষম করে৷ + যদি এই নীতিটি সেট করা থাকে, তাহলে যখন লগইন স্ক্রিন প্রদর্শিত হয় তখন এটি সক্ষমিত স্ক্রিন ম্যাগনিফায়ারের প্রকার নিয়ন্ত্রণ করে৷ নীতিটি "কোনোটিই নয়" এ সেট করলে তা স্ক্রিন ম্যাগনিফায়ারটিকে অক্ষম করে৷ - যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা স্ক্রীন ম্যাগনিফায়ার সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রীন প্রদর্শিত হয় বা লগইন স্ক্রীনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ + যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা স্ক্রিন ম্যাগনিফায়ার সক্ষম বা অক্ষম করার মাধ্যমে অস্থায়ীভাবে এটিকে ওভাররাইড করতে পারবেন৷ যাই হোক, ব্যবহারকারীর পছন্দ স্থায়ী নয় এবং যখন নতুন লগইন স্ক্রিন প্রদর্শিত হয় বা লগইন স্ক্রিনে ব্যবহারকারী এক মিনিটের জন্য নিষ্ক্রিয় থাকে, তখন ডিফল্টটি পুনঃস্থাপিত হয়৷ - যদি এই নীতিটি সেট না করা ছেড়ে রাখা হয়, তাহলে যখন লগইন স্ক্রীন প্রথম প্রদর্শিত হবে তখন স্ক্রীন ম্যাগনিফায়ার অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে স্ক্রীন ম্যাগনিফায়ার সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রীনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> + যদি এই নীতিটি সেট না করা ছেড়ে রাখা হয়, তাহলে যখন লগইন স্ক্রিন প্রথম প্রদর্শিত হবে তখন স্ক্রিন ম্যাগনিফায়ার অক্ষম থাকে৷ ব্যবহারকারীরা যেকোনো সময়ে স্ক্রিন ম্যাগনিফায়ার সক্ষম বা অক্ষম করতে পারেন এবং লগইন স্ক্রিনে ব্যবহারকারীদের মধ্যে এটির স্থিতি স্থায়ী হয়৷</translation> <translation id="7249828445670652637">ARC-অ্যাপ্লিকেশানগুলিতে <ph name="PRODUCT_OS_NAME" /> CA শংসাপত্রগুলি সক্ষম করুন</translation> <translation id="7258823566580374486">দূরবর্তী অ্যাক্সেস হোস্টগুলির রক্ষণোপায় সক্ষম করুন</translation> <translation id="7260277299188117560">স্বতঃআপডেট p2p সক্ষম রয়েছে</translation> @@ -2317,17 +2336,17 @@ এই নীতিটি ঐচ্ছিক৷ যদি সেট না করা হয়, তাহলে অনুসন্ধান শব্দগুলি বের করে আনতে কোনো পরিবর্ত url ব্যবহৃত হবে না৷ এই নীতিটি 'ডিফল্ট অনুসন্ধান প্রদানকারী সক্ষমিত' নীতিটি সক্ষম করা থাকলেই শুধুমাত্র বিবেচিত হবে৷</translation> -<translation id="7302043767260300182">AC পাওয়ার চলাকালীন স্ক্রীন লকে বিলম্ব</translation> +<translation id="7302043767260300182">AC পাওয়ার চলাকালীন স্ক্রিন লকে বিলম্ব</translation> <translation id="7311458740754205918">এটি মিথ্যাতে সেট করা হলে বা সেট না করা হলে, ব্যবহারকারীর ব্রাউজিং ইতিহাস, আগ্রহ বা অবস্থানের ভিত্তিতে নতুন ট্যাব পৃষ্ঠাটি সামগ্রী প্রস্তাবনা দেখাতে পারে। এটি মিথ্যাতে সেট করা হলে, নতুন ট্যাব পৃষ্ঠায় স্বয়ংক্রিয়ভাবে তৈরি হওয়া সামগ্রী প্রস্তাবনা দেখানো হয় না।</translation> <translation id="7323896582714668701"><ph name="PRODUCT_NAME" />এর জন্য অতিরিক্ত কমান্ড লাইন প্যারামিটার</translation> <translation id="7326394567531622570">ওয়াইপের (মান ২) মত, তবে লগ-ইন টোকেন সংরক্ষণের চেষ্টা করে যাতে ব্যবহারকারীকে আবার সাইন-ইন করতে না হয়।</translation> -<translation id="7329842439428490522">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রীনটি বন্ধ হয়ে যায়৷ +<translation id="7329842439428490522">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রিনটি বন্ধ হয়ে যায়৷ - যখন নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রীন বন্ধ হওয়ার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ + যখন নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রিন বন্ধ হওয়ার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ - যখন এই নীতিটি শুন্যতে সেট থাকে, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রীনটিকে বন্ধ করে না৷ + যখন এই নীতিটি শুন্যতে সেট থাকে, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রিনটিকে বন্ধ করে না৷ যখন এই নীতিটি সেট থাকে না, তখন একটি ডিফল্ট সময়কাল ব্যবহৃত হয়৷ @@ -2395,7 +2414,7 @@ যদি GAIA তে সেট করা থাকে, তাহলে স্বাভাবিক GAIA প্রমাণীকরণ প্রবাহের মাধ্যমে লগইন সম্পন্ন করা হবে। - যদি SAML_INTERSTITIAL এ সেট করা থাকে, তাহলে লগইনে পরবর্তী ধাপে যাওয়ার আগে একটি স্ক্রীন দেখানো হবে যেখানে ব্যবহারকারিকে ডিভাইসের তালিকাভুক্তি ডোমেনের SAML IdP এর মাধ্যমে প্রমাণীকরণ করে এগিয়ে যাওয়ার, অথবা স্বাভাবিক GAIA লগইন প্রবাহে ফিরে যাওয়ার প্রস্তাব দেখানো হবে।</translation> + যদি SAML_INTERSTITIAL এ সেট করা থাকে, তাহলে লগইনে পরবর্তী ধাপে যাওয়ার আগে একটি স্ক্রিন দেখানো হবে যেখানে ব্যবহারকারিকে ডিভাইসের তালিকাভুক্তি ডোমেনের SAML IdP এর মাধ্যমে প্রমাণীকরণ করে এগিয়ে যাওয়ার, অথবা স্বাভাবিক GAIA লগইন প্রবাহে ফিরে যাওয়ার প্রস্তাব দেখানো হবে।</translation> <translation id="757395965347379751">এই সেটিংটি সক্ষম করা হলে, <ph name="PRODUCT_NAME" /> SHA-1 স্বাক্ষরিত শংসাপত্রগুলিকে অনুমতি দেয় যতক্ষণ এগুলি সফলভাবে যাচাইকৃত হয় এবং স্থানীয়ভাবে-ইনস্টল করা CA শংসাপত্রগুলিতে আবদ্ধ হয়। লক্ষ করুন যে, এই নীতি SHA-1 স্বাক্ষরগুলিকে অনুমতি দেওয়া অপারেটিং সিসটেম শংসাপত্র যাচাই স্ট্যাকের উপর নির্ভর করে। যদি কোনো OS আপডেট SHA-1 শংসাপত্রের OS হ্যান্ডলিং পরিবর্তন করে, তাহলে এই নীতির আর কোনো প্রভাব নাও থাকতে পারে। এছাড়াও, এই নীতিটি এন্টারপ্রাইজগুলোকে SHA-1 থেকে দূরে সরতে আরও সময় দিতে একটি অস্থায়ী কার্যকর উপায় হিসাবে ব্যবহার করা হয়। এই নীতিটি ১ জানুয়ারী ২০১৯ এ বা এর কাছাকাছি সময়ে সরানো হবে। @@ -2432,7 +2451,7 @@ যদি আপনি এই নীতিটি সেট করেন, তাহলে ব্যবহারকারীরা এটি পরিবর্তন বা ওভাররাইড করতে পারবেন না৷ - দ্রষ্টব্য: বর্তমানে লগ ইন স্ক্রীন দেখানো হচ্ছে বা একটি kisok অ্যাপ্লিকেশানের সেশন প্রগতিতে রয়েছে এমন অবস্থায় শুধুমাত্র স্বয়ংক্রিয় রিবুটগুলি সক্ষমিত থাকে৷ এটি ভবিষ্যতে পরিবর্তিত হবে এবং কোনো বিশেষ ধরণের সেশন প্রগতিতে রয়েছে কিনা তা নির্বিশেষে সর্বদা নীতিটি প্রযোজ্য হবে৷</translation> + দ্রষ্টব্য: বর্তমানে লগ ইন স্ক্রিন দেখানো হচ্ছে বা একটি kisok অ্যাপ্লিকেশানের সেশন প্রগতিতে রয়েছে এমন অবস্থায় শুধুমাত্র স্বয়ংক্রিয় রিবুটগুলি সক্ষমিত থাকে৷ এটি ভবিষ্যতে পরিবর্তিত হবে এবং কোনো বিশেষ ধরণের সেশন প্রগতিতে রয়েছে কিনা তা নির্বিশেষে সর্বদা নীতিটি প্রযোজ্য হবে৷</translation> <translation id="7701341006446125684">অ্যাপ্লিকেশান এবং এক্সটেনশানগুলির সঞ্চিত মাপ (বাইটে) সেট করে</translation> <translation id="7709537117200051035">একটি বুলিয়ান ফ্ল্যাগে অভিধান ম্যাপিং হোস্টনামগুলি হোস্টে অ্যাক্সেস করা মঞ্জুরিপ্রাপ্ত (সত্য) বা অবরুদ্ধ (মিথ্যা) করা হবে কিনা তা নির্ধারণ করছে৷ @@ -2523,7 +2542,7 @@ যদি CopyCaCerts এ সেট করা হয়, তাহলে ARC-অ্যাপ্লিকেশানগুলির জন্য <ph name="WEB_TRUSTED_BIT" /> সহ সব ONC-ইনস্টল হওয়া CA শংসাপত্র উপলব্ধ হয়।</translation> <translation id="7882585827992171421">এই নীতিটি কেবল খুচরো মোডে সক্রিয়৷ - সাইন-ইন স্ক্রীনে এক্সটেনশানের id কে স্ক্রীন সেভার হিসাবে ব্যবহারের জন্য নির্ধারিত করে৷ এক্সটেনশানটিকে অবশ্যই AppPack এর অংশ হতে হবে যা DeviceAppPack নীতির মাধ্যমে এই ডোমেইনের জন্য কনফিগার করা হয়েছে৷</translation> + সাইন-ইন স্ক্রিনে এক্সটেনশানের id কে স্ক্রিন সেভার হিসাবে ব্যবহারের জন্য নির্ধারিত করে৷ এক্সটেনশানটিকে অবশ্যই AppPack এর অংশ হতে হবে যা DeviceAppPack নীতির মাধ্যমে এই ডোমেইনের জন্য কনফিগার করা হয়েছে৷</translation> <translation id="7882857838942884046">Google সিঙ্ক অক্ষম করা হলে ‘Android ব্যাকআপ এবং পুনরুদ্ধার’ সঠিকভাবে কাজ নাও করতে পারে।</translation> <translation id="7882890448959833986">অসমর্থিত OS সতর্কবার্তা গোপন রাখুন</translation> <translation id="7912255076272890813">অনুমতিপ্রাপ্ত অ্যাপ্লিকেশন/এক্সটেনশন প্রকারগুলি কনফিগার করুন</translation> @@ -2550,7 +2569,7 @@ এই নীতি যদি সেট না করে রাখা হয়, তাহলে এটি সক্ষম করা হবে কিন্তু ব্যবহারকারী এটি পরিবর্তন করতে পারবেন।</translation> <translation id="7953256619080733119">পরিচালিত ব্যবহারকারী ম্যানুয়াল ব্যতিক্রম হোস্টগুলি</translation> -<translation id="7958537754689366707">বার ঘন্টা পরপর পাসওয়ার্ড দেওয়া প্রয়োজন</translation> +<translation id="7958537754689366707">বার ঘণ্টা পরপর পাসওয়ার্ড দেওয়া প্রয়োজন</translation> <translation id="7974114691960514888">এই নীতিটি এখন আর সমর্থিত নয়৷ কোনো দূরবর্তী ক্লায়েন্টের সাথে যোগাযোগের সময় STUN-এর ব্যবহার এবং রিলে সার্ভার সক্ষম করে৷ @@ -2563,7 +2582,7 @@ <translation id="798856998567564266">আপনি যদি এই সেটিং সক্ষম করেন তাহলে, বুকমার্ক যুক্ত করা, সরানো বা সংশোধন করা যেতে পারে। এই নীতি সেট না থাকার সময়েও এটি ডিফল্ট। আপনি যদি এই সেটিং অক্ষম করেন তাহলে, বুকমার্ক যুক্ত করা, সরানো বা সংশোধন করা যাবে না। তবে আগে থেকে থাকা বুকমার্কগুলি উপলব্ধ থাকবে।</translation> -<translation id="802147957407376460">স্ক্রীন ০ ডিগ্রী ঘোরান</translation> +<translation id="802147957407376460">স্ক্রিন ০ ডিগ্রী ঘোরান</translation> <translation id="8044493735196713914">ডিভাইসের চালু অবস্থা অভিযোগ করুন</translation> <translation id="8050080920415773384">নেটিভ প্রিন্ট</translation> <translation id="8059164285174960932">দূরবর্তী অ্যাক্সেস ক্লায়েন্টদের যেখানে তাদের প্রমাণীকরণ টোকেন নেওয়া উচিত সেখানকার URL</translation> @@ -2586,7 +2605,7 @@ <translation id="8104962233214241919">এই সাইটগুলির জন্য ক্লায়েন্ট শংসাপত্রগুলি স্বয়ংক্রিয়ভাবে বেছে নিন</translation> <translation id="8112122435099806139">ডিভাইসের জন্য ব্যবহার করা যাবে এমন ঘড়ি ফর্ম্যাট নির্ধারণ করে - এই নীতিটি লগইন স্ক্রীন এবং ব্যবহারকারীর সেশনগুলির জন্য ডিফল্ট হিসেবে ব্যবহারের জন্য ঘড়ির ফর্ম্যাট কনফিগার করে। ব্যবহারকারীরা এখনো তাদের অ্যাকাউন্ট থেকে ঘড়ির ফর্ম্যাট ওভাররাইড করতে পারে। + এই নীতিটি লগইন স্ক্রিন এবং ব্যবহারকারীর সেশনগুলির জন্য ডিফল্ট হিসেবে ব্যবহারের জন্য ঘড়ির ফর্ম্যাট কনফিগার করে। ব্যবহারকারীরা এখনো তাদের অ্যাকাউন্ট থেকে ঘড়ির ফর্ম্যাট ওভাররাইড করতে পারে। যদি নীতিটি সত্যতে সেট করা থাকে তাহলে ডিভাইসটি ২৪ ঘন্টার ঘড়ি ফর্ম্যাট ব্যবহার করবে। যদি নীতিটি মিথ্যাতে সেট করে থাকে তাহলে ডিভাইসটি ১২ ঘন্টার ঘড়ি ফর্ম্যাট ব্যবহার করবে। @@ -2594,11 +2613,11 @@ <translation id="8114382167597081590">YouTube এ সীমাবদ্ধ মোড বলবৎ করবেন না</translation> <translation id="8118665053362250806">মিডিয়া ডিক্স ক্যাশে সাকার সেট করুন</translation> <translation id="8124468781472887384">ডিভাইস প্রিন্টার কনফিগারেশন অ্যাক্সেস নীতি।</translation> -<translation id="8135937294926049787">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর AC শক্তি চলতে থাকলেও স্ক্রীন বন্ধ হয়ে যায়৷ +<translation id="8135937294926049787">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর AC শক্তি চলতে থাকলেও স্ক্রিন বন্ধ হয়ে যায়৷ - যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রীন বন্ধ হয়ে যাওয়ার উপর ক্রিয়া করার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ + যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <ph name="PRODUCT_OS_NAME" /> এর দ্বারা স্ক্রিন বন্ধ হয়ে যাওয়ার উপর ক্রিয়া করার পূর্বে ব্যবহারকারীকে যতটা সময় অবশ্যই নিষ্ক্রিয় অবস্থায় থাকতে হবে সেই সময়টিকে নির্দিষ্ট করে৷ - যখন এই নীতিটিকে শুন্যতে সেট করা হয়, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রীনটি বন্ধ হয়ে যায় না৷ + যখন এই নীতিটিকে শুন্যতে সেট করা হয়, তখন ব্যবহারকারী নিষ্ক্রিয় অবস্থায় থাকলেও <ph name="PRODUCT_OS_NAME" /> স্ক্রিনটি বন্ধ হয়ে যায় না৷ যখন এই নীতিটিকে সেট করা হয় না, তখন একটি ডিফল্ট সময়কাল ব্যবহৃত হয়৷ @@ -2644,11 +2663,11 @@ <translation id="8214600119442850823">পাসওয়ার্ড পরিচালক কনফিগার করে।</translation> <translation id="8217516105848565518">এই নীতি থামিয়ে দেওয়া হয়েছে। অনুগ্রহ করে এর পরিবর্তে RemoteAccessHostDomainList ব্যবহার করুন।</translation> <translation id="8244525275280476362">একটি নীতি অবৈধতার পরে সর্বোচ্চ আনয়ন বিলম্ব হয়</translation> -<translation id="8256688113167012935">সংশ্লিষ্ট ডিভাইস-স্থানীয় অ্যাকাউন্টের লগইন স্ক্রীনে দেখানো <ph name="PRODUCT_OS_NAME" /> অ্যাকাউন্ট নাম নিয়ন্ত্রণ করে৷ +<translation id="8256688113167012935">সংশ্লিষ্ট ডিভাইস-স্থানীয় অ্যাকাউন্টের লগইন স্ক্রিনে দেখানো <ph name="PRODUCT_OS_NAME" /> অ্যাকাউন্ট নাম নিয়ন্ত্রণ করে৷ - যদি এই নীতিটি সেট করা হয়, তাহলে যথাযত ডিভাইস-স্থানীয় অ্যাকাউন্টের জন্য লগইন স্ক্রীন ছবি ভিত্তিক লগইন চয়নকারীতে নির্দিষ্ট স্ট্রিং ব্যবহার করবে৷ + যদি এই নীতিটি সেট করা হয়, তাহলে যথাযত ডিভাইস-স্থানীয় অ্যাকাউন্টের জন্য লগইন স্ক্রিন ছবি ভিত্তিক লগইন চয়নকারীতে নির্দিষ্ট স্ট্রিং ব্যবহার করবে৷ - যদি এই নীতিটি সেট না করা হয়, তাহলে <ph name="PRODUCT_OS_NAME" /> লগইন স্ক্রীনে প্রদর্শন নাম হিসেবে ডিভাইস-স্থানীয় অ্যাকাউন্টের ইমেল অ্যাকাউন্ট ID ব্যবহার করবে৷ + যদি এই নীতিটি সেট না করা হয়, তাহলে <ph name="PRODUCT_OS_NAME" /> লগইন স্ক্রিনে প্রদর্শন নাম হিসেবে ডিভাইস-স্থানীয় অ্যাকাউন্টের ইমেল অ্যাকাউন্ট ID ব্যবহার করবে৷ এই নীতিটি নিয়মিত ব্যবহারকারীর অ্যাকাউন্টের জন্য উপেক্ষা করা হয়৷</translation> <translation id="8259375588339409826">Chromium এবং Google Chrome দুটিতেই একই নীতি প্রযোজ্য হয়। @@ -2682,8 +2701,8 @@ একে সত্যতে সেট করে রাখাটাই প্রস্তাবিত রয়েছে। একে মিথ্যাতে সেট করে রাখার একটিই যৌক্তিক কারণ হতে পারে, তা হলো এটা যদি বিদ্যমান PAC স্ক্রিপ্টগুলিতে কোনো সামঞ্জস্যতার সমস্যা তৈরি করে। ভবিষ্যতে এই ওভাররাইডটি সরিয়ে ফেলার ইচ্ছা রয়েছে।</translation> -<translation id="8285435910062771358">পূর্ণ-স্ক্রীন ম্যাগনিফায়ার সক্ষম রয়েছে</translation> -<translation id="8288199156259560552">Android Google অবস্থান পরিষেবা সক্ষম করে</translation> +<translation id="8285435910062771358">পূর্ণ-স্ক্রিন ম্যাগনিফায়ার সক্ষম রয়েছে</translation> +<translation id="8288199156259560552">Android Google লোকেশন পরিষেবা সক্ষম করে</translation> <translation id="8294750666104911727">সাধারণত chrome=1 এ সেট করা X-UA-সামঞ্জস্যপূর্ণ-এর সাথে পৃষ্ঠাগুলি 'ChromeFrameRendererSettings' নীতির নির্বিশেষে <ph name="PRODUCT_FRAME_NAME" /> এ রেন্ডার হবে৷ যদি আপনি এই সেটিংস সক্ষম করেন, তবে মেটা ট্যাগগুলির জন্য পৃষ্ঠাগুলি স্ক্যান করা হবে না৷ @@ -2706,7 +2725,7 @@ <translation id="8344454543174932833">প্রথমবার চালনার সাথে সাথে ডিফল্ট ব্রাউজার থেকে বুকমার্কগুলি আমদানি করুন</translation> <translation id="8357681633047935212">একটি ব্যবহারকারীর সেশনের সময় পর্ব সীমিত করুন</translation> <translation id="8359734107661430198">২০০৮/০৯/০২ এর মধ্যের ExampleDeprecatedFeature API সক্ষম করুন</translation> -<translation id="8369602308428138533">AC পাওয়ার চলাকালীন স্ক্রীন বন্ধে বিলম্ব</translation> +<translation id="8369602308428138533">AC পাওয়ার চলাকালীন স্ক্রিন বন্ধে বিলম্ব</translation> <translation id="8380490658357556620">যখন দূরবর্তী ক্লায়েন্ট এই মেশিনের সঙ্গে একটি সংযোগ স্থাপনের চেষ্টা করে তখন রিলে সার্ভারগুলিকে সক্ষম করে। যদি এই সেটিং সক্ষম থাকে এবং যখন একটি সরাসরি সংযোগ (উদাঃ ফায়ারওয়াল জনিত নিষেধাজ্ঞার কারণে) উপলব্ধ থাকে না তখন দূরবর্তী ক্লায়েন্ট এই মেশিনে সংযোগ করতে রিলে সার্ভারগুলি ব্যবহার করবে। @@ -2825,9 +2844,9 @@ স্কেল ফ্যাক্টরকে অবশ্যই ১০০% বা তার বেশি হতে হবে৷ নিয়মিত স্ক্রীনের অনুজ্জ্বলতা বিলম্ব থেকে উপস্থাপনা মোডে স্ক্রীনের অনুজ্জ্বলতা বিলম্বের মান কম হওয়া অনুমোদিত নয়৷</translation> <translation id="8798099450830957504">ডিফল্ট</translation> -<translation id="8818173863808665831">ডিভাইসের ভৌগলিক অবস্থান প্রতিবেদন করুন৷ +<translation id="8818173863808665831">ডিভাইসের ভৌগলিক লোকেশন প্রতিবেদন করুন৷ - যদি নীতি সেট না করা হয় বা মিথ্যা হিসাবে সেট করা হয়, অবস্থানের বিষয়ে জানানো হবে না৷</translation> + যদি নীতি সেট না করা হয় বা মিথ্যা হিসাবে সেট করা হয়, লোকেশনের বিষয়ে জানানো হবে না৷</translation> <translation id="8818768076343557335">সেলুলার নয় এমন যেকোনো নেটওয়ার্কে নেটওয়ার্ক ক্রিয়াগুলির পূর্বাভাষ দিন। (৫০ এ থামানো হয়, ৫২ তে সরানো হয়। ৫২ এর পর, যদি মান ১ সেট করা হয়, তাহলে এটি ০ হিসাবে গণ্য করা হবে - যেকোনো নেটওয়ার্ক সংযোগে নেটওয়ার্ক ক্রিয়াগুলির পূর্বাভাষ দিন।)</translation> <translation id="8825782996899863372">ফিশিং পৃষ্ঠায় পাসওয়ার্ড আবার ব্যবহার করা হয়েছে বলে পাসওয়ার্ড সুরক্ষার সতর্কতা জানানো হয়েছে</translation> @@ -2872,11 +2891,11 @@ যখন এই নীতিটি শুন্য থেকে বেশি কোনো মানে সেট থাকে, তখন তা <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 id="891435090623616439">একটি JSON স্ট্রিং হিসেবে এনকোড করা রয়েছে, বিশদ বিবরণের জন্য <ph name="COMPLEX_POLICIES_URL" /> দেখুন</translation> @@ -2886,7 +2905,7 @@ যদি এই নীতিটি সেট করা না থাকে তাহলে <ph name="PRINTERS_ALLOW_ALL" /> নীতি মেনে চলা হয়। </translation> -<translation id="8947415621777543415">ডিভাইসের অবস্থান অভিযোগ করুন</translation> +<translation id="8947415621777543415">ডিভাইসের লোকেশন অভিযোগ করুন</translation> <translation id="8951350807133946005">ডিস্ক ক্যাশে ডিরেক্টরি সেট করুন</translation> <translation id="8952317565138994125">Google আয়োজিত সিঙ্ক্রোনাইজেশন পরিষেবা ব্যবহার করে <ph name="PRODUCT_NAME" /> এ ডেটা সিঙ্ক্রোনাইজেশনকে আটকায় এবং ব্যবহারকারীদের এই সেটিং পরিবর্তন করা থেকে আটকায়। @@ -2989,6 +3008,7 @@ এছাড়াও এতে AC পাওয়ার ও ব্যাটারির জন্য আলাদা সেটিংস রয়েছে। </translation> <translation id="9105265795073104888">প্রক্সী কনফিগারেশন বিকল্পগুলির কেবল একটি উপসেট Android অ্যাপ্লিকেশানগুলির জন্য উপলব্ধ করা হয়। Android অ্যাপ্লিকেশানগুলি স্বেচ্ছায় প্রক্সী ব্যবহার করতে চয়ন করতে পারে। আপনি সেগুলিকে কোনো প্রক্সী ব্যবহার করতে বাধ্য করতে পারবেন না।</translation> +<translation id="9106865192244721694">এই সাইটগুলিতে WebUSB-এর অনুমতি দিন</translation> <translation id="9112727953998243860">এন্টারপ্রাইজ প্রিন্টার কনফিগারেশন ফাইল</translation> <translation id="9112897538922695510">আপনাকে প্রোটোকল হ্যান্ডেলার একটি তালিকায় নিবন্ধন করার অনুমতি দেয়। এটি কেবলমাত্র একটি প্রস্তাবিত নীতি হতে পারে। আপনাকে প্রোটোকল হ্যান্ডলারের একটি তালিকায় নিবন্ধন করার অনুমতি দেয়। এটি কেবলমাত্র একটি প্রস্তাবিত নীতি হতে পারে। প্রপার্টি |protocol|, 'mailto' এর মতো স্কিমে সেট করা উচিত এবং প্রপার্টি |url| অ্যাপ্লিকেশানের URL প্যাটার্ন যা স্কিম পরিচালনা করে তাতে সেট করা উচিত। যদি বর্তমানটি পরিচালিত URL দ্বারা প্রতিস্থাপিত হয় তাহলে প্যাটার্নে '%s' একটি থাকতে পারে। @@ -3022,6 +3042,11 @@ <translation id="915194831143859291">এই নীতিটি মিথ্যাতে সেট করা হলে বা কনফিগার করা না থাকলে, <ph name="PRODUCT_OS_NAME" /> ব্যবহারকারীকে ডিভাইস শাট ডাউন করার অনুমতি দেবে। এই নীতিটি যদি সত্যতে সেট করা থাকে, তাহলে ব্যবহারকারী ডিভাইস শাট ডাউন করলে <ph name="PRODUCT_OS_NAME" /> রিবুট করার প্রক্রিয়া শুরু করবে। <ph name="PRODUCT_OS_NAME" /> পুনরায় বুট করার বোতাম দ্বারা UI এ শাটডাউন বোতামগুলির সব ঘটনাকে প্রতিস্থাপন করবে। ব্যবহারকারী পাওয়ার বোতাম ব্যবহার করে ডিভাইসটি শাট ডাউন করলে, এটি স্বয়ংক্রিয়ভাবে পুনরায় বুট করা হবে না, এমনকি নীতিটি সক্ষম করা থাকলেও।</translation> <translation id="9158929520101169054">ব্রাউজারের মধ্যে একাধিক সাইন-ইনের অনুমতি দিন</translation> +<translation id="9165792353046089850">ওয়েবসাইটগুলিকে কানেক্ট করা ইউএসবি ডিভাইসে অ্যাক্সেস দেওয়া হবে কিনা, তা সেট করতে দেয়। অ্যাক্সেস পুরোপুরি ব্লক করা যাবে অথবা যখনই কোনও ওয়েবসাইট কানেক্ট করা ইউএসবি ডিভাইসে অ্যাক্সেস চাইবে তখনই ব্যবহারকারীকে জিজ্ঞাসা করা হবে। + + এই নীতিটি নির্দিষ্ট URL প্যাটার্নের ক্ষেত্রে 'WebUsbAskForUrls' এবং 'WebUsbBlockedForUrls' নীতির মাধ্যমে ওভাররাইড করা যাবে। + + এই নীতিটি সেট না করে রাখা হলে '৩' ব্যবহার করা হবে এবং ব্যবহারকারী এটি পরিবর্তন করতে পারবেন।</translation> <translation id="9185107612228451403">এক্সটেনশন সম্পর্কিত নীতি কনফিগার করে। কালোতালিকাভুক্ত এক্সটেনশনগুলি সাদাতালিকাভুক্ত না হওয়া পর্যন্ত সেগুলি লোড করার জন্য ব্যবহারকারীরা অনুমতি প্রাপ্ত নন। আপনি <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> এ এক্সটেনশনগুলিকে নির্দিষ্ট করে <ph name="PRODUCT_NAME" /> কে স্বয়ংক্রিয়ভাবে ইনস্টল করার জন্য জোর করতে পারেন। জোর করে ইনস্টল করা এক্সটেনশনগুলি কালোতালিকায় আছে কিনা তা নির্বিশেষে ইনস্টল করা হয়।</translation> <translation id="9187743794267626640">বাহ্যিক সঞ্চয়স্থানের মাউন্টিং অক্ষম করুন</translation> <translation id="9197740283131855199">যদি অনুজ্জ্বলতার পর ব্যবহারকারী সক্রিয় হয় তাহলে স্ক্রীনের অনুজ্জ্বলতা বিলম্ব যে শতাংশের দ্বারা স্কেল করা হয়</translation>
diff --git a/components/policy/resources/policy_templates_ca.xtb b/components/policy/resources/policy_templates_ca.xtb index 91ed313..cd65b247 100644 --- a/components/policy/resources/policy_templates_ca.xtb +++ b/components/policy/resources/policy_templates_ca.xtb
@@ -423,7 +423,7 @@ <ph name="PRINTER_DISPLAY_NAME" /> i <ph name="PRINTER_DESCRIPTION" /> són cadenes de format lliure que es poden personalitzar per facilitar la selecció de la impressora. Les cadenes <ph name="PRINTER_MANUFACTURER" /> i <ph name="PRINTER_MODEL" /> representen el fabricant i el model de la impressora, i serveixen perquè els usuaris finals puguin identificar la impressora més fàcilment. <ph name="PRINTER_URI" /> ha de ser una adreça accessible des d'un ordinador de client, com ara <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> i <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> és opcional. Si s'indica, s'utilitza per eliminar la duplicació d'impressores <ph name="ZEROCONF_DISCOVERY" />. - <ph name="PRINTER_EFFECTIVE_MODEL" /> ha de coincidir amb una de les cadenes que representen una impressora <ph name="PRODUCT_NAME" /> admesa. La cadena s'utilitzarà per identificar i instal·lar el fitxer PPD adequat per a la impressora. Pots trobar-ne més informació a https://support.google.com/chrome?p=noncloudprint. + <ph name="PRINTER_EFFECTIVE_MODEL" /> ha de coincidir amb una de les cadenes que representen una impressora compatible amb <ph name="PRODUCT_NAME" />. La cadena s'utilitzarà per identificar i instal·lar el fitxer PPD adequat per a la impressora. Pots trobar-ne més informació a https://support.google.com/chrome?p=noncloudprint. La configuració d'una impressora es completa quan s'utilitza per primera vegada, moment en què es baixen els fitxers PPD. Després, els que s'utilitzen sovint es desen a la memòria cau. @@ -648,13 +648,6 @@ Si s'utilitza, l'usuari només tindrà a la seva disposició les impressores amb identificadors que coincideixin amb els valors d'aquesta política. Els identificadors han de correspondre amb el camp "id" o "guid" del fitxer especificat a <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Permet que la funció Toca per cercar estigui disponible a la visualització de contingut de <ph name="PRODUCT_NAME" />. - - Si activeu aquesta opció de configuració, l'usuari tindrà a la seva disposició la funció Toca per cercar i podrà activar-la i desactivar-la. - - Si desactiveu aquesta opció, la funció Toca per cercar estarà totalment desactivada. - - No establir aquesta política és igual que activar l'opció de configuració, amb el funcionament descrit abans.</translation> <translation id="285480231336205327">Activa el mode d'alt contrast</translation> <translation id="2854919890879212089">Fa que <ph name="PRODUCT_NAME" /> utilitzi la impressora predeterminada del sistema com a opció predeterminada a Previsualització de la impressió en lloc d'utilitzar la impressora que s'ha fet servir més recentment. @@ -1577,7 +1570,6 @@ Si no s'estableix aquesta política, els comentaris de veu es desactivaran quan la pantalla d'inici de sessió es mostri per primera vegada. Els usuaris poden activar o desactivar els comentaris de veu en qualsevol moment i el seu estat a la pantalla d'inici de sessió es mantindrà entre els usuaris.</translation> <translation id="5868414965372171132">Configuració de la xarxa per part de l'usuari</translation> -<translation id="588135807064822874">Activa Toca per cercar</translation> <translation id="5883015257301027298">Configuració predeterminada de les galetes</translation> <translation id="5887414688706570295">Configura el prefix TalkGadget que utilitzaran els amfitrions d'accés remot i que impedeix que els usuaris el canviïn. @@ -1837,11 +1829,6 @@ <translation id="6689792153960219308">Informa de l'estat del maquinari</translation> <translation id="6698071416141001300">El marcatge de la protecció de contrasenyes als comptes en perill s'activa quan es reutilitza una contrasenya</translation> <translation id="6699880231565102694">Activació de l'autenticació de dos factors per als amfitrions d'accés remot</translation> -<translation id="6702257826895463228">Permet que els llocs web naveguin i obrin finestres emergents simultàniament. - - Per veure l'explicació completa, consulta https://www.chromestatus.com/features/5675755719622656. - Si aquesta política està activada, els llocs web podran navegar i obrir finestres o pestanyes noves simultàniament. - Si aquesta política està activada o no s'estableix, els llocs web no podran navegar i obrir finestres o pestanyes noves simultàniament.</translation> <translation id="6724842112053619797">Si actives aquesta opció de configuració, les opcions de configuració emmagatzemades als perfils que hi ha a <ph name="PRODUCT_NAME" />, com ara les adreces d'interès, les dades d'Emplenament automàtic o les contrasenyes, entre d'altres, també s'introduiran en un fitxer emmagatzemat a la carpeta Itinerància del perfil de l'usuari o a la ubicació especificada per l'administrador a la política <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. En activar aquesta política, es desactiva la sincronització en núvol. Si aquesta política es desactiva o no es defineix, només s'utilitzaran els perfils locals habituals.
diff --git a/components/policy/resources/policy_templates_cs.xtb b/components/policy/resources/policy_templates_cs.xtb index a4d90f7..c7da8d2 100644 --- a/components/policy/resources/policy_templates_cs.xtb +++ b/components/policy/resources/policy_templates_cs.xtb
@@ -27,6 +27,7 @@ Je-li nastavena tato zásada, přihlašovací obrazovka se vždy zobrazí v jazyce, který je určen první hodnotou této zásady (z důvodu kompatibility s budoucími verzemi je zásada definována jako seznam). Pokud tato zásada není nastavena nebo je nastavena na prázdný seznam, zobrazí se přihlašovací obrazovka v jazyce poslední uživatelské relace. Pokud je tato zásada nastavena na hodnotu, která není platným jazykem, zobrazí se přihlašovací obrazovka v záložním jazyce (aktuálně americká angličtina).</translation> <translation id="1062011392452772310">Povolit vzdálené ověření identity zařízení</translation> <translation id="1062407476771304334">Nahradit</translation> +<translation id="1079801999187584280">Zakázat používání Nástrojů pro vývojáře</translation> <translation id="109166998561583554">Ochrana hesla – spouštěč označení účtu jako ohroženého</translation> <translation id="1093082332347834239">Pokud je zapnuto toto nastavení, hostitel vzdálené pomoci bude spuštěn v procesu s oprávněními <ph name="UIACCESS_PERMISSION_NAME" />. Vzdálení uživatelé tak na počítači místního uživatele budou moci provádět interakci s okny, která vyžadují zvýšená oprávnění. @@ -78,6 +79,7 @@ Hodnota prodloužení musí být 100 % nebo více.</translation> <translation id="131353325527891113">Zobrazit uživatelská jména na přihlašovací obrazovce</translation> +<translation id="1325295456374328159">Nakonfigurovat povolená národní prostředí v uživatelské relaci</translation> <translation id="1327466551276625742">Povolit zobrazení výzvy ke konfiguraci sítě v režimu offline</translation> <translation id="1330145147221172764">Povolit softwarovou klávesnici</translation> <translation id="13356285923490863">Název zásady</translation> @@ -90,6 +92,12 @@ <translation id="1387596372902085462">Zda důvěřovat starší infrastruktuře PKI od společnosti Symantec</translation> <translation id="1393485621820363363">Povolené podnikové tiskárny pro zařízení</translation> <translation id="1397855852561539316">URL výchozího vyhledávače pro návrhy</translation> +<translation id="1424081297104898791">Umožňuje ovládat, kde je možné používat Nástroje pro vývojáře. + + Pokud je tato zásada nastavena na možnost DeveloperToolsDisallowedForForceInstalledExtensions (hodnota 0, výchozí pro podnikové uživatele), je přístup k Nástrojům pro vývojáře a konzoli JavaScriptu obecně povolen, ale není povolen v kontextu rozšíření nainstalovaných pomocí podnikových zásad. + Je-li tato zásada nastavena na možnost DeveloperToolsAllowed (hodnota 1, výchozí pro nespravované uživatele), je možné Nástroje pro vývojáře a konzoli JavaScriptu otevřít a používat ve všech kontextech, včetně rozšíření nainstalovaných pomocí podnikových zásad. + Je-li tato zásada nastavena na možnost DeveloperToolsDisallowed (hodnota 2), Nástroje pro vývojáře nelze otevřít a nelze prozkoumávat prvky na webech. Deaktivovány budou také veškeré klávesové zkratky a položky klasických či kontextových nabídek, pomocí kterých lze nástroje pro vývojáře nebo konzoli JavaScriptu otevřít. + Pokud je starší zásada DeveloperToolsDisabled nastavena na hodnotu true, je hodnota této zásady ignorována a Nástroje pro vývojáře jsou zakázány.</translation> <translation id="1426410128494586442">Ano</translation> <translation id="1427655258943162134">Adresa (nebo adresa URL) proxy serveru</translation> <translation id="1435659902881071157">Konfigurace sítě na úrovni zařízení</translation> @@ -192,6 +200,7 @@ <translation id="1803646570632580723">Seznam připnutých aplikací, které se zobrazují ve spouštěči</translation> <translation id="1808715480127969042">Blokovat soubory cookie na těchto stránkách</translation> <translation id="1810261428246410396">Povolit používání dynamického tetheringu</translation> +<translation id="1826282708349731794">Určuje, jak nástroj Chrome Cleanup hlásí data do Googlu</translation> <translation id="1827523283178827583">Použít pevně dané servery proxy</translation> <translation id="1843117931376765605">Obnovovací frekvence zásad pro uživatele</translation> <translation id="1844620919405873871">Konfiguruje zásady související s rychlým odemknutím.</translation> @@ -580,6 +589,7 @@ Tato zásada nemá vliv na to, zda uživatelé mohou konfigurovat tiskárny na jednotlivých zařízeních. Je zamýšlena jako doplněk ke konfiguraci tiskáren ze strany jednotlivých uživatelů. </translation> <translation id="2633084400146331575">Aktivovat hlasovou odezvu</translation> +<translation id="2640843331263301324">Povoluje v systému Windows nástroj Chrome Cleanup</translation> <translation id="2646290749315461919">Umožňuje nastavit, zda mohou webové stránky sledovat fyzickou polohu uživatele. Sledování fyzické polohy uživatelů lze nakonfigurovat tak, že bude ve výchozím nastavení povoleno nebo zakázáno. Také lze nastavit, že se při každém pokusu webových stránek o sledování fyzické polohy uživateli zobrazí výzva. Není-li zásada nastavena, bude použita zásada AskGeolocation a uživatel ji bude moci změnit.</translation> @@ -649,13 +659,6 @@ Je-li tato zásada použita, bude mít uživatel k dispozici pouze tiskárny, jejichž ID se shodují s hodnotami v této zásadě. ID musejí odpovídat polím „id“ a „guid“ v souboru, který je uveden v zásadě <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Aktivuje dostupnost Vyhledání klepnutím v zobrazení obsahu prohlížeče <ph name="PRODUCT_NAME" />. - -Pokud toto nastavení aktivujete, Vyhledání klepnutím bude pro uživatele dostupné (uživatel jej bude moci zapnout nebo vypnout). - -Pokud toto nastavení deaktivujete, Vyhledání klepnutím bude zcela vypnuté. - -Pokud zásadu nenastavíte, bude se považovat za aktivované (viz popis výše).</translation> <translation id="285480231336205327">Aktivovat vysoce kontrastní režim</translation> <translation id="2854919890879212089">Způsobí, že bude <ph name="PRODUCT_NAME" /> v Náhledu tisku jako výchozí výběr používat výchozí tiskárnu systému (namísto naposledy použité tiskárny). @@ -1224,12 +1227,14 @@ <translation id="4554651132977135445">Režim zpracování zásad pro uživatele (loopback)</translation> <translation id="4555850956567117258">Aktivuje vzdálené ověření identity uživatele</translation> <translation id="4557134566541205630">Výchozí adresa URL stránky nové karty poskytovatele vyhledávání</translation> +<translation id="4567137030726189378">Povolit použití Nástrojů pro vývojáře</translation> <translation id="4600786265870346112">Aktivovat velký kurzor</translation> <translation id="4604931264910482931">Konfigurace seznamu zakázaných položek zasílání nativních zpráv</translation> <translation id="4613508646038788144">Je-li tato zásada nastavena na hodnotu false, bude software třetích stran moci vkládat spustitelný kód do procesů prohlížeče Chrome. Pokud tato zásada není nastavena nebo je nastavena na hodnotu true, bude mít software třetích stran vkládání spustitelného kódu do procesů prohlížeče Chrome zakázáno.</translation> <translation id="4617338332148204752">Přeskočení kontroly metaznaček ve službě <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfigurovat seznam povolených pro instalaci rozšíření</translation> <translation id="4632343302005518762">Umožnit pluginu <ph name="PRODUCT_FRAME_NAME" /> zpracovávat uvedené typy obsahu</translation> +<translation id="4632566332417930481">Umožňuje zakázat používání Nástrojů pro vývojáře v rozšířeních nainstalovaných pomocí podnikových zásad, ale povolit jejich používání v jiných kontextech</translation> <translation id="4633786464238689684">Změní výchozí chování horní řady kláves tak, aby tyto klávesy fungovaly jako funkční. Pokud je tato zásada nastavena na hodnotu true, klávesy v horní řadě budou ve výchozím nastavení fungovat jako funkční klávesy. Aby tyto klávesy fungovaly jako mediální, je potřeba současně stisknout vyhledávací tlačítko. @@ -1499,10 +1504,14 @@ Není-li nastavena, může se uživatelům zobrazit výzva, zda chtějí vyhledávač importovat, nebo může import probíhat automaticky.</translation> <translation id="5423197884968724595">Název omezení Android WebView:</translation> +<translation id="5442026853063570579">Tato zásada také ovládá přístup k možnostem Pro vývojáře v systému Android. Pokud tuto zásadu nastavíte na možnost DeveloperToolsDisallowed (hodnota 2), uživatelé k možnostem Pro vývojáře nebudou mít přístup. Pokud tuto zásadu nastavíte na jinou hodnotu nebo ji nenastavíte, uživatelé budou moci možnosti Pro vývojáře otevřít tak, že v aplikaci Nastavení Android sedmkrát klepnou na číslo sestavení.</translation> <translation id="5447306928176905178">Povolit hlášení informací o paměti (velikost haldy JavaScriptu) stránce (podpora byla ukončena)</translation> <translation id="5457065417344056871">Povolit v prohlížeči režim hosta</translation> <translation id="5457924070961220141">Umožňuje nakonfigurovat výchozí modul vykreslování obsahu HTML, pokud je nainstalován plugin <ph name="PRODUCT_FRAME_NAME" />. Pokud není tato zásada nastavena, vykresluje obsah ve výchozím nastavení hostitelský prohlížeč, toto nastavení však můžete přepsat a namísto toho vykreslovat stránky HTML pomocí pluginu <ph name="PRODUCT_FRAME_NAME" />.</translation> +<translation id="5459155981813668716">Konfiguruje jazyky, v nichž se systém <ph name="PRODUCT_OS_NAME" /> může zobrazovat. + + Pokud je tato zásada nastavena, může uživatel nakonfigurovat zobrazení systému <ph name="PRODUCT_OS_NAME" /> v některém z jazyků uvedených v této zásadě. Pokud tato zásada není nastavena nebo je nastavena na prázdný seznam, může být systém <ph name="PRODUCT_OS_NAME" /> zobrazen ve všech podporovaných jazycích. Jestliže seznam v této zásadě bude zahrnovat neplatné hodnoty, tyto hodnoty budou ignorovány. Pokud uživatel v minulosti systém <ph name="PRODUCT_OS_NAME" /> nakonfiguroval na zobrazení v jazyce, který tato zásada nepovoluje, přepne se zobrazovaný jazyk při příštím přihlášení uživatele na povolený jazyk. Pokud uživatel nakonfiguroval preferované jazyky a některý z nich je touto zásadou povolen, přejde <ph name="PRODUCT_OS_NAME" /> na daný jazyk. Jinak <ph name="PRODUCT_OS_NAME" /> přejde na první platnou hodnotu v této zásadě, případně na záložní jazyk (aktuálně en-US), pokud tato zásada obsahuje pouze neplatné hodnoty.</translation> <translation id="5464816904705580310">Konfigurace nastavení pro spravované uživatele</translation> <translation id="546726650689747237">Prodleva snížení jasu obrazovky při napájení ze sítě</translation> <translation id="5469484020713359236">Umožňuje nastavit seznam vzorů adres URL webových stránek, které mohou nastavovat soubory cookie. @@ -1624,7 +1633,6 @@ Pokud tuto zásadu nenastavíte, bude při prvním zobrazení přihlašovací obrazovky hlasová odezva deaktivována. Uživatelé budou moci hlasovou odezvu kdykoli aktivovat nebo deaktivovat a zvolený stav na přihlašovací obrazovce přetrvá i u jiných uživatelů.</translation> <translation id="5868414965372171132">Konfigurace sítě na úrovni uživatele</translation> -<translation id="588135807064822874">Povolit funkci Vyhledávání klepnutím</translation> <translation id="5883015257301027298">Výchozí nastavení souborů cookie</translation> <translation id="5887414688706570295">Slouží ke konfiguraci předpony TalkGadget, kterou budou používat hostitelé vzdáleného přístupu, a brání uživatelům, aby ji změnili. @@ -1728,6 +1736,7 @@ <translation id="6036523166753287175">Povolení přechodu přes bránu firewall z hostitele vzdáleného připojení</translation> <translation id="6070667616071269965">Rozložení klávesnice na přihlašovací obrazovce zařízení</translation> <translation id="6074963268421707432">Nepovolovat žádnému webu zobrazovat oznámení na ploše</translation> +<translation id="6074964551275531965">Nastavit dobu pro oznámení o aktualizacích</translation> <translation id="6076099373507468537">Definuje seznam zařízení USB, která lze odpojit od ovladače jádra a použít přímo ve webové aplikaci prostřednictvím rozhraní chrome.usb API. Hodnotami jsou páry identifikátorů (dodavatel a produkt), které určují konkrétní hardwarové zařízení. Pokud tato zásada není nastavena, seznam odpojitelných zařízení USB je prázdný.</translation> @@ -1810,6 +1819,11 @@ Pokud toto nastavení aktivujete nebo nenastavíte žádnou hodnotu, zůstane funkce Automatické vyplňování pod kontrolou uživatelů. Budou moci nakonfigurovat profily této funkce a podle vlastního uvážení ji zapínat nebo vypínat.</translation> <translation id="6394350458541421998">U systémů <ph name="PRODUCT_OS_NAME" /> verze 29 a novějších byla tato zásada zrušena. Použijte prosím namísto toho zásadu PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Odhlášení uživatele</translation> +<translation id="6412477120967771054">Pokud je tato zásada nastavena na hodnotu false, zakazuje nástroji Chrome Cleanup vyhledávat v systému nežádoucí software a čistit jej. Ruční spuštění nástroje Chrome Cleanup ze stránky chrome://settings/cleanup je zakázáno. + + Pokud je tato zásada nastavena na hodnotu true nebo není nastavena, bude Chrome Cleanup v systému pravidelně vyhledávat nežádoucí software, a pokud nějaký najde, zeptá se uživatele, zda jej chce odstranit. Ruční spuštění nástroje Chrome Cleanup ze stránky chrome://settings je povoleno. + + V instancích systému Windows, které nejsou zařazeny do domény <ph name="MS_AD_NAME" />, tato zásada není k dispozici.</translation> <translation id="6417861582779909667">Umožňuje nastavit seznam vzorů adres URL webových stránek, které nemají povoleno nastavovat soubory cookie. Pokud zásadu nenastavíte, použije se pro všechny webové stránky globální výchozí hodnota buď ze zásady DefaultCookiesSetting (pokud je nastavena), nebo z osobního nastavení uživatele.</translation> @@ -1832,6 +1846,13 @@ Výběr webů, které mohou spouštět Flash, lze nastavit pomocí zásad DefaultPluginsSetting, PluginsAllowedForUrls a PluginsBlockedForUrls. Pokud je toto nastavení zakázáno nebo není nastaveno, obsah Flash z jiných zdrojů a malý obsah může být blokován.</translation> +<translation id="6535639183431116351">Podpora této zásady byla ve verzi M68 ukončena. Použijte namísto ní zásadu DeveloperToolsAvailability. + + Deaktivuje nástroje pro vývojáře a konzoli JavaScriptu. + + Pokud toto nastavení aktivujete, nebude možné používat Nástroje pro vývojáře ani kontrolovat prvky webových stránek. Deaktivovány budou také veškeré klávesové zkratky a položky klasických či kontextových nabídek, pomocí kterých lze nástroje pro vývojáře nebo konzoli JavaScriptu otevřít. + + Pokud tuto možnost deaktivujete nebo ponecháte nenastavenou, uživatelé Nástroje pro vývojáře a konzoli JavaScriptu budou moci používat.</translation> <translation id="653608967792832033">Udává dobu nečinnosti uživatele, po které bude obrazovka při napájení z baterie uzamčena. Pokud je tato zásada nastavena na hodnotu větší než nula, jedná se o dobu, po kterou musí uživatel zůstat v nečinnosti, než systém <ph name="PRODUCT_OS_NAME" /> uzamkne obrazovku. @@ -1896,11 +1917,6 @@ <translation id="6689792153960219308">Nahlásit stav hardwaru</translation> <translation id="6698071416141001300">Ochrana hesla – označení účtu jako ohroženého je spouštěno opětovným použitím hesla</translation> <translation id="6699880231565102694">Povolit dvoufázové ověření pro hostitele vzdáleného přístupu</translation> -<translation id="6702257826895463228">Povoluje webům provádět navigaci zároveň s otevíráním vyskakovacích oken. - - Úplné vysvětlení najdete na stránce https://www.chromestatus.com/features/5675755719622656. - Je-li tato zásada aktivována, budou weby moci zároveň provádět navigaci a otevírat nová okna/karty. - Pokud je tato zásada zakázána nebo není nastavena, budou mít weby současné provádění navigace a otevírání nových oken/karet zakázáno.</translation> <translation id="6724842112053619797">Pokud zapnete toto nastavení, budou nastavení uložená v profilech <ph name="PRODUCT_NAME" /> (např. záložky, data automatického vyplňování nebo hesla) zapsána také do souboru uloženého ve složce cestovního uživatelského profilu nebo v umístění, které definuje administrátor prostřednictvím zásady <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Aktivací této zásady deaktivujete cloudovou synchronizaci. Pokud je tato zásada zakázána nebo není nastavena, budou se používat pouze běžné místní profily. @@ -2253,6 +2269,7 @@ Další informace o Bezpečném prohlížení najdete na stránce https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Omezit účty, které jsou v prohlížeči <ph name="PRODUCT_NAME" /> viditelné</translation> <translation id="7651739109954974365">Určuje, zda bude v zařízení povolen datový roaming. Pokud je tato zásada nastavena na hodnotu True, je datový roaming povolen. Pokud tato zásada není nastavena nebo je nastavena na hodnotu False, datový roaming nebude k dispozici.</translation> +<translation id="7673194325208122247">Doba (v milisekundách)</translation> <translation id="7683777542468165012">Dynamická aktualizace zásad</translation> <translation id="7694807474048279351">Naplánuje automatický restart po použití aktualizace systému <ph name="PRODUCT_OS_NAME" />. @@ -2383,6 +2400,13 @@ Pokud je toto nastavení vypnuto a odchozí připojení UDP jsou filtrována bránou firewall, může se tento počítač připojit pouze k hostitelským počítačům v místní síti.</translation> <translation id="7976157349247117979">Název cíle <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Pokud tato zásada není nastavena a Chrome Cleanup nalezne nežádoucí software, může metadata o kontrole poskytnout Googlu v souladu s nastavením zásady SafeBrowsingExtendedReportingEnabled. Chrome Cleanup poté uživatele požádá, zda chce nežádoucí software odstranit. Uživatel může výsledky čištění sdílet s Googlem a pomoci tak se zjišťováním nežádoucího softwaru do budoucna. Výsledky obsahují metadata souborů a klíče registru, jak je popsáno v dokumentu Informace o ochraně soukromí v prohlížeči Google Chrome. + + Pokud je tato zásada nastavena na hodnotu false a Chrome Cleanup nalezne nežádoucí software, metadata o kontrole do Googlu nenahlásí (bez ohledu na nastavení zásady SafeBrowsingExtendedReportingEnabled). Chrome Cleanup se uživatele zeptá, zda chce nežádoucí software odstranit. Výsledky čištění nebudou nahlášeny Googlu a nebude je moci nahlásit ani uživatel. + + Pokud je tato zásada nastavena na hodnotu true a Chrome Cleanup nalezne nežádoucí software, může metadata o kontrole nahlásit do Googlu v souladu s nastavením zásady SafeBrowsingExtendedReportingEnabled. Chrome Cleanup se uživatele zeptá, zda chce nežádoucí software odstranit. Výsledky čištění budou nahlášeny Googlu a uživatel tomu nebude moci zabránit. + + V instancích systému Windows, které nejsou zařazeny do domény <ph name="MS_AD_NAME" />, tato zásada není k dispozici.</translation> <translation id="7978060394348264922"> Chcete-li využívat izolaci, ale omezit její dopad na uživatele, použijte zásadu IsolateOrigins se seznamem webů, které chcete izolovat. Toto nastavení SitePerProcess izoluje všechny weby. @@ -2496,6 +2520,7 @@ <translation id="8300455783946254851">Pokud je nastavena na hodnotu True, zakáže synchronizaci Disku Google v aplikaci Soubory v systému <ph name="PRODUCT_OS_NAME" /> při použití mobilního připojení. Data se na Disk Google synchronizují pouze při připojení přes Wi-Fi nebo Ethernet. Pokud tato zásada není nastavena nebo je nastavena na hodnotu False, uživatelé budou moci přenášet soubory na Disk Google prostřednictvím mobilních připojení.</translation> +<translation id="8300992833374611099">Určit, kde je možné používat Nástroje pro vývojáře</translation> <translation id="8312129124898414409">Umožňuje nastavit, zda weby mohou generovat klíče. Generování klíčů je možné všem webům buď povolit, nebo zakázat. Pokud tuto zásadu nenastavíte, použije se zásada BlockKeygen a uživatel ji bude moci změnit.</translation> @@ -2728,6 +2753,11 @@ <translation id="9035964157729712237">ID rozšíření, která mají být vyňata ze seznamu zakázaných</translation> <translation id="9042911395677044526">Umožňuje přenést nastavení sítě, která se uplatní pro jednotlivé uživatele v zařízení se systémem <ph name="PRODUCT_OS_NAME" />. Konfigurace sítě je řetězec ve formátu JSON, který se řídí definicí formátu Open Network Configuration popsanou na stránce <ph name="ONC_SPEC_URL" />.</translation> <translation id="9084985621503260744">Určuje, zda aktivita videa ovlivňuje správu napájení</translation> +<translation id="9085839450090699752">Umožňuje nastavit dobu v milisekundách, po kterou se uživatelům bude zobrazovat oznámení, že je třeba prohlížeč <ph name="PRODUCT_NAME" /> nebo systém <ph name="PRODUCT_OS_NAME" /> restartovat, aby bylo možné nainstalovat nevyřízenou aktualizaci. + + Během této doby bude uživatel opakovaně informován, že je potřeba nainstalovat aktualizaci. Na zařízeních se systémem <ph name="PRODUCT_OS_NAME" /> se oznámení o restartu zobrazuje na hlavním panelu systému, když je zjištěn upgrade. Barva oznámení se změní po uplynutí poloviny lhůty pro oznámení a poté znovu po uplynutí celé lhůty pro oznámení. V prohlížečích <ph name="PRODUCT_NAME" /> se po uplynutí jedné třetiny lhůty pro oznámení změní nabídka aplikace na znamení, že je prohlížeč potřeba aktualizovat. Barva tohoto oznámení se změní po uplynutí dvou třetin lhůty a poté znovu po uplynutí celé lhůty. Další oznámení aktivovaná pomocí zásady <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> pro prohlížeče se řídí stejným časovým plánem. + + Pokud tuto zásadu nenastavíte, použije se pro systém <ph name="PRODUCT_OS_NAME" /> výchozí doba 345 600 000 milisekund (čtyři dny) a pro prohlížeče 604 800 000 milisekund (jeden týden).</translation> <translation id="9088433379343318874">Povolit poskytovatele obsahu pro dozorovaného uživatele</translation> <translation id="9088444059179765143">Konfigurace metody automatického zjišťování časového pásma</translation> <translation id="9096086085182305205">Seznam povolených serverů pro ověřování</translation>
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb index 14f1456..279ce1ff 100644 --- a/components/policy/resources/policy_templates_da.xtb +++ b/components/policy/resources/policy_templates_da.xtb
@@ -27,6 +27,7 @@ Hvis denne politik er angivet, vises loginskærmen i den landestandard, der er angivet af den første værdi i denne politik (politikken er defineret som en liste til fremadrettet kompatibilitet). Hvis politikken ikke er angivet eller er angivet som en tom liste, vises loginskærmen i den landestandard, der blev anvendt i den forrige brugersession. Hvis denne politik er angivet med en værdi, der ikke er en gyldig landestandard, vises loginskærmen i en reservelandestandard (som i øjeblikket er en-US).</translation> <translation id="1062011392452772310">Aktivér fjernattestering for enheden</translation> <translation id="1062407476771304334">Erstat</translation> +<translation id="1079801999187584280">Tillad ikke brug af Udviklerværktøjer</translation> <translation id="109166998561583554">Udløser af rapportering om truet konto via adgangskodebeskyttelse</translation> <translation id="1093082332347834239">Hvis denne indstilling er aktiveret, køres den eksterne hjælpehost i en proces med <ph name="UIACCESS_PERMISSION_NAME" />-tilladelser. Dette giver eksterne brugere mulighed for at interagere med vinduer med administratorrettigheder på den lokale brugers skrivebord. @@ -79,6 +80,7 @@ Skaleringsfaktoren skal være 100 % eller mere.</translation> <translation id="131353325527891113">Vis brugernavne på loginskærmen</translation> +<translation id="1325295456374328159">Konfigurer tilladte sprog i en brugersession</translation> <translation id="1327466551276625742">Aktivér meddelelse om netværkskonfiguration, når du er offline</translation> <translation id="1330145147221172764">Aktivér skærmtastatur</translation> <translation id="13356285923490863">Navn på politik</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Angiver, om der skal aktiveres tillid til Symantec Corporations forældede PKI-infrastruktur</translation> <translation id="1393485621820363363">Aktiverede virksomhedsprintere for enheder</translation> <translation id="1397855852561539316">Foreslået webadresse fra standardsøgemaskinen</translation> +<translation id="1424081297104898791">Giver dig mulighed for at styre, hvor Udviklerværktøjer kan bruges. + + Hvis denne politik er indstillet til "DeveloperToolsDisallowedForForceInstalledExtensions" (værdi 0, som er standard for virksomhedsbrugere), kan der generelt opnås adgang til Udviklerværktøjer og JavaScript-konsol, men der kan ikke opnås adgang til dem i forbindelse med udvidelser, der er installeret af en virksomhedspolitik. + Hvis denne politik er indstillet til "DeveloperToolsAllowed" (værdi 1, som er standard for ikke-administrerede brugere), kan Udviklerværktøjer og JavaScript-konsol åbnes og bruges i alle sammenhænge – også i forbindelse med udvidelser, der er installeret af en virksomhedspolitik. + Hvis denne politik er indstillet til "DeveloperToolsDisallowed" (værdi 2), kan der ikke opnås adgang til Udviklerværktøjer, og elementer på websites kan ikke længere inspiceres. Alle tastaturgenveje samt menuer eller genvejsmenuer, der åbner Udviklerværktøjer eller JavaScript-konsol, deaktiveres. + Hvis den forældede politik DeveloperToolsDisabled er angivet som sand, ignoreres værdien af denne politik, og Udviklerværktøjer deaktiveres.</translation> <translation id="1426410128494586442">Ja</translation> <translation id="1427655258943162134">Adresse eller webadresse på proxyserveren</translation> <translation id="1435659902881071157">Netværkskonfiguration på enhedsniveau</translation> @@ -204,6 +212,7 @@ <translation id="1803646570632580723">Liste over fastgjorte apps, der skal vises på applisten</translation> <translation id="1808715480127969042">Bloker cookies på disse websites</translation> <translation id="1810261428246410396">Tillad brug af øjeblikkelig netdeling.</translation> +<translation id="1826282708349731794">Styrer, hvordan Oprydningsværktøj til Chrome rapporterer data til Google</translation> <translation id="1827523283178827583">Brug faste proxyservere</translation> <translation id="1843117931376765605">Opdateringsfrekvens for brugerpolitik</translation> <translation id="1844620919405873871">Konfigurerer politikker for hurtig oplåsning.</translation> @@ -590,6 +599,7 @@ Denne politik påvirker ikke, om brugerne kan konfigurere printere på individuelle enheder. Den er beregnet til at fungere som supplement til den enkelte brugers konfiguration af printere. </translation> <translation id="2633084400146331575">Aktivér talefeedback</translation> +<translation id="2640843331263301324">Aktiverer Oprydningsværktøj til Chrome i Windows</translation> <translation id="2646290749315461919">Giver dig mulighed for at angive, om websites skal have tilladelse til at spore brugernes fysiske placering. Sporing af brugernes fysiske placering kan tillades som standard, nægtes som standard, eller brugeren kan blive spurgt, hver gang et website anmoder om den fysiske placering. Hvis denne politik ikke angives, anvendes "AskGeolocation", og brugeren vil kunne ændre den.</translation> <translation id="2647069081229792812">Aktivér eller deaktiver redigering af bogmærker</translation> <translation id="2650049181907741121">Handling, der skal udføres, når brugeren slår skærmen ned</translation> @@ -653,13 +663,6 @@ Hvis denne politik anvendes, er det kun printere med id'er, der matcher værdierne i denne politik, som kan anvendes af brugeren. Id'erne skal stemme overens med feltet "id" eller "guid" i den fil, der er angivet i <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Aktiverer tilgængeligheden af funktionen "Tryk for at søge" i indholdsvisningen i <ph name="PRODUCT_NAME" />. - - Hvis du aktiverer denne indstilling, er "Tryk for at søge" tilgængelig for brugerne, og de kan vælge at slå funktionen til eller fra. - - Hvis du deaktiverer denne indstilling, deaktiveres "Tryk for at søge" fuldstændigt. - - Hvis denne politik ikke angives, svarer det til, at den er aktiveret som i beskrivelsen herover.</translation> <translation id="285480231336205327">Aktivér høj kontrast</translation> <translation id="2854919890879212089">Får <ph name="PRODUCT_NAME" /> til at bruge systemets standardprinter som standardvalg i Vis udskrift i stedet for den senest brugte printer. @@ -1221,12 +1224,14 @@ <translation id="4554651132977135445">Brugerpolitik for tilstand til behandling via loopback</translation> <translation id="4555850956567117258">Aktivér fjernattestering for brugeren</translation> <translation id="4557134566541205630">Webadresse for siden Ny fane i standardsøgemaskinen</translation> +<translation id="4567137030726189378">Tillad brug af Udviklerværktøjer</translation> <translation id="4600786265870346112">Aktivér Stor markør</translation> <translation id="4604931264910482931">Konfigurer sortlisten for indbyggede beskedhosts</translation> <translation id="4613508646038788144">Hvis politikken er indstillet til falsk, tillades det, at tredjepartssoftware kan føje eksekverbar kode til Chromes processer. Hvis politikken ikke er indstillet eller er indstillet til sand, kan tredjepartssoftwaren ikke føje eksekverbar kode til Chromes processer.</translation> <translation id="4617338332148204752">Spring kontrol af metatag over i <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfigurer hvidliste for installation af udvidelser</translation> <translation id="4632343302005518762">Tillad, at <ph name="PRODUCT_FRAME_NAME" /> håndterer de angivne indholdstyper</translation> +<translation id="4632566332417930481">Tillad ikke brug af Udviklerværktøjer i udvidelser, der er installeret af en virksomhedspolitik, tillad brug af Udviklerværktøjer i andre sammenhænge</translation> <translation id="4633786464238689684">Ændrer standardadfærden for tasterne i øverste række til funktionstaster. Hvis denne politik er angivet til Sand, vil den øverste række med taster på tastaturet som standard være funktionstaster. For igen at gøre tasterne til medietaster skal man trykke på søgetasten. @@ -1477,9 +1482,13 @@ Hvis denne politik er angivet med en liste over indtastningsmetode-id'er, vil de angivne indtastningsmetoder være tilgængelige på loginskærmen. Den første angivne indtastningsmetode udvælges på forhånd. Mens en bruger-pod fokuserer på loginskærmen, vil den indtastningsmetode, som brugeren har brugt mindst for nylig, være tilgængelig udover de indtastningsmetoder, der er angivet i denne politik. Hvis denne politik ikke er angivet, hentes indtastningsmetoderne på loginskærmen fra den landestandard, der gælder for loginskærmen. Værdier, der ikke er gyldige indtastningsmetode-id'er, ignoreres.</translation> <translation id="5423001109873148185">Denne politik tvinger import af søgemaskiner fra den aktuelle standardbrowser, hvis den er aktiveret. Hvis denne politik er aktiveret, påvirker den også dialogboksen for import. Hvis standardsøgemaskinen er deaktiveret, bliver den ikke importeret. Hvis den ikke er angivet, kan brugeren blive spurgt, om der skal importeres, ellers sker importen automatisk.</translation> <translation id="5423197884968724595">Navn på Android WebView-begrænsning:</translation> +<translation id="5442026853063570579">Denne politik styrer også adgangen til Indstillinger for udviklere i Android. Hvis du indstiller denne politik til "DeveloperToolsDisallowed" (værdi 2), kan brugerne ikke få adgang til Indstillinger for udviklere. Hvis du indstiller denne politik til en anden værdi eller ikke angiver den, kan brugerne få adgang til Indstillinger for udviklere ved at trykke syv gange på build-nummeret i Android-appen Indstillinger.</translation> <translation id="5447306928176905178">Aktiver rapportering af hukommelsesoplysninger (størrelse på JavaScript-heap) til siden. (Udfaset)</translation> <translation id="5457065417344056871">Aktivér delefunktion i browseren</translation> <translation id="5457924070961220141">Giver dig mulighed for at konfigurere standard-HTML-gengivelse, når <ph name="PRODUCT_FRAME_NAME" /> er installeret. Den standardindstilling, der anvendes, når denne politik ikke er angivet, er at lade værtsbrowseren foretage gengivelsen, men du kan vælge at tilsidesætte dette og få <ph name="PRODUCT_FRAME_NAME" /> til at gengive HTML-sider som standard.</translation> +<translation id="5459155981813668716">Konfigurerer de sprog, som <ph name="PRODUCT_OS_NAME" /> kan vises på. + + Hvis denne politik er angivet, kan brugeren kun konfigurere <ph name="PRODUCT_OS_NAME" /> til at blive vist på et af de sprog, der angives af denne politik. Hvis politikken ikke er angivet eller er angivet med en tom liste, kan <ph name="PRODUCT_OS_NAME" /> vises på alle understøttede sprog. Hvis denne politik er angivet med en liste, der indeholder ugyldige værdier, ignoreres alle ugyldige værdier. Hvis en bruger tidligere konfigurerede <ph name="PRODUCT_OS_NAME" /> til at blive vist på et sprog, der ikke tillades af denne politik, ændres visningssproget til et tilladt sprog, næste gang brugeren logger ind. Hvis brugeren har konfigureret foretrukne sprog, og et af de foretrukne sprog er tilladt af denne politik, skifter <ph name="PRODUCT_OS_NAME" /> til det pågældende sprog. Ellers skifter <ph name="PRODUCT_OS_NAME" /> til den første gyldige værdi, der er angivet af denne politik, eller til en alternativ landestandard (som i øjeblikket er en-US), hvis politikken kun indeholder ugyldige poster.</translation> <translation id="5464816904705580310">Konfigurer indstillingerne for administrerede brugere.</translation> <translation id="546726650689747237">Forsinkelse på skærmnedtoning, når strømforsyning er tilsluttet</translation> <translation id="5469484020713359236">Giver dig mulighed for at oprette en liste med webadressemønstre, der angiver websites med tilladelse til at angive cookies. Hvis denne politik ikke angives, anvendes den globale standardværdi på alle websites, enten fra politikken "DefaultCookiesSetting", hvis den er angivet, eller brugerens personlige konfiguration.</translation> @@ -1593,7 +1602,6 @@ Hvis denne politik ikke angives, deaktiveres talefeedback, når loginskærmen vises første gang. Brugerne kan når som helst aktivere eller deaktivere talefeedback, og dens status på loginskærmen fastholdes hos brugerne.</translation> <translation id="5868414965372171132">Netværkskonfiguration på brugerniveau</translation> -<translation id="588135807064822874">Aktivér Tryk for at søge</translation> <translation id="5883015257301027298">Standardindstilling for cookies</translation> <translation id="5887414688706570295">Konfigurerer det TalkGadget-præfiks, der anvendes af værter med fjernadgang, og forhindrer brugere i at ændre det. @@ -1697,6 +1705,7 @@ <translation id="6036523166753287175">Aktiver gennemgang af firewall fra vært for fjernadgang</translation> <translation id="6070667616071269965">Tastaturlayouts for loginskærme på enheder</translation> <translation id="6074963268421707432">Tillad ikke, at websites viser skrivebordsunderretninger</translation> +<translation id="6074964551275531965">Angiv tidsrummet for underretninger om opdateringer</translation> <translation id="6076099373507468537">Definerer listen over USB-enheder, der gerne må frigøres fra deres kernedriver, så de kan bruges via chrome.usb API direkte i en webapp. Poster er par bestående af et USB-leverandør-id og et produkt-id til identifikation af en bestemt hardware. Hvis denne politik ikke konfigureres, er listen over USB-enheder, der kan frigøres, tom.</translation> @@ -1769,6 +1778,11 @@ <translation id="6392973646875039351">Aktiverer funktionen AutoFyld i <ph name="PRODUCT_NAME" /> og giver brugerne mulighed for automatisk at udfylde webformularer med oplysninger, der er gemt tidligere, såsom oplysninger om adresser og kreditkort. Hvis du deaktiverer denne indstilling, er AutoFyld ikke tilgængelig for brugerne. Hvis du aktiverer denne indstilling eller ikke konfigurerer en værdi, forbliver AutoFyld under brugerens kontrol. Dette giver brugerne mulighed for at konfigurere AutoFyld-profiler og for at aktivere og deaktivere AutoFyld efter eget valg.</translation> <translation id="6394350458541421998">Denne politik er trukket tilbage fra og med <ph name="PRODUCT_OS_NAME" /> version 29. Du kan i stedet bruge politikken PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Log brugeren ud</translation> +<translation id="6412477120967771054">Hvis den er angivet som falsk, forhindres Oprydningsværktøj til Chrome i at scanne systemet for uønsket software og i at udføre oprydning. Manuel aktivering af Oprydningsværktøj til Chrome via chrome://settings/cleanup er slået fra. + + Hvis den er angivet som sand eller ikke er angivet, scanner Oprydningsværktøj til Chrome systemet med jævne mellemrum for uønsket software. Hvis der findes uønsket software, bliver brugeren spurgt, om den skal fjernes. Manuel aktivering af Oprydningsværktøj til Chrome via chrome://settings er slået til. + + Denne politik er ikke tilgængelig i Windows-forekomster, der ikke er tilknyttet et <ph name="MS_AD_NAME" />-domæne.</translation> <translation id="6417861582779909667">Giver dig mulighed for at oprette en liste over webadressemønstre, der angiver websites, som ikke har tilladelse til at anvende cookies. Hvis denne politik ikke angives, vil den globale standardværdi blive anvendt for alle websites, enten fra politikken "DefaultCookiesSetting", hvis den er angivet, eller fra brugerens personlige konfiguration.</translation> <translation id="6426205278746959912">Du kan ikke tvinge Android-apps til at bruge en proxy. En undergruppe af proxyindstillinger er tilgængelige for Android-apps, hvilket de frivilligt kan vælge at overholde: @@ -1789,6 +1803,13 @@ Du kan se, hvilke websites der har tilladelse til at køre Flash, i politikkerne "DefaultPluginsSetting", "PluginsAllowedForUrls" og "PluginsBlockedForUrls". Hvis denne indstilling er deaktiveret eller ikke er angivet, kan Flash-indhold af anden oprindelse eller mindre indhold blive blokeret.</translation> +<translation id="6535639183431116351">Denne politik er udfaset i M68. Brug DeveloperToolsAvailability i stedet for. + + Deaktiverer Udviklerværktøjer og JavaScript-konsol. + + Hvis du aktiverer denne indstilling, kan der ikke opnås adgang til Udviklerværktøjer, og elementer på websites kan ikke længere inspiceres. Alle tastaturgenveje og alle menuer eller genvejsmenuer, der åbner Udviklerværktøjer eller JavaScript-konsol, bliver deaktiveret. + + Hvis du angiver denne indstilling som deaktiveret eller ikke angiver den, kan brugeren benytte Udviklerværktøjer og JavaScript-konsol.</translation> <translation id="653608967792832033">Angiver den tid uden brugerinput, der aktiverer skærmlåsen, når enheden kører på batteri. Hvis denne politik indstilles til en højere værdi end nul, angives den tid, som brugeren skal være inaktiv, før <ph name="PRODUCT_OS_NAME" /> låser skærmen. @@ -1854,11 +1875,6 @@ <translation id="6689792153960219308">Rapportér hardwarestatus</translation> <translation id="6698071416141001300">Rapportering om truet konto via adgangskodebeskyttelse udløses ved genbrug af adgangskoder</translation> <translation id="6699880231565102694">Aktivér godkendelse med to faktorer for værter med fjernadgang</translation> -<translation id="6702257826895463228">Tillader, at websites navigerer samtidigt og åbner pop op-vinduer. - - Få en fuld forklaring på https://www.chromestatus.com/features/5675755719622656. - Hvis politikken er aktiveret, kan websites navigere samtidigt og åbne nye vinduer/faner. - Hvis politikken er deaktiveret eller ikke er angivet, kan websites ikke navigere samtidigt eller åbne nye vinduer/faner.</translation> <translation id="6724842112053619797">Hvis du aktiverer denne indstilling, skrives indstillingerne, der er gemt i <ph name="PRODUCT_NAME" />-profiler, f.eks. bogmærker, autofylddata og adgangskoder, også i en fil, der er gemt i roamingmappen for brugerprofilen eller et andet sted som angivet af administratoren via <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />-politikken. Når du aktiverer denne politik, deaktiveres synkronisering i skyen. Hvis denne politik deaktiveres eller ikke angives, er det kun de almindelige lokale profiler, der bruges. @@ -2199,6 +2215,7 @@ Få flere oplysninger om Beskyttet browsing på https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Begræns konti, der er synlige i <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Bestemmer, om dataroaming skal aktiveres for enheden. Hvis den er indstillet til sand, tillades dataroaming. Hvis den ikke er konfigureret eller er angivet til falsk, vil dataroaming ikke være tilgængelig.</translation> +<translation id="7673194325208122247">Tidsrum (millisekunder)</translation> <translation id="7683777542468165012">Dynamisk opdatering af politikker</translation> <translation id="7694807474048279351">Planlæg en automatisk genstart efter opdatering af <ph name="PRODUCT_OS_NAME" /> @@ -2326,6 +2343,13 @@ <translation id="7961779417826583251">Deaktiver håndhævelse af Certifikatgennemsigtighed for en liste over forældede certifikatautoriteter</translation> <translation id="7974114691960514888">Denne politik understøttes ikke længere. Muliggør brug af STUN- og relæservere ved oprettelse af forbindelse til en ekstern klient. Hvis denne indstilling er aktiveret, kan denne maskine finde og oprette forbindelse til eksterne værtsmaskiner, selvom de er adskilt af en firewall. Hvis denne indstilling er deaktiveret, og udgående UDP-forbindelser filtreres af firewallen, kan denne maskine kun oprette forbindelse til værtsmaskiner inden for det lokale netværk.</translation> <translation id="7976157349247117979">Navnet på destinationen for <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Hvis den ikke er angivet, kan Oprydningsværktøj til Chrome rapportere metadata om scanningen til Google i overensstemmelse med den politik, der er angivet af SafeBrowsingExtendedReportingEnabled, hvis scanningen finder uønsket software. Oprydningsværktøj til Chrome spørger derefter brugeren, om den uønskede software skal fjernes. Brugeren kan vælge at dele resultaterne af oprydningen med Google for at bidrage til registrering af uønsket software i fremtiden. Disse resultater indeholder filmetadata og registreringsdatabasenøgler som beskrevet i Chromes hvidbog om beskyttelse af personlige oplysninger. + + Hvis den er angivet som falsk, rapporterer Oprydningsværktøj til Chrome ikke metadata om scanningen til Google og tilsidesætter alle politikker, der er angivet af SafeBrowsingExtendedReportingEnabled, hvis scanningen finder uønsket software. Oprydningsværktøj til Chrome spørger brugeren, om den uønskede software skal fjernes. Resultaterne af oprydningen rapporteres ikke til Google, og brugeren kan ikke vælge at gøre det. + + Hvis den er angivet som sand, kan Oprydningsværktøj til Chrome rapportere metadata om scanningen til Google i overensstemmelse med den politik, der er angivet af SafeBrowsingExtendedReportingEnabled, hvis scanningen finder uønsket software. Oprydningsværktøj til Chrome spørger brugeren, om den uønskede software skal fjernes. Resultaterne af oprydningen rapporteres til Google, og brugeren har ikke mulighed for at forhindre det. + + Denne politik er ikke tilgængelig i Windows-forekomster, der ikke er tilknyttet et <ph name="MS_AD_NAME" />-domæne.</translation> <translation id="7978060394348264922"> Det er en god idé at kigge på politikindstillingen IsolateOrigins for at få det bedste fra begge verdener (isolering og begrænset indvirkning på brugerne) @@ -2443,6 +2467,7 @@ <translation id="8300455783946254851">Deaktiverer Google Drev-synkronisering i appen Filer i <ph name="PRODUCT_OS_NAME" /> ved brug af en mobilforbindelse, hvis den er angivet til Sand. I dette tilfælde synkroniseres data kun med Google Drev, når der er oprettet forbindelse via Wi-Fi eller Ethernet. Hvis den ikke er indstillet eller er angivet til Falsk, kan brugerne overføre filer til Google Drev via mobilforbindelser.</translation> +<translation id="8300992833374611099">Bestem selv, hvor Udviklerværktøjer kan bruges</translation> <translation id="8312129124898414409">Giver dig mulighed for at angive, om websites må anvende nøglegenerering. Brug af nøglegenerering kan enten være tilladt for alle websites eller nægtet for alle websites. Hvis denne politik ikke angives, anvendes "BlockKeygen", og brugeren vil kunne ændre den.</translation> @@ -2671,6 +2696,11 @@ <translation id="9035964157729712237">Udvidelses-id'er, der skal udelades fra sortlisten</translation> <translation id="9042911395677044526">Tillader, at netværkskonfigurationen gøres gældende pr. bruger til en <ph name="PRODUCT_OS_NAME" />-enhed. Netværkskonfigurationen er en JSON-formateret streng, sådan som den er defineret af formatet Open Network Configuration som beskrevet på <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Angiv, om videoaktiviteten påvirker strømstyringen</translation> +<translation id="9085839450090699752">Giver dig mulighed for at angive et tidsrum i millisekunder, hvor brugerne underrettes om, at <ph name="PRODUCT_NAME" /> skal startes igen, eller at en <ph name="PRODUCT_OS_NAME" />-enhed skal genstartes for at anvende en afventende opdatering. + + I dette tidsrum informeres brugeren gentagne gange om nødvendigheden af en opdatering. Når der registreres en opgradering til <ph name="PRODUCT_OS_NAME" />-enheder, vises en underretning om genstart i systembakken. Underretningen skifter farve, når halvdelen af underretningsperioden er gået, og igen når underretningsperioden er udløbet. 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" /> for browsere, følger samme tidsplan. + + Hvis den ikke er angivet, anvendes standardtidsrummet på 345600000 millisekunder (fire dage) for <ph name="PRODUCT_OS_NAME" />-enheder og 604800000 millisekunder (en uge) for browsere.</translation> <translation id="9088433379343318874">Aktivér indholdsudbyderen for den administrerede bruger</translation> <translation id="9088444059179765143">Konfigurer metoden for automatisk registrering af tidszone.</translation> <translation id="9096086085182305205">Hvidliste til godkendelse af server</translation>
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 12d3b101..1e92111 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -27,6 +27,7 @@ Ist diese Richtlinie festgelegt, wird die Anmeldeseite immer in der Sprache angezeigt, die durch den ersten Wert der Richtlinie bestimmt wird. Sie ist als eine Liste für Aufwärtskompatibilität definiert. Ist sie nicht festgelegt oder verweist auf eine leere Liste, wird die Anmeldeseite in der Sprache der letzten Nutzersitzung dargestellt. Ist für diese Richtlinie eine ungültige Sprache festgelegt, wird die Anmeldeseite in einer Ersatzsprache angezeigt, derzeit en-US.</translation> <translation id="1062011392452772310">Remote-Bescheinigung (Remote Attestation) für das Gerät aktivieren</translation> <translation id="1062407476771304334">Ersetzen</translation> +<translation id="1079801999187584280">Nutzung der Entwicklertools nicht zulassen</translation> <translation id="109166998561583554">Auslöser für Kontomeldung "Passwortschutz gefährdet"</translation> <translation id="1093082332347834239">Ist diese Einstellung aktiviert, läuft der Host für Remote-Unterstützung in einem Prozess mit <ph name="UIACCESS_PERMISSION_NAME" />-Berechtigungen. So kann der Remote-Nutzer mit geöffneten Fenstern auf dem lokalen Desktop arbeiten. @@ -79,6 +80,7 @@ Der Skalierungsfaktor muss mindestens 100 % betragen.</translation> <translation id="131353325527891113">Nutzernamen auf Anmeldeseite zeigen</translation> +<translation id="1325295456374328159">In einer Nutzersitzung zulässige Sprachen konfigurieren</translation> <translation id="1327466551276625742">Eingabeaufforderung zur Netzwerkkonfiguration im Offlinemodus aktivieren</translation> <translation id="1330145147221172764">Bildschirmtastatur aktivieren</translation> <translation id="13356285923490863">Richtlinienname</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Festlegen, ob der veralteten Symantec-PKI vertraut werden soll</translation> <translation id="1393485621820363363">Aktivierte, an Geräte gebundene Unternehmensdrucker</translation> <translation id="1397855852561539316">Vorschlags-URL für die Standardsuchmaschine</translation> +<translation id="1424081297104898791">Mit dieser Richtlinie legen Sie fest, wo Entwicklertools verwendet werden können. + + Wenn diese Richtlinie auf "DeveloperToolsDisallowedForForceInstalledExtensions" (Wert 0; Standardeinstellung für Unternehmensnutzer) gesetzt ist, kann generell auf die Entwicklertools und die JavaScript-Konsole zugegriffen werden. In Erweiterungen, die über die Unternehmensrichtlinie installiert wurden, ist der Zugriff aber nicht möglich. + Wenn diese Richtlinie auf "DeveloperToolsAllowed" (Wert 1; Standardeinstellung für nicht verwaltete Nutzer) gesetzt ist, können die Entwicklertools und die JavaScript-Konsole in allen Kontexten aufgerufen und verwendet werden. Dies gilt auch in Erweiterungen, die über die Unternehmensrichtlinie installiert wurden. + Wenn diese Richtlinie auf "DeveloperToolsDisallowed" (Wert 2) gesetzt ist, kann nicht auf die Entwicklertools zugegriffen werden und Websiteelemente können nicht mehr überprüft werden. Alle Tastenkombinationen und Menü- oder Kontextmenüeinträge, mit denen die Entwicklertools oder die JavaScript-Konsole aufgerufen werden, sind deaktiviert. + Wenn die alte Richtlinie "DeveloperToolsDisabled" auf "true" gesetzt ist, wird der Wert dieser Richtlinie ignoriert und die Entwicklertools sind deaktiviert.</translation> <translation id="1426410128494586442">Ja</translation> <translation id="1427655258943162134">Adresse oder URL des Proxyservers</translation> <translation id="1435659902881071157">Netzwerkkonfiguration auf Geräteebene</translation> @@ -198,6 +206,7 @@ <translation id="1803646570632580723">Liste der in der Übersicht angezeigten Apps ansehen</translation> <translation id="1808715480127969042">Cookies auf diesen Websites blockieren</translation> <translation id="1810261428246410396">Verwendung von Instant Tethering erlauben.</translation> +<translation id="1826282708349731794">Festlegen, wie Daten vom Chrome Software Cleaner an Google gesendet werden</translation> <translation id="1827523283178827583">Feste Proxyserver verwenden</translation> <translation id="1843117931376765605">Aktualisierungsrate für Nutzerrichtlinien</translation> <translation id="1844620919405873871">Konfiguriert Richtlinien zum schnellen Entsperren.</translation> @@ -585,6 +594,7 @@ Diese Richtlinie hat keinen Einfluss darauf, ob Nutzer auf einzelnen Geräten Drucker konfigurieren können. Sie ist als Ergänzung zur Konfiguration von Druckern durch einzelne Nutzer gedacht. </translation> <translation id="2633084400146331575">Gesprochenes Feedback aktivieren</translation> +<translation id="2640843331263301324">Aktiviert den Chrome Software Cleaner unter Windows</translation> <translation id="2646290749315461919">Ermöglicht Ihnen festzulegen, ob Websites den Standort des Nutzers mitverfolgen dürfen. Die Mitverfolgung des Standorts kann standardmäßig gestattet oder nicht gestattet sein oder auf Anfrage beim Nutzer erfolgen. Wenn diese Richtlinie nicht konfiguriert ist, so kommt "AskGeolocation" zum Einsatz, wobei der Nutzer dies ändern kann.</translation> <translation id="2647069081229792812">Bearbeitung von Lesezeichen aktivieren oder deaktivieren</translation> <translation id="2650049181907741121">Auszuführende Aktion beim Zuklappen des Geräts</translation> @@ -648,13 +658,6 @@ Wenn diese Richtlinie verwendet wird, stehen dem Nutzer nur die Drucker zur Verfügung, deren IDs mit den Werten in dieser Richtlinie übereinstimmen. Die IDs müssen den Feldern "id" oder "guid" in der Datei entsprechen, die in <ph name="DEVICE_PRINTERS_POLICY" /> angegeben ist. </translation> -<translation id="2844404652289407061">Durch diese Richtlinie wird die Verfügbarkeit von "Zum Suchen tippen" in der Inhaltsansicht von <ph name="PRODUCT_NAME" /> aktiviert. - - Wenn Sie diese Einstellung aktivieren, steht dem Nutzer "Zum Suchen tippen" zur Verfügung und er kann die Funktion aktivieren oder deaktivieren. - - Wenn Sie die Einstellung deaktivieren, wird "Zum Suchen tippen" vollständig deaktiviert. - - Wird die Richtlinie nicht konfiguriert, entspricht dies einer Aktivierung, siehe Beschreibung oben.</translation> <translation id="285480231336205327">Modus mit hohem Kontrast aktivieren</translation> <translation id="2854919890879212089">Hiermit wird festgelegt, dass <ph name="PRODUCT_NAME" /> den Standarddrucker des Betriebssystems als Standarddrucker für die Druckvorschau verwendet, nicht den zuletzt genutzten Drucker. @@ -1205,12 +1208,14 @@ <translation id="4554651132977135445">Loopback-Verarbeitungsmodus der Nutzerrichtlinien</translation> <translation id="4555850956567117258">Remote-Bescheinigung (Remote Attestation) für den Nutzer aktivieren</translation> <translation id="4557134566541205630">Standardsuchanbieter-URL für die "Neuer Tab"-Seite</translation> +<translation id="4567137030726189378">Nutzung der Entwicklertools zulassen</translation> <translation id="4600786265870346112">Großen Cursor aktivieren</translation> <translation id="4604931264910482931">Schwarze Liste für natives Messaging konfigurieren</translation> <translation id="4613508646038788144">Wenn die Richtlinie auf "false" festgelegt wird, kann Drittanbieter-Software ausführbaren Code in die Prozesse von Chrome einfügen. Wenn die Richtlinie nicht oder auf "true" festgelegt wird, wird verhindert, dass die Drittanbieter-Software ausführbaren Code in die Prozesse von Chrome einfügt.</translation> <translation id="4617338332148204752">Metatag-Überprüfung in <ph name="PRODUCT_FRAME_NAME" /> überspringen</translation> <translation id="4625915093043961294">Weiße Liste für Installation von Erweiterungen konfigurieren</translation> <translation id="4632343302005518762">Verarbeitung der gelisteten Inhaltstypen durch <ph name="PRODUCT_FRAME_NAME" /> zulassen</translation> +<translation id="4632566332417930481">Nutzung der Entwicklertools in Erweiterungen, die über die Unternehmensrichtlinie installiert wurden, nicht zulassen und Nutzung der Entwicklertools in anderen Kontexten zulassen</translation> <translation id="4633786464238689684">Ändert das Standardverhalten der Tasten in der obersten Reihe zu Funktionstastenverhalten Wenn die Richtlinie auf "TRUE" gesetzt wird, führt die oberste Reihe der Tastatur standardmäßig Funktionstastenbefehle aus. Um die Tasten stattdessen wieder als Medientasten zu verwenden, drückt der Nutzer die Suchtaste. @@ -1463,9 +1468,13 @@ Ist für diese Richtlinie eine Liste mit IDs für Eingabemethoden festgelegt, werden die entsprechenden Eingabemethoden auf der Anmeldeseite bereitgestellt. Das oberste Listenelement ist vorab ausgewählt. Während bestimmte Nutzerdaten auf der Anmeldeseite markiert sind, wird zusätzlich zu den von dieser Richtlinie bereitgestellten Eingabemethoden auch die vom Nutzer zuletzt verwendete angeboten. Ist diese Richtlinie nicht konfiguriert, werden die Eingabemethoden auf der Anmeldeseite von der Sprache der Anmeldeseite abgeleitet. Werte, die keine gültigen IDs für Eingabemethoden sind, werden ignoriert.</translation> <translation id="5423001109873148185">Bei Aktivierung erzwingt diese Richtlinie den Import von Suchmaschinen aus dem aktuellen Standardbrowser. Wenn die Richtlinie aktiviert ist, wirkt sich das darüber hinaus auf den Importdialog aus. Wenn sie deaktiviert ist, wird die Standardsuchmaschine nicht importiert. Sollte Sie nicht konfiguriert sein, so wird der Nutzer möglicherweise gefragt, ob ein Import stattfinden soll, oder der Import erfolgt automatisch.</translation> <translation id="5423197884968724595">Name der Android WebView-Einschränkung:</translation> +<translation id="5442026853063570579">Mit dieser Richtlinie wird außerdem der Zugriff auf Android-Entwickleroptionen festgelegt. Wenn Sie diese Richtlinie auf "DeveloperToolsDisallowed" (Wert 2) setzen, können Nutzer nicht auf die Entwickleroptionen zugreifen. Wenn Sie diese Richtlinie auf einen anderen Wert setzen oder sie nicht festlegen, können Nutzer auf die Entwickleroptionen zugreifen, indem sie in der Android-App "Einstellungen" siebenmal auf die Build-Nummer tippen.</translation> <translation id="5447306928176905178">Weitergabe von Speicherinformationen (JS-Heap-Größe) an Seite aktivieren (veraltet)</translation> <translation id="5457065417344056871">Gastmodus im Browser aktivieren</translation> <translation id="5457924070961220141">Ermöglicht Ihnen die Konfiguration des Standard-HTML-Renderers, wenn <ph name="PRODUCT_FRAME_NAME" /> installiert ist. Wenn diese Richtlinie nicht konfiguriert ist, so kommt die Standardeinstellung zum Einsatz, wobei der Hostbrowser das Rendering übernimmt. Sie haben aber die Möglichkeit, dies zu ändern und <ph name="PRODUCT_FRAME_NAME" /> das Rendering der HTML-Seite übernehmen zu lassen.</translation> +<translation id="5459155981813668716">Mit dieser Richtlinie werden die Sprachen konfiguriert, in denen <ph name="PRODUCT_OS_NAME" /> angezeigt werden kann. + + Wenn diese Richtlinie festgelegt ist, kann der Nutzer <ph name="PRODUCT_OS_NAME" /> nur in einer der durch diese Richtlinie angegebenen Sprachen anzeigen lassen. Wenn diese Richtlinie nicht festgelegt ist oder auf eine leere Liste verweist, so kann <ph name="PRODUCT_OS_NAME" /> in allen unterstützten Sprachen angezeigt werden. Wenn diese Richtlinie auf eine Liste mit ungültigen Werten verweist, werden alle ungültigen Werte ignoriert. Falls ein Nutzer <ph name="PRODUCT_OS_NAME" /> zuvor so konfiguriert hat, dass es in einer Sprache angezeigt wird, die nicht durch diese Richtlinie zugelassen ist, wird die Anzeigesprache in eine zulässige Sprache geändert, wenn sich der Nutzer das nächste Mal anmeldet. Falls der Nutzer bevorzugte Sprachen konfiguriert hatte und eine der bevorzugten Sprachen durch diese Richtlinie zugelassen ist, wechselt <ph name="PRODUCT_OS_NAME" /> zu dieser Sprache. Andernfalls wechselt <ph name="PRODUCT_OS_NAME" /> zum ersten gültigen Wert, der durch diese Richtlinie angegeben ist, oder – falls diese Richtlinie nur ungültige Einträge enthält – zu einer Ersatzsprache (derzeit en-US).</translation> <translation id="5464816904705580310">Konfiguriert Einstellungen für verwaltete Nutzer</translation> <translation id="546726650689747237">Verzögerung für die Bildschirmabdunkelung im Netzbetrieb</translation> <translation id="5469484020713359236">Ermöglicht Ihnen die Zusammenstellung einer Liste mit URL-Mustern, die Websites angeben, denen das Speichern von Cookies gestattet ist. Wenn diese Richtlinie nicht konfiguriert ist, kommt für alle Websites entweder der globale Standardwert der Richtlinie "DefaultCookiesSetting", sofern konfiguriert, oder der persönlichen Konfiguration des Nutzers zum Einsatz.</translation> @@ -1579,7 +1588,6 @@ Falls diese Richtlinie nicht konfiguriert wird, ist das gesprochene Feedback deaktiviert, wenn die Anmeldeseite das erste Mal angezeigt wird. Die Nutzer können das gesprochene Feedback jederzeit aktivieren oder deaktivieren und dieser Status bleibt auf der Anmeldeseite erhalten.</translation> <translation id="5868414965372171132">Netzwerkkonfiguration auf Nutzerebene</translation> -<translation id="588135807064822874">"Zum Suchen tippen" aktivieren</translation> <translation id="5883015257301027298">Standardeinstellungen für Cookies</translation> <translation id="5887414688706570295">Konfiguriert das TalkGadget-Präfix, das von Remotezugriff-Hosts verwendet wird, und verhindert, dass dieses von Nutzern geändert werden kann. @@ -1683,6 +1691,7 @@ <translation id="6036523166753287175">Firewallausnahme über Host für Remotezugriff aktivieren</translation> <translation id="6070667616071269965">Tastaturlayouts der Anmeldeseite</translation> <translation id="6074963268421707432">Anzeige von Desktop-Benachrichtigungen für keine Website zulassen</translation> +<translation id="6074964551275531965">Zeitraum für Updatebenachrichtigungen festlegen</translation> <translation id="6076099373507468537">Hiermit wird die Liste der USB-Geräte definiert, die vom jeweiligen Kerneltreiber getrennt werden können, um über die chrome.usb API direkt in einer Webanwendung eingesetzt zu werden. Die Einträge bestehen aus der USB-Hersteller-ID und der Produkt-ID, über die die Hardware identifiziert werden kann. Wenn diese Richtlinie nicht konfiguriert ist, ist die Liste der trennbaren USB-Geräte leer.</translation> @@ -1755,6 +1764,11 @@ <translation id="6392973646875039351">Aktiviert die AutoFill-Funktion von <ph name="PRODUCT_NAME" /> und ermöglicht es Nutzern, Web-Formulare automatisch mit zuvor gespeicherten Informationen (etwa Adresse oder Kreditkarteninformationen) ausfüllen zu lassen. Wenn Sie diese Einstellung deaktivieren, können Nutzer die AutoFill-Funktion nicht verwenden. Ist diese Einstellung aktiviert oder nicht konfiguriert, kann der Nutzer entscheiden, ob er AutoFill nutzen möchte. Er kann AutoFill-Profile konfigurieren und AutoFill nach eigenem Ermessen aktivieren und deaktivieren.</translation> <translation id="6394350458541421998">Diese Richtlinie ist ab <ph name="PRODUCT_OS_NAME" />-Version 29 nicht mehr vorhanden. Verwenden Sie stattdessen die Richtlinie "PresentationScreenDimDelayScale".</translation> <translation id="6401669939808766804">Nutzer abmelden</translation> +<translation id="6412477120967771054">Wenn "false" festgelegt ist, kann der Chrome Software Cleaner das System nicht nach unerwünschter Software scannen und keine Bereinigungen durchführen. Das manuelle Starten des Chrome Software Cleaners über chrome://settings/cleanup ist deaktiviert. + + Wenn "true" oder nichts festgelegt ist, scannt der Chrome Software Cleaner das System regelmäßig nach unerwünschter Software. Wird welche gefunden, so wird der Nutzer gefragt, ob sie entfernt werden soll. Das manuelle Starten des Chrome Software Cleaners über chrome://settings/cleanup ist aktiviert. + + Diese Richtlinie ist nur in Windows-Instanzen verfügbar, die nicht mit einer <ph name="MS_AD_NAME" />-Domain verbunden sind.</translation> <translation id="6417861582779909667">Ermöglicht die Zusammenstellung einer Liste mit URL-Mustern, die Websites angeben, die keine Cookies speichern dürfen. Wenn diese Richtlinie nicht konfiguriert ist, so kommt für alle Websites der globale Standardwert der Richtlinie "DefaultCookiesSetting", sofern konfiguriert, oder der persönlichen Konfiguration des Nutzers zum Einsatz.</translation> <translation id="6426205278746959912">Android-Apps können nicht zur Verwendung eines Proxys gezwungen werden. Ein Teil der Proxyeinstellungen ist für Android-Apps verfügbar und kann auf freiwilliger Basis übernommen werden: @@ -1776,6 +1790,13 @@ Um festzulegen, welche Websites Flash-Inhalte ausführen dürfen, verwenden Sie die Richtlinien "DefaultPluginsSetting", "PluginsAllowedForUrls" und "PluginsBlockedForUrls". Wenn diese Einstellung deaktiviert oder nicht konfiguriert ist, werden Flash-Inhalte aus anderen Quellen oder kleine Inhalte möglicherweise blockiert.</translation> +<translation id="6535639183431116351">Diese Richtlinie wurde in M68 eingestellt. Bitte verwenden Sie stattdessen DeveloperToolsAvailability. + + Hiermit werden die Entwicklertools und die JavaScript-Konsole deaktiviert. + + Wenn Sie diese Einstellung aktivieren, ist kein Zugriff auf die Entwicklertools möglich und Websiteelemente können nicht mehr überprüft werden. Alle Tastenkombinationen und Menü- oder Kontextmenüeinträge, mit denen die Entwicklertools oder die JavaScript-Konsole aufgerufen werden, sind deaktiviert. + + Ist diese Option deaktiviert oder nicht konfiguriert, können die Entwicklertools und die JavaScript-Konsole verwendet werden.</translation> <translation id="653608967792832033">Hiermit wird angegeben, nach welchem Zeitraum ohne Nutzereingabe der Bildschirm im Akkubetrieb gesperrt wird. Wenn für diese Richtlinie ein höherer Wert als null festgelegt wird, gibt dieser an, wie lange ein Nutzer inaktiv sein muss, bevor <ph name="PRODUCT_OS_NAME" /> den Bildschirm sperrt. @@ -1841,11 +1862,6 @@ <translation id="6689792153960219308">Hardwarestatus senden</translation> <translation id="6698071416141001300">Die Kontomeldung "Passwortschutz gefährdet" wird durch die Wiederverwendung eines Passworts ausgelöst</translation> <translation id="6699880231565102694">Zwei-Faktor-Authentifizierung für Remotezugriff-Hosts aktivieren</translation> -<translation id="6702257826895463228">Hiermit wird Websites erlaubt, Pop-ups gleichzeitig zu öffnen. - - Eine vollständige Erläuterung finden Sie unter https://www.chromestatus.com/features/5675755719622656. - Wenn diese Richtlinie aktiviert ist, dürfen Websites neue Fenster bzw. Tabs gleichzeitig öffnen. - Wenn diese Richtlinie deaktiviert oder nicht festgelegt ist, dürfen Websites neue Fenster bzw. Tabs nicht gleichzeitig öffnen.</translation> <translation id="6724842112053619797">Wenn Sie diese Einstellung aktivieren, werden die in <ph name="PRODUCT_NAME" />-Profilen gespeicherten Einstellungen, etwa Lesezeichen, AutoFill-Daten und Passwörter, zusätzlich in eine Datei geschrieben, die sich im Roaming-Nutzerprofilordner oder an einem vom Administrator über die Richtlinie <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> festgelegten Ort befindet. Durch die Aktivierung dieser Richtlinie wird die Cloudsynchronisierung deaktiviert. Wenn diese Richtlinie deaktiviert oder nicht konfiguriert ist, kommen nur die regulären lokalen Profile zum Einsatz. @@ -2192,6 +2208,7 @@ Weitere Informationen zu Safe Browsing finden Sie unter https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Sichtbarkeit von Konten in <ph name="PRODUCT_NAME" /> einschränken</translation> <translation id="7651739109954974365">Legt fest, ob Daten-Roaming für das Gerät aktiviert werden soll. Bei Einstellung auf "true" ist das Roaming erlaubt. Ist die Richtlinie nicht konfiguriert oder auf "false" gesetzt, ist kein Roaming verfügbar.</translation> +<translation id="7673194325208122247">Zeitraum (Millisekunden)</translation> <translation id="7683777542468165012">Dynamische Richtlinienaktualisierung</translation> <translation id="7694807474048279351">Hiermit wird ein automatischer Neustart nach einem Update von <ph name="PRODUCT_OS_NAME" /> geplant. @@ -2317,6 +2334,13 @@ <translation id="7961779417826583251">Erzwingung der Zertifikatstransparenz für eine Liste alter Zertifizierungsstellen deaktivieren</translation> <translation id="7974114691960514888">Diese Richtlinie wird nicht mehr unterstützt. Sie aktiviert beim Verbinden zu einem Remote-Client den Einsatz von STUN und Relay-Servern. Wenn diese Einstellung aktiviert wird, kann dieser Computer Remote-Hostcomputer finden und eine Verbindung herstellen, selbst wenn sie sich hinter einer Firewall befinden. Sollte die Einstellung deaktiviert sein und ausgehende UDP-Verbindungen von der Firewall gefiltert werden, dann kann dieser Computer nur Verbindungen zu Hostcomputern innerhalb des lokalen Netzwerks aufbauen.</translation> <translation id="7976157349247117979">Name des <ph name="PRODUCT_NAME" />-Ziels</translation> +<translation id="7977445800390854860">Wenn nichts festgelegt ist und der Chrome Software Cleaner unerwünschte Software findet, kann er Metadaten zum Scan an Google senden. Dies geschieht in Übereinstimmung mit der über SafeBrowsingExtendedReportingEnabled festgelegten Richtlinie. Der Nutzer wird dann vom Chrome Software Cleaner gefragt, ob die unerwünschte Software gelöscht werden soll. Er kann die Ergebnisse der Bereinigung mit Google teilen, damit unerwünschte Software zukünftig besser erkannt werden kann. Diese Ergebnisse enthalten Dateimetadaten und Registrierungsschlüssel, wie es im Whitepaper zum Datenschutz bei Chrome beschrieben ist. + + Wenn "false" festgelegt ist und der Chrome Software Cleaner unerwünschte Software findet, werden keine Metadaten zum Scan an Google gesendet. Über SafeBrowsingExtendedReportingEnabled festgelegte Richtlinien werden überschrieben. Der Nutzer wird dann vom Chrome Software Cleaner gefragt, ob die unerwünschte Software gelöscht werden soll. Ergebnisse der Bereinigung werden nicht an Google gesendet und der Nutzer hat auch keine Möglichkeit dazu. + + Wenn "true" festgelegt ist und der Chrome Software Cleaner unerwünschte Software findet, können Metadaten zum Scan an Google gesendet werden. Dies geschieht in Übereinstimmung mit der über SafeBrowsingExtendedReportingEnabled festgelegten Richtlinie. Der Nutzer wird dann vom Chrome Software Cleaner gefragt, ob die unerwünschte Software gelöscht werden soll. Ergebnisse der Bereinigung werden an Google gesendet und der Nutzer hat keine Möglichkeit, dies zu verhindern. + + Diese Richtlinie ist nur in Windows-Instanzen verfügbar, die nicht mit einer <ph name="MS_AD_NAME" />-Domain verbunden sind.</translation> <translation id="7978060394348264922"> Sie sollten sich die "IsolateOrigins"-Richtlinieneinstellung ansehen, um die Auswirkungen auf die Nutzer bei der Isolierung von Websites gering zu halten. @@ -2430,6 +2454,7 @@ <translation id="8300455783946254851">Bei Festlegung auf "true" wird die Synchronisierung zwischen Google Drive und der App "Dateien" von <ph name="PRODUCT_OS_NAME" /> per Mobilfunkverbindung deaktiviert. Eine Synchronisierung von Daten mit Google Drive erfolgt dann nur bei bestehender WLAN- oder Ethernet-Verbindung. Falls die Richtlinie auf "false" gesetzt oder nicht festgelegt wird, können die Nutzer Dateien per Mobilfunkverbindung an Google Drive übertragen.</translation> +<translation id="8300992833374611099">Festlegen, wo Entwicklertools verwendet werden können</translation> <translation id="8312129124898414409">Ermöglicht Ihnen, festzulegen, ob die Schlüsselgenerierung für Websites zugelassen wird. Die Schlüsselgenerierung kann entweder für alle Websites zugelassen oder für alle Websites verboten werden. Wenn diese Richtlinie nicht konfiguriert ist, wird "BlockKeygen" verwendet, kann jedoch vom Nutzer geändert werden.</translation> @@ -2658,6 +2683,11 @@ <translation id="9035964157729712237">Aus der schwarzen Liste auszuschließende Erweiterungs-IDs</translation> <translation id="9042911395677044526">Ermöglicht das Übernehmen einer per Push übertragenen Netzwerkkonfiguration pro Nutzer für ein <ph name="PRODUCT_OS_NAME" />-Gerät. Die Netzwerkkonfiguration ist ein JSON-formatierter String, der den Open Network Configuration-Vorgaben unter <ph name="ONC_SPEC_URL" /> entspricht.</translation> <translation id="9084985621503260744">Angaben zum Einfluss von Videoaktivitäten auf den Energiesparmodus</translation> +<translation id="9085839450090699752">Mit dieser Richtlinie können Sie den Zeitraum in Millisekunden festlegen, in dem Nutzer darüber benachrichtigt werden, dass <ph name="PRODUCT_NAME" /> oder ein <ph name="PRODUCT_OS_NAME" />-Gerät zum Durchführen eines ausstehenden Updates neu gestartet werden muss. + + In diesem Zeitraum wird der Nutzer wiederholt darüber informiert, dass ein Update erforderlich ist. Auf <ph name="PRODUCT_OS_NAME" />-Geräten erscheint in der Taskleiste eine Neustartbenachrichtigung, wenn ein Upgrade gefunden wird. Die Farbe dieser Benachrichtigung ändert sich, sobald die Hälfte des Benachrichtigungszeitraums vorüber ist. Sie ändert sich noch einmal, wenn der gesamte Benachrichtigungszeitraum verstrichen ist. In <ph name="PRODUCT_NAME" />-Browsern ändert sich das App-Menü, sobald ein Drittel des Benachrichtigungszeitraums vorüber ist, um anzuzeigen, dass ein Neustart nötig ist. Die Farbe dieser Benachrichtigung ändert sich, sobald zwei Drittel des Benachrichtigungszeitraums vergangen sind. Sie ändert sich noch einmal, wenn der gesamte Benachrichtigungszeitraum verstrichen ist. Für die zusätzlichen Benachrichtigungen, die über die Richtlinie "<ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />" für Browser aktiviert werden, gilt derselbe Zeitplan. + + Wenn nichts festgelegt ist, wird für <ph name="PRODUCT_OS_NAME" />-Geräte der Standardzeitraum von 345.600.000 Millisekunden (vier Tagen) und für Browser ein Zeitraum von 604.800.000 Millisekunden (einer Woche) verwendet.</translation> <translation id="9088433379343318874">Contentanbieter für betreute Nutzer aktivieren</translation> <translation id="9088444059179765143">Methode für die automatische Erkennung der Zeitzone konfigurieren</translation> <translation id="9096086085182305205">Weiße Liste für Authentifizierungsserver</translation>
diff --git a/components/policy/resources/policy_templates_el.xtb b/components/policy/resources/policy_templates_el.xtb index dc9dcdaa..60d3fd0c 100644 --- a/components/policy/resources/policy_templates_el.xtb +++ b/components/policy/resources/policy_templates_el.xtb
@@ -668,13 +668,6 @@ Εάν χρησιμοποιηθεί αυτή η πολιτική, μόνο οι εκτυπωτές με αναγνωριστικά που αντιστοιχούν στις τιμές αυτής της πολιτικής είναι διαθέσιμοι στον χρήστη. Τα αναγνωριστικά πρέπει να αντιστοιχούν με τις τιμές των πεδίων "id" ή "guid" στο αρχείο που καθορίζεται στην πολιτική <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Ενεργοποιεί τη διαθεσιμότητα της λειτουργίας "Αγγίξτε για αναζήτηση" στην προβολή περιεχομένου του <ph name="PRODUCT_NAME" />. - - Αν ενεργοποιήσετε αυτήν τη ρύθμιση, η λειτουργία "Αγγίξτε για αναζήτηση" θα είναι διαθέσιμη στους χρήστες και εκείνοι θα μπορούν να επιλέξουν αν θέλουν να είναι ενεργοποιημένη ή απενεργοποιημένη. - - Αν απενεργοποιήσετε αυτήν τη ρύθμιση, η λειτουργία "Αγγίξτε για αναζήτηση" θα απενεργοποιηθεί εντελώς. - - Αν αυτή η πολιτική δεν έχει οριστεί, είναι σαν να μην έχει ενεργοποιηθεί. Δείτε την παραπάνω περιγραφή.</translation> <translation id="285480231336205327">Ενεργοποίηση λειτουργίας υψηλής αντίθεσης</translation> <translation id="2854919890879212089">Προκαλεί τη χρήση του προεπιλεγμένου εκτυπωτή συστήματος από το <ph name="PRODUCT_NAME" /> ως προκαθορισμένη επιλογή στην Προεπισκόπηση εκτύπωσης, αντί του εκτυπωτή που χρησιμοποιήθηκε πιο πρόσφατα. @@ -1648,7 +1641,6 @@ Αν δεν ρυθμιστεί αυτή η πολιτική, η λειτουργία προφορικών σχολίων απενεργοποιείται την πρώτη φορά που εμφανίζεται η οθόνη σύνδεσης. Οι χρήστες μπορούν να ενεργοποιούν ή να απενεργοποιούν τα προφορικά σχόλια ανά πάσα στιγμή και η κατάσταση της οθόνης σύνδεσης διατηρείται από τον ένα χρήστη στον άλλο.</translation> <translation id="5868414965372171132">Διαμόρφωση δικτύου σε επίπεδο χρήστη</translation> -<translation id="588135807064822874">Ενεργοποίηση της λειτουργίας "Αγγίξτε για αναζήτηση"</translation> <translation id="5883015257301027298">Προεπιλεγμένη ρύθμιση cookie</translation> <translation id="5887414688706570295">Διαμορφώνει το πρόθεμα TalkGadget που θα χρησιμοποιηθεί από κεντρικούς υπολογιστές απομακρυσμένης πρόσβασης και αποτρέπει την αλλαγή αυτής της ρύθμισης από τους χρήστες. @@ -1917,11 +1909,6 @@ <translation id="6689792153960219308">Αναφορά κατάστασης εξοπλισμού</translation> <translation id="6698071416141001300">H επισήμανση λογαριασμού σχετικά με κίνδυνο προστασίας κωδικού πρόσβασης ενεργοποιείται από την επαναχρησιμοποίηση του κωδικού πρόσβασης</translation> <translation id="6699880231565102694">Ενεργοποίηση ελέγχου ταυτότητας δύο παραγόντων για κεντρικούς υπολογιστές απομακρυσμένης πρόσβασης</translation> -<translation id="6702257826895463228">Επιτρέπει στους ιστοτόπους την ταυτόχρονη περιήγηση και το άνοιγμα αναδυόμενων παραθύρων. - - Για πλήρη επεξήγηση, ανατρέξτε στη διεύθυνση https://www.chromestatus.com/features/5675755719622656. - Εάν ενεργοποιηθεί αυτή η πολιτική, θα επιτρέπεται στους ιστοτόπους η ταυτόχρονη περιήγηση και το άνοιγμα αναδυόμενων παραθύρων/καρτελών. - Εάν απενεργοποιηθεί αυτή η πολιτική, δεν θα επιτρέπεται στους ιστοτόπους η ταυτόχρονη περιήγηση και το άνοιγμα αναδυόμενων παραθύρων/καρτελών.</translation> <translation id="6724842112053619797">Εάν ενεργοποιήσετε αυτήν τη ρύθμιση, οι ρυθμίσεις που είναι αποθηκευμένες στα προφίλ του προϊόντος <ph name="PRODUCT_NAME" />, όπως σελιδοδείκτες, δεδομένα αυτόματης συμπλήρωσης, κωδικοί πρόσβασης, κ.λπ., θα εγγραφούν επίσης σε κάποιο αρχείο που είναι αποθηκευμένο στον φάκελο του Προφίλ χρήστη περιαγωγής ή σε μια τοποθεσία η οποία καθορίζεται από τον διαχειριστή μέσω της πολιτικής <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Με την ενεργοποίηση αυτής της πολιτικής, ο συγχρονισμός στο cloud απενεργοποιείται. Εάν αυτή η πολιτική είναι απενεργοποιημένη ή δεν οριστεί, θα χρησιμοποιούνται μόνο τυπικά τοπικά προφίλ.
diff --git a/components/policy/resources/policy_templates_en-GB.xtb b/components/policy/resources/policy_templates_en-GB.xtb index 8b19883f..5e584eb 100644 --- a/components/policy/resources/policy_templates_en-GB.xtb +++ b/components/policy/resources/policy_templates_en-GB.xtb
@@ -27,6 +27,7 @@ If this policy is set, the sign-in screen will always be displayed in the locale which is given by the first value of this policy (the policy is defined as a list for forward compatibility). If this policy is not set or is set to an empty list, the sign-in screen will be displayed in the locale of the last user session. If this policy is set to a value which is not a valid locale, the sign-in screen will be displayed in a fallback locale (currently, en-US).</translation> <translation id="1062011392452772310">Enable remote attestation for the device</translation> <translation id="1062407476771304334">Replace</translation> +<translation id="1079801999187584280">Disallow usage of the Developer Tools</translation> <translation id="109166998561583554">Password protection at-risk account flagging trigger</translation> <translation id="1093082332347834239">If this setting is enabled, the remote assistance host will be run in a process with <ph name="UIACCESS_PERMISSION_NAME" /> permissions. This will allow remote users to interact with elevated windows on the local user's desktop. @@ -79,6 +80,7 @@ The scale factor must be 100% or more.</translation> <translation id="131353325527891113">Show usernames on login screen</translation> +<translation id="1325295456374328159">Configure the allowed locales in a user session</translation> <translation id="1327466551276625742">Enable network configuration prompt when offline</translation> <translation id="1330145147221172764">Enable on-screen keyboard</translation> <translation id="13356285923490863">Policy Name</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Whether to enable trust in Symantec Corporation's Legacy PKI Infrastructure</translation> <translation id="1393485621820363363">Enabled enterprise device printers</translation> <translation id="1397855852561539316">Default search provider suggest URL</translation> +<translation id="1424081297104898791">Allows you to control where Developer Tools can be used. + + If this policy is set to 'DeveloperToolsDisallowedForForceInstalledExtensions' (value 0, which is the default for enterprise users), the Developer Tools and the JavaScript console can be accessed in general, but they can not be accessed in the context of extensions installed by enterprise policy. + If this policy is set to 'DeveloperToolsAllowed' (value 1, which is the default for unmanaged users), the Developer Tools and the JavaScript console can be accessed and used in all contexts, including the context of extensions installed by enterprise policy. + If this policy is set to 'DeveloperToolsDisallowed' (value 2), the Developer Tools can not be accessed and web-site elements can not be inspected anymore. Any keyboard shortcuts and any menu or context menu entries to open the Developer Tools or the JavaScript Console will be disabled. + If the legacy policy DeveloperToolsDisabled is set to true, the value of this policy is ignored and the Developer Tools are disabled.</translation> <translation id="1426410128494586442">Yes</translation> <translation id="1427655258943162134">Address or URL of proxy server</translation> <translation id="1435659902881071157">Device-level network configuration</translation> @@ -206,6 +214,7 @@ <translation id="1803646570632580723">List of pinned apps to show in the launcher</translation> <translation id="1808715480127969042">Block cookies on these sites</translation> <translation id="1810261428246410396">Allow Instant Tethering to be used.</translation> +<translation id="1826282708349731794">Controls how Chrome Clean-Up reports data to Google</translation> <translation id="1827523283178827583">Use fixed proxy servers</translation> <translation id="1843117931376765605">Refresh rate for user policy</translation> <translation id="1844620919405873871">Configures quick unlock related policies.</translation> @@ -610,6 +619,7 @@ This policy has no effect on whether users can configure printers on individual devices. It is intended to be supplementary to the configuration of printers by individual users. </translation> <translation id="2633084400146331575">Enable spoken feedback</translation> +<translation id="2640843331263301324">Enables Chrome Clean-Up on Windows</translation> <translation id="2646290749315461919">Allows you to set whether websites are allowed to track the users' physical location. Tracking the users' physical location can be allowed by default, denied by default or the user can be asked every time a website requests the physical location. If this policy is left not set, 'AskGeolocation' will be used and the user will be able to change it.</translation> @@ -679,13 +689,6 @@ If this policy is used, only the printers with ids matching the values in this policy are available to the user. The ids must correspond to the 'id' or 'guid' fields in the file specified in <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Enables the availability of Touch to Search in <ph name="PRODUCT_NAME" />'s content view. - - If you enable this setting, Touch to Search will be available to the user and they can choose to turn the feature on or off. - - If you disable this setting, Touch to Search will be disabled completely. - - If this policy is left not set, it is equivalent to being enabled, see description above.</translation> <translation id="285480231336205327">Enable high contrast mode</translation> <translation id="2854919890879212089">Causes <ph name="PRODUCT_NAME" /> to use the system default printer as the default choice in Print Preview instead of the most recently used printer. @@ -1267,12 +1270,14 @@ <translation id="4554651132977135445">User policy loopback processing mode</translation> <translation id="4555850956567117258">Enable remote attestation for the user</translation> <translation id="4557134566541205630">Default search provider new tab page URL</translation> +<translation id="4567137030726189378">Allow usage of the Developer Tools</translation> <translation id="4600786265870346112">Enable large cursor</translation> <translation id="4604931264910482931">Configure native messaging blacklist</translation> <translation id="4613508646038788144">If the policy is set to false then third-party software will be allowed to inject executable code into Chrome's processes. If the policy is unset or set to true then third-party software will be prevented from injecting executable code into Chrome's processes.</translation> <translation id="4617338332148204752">Skip the meta tag check in <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Configure extension installation whitelist</translation> <translation id="4632343302005518762">Allow <ph name="PRODUCT_FRAME_NAME" /> to handle the listed content types</translation> +<translation id="4632566332417930481">Disallow usage of the Developer Tools on extensions installed by enterprise policy; allow usage of the Developer Tools in other contexts</translation> <translation id="4633786464238689684">Changes the default behaviour of the top row keys to function keys. If this policy is set to true, the keyboard's top row of keys will produce function key commands by default. The search key has to be pressed to revert their behaviour back to media keys. @@ -1548,10 +1553,14 @@ If it is not set, the user may be asked whether to import or importing may happen automatically.</translation> <translation id="5423197884968724595">Android WebView restriction name:</translation> +<translation id="5442026853063570579">This policy also controls access to Android Developer Options. If you set this policy to 'DeveloperToolsDisallowed' (value 2), users cannot access Developer Options. If you set this policy to another value or leave it unset, users can access Developer Options by tapping seven times on the build number in the Android settings app.</translation> <translation id="5447306928176905178">Enable reporting memory info (JS heap size) to page (deprecated)</translation> <translation id="5457065417344056871">Enable guest mode in browser</translation> <translation id="5457924070961220141">Allows you to configure the default HTML renderer when <ph name="PRODUCT_FRAME_NAME" /> is installed. The default setting used when this policy is left unset is to allow the host browser do the rendering, but you can optionally override this and have <ph name="PRODUCT_FRAME_NAME" /> render HTML pages by default.</translation> +<translation id="5459155981813668716">Configures the locales <ph name="PRODUCT_OS_NAME" /> may be displayed in. + + If this policy is set, the user can only configure <ph name="PRODUCT_OS_NAME" /> to be displayed in one of the locales specified by this policy. If this policy is not set or set to an empty list, <ph name="PRODUCT_OS_NAME" /> can be displayed in all supported locales. If this policy is set to a list with invalid values, all invalid values will be ignored. If a user previously configured <ph name="PRODUCT_OS_NAME" /> to be displayed in a language that is not allowed by this policy, the display locale will be switched to an allowed locale the next time that the user signs in. If the user had configured preferred locales and one of the preferred locales is allowed by this policy, <ph name="PRODUCT_OS_NAME" /> will switch to this locale. Otherwise, <ph name="PRODUCT_OS_NAME" /> will switch to the first valid value specified by this policy, or to a fallback locale (currently en-US), if this policy only contains invalid entries.</translation> <translation id="5464816904705580310">Configure settings for managed users.</translation> <translation id="546726650689747237">Screen dim delay when running on AC power</translation> <translation id="5469484020713359236">Allows you to set a list of url patterns that specify sites which are allowed to set cookies. @@ -1673,7 +1682,6 @@ If this policy is left unset, spoken feedback is disabled when the login screen is first shown. Users can enable or disable spoken feedback at any time and its status on the login screen is persisted between users.</translation> <translation id="5868414965372171132">User-level network configuration</translation> -<translation id="588135807064822874">Enable Touch to Search</translation> <translation id="5883015257301027298">Default cookies setting</translation> <translation id="5887414688706570295">Configures the TalkGadget prefix that will be used by remote access hosts and prevents users from changing it. @@ -1777,6 +1785,7 @@ <translation id="6036523166753287175">Enable firewall traversal from remote access host</translation> <translation id="6070667616071269965">Device sign-in screen keyboard layouts</translation> <translation id="6074963268421707432">Do not allow any site to show desktop notifications</translation> +<translation id="6074964551275531965">Set the time period for update notifications</translation> <translation id="6076099373507468537">Defines the list of USB devices that are allowed to be detached from their kernel driver in order to be used through the chrome.usb API directly inside a web application. Entries are pairs of USB Vendor Identifier and Product Identifier to identify a specific hardware. If this policy is not configured, the list of a detachable USB devices is empty.</translation> @@ -1855,6 +1864,11 @@ If you enable this setting or do not set a value, Auto-fill will remain under the control of the user. This will allow them to configure Auto-fill profiles and to switch Auto-fill on or off at their own discretion.</translation> <translation id="6394350458541421998">This policy has been retired as of <ph name="PRODUCT_OS_NAME" /> version 29. Please use the PresentationScreenDimDelayScale policy instead.</translation> <translation id="6401669939808766804">Log the user out</translation> +<translation id="6412477120967771054">If set to false, prevents Chrome Clean-Up from scanning the system for unwanted software and performing clean-ups. Manually triggering Chrome Clean-Up from chrome://settings/cleanup is disabled. + + If set to true or unset, Chrome Clean–Up periodically scans the system for unwanted software and should any be found, will ask the user if they wish to remove it. Manually triggering Chrome Clean–Up from chrome://settings is enabled. + + This policy is not available on Windows instances that are not joined to a <ph name="MS_AD_NAME" /> domain.</translation> <translation id="6417861582779909667">Allows you to set a list of url patterns that specify sites which are not allowed to set cookies. If this policy is left unset, the global default value will be used for all sites, either from the 'DefaultCookiesSetting' policy, if it is set, or the user's personal configuration otherwise.</translation> @@ -1877,6 +1891,13 @@ To control which websites are allowed to run Flash, see the 'DefaultPluginsSetting', 'PluginsAllowedForURLs' and 'PluginsBlockedForURLs' policies. If this setting is disabled or not set, Flash content from other origins or small content might be blocked.</translation> +<translation id="6535639183431116351">This policy is deprecated in M68, please use DeveloperToolsAvailability instead. + + Disables the Developer Tools and the JavaScript console. + + If you enable this setting, the Developer Tools can not be accessed and web-site elements can not be inspected anymore. Any keyboard shortcuts and any menu or context menu entries to open the Developer Tools or the JavaScript Console will be disabled. + + Setting this option to disabled or leaving it not set allows the user to use the Developer Tools and the JavaScript console.</translation> <translation id="653608967792832033">Specifies the length of time without user input after which the screen is locked when running on battery power. When this policy is set to a value greater than zero, it specifies the length of time that the user must remain idle before <ph name="PRODUCT_OS_NAME" /> locks the screen. @@ -1942,11 +1963,6 @@ <translation id="6689792153960219308">Report hardware status</translation> <translation id="6698071416141001300">Password protection at-risk account flagging is triggered by password reuse</translation> <translation id="6699880231565102694">Enable two-factor authentication for remote access hosts</translation> -<translation id="6702257826895463228">Allows sites to simultaneously navigate and open pop-ups. - - For a full explanation, see https://www.chromestatus.com/features/5675755719622656. - If this policy is enabled, sites will be allowed to simultaneously navigate and open new windows/tabs. - If this policy is disabled or not set, sites will be prevented from simultaneously navigating and opening a new window/tab.</translation> <translation id="6724842112053619797">If you enable this setting, the settings stored in <ph name="PRODUCT_NAME" /> profiles like bookmarks, auto-fill data, passwords, etc. will also be written to a file stored in the roaming user profile folder or a location specified by the Administrator through the <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> policy. Enabling this policy disables cloud sync. If this policy is disabled or left not set, only the regular local profiles will be used. @@ -2314,6 +2330,7 @@ See https://developers.google.com/safe-browsing for more info on Safe Browsing.</translation> <translation id="7643883929273267746">Restrict accounts that are visible in <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Determines whether data roaming should be enabled for the device. If set to true, data roaming is allowed. If left unconfigured or set to false, data roaming will be unavailable.</translation> +<translation id="7673194325208122247">Time period (milliseconds)</translation> <translation id="7683777542468165012">Dynamic Policy Refresh</translation> <translation id="7694807474048279351">Schedule an automatic reboot after a <ph name="PRODUCT_OS_NAME" /> update has been applied. @@ -2446,6 +2463,13 @@ If this setting is disabled and outgoing UDP connections are filtered by the firewall, then this machine can only connect to host machines within the local network.</translation> <translation id="7976157349247117979">Name of the <ph name="PRODUCT_NAME" /> destination</translation> +<translation id="7977445800390854860">If unset, should Chrome Clean-Up detect unwanted software, it may report metadata about the scan to Google in accordance with policy set by SafeBrowsingExtendedReportingEnabled. Chrome Clean-Up will then ask the user if they wish to clean up the unwanted software. The user can choose to share results of the clean-up with Google to assist with future unwanted software detection. These results contain file metadata and registry keys as described by the Chrome Privacy Whitepaper. + + If set to false, should Chrome Clean-Up detect unwanted software, it will not report metadata about the scan to Google, overriding any policy set by SafeBrowsingExtendedReportingEnabled. Chrome Clean-Up will ask the user if they wish to clean up the unwanted software. Results of the clean-up will not be reported to Google and the user will not have the option to do so. + + If set to true, should Chrome Clean-Up detect unwanted software, it may report metadata about the scan to Google in accordance with policy set by SafeBrowsingExtendedReportingEnabled. Chrome Clean-Up will ask the user if they wish to clean up the unwanted software. Results of the clean-up will be reported to Google and the user will not have the option to prevent it. + + This policy is not available on Windows instances that are not joined to a <ph name="MS_AD_NAME" /> domain.</translation> <translation id="7978060394348264922"> You might want to look at the IsolateOrigins policy setting to get the best of both worlds, isolation and limited impact for users, by using @@ -2568,6 +2592,7 @@ <translation id="8300455783946254851">Disables Google Drive syncing in the <ph name="PRODUCT_OS_NAME" /> Files app when using a mobile connection when set to True. In that case, data is only synced to Google Drive when connected via Wi-Fi or Ethernet. If not set or set to False, then users will be able to transfer files to Google Drive via mobile connections.</translation> +<translation id="8300992833374611099">Control where Developer Tools can be used</translation> <translation id="8312129124898414409">Allows you to set whether websites are allowed to use key generation. Using key generation can be either allowed for all websites or denied for all websites. If this policy is left not set, 'BlockKeygen' will be used and the user will be able to change it.</translation> @@ -2806,6 +2831,11 @@ <translation id="9035964157729712237">Extension IDs to exempt from the blacklist</translation> <translation id="9042911395677044526">Allows pushing network configuration to be applied per-user to a <ph name="PRODUCT_OS_NAME" /> device. The network configuration is a JSON-formatted string as defined by the Open Network Configuration format described at <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Specify whether video activity affects power management</translation> +<translation id="9085839450090699752">Allows you to set the time period, in milliseconds, over which users are notified that <ph name="PRODUCT_NAME" /> must be relaunched or that a <ph name="PRODUCT_OS_NAME" /> device must be restarted to apply a pending update. + + Over this time period, the user will be informed repeatedly of the need for an update. For <ph name="PRODUCT_OS_NAME" /> devices, a restart notification appears in the system tray when an upgrade is detected. This notification changes colour once half of the notification period passes, and again once the full notification period has passed. For <ph name="PRODUCT_NAME" /> browsers, the app menu changes to indicate that a relaunch is needed once one third of the notification period passes. This notification changes colour once two thirds of the notification period passes, and again once the full notification period has passed. The additional notifications enabled by the <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> policy for browsers follow this same schedule. + + If not set, the default period of 345600000 milliseconds (four days) is used for <ph name="PRODUCT_OS_NAME" /> devices and 604800000 milliseconds (one week) for browsers.</translation> <translation id="9088433379343318874">Enable the supervised user content provider</translation> <translation id="9088444059179765143">Configure the automatic timezone detection method</translation> <translation id="9096086085182305205">Authentication server whitelist</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index af430f3..b1788a8b2e 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -645,13 +645,6 @@ Si se usa esta política, el usuario solo podrá acceder a las impresoras con ID que coincidan con los valores en esta política. Los ID deben coincidir con los valores de los campos "id" o "guid" en el archivo que se especifica en <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Habilita la disponibilidad de Tocar para buscar en la vista de contenido de <ph name="PRODUCT_NAME" />. - - Si se habilita esta configuración, Tocar para buscar estará disponible para el usuario, quien podrá elegir activar o desactivar la función. - - Si se inhabilita esta configuración, Tocar para buscar se inhabilitará completamente. - - Si esta política se deja sin establecer, es equivalente a que esté habilitada; para obtener más información, se puede consultar la descripción más arriba.</translation> <translation id="285480231336205327">Habilitar el modo de contraste alto</translation> <translation id="2854919890879212089">Hace que <ph name="PRODUCT_NAME" /> use la impresora predeterminada del sistema como la opción predeterminada en Vista previa de impresión, en lugar de la impresora que se usó de forma más reciente. @@ -1576,7 +1569,6 @@ 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="588135807064822874">Habilitar Tocar para buscar</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. @@ -1838,11 +1830,6 @@ <translation id="6689792153960219308">Informar estado de hardware</translation> <translation id="6698071416141001300">La marca de la protección de la contraseña que indica que la cuenta está en riesgo se activa cuando se vuelve a usar la contraseña</translation> <translation id="6699880231565102694">Habilitar autenticación de dos factores para los hosts de acceso remoto.</translation> -<translation id="6702257826895463228">Permite la navegación y las ventanas emergentes en los sitios al mismo tiempo. - - Para obtener una explicación completa, consulta https://www.chromestatus.com/features/5675755719622656. - Si se habilita esta política, se podrá navegar en los sitios y abrir ventanas o pestañas nuevas al mismo tiempo. - Si se inhabilita esta política o no se establece, no se podrá navegar en los sitios ni abrir ventanas o pestañas nuevas al mismo tiempo.</translation> <translation id="6724842112053619797">Si habilitas esta configuración, los datos almacenados en los perfiles de <ph name="PRODUCT_NAME" />, como los favoritos, los datos de Autocompletar, las contraseñas, etc. también se guardarán en un archivo almacenado en la carpeta de perfil del usuario Roaming o una ubicación que el administrador especifique mediante la política <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Si habilitas esta política, se inhabilita la sincronización en la nube. Si esta política se inhabilita o no se establece, solo se usarán los perfiles locales comunes.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index 57b2a12..a4fbbd03 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -27,6 +27,7 @@ Si se asigna un valor a esta política, la pantalla de inicio de sesión se mostrará siempre en la configuración regional proporcionada por el primer valor de esta política (esta se define como lista para que sea compatible con versiones posteriores). Si no se le asigna ningún valor o se le asigna una lista vacía, la pantalla de inicio de sesión se mostrará en la configuración regional de la sesión del último usuario. Si el valor que se le asigna no es una configuración regional válida, la pantalla de inicio de sesión se mostrará en una configuración regional establecida antes (actualmente: en-US).</translation> <translation id="1062011392452772310">Habilitar confirmación remota para el dispositivo</translation> <translation id="1062407476771304334">Sustituir</translation> +<translation id="1079801999187584280">No permitir el uso de Herramientas para desarrolladores</translation> <translation id="109166998561583554">Activar advertencia de protección de contraseña sobre cuenta en riesgo</translation> <translation id="1093082332347834239">Si se habilita esta opción, el host de asistencia remota se ejecutará en un proceso con permisos de <ph name="UIACCESS_PERMISSION_NAME" />. Esto permitirá que los usuarios remotos interactúen con ventanas a las que se puede acceder con permisos de administrador en el ordenador del usuario local. @@ -78,6 +79,7 @@ El factor de escala debe ser igual o superior al 100%.</translation> <translation id="131353325527891113">Mostrar los nombres de usuario en la pantalla de inicio de sesión</translation> +<translation id="1325295456374328159">Configurar las configuraciones regionales permitidas en una sesión de usuario</translation> <translation id="1327466551276625742">Habilitar mensaje de configuración de red si no hay conexión</translation> <translation id="1330145147221172764">Habilitar teclado en pantalla</translation> <translation id="13356285923490863">Nombre de la política</translation> @@ -90,6 +92,12 @@ <translation id="1387596372902085462">Confiar o no en la infraestructura de clave pública antigua de Symantec Corporation</translation> <translation id="1393485621820363363">Impresoras de dispositivos de empresa habilitadas</translation> <translation id="1397855852561539316">URL de sugerencia del proveedor de búsquedas predeterminadas</translation> +<translation id="1424081297104898791">Te permite controlar dónde se pueden usar las Herramientas para desarrolladores. + + Si se asigna a esta política el valor DeveloperToolsDisallowedForForceInstalledExtensions (el valor 0, que es el predeterminado para usuarios de empresa), se podrá acceder a las Herramientas para desarrolladores y a la consola de JavaScript en general, excepto en extensiones instaladas por la política de empresa. + Si se asigna a esta política el valor DeveloperToolsAllowed (el valor 1, que es el predeterminado para usuarios no administrados), se podrá acceder a las Herramientas para desarrolladores y a la consola de JavaScript sin excepciones, incluso en extensiones instaladas por la política de empresa. + Si se asigna a esta política el valor DeveloperToolsDisallowed (el valor 2), no se podrá acceder a las Herramientas para desarrolladores y no se podrán inspeccionar los elementos de los sitios web. También se inhabilitarán las combinaciones de teclas y las entradas de menús o menús contextuales que permiten abrir las Herramientas para desarrolladores y la consola de JavaScript. + Si se asigna el valor "True" a la antigua política DeveloperToolsDisabled, el valor de esta política se ignorará y las Herramientas para desarrolladores se inhabilitarán.</translation> <translation id="1426410128494586442">Sí</translation> <translation id="1427655258943162134">Dirección o URL de servidor proxy</translation> <translation id="1435659902881071157">Configuración de red de dispositivos</translation> @@ -201,6 +209,7 @@ <translation id="1803646570632580723">Lista de aplicaciones fijadas que deben aparecer en la barra de aplicaciones</translation> <translation id="1808715480127969042">Bloquear cookies en estos sitios</translation> <translation id="1810261428246410396">Permitir conexión compartida instantánea.</translation> +<translation id="1826282708349731794">Controla cómo el Limpiador de Chrome envía datos a Google</translation> <translation id="1827523283178827583">Utilizar servidores proxy fijos</translation> <translation id="1843117931376765605">Frecuencia con la que se actualiza la política de usuario</translation> <translation id="1844620919405873871">Configura las políticas relacionadas con el desbloqueo rápido.</translation> @@ -432,7 +441,7 @@ <ph name="PRINTER_DISPLAY_NAME" /> y <ph name="PRINTER_DESCRIPTION" /> son cadenas de formato libre que se pueden personalizar para que la selección de impresoras sea sencilla. <ph name="PRINTER_MANUFACTURER" /> y <ph name="PRINTER_MODEL" /> permiten que la identificación de la impresora sea sencilla para los usuarios finales. Representan el fabricante y el modelo de la impresora. <ph name="PRINTER_URI" /> debería ser una dirección que esté disponible desde un ordenador cliente (incluidos <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> y <ph name="URI_QUEUE" />). <ph name="PRINTER_UUID" /> es opcional. Si se especifica, se utiliza para anular el duplicado de impresoras <ph name="ZEROCONF_DISCOVERY" />. - <ph name="PRINTER_EFFECTIVE_MODEL" /> debe coincidir con una de las cadenas que representan una impresora compatible <ph name="PRODUCT_NAME" />. La cadena se usará para identificar e instalar los archivos PPD adecuados para la impresora. Consulta más información en la página https://support.google.com/chrome?p=noncloudprint. + <ph name="PRINTER_EFFECTIVE_MODEL" /> debe coincidir con una de las cadenas que representan una impresora compatible <ph name="PRODUCT_NAME" />. La cadena se usará para identificar e instalar los archivos PPD adecuados para la impresora. Consulta más información en la página https://support.google.com/chrome?p=noncloudprint&hl=es. La configuración de la impresora se completa la primera vez que se utiliza. Los archivos PPD no se descargan hasta que la impresora se usa. Después de ese momento, los archivos PPD que se utilizan con frecuencia se almacenan en caché. @@ -608,6 +617,7 @@ Esta política no afecta a la capacidad de los usuarios para configurar impresoras en determinados dispositivos. La política se ha diseñado como complemento a la configuración de impresoras que realizan los usuarios. </translation> <translation id="2633084400146331575">Habilitar mensajes de voz</translation> +<translation id="2640843331263301324">Habilita el Limpiador de Chrome en Windows</translation> <translation id="2646290749315461919">Permite establecer si los sitios web pueden hacer un seguimiento de la ubicación de los usuarios. El seguimiento de la ubicación de los usuarios se puede permitir o denegar de forma predeterminada o se puede establecer que un sitio web pida permiso al usuario siempre que quiera conocer la ubicación. Si no se establece esta política, se usará la política AskGeolocation y el usuario podrá modificarla.</translation> @@ -677,13 +687,6 @@ Si se usa esta política, el usuario solo podrá acceder a las impresoras cuyos ID se correspondan con los valores incluidos en ella. Los ID se deben corresponder con los campos "id" o "guid" del archivo especificado en la política <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Permite que Tocar para buscar esté disponible en la vista de contenido de <ph name="PRODUCT_NAME" />. - - Si habilitas esta opción, Tocar para buscar estará disponible para los usuarios y podrán decidir cuándo activarla o desactivarla. - - Si inhabilitas esta opción, se inhabilitará por completo Tocar para buscar. - - Si no se establece ningún valor para esta política, se considerará que está habilitada (consulta la descripción anterior).</translation> <translation id="285480231336205327">Habilitar modo de contraste alto</translation> <translation id="2854919890879212089">Hace que <ph name="PRODUCT_NAME" /> utilice la impresora predeterminada del sistema como opción predeterminada en la vista previa de impresión en lugar de la última impresora utilizada. @@ -1263,12 +1266,14 @@ <translation id="4554651132977135445">Modo de procesamiento loopback de políticas del usuario</translation> <translation id="4555850956567117258">Habilitar confirmación remota para el usuario</translation> <translation id="4557134566541205630">URL de la página Nueva pestaña del proveedor de búsqueda predeterminado</translation> +<translation id="4567137030726189378">Permite el uso de las Herramientas para desarrolladores</translation> <translation id="4600786265870346112">Habilitar cursor grande</translation> <translation id="4604931264910482931">Configurar la lista negra de mensajes nativos</translation> <translation id="4613508646038788144">Si se le asigna el valor "False" a esta política, el software de terceros podrá insertar código ejecutable en los procesos de Chrome. Si no se asigna ningún valor a esta política o se le asigna el valor "True", el software de terceros no podrá insertar código ejecutable en los procesos de Chrome.</translation> <translation id="4617338332148204752">Omitir la comprobación de metaetiquetas en <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Configurar lista de admisión de instalación de extensiones</translation> <translation id="4632343302005518762">Permitir que <ph name="PRODUCT_FRAME_NAME" /> procese los tipos de contenido mostrados</translation> +<translation id="4632566332417930481">No permite el uso de las Herramientas para desarrolladores en extensiones instaladas por la política de empresa, pero sí permite su uso en otros contextos</translation> <translation id="4633786464238689684">Permite modificar el comportamiento predeterminado de las teclas de la fila superior para convertirlas en teclas de funciones. Si esta política se establece en True, las teclas de la fila superior del teclado realizarán comandos de teclas de funciones de forma predeterminada. debes pulsar la tecla de búsqueda para que las teclas multimedia vuelvan a su comportamiento original. @@ -1543,10 +1548,14 @@ Si no se establece, es posible que se le pida al usuario que haga la importación o que los motores de búsqueda se importen automáticamente.</translation> <translation id="5423197884968724595">Nombre de restricción de WebView de Android:</translation> +<translation id="5442026853063570579">Esta política también controla el acceso a las opciones para desarrolladores de Android. Si se asigna a esta política el valor DeveloperToolsDisallowed (el valor 2), los usuarios no podrán acceder a las opciones para desarrolladores. Si se le asigna otro valor o no se le asigna ninguno, los usuarios podrán acceder a las opciones para desarrolladores tocando siete veces el número de compilación en la aplicación Ajustes de Android.</translation> <translation id="5447306928176905178">Habilitar notificación de información sobre memoria (tamaño de conjunto de archivos JavaScript) a la página (obsoleto)</translation> <translation id="5457065417344056871">Habilitar el modo invitados en el navegador</translation> <translation id="5457924070961220141">Permite configurar el procesador de HTML predeterminado si se ha instalado <ph name="PRODUCT_FRAME_NAME" />. Si no se establece esta política, se permitirá que el navegador del host muestre las páginas HTML de forma predeterminada, pero puedes anular esta opción para que <ph name="PRODUCT_FRAME_NAME" /> muestre las páginas HTML de forma predeterminada.</translation> +<translation id="5459155981813668716">Establece las configuraciones regionales en las que puede mostrarse <ph name="PRODUCT_OS_NAME" />. + + Si asigna a esta política una lista de configuraciones regionales, el usuario solo podrá mostrar <ph name="PRODUCT_OS_NAME" /> en una de esas configuraciones. Si no asigna ninguna configuración regional a esta política o le asigna una lista vacía, <ph name="PRODUCT_OS_NAME" /> se podrá mostrar en cualquier configuración admitida. Si se asigna a esta política una lista con configuraciones regionales no válidas, los valores que no sean válidos se ignorarán. Si un usuario ya había configurado <ph name="PRODUCT_OS_NAME" /> anteriormente en un idioma no permitido por esta política, la configuración regional se cambiará a otra permitida la próxima vez que el usuario inicie sesión. Si el usuario había establecido configuraciones regionales de preferencia y una de ellas está permitida por esta política, <ph name="PRODUCT_OS_NAME" /> se mostrará en dicha configuración. De lo contrario, <ph name="PRODUCT_OS_NAME" /> se cambiará a la primera configuración regional válida especificada por esta política, o bien a una alternativa (actualmente en-US) si ninguna de las entradas de la política es válida.</translation> <translation id="5464816904705580310">Permite establecer opciones de configuración de usuarios administrados.</translation> <translation id="546726650689747237">Retraso de atenuación de pantalla cuando el dispositivo está conectado a la red</translation> <translation id="5469484020713359236">Permite definir una lista de patrones de URL para especificar los sitios que pueden establecer cookies. @@ -1668,7 +1677,6 @@ Si no se establece esta política, se inhabilitarán los comentarios por voz la primera vez que se muestre la pantalla de inicio de sesión. No obstante, los usuarios podrán habilitar o inhabilitar los comentarios por voz en cualquier momento, y su estado en la pantalla de inicio de sesión permanecerá entre usuarios.</translation> <translation id="5868414965372171132">Configuración de red de usuarios</translation> -<translation id="588135807064822874">Habilitar la función Tocar para buscar</translation> <translation id="5883015257301027298">Configuración de cookies predeterminada</translation> <translation id="5887414688706570295">Permite configurar el prefijo TalkGadget que utilizarán los hosts de acceso remoto y evita que los usuarios lo modifiquen. @@ -1772,6 +1780,7 @@ <translation id="6036523166753287175">Habilita que se pueda pasar a través de un cortafuegos desde un host de acceso remoto.</translation> <translation id="6070667616071269965">Diseños de teclado para la pantalla de inicio de sesión del dispositivo</translation> <translation id="6074963268421707432">No permitir que ningún sitio muestre notificaciones de escritorio</translation> +<translation id="6074964551275531965">Establece el periodo de tiempo para notificaciones de actualización</translation> <translation id="6076099373507468537">Define la lista de dispositivos USB que pueden separarse de su controlador de kernel para utilizarse en la API chrome.usb directamente en una aplicación web. Las entradas son pares del identificador de producto y el identificador de proveedor del USB que permiten reconocer hardware específico. Si no se configura esta política, la lista de dispositivos USB que se pueden separar está vacía.</translation> @@ -1854,6 +1863,11 @@ Si habilitas esta opción o no estableces ningún valor, los usuarios podrán controlar la función Autocompletar para configurar los perfiles de Autocompletar y activar o desactivar esta función cuando lo deseen.</translation> <translation id="6394350458541421998">Esta política no está disponible desde la versión 29 de <ph name="PRODUCT_OS_NAME" />. Utiliza la política PresentationScreenDimDelayScale en su lugar.</translation> <translation id="6401669939808766804">Cerrar la sesión del usuario</translation> +<translation id="6412477120967771054">Si se asigna el valor "False" a esta política, el Limpiador de Chrome no podrá analizar el sistema para detectar software no deseado y realizar limpiezas. La opción para activar el Limpiador de Chrome desde chrome://settings/cleanup estará inhabilitada. + + Si se le asigna el valor "True" o no se asigna ningún valor, el Limpiador de Chrome analizará el sistema periódicamente para detectar software no deseado y, si encontrara alguno, preguntará al usuario si desea eliminarlo. La opción para activar el Limpiador de Chrome desde chrome://settings/cleanup estará inhabilitada. + + Esta política no está disponible en instancias de Windows que no estén unidas a un dominio <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Permite definir una lista de patrones de URL para especificar los sitios que no pueden establecer cookies. Si no se establece esta política, se usará para todos los sitios el valor general predeterminado que se indique en la política DefaultCookiesSetting (si se ha establecido) o el valor personalizado que haya definido el usuario (en caso contrario).</translation> @@ -1876,6 +1890,13 @@ Para controlar los sitios web que permiten contenido Flash, consulta las políticas "DefaultPluginsSetting", "PluginsAllowedForUrls" y "PluginsBlockedForUrls". Si esta opción está inhabilitada o no se le asigna ningún valor, es posible que se bloquee el contenido poco importante o el contenido Flash de otros orígenes.</translation> +<translation id="6535639183431116351">Esta política está obsoleta en M68. Utilice en su lugar DeveloperToolsAvailability. + + Inhabilita las Herramientas para desarrolladores y la consola de JavaScript. + + Si habilita esta opción, no se podrá acceder a las Herramientas para desarrolladores y no se podrán inspeccionar los elementos de los sitios web. También se inhabilitarán las combinaciones de teclas y las entradas de menús o menús contextuales que permiten abrir las Herramientas para desarrolladores y la consola de JavaScript. + + Si se inhabilita esta opción o si no se le asigna ningún valor, se podrán usar las Herramientas para desarrolladores y la consola de JavaScript.</translation> <translation id="653608967792832033">Permite especificar el tiempo transcurrido hasta el bloqueo de la pantalla (sin que el usuario realice ninguna acción) cuando el dispositivo funciona con la batería. Cuando esta política se establece en un valor superior a cero, especifica el tiempo en que el usuario debe permanecer inactivo antes de que <ph name="PRODUCT_OS_NAME" /> bloquee la pantalla. @@ -1941,11 +1962,6 @@ <translation id="6689792153960219308">Informar sobre el estado del hardware</translation> <translation id="6698071416141001300">La advertencia de protección de contraseña sobre cuenta en riesgo se activa al reutilizar la contraseña</translation> <translation id="6699880231565102694">Habilitar la autenticación de dos factores para hosts de acceso remoto</translation> -<translation id="6702257826895463228">Permite que los sitios web abran ventanas emergentes y naveguen de forma simultánea. - - Consulta una explicación completa en la página https://www.chromestatus.com/features/5675755719622656. - Si se habilita esta política, los sitios web podrán abrir nuevas ventanas y pestañas y navegar de forma simultánea. - Si se inhabilita esta política o no se configura, los sitios web no podrán abrir ventanas ni pestañas nuevas ni navegar de forma simultánea.</translation> <translation id="6724842112053619797">Si habilitas esta opción, la configuración almacenada en los perfiles de <ph name="PRODUCT_NAME" /> (como los marcadores, los datos de Autocompletar y las contraseñas) también se escribirá en un archivo almacenado en la carpeta Itinerancia del perfil de usuario o en una ubicación especificada por el administrador en la política <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Al habilitar esta política, se inhabilita la sincronización en la nube. @@ -2312,6 +2328,7 @@ Consulta la página https://developers.google.com/safe-browsing para obtener más información sobre la función Navegación Segura.</translation> <translation id="7643883929273267746">Restringir cuentas que se muestran en <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Permite determinar la habilitación de la itinerancia de datos en el dispositivo. Si el valor se establece en "true", se permite la itinerancia de datos. Si no se configura o si el valor se establece en "false", la itinerancia de datos no estará disponible.</translation> +<translation id="7673194325208122247">Periodo de tiempo (milisegundos)</translation> <translation id="7683777542468165012">Actualización dinámica de política</translation> <translation id="7694807474048279351">Programa un reinicio automático después de haberse aplicado una actualización de <ph name="PRODUCT_OS_NAME" />. @@ -2444,6 +2461,13 @@ Si se inhabilita esta opción y el firewall filtra las conexiones UDP salientes, el ordenador solo podrá establecer conexión con hosts dentro de la red local.</translation> <translation id="7976157349247117979">Nombre del destino de <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Si no se le asigna ningún valor, cuando el Limpiador de Chrome detecta software no deseado, podrá enviar metadatos sobre el análisis a Google, según la política establecida por SafeBrowsingExtendedReportingEnabled. El Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado, quien podrá elegir si quiere compartir los resultados de la limpieza con Google para ayudar a detectar software no deseado en el futuro. Estos resultados contienen metadatos de archivos y claves de registro, tal como se describe en la página de información sobre privacidad de Google Chrome. + + Si se le asigna el valor "False", cuando el Limpiador de Chrome detecta software no deseado, no enviará metadatos sobre el análisis a Google, anulando cualquier política establecida por SafeBrowsingExtendedReportingEnabled. El Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado. Los resultados de la limpieza no se enviarán a Google y el usuario no tendrá la opción de hacerlo. + + Si se le asigna el valor "True", cuando el Limpiador de Chrome detecta software no deseado, podrá enviar metadatos sobre el análisis de acuerdo con la política establecida por SafeBrowsingExtendedReportingEnabled. El Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado. Los resultados de la limpieza se enviarán a Google y el usuario no tendrá la opción de impedirlo. + + Esta política no está disponible en instancias de Windows que no estén unidas a un dominio <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Para conseguir tanto aislamiento como un impacto limitado para los usuarios, utiliza la política @@ -2566,6 +2590,7 @@ <translation id="8300455783946254851">Si se utiliza el valor true para esta política, se inhabilita la sincronización de Google Drive en la aplicación Archivos de <ph name="PRODUCT_OS_NAME" /> cuando se utiliza una conexión móvil, en cuyo caso los datos solo se sincronizan con Google Drive cuando se establece una conexión Wi-Fi o Ethernet. Si se utiliza el valor false o no se establece la política, los usuarios podrán transferir archivos a Google Drive a través de conexiones móviles.</translation> +<translation id="8300992833374611099">Controla dónde se pueden usar las Herramientas para desarrolladores</translation> <translation id="8312129124898414409">Permite establecer si los sitios web tienen permiso para utilizar la generación de claves. El uso de la generación de claves se puede permitir o rechazar en todos los sitios web. Si no se establece esta política, se utilizará BlockKeygen y el usuario podrá modificarla.</translation> @@ -2802,6 +2827,11 @@ <translation id="9035964157729712237">ID de extensiones que no deben estar incluidas en la lista negra</translation> <translation id="9042911395677044526">Permite aplicar la configuración de red al dispositivo <ph name="PRODUCT_OS_NAME" /> de cada usuario. La configuración de red es una cadena escrita en formato JSON, tal como se define en la siguiente página sobre el formato Open Network Configuration: <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Especificar si la actividad de vídeo afecta a la administración de energía</translation> +<translation id="9085839450090699752">Permite establecer el periodo de tiempo (en milisegundos) durante el que los usuarios recibirán una notificación informándoles de que deben reiniciar <ph name="PRODUCT_NAME" /> o un dispositivo <ph name="PRODUCT_OS_NAME" /> para que se aplique una actualización pendiente. + + Durante este periodo de tiempo, se informará repetidamente al usuario de la necesidad de aplicar una actualización. En el caso de dispositivos <ph name="PRODUCT_OS_NAME" />, se mostrará una notificación de reinicio en la bandeja del sistema cuando se detecte una actualización. Esta notificación cambiará de color cuando haya transcurrido la mitad del periodo de notificación y, de nuevo, cuando este haya finalizado. En el caso de los navegadores <ph name="PRODUCT_NAME" />, el menú de aplicaciones cambiará para indicar que es necesario reiniciar cuando haya transcurrido un tercio del periodo de notificación. Esta notificación cambiará de color cuando hayan transcurrido dos tercios del periodo de notificación y, de nuevo, cuando este haya finalizado. Las notificaciones adicionales habilitadas por la política <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> en navegadores siguen esta misma programación. + + Si no se asigna ningún valor, se usará el periodo predeterminado de 345.600.000 milisegundos (cuatro días) para los dispositivos <ph name="PRODUCT_OS_NAME" /> y de 604.800.000 milisegundos (una semana) para los navegadores.</translation> <translation id="9088433379343318874">Habilitar el proveedor de contenido de usuarios supervisados</translation> <translation id="9088444059179765143">Configura el método de detección automática de la zona horaria</translation> <translation id="9096086085182305205">Lista de admisión de servidores de autenticación</translation>
diff --git a/components/policy/resources/policy_templates_et.xtb b/components/policy/resources/policy_templates_et.xtb index e12e5bac..e27adf60 100644 --- a/components/policy/resources/policy_templates_et.xtb +++ b/components/policy/resources/policy_templates_et.xtb
@@ -27,6 +27,7 @@ Kui see reegel on määratud, kuvatakse sisselogimisekraan alati lokaadis, mis selle reegli esimese väärtusega määratakse (reegel on määratud suunamise ühilduvuse loendina). Kui seda reeglit pole määratud või see on tühi loend, kuvatakse sisselogimisekraan kasutaja viimase seansi lokaadis. Kui sellele reeglile on määratud väärtus, mis ei ole kehtiv lokaat, kuvatakse sisselogimisekraan varulokaadis (praegu en-US).</translation> <translation id="1062011392452772310">Seadme kaugatesteerimise lubamine</translation> <translation id="1062407476771304334">Asenda</translation> +<translation id="1079801999187584280">Arendaja tööriistade kasutamise keelamine</translation> <translation id="109166998561583554">Ohus oleva paroolikaitse konto märgistamise käivitaja</translation> <translation id="1093082332347834239">Kui seade on lubatud, käitatakse protsessis kaugabi hosti lubadega <ph name="UIACCESS_PERMISSION_NAME" />. See võimaldab kaugkasutajatel suhelda kohaliku kasutaja töölaual olevate administraatoriõigusi nõudvate akendega. @@ -79,6 +80,7 @@ Skaleerimistegur peab olema vähemalt 100%.</translation> <translation id="131353325527891113">Kuva kasutajanimed sisselogimiskuval</translation> +<translation id="1325295456374328159">Kasutaja seansis lubatud lokaatide seadistamine</translation> <translation id="1327466551276625742">Võrguseadistuse viiba lubamine, kui seade on võrguühenduseta</translation> <translation id="1330145147221172764">Luba ekraanil kuvatav klaviatuur</translation> <translation id="13356285923490863">Reegli nimi</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Määrab, kas usaldada Symantec Corporationi PKI pärandtaristut</translation> <translation id="1393485621820363363">Ettevõtte seadmete jaoks lubatud printerid</translation> <translation id="1397855852561539316">Vaikeotsingupakkuja soovitatud URL</translation> +<translation id="1424081297104898791">Võimaldab teil juhtida, kus saab kasutada arendaja tööriistu. + + Kui reegel on seatud väärtusele „DeveloperToolsDisallowedForForceInstalledExtensions” (väärtus 0, mis on vaikeseade ettevõtte kasutajate puhul), on arendaja tööriistad ja JavaScripti konsool üldiselt juurdepääsetavad, ent nendele ei pääse juurde ettevõtte reegli alusel installitud laiendite kontekstis. + Kui reegel on seatud väärtusele „DeveloperToolsAllowed” (väärtus 1, mis on vaikeseade haldamata kasutajate puhul), on arendaja tööriistad ja JavaScripti konsool juurdepääsetavad ja kasutamiseks saadaval igas kontekstis, sealhulgas ettevõtte reegli alusel installitud laiendite puhul. + Kui reegel on seatud väärtusele „DeveloperToolsDisallowed” (väärtus 2), ei ole arendaja tööriistad saadaval ja veebisaidi elemente ei saa enam uurida. Kõik arendaja tööriistade avamiseks kasutatavad klaviatuuri otseteed ning menüü- ja kontekstimenüükirjed keelatakse. + Kui pärandreegel DeveloperToolsDisabled on seatud väärtusele Tõene, eiratakse selle reegli väärtust ja arendaja tööriistad on keelatud.</translation> <translation id="1426410128494586442">Jah</translation> <translation id="1427655258943162134">Puhverserveri aadress või URL</translation> <translation id="1435659902881071157">Seadme tasemel võrgukonfigureerimine</translation> @@ -206,6 +214,7 @@ <translation id="1803646570632580723">Kinnitatud rakenduste loend, mida näidatakse käivitis</translation> <translation id="1808715480127969042">Blokeeri nende saitide küpsised</translation> <translation id="1810261428246410396">Kiirjagamise kasutamise lubamine.</translation> +<translation id="1826282708349731794">Määrab, kuidas Chrome Cleanup edastab andmeid Google'ile</translation> <translation id="1827523283178827583">Kasuta fikseeritud puhverservereid</translation> <translation id="1843117931376765605">Kasutajareegli värskendussagedus</translation> <translation id="1844620919405873871">Seadistab kiiravamisega seotud reeglid.</translation> @@ -608,6 +617,7 @@ See reegel ei mõjuta seda, kas kasutajad saavad printereid seadistada individuaalsetes seadmetes. See on mõeldud individuaalsete kasutajate printerite seadistuse täienduseks. </translation> <translation id="2633084400146331575">Luba suuline tagasiside</translation> +<translation id="2640843331263301324">Chrome Cleanupi lubamine Windowsis</translation> <translation id="2646290749315461919">Võimaldab määrata, kas veebisaitidel on lubatud jälgida kasutajate füüsilist asukohta. Kasutajate füüsilise asukoha jälgimine võib olla vaikimisi lubatud või keelatud või kasutajalt võidakse luba küsida iga kord, kui veebisait taotleb füüsilise asukoha jälgimist. Kui jätate selle reegli määramata, siis kasutatakse reeglit „AskGeolocation” ja kasutaja saab seda muuta.</translation> @@ -677,13 +687,6 @@ Selle reegli kasutamisel on kasutajale saadaval ainult printerid, mille ID-d ühtivad selles reeglis olevate väärtustega. ID-d peavad ühtima reeglis <ph name="DEVICE_PRINTERS_POLICY" /> määratud failis olevate väljadega „id” või „guid”. </translation> -<translation id="2844404652289407061">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. - - Kui selle seade keelate, keelatakse funktsioon Puuduta otsimiseks täielikult. - - Kui seda reeglit ei määrata, on see võrdväärne lubatuga (vt eelnevat kirjeldust).</translation> <translation id="285480231336205327">Luba kõrge kontrastiga režiim</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" /> kasutab selle seade puhul printimise eelvaates vaikevalikuna süsteemi vaikeprinterit, mitte viimati kasutatud printerit. @@ -1255,12 +1258,14 @@ <translation id="4554651132977135445">Kasutajareeglite tagastusliidese töötlemisrežiim</translation> <translation id="4555850956567117258">Kasutajale kaugatesteerimise lubamine</translation> <translation id="4557134566541205630">Otsingupakkuja uue vahelehe vaike-URL</translation> +<translation id="4567137030726189378">Arendaja tööriistade kasutamise lubamine</translation> <translation id="4600786265870346112">Suure kursori lubamine</translation> <translation id="4604931264910482931">Omasõnumside musta nimekirja seadistamine</translation> <translation id="4613508646038788144">Kui reegel on määratud väärtusele Väär, on kolmanda osapoole tarkvaral lubatud sisestada Chrome'i protsessidesse täitmiskoodi. Kui reegel on määramata või seatud väärtusele Tõene, on kolmandal osapoolel keelatud täitmiskoodi Chrome'i protsessidesse sisestada.</translation> <translation id="4617338332148204752">Metasildi kontrollimise vahelejätmine teenuses <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Installimiseks lubatud laienduste loendi seadistamine</translation> <translation id="4632343302005518762">Pistikprogrammil <ph name="PRODUCT_FRAME_NAME" /> loetletud sisutüüpide töötlemise lubamine</translation> +<translation id="4632566332417930481">Ettevõtte reegli alusel installitud laiendites arendaja tööriistade kasutamise keelamine, arendaja tööriistade kasutamise lubamine muus kontekstis</translation> <translation id="4633786464238689684">Asendab klaviatuuri ülemise rea klahvide vaiketoimingud funktsiooniklahvide toimingutega. Kui reegel on määratud valikule Tõene, toimivad klaviatuuri ülemise rea klahvid vaikimisi funktsiooniklahvidena. Nende meediaklahvidena kasutamiseks tuleb vajutada otsinguklahvi. @@ -1533,10 +1538,14 @@ 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="5442026853063570579">See reegel juhib 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> <translation id="5457924070961220141">Võimaldab <ph name="PRODUCT_FRAME_NAME" /> installimisel seadistada HTML-i vaikerenderdaja. Kui jätate selle reegli määramata, siis lubatakse vaikeseadena hostbrauseril renderdada, kuid võite selle alistada ja lasta rakendusel <ph name="PRODUCT_FRAME_NAME" /> vaikimisi HTML-lehti renderdada.</translation> +<translation id="5459155981813668716">Seadistab lokaadid, kus tohib operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> kuvada. + + Kui reegel on määratud, saab kasutaja seadistada operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> nii, et seda tohiks kuvada ainult selle reegliga määratud lokaatides. Kui reegel on määramata või määratud on tühi loend, tohib operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> kuvada kõikides toetatud lokaatides. Kui reegli jaoks on määratud sobimatute väärtustega loend, eiratakse kõiki sobimatuid väärtusi. Kui kasutaja oli operatsioonisüsteemis <ph name="PRODUCT_OS_NAME" /> valinud kuvatava keele, mis ei ole selle reegli kohaselt lubatud, määratakse kasutaja järgmisel sisselogimisel lubatud kuvatav lokaat. Kui kasutaja oli seadistanud eelistatud lokaadid ja üks eelistatud lokaatidest on selle reegli alusel lubatud, aktiveeritakse operatsioonisüsteemis <ph name="PRODUCT_OS_NAME" /> see lokaat. Muidu määrab <ph name="PRODUCT_OS_NAME" /> reegli esimese sobiva väärtuse või taandelokaadi (praegu en-US), kui reegel sisaldab ainult sobimatuid kirjeid.</translation> <translation id="5464816904705580310">Hallatud kasutajate seadete konfigureerimine.</translation> <translation id="546726650689747237">Ekraani hämardamise viiteaeg võrgutoite kasutamisel</translation> <translation id="5469484020713359236">Võimaldab määrata URL-i mustrite loendi, mis määrab saidid, millel on lubatud küpsiseid määrata. @@ -1658,7 +1667,6 @@ Kui jätate reegli määramata, on suuline tagasiside algselt keelatud. Kasutaja võib suulise tagasiside igal ajal lubada või keelata ja selle olek jääb sisselogimisekraanil kasutajati püsivaks.</translation> <translation id="5868414965372171132">Kasutaja tasemel võrgukonfiguratsioon</translation> -<translation id="588135807064822874">Funktsiooni Puuduta otsimiseks lubamine</translation> <translation id="5883015257301027298">Küpsiste vaikeseade</translation> <translation id="5887414688706570295">Seadistab TalkGadgeti eesliite, mida kasutavad kaugjuurdepääsu hostid, ja takistab kasutajatel selle muutmist. @@ -1762,6 +1770,7 @@ <translation id="6036523166753287175">Luba tulemüüri läbimine kaugjuurdepääsu hostist</translation> <translation id="6070667616071269965">Seadme sisselogimisekraani klaviatuuripaigutused</translation> <translation id="6074963268421707432">Keela kõigil saitidel töölaua märguannete kuvamine</translation> +<translation id="6074964551275531965">Värskendusmärguannete ajavahemiku määramine</translation> <translation id="6076099373507468537">Luuakse loend USB-seadmetest, mis lubatakse eemaldada tuumadraiverist, et neid veebirakenduses otse chrome.usb API kaudu kasutada. Kirjed on USB teenusepakkuja ID-de ja toote ID-de paarid, mille abil konkreetne riistvara tuvastada. Kui see reegel jäetakse seadistamata, on eemaldatavate USB-seadmete loend tühi.</translation> @@ -1844,6 +1853,11 @@ 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="6394350458541421998">Reegel on alates rakenduse <ph name="PRODUCT_OS_NAME" /> versioonist 29 kasutusest kõrvaldatud. Kasutage selle asemel reeglit PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Kasutaja väljalogimine</translation> +<translation id="6412477120967771054">Kui reegel on seatud väärtusele Väär, 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 määramata või seatud väärtusele Tõene, 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. + + Reegel ei ole saadaval Windowsi eksemplarides, mis ei ole liidetud teenuse <ph name="MS_AD_NAME" /> domeeniga.</translation> <translation id="6417861582779909667">Võimaldab määrata URL-i mustrite loendi, mis määrab saidid, millel ei ole lubatud küpsiseid määrata. Kui jätate selle reegli määramata, siis kasutatakse kõikide saitide puhul globaalset vaikeväärtust, mis pärineb reeglist „DefaultCookiesSetting”, kui see on määratud, või kasutaja isiklikku konfigureerimist.</translation> @@ -1866,6 +1880,13 @@ Kui soovite juhtida, millistel veebisaitidel on Flashi käitamine lubatud, vaadake reegleid „DefaultPluginsSetting”, „PluginsAllowedForUrls” ja „PluginsBlockedForUrls”. Kui see seade on keelatud või määramata, võidakse muu päritoluga või väikesemahuline Flash-sisu blokeerida.</translation> +<translation id="6535639183431116351">Selle reegli tugi on versioonis M68 katkestatud, kasutage selle asemel reeglit DeveloperToolsAvailability. + + Keelab arendaja tööriistad ja JavaScripti konsooli. + + Kui lubate seade, on juurdepääs arendaja tööriistadele keelatud ja veebisaitide elemente ei saa enam uurida. Kõik klaviatuuri otseteed ning arendaja tööriistade ja JavaScripti konsooli avamise käsud menüüdes ning kontekstimenüüdes keelatakse. + + Kui keelate valiku või jätate selle määramata, saab kasutaja arendaja tööriistu ja JavaScripti konsooli kasutada.</translation> <translation id="653608967792832033">Määrab aja, pärast mida lukustatakse ekraan akutoitel töötamisel, kui kasutaja pole midagi sisestanud. Kui selle reegli väärtuseks määratakse arv, mis on suurem kui null, määrab see aja, mille jooksul peab kasutaja olema tegevusetu, enne kui <ph name="PRODUCT_OS_NAME" /> ekraani lukustab. @@ -1931,11 +1952,6 @@ <translation id="6689792153960219308">Riistvara oleku aruanne</translation> <translation id="6698071416141001300">Ohus olevate paroolikaitse kontode märgistamise käivitab parooli uuesti kasutamine</translation> <translation id="6699880231565102694">Kahetasandilise autentimise lubamine kaugjuurdepääsu hostidele</translation> -<translation id="6702257826895463228">Lubab saitidel samal ajal navigeerida ja hüpikaknaid avada. - - Vaadake täielikku selgitust aadressilt https://www.chromestatus.com/features/5675755719622656. - Kui reegel on lubatud, tohivad saidid samal ajal navigeerida ja uusi aknaid/vahelehti avada. - Kui reegel on keelatud või määramata, ei ole saitidel lubatud samal ajal navigeerida ja uusi aknaid/vahelehti avada.</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. Kui keelate selle reegli või jätate selle määramata, kasutatakse ainult tavalisi kohalikke profiile. @@ -2305,6 +2321,7 @@ Vaadake ohutu sirvimise kohta lisateavet aadressilt https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Teenuses <ph name="PRODUCT_NAME" /> nähtavate kontode piiramine</translation> <translation id="7651739109954974365">Määrab, kas seadmes on andmeside rändlusteenus lubatud. Selle reegli aktiveerimisel on andmeside rändlusteenus lubatud. Kui jätate selle reegli seadistamata või keelate, siis ei ole andmeside rändlusteenus saadaval.</translation> +<translation id="7673194325208122247">Ajavahemik (millisekundites)</translation> <translation id="7683777542468165012">Dünaamiline reeglivärskendus</translation> <translation id="7694807474048279351">Toote <ph name="PRODUCT_OS_NAME" /> värskenduse rakendamise järgse automaatse taaskäivitamise ajastamine. @@ -2436,6 +2453,13 @@ Kui keelate seade ja tulemüür filtreerib väljuvaid UDP-ühendusi, siis saab masin luua ühenduse vaid kohalikus võrgus olevate hostmasinatega.</translation> <translation id="7976157349247117979">Teenuse <ph name="PRODUCT_NAME" /> sihtkoha nimi</translation> +<translation id="7977445800390854860">Kui reegel on määramata ja Chrome Cleanup tuvastab soovimatu tarkvara, võib teenus edastada skanni metaandmed Google'ile, järgides atribuudiga SafeBrowsingExtendedReportingEnabled määratud reeglit. Chrome Cleanup küsib seejärel kasutajalt, kas ta soovib tuvastatud tarkvara eemaldada. Seejärel võib kasutaja jagada puhastuse tulemusi Google'iga, et täiustada soovimatu tarkvara tuvastamise funktsiooni. Tulemused sisaldavad faili metaandmeid ja registrivõtmeid, mida kirjeldatakse Chrome'i privaatsuse juhendis. + + Kui reegel on seatud väärtusele Väär ja Chrome Cleanup tuvastab soovimatu tarkvara, ei edasta teenus skanni metaandmeid Google'ile, alistades atribuudiga SafeBrowsingExtendedReportingEnabled määratud reegli. Chrome Cleanup küsib kasutajalt, kas ta soovib tuvastatud tarkvara eemaldada. Puhastuse tulemusi ei edastata Google'ile ja kasutajale ei esitata sellekohast valikut. + + Kui reegel on seatud väärtusele Tõene ja Chrome Cleanup tuvastab soovimatu tarkvara, võib teenus edastada skanni metaandmed Google'ile, järgides atribuudiga SafeBrowsingExtendedReportingEnabled määratud reeglit. Chrome Cleanup küsib kasutajalt, kas ta soovib tuvastatud tarkvara eemaldada. Puhastuse tulemused edastatakse Google'ile ja kasutaja ei saa seda takistada. + + Reegel ei ole saadaval Windowsi eksemplarides, mis ei ole liidetud teenuse <ph name="MS_AD_NAME" /> domeeniga.</translation> <translation id="7978060394348264922"> Soovitame teil vaadata reegli IsolateOrigins seadet, et kasutada nii isoleerimist kui ka piirata mõju kasutajate jaoks, kasutades reeglit @@ -2560,6 +2584,7 @@ <translation id="8300455783946254851">Keelab Google Drive’i sünkroonimise operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> rakenduses Failid, kui kasutatakse mobiilset andmesidet ja reegli olekuks on määratud Tõene. Sellisel juhul sünkroonitakse andmeid Google Drive’iga ainult siis, kui seade on ühendatud WiFi või Etherneti kaudu. Kui reegel on määramata või seatud väärtusele Väär, saavad kasutajad teisaldada faile Google Drive’i, kasutades mobiilset andmesidet.</translation> +<translation id="8300992833374611099">Määrake, kus saab arendaja tööriistu kasutada</translation> <translation id="8312129124898414409">Võimaldab määrata, kas veebisaitidel on lubatud võtmeid luua. Võtmete loomise saab kõikide veebisaitide jaoks lubada või keelata. Kui jätate reegli määramata, kasutatakse reeglit „BlockKeygen” ja kasutaja saab seda muuta.</translation> @@ -2797,6 +2822,11 @@ <translation id="9035964157729712237">Mustast nimekirjast välistatud laienduste ID-d</translation> <translation id="9042911395677044526">Võimaldab võrguseadistuse kasutajapõhiselt teenuse <ph name="PRODUCT_OS_NAME" /> seadmes jõustada. Võrguseadistus on JSON-i vormingus string, mille määratleb Open Network Configuration vorming, mida kirjeldatakse aadressil <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Määrake, kas videotoimingud mõjutavad toitehaldust</translation> +<translation id="9085839450090699752">Võimaldab määrata ajavahemiku millisekundites, mille jooksul kasutajaid teavitatakse sellest, et <ph name="PRODUCT_NAME" /> või <ph name="PRODUCT_OS_NAME" />-i seade tuleb ootel oleva värskenduse rakendamiseks 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. Märguanne muudab üks kord värvi siis, kui pool ajavahemikust on möödunud, ja teist korda ajavahemiku lõpus. <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 üks kord värvi siis, kui möödunud on kaks kolmandikku ajavahemikust, ja teist korda ajavahemiku lõpus. Brauserites reegliga <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> lubatud lisamärguanded järgivad sama ajakava. + + Kui reegel on määramata, kasutatakse <ph name="PRODUCT_OS_NAME" />-i seadmete puhul vaikeperioodi 345 600 000 millisekundit (neli päeva) ja brauserite puhul 604 800 000 (üks nädal).</translation> <translation id="9088433379343318874">Jälgitava kasutaja sisupakkuja lubamine</translation> <translation id="9088444059179765143">Ajavööndi automaatse tuvastamise viisi seadistamine</translation> <translation id="9096086085182305205">Autentimisserveri lubatud nimekiri</translation>
diff --git a/components/policy/resources/policy_templates_fa.xtb b/components/policy/resources/policy_templates_fa.xtb index 6ce96150..2443b739 100644 --- a/components/policy/resources/policy_templates_fa.xtb +++ b/components/policy/resources/policy_templates_fa.xtb
@@ -644,13 +644,6 @@ درصورت استفاده از این خطمشی، فقط چاپگرهای دارای شناسه مطابق با مقادیر این خطمشی در دسترس کاربر قرار میگیرند. شناسهها باید مطابق با فیلدهای «id» و «guid» در فیلد مشخصشده در <ph name="DEVICE_PRINTERS_POLICY" /> باشند. </translation> -<translation id="2844404652289407061">در دسترس بودن «لمس برای جستجو» را در نمای محتوای <ph name="PRODUCT_NAME" /> فعال میکند. - - اگر این تنظیم را فعال کنید، «لمس برای جستجو» برای کاربر در دسترس خواهد بود و کاربر میتواند قابلیت را روشن یا خاموش کند. - - اگر این تنظیم را غیرفعال کنید، «لمس برای جستجو» کاملاً غیرفعال میشود. - - اگر این خطمشی تنظیم نشود، مانند حالت فعال که در بالا شرح داده شده است، عمل میکند.</translation> <translation id="285480231336205327">فعال کردن حالت کنتراست بالا</translation> <translation id="2854919890879212089">باعث میشود <ph name="PRODUCT_NAME" /> در «پیشنمایش چاپ»، بهجای آخرین چاپگر استفادهشده، از چاپگر پیشفرض سیستم بهعنوان انتخاب پیشفرض استفاده کند. @@ -1574,7 +1567,6 @@ چنانچه این خطمشی بدون تنظیم رها شده باشد، با نمایش صفحه ورود به سیستم، بازخورد گفتاری از کار انداخته میشود. کاربران میتوانند در هر زمان که بخواهند بازخورد گفتاری را به کار انداخته یا از کار بیاندازند و این وضعیت در صفحه ورود به سیستم در بین کاربران دائمی خواهد بود.</translation> <translation id="5868414965372171132">پیکربندی شبکه در سطح کاربر</translation> -<translation id="588135807064822874">فعال کردن لمس برای جستجو</translation> <translation id="5883015257301027298">تنظیمات پیشفرض کوکیها</translation> <translation id="5887414688706570295">پیشوند TalkGadget را فعال میکند که توسط میزبانهای دسترسی راه دور استفاده میشود و نمیگذارد کاربران آن را تغییر دهند. @@ -1834,11 +1826,6 @@ <translation id="6689792153960219308">گزارش وضعیت سختافزار</translation> <translation id="6698071416141001300">پرچمگذاری حفاظت با گذرواژه از حساب درمعرض خطر با استفاده مجدد گذرواژه راهاندازی شده است</translation> <translation id="6699880231565102694">فعال کردن احراز هویت با دو فاکتور برای میزبانهای دسترسی ازراهدور</translation> -<translation id="6702257826895463228">به سایتها اجازه پیمایش و باز کردن کادرهای بازشو بهطور همزمان میدهد. - - برای توضیح کامل، https://www.chromestatus.com/features/5675755719622656 را ببینید. - اگر این خطمشی فعال شود، به سایتها اجازه پیمایش و باز کردن پنجره/برگه جدید بهطور همزمان داده میشود. - اگر این خطمشی غیرفعال شود یا تنظیم نشود، به سایتها اجازه پیمایش و باز کردن پنجره/برگه جدید بهطور همزمان داده نمیشود.</translation> <translation id="6724842112053619797">اگر این تنظیم را فعال کنید، تنظیمات ذخیرهشده در نمایههای <ph name="PRODUCT_NAME" /> (ازجمله نشانکها، دادههای تکمیل خودکار، گذرواژهها و غیره) روی فایل ذخیرهشدهای در پوشه نمایه کاربر «رومینگ» یا مکانی که توسط «سرپرست سیستم» ازطریق خطمشی <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> مشخص شده است نیز نوشته خواهد شد. فعال کردن این خطمشی همگامسازی ابری را غیرفعال میکند. اگر این خطمشی غیرفعال شود یا تنظیمنشده باقی بماند، فقط از نمایههای محلی معمولی استفاده خواهد شد.
diff --git a/components/policy/resources/policy_templates_fi.xtb b/components/policy/resources/policy_templates_fi.xtb index 4d3d303..5187fcc 100644 --- a/components/policy/resources/policy_templates_fi.xtb +++ b/components/policy/resources/policy_templates_fi.xtb
@@ -27,6 +27,7 @@ Jos tälle käytännölle on määritetty arvo, kirjautumisnäytön kieli- ja maa-asetus vastaa aina käytännön ensimmäistä arvoa (käytäntö on muodoltaan lista tulevaisuuden vaatimusten huomioon ottamiseksi). Jos käytäntöä ei ole määritetty tai sen arvoksi on määritetty tyhjä lista, kirjautumisnäyttö näytetään edellisen käyttökerran kielellä. Jos käytännön arvo ei kelpaa, kirjautumisnäytöllä käytetään kieli- ja maa-asetuksen vara-arvoa (tällä hetkellä en-US).</translation> <translation id="1062011392452772310">Salli etätodennus laitteelle</translation> <translation id="1062407476771304334">Korvaa</translation> +<translation id="1079801999187584280">Estä kehittäjätyökalujen käyttö</translation> <translation id="109166998561583554">Salasanasuojauksen riskialttiin tilin merkinnän käynnistin</translation> <translation id="1093082332347834239">Jos tämä asetus on käytössä, etätuen isäntä suoritetaan prosessissa, jonka käyttöoikeuksiin sisältyy <ph name="UIACCESS_PERMISSION_NAME" />. Tällöin etäkäyttäjä voi käyttää paikallisen käyttäjän työpöydällä olevia ikkunoita, jotka edellyttävät järjestelmänvalvojan käyttöoikeuksia. @@ -79,6 +80,7 @@ Skaalauskertoimen on oltava vähintään 100 %.</translation> <translation id="131353325527891113">Näytä käyttäjänimet kirjautumisruudulla</translation> +<translation id="1325295456374328159">Määritä käyttökerran hyväksytyt kieli- ja maa-asetukset</translation> <translation id="1327466551276625742">Ota käyttöön verkon määrityskehote offline-tilassa</translation> <translation id="1330145147221172764">Ota ruutunäppäimistö käyttöön</translation> <translation id="13356285923490863">Käytännön nimi</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Luotetaanko Symantec Corporationin vanhaan PKI-infrastruktuuriin vai ei</translation> <translation id="1393485621820363363">Käytössä olevat yrityslaitteiden tulostimet</translation> <translation id="1397855852561539316">Oletushakupalvelun ehdottama URL-osoite</translation> +<translation id="1424081297104898791">Sallii sinun valita, missä kehittäjätyökaluja voi käyttää + + Jos käytännön arvoksi on asetettu DeveloperToolsDisallowedForForceInstalledExtensions (arvo 0, joka on yrityskäyttäjien oletusarvo), kehittäjätyökalujen ja JavaScript-konsolin käyttö on sallittua yleisesti mutta ei yrityskäytännön asentamien laajennusten yhteydessä. + Jos käytännön arvoksi on asetettu DeveloperToolsAllowed (arvo 1, joka on hallinnoimattomien käyttäjien oletusarvo), kehittäjätyökalujen ja JavaScript-konsolin käyttö on sallittua kaikissa yhteyksissä, mukaan lukien yrityskäytännön asentamat laajennukset. + Jos käytännön arvoksi on asetettu DeveloperToolsDisallowed (arvo 2), kehittäjätyökaluja ei voi käyttää eikä verkkosivustojen elementtejä enää voi tarkastaa. Kehittäjän työkalut tai JavaScript-konsolin avaavat pikanäppäimet ja valikkokohteet poistetaan käytöstä. + Jos vanhan DeveloperToolsDisabled-käytännön arvoksi on asetettu tosi, tämän käytännön arvo ohitetaan ja kehittäjätyökalut poistetaan käytöstä.</translation> <translation id="1426410128494586442">Kyllä</translation> <translation id="1427655258943162134">Välityspalvelimen osoite tai URL-osoite</translation> <translation id="1435659902881071157">Laitetason verkon määritys</translation> @@ -204,6 +212,7 @@ <translation id="1803646570632580723">Luettelo kiinnitetyistä sovelluksista, jotka näytetään käynnistyspalkissa</translation> <translation id="1808715480127969042">Estä evästeet näissä sivustoissa</translation> <translation id="1810261428246410396">Salli yhteyden pikajakamisen käyttö</translation> +<translation id="1826282708349731794">Määrittää sen, miten Chrome Cleanup Tool raportoi dataa Googlelle</translation> <translation id="1827523283178827583">Käytä kiinteitä välityspalvelimia</translation> <translation id="1843117931376765605">Käyttäjäkäytännön päivitystiheys</translation> <translation id="1844620919405873871">Määrittää lukituksen pika-avaamiseen liittyviä käytäntöjä</translation> @@ -589,6 +598,7 @@ Tämä käytäntö ei vaikuta siihen, voivatko käyttäjät määrittää tulostimia yksittäisillä laitteilla. Se on tarkoitettu käytettäväksi yksittäisten käyttäjien tekemien tulostinmääritysten lisäksi. </translation> <translation id="2633084400146331575">Ota äänipalaute käyttöön</translation> +<translation id="2640843331263301324">Ottaa Chrome Cleanupin käyttöön Windowsissa</translation> <translation id="2646290749315461919">Voit määrittää, voivatko sivustot seurata käyttäjän fyysistä sijaintia. Voit sallia tai kieltää käyttäjien sijainnin seuraamisen oletuksena, tai kysyä käyttäjältä aina sivuston pyytäessä sijaintitietoja. Jos tätä käytäntöä ei ole määritetty, AskGeolocation-käytäntöä käytetään ja käyttäjä voi muuttaa asetusta.</translation> <translation id="2647069081229792812">Ota kirjanmerkkien muokkaaminen käyttöön tai poista se käytöstä</translation> <translation id="2650049181907741121">Toiminto, kun käyttäjä sulkee kannen</translation> @@ -652,13 +662,6 @@ Jos tämä käytäntö on käytössä, käyttäjän saatavilla ovat vain tulostimet, joiden tunnukset vastaavat tässä käytännössä määritettyjä arvoja. Tunnusten on vastattava kohteessa <ph name="DEVICE_PRINTERS_POLICY" /> määritetyn tiedoston id- tai guid-kenttiä. </translation> -<translation id="2844404652289407061">Määrittää, näyttääkö <ph name="PRODUCT_NAME" /> Koskettamalla hakemisen sisältönäkymässä. - - Jos asetus on käytössä, Koskettamalla hakeminen on käytettävissä ja käyttäjä voi halutessaan ottaa sen käyttöön tai poistaa käytöstä. - - Jos asetus ei ole käytössä, Koskettamalla hakeminen poistetaan kokonaan käytöstä. - - Tämän käytännön jättäminen asettamatta vastaa sen käyttöönottoa yllä kuvatulla tavalla.</translation> <translation id="285480231336205327">Ota suuri kontrasti -tila käyttöön</translation> <translation id="2854919890879212089">Kun tämä asetus on käytössä, <ph name="PRODUCT_NAME" /> valitsee Tulostuksen esikatselu ‑ikkunassa lähtökohtaisesti järjestelmän oletustulostimen viimeksi käytetyn tulostimen sijaan. @@ -1215,12 +1218,14 @@ <translation id="4554651132977135445">Käyttäjäkäytännön osoitesilmukan käsittelytila</translation> <translation id="4555850956567117258">Ota käyttöön etätodennus käyttäjälle</translation> <translation id="4557134566541205630">Oletusarvoisen hakujen tarjoajan uusi välilehti -sivun URL-osoite</translation> +<translation id="4567137030726189378">Salli kehittäjätyökalujen käyttö</translation> <translation id="4600786265870346112">Ota suuri osoitin käyttöön</translation> <translation id="4604931264910482931">Määritä kiellettyjen luettelo laitteen omalle viestijärjestelmälle</translation> <translation id="4613508646038788144">Jos käytännön arvo on epätosi, kolmannen osapuolen ohjelmistot voivat lisätä suoritettavaa koodia Chromen prosesseihin. Jos käytännölle ei ole määritetty arvoa tai sen arvo on tosi, kolmannen osapuolen ohjelmistoja estetään lisäämästä suoritettavaa koodia Chromen prosesseihin.</translation> <translation id="4617338332148204752">Ohita sisällönkuvauskenttien kirjaaminen kohteessa <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Määritä laajennukset, jotka saa asentaa</translation> <translation id="4632343302005518762">Anna tuotteen <ph name="PRODUCT_FRAME_NAME" /> käsitellä lueteltuja sisältötyyppejä</translation> +<translation id="4632566332417930481">Estä kehittäjätyökalujen käyttö yrityskäytännön asentamilla laajennuksilla, salli kehittäjätyökalujen käyttö muissa yhteyksissä</translation> <translation id="4633786464238689684">Vaihtaa ylimmän näppäimistörivin oletustoiminnot toimintonäppäimiksi. Jos tämän käytännön arvoksi asetetaan tosi, näppäimistön ylimmän rivin näppäimet toimivat oletuksena toimintonäppäiminä. Näppäimiä voi käyttää medianäppäiminä painamalla hakunäppäintä yhtä aikaa näppäimen kanssa. @@ -1472,9 +1477,13 @@ Jos tämän käytännön arvo on syöttötapojen tunnusten luettelo, luettelossa olevat syöttötavat ovat käytettävissä kirjautumisnäytöllä. Oletuksena valittuna on luettelon ensimmäinen syöttötapa. Kun kohdistus on käyttäjän tiedoissa kirjautumisnäytöllä, käyttäjän viimeksi käyttämä syöttötapa on käytettävissä tässä käytännössä määritettyjen syöttötapojen lisäksi. Jos tätä käytäntöä ei ole määritetty, syöttötavat päätellään kirjautumisnäytön kieli- ja maa-asetuksen perusteella. Jos arvo ei ole kelvollinen syöttötavan tunnus, se ohitetaan.</translation> <translation id="5423001109873148185">Tämä käytäntö pakottaa hakukoneiden tuonnin nykyisestä oletusselaimesta. Jos käytäntö on käytössä, käytäntö vaikuttaa myös tuonti-ikkunaan. Jos käytäntö ei ole käytössä, oletushakukonetta ei tuoda. Jos käytäntöä ei ole määritetty, käyttäjiltä voidaan kysyä, haluavatko he tuoda hakukoneen, tai hakukone voidaan tuoda automaattisesti.</translation> <translation id="5423197884968724595">Android WebView -rajoituksen nimi:</translation> +<translation id="5442026853063570579">Tämä käytäntö hallinnoi myös Android-kehittäjäasetusten käyttöä. Jos tämän käytännön arvoksi määritetään DeveloperToolsDisallowed (arvo 2), käyttäjät eivät voi käyttää kehittäjäasetuksia. Jos tämän käytännön arvoksi määritetään jokin muu tai sitä ei määritetä ollenkaan, käyttäjät voivat käyttää kehittäjäasetuksia koskettamalla Android-asetukset-sovelluksessa olevaa versionumeroa seitsemän kertaa.</translation> <translation id="5447306928176905178">Ota käyttöön muistitietojen ilmoittaminen (JS-pinon koko) sivulle (vanhentunut)</translation> <translation id="5457065417344056871">Ota vierastila käyttöön selaimessa</translation> <translation id="5457924070961220141">Voit määrittää oletus-HTML-hahmontajan, kun <ph name="PRODUCT_FRAME_NAME" /> on asennettu. Oletusasetusta käytetään, jos tätä käytäntöä ei ole määritetty. Tällöin isäntäselain suorittaa hahmonnuksen, mutta voit ohittaa asetuksen ja asettaa tuotteen <ph name="PRODUCT_FRAME_NAME" /> hahmontamaan HTML-sivut oletuksena.</translation> +<translation id="5459155981813668716">Määrittää kieli- ja maa-asetukset, joilla <ph name="PRODUCT_OS_NAME" /> voidaan näyttää + + Jos tämä käytäntö on määritetty, <ph name="PRODUCT_OS_NAME" /> voidaan määrittää näkymään ainoastaan jollakin tässä käytännössä ilmoitetulla kielellä. Jos tätä käytäntöä ei ole määritetty tai sen arvoksi on määritetty tyhjä luettelo, <ph name="PRODUCT_OS_NAME" /> voidaan näyttää kaikilla tuetuilla kielillä. Jos käytännön arvoksi on määritetty luettelo, jonka arvot ovat virheellisiä, kaikki virheelliset arvot ohitetaan. Jos <ph name="PRODUCT_OS_NAME" /> on aiemmin määritetty näkymään kielellä, jota käytäntö ei salli, näytettävä kieli vaihdetaan sallittuun kieleen seuraavalla sisäänkirjautumiskerralla. Jos jokin käyttäjän määrittämistä kielistä sallitaan tässä käytännössä, <ph name="PRODUCT_OS_NAME" /> vaihtaa tähän kieleen. Muussa tapauksessa <ph name="PRODUCT_OS_NAME" /> vaihtaa käytännön ensimmäiseen kelvollisen arvoon tai varakieleen (tällä hetkellä Yhdysvaltain englantiin), jos käytännössä on virheellisiä merkintöjä.</translation> <translation id="5464816904705580310">Määritä hallinnoitujen käyttäjien asetukset.</translation> <translation id="546726650689747237">Ruudun himmennyksen viive käytettäessä laitetta verkkovirralla</translation> <translation id="5469484020713359236">Voit määrittää luettelon URL-malleja, joissa määritetään sivustot, jotka saavat asettaa evästeitä. Jos tätä käytäntöä ei ole määritetty, kaikille sivustoille käytetään joko DefaultCookiesSetting-käytännön yleistä oletusarvoa, jos se on asetettu, tai käyttäjän henkilökohtaisia määrityksiä.</translation> @@ -1588,7 +1597,6 @@ Jos tätä käytäntöä ei määritetä, äänipalaute ei ole käytössä kirjautumisnäytön ensimmäisellä näyttökerralla. Käyttäjät voivat ottaa äänipalautteen käyttöön tai pois käytöstä milloin tahansa, ja sen tila kirjautumisnäytössä pysyy samana, vaikka käyttäjä vaihtuisi.</translation> <translation id="5868414965372171132">Käyttäjätason verkkoasetukset</translation> -<translation id="588135807064822874">Ota Koskettamalla hakeminen käyttöön</translation> <translation id="5883015257301027298">Evästeiden oletusasetus</translation> <translation id="5887414688706570295">Määrittää etäisäntien käyttämän TalkGadget-etuliitteen ja estää käyttäjiä muuttamasta sitä. @@ -1690,6 +1698,7 @@ <translation id="6036523166753287175">Ota käyttöön palomuurin siirto etäisännästä</translation> <translation id="6070667616071269965">Laitteen kirjautumisnäytön näppäimistöasettelut</translation> <translation id="6074963268421707432">Älä anna sivustojen näyttää työpöytäilmoituksia</translation> +<translation id="6074964551275531965">Määritä päivitysilmoitusten ajanjakso</translation> <translation id="6076099373507468537">Tämä käytäntö määrittää USB-laitteet, joita voidaan irrottaa kernel-ajurista ja käyttää suoraan verkkosovelluksessa chrome.usb-sovellusliittymän kautta. Kukin merkintä sisältää USB-toimittajan tunnuksen ja tuotetunnuksen, joita käytetään laitteiden tunnistamiseen. Jos tätä käytäntöä ei määritetä, irrotettavien USB-laitteiden luettelo on tyhjä.</translation> @@ -1762,6 +1771,11 @@ <translation id="6392973646875039351">Ottaa käyttöön tuotteen <ph name="PRODUCT_NAME" /> automaattinen täyttö -ominaisuuden ja antaa käyttäjien täydentää verkkolomakkeita automaattisesti aiemmin tallennetuilla tiedoilla, kuten osoitteilla tai luottokorttitiedoilla. Jos poistat tämän asetuksen käytöstä, automaattista täyttöä ei voi käyttää. Jos otat asetuksen käyttöön tai et määritä asetusta, automaattinen täyttö pysyy käyttäjän hallinnassa. Käyttäjä voi tällöin määrittää automaattisen täytön profiileja ja ottaa halutessaan automaattisen täytön käyttöön tai poistaa sen käytöstä.</translation> <translation id="6394350458541421998">Tämä käytäntö on poistettu käytöstä tuotteen <ph name="PRODUCT_OS_NAME" /> versiosta 29 lähtien. Käytä sen sijaan PresentationScreenDimDelayScale-käytäntöä.</translation> <translation id="6401669939808766804">Kirjaa käyttäjä ulos</translation> +<translation id="6412477120967771054">Jos arvoksi on määritetty epätosi, tämä estää Chrome Cleanupia etsimästä järjestelmästä ei-toivottuja ohjelmistoja ja poistamasta niitä. Chrome Cleanupin manuaalinen käyttöönotto osoitteessa chrome://settings/cleanup on estetty. + + Jos arvoksi on määritetty tosi tai sitä ei ole määritetty, Chrome Cleanup skannaa järjestelmän ajoittain ei-toivottujen ohjelmistojen varalta ja sellaisen löytyessä kysyy käyttäjältä, poistetaanko se. Chrome Cleanupin manuaalinen käyttöönotto osoitteessa chrome://settings/cleanup on sallittu. + + Tämä käytäntö ei ole saatavilla Windowsin esiintymissä, jotka eivät liity verkkotunnukseen <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Voit määrittää luettelon URL-malleja, joissa määritetään sivustot, jotka eivät saa asettaa evästeitä. Jos tätä käytäntöä ei ole määritetty, kaikille sivustoille käytetään joko DefaultCookiesSetting-käytännön yleistä oletusarvoa, jos se on asetettu, tai käyttäjän henkilökohtaisia määrityksiä.</translation> <translation id="6426205278746959912">Et voi pakottaa Android-sovelluksia käyttämään välityspalvelinta. Android-sovellusten käytettävissä on joukko välityspalvelinasetuksia, joiden noudattaminen on vapaaehtoista: @@ -1782,6 +1796,13 @@ Jos haluat hallinnoida, mitkä verkkosivustot saavat suorittaa Flash-sisältöä, tutustu DefaultPluginsSetting-, PluginsAllowedForUrls- ja PluginsBlockedForUrls-käytäntöihin. Jos tämä käytäntö on poistettu käytöstä tai sitä ei ole määritetty, muista lähteistä tuleva tai pieni Flash-sisältö saattaa olla estetty.</translation> +<translation id="6535639183431116351">Tämä käytäntö poistetaan käytöstä M68:ssa, käytä sen sijaan DeveloperToolsAvailability-käytäntöä. + + Poistaa käytöstä kehittäjän työkalut sekä JavaScript-konsolin. + + Jos otat asetuksen käyttöön, kehittäjän työkaluja ei voi käyttää eikä verkkosivustojen elementtejä enää voi tarkastaa. Kehittäjän työkalut tai JavaScript-konsolin avaavat pikanäppäimet ja valikkokohteet poistetaan käytöstä. + + Jos poistat asetuksen käytöstä tai et määritä sitä, kehittäjän työkaluja ja JavaScript-konsolia voi käyttää.</translation> <translation id="653608967792832033">Määrittää käyttämättömyysajan, jonka kuluttua näyttö lukitaan, kun laitetta käytetään akkuvirralla. Kun tämän käytännön arvo on yli nolla, se määrittää käyttämättömyysajan, jonka kuluttua <ph name="PRODUCT_OS_NAME" /> lukitsee näytön. @@ -1847,11 +1868,6 @@ <translation id="6689792153960219308">Laitteiston tilan raportointi</translation> <translation id="6698071416141001300">Salasanasuojauksen riskialttiin tilin merkintä käynnistyy, kun salasanaa käytetään uudelleen</translation> <translation id="6699880231565102694">Ota kahden tekijän todennus käyttöön etäisännille</translation> -<translation id="6702257826895463228">Salli sivustojen käyttää siirtymistoimintoja ja avata ponnahdusikkunoita samanaikaisesti. - - Saat lisätietoja osoitteesta https://www.chromestatus.com/features/5675755719622656. - Jos tämä käytäntö on otettu käyttöön, sivustot saavat käyttää siirtymistoimintoja ja avata uusia ikkunoita tai välilehtiä samanaikaisesti. - Jos tämä käytäntö on poistettu käytöstä tai sitä ei ole määritetty, sivustoja estetään käyttämästä siirtymistoimintoja ja avaamasta uusia ikkunoita tai välilehtiä samanaikaisesti.</translation> <translation id="6724842112053619797">Jos tämä asetus on käytössä, <ph name="PRODUCT_NAME" /> ‑profiileihin tallennetut tiedot, esim. kirjanmerkit, automaattisen täytön tiedot ja salasanat, tallennetaan myös roaming-käyttäjän profiilitiedostoon tai järjestelmänvalvojan <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />-käytännössä määrittämään sijaintiin. Pilvisynkronointi poistetaan käytöstä, kun tämä käytäntö on käytössä. Jos tämä käytäntö ei ole käytössä tai sitä ei ole määritetty, vain paikallisia profiileja käytetään. @@ -2195,6 +2211,7 @@ Saat lisätietoja Selaussuojasta osoitteesta https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Rajoita tilejä, jotka <ph name="PRODUCT_NAME" /> näyttää</translation> <translation id="7651739109954974365">Määrittää, onko mobiilitiedonsiirto roaming-tilassa käytössä laitteessa. Jos arvo on tosi, mobiilitiedonsiirto roaming-tilassa on sallittu. Jos arvoa ei määritetä tai määritetty arvo on epätosi, mobiilitiedonsiirto roaming-tilassa ei ole käytettävissä.</translation> +<translation id="7673194325208122247">Ajanjakso (millisekunteina)</translation> <translation id="7683777542468165012">Dynaaminen käytännön päivitys</translation> <translation id="7694807474048279351">Ajoita automaattinen uudelleenkäynnistys, kun tuotteen <ph name="PRODUCT_OS_NAME" /> päivitys on otettu käyttöön. @@ -2320,6 +2337,13 @@ <translation id="7961779417826583251">Poista Certificate Transparency ‑noudattamisvaatimukset käytöstä tietyiltä vanhoilta varmenteen myöntäjiltä</translation> <translation id="7974114691960514888">Tätä käytäntöä ei enää tueta. Ottaa käyttöön STUN- ja relay-palvelimet, kun muodostetaan yhteyttä etäasiakkaaseen. Jos tämä asetus on käytössä, tämä kone voi löytää etäasiakkaan ja muodostaa yhteyden, vaikka asiakkaat olisivat palomuurin takana. Jos asetus ei ole käytössä ja lähtevät UDP-yhteydet menevät palomuurin kautta, tämä kone hyväksyy vain paikallisessa verkossa olevien isäntäkoneiden yhteydet.</translation> <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> ‑kohteen nimi</translation> +<translation id="7977445800390854860">Jos arvoa ei ole määritetty, Chrome Cleanup voi ei-toivottuja ohjelmistoja havaitessaan raportoida skannauksen sisällönkuvausdataa Googlelle SafeBrowsingExtendedReportingEnabled-käytännön mukaisesti. Chrome Cleanup kysyy sitten käyttäjältä, poistetaanko ei-toivottu ohjelmisto. Käyttäjä voi halutessaan jakaa poiston tulokset Googlen kanssa parantaakseen ei-toivottujen ohjelmistojen havaitsemista jatkossa. Tulokset sisältävät Chromen tietosuojailmoituksen mukaista tiedostojen sisällönkuvausdataa ja rekisteriavaimia. + + Jos arvoksi on asetettu epätosi, Chrome Cleanup ei raportoi Googlelle skannauksen sisällönkuvausdataa havaitessaan ei-toivottuja ohjelmistoja ja ohittaa näin mahdolliset SafeBrowsingExtendedReportingEnabled-käytännöt. Chrome Cleanup kysyy käyttäjältä, poistetaanko ei-toivottu ohjelmisto. Poiston tuloksia ei raportoida Googlelle, mutta käyttäjä voi halutessaan tehdä niin. + + Jos arvoksi on asetettu tosi, Chrome Cleanup voi ei-toivottuja ohjelmistoja havaitessaan raportoida skannauksen sisällönkuvausdataa Googlelle SafeBrowsingExtendedReportingEnabled-käytännön mukaisesti. Chrome Cleanup kysyy käyttäjältä, poistetaanko ei-toivottu ohjelmisto. Poiston tulokset raportoidaan Googlelle, mitä käyttäjä ei voi estää. + + Tämä käytäntö ei ole saatavilla Windowsin esiintymissä, jotka eivät liity verkkotunnukseen <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> On suositeltavaa tarkistaa IsolateOrigins-käytännön asetus, jotta voidaan päästä parhaaseen lopputulokseen ja huolehtia sivustojen eristyksestä pienentäen samalla käyttäjille aiheutuvaa haittaa. @@ -2442,6 +2466,7 @@ <translation id="8300455783946254851">Jos tämän asetuksen arvo on True, Google Drivea ei synkronoida tuotteen <ph name="PRODUCT_OS_NAME" /> Tiedostot-sovelluksessa matkapuhelinverkkoyhteyden ollessa käytössä. Tiedot synkronoidaan Google Driveen vain Wi-Fi- ja Ethernet-yhteyksillä. Jos asetusta ei ole määritetty tai sen arvo on False, käyttäjät voivat siirtää tiedostoja Google Driveen matkapuhelinverkkoyhteydellä.</translation> +<translation id="8300992833374611099">Määritä, missä kehittäjätyökaluja voi käyttää</translation> <translation id="8312129124898414409">Voit määrittää, saavatko sivustot käyttää avainten luomistoimintoa. Avainten luomistoiminnon käyttäminen voi olla joko sallittua tai kiellettyä kaikille sivustoille. Jos tätä käytäntöä ei ole määritetty, BlockKeygen-käytäntöä käytetään ja käyttäjä voi vaihtaa sen.</translation> @@ -2670,6 +2695,11 @@ <translation id="9035964157729712237">Kieltoluettelosta poistettavat laajennuksien tunnukset</translation> <translation id="9042911395677044526">Antaa määrittää tuotetta <ph name="PRODUCT_OS_NAME" /> käyttävien laitteiden verkkoasetukset käyttäjäkohtaisesti. Verkkoasetukset määritetään JSON-muotoiltuna merkkijonona Open Network Configuration -muodossa, josta on lisätietoja osoitteessa <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Määritä, vaikuttaako videotoiminta virranhallintaan</translation> +<translation id="9085839450090699752">Voit määrittää ajanjakson (millisekunteina), jonka aikana käyttäjälle ilmoitetaan, että <ph name="PRODUCT_NAME" /> tai <ph name="PRODUCT_OS_NAME" /> ‑laite on käynnistettävä uudelleen päivityksen vuoksi. + + Tänä aikana käyttäjä saa toistuvia muistutuksia päivityksen tarpeellisuudesta. <ph name="PRODUCT_OS_NAME" /> ‑laitteilla uudelleenkäynnistysilmoitus näkyy ilmaisinalueella, kun päivitys havaitaan. Ilmoituksen väri muuttuu, kun puolet ilmoitusajasta on kulunut, ja uudelleen, kun koko ilmoitusaika on kulunut. Selaimen (<ph name="PRODUCT_NAME" />) sovellusvalikon muutos kertoo uudelleenkäynnistyksen tarpeesta, kun kolmannes ilmoitusajasta on kulunut. Ilmoituksen väri muuttuu, kun ilmoitusajasta on kulunut kaksi kolmannesta, ja uudelleen, kun koko ilmoitusaika on kulunut. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />-selainkäytännön sallimat lisäilmoitukset noudattavat samaa aikataulua. + + Jos käytäntöä ei ole määritetty, <ph name="PRODUCT_OS_NAME" /> ‑laitteiden oletusajanjakso on 345 600 000 millisekuntia (neljä päivää) ja selainten 604 800 000 millisekuntia (yksi viikko).</translation> <translation id="9088433379343318874">Ota käyttöön valvotun käyttäjän sisällön tarjoaja</translation> <translation id="9088444059179765143">Määritä aikavyöhykkeen automaattinen tunnistamistapa.</translation> <translation id="9096086085182305205">Sallittujen todennuspalvelimien luettelo</translation>
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb index 9baac4e..42b4a4e9 100644 --- a/components/policy/resources/policy_templates_fil.xtb +++ b/components/policy/resources/policy_templates_fil.xtb
@@ -675,13 +675,6 @@ Kung gagamitin ang patakarang ito, ang mga printer lang na may mga id na tumutugma sa mga value sa patakarang ito ang available sa user. Dapat tumugma ang mga id sa mga field na "id" o "guid" sa file na natukoy sa <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Ine-enable ang availability ng Pindutin upang Hanapin sa view ng content ng <ph name="PRODUCT_NAME" />. - - Kung ie-enable mo ang setting na ito, magagamit ng user ang Pindutin upang Hanapin at magagawa niyang i-on o i-off ang feature. - - Kung idi-disable mo ang setting na ito, ganap na madi-disable ang Pindutin upang Hanapin. - - Kung hindi itatakda ang patakarang ito, parang naka-enable na rin ito, tingnan ang paglalarawan sa itaas.</translation> <translation id="285480231336205327">Paganahin ang mataas na contrast mode</translation> <translation id="2854919890879212089">Nagiging dahilan upang gamitin ng <ph name="PRODUCT_NAME" /> ang default na printer ng system bilang default na pagpipilian sa Preview ng Pag-print sa halip na ang pinakahuling ginamit na printer. @@ -1658,7 +1651,6 @@ Kung hahayaang hindi nakatakda ang patakarang ito, naka-disable ang sinasalitang feedback kapag unang ipinakita ang screen sa pag-login. Maaaring i-enable o i-disable ng mga user ang sinasalitang feedback anumang oras at mananatili ang katayuan nito sa screen sa pag-login sa pagitan ng mga user.</translation> <translation id="5868414965372171132">Configuration ng network sa antas ng user</translation> -<translation id="588135807064822874">I-enable ang Pindutin upang Hanapin</translation> <translation id="5883015257301027298">Default na setting ng cookies</translation> <translation id="5887414688706570295">Kino-configure ang prefix ng TalkGadget na gagamitin ng mga host ng malayuang pag-access at pinipigilan ang mga user na baguhin ito. @@ -1931,11 +1923,6 @@ <translation id="6689792153960219308">Iulat ang status ng hardware</translation> <translation id="6698071416141001300">Ang pag-flag ng account na may nakompromisong proteksyon sa password ay nati-trigger ng muling paggamit ng password</translation> <translation id="6699880231565102694">Paganahin ang pagpapatotoong may dalawang salik para sa mga host ng malayuang pag-access</translation> -<translation id="6702257826895463228">Pinapayagan ang mga site na sabay na mag-navigate at magbukas ng mga pop-up. - - Para sa kumpletong pagpapaliwanag, tingnan sa https://www.chromestatus.com/features/5675755719622656. - Kung naka-enable ang patakarang ito, papayagan ang mga site na sabay na mag-navigate at magbukas ng mga bagong window/tab. - Kung naka-disable o hindi nakatakda ang patakarang ito, hindi papayagan ang mga site na sabay na mag-navigate at magbukas ng bagong window/tab.</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. Kung idi-disable ang patakarang ito o kaya ay hahayaang hindi nakatakda, ang mga regular na lokal na profile lang ang gagamitin.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 545c406..730d982 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -687,13 +687,6 @@ Si cette règle est appliquée, seules les imprimantes dont l'ID correspond aux valeurs de la règle sont à la disposition de l'utilisateur. Les ID doivent correspondre aux champs "id" ou "guid" du fichier spécifié dans <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Active la fonctionnalité Appuyer pour rechercher dans l'affichage du contenu de <ph name="PRODUCT_NAME" />. - - Si vous activez ce paramètre, l'utilisateur sera en mesure d'activer ou de désactiver la fonctionnalité Appuyer pour rechercher. - - Si vous désactivez ce paramètre, l'utilisateur n'aura pas accès à la fonctionnalité Appuyer pour rechercher. - - Si cette règle n'est pas configurée, la fonctionnalité sera activée, conformément à la description ci-dessus.</translation> <translation id="285480231336205327">Activer le mode Contraste élevé</translation> <translation id="2854919890879212089">Avec cette option, <ph name="PRODUCT_NAME" /> utilise l'imprimante par défaut du système dans l'aperçu avant impression, plutôt que l'imprimante qui a servi le plus récemment. @@ -1681,7 +1674,6 @@ Si vous ne définissez pas cette règle, les commentaires audio sont désactivés au premier affichage de l'écran de connexion. Les utilisateurs peuvent les activer ou les désactiver à tout moment, et leur état sur l'écran de connexion est appliqué à tous les utilisateurs.</translation> <translation id="5868414965372171132">Configuration réseau au niveau de l'utilisateur</translation> -<translation id="588135807064822874">Activer la fonctionnalité Appuyer pour rechercher</translation> <translation id="5883015257301027298">Paramètre de cookies par défaut</translation> <translation id="5887414688706570295">Configure le préfixe TalkGadget utilisé par les hôtes d'accès à distance et empêche les utilisateurs de le modifier. @@ -1955,11 +1947,6 @@ <translation id="6689792153960219308">Envoyer des rapports sur l'état du matériel</translation> <translation id="6698071416141001300">Le signalement d'un compte à risque au niveau de la protection par mot de passe est déclenché par la réutilisation d'un mot de passe</translation> <translation id="6699880231565102694">Activer l'authentification forte pour les hôtes d'accès à distance</translation> -<translation id="6702257826895463228">Autorise les sites à parcourir et à ouvrir les pop-up simultanément. - - Pour obtenir une explication complète, consultez la page https://www.chromestatus.com/features/5675755719622656. - Si cette règle est activée, les sites sont autorisés à parcourir et à ouvrir de nouvelles fenêtres ou de nouveaux onglets simultanément. - Si cette règle est désactivée ou n'est pas définie, les sites ne sont pas autorisés à parcourir et à ouvrir une nouvelle fenêtre ou un nouvel onglet simultanément.</translation> <translation id="6724842112053619797">Si vous activez cette option, les paramètres stockés dans les profils <ph name="PRODUCT_NAME" />, comme les favoris, les données de saisie automatique et les mots de passe, sont également enregistrés dans un fichier stocké dans le dossier des profils utilisateur itinérants ou à un emplacement défini par l'administrateur tel que spécifié dans la règle <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. L'activation de cette règle entraîne la désactivation de la synchronisation cloud. Si cette règle est désactivée ou si elle n'est pas configurée, seuls les profils locaux standards sont utilisés.
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb index a625bec0..af38c2b 100644 --- a/components/policy/resources/policy_templates_gu.xtb +++ b/components/policy/resources/policy_templates_gu.xtb
@@ -724,13 +724,6 @@ જો આ નીતિનો ઉપયોગ કરવામાં આવ્યો હોય, તો માત્ર આ નીતિમાં જણાવેલ મૂલ્યો સાથે મેળ ખાતા IDવાળા પ્રિન્ટર વપરાશકર્તા માટે ઉપલબ્ધ હોય છે. આ ID <ph name="DEVICE_PRINTERS_POLICY" />માં ઉલ્લેખિત કરવામાં આવેલ ફાઇલમાંની "id" અથવા "guid" ફીલ્ડ સાથે બંધબેસતા હોવા આવશ્યક છે. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> ના સામગ્રી દૃશ્યમાં શોધ માટે ટચ કરોની ઉપલબ્ધતા સક્ષમ કરે છે. - - જો તમે આ સેટિંગ સક્ષમ કરો છો, તો વપરાશકર્તાને શોધ માટે ટચ કરો ઉપલબ્ધ હશે અને તેઓ સુવિધાને ચાલુ અથવા બંધ કરવાનું પસંદ કરી શકશે. - - જો તમે આ સેટિંગ અક્ષમ કરો છો, તો શોધ માટે ટચ કરો સંપૂર્ણપણે અક્ષમ થઇ જશે. - - જો આ નીતિને સેટ કર્યા વિના છોડવામાં આવે, તો તે સક્ષમ હોવા બરાબર છે, ઉપરનું વર્ણન જુઓ.</translation> <translation id="285480231336205327">હાઇ કોન્ટ્રાસ મોડને સક્ષમ કરો</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" />ને એકદમ તાજેતરમાં વાપરેલ પ્રિન્ટરને બદલે પ્રિન્ટ પ્રીવ્યૂમાં ડિફૉલ્ટ પસંદગી તરીકે સિસ્ટમ ડિફૉલ્ટ પ્રિન્ટરનો ઉપયોગ કરાવે છે. @@ -1869,7 +1862,6 @@ જો આ નીતિને સેટ કર્યા વિના છોડેલી હોય, તો લોગિન સ્ક્રીન પહેલી વખત બતાવવામાં આવે ત્યારે બોલાયેય પ્રતિસાદ અક્ષમ હોય છે. વપરાશકર્તાઓ બોલાયેલ પ્રતિસાદને કોઈપણ સમયે સક્ષમ અથવા અક્ષમ કરી શકે છે અને લોગિન સ્ક્રીન પર તેની સ્થિતિ વપરાશકર્તાઓ વચ્ચે નિરંતર હોય છે.</translation> <translation id="5868414965372171132">વપરાશકર્તા-સ્તર નેટવર્ક ગોઠવણી</translation> -<translation id="588135807064822874">શોધવા માટે ટચ સક્ષમ કરવું</translation> <translation id="5883015257301027298">ડિફૉલ્ટ કૂકીઝ સેટિંગ</translation> <translation id="5887414688706570295">TalkGadget પ્રીફિક્સને ગોઠવે છે જેનો ઉપયોગ રીમોટ ઍક્સેસ હોસ્ટ્સ દ્વારા કરવામાં આવશે અને વપરાશકર્તાનોને તેને બદલવાથી અટકાવે છે. @@ -2142,11 +2134,6 @@ <translation id="6689792153960219308">હાર્ડવેરની સ્થિતિ અંગે જાણ કરવી</translation> <translation id="6698071416141001300">પાસવર્ડને ફરી ઉપયોગ કરવાથી જોખમમાં રહેલ એકાઉન્ટના પાસવર્ડની સુરક્ષાને ચિહ્નિત કરવું ટ્રિગર થાય છે</translation> <translation id="6699880231565102694">રીમોટ ઍક્સેસ હોસ્ટ્સ માટે બે-કારક પ્રમાણીકરણ સક્ષમ કરો</translation> -<translation id="6702257826895463228">સાઇટને નૅવિગેટ કરવા અને પૉપ-અપ ખોલવાની ક્રિયા એકસાથે કરવા દો. - - સંપૂર્ણ વર્ણન માટે, https://www.chromestatus.com/features/5675755719622656 જુઓ. - જો આ નીતિ ચાલુ હોય, તો સાઇટ નૅવિગેટ કરવાની સાથે નવી વિંડો/ટૅબ ખોલી શકશે. - જો આ નીતિ બંધ હોય કે સેટ ન કરેલ હોય, તો સાઇટને નૅવિગેટ કરવા અને નવી વિંડો/ટૅબ ખોલવાની ક્રિયા એકસાથે કરવા નહીં દેવાય.</translation> <translation id="6724842112053619797">જો તમે આ સેટિંગ્સને સક્ષમ કરો છો, તો <ph name="PRODUCT_NAME" /> પ્રોફાઇલમાં સંગ્રહિત કરેલ સેટિંગ્સ જેમ કે બુકમાર્ક, સ્વતઃભરણ ડેટા, પાસવર્ડ વગેરેને રોમિંગ વપરાશકર્તા પ્રોફાઇલ ફોલ્ડર અથવા <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> નીતિ મારફતે વ્યવસ્થાપક દ્વારા ઉલ્લેખિત સ્થાનમાં સંગ્રહિત ફાઇલમાં પણ લખવામાં આવશે. આ નીતિને સક્ષમ કરવાથી ક્લાઉડ સિંક અક્ષમ થઈ જાય છે. જો આ નીતિ અક્ષમ કરી હોય અથવા સેટ કર્યા વિના છોડી દીધી હોય તો જ નિયમિત સ્થાનિક પ્રોફાઇલનો ઉપયોગ કરવામાં આવશે.
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb index 64219e57..4d4c1dd 100644 --- a/components/policy/resources/policy_templates_hi.xtb +++ b/components/policy/resources/policy_templates_hi.xtb
@@ -27,6 +27,7 @@ अगर यह नीति सेट की गई है, तो प्रवेश स्क्रीन हमेशा उस भाषा में दिखाई देगी जो इस नीति के पहले मान ने दी है (नीति को अग्रेषित संगतता की सूची के रूप में परिभाषित जाता है). अगर यह नीति सेट नहीं की गई है या किसी खाली सूची पर सेट की गई है, तो प्रवेश स्क्रीन पिछले उपयोगकर्ता सत्र की भाषा में प्रदर्शित की जाएगी. अगर यह नीति ऐसे मान पर सेट की गई है जो कि मान्य भाषा नहीं है, तो प्रवेश स्क्रीन किसी फ़ॉलबैक भाषा (इस समय en-US है) में प्रदर्शित की जाएगी.</translation> <translation id="1062011392452772310">डिवाइस के लिए दूरस्थ अनुप्रमाणन सक्षम करें</translation> <translation id="1062407476771304334">प्रतिस्थापित करें</translation> +<translation id="1079801999187584280">डेवलपर टूल के इस्तेमाल की मंज़ूरी न दें</translation> <translation id="109166998561583554">पासवर्ड सुरक्षा की ओर से जोखिम वाले खाते को फ़्लैग करने का ट्रिगर</translation> <translation id="1093082332347834239">यदि यह सेटिंग सक्षम की जाती है, तो दूरस्थ सहायता होस्ट <ph name="UIACCESS_PERMISSION_NAME" /> अनुमतियों वाली प्रक्रिया में चलेगा. इससे दूरस्थ उपयोगकर्ताओं को स्थानीय उपयोगकर्ता के डेस्कटॉप पर एलिवेटेड विंडो से सहभागिता करने की अनुमति मिल जाएगी. @@ -79,6 +80,7 @@ मापन कारक 100% या अधिक होना चाहिए.</translation> <translation id="131353325527891113">प्रवेश स्क्रीन पर उपयोगकर्ता नाम दिखाएं</translation> +<translation id="1325295456374328159">किसी उपयोगकर्ता सत्र में मंज़ूर की गई स्थान-भाषाएं कॉन्फ़िगर करें</translation> <translation id="1327466551276625742">ऑफ़लाइन होने पर नेटवर्क कॉन्फ़िगरेशन संकेत को सक्षम करें</translation> <translation id="1330145147221172764">ऑन-स्क्रीन कीबोर्ड सक्षम करें</translation> <translation id="13356285923490863">नीति का नाम</translation> @@ -91,6 +93,10 @@ <translation id="1387596372902085462">Symantec Corporation की विरासती PKI बुनियादी संरचना में विश्वास करना चालू करें या नहीं</translation> <translation id="1393485621820363363">एंटरप्राइज़ डिवाइस प्रिंटर चालू</translation> <translation id="1397855852561539316">सामान्य खोज प्रदाता सुझाव URL</translation> +<translation id="1424081297104898791">अगर यह नीति 'DeveloperToolsDisallowedForForceInstalledExtensions' (मान 0, जो कि एंटरप्राइज़ उपयोगकर्ताओं के लिए डिफ़ॉल्ट है) पर सेट हो, तो डेवलपर टूल और JavaScript कंसोल सामान्य तौर पर एक्सेस किए जा सकते हैं, लेकिन उन्हें एंटरप्राइज़ नीति के ज़रिए इंस्टॉल किए गए एक्सटेंशन के संदर्भ में एक्सेस नहीं किया जा सकता. + अगर यह नीति 'DeveloperToolsAllowed' (मान 1, जो कि प्रबंधित नहीं किए गए उपयोगकर्ताओं के लिए डिफ़ॉल्ट है) पर सेट हो, तो डेवलपर टूल और JavaScript कंसोल का इस्तेमाल सभी संदर्भों में किया जा सकता है, जिनमें एंटरप्राइज़ नीति के ज़रिए इंस्टॉल किए गए एक्सटेंशन का संदर्भ भी शामिल है. + अगर यह नीति 'DeveloperToolsDisallowed' (मान 2) पर सेट हो, तो डेवलपर टूल एक्सेस नहीं किए जा सकते हैं और अब वेब-साइट के तत्व की जांच नहीं की जा सकती. डेवलपर टूल या JavaScript कंसोल को खोलने वाले सभी कीबोर्ड शॉर्टकट और सभी मेन्यू या संदर्भ मेन्यू बंद हो जाएंगे. + अगर लीगेसी नीति DeveloperToolsDisabled सही पर सेट हो, तो इस नीति के मान को अनदेखा किया जाता है और डेवलपर टूल बंद कर दिए जाते हैं.</translation> <translation id="1426410128494586442">हां</translation> <translation id="1427655258943162134">प्रॉक्सी सर्वर का पता या URL</translation> <translation id="1435659902881071157">डिवाइस-स्तरीय नेटवर्क कॉन्फ़िगरेशन</translation> @@ -206,6 +212,7 @@ <translation id="1803646570632580723">लॉन्चर में दिखाए जाने वाले पिन किए गए ऐप्स की सूची</translation> <translation id="1808715480127969042">इन साइटों पर कुकी अवरुद्ध करें</translation> <translation id="1810261428246410396">इस्तेमाल की जाने वाली झटपट टेदरिंग को मंज़ूरी देती है.</translation> +<translation id="1826282708349731794">यह नियंत्रित करती है कि Chrome Cleanup, Google को डेटा की रिपोर्ट किस तरह करता है</translation> <translation id="1827523283178827583">निश्चित प्रॉक्सी सर्वर का उपयोग करें</translation> <translation id="1843117931376765605">उपयोगकर्ता नीति के लिए रीफ्रेश दर</translation> <translation id="1844620919405873871">तुरंत अनलॉक करने संबंधी नीतियां कॉन्फ़िगर करती है.</translation> @@ -420,6 +427,21 @@ वर्तनी परीक्षण को अब भी किसी डाउनलोड की गई शब्दकोश का उपयोग करके निष्पादित किया जा सकता है; यह नीति केवल ऑनलाइन सेवा के उपयोग को नियंत्रित करती है. यदि यह सेटिंग कॉन्फ़िगर न है, तो फिर उपयोगकर्ता चुन सकते हैं कि वर्तनी परीक्षण सेवा का उपयोग किया जाना चाहिए या नहीं.</translation> +<translation id="2294283832646774959">प्रिंटर की सूची कॉन्फ़िगर करती है. + + यह नीति एडमिन को अपने उपयोगकर्ताओं के लिए प्रिंटर कॉन्फ़िगरेशन उपलब्ध + कराने देती है. + + <ph name="PRINTER_DISPLAY_NAME" /> और <ph name="PRINTER_DESCRIPTION" /> स्वतंत्र फ़ॉर्म स्ट्रिंग हैं जिन्हें प्रिंटर चुनने में आसानी के लिए पसंद के मुताबिक बनाया जा सकता है. <ph name="PRINTER_MANUFACTURER" /> और <ph name="PRINTER_MODEL" /> अंतिम उपयोगकर्ताओं के लिए प्रिंटर की पहचान करना आसान बनाने का काम करते हैं. वे प्रिंटर के निर्माता और मॉडल को दर्शाते हैं. <ph name="PRINTER_URI" /> एक ऐसा पता होना चाहिए जिस पर क्लाइंट कंप्यूटर से पहुंचा जा सके जिसमें <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> और <ph name="URI_QUEUE" /> शामिल हैं. <ph name="PRINTER_UUID" /> वैकल्पिक है. अगर उपलब्ध कराया गया हो, तो इसका इस्तेमाल <ph name="ZEROCONF_DISCOVERY" /> प्रिंटर की कॉपी हटाने के लिए किया जाता है. + + <ph name="PRINTER_EFFECTIVE_MODEL" /> का मिलान किसी एक स्ट्रिंग से होना चाहिए जो <ph name="PRODUCT_NAME" /> पर काम करने वाले प्रिंटर को दर्शाती है. स्ट्रिंग का इस्तेमाल प्रिंटर के लिए सही PPD की पहचान करके उसे इंस्टॉल करने के लिए किया जाएगा. ज़्यादा जानकारी https://support.google.com/chrome?p=noncloudprint पर मिल सकती है. + + किसी प्रिंटर का पहली बार इस्तेमाल करते ही प्रिंटर का सेटअप पूरा हो जाता है. PPD तब तक डाउनलोड नहीं किए जाते हैं जब तक कि प्रिंटर का इस्तेमाल नहीं किया जाता. उस समय के बाद, अक्सर इस्तेमाल होने वाले PPD कैश मेमोरी में रख दिए जाते हैं. + + इस नीति का इस पर कोई असर नहीं होता कि उपयोगकर्ता अलग-अलग डिवाइस पर प्रिंटर कॉन्फ़िगर कर सकते हैं या नहीं. इसे अलग-अलग उपयोगकर्ताओं के प्रिंटर के कॉन्फ़िगरेशन का पूरक होने के लिए बनाया गया है. + + सक्रिय निर्देशिका से प्रबंधित होने वाले डिवाइसों के लिए यह नीति <ph name="MACHINE_NAME_VARIABLE" /> का सक्रिय निर्देशिका के मशीन नाम या उसकी सबस्ट्रिंग में विस्तार करने का समर्थन करती है. उदाहरण के लिए, अगर मशीन नाम <ph name="MACHINE_NAME_EXAMPLE" /> है, तो फिर <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> को 6ठी जगह के बाद शुरू होने वाले 4 वर्णों, यानी <ph name="MACHINE_NAME_PART_EXAMPLE" /> से बदल दिया जाएगा. ध्यान रखें कि यह स्थिति शून्य-आधारित होती है. + </translation> <translation id="2294382669900758280">Android ऐप्लिकेशन में वीडियो चलाने पर ध्यान नहीं दिया जाता है, भले ही यह नीति <ph name="TRUE" /> पर सेट हो.</translation> <translation id="2298647742290373702"><ph name="PRODUCT_NAME" /> में डिफ़ॉल्ट नया टैब पेज कॉन्फ़िगर करें.</translation> <translation id="2299220924812062390">सक्षम प्लग इन की सूची निर्दिष्ट करें</translation> @@ -588,6 +610,7 @@ यह नीति इस पर कोई असर नहीं डालती कि उपयोगकर्ता अलग-अलग डिवाइस पर प्रिंटर कॉन्फ़िगर कर सकते हैं या नहीं. इसे अलग-अलग उपयोगकर्ताओं के प्रिंटर के कॉन्फ़िगरेशन का पूरक होने के लिए बनाया गया है. </translation> <translation id="2633084400146331575">मौखिक फ़ीडबैक सक्षम करें</translation> +<translation id="2640843331263301324">Windows पर Chrome Cleanup चालू करती है</translation> <translation id="2646290749315461919">आपको यह सेट करने देती है कि क्या वेबसाइटों को उपयोगकर्ता का वास्तविक स्थान ट्रैक करने की अनुमति है. उपयोगकर्ता के वास्तविक स्थान को ट्रैक करने की अनुमति डिफ़ॉल्ट रूप से दी जा सकती है, डिफ़ॉल्ट रूप से अस्वीकार की जा सकती है या हर बार किसी वेबसाइट द्वारा वास्तविक स्थान का अनुरोध किए जाने पर उपयोगकर्ता से हर बार पूछा जा सकता है. यदि यह नीति सेट किए बिना छोड़ दी जाती है, तो 'AskGeolocation' का उपयोग किया जाएगा और उपयोगकर्ता इसे बदल सकेगा.</translation> @@ -657,13 +680,6 @@ अगर इस नीति का इस्तेमाल किया जाता है, तो सिर्फ़ ऐसे प्रिंटर उपयोगकर्ता को उपलब्ध कराए जाते हैं जिनके आईडी इस नीति में दिए गए मान से मिलान करते हैं. आईडी, <ph name="DEVICE_PRINTERS_POLICY" /> में बताई गई फ़ाइल के "id" या "guid" के मुताबिक होने चाहिए. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> के सामग्री दृश्य में खोजने के लिए स्पर्श करें की उपलब्धता को सक्षम करती है. - - यदि आप इस सेटिंग को सक्षम करते हैं, तो खोजने के लिए स्पर्श करें उपयोगकर्ता के लिए उपलब्ध होगा और वह सुविधा को चालू या बंद करना चुन सकता है. - - यदि आप इस सेटिंग को अक्षम करते हैं, तो खोजने के लिए स्पर्श करें को पूरी तरह अक्षम कर दिया जाएगा. - - यदि इस पॉलिसी को सेट किए बिना छोड़ दिया जाता है, तो यह सक्षम करने के समान होगा, ऊपर दिया गया विवरण देखें.</translation> <translation id="285480231336205327">उच्च कंट्रास्ट मोड सक्षम करें</translation> <translation id="2854919890879212089">इसके कारण <ph name="PRODUCT_NAME" />, प्रिंट पूर्वावलोकन में डिफ़ॉल्ट पसंद के रूप में सबसे हाल में उपयोग किए गए प्रिंटर के बजाय सिस्टम डिफ़ॉल्ट प्रिंटर का उपयोग करता है. @@ -1212,6 +1228,7 @@ <translation id="4508686775017063528">अगर यह नीति सही पर सेट की जाती है या इसे सेट नहीं किया जाता है, तो <ph name="PRODUCT_NAME" /> को सक्षम कर दिया जाएगा और उपयोगकर्ता इसे ऐप मेनू, पेज प्रसंग मेनू, Cast सक्षम वेबसाइटों पर मीडिया नियंत्रणों और (अगर दिखाया जाता है, तो) Cast टूलबार आइकन से लॉन्च कर पाएंगे. अगर यह नीति गलत पर सेट की जाती है, तो <ph name="PRODUCT_NAME" /> को अक्षम कर दिया जाएगा.</translation> +<translation id="4515404363392014383">भरोसेमंद स्रोतों के लिए सुरक्षित ब्राउज़िंग चालू करें</translation> <translation id="4518251772179446575">जब भी कोई साइट, उपयोगकर्ताओं के वास्तविक स्थान पर नज़र रखना चाहे, तब पूछें</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" />की खोज वाली पट्टी में खोज सुझावों को सक्षम करती है और उपयोगकर्ता को इस सेटिंग को बदलने से रोकती है. @@ -1239,12 +1256,14 @@ <translation id="4554651132977135445">उपयोगकर्ता नीति लूपबैक प्रोसेसिंग मोड</translation> <translation id="4555850956567117258">उपयोगकर्ता के लिए दूरस्थ अनुप्रमाणन सक्षम करें</translation> <translation id="4557134566541205630">डिफ़ॉल्ट खोज प्रदाता नया टैब पेज URL</translation> +<translation id="4567137030726189378">डेवलपर टूल के इस्तेमाल की मंज़ूरी देती है</translation> <translation id="4600786265870346112">बड़ा कर्सर सक्षम करें</translation> <translation id="4604931264910482931">स्थानीय संदेश सेवा कालीसूची कॉन्फ़िगर करें</translation> <translation id="4613508646038788144">अगर नीति गलत पर सेट की जाती है तो तीसरे पक्ष के सॉफ़्टवेयर को Chrome की प्रक्रियाओं में निष्पादन-योग्य कोड इंजेक्ट करने की अनुमति होगी. अगर नीति सेट नहीं की जाती या सही पर सेट की जाती है तो तीसरे पक्ष के सॉफ़्टवेयर को Chrome की प्रक्रियाओं में निष्पादन-योग्य कोड इंजेक्ट करने से रोका जाएगा.</translation> <translation id="4617338332148204752"><ph name="PRODUCT_FRAME_NAME" /> में मेटा टैग चेक रहने दें</translation> <translation id="4625915093043961294">एक्सटेंशन इंस्टॉलेशन श्वेतसूची कॉन्फ़िगर करें</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" /> को सूचीबद्ध सामग्री प्रकारों को प्रबंधित करने दें</translation> +<translation id="4632566332417930481">एंटरप्राइज़ नीति के ज़रिए इंस्टॉल किए गए एक्सटेंशन पर डेवलपर टूल के इस्तेमाल की मंज़ूरी नहीं देती है, दूसरे संदर्भों में डेवलपर टूल के इस्तेमाल की मंज़ूरी देती है</translation> <translation id="4633786464238689684">शीर्ष पंक्ति की कुंजियों का डिफ़ॉल्ट व्यवहार फ़ंक्शन कुंजियों में बदलती है. यदि यह नीति सही पर सेट है, तो कीबोर्ड की कुंजियों की शीर्ष पंक्ति डिफ़ॉल्ट रूप से फ़ंक्शन कुंजी आदेश बनाएगी. खोज की के व्यवहार को वापस मीडिया कुंजियों में बदलने के लिए उसे दबाना होगा. @@ -1335,6 +1354,7 @@ यदि यह नीति गलत पर सेट की जाती है, तो स्क्रीन सक्रिय करने वाले लॉक के अनुरोधों को अनदेखा किया जाएगा.</translation> <translation id="487460824085252184">डेटा अपने आप दूसरी जगह भेजें, उपयोगकर्ता की सहमति के लिए न पूछें.</translation> +<translation id="4874982543810021567">इन साइटों पर WebUSB ब्लॉक करें</translation> <translation id="4876805738539874299">अधिकतम SSL वर्शन सक्षम किया गया</translation> <translation id="4897928009230106190">POST के साथ सुझाव खोज करते समय उपयोग किए जाने वाले पैरामीटर निर्दिष्ट करती है. इसमें अल्पविराम द्वारा अलग किए गए नाम/मान के युग्म शामिल होते हैं. यदि कोई मान टेम्पलेट पैरामीटर, जैसे उपरोक्त उदाहरण में {searchTerms} है, तो उसे वास्तविक खोज शब्द डेटा से प्रतिस्थापित कर दिया जाएगा. @@ -1512,9 +1532,13 @@ अगर यह नीति इनपुट विधि पहचानकर्ताओं की किसी सूची पर सेट की जाती है, तो दी गई इनपुट विधियां प्रवेश स्क्रीन पर उपलब्ध होंगी. दी गई पहली इनपुट विधि पहले से चुनी हुई होगी. प्रवेश स्क्रीन पर कोई उपयोगकर्ता पॉड फ़ोकस होने पर, इस नीति की ओर से दी गई इनपुट विधियों के अलावा उपयोगकर्ता की पिछली उपयोग की गई इनपुट विधि भी उपलब्ध होगी. अगर यह नीति सेट नहीं की जाती, तो प्रवेश स्क्रीन पर मौजूद इनपुट विधियां उस भाषा से ली जाएंगी जिसमें प्रवेश स्क्रीन दिखाई गई है. जो मान, मान्य इनपुट विधि पहचानकर्ता नहीं हैं उन्हें अनदेखा कर दिया जाएगा.</translation> <translation id="5423001109873148185">यह नीति सक्षम किए जाने पर खोज इंजन को वर्तमान डिफ़ॉल्ट ब्राउज़र से आयात करने के लिए बाध्य करती है. यदि सक्षम किया जाता है, तो यह नीति आयात डॉयलॉग को भी प्रभावित करती है. यदि अक्षम किया जाता है, तो डिफ़ॉल्ट खोज इंजन आयात नहीं होता. यदि इसे सेट नहीं किया जाए, तो उपयोगकर्ता से आयात करने के संबंध में पूछा जा सकता है, या आयात करना स्वचालित रूप से हो सकता है.</translation> <translation id="5423197884968724595">Android WebView प्रतिबंध नाम:</translation> +<translation id="5442026853063570579">यह नीति Android डेवलपर के लिए सेटिंग और टूल का एक्सेस भी नियंत्रित करती है. अगर आप इस नीति को 'DeveloperToolsDisallowed' (मान 2) पर सेट करते हैं, तो उपयोगकर्ता डेवलपर के लिए सेटिंग और टूल एक्सेस नहीं कर सकते. अगर आप इस नीति को किसी दूसरे मान पर सेट करते हैं या इसे सेट किए बिना छोड़ देते हैं, तो उपयोगकर्ता Android सेटिंग ऐप्लिकेशन में बिल्ड नंबर पर सात बार टैप करके डेवलपर के लिए सेटिंग और टूल एक्सेस कर सकते हैं.</translation> <translation id="5447306928176905178">मेमोरी जानकारी (JS हीप आकार) को पेज पर रिपोर्ट करना सक्षम करें (बहिष्कृत)</translation> <translation id="5457065417344056871">ब्राउज़र में मेहमान मोड सक्षम करना</translation> <translation id="5457924070961220141">आपको डिफ़ॉल्ट HTML रेंडरर कॉन्फ़िगर करने देती है जब <ph name="PRODUCT_FRAME_NAME" /> इंस्टॉल हो. जब इस नीति को सेट किए बिना छोड़ दिया जाता है तो होस्ट ब्राउज़र को रेंडरिंग की अनुमति देने के लिए डिफ़ॉल्ट सेटिंग का उपयोग किया जाता है, लेकिन आप वैकल्पिक रूप से इसे ओवरराइड कर सकते हैं और डिफ़ॉल्ट रूप से <ph name="PRODUCT_FRAME_NAME" /> को HTML पेज रेंडर करने दे सकते हैं.</translation> +<translation id="5459155981813668716">वे स्थान-भाषाएं कॉन्फ़िगर करती है जिनमें <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" /> इस नीति के बताए गए पहले सही मान में बदल जाएगा या अगर इस नीति में सिर्फ़ गलत प्रविष्टियां ही हों तो वह किसी फ़ॉलबैक स्थान-भाषा (फ़िलहाल en-US) में बदल जाएगा.</translation> <translation id="5464816904705580310">प्रबंधित उपयोगकर्ताओं की सेटिंग कॉन्फ़िगर करें.</translation> <translation id="546726650689747237">AC पावर पर चलते समय स्क्रीन मंद विलंब</translation> <translation id="5469484020713359236">आपको उन url प्रतिमानों की सूची सेट करने देती है जो ऐसी साइटों को निर्दिष्ट करते हैं जिन पर कुकी सेट करने अनुमति है. @@ -1640,7 +1664,6 @@ यदि इस नीति को सेट किए बिना छोड़ दिया जाता है, तो बोले गए फ़ीडबैक को पहली बार प्रवेश स्क्रीन दिखाई देने पर अक्षम किया जाता है. बोले गए फ़ीडबैक को उपयोगकर्ता किसी भी समय सक्षम या अक्षम कर सकते हैं और और प्रवेश स्क्रीन पर उसकी स्थिति उपयोगकर्ताओं के बीच एक समान होती है.</translation> <translation id="5868414965372171132">उपयोगकर्ता-स्तरीय नेटवर्क कॉन्फ़िगरेशन</translation> -<translation id="588135807064822874">खोजने के लिए स्पर्श करना सक्षम करना</translation> <translation id="5883015257301027298">डिफ़ॉल्ट कुकी सेटिंग</translation> <translation id="5887414688706570295">उस TalkGadget के प्रारंभिक भाग को कॉन्फ़िगर करती है, जिसे दूरस्थ पहुंच होस्ट द्वारा उपयोग किया जाएगा और उपयोगकर्ताओं को इसे बदलने से रोकती है. @@ -1744,6 +1767,7 @@ <translation id="6036523166753287175">रिमोट पहुंच होस्ट से फ़ायरवॉल ट्रेवर्सल सक्षम करें</translation> <translation id="6070667616071269965">डिवाइस प्रवेश स्क्रीन कीबोर्ड लेआउट</translation> <translation id="6074963268421707432">किसी भी साइट को डेस्कटॉप सूचनाएं दिखाने की अनुमति न दें</translation> +<translation id="6074964551275531965">अपडेट सूचनाओं की समयावधि सेट करती है</translation> <translation id="6076099373507468537">उन USB डिवाइस की सूची परिभाषित करती है जिन्हें किसी वेब ऐप्लिकेशन के अंदर chrome.usb API के माध्यम से उपयोग किए जाने के लिए उनके kernel डिस्क से अलग करने की अनुमति है. किसी विशिष्ट हार्डवेयर की पहचान करने के लिए प्रविष्टियां, USB विक्रेता पहचानकर्ता और उत्पाद पहचानकर्ता का समूह होती हैं. यदि यह पॉलिसी कॉन्फ़िगर नहीं की जाती, तो अलग करने योग्य USB डिवाइस की सूची खाली रहती है.</translation> @@ -1822,6 +1846,11 @@ यदि आप इस सेटिंग को सक्षम करते हैं या कोई मान सेट नहीं करते, तो ऑटोमैटिक भरना उपयोगकर्ता के नियंत्रण में बना रहेगा. इससे वह स्वविवेक से ऑटोमैटिक भरना प्रोफ़ाइल कॉन्फ़िगर कर सकेगा और ऑटोमैटिक भरना को चालू या बंद कर सकेगा.</translation> <translation id="6394350458541421998">इस नीति को <ph name="PRODUCT_OS_NAME" /> वर्शन 29 में समाप्त कर दिया गया है. कृपया इसके बजाय PresentationScreenDimDelayScale नीति का उपयोग करें.</translation> <translation id="6401669939808766804">उपयोगकर्ता को लॉग आउट करें</translation> +<translation id="6412477120967771054">अगर गलत पर सेट हो, तो Chrome Cleanup को सिस्टम में अनचाहे सॉफ़्टवेयर स्कैन करने और क्लीनअप करने से रोकती है. Chrome Cleanup को chrome://settings/cleanup से मैन्युअल तरीके से ट्रिगर करने की सुविधा बंद है. + + अगर सही पर सेट हो या सेट नहीं की गई हो, तो Chrome Cleanup समय-समय पर सिस्टम में अनचाहे सॉफ़्टवेयर स्कैन करता है और अगर ऐसा कोई सॉफ़्टवेयर मिलता है, तो उपयोगकर्ता से पूछता है कि क्या वे इसे हटाना चाहते हैं. Chrome Cleanup को chrome://settings से मैन्युअल तरीके से ट्रिगर करने की सुविधा बंद है. + + यह नीति Windows के ऐसे इंस्टेंस पर मौजूद नहीं है जो किसी <ph name="MS_AD_NAME" /> डोमेन में शामिल नहीं हैं.</translation> <translation id="6417861582779909667">आपको ऐसे url प्रतिमानों की सूची सेट करने देती है, जो उन साइटों को निर्दिष्ट करते हैं जिन्हें कुकी सेट करने की अनुमति नहीं है. यदि इस नीति को सेट किए बिना छोड़ दिया जाता है, तो सभी साइटों के लिए वैश्विक डिफ़ॉल्ट मान का उपयोग 'DefaultCookiesSetting' से किया जाएगा, यदि इसे सेट किया गया हो, या अन्यथा इसका उपयोग उपयोगकर्ता के व्यक्तिगत कॉन्फ़िगरेशन से किया जाएगा.</translation> <translation id="6426205278746959912">आप Android ऐप्लिकेशन को किसी प्रॉक्सी का उपयोग करने के लिए बाध्य नहीं कर सकते हैं. Android ऐप्लिकेशन को प्रॉक्सी सेटिंग का एक सबसेट उपलब्ध कराया जाता है, जिसका वे स्वैच्छिक रूप से उपयोग करना चुन सकते हैं: @@ -1842,6 +1871,13 @@ यह नियंत्रित करने के लिए कि कौन-कौन सी वेबसाइट को Flash चलाने की अनुमति है, "DefaultPluginsSetting", "PluginsAllowedForUrls" और "PluginsBlockedForUrls" नीतियां देखें. अगर यह सेटिंग बंद होती है या सेट नहीं की जाती है, तो शुरुआत की अन्य जगहों की Flash सामग्री या छोटी सामग्री ब्लॉक की जा सकती है.</translation> +<translation id="6535639183431116351">यह नीति M68 में खत्म कर दी गई है, कृपया इसके बजाय DeveloperToolsAvailability का इस्तेमाल करें. + + डेवलपर टूल और JavaScript कंसोल को बंद करती है. + + अगर आप यह सेटिंग चालू करते हैं, तो डेवलपर टूल एक्सेस नहीं किए जा सकते हैं और अब वेब-साइट के तत्वों की जांच नहीं की जा सकती. डेवलपर टूल या JavaScript कंसोल को खोलने वाले सभी कीबोर्ड शॉर्टकट और सभी मेन्यू या संदर्भ मेन्यू बंद हो जाएंगे. + + इस विकल्प को बंद पर सेट करने या इसे सेट किए बिना छोड़ देने से उपयोगकर्ता को डेवलपर टूल और JavaScript कंसोल का इस्तेमाल करने की मंज़ूरी मिल जाएगी.</translation> <translation id="653608967792832033">बैटरी पावर पर चलते समय, उस समयावधि को निर्दिष्ट करती है जितनी देर तक उपयोगकर्ता कोई भी इनपुट न दे, उसके बाद स्क्रीन लॉक हो जाती है. जब इस नीति को शून्य से अधिक के मान पर सेट किया जाता है, तो यह <ph name="PRODUCT_OS_NAME" /> द्वारा स्क्रीन को लॉक किए जाने से पहले की उस समयावधि को निर्दिष्ट करती है जिसमें उपयोगकर्ता को प्रयोग में नहीं रहना होगा. @@ -1899,14 +1935,14 @@ यदि यह नीति सेट किए बिना छोड़ दी जाती है, तो नेटवर्क पूर्वानुमान सक्षम हो जाएगा लेकिन उपयोगकर्ता उसे बदल सकेगा.</translation> <translation id="6658245400435704251">किसी अपडेट के पहली बार सर्वर पर पुश किए जाने से लेकर किसी डिवाइस द्वारा उसके डाउनलोड में बार-बार किए जाने वाले विलंब की अवधि निर्दिष्ट करता है. डिवाइस दीवार-घड़ी के समय के संबंध में और बाकी के भाग की अपडेट जाँच की संख्या के संबंध में कुछ समय तक प्रतीक्षा कर सकता है. किसी भी स्थिति में, स्कैटर समय के साथ ऊपरी रूप पर परिबद्ध होता है ताकि डिवाइस हमेशा के लिए कभी भी किसी अपडेट के डाउनलोड होने की प्रतीक्षा में अटक न जाए.</translation> <translation id="6665670272107384733">यह सेट करती है कि झटपट अनलॉक करें का इस्तेमाल करने के लिए उपयोगकर्ता को कितने समय में पासवर्ड डालना होगा</translation> +<translation id="6681229465468164801">आपको उन यूआरएल पैटर्न की सूची सेट करने देती है जो ऐसी साइटों के बारे में बताते हैं जिन्हें कोई USB डिवाइस एक्सेस करने की मंज़ूरी देने के लिए उपयोगकर्ता से पूछने से रोका गया है. + + अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो 'DefaultWebUsbGuardSetting' नीति सेट होने पर या तो उससे सभी साइटों के लिए वैश्विक डिफ़ॉल्ट मान का इस्तेमाल किया जाएगा या फिर उपयोगकर्ता के व्यक्तिगत कॉन्फ़िगरेशन का इस्तेमाल किया जाएगा. + + इस नीति में दिए गए यूआरएल पैटर्न का टकराव WebUsbAskForUrls के ज़रिए कॉन्फ़िगर किए गए यूआरएल से नहीं होना चाहिए. यह नहीं बताया गया है कि अगर किसी यूआरएल का दोनों नीतियों से मिलान हो जाता है तो कौनसी नीति को प्राथमिकता दी जाएगी.</translation> <translation id="6689792153960219308">हार्डवेयर स्थिति की रिपोर्ट करना</translation> <translation id="6698071416141001300">पासवर्ड का फिर से इस्तेमाल होने पर पासवर्ड सुरक्षा की ओर से जोखिम वाले खाते को फ़्लैग करना ट्रिगर किया गया है</translation> <translation id="6699880231565102694">दूरस्थ पहुंच होस्ट के लिए द्वि-कारक प्रमाणीकरण सक्षम करें</translation> -<translation id="6702257826895463228">साइटों को एक ही समय में नेविगेट करने और पॉप-अप खोलने देती है. - - पूरी जानकारी पाने के लिए, https://www.chromestatus.com/features/5675755719622656 देखें. - अगर यह नीति चालू होती है, तो साइटें एक ही समय में नेविगेट करने और नई विंडो/टैब खोलने देंगी. - अगर यह नीति बंद होती है या सेट नहीं की जाती है, तो साइटें एक ही समय में नेविगेट करने और नई विंडो/टैब खोलने की मंज़ूरी नहीं देंगी.</translation> <translation id="6724842112053619797">अगर आप यह सेटिंग सक्षम करते हैं, तो <ph name="PRODUCT_NAME" /> प्रोफ़ाइल में बुकमार्क, ऑटोमैटिक भरने वाला डेटा, पासवर्ड आदि जैसी संग्रहित सेटिंग भी रोमिंग उपयोगकर्ता प्रोफ़ाइल फ़ोल्डर में संग्रहित किसी फ़ाइल में या <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> नीति के ज़रिए व्यवस्थापक की ओर से तय किए गए किसी स्थान में लिख दी जाएंगी. इस नीति को सक्षम करने पर क्लाउड सिंक को अक्षम कर दिया जाता है. अगर यह नीति अक्षम है या सेट किए बिना छोड़ दी गई है, तो केवल नियमित स्थानीय प्रोफ़ाइल का उपयोग किया जाएगा. @@ -2064,6 +2100,11 @@ अगर यह सेटिंग बंद होती है या सेट नहीं की जाती है, तो सभी संसाधनों पर सुरक्षित ब्राउज़िंग की डिफ़ॉल्ट सुरक्षा लागू होती है. यह नीति उन Windows इंस्टेंस पर उपलब्ध नहीं है जो किसी <ph name="MS_AD_NAME" /> डोमेन से जुड़े हुए नहीं हैं.</translation> <translation id="7079519252486108041">इन साइटों पर पॉपअप अवरुद्ध करें</translation> +<translation id="7085803328069945025">आपको उन यूआरएल पैटर्न की सूची सेट करने देती है जो ऐसी साइटों के बारे में बताते हैं जिन्हें कोई USB डिवाइस एक्सेस करने की मंज़ूरी देने के लिए उपयोगकर्ता से पूछने की मंज़ूरी है. + + अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो 'DefaultWebUsbGuardSetting' नीति सेट होने पर या तो उससे सभी साइटों के लिए वैश्विक डिफ़ॉल्ट मान का इस्तेमाल किया जाएगा या फिर उपयोगकर्ता के व्यक्तिगत कॉन्फ़िगरेशन का इस्तेमाल किया जाएगा. + + इस नीति में दिए गए यूआरएल पैटर्न का टकराव WebUsbBlockedForUrls के ज़रिए कॉन्फ़िगर किए गए यूआरएल से नहीं होना चाहिए. यह नहीं बताया गया है कि अगर किसी यूआरएल का दोनों नीतियों से मिलान हो जाता है तो कौनसी नीति को प्राथमिकता दी जाएगी.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> डिवाइस निष्क्रिय या निलंबित हो जाने पर लॉक सक्षम करें. यदि आप इस सेटिंग को सक्षम करते हैं, तो उपयोगकर्ताओं से डिवाइस को निष्क्रिय से अनलॉक करने के लिए एक पासवर्ड मांगा जाएगा. @@ -2257,6 +2298,7 @@ सुरक्षित ब्राउज़िंग के बारे में ज़्यादा जानकारी के लिए https://developers.google.com/safe-browsing देखें.</translation> <translation id="7643883929273267746"><ph name="PRODUCT_NAME" /> में दिखाई देने वाले खाते प्रतिबंधित करें</translation> <translation id="7651739109954974365">निर्धारित करता है कि क्या डिवाइस के लिए डेटा रोमिंग सक्षम किया जाना चाहिए. अगर सही पर सेट हो, तो डेटा रोमिंग की अनुमति है. बिना कॉन्फ़गर किए या गलत पर सेट हो तो, डेटा रोमिंग उपलब्ध नहीं होगी.</translation> +<translation id="7673194325208122247">समयावधि (मिलीसेकंड)</translation> <translation id="7683777542468165012">प्रभावी नीति रीफ़्रेश</translation> <translation id="7694807474048279351">किसी <ph name="PRODUCT_OS_NAME" /> अपडेट के लागू होने के बाद एक स्वचालित रीबूट शेड्यूल करें. @@ -2387,6 +2429,13 @@ यदि यह सेटिंग अक्षम है और आउटगोइंग UDP कनेक्शन फ़ायरवॉल द्वारा फ़िल्टर है, तो यह मशीन केवल स्थानीय नेटवर्क में होस्ट मशीन से कनेक्ट हो सकती है.</translation> <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> गंतव्य का नाम</translation> +<translation id="7977445800390854860">अगर सेट नहीं हो, तो Chrome Cleanup में अनचाहा सॉफ़्टवेयर मिलने पर, वह SafeBrowsingExtendedReportingEnabled के ज़रिए सेट की गई नीति के मुताबिक स्कैन के मेटाडेटा की रिपोर्ट Google को कर सकता है. इसके बाद Chrome Cleanup उपयोगकर्ता से पूछेगा कि क्या वे अनचाहे सॉफ़्टवेयर को हटाना चाहते हैं. उपयोगकर्ता हटाए जाने के नतीजों को Google से शेयर कर सकते हैं ताकि आगे अनचाहे सॉफ़्टवेयर की पहचान करने में मदद मिल सके. इन नतीजों में फ़ाइल मेटाडेटा और रजिस्ट्री की होती हैं जिनके बारे में Chrome निजता श्वेतपत्र में बताया गया है. + + अगर गलत पर सेट हो, तो Chrome Cleanup में अनचाहा सॉफ़्टवेयर मिलने पर, वह SafeBrowsingExtendedReportingEnabled के ज़रिए सेट की गई किसी भी नीति को ओवरराइड करते हुए Google को स्कैन के मेटाडेटा की रिपोर्ट नहीं करेगा. Chrome Cleanup उपयोगकर्ता से पूछेगा कि क्या वे अनचाहे सॉफ़्टवेयर को हटाना चाहते हैं. हटाए जाने की रिपोर्ट Google को नहीं की जाएगी और उपयोगकर्ता के पास ऐसा करने की विकल्प नहीं होगा. + + अगर सही पर सेट हो, तो Chrome Cleanup में अनचाहा सॉफ़्टवेयर मिलने पर, वह SafeBrowsingExtendedReportingEnabled के ज़रिए सेट की गई नीति के मुताबिक स्कैन के मेटाडेटा की रिपोर्ट Google को कर सकता है. Chrome Cleanup उपयोगकर्ता से पूछेगा कि क्या वे अनचाहे सॉफ़्टवेयर को हटाना चाहते हैं. हटाए जाने के नतीजों की रिपोर्ट Google को की जाएगी और उपयोगकर्ता के पास उससे बचने का विकल्प नहीं होगा. + + यह नीति Windows के ऐसे इंस्टेंस पर मौजूद नहीं है जो किसी <ph name="MS_AD_NAME" /> डोमेन में शामिल नहीं हैं.</translation> <translation id="7978060394348264922"> हो सकता है कि आप IsolateOrigins नीति की सेटिंग पर नज़र डालना चाहें, ताकि जिन साइटों को आप आइसोलेट करना चाहते हैं, उनकी सूची वाली IsolateOrigins का इस्तेमाल करके आइसोलेशन और उपयोगकर्ताओं @@ -2507,6 +2556,7 @@ <translation id="8300455783946254851">सही पर सेट होने पर सेल्युलर कनेक्शन का उपयोग करते समय <ph name="PRODUCT_OS_NAME" /> फ़ाइलें ऐप्स में Google डिस्क समन्वयन को अक्षम करती है. उस स्थिति में, डेटा डेटा को Google डिस्क में तभी समन्वयित किया जाता है जब WiFi या ईथरनेट से कनेक्ट किया गया हो. यदि सेट नहीं हो या गलत पर सेट हो, तो उपयोगकर्ता फ़ाइलों को सेल्युलर कनेक्शन के द्वारा Google डिस्क में स्थानान्तरित कर सकेगा.</translation> +<translation id="8300992833374611099">यह नियंत्रित करती है कि डेवलपर टूल का इस्तेमाल कहां किया जा सकता है</translation> <translation id="8312129124898414409">आपको यह सेट करने देती है कि वेबसाइट को कुंजी जेनरेशन का उपयोग करने की अनुमति है या नहीं. कुंजी जेनरेशन का उपयोग करने की अनुमति या तो सभी वेबसाइट के लिए हो सकती है या सभी वेबसाइट के लिए अस्वीकृत की जा सकती है. यदि यह पॉलिसी सेट किए बिना छोड़ दी जाती है, तो 'BlockKeygen' का उपयोग किया जाएगा और उपयोगकर्ता उसे बदल सकेगा.</translation> @@ -2738,11 +2788,17 @@ <translation id="9035964157729712237">प्रतिबंधित सूची से मुक्त किए जाने वाले विस्तार ID</translation> <translation id="9042911395677044526">प्रति उपयोगकर्ता पर <ph name="PRODUCT_OS_NAME" /> डिवाइस लागू करने के लिए नेटवर्क कॉन्फ़िगरेशन पुश करने दें. नेटवर्क कॉन्फ़िगरेशन <ph name="ONC_SPEC_URL" /> पर वर्णित आपेन नेटवर्क कॉन्फ़िगरेशन स्वरूप द्वारा परिभाषित JSON-स्वरूपित स्ट्रिंग है</translation> <translation id="9084985621503260744">निर्दिष्ट करें कि वीडियो गतिविधि पावर प्रबंधन को प्रभावित करती है या नहीं</translation> +<translation id="9085839450090699752">आपको मिलीसेकंड में, वह समयावधि सेट करने देती है, जिसके दौरान उपयोगकर्ताओं को सूचना दी जाएगी कि <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" /> डिवाइसों के लिए 345600000 मिलीसेकंड (चार दिनों) की डिफ़ॉल्ट अवधि और ब्राउज़रों के लिए 604800000 मिलीसेकंड (एक हफ़्ते) की अवधि का इस्तेमाल किया जाता है.</translation> <translation id="9088433379343318874">निगरानी में रखा गया उपयोगकर्ता सामग्री प्रदाता को सक्षम करें</translation> <translation id="9088444059179765143">स्वचालित समयक्षेत्र की पहचान विधि को कॉन्फ़िगर करें</translation> <translation id="9096086085182305205">प्रमाणीकरण सर्वर श्वेतसूची</translation> <translation id="9098553063150791878">HTTP प्रमाणीकरण के लिए पॉलिसी</translation> <translation id="9105265795073104888">Android ऐप्लिकेशन को प्रॉक्सी कॉन्फ़िगरेशन विकल्पों का सबसेट ही उपलब्ध कराया जाता है. Android ऐप्लिकेशन स्वैच्छिक रूप से प्रॉक्सी का उपयोग करना चुन सकते हैं. आप उन्हें किसी प्रॉक्सी का उपयोग करने के लिए मजबूर नहीं कर सकते हैं.</translation> +<translation id="9106865192244721694">इन साइटों पर WebUSB की मंज़ूरी दें</translation> <translation id="9112727953998243860">एंटरप्राइज़ प्रिंटर कॉन्फ़िगरेशन फ़ाइल</translation> <translation id="9112897538922695510">आपको प्रोटोकॉल प्रबंधकों की सूची पंजीकृत कराने देती है. यह केवल एक सुझाए गए नीति हो सकती है. |protocol| गुण को केवल 'mailto' जैसी स्कीम पर और |url| गुण को स्कीन का प्रबंधन करने वाले ऐप्लिकेशन के URL प्रतिमान पर ही सेट किया जा सकता है. प्रतिमान में '%s' शामिल हो सकता है, जिसके मौजूद होने पर उसे प्रबंधित URL के द्वारा बदल दिया जाएगा. @@ -2776,6 +2832,11 @@ <translation id="915194831143859291">यदि यह पॉलिसी असत्य पर सेट होती है या कॉन्फ़िगर नहीं की जाती है, तो <ph name="PRODUCT_OS_NAME" /> उपयोगकर्ता को डिवाइस को बंद करने देगा. यदि यह पॉलिसी सत्य पर सेट होती है, तो <ph name="PRODUCT_OS_NAME" /> उपयोगकर्ता द्वारा डिवाइस को बंद करने पर एक रीबूट ट्रिगर करेगा. <ph name="PRODUCT_OS_NAME" /> UI में शटडाउन बटर की सभी आवृत्तियों को रीबूट बटनों से प्रतिस्थापित कर देता है. यदि उपयोगकर्ता पावर बटन का उपयोग करके डिवाइस को बंद कर देता है, तो वह अपने आप बूट नहीं होगा, भले ही पॉलिसी को सक्षम हो.</translation> <translation id="9158929520101169054">ब्राउज़र के अंदर एक से ज़्यादा साइन-इन की अनुमति दें</translation> +<translation id="9165792353046089850">आपको यह सेट करने देती है कि वेबसाइटों को कनेक्ट किए हुए USB डिवाइसों का एक्सेस पाने की मंज़ूरी है या नहीं. एक्सेस पूरी तरह ब्लॉक किया जा सकता है या कोई वेबसाइट कनेक्ट किए हुए USB डिवाइस का एक्सेस पाना चाहती है, तो हर बार उपयोगकर्ता से पूछा जा सकता है. + + इस नीति को 'WebUsbAskForUrls' और 'WebUsbBlockedForUrls' नीतियों का इस्तेमाल करके खास यूआरएल पैटर्न के लिए ओवरराइड किया जा सकता है. + + अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो '3' का इस्तेमाल किया जाएगा और उपयोगकर्ता उसे बदल सकेगा.</translation> <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> फ़ाइल ऐप्लिकेशन में डिस्क को बंद करती है</translation> <translation id="9187743794267626640">बाहरी मेमोरी का माउंटिंग अक्षम करें</translation> <translation id="9197740283131855199">मंद होने के बाद उपयोगकर्ता के सक्रिय होने पर, मंद स्क्रीन विलंब को मापने वाला प्रतिशत</translation>
diff --git a/components/policy/resources/policy_templates_hr.xtb b/components/policy/resources/policy_templates_hr.xtb index 6b6f42c..ea6d5d8d 100644 --- a/components/policy/resources/policy_templates_hr.xtb +++ b/components/policy/resources/policy_templates_hr.xtb
@@ -27,6 +27,7 @@ Ako se to pravilo postavi, zaslon za prijavu uvijek će se prikazivati na jeziku određenom prvom vrijednošću pravila (pravilo je definirano kao popis za kompatibilnost s budućim verzijama). Ako se to pravilo ne postavi ili se postavi na prazan popis, zaslon za prijavu prikazivat će se na jeziku zadnje korisničke sesije. Ako se to pravilo postavi na vrijednost koja nije važeća oznaka zemlje/jezika, zaslon za prijavu prikazivat će se na osnovnom jeziku (trenutačno en-US).</translation> <translation id="1062011392452772310">Omogući daljinsku ovjeru za uređaj</translation> <translation id="1062407476771304334">Zamijeni</translation> +<translation id="1079801999187584280">Onemogući upotrebu Alata za razvojne programere</translation> <translation id="109166998561583554">Okidač koji upravlja time na koji način usluga zaštite zaporkom označava račun kao ugrožen</translation> <translation id="1093082332347834239">Ako se omogući ta postavka, host daljinske pomoći pokrenut će se u procesu s dopuštenjima <ph name="UIACCESS_PERMISSION_NAME" />. To će udaljenim korisnicima omogućiti interakciju s privilegiranim prozorima na računalu lokalnog korisnika. @@ -79,6 +80,7 @@ Faktor skaliranja mora biti 100% ili više.</translation> <translation id="131353325527891113">Prikaži korisnička imena na zaslonu prijave</translation> +<translation id="1325295456374328159">Konfiguriraj dopuštene jezike u korisničkoj sesiji</translation> <translation id="1327466551276625742">Omogući odzivnu poruku za konfiguraciju mreže tijekom izvanmrežnog rada</translation> <translation id="1330145147221172764">Omogući tipkovnicu na zaslonu</translation> <translation id="13356285923490863">Naziv pravila</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Odlučivanje o pouzdanosti naslijeđene infrastrukture javnog ključa tvrtke Symantec Corporation</translation> <translation id="1393485621820363363">Omogućeni pisači za uređaje tvrtke</translation> <translation id="1397855852561539316">Predloženi URL zadanog davatelja usluge pretraživanja</translation> +<translation id="1424081297104898791">Omogućuje vam da kontrolirate gdje se mogu upotrebljavati Alati za razvojne programere. + + Ako se to pravilo postavi na "DeveloperToolsDisallowedForForceInstalledExtensions" (vrijednost 0, što je zadano za poslovne korisnike), Alatima za razvojne programere i konzoli JavaScript može se pristupiti općenito, ali im se ne može pristupiti u kontekstu proširenja instaliranih prema pravilima organizacije. + Ako se to pravilo postavi na "DeveloperToolsAllowed" (vrijednost 1, što je zadano za neupravljane korisnike), Alatima za razvojne programere i konzoli JavaScript može se pristupiti i može ih se upotrebljavati u svim kontekstima, uključujući kontekst proširenja instaliranih prema pravilima organizacije. + Ako se to pravilo postavi na "DeveloperToolsDisallowed" (vrijednost 2), Alatima za razvojne programere ne može se pristupiti i elementi web-lokacije više se ne mogu pregledavati. Onemogućit će se svi tipkovni prečaci i svi unosi izbornika ili kontekstnih izbornika za otvaranje Alata za razvojne programere ili konzole JavaScript. + Ako se staro pravilo DeveloperToolsDisabled postavi na True, vrijednost ovog pravila zanemaruje se i Alati za razvojne programere nisu omogućeni.</translation> <translation id="1426410128494586442">Da</translation> <translation id="1427655258943162134">Adresa ili URL proxy poslužitelja</translation> <translation id="1435659902881071157">Mrežna konfiguracija na razini uređaja</translation> @@ -204,6 +212,7 @@ <translation id="1803646570632580723">Popis prikvačenih aplikacija za prikazivanje u pokretaču</translation> <translation id="1808715480127969042">Blokiraj kolačiće na ovim web-lokacijama</translation> <translation id="1810261428246410396">Dopusti upotrebu Automatskog modemskog povezivanja.</translation> +<translation id="1826282708349731794">Kontrolira način na koji Chromeov alat za čišćenje izvješćuje Google</translation> <translation id="1827523283178827583">Upotrijebi fiksne proxy poslužitelje</translation> <translation id="1843117931376765605">Brzina osvježavanja za korisničko pravilo</translation> <translation id="1844620919405873871">Konfigurira pravila povezana s brzim otključavanjem.</translation> @@ -590,6 +599,7 @@ To pravilo ne utječe na to mogu li korisnici konfigurirati pisače na pojedinačnim uređajima. Služi kao dodatno pravilo za konfiguraciju pisača koju vrše pojedinačni korisnici. </translation> <translation id="2633084400146331575">Omogućavanje govornih povratnih informacija</translation> +<translation id="2640843331263301324">Omogućuje Chromeov alat za čišćenje na Windowsima</translation> <translation id="2646290749315461919">Omogućuje da postavite smiju li web-lokacije pratiti fizičku lokaciju korisnika. Praćenje fizičke lokacije korisnika može biti dopušteno prema zadanim postavkama, odbijeno prema zadanim postavkama ili se korisniku može postaviti upit svaki puta kada web-lokacija zahtijeva fizičku lokaciju. Ako ovo pravilo nije postavljeno, upotrebljavat će se pravilo "AskGeolocation", a korisnik će to moći promijeniti.</translation> <translation id="2647069081229792812">Omogući ili onemogući uređivanje oznaka</translation> <translation id="2650049181907741121">Radnja koja će se izvršiti kada korisnik spusti poklopac</translation> @@ -653,13 +663,6 @@ Ako se to pravilo upotrebljava, korisniku su dostupni samo pisači s ID-ovima podudarnim s vrijednostima u tom pravilu. ID-ovi se moraju podudarati s poljima "id" ili "guid" u datoteci navedenoj u pravilu <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">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. - - Ako onemogućite tu postavku, značajka Dodirnite za pretraživanje bit će u potpunosti isključena. - - Ako se pravilo ne postavi, to ima jednak učinak kao da se omogući. Pogledajte prethodni opis.</translation> <translation id="285480231336205327">Omogućavanje načina visokog kontrasta</translation> <translation id="2854919890879212089">Određuje da <ph name="PRODUCT_NAME" /> u Pregledu ispisa upotrebljava zadani pisač sustava, a ne pisač koji je upotrijebljen zadnji put. @@ -1212,12 +1215,14 @@ <translation id="4554651132977135445">Način obrade povratne petlje korisničkog pravila</translation> <translation id="4555850956567117258">Omogući daljinsku ovjeru za korisnika</translation> <translation id="4557134566541205630">URL web-stranice nove kartice zadanog davatelja usluge pretraživanja</translation> +<translation id="4567137030726189378">Dopusti upotrebu Alata za razvojne programere</translation> <translation id="4600786265870346112">Omogućivanje velikog pokazivača</translation> <translation id="4604931264910482931">Konfiguriraj popis nedopuštenih za lokalno slanje poruka</translation> <translation id="4613508646038788144">Ako je pravilo postavljeno na False, softver treće strane moći će ubaciti izvršni kôd u Chromeove procese. Ako pravilo nije postavljeno ili je postavljeno na True, softver treće strane neće moći ubaciti izvršni kôd u Chromeove procese.</translation> <translation id="4617338332148204752">Preskoči provjeru metaoznaka u okviru <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfiguriraj bijelu listu instalacije proširenja</translation> <translation id="4632343302005518762">Dopusti proizvodu <ph name="PRODUCT_FRAME_NAME" /> rukovanje navedenim vrstama sadržaja</translation> +<translation id="4632566332417930481">Onemogući upotrebu Alata za razvojne programere na proširenjima instaliranim prema pravilima organizacije, dopusti upotrebu Alata za razvojne programere u drugim kontekstima</translation> <translation id="4633786464238689684">Mijenja se zadano ponašanje tipki u skroz gornjem redu u funkcijske tipke. Ako se pravilo postavi na istinito, najgornji red tipki na tipkovnici prema zadanim će postavkama izvršavati naredbe funkcijskih tipki. Da bi se njihovo ponašanje vratilo na medijske tipke, potrebno je pritisnuti tipku za pretraživanje. @@ -1475,9 +1480,13 @@ 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="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> <translation id="5457924070961220141">Omogućuje konfiguriranje zadanog HTML prikazivača kada je instaliran okvir <ph name="PRODUCT_FRAME_NAME" />. Ako ovo pravilo nije postavljeno, zadana je postavka da prikazivanje obavlja preglednik hosta, ali to po izboru možete poništiti i postaviti da okvir <ph name="PRODUCT_FRAME_NAME" /> prikazuje HTML stranice prema zadanim postavkama.</translation> +<translation id="5459155981813668716">Konfigurira jezike na kojima se <ph name="PRODUCT_OS_NAME" /> može prikazivati. + + Ako se to pravilo postavi, korisnik može konfigurirati da se <ph name="PRODUCT_OS_NAME" /> prikazuje samo na jednom od jezika navedenih ovim pravilom. Ako se to pravilo ne postavi ili se postavi na prazan popis, moguće je prikazivati <ph name="PRODUCT_OS_NAME" /> na svim podržanim jezicima. Ako se to pravilo postavi na popis s nevažećim vrijednostima, sve će se nevažeće vrijednosti zanemariti. Ako je korisnik prethodno konfigurirao da se <ph name="PRODUCT_OS_NAME" /> prikazuje na jeziku koji nije dopušten ovim pravilom, jezik prikaza prebacit će se na dopušteni jezik sljedeći put kada se korisnik prijavi. Ako je korisnik konfigurirao preferirane jezike i jedan od njih dopušten je ovim pravilom, <ph name="PRODUCT_OS_NAME" /> prelazi na taj jezik. U suprotnom, <ph name="PRODUCT_OS_NAME" /> prelazi na prvu važeću vrijednost navedenu tim pravilom ili na zamjenski jezik (trenutačno en-US), ako pravilo sadrži samo nevažeće unose.</translation> <translation id="5464816904705580310">Konfiguriranje postavki za upravljane korisnike.</translation> <translation id="546726650689747237">Odgoda zatamnjenja zaslona za vrijeme napajanja izmjeničnom strujom</translation> <translation id="5469484020713359236">Omogućuje postavljanje popisa uzoraka URL-ova koji određuju web-lokacije koje ne smiju postavljati kolačiće. Ako se ovo pravilo ne postavi, upotrebljavat će se globalna zadana vrijednost za sve web-lokacije iz pravila "DefaultCookiesSetting" ako je postavljeno, odnosno iz osobne konfiguracije korisnika ako nije.</translation> @@ -1591,7 +1600,6 @@ Ako se to pravilo ne postavi, izgovaranje povratnih informacija onemogućeno je pri prvom prikazivanju zaslona za prijavu. Korisnici mogu omogućiti ili onemogućiti izgovaranje povratnih informacija u bilo kojem trenutku, a status te značajke na zaslonu za prijavu zadržat će se i za sljedeće korisnike.</translation> <translation id="5868414965372171132">Mrežna konfiguracija na razini korisnika</translation> -<translation id="588135807064822874">Omogućivanje značajke Dodirnite za pretraživanje</translation> <translation id="5883015257301027298">Zadana postavka kolačića</translation> <translation id="5887414688706570295">Konfigurira prefiks za TalkGadget koji će upotrebljavati hostovi daljinskog pristupa i sprječava korisnike da ga mijenjaju. @@ -1695,6 +1703,7 @@ <translation id="6036523166753287175">Omogući prijelaz vatrozida iz hosta za daljinski pristup</translation> <translation id="6070667616071269965">Rasporedi tipkovnice za zaslon za prijavu na uređaju</translation> <translation id="6074963268421707432">Nemoj dopustiti nijednoj web-lokaciji da prikazuje obavijesti radne površine</translation> +<translation id="6074964551275531965">Postavi razdoblje za obavijesti o ažuriranjima</translation> <translation id="6076099373507468537">Definira popis USB uređaja za koje je dopušteno odvajanje od upravljačkog programa jezgre radi upotrebe putem API-ja chrome.usb izravno unutar web-aplikacije. Unosi su parovi identifikatora dobavljača i identifikatora proizvoda USB uređaja, a služe za prepoznavanje određenog hardvera. Ako se pravilo ne konfigurira, popis uklonjivih USB uređaja ostaje prazan.</translation> @@ -1767,6 +1776,11 @@ <translation id="6392973646875039351">Omogućuje značajku Automatsko popunjavanje proizvoda <ph name="PRODUCT_NAME" /> i omogućuje korisnicima automatsko ispunjavanje web-obrazaca pomoću ranije pohranjenih informacija, kao što su adresa ili podaci o kreditnoj kartici. Ako onemogućite ovu postavku, Automatsko popunjavanje neće biti dostupno korisnicima. Ako omogućite ovu postavku i ne konfigurirate vrijednost, Automatsko popunjavanje ostat će pod nadzorom korisnika. To će im omogućiti konfiguriranje profila Automatskog popunjavanja te uključivanje ili isključivanje Automatskog popunjavanja po vlastitom nahođenju.</translation> <translation id="6394350458541421998">To se pravilo ne upotrebljava od verzije 29 sustava <ph name="PRODUCT_OS_NAME" />. Umjesto toga upotrijebite pravilo PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Odjavi korisnika</translation> +<translation id="6412477120967771054">Ako se postavi na False, onemogućuje Chromeovu alatu za čišćenje da traži neželjeni softver u sustavu i vrši čišćenje. Onemogućeno je ručno aktiviranje Chromeova alata za čišćenje sa stranice chrome://settings/cleanup. + + Ako se postavi na True ili se ne postavi, Chromeov alat za čišćenje povremeno traži neželjeni softver u sustavu i ako ga pronađe, pita korisnika želi li ga ukloniti. Omogućeno je ručno aktiviranje Chromeova alata za čišćenje sa stranice chrome://settings. + + To pravilo nije dostupno u instancama Windowsa koje nisu pridružene domeni <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Omogućuje postavljanje popisa uzoraka URL-ova koji određuju web-lokacije koje ne smiju postavljati kolačiće. Ako se ovo pravilo ne postavi, upotrebljavat će se globalna zadana vrijednost za sve web-lokacije iz pravila "DefaultCookiesSetting" ako je postavljeno, odnosno iz osobne konfiguracije korisnika ako nije.</translation> <translation id="6426205278746959912">Android aplikacijama ne može se nametnuti upotreba proxyja. Podskup postavki proxyja dostupan je Android aplikacijama i one ga mogu primjenjivati prema želji: @@ -1787,6 +1801,13 @@ Da biste odredili koje web-lokacije mogu pokretati Flash, pogledajte pravila "DefaultPluginsSetting", "PluginsAllowedForUrls" i "PluginsBlockedForUrls". Ako je ta postavka onemogućena ili nije postavljena, postoji mogućnost da će Flash sadržaj iz drugih izvora ili manji sadržaj biti blokiran.</translation> +<translation id="6535639183431116351">To je pravilo obustavljeno u verziji M68. Umjesto njega upotrijebite DeveloperToolsAvailability. + + Onemogućuje Alate za razvojne programere i konzolu JavaScript. + + Ako omogućite tu postavku, više neće biti moguće pristupiti Alatima za razvojne programere i više se neće moći provjeravati elementi web-lokacija. Onemogućit će se svi tipkovni prečaci i stavke izbornika ili kontekstnih izbornika za otvaranje Alata za razvojne programere ili konzole JavaScript. + + Ako se ta opcija onemogući ili ne postavi, korisnik može upotrebljavati Alate za razvojne programere i konzolu JavaScripta.</translation> <translation id="653608967792832033">Određuje koliko vremena treba proteći bez aktivnosti korisnika da bi se zaslon zaključao tijekom rada s baterijskim napajanjem. Kada je postavljeno na vrijednost veću od nule, ovo pravilo određuje koliko vremena treba proteći u neaktivnosti prije nego što <ph name="PRODUCT_OS_NAME" /> zaključa zaslon. @@ -1852,11 +1873,6 @@ <translation id="6689792153960219308">Izvješćivanje o statusu hardvera</translation> <translation id="6698071416141001300">Označavanje računa čija je zaštita zaporkom ugrožena aktivira se ponovnom upotrebom zaporke</translation> <translation id="6699880231565102694">Omogući autentifikaciju s dva čimbenika za hostove daljinskog pristupa</translation> -<translation id="6702257826895463228">Web-lokacijama omogućuje istovremenu navigaciju i otvaranje skočnih prozora. - - Cijelo objašnjenje pročitajte na stranici https://www.chromestatus.com/features/5675755719622656. - Ako se to pravilo omogući, web-lokacijama će se omogućiti istovremena navigacija i otvaranje novih prozora ili kartica. - Ako se to pravilo onemogući ili se ne postavki, web-lokacijama će se onemogućiti istovremena navigacija i otvaranje novih prozora ili kartica.</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. Ako se to pravilo onemogući ili ne postavi, upotrebljavat će se samo uobičajeni lokalni profili. @@ -2193,6 +2209,7 @@ Više informacija o Sigurnom pregledavanju potražite na stranici https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Ograniči račune koji su vidljivi u pregledniku <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Utvrđuje treba li roaming podataka biti omogućen za uređaj. Ako je to pravilo postavljeno na "istinito", roaming podataka bit će dopušten. Ako to pravilo nije konfigurirano ili je postavljeno na "lažno", roaming podataka neće biti dostupan.</translation> +<translation id="7673194325208122247">Razdoblje (milisekunde)</translation> <translation id="7683777542468165012">Dinamičko osvježavanje pravila</translation> <translation id="7694807474048279351">Odredi vrijeme automatskog ponovnog pokretanja nakon primjene ažuriranja sustava <ph name="PRODUCT_OS_NAME" />. @@ -2318,6 +2335,13 @@ <translation id="7961779417826583251">Onemogući provedbu Transparentnosti certifikata za popis starih tijela za izdavanje certifikata</translation> <translation id="7974114691960514888">Ovo pravilo više se ne podržava. Omogućuje upotrebu STUN i relejnih poslužitelja prilikom povezivanja s udaljenim klijentom. Ako je ova postavka omogućena, onda ovo računalo može otkriti udaljena računala hostove i povezati se s njima, čak i ako su odvojena vatrozidom. Ako je ova postavka onemogućena, a izlazne UDP veze filtrirane su vatrozidom, onda se ovo računalo može jedino povezati s računalima hostovima unutar lokalne mreže.</translation> <translation id="7976157349247117979">Naziv odredišta za <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Ako se ne postavi, u slučaju da Chromeov alat za čišćenje otkrije neželjeni softver, može Googleu prijaviti metapodatke o pretraživanju u skladu s pravilima postavljenima pravilom SafeBrowsingExtendedReportingEnabled. Chromeov alat za čišćenje zatim će pitati korisnika želi li ukloniti neželjeni softver. Korisnik može podijeliti rezultate čišćenja s Googleom kako bi pomogao s budućim otkrivanjem neželjenog softvera. Ti rezultati sadrže metapodatke o datotekama i ključeve registra kao što je opisano u Dokumentu o privatnosti preglednika Google Chrome. + + Ako se postavi na False, u slučaju da Chromeov alat za čišćenje otkrije neželjeni softver, neće Googleu prijaviti metapodatke o pretraživanju, nadjačavajući pravila postavljena pravilom SafeBrowsingExtendedReportingEnabled. Chromeov alat za čišćenje pitat će korisnika želi li ukloniti neželjeni softver. Rezultati čišćenja neće se prijaviti Googleu i korisnik to neće moći učiniti. + + Ako se postavi na True, u slučaju da Chromeov alat za čišćenje otkrije neželjeni softver, može Googleu prijaviti metapodatke o pretraživanju u skladu s pravilima postavljenima pravilom SafeBrowsingExtendedReportingEnabled. Chromeov alat za čišćenje pitat će korisnika želi li ukloniti neželjeni softver. Rezultati čišćenja prijavit će se Googleu i korisnik to neće moći spriječiti. + + To pravilo nije dostupno u instancama Windowsa koje nisu pridružene domeni <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Možda biste trebali razmisliti o postavci pravila IsolateOrigins da biste iskoristili prednosti obje značajke, izolacije i ograničenog utjecaja za @@ -2440,6 +2464,7 @@ <translation id="8300455783946254851">Onemogućuje sinkronizaciju Google diska u aplikaciji Datoteke za <ph name="PRODUCT_OS_NAME" /> prilikom upotrebe mobilne veze kada je postavljeno na točno. U tom slučaju podaci se sinkroniziraju s Google diskom prilikom povezanosti putem Wi-Fi-ja ili Etherneta. Ako nije postavljeno ili je postavljeno na netočno, korisnici će moći prenositi datoteke na Google disk mobilnim vezama.</translation> +<translation id="8300992833374611099">Kontroliraj gdje se mogu upotrebljavati Alati za razvojne programere</translation> <translation id="8312129124898414409">Omogućuje vam da postavite smiju li web-lokacije upotrebljavati generiranje ključeva. Generiranje ključeva može se dopustiti za sve web-lokacije ili odbiti za sve web-lokacije. Ako se to pravilo ne postavi, upotrebljavat će se "BlockKeygen" i korisnik će to moći promijeniti.</translation> @@ -2672,6 +2697,11 @@ <translation id="9035964157729712237">ID-jevi proširenja za izuzimanje s crne liste</translation> <translation id="9042911395677044526">Omogućuje nametanje mrežne konfiguracije za primjenu po korisniku na uređaju <ph name="PRODUCT_OS_NAME" />. Mrežna je konfiguracija niz u formatu JSON, kao što je definirano formatom "Open Network Configuration" koji je opisan na adresi <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Odredi utječe li aktivnost videozapisa na upravljanje napajanjem</translation> +<translation id="9085839450090699752">Omogućuje vam da postavite razdoblje, u milisekundama, tijekom kojeg korisnici primaju obavijesti da se <ph name="PRODUCT_NAME" /> mora ponovo pokrenuti ili da se <ph name="PRODUCT_OS_NAME" /> uređaj mora ponovo pokrenuti da bi se primijenilo ažuriranje na čekanju. + + U tom će razdoblju korisnik primiti više obavijesti da je potrebno ažuriranje. Za <ph name="PRODUCT_OS_NAME" /> uređaje obavijest o ponovnom pokretanju prikazuje se na traci sustava kada se otkrije nadogradnja. Boja te obavijesti mijenja se kada istekne polovica razdoblja obavijesti i još jednom kada istekne cijelo razdoblje. Za preglednike <ph name="PRODUCT_NAME" /> izbornik aplikacije mijenja se kada istekne trećina razdoblja obavijesti kako bi se naznačilo da je potrebno ponovno pokretanje. Boja te obavijesti mijenja se kada isteknu dvije trećine razdoblja i još jednom kada istekne cijelo razdoblje. Dodatne obavijesti omogućene pravilom <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> za preglednike imaju isti raspored. + + Ako se ne postavi, za <ph name="PRODUCT_OS_NAME" /> uređaje upotrebljava se zadano razdoblje od 345.600.000 milisekundi (četiri dana), a za preglednike zadano razdoblje od 604.800.000 milisekundi (jedan tjedan).</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="9096086085182305205">Bijela lista poslužitelja za autentifikaciju</translation>
diff --git a/components/policy/resources/policy_templates_hu.xtb b/components/policy/resources/policy_templates_hu.xtb index af3cc0594..167ec038 100644 --- a/components/policy/resources/policy_templates_hu.xtb +++ b/components/policy/resources/policy_templates_hu.xtb
@@ -27,6 +27,7 @@ Ha be van állítva a házirend, a bejelentkezési képernyő mindig a házirend első értékeként megadott nyelv- és országkódnak megfelelően jelenik meg (az előre kompatibilitás miatt a házirend listaként van meghatározva). Ha a házirend nincs beállítva, vagy üres listára van állítva, a bejelentkezési képernyő a legutóbbi felhasználói munkamenet nyelv- és országkódjának megfelelően jelenik meg. Ha a házirend beállított értéke érvénytelen nyelv- és országkód, a bejelentkezési képernyő a tartalék nyelv- és országkódnak megfelelően jelenik meg (jelenleg: „en-US”).</translation> <translation id="1062011392452772310">Az eszköz távoli tanúsításának engedélyezése</translation> <translation id="1062407476771304334">Csere</translation> +<translation id="1079801999187584280">A Fejlesztői eszközök használatának letiltása</translation> <translation id="109166998561583554">A fiók jelszóvédelem általi veszélyeztetettnek jelölését szabályzó eseményindító</translation> <translation id="1093082332347834239">Ha a beállítás be van kapcsolva, a távoli támogatás gazdagépe a(z) <ph name="UIACCESS_PERMISSION_NAME" /> engedélyekkel rendelkező folyamatban fut. Ez lehetővé teszi a távoli felhasználók számára, hogy interakcióba lépjenek a kiemelt ablakokkal a helyi felhasználó asztali számítógépén. @@ -79,6 +80,7 @@ A skálázási tényezőnek 100%-nak vagy többnek kell lennie.</translation> <translation id="131353325527891113">Felhasználónevek megjelenítése a bejelentkezési képernyőn</translation> +<translation id="1325295456374328159">A felhasználói munkamenetben engedélyezett nyelvek konfigurálása</translation> <translation id="1327466551276625742">Hálózati konfigurációs értesítés offline állapotban való megjelenítésének engedélyezése</translation> <translation id="1330145147221172764">Képernyő-billentyűzet engedélyezése</translation> <translation id="13356285923490863">A szabály neve</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">A Symantec Corporation régi PKI-infrastruktúrájának megbízhatóként való elfogadása</translation> <translation id="1393485621820363363">Eszközökhöz kötött engedélyezett vállalati nyomtatók</translation> <translation id="1397855852561539316">Alapértelmezett keresési szolgáltató javasolt URL-je</translation> +<translation id="1424081297104898791">Lehetővé teszi annak szabályozását, hogy hol használhatók a Fejlesztői eszközök. + + Ha a házirend beállítása „DeveloperToolsDisallowedForForceInstalledExtensions” (az érték 0, amely az alapértelmezett érték vállalati felhasználók esetében), akkor a Fejlesztői eszközöket és a JavaScript konzolját általánosságban el lehet érni, de a vállalati házirendek által telepített bővítmények esetében egyikhez sem lehet hozzáférni. + Ha a házirend beállítása „DeveloperToolsAllowed” (az érték 1, amely az alapértelmezett érték nem felügyelt felhasználók esetében), akkor a Fejlesztői eszközök és a JavaScript konzolja minden esetben hozzáférhető és használható, beleértve a vállalati házirendek által telepített bővítmények esetét is. + Ha a házirend beállítása „DeveloperToolsDisallowed” (az érték 2), akkor a Fejlesztői eszközökhöz nem lehet hozzáférni, és a webhelyek elemeit nem lehet megvizsgálni. Minden olyan billentyűparancs, menü és helyi menü le lesz tiltva, amellyel a Fejlesztői eszközöket vagy a JavaScript-konzolt meg lehet nyitni. + Ha a régi DeveloperToolsDisabled házirend beállítása igaz, akkor a böngésző figyelmen kívül hagyja ezt a házirendet, és letiltja a Fejlesztői eszközöket.</translation> <translation id="1426410128494586442">Igen</translation> <translation id="1427655258943162134">Proxyszerver címe vagy URL-je</translation> <translation id="1435659902881071157">Eszközszintű hálózatbeállítás</translation> @@ -203,6 +211,7 @@ <translation id="1803646570632580723">Az indítóban megjeleníteni kívánt rögzített alkalmazások listája</translation> <translation id="1808715480127969042">Cookie-k letiltása ezeken a webhelyeken</translation> <translation id="1810261428246410396">Az azonnali internetmegosztás használatának engedélyezése</translation> +<translation id="1826282708349731794">Azt szabályozza, hogy a Chrome Szoftvereltávolító eszköz hogyan jelenti az adatokat a Google-nak</translation> <translation id="1827523283178827583">Használjon fix proxyszervereket</translation> <translation id="1843117931376765605">Frissítési arány felhasználói irányelvekhez</translation> <translation id="1844620919405873871">Beállítja a gyorsfeloldással kapcsolatos házirendeket.</translation> @@ -589,6 +598,7 @@ A házirend nem befolyásolja, hogy a felhasználók beállíthatnak-e nyomtatókat saját eszközeiken. A házirend célja, hogy kiegészítse az egyéni felhasználók nyomtatóbeállításait. </translation> <translation id="2633084400146331575">Hangos visszajelzések engedélyezése</translation> +<translation id="2640843331263301324">Engedélyezi a Chrome Szoftvereltávolító eszközt Windows alatt</translation> <translation id="2646290749315461919">Lehetővé teszi, hogy megadja azon weboldalak listáját, amelyek követhetik a felhasználók tartózkodási helyét. A felhasználók tartózkodási helyének követése lehet alapértelmezetten engedélyezett, alapértelmezetten tiltott, vagy megkérdezheti a felhasználót minden alkalommal, amikor egy webhely a tartózkodási helyét szeretné tudni. Ha a házirend konfigurálatlanul marad, a rendszer az "AskGeolocation" értéket használja, amelyet a felhasználó módosíthat.</translation> <translation id="2647069081229792812">Könyvjelzők szerkesztésének engedélyezése vagy letiltása</translation> <translation id="2650049181907741121">Az a művelet, amelyet akkor végez a rendszer, ha a felhasználó lezárja a fedelet</translation> @@ -652,13 +662,6 @@ Ha használatban van a házirend, csak a házirendben lévő értékeknek megfelelő azonosítójú nyomtatók állnak a felhasználó rendelkezésére. Az azonosítóknak meg kell felelniük a(z) <ph name="DEVICE_PRINTERS_POLICY" /> házirend fájljában meghatározott „id” vagy „guid” mezőknek. </translation> -<translation id="2844404652289407061">Lehetővé teszi az Érintéssel keresés 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 az Érintéssel keresés funkciót, és saját maga döntheti el, hogy be- vagy kikapcsolja-e azt. - - Amennyiben letiltja ezt a beállítást, az Érintéssel keresés funkció egyáltalán nem lesz használható. - - Ha nem határozza meg ezt a beállítást, az ugyanolyan, mintha aktiválná (lásd feljebb).</translation> <translation id="285480231336205327">Nagy kontrasztú mód engedélyezése</translation> <translation id="2854919890879212089">Azt eredményezi, hogy a(z) <ph name="PRODUCT_NAME" /> a rendszer alapértelmezett nyomtatóját használja alapértelmezett választásként a nyomtatási előnézetben a legutóbb használt nyomtató helyett. @@ -1209,12 +1212,14 @@ <translation id="4554651132977135445">Felhasználói házirend visszacsatolás-feldolgozási módja</translation> <translation id="4555850956567117258">A felhasználó távoli tanúsításának engedélyezése</translation> <translation id="4557134566541205630">Alapértelmezett keresőszolgáltató új lap oldal URL-címe</translation> +<translation id="4567137030726189378">A Fejlesztői eszközök használatának engedélyezése</translation> <translation id="4600786265870346112">Nagy egérmutató engedélyezése</translation> <translation id="4604931264910482931">Natív üzenetkezelő tiltólista konfigurálása</translation> <translation id="4613508646038788144">Ha a házirend értéke „hamis”, akkor a harmadik felek szoftverei számára engedélyezve lesz a futtatható kódok Chrome-folyamatokba történő beszúrása. Ha a házirend nincs beállítva, vagy értéke „igaz”, akkor a harmadik felek szoftverei nem tudnak beszúrni futtatható kódot a Chrome-folyamatokba.</translation> <translation id="4617338332148204752">A metacímkék ellenőrzésének kihagyása a következőben: <ph name="PRODUCT_FRAME_NAME" />.</translation> <translation id="4625915093043961294">Bővítménytelepítési kivétellista beállítása</translation> <translation id="4632343302005518762">A felsorolt tartalomtípusok kezelésének engedélyezése a(z) <ph name="PRODUCT_FRAME_NAME" /> számára</translation> +<translation id="4632566332417930481">A Fejlesztői eszközök használatának letiltása a vállalati házirendek által telepített bővítmények esetében, és a használat engedélyezése más esetekben</translation> <translation id="4633786464238689684">A legfelső sor billentyűinek alapértelmezett viselkedését módosítja funkciógombokra. Ha a házirend értéke igaz, akkor a billentyűzet legfelső sorának billentyűi alapértelmezés szerint a funkciógombok feladatát fogják ellátni. A keresőbillentyűt kell megnyomni, hogy ismét médiabillentyűkként szolgáljanak. @@ -1466,9 +1471,13 @@ 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="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> <translation id="5457924070961220141">Lehetővé teszi az alapértelmezett HTML-megjelenítő konfigurálását, ha a(z) <ph name="PRODUCT_FRAME_NAME" /> telepítve van. Ha a házirend beállítatlanul marad, akkor az alapértelmezett beállítás az, hogy a gazdagép böngészője végzi a megjelenítést, de a felhasználó ezt opcionálisan felülbírálhatja, és megjelenítheti a HTML oldalakat alapértelmezés szerint a(z) <ph name="PRODUCT_FRAME_NAME" /> segítségével.</translation> +<translation id="5459155981813668716">Konfigurálja a nyelveket, amelyeken a <ph name="PRODUCT_OS_NAME" /> megjeleníthető. + + Ha beállítja a házirendet, a felhasználó kizárólag a házirend által megadott nyelvek egyikén használhatja a <ph name="PRODUCT_OS_NAME" /> böngészőt. Ha a házirend nincs beállítva, vagy ha üres listára van állítva, akkor a <ph name="PRODUCT_OS_NAME" /> az összes támogatott nyelven megjeleníthető. Ha a házirend érvénytelen értékeket tartalmazó listára van állítva, a böngésző figyelmen kívül hagyja az összes érvénytelen értéket. Ha a felhasználó korábban olyan nyelvre állította be a <ph name="PRODUCT_OS_NAME" /> böngészőt, amelyet a házirend nem engedélyez, akkor a megjelenítési nyelv valamelyik engedélyezett nyelvre változik a felhasználó következő bejelentkezésekor. Ha a felhasználó megadott előnyben részesített nyelveket, és ezen előnyben részesített nyelvek egyikét engedélyezi a házirend, akkor a <ph name="PRODUCT_OS_NAME" /> az adott nyelvre vált. Máskülönben a <ph name="PRODUCT_OS_NAME" /> a házirend által megadott első érvényes értékre, illetve – amennyiben a házirend csak érvénytelen bejegyzéseket tartalmaz – a tartalék nyelvi beállításra (jelenleg en-US) vált.</translation> <translation id="5464816904705580310">Felügyelt felhasználók beállításainak konfigurálása.</translation> <translation id="546726650689747237">Képernyő elsötétítésének késleltetése hálózati áramról való működés során</translation> <translation id="5469484020713359236">Lehetővé teszi, hogy megadja az URL-minták egy olyan listáját, amely meghatározza, mely webhelyek állíthatnak be cookie-kat. Ha ez a házirend beállítatlanul marad, akkor a globális alapértelmezett érték kerül felhasználásra valamennyi webhelyre vonatkozóan; vagy -- ha be van állítva -- a "DefaultCookiesSetting" házirendből, vagy pedig a felhasználó személyes konfigurációjából.</translation> @@ -1582,7 +1591,6 @@ Ha nem állítja be ezt a házirendet, akkor a hangos visszajelzés le lesz tiltva a bejelentkezési képernyő első megjelenítésekor. A felhasználók bármikor engedélyezhetik vagy letilthatják a hangos visszajelzést, és annak állapota mindegyik felhasználó esetében megmarad a bejelentkezési képernyőn.</translation> <translation id="5868414965372171132">Felhasználói szintű hálózatbeállítás</translation> -<translation id="588135807064822874">Érintéssel keresés engedélyezése</translation> <translation id="5883015257301027298">Alapértelmezett cookie-beállítások</translation> <translation id="5887414688706570295">Beállítja a távoli hozzáférésű gazdagépek által használt TalkGadget előtagot, és megakadályozza, hogy a felhasználók megváltoztassák azt. @@ -1687,6 +1695,7 @@ <translation id="6036523166753287175">Engedélyezze a tűzfalon való átjárást a távoli elérésű szerverekről</translation> <translation id="6070667616071269965">Billentyűzetelrendezések az eszköz bejelentkezési képernyőjén</translation> <translation id="6074963268421707432">Egy webhely sem jeleníthet meg asztali értesítéseket</translation> +<translation id="6074964551275531965">A frissítési értesítések időtartamának beállítása</translation> <translation id="6076099373507468537">Azoknak az USB-eszközöknek a listáját határozza meg, amelyeknek megengedett a kernelmódú illesztőprogramjukról való leválasztása annak érdekében, hogy a chrome.usb API-n keresztül, közvetlenül valamilyen internetes alkalmazásban lehessen használni őket. A bejegyzéseket az adott hardver azonosítására szolgáló, az USB-gyártóazonosítóból és az USB-termékazonosítóból álló párok alkotják. Ha a házirend nincs beállítva, akkor a leválasztható USB-eszközök listája üres.</translation> @@ -1759,6 +1768,11 @@ <translation id="6392973646875039351">Engedélyezi a(z) <ph name="PRODUCT_NAME" /> automatikus kitöltés funkcióját, és lehetővé teszi a felhasználók számára az internetes űrlapok korábban tárolt adatokkal, például a címmel vagy a bankkártyaadatokkal történő automatikus kitöltését. 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="6394350458541421998">Ez a házirend többé nincs jelen a <ph name="PRODUCT_OS_NAME" /> 29-es verziójától kezdve. Kérjük, használja helyette a PresentationScreenDimDelayScale házirendet.</translation> <translation id="6401669939808766804">Felhasználó kijelentkeztetése</translation> +<translation id="6412477120967771054">Ha a beállítás értéke hamis, a Chrome Szoftvereltávolító eszköz nem tudja ellenőrizni a rendszert kéretlen szoftverek keresése és megtisztítása céljából. A Chrome Szoftvereltávolító eszköz kézi indítása a chrome://settings/cleanup oldalon le van tiltva. + + Ha az érték igaz, vagy ha nincs beállítva, a Chrome Szoftvereltávolító eszköz 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 Szoftvereltávolító eszköz kézi indítása a chrome://settings oldalon engedélyezve van. + + Ez a házirend nem áll rendelkezésre olyan Windows-példányokon, amelyek nem csatlakoztak <ph name="MS_AD_NAME" />-domainhez.</translation> <translation id="6417861582779909667">Lehetővé teszi olyan URL-minták listájának megadását, amelyek meghatározzák azokat a webhelyeket, amelyek nem állíthatnak be cookie-kat. Ha a házirend konfigurálatlanul marad, a rendszer a globális alapértelmezés szerinti értéket használja a "DefaultCookiesSetting" házirendből (ha az be van állítva), vagy egyébként a felhasználó személyes konfigurációjából.</translation> <translation id="6426205278746959912">Az Android-alkalmazások nem kényszeríthetők proxy használatára. A proxybeállítások bizonyos része hozzáférhető az Android-alkalmazások számára is, amelyeket azután saját belátásuk szerint vesznek figyelembe: @@ -1779,6 +1793,13 @@ Ha vezérelni szeretné, mely webhelyeken van engedélyezve a Flash futtatása, tekintse meg a „DefaultPluginsSetting”, „PluginsAllowedForUrls” és a „PluginsBlockedForUrls” házirendeket. Ha ez a beállítás ki van kapcsolva vagy nincs beállítva, előfordulhat, hogy az egyéb eredetű vagy kisebb Flash-tartalmakat a rendszer letiltja.</translation> +<translation id="6535639183431116351">Ez a házirend megszűnt az M68-as verzióban; használja helyette a DeveloperToolsAvailability házirendet. + + Letiltja a Fejlesztői eszközöket és a JavaScript-konzolt. + + Ha engedélyezi ezt a beállítást, akkor a Fejlesztői eszközökhöz nem férhet hozzá, illetve a webhelyek elemeit nem ellenőrizheti a jövőben. Minden olyan billentyűparancs, menü vagy helyi menü le lesz tiltva, amely megnyitná a Fejlesztői eszközöket vagy a JavaScript-konzolt. + + Ha letiltja vagy nem konfigurálja ezt a beállítást, akkor a felhasználó használhatja a Fejlesztői eszközöket és a JavaScript-konzolt.</translation> <translation id="653608967792832033">Az a felhasználói bevitel nélkül eltöltött idő, amely után a rendszer lezárja a képernyőt, ha akkumulátorról működik. Ha a házirendet nullánál nagyobb értékre állítják, meghatározza azt az időtartamot, amilyen hosszan a felhasználó tétlen maradhat, mielőtt a(z) <ph name="PRODUCT_OS_NAME" /> lezárja a képernyőt. @@ -1844,11 +1865,6 @@ <translation id="6689792153960219308">Hardverállapot jelentése</translation> <translation id="6698071416141001300">A jelszóvédelemmel rendelkező, veszélyeztetett fiók megjelölését aktiválja a jelszó újrafelhasználása</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="6702257826895463228">Engedélyezi a webhelyek számára, hogy egyszerre navigáljanak és nyissanak meg előugró ablakokat. - - A teljes magyarázatot lásd a következő linken: https://www.chromestatus.com/features/5675755719622656. - Ha engedélyezve van ez a házirend, a webhelyeknek engedélyezve van, hogy egyszerre navigáljanak és nyissanak meg új ablakokat és lapokat. - Ha le van tiltva ez a házirend, illetve nincs beállítva, a webhelyeknek le van tiltva, hogy egyszerre navigáljanak és nyissanak meg új ablakokat és lapokat.</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. Ha a házirend le van tiltva, vagy ha nincs beállítva, a rendszer kizárólag a normál helyi profilokat használja. @@ -2194,6 +2210,7 @@ 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="7643883929273267746">A <ph name="PRODUCT_NAME" /> böngészőben látható fiókok korlátozása</translation> <translation id="7651739109954974365">Meghatározza, hogy engedélyezett legyen-e az adatbarangolás az eszköz esetében. Ha a beállítás igaz, akkor az adatbarangolás engedélyezett. Ha nincs beállítva, vagy a beállítás hamis, akkor az adatbarangolás nem érhető el.</translation> +<translation id="7673194325208122247">Időtartam (ezredmásodperc)</translation> <translation id="7683777542468165012">Szabályok dinamikus frissítése</translation> <translation id="7694807474048279351">Automatikus újraindítás ütemezése egy <ph name="PRODUCT_OS_NAME" />-frissítés alkalmazása után. @@ -2319,6 +2336,13 @@ <translation id="7961779417826583251">A tanúsítványok átláthatósága keretrendszer betartatásának kikapcsolása a régi tanúsítványkibocsátók adott listájánál</translation> <translation id="7974114691960514888">Ez a házirend már nem támogatott. Távoli ügyfélhez való csatlakozáskor lehetővé teszi a STUN és továbbítószerverek használatát. Ha ez a beállítás engedélyezett, akkor ez a gép láthatja a távoli szervereket, és csatlakozni is tud hozzájuk, még akkor is, ha tűzfal választja el őket. Amennyiben ez a lehetőség ki van kapcsolva, és a tűzfal szűri a kimenő UDP-kapcsolatokat, akkor ez a gép csak a helyi hálózaton belül található szerverekhez tud csatlakozni.</translation> <translation id="7976157349247117979">A(z) <ph name="PRODUCT_NAME" /> céljának neve</translation> +<translation id="7977445800390854860">Ha nincs beállítva, és a Chrome Szoftvereltávolító eszköz kéretlen szoftvert észlel, jelentheti az ellenőrzés metaadatait a Google-nak a SafeBrowsingExtendedReportingEnabled házirend beállításának megfelelően. A Chrome Szoftvereltávolító eszköz ekkor megkérdezi a felhasználót, hogy szeretné-e eltávolítani a kéretlen szoftvert. A felhasználó dönthet úgy, hogy megosztja az eltávolítás eredményeit a Google-lal, segítve a kéretlen szoftverek észlelését a jövőben. Az eredmények fájlok metaadatait és beállításkulcsokat tartalmaz a Chrome Adatvédelmi tanulmányában leírtaknak megfelelően. + + Ha hamis értékre van állítva, és a Chrome Szoftvereltávolító eszköz kéretlen szoftvert észlel, nem jelenti az ellenőrzés metaadatait a Google-nak. Ez a beállítás felülbírálja a SafeBrowsingExtendedReportingEnabled házirend beállítását. A Chrome Szoftvereltávolító eszköz megkérdezi a felhasználót, hogy szeretné-e eltávolítani a kéretlen szoftvert. A böngésző nem jelenti az eltávolítási eredményeket a Google-nak, és erre a felhasználónak sem nyílik lehetősége. + + Ha igaz értékre van állítva, és a Chrome Szoftvereltávolító eszköz kéretlen szoftvert észlel, jelentheti az ellenőrzés metaadatait a Google-nak a SafeBrowsingExtendedReportingEnabled házirend beállításának megfelelően. A Ha nincs beállítva, és a Chrome Szoftvereltávolító eszköz kéretlen szoftvert észlel, jelentheti az ellenőrzés metaadatait a Google-nak megkérdezi a felhasználót, hogy szeretné-e eltávolítani a kéretlen szoftvert. A böngésző jelenti az eltávolítás eredményét a Google-nak, és ezt a felhasználó nem tudja megakadályozni. + + Ez a házirend nem áll rendelkezésre olyan Windows-példányokon, amelyek nem csatlakoztak <ph name="MS_AD_NAME" />-domainhez.</translation> <translation id="7978060394348264922"> Tekintse át az IsolateOrigins házirend beállításait, és annak érdekében, hogy az izoláció is megvalósuljon, és a felhasználók számára is korlátozottan @@ -2442,6 +2466,7 @@ <translation id="8300455783946254851">Ha igaz értékre van állítva, letiltja a Google Drive szinkronizálását a <ph name="PRODUCT_OS_NAME" /> Fájlok alkalmazásában mobiladat-kapcsolat használata esetén. Ebben az esetben az adatok szinkronizálása a Google Drive szolgáltatással csak Wi-Fi vagy Ethernet kapcsolat használatakor történik meg. Ha nincs beállítva, vagy ha hamis értékre van állítva, akkor a felhasználók mobiladat-kapcsolaton keresztül is átvihetnek fájlokat a Google Drive szolgáltatásba.</translation> +<translation id="8300992833374611099">Annak szabályozása, hogy hol lehet használni a Fejlesztői eszközöket</translation> <translation id="8312129124898414409">Lehetővé teszi annak beállítását, hogy a webhelyek használhatják-e a kulcslétrehozás funkciót. A kulcslétrehozás funkció használatát egyszerre lehet engedélyezni vagy letiltani az összes webhelynél. Ha a házirend beállítatlanul marad, a rendszer a „BlockKeygen” értéket használja, és ezt a felhasználó módosíthatja.</translation> @@ -2670,6 +2695,11 @@ <translation id="9035964157729712237">A feketelista alól kivételt képező bővítményazonosítók.</translation> <translation id="9042911395677044526">Lehetővé teszi a hálózati konfiguráció push módszerrel történő alkalmazását <ph name="PRODUCT_OS_NAME" /> eszközre. A hálózati konfiguráció a JSON formátumú karakterlánc által meghatározott Open Network Configuration formában leírt karakterlánc, amely a következő helyen van meghatározva: <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Megadja, hogy a videotevékenység hatással van-e az energiagazdálkodásra</translation> +<translation id="9085839450090699752">Lehetővé teszi azon időtartam megadását (ezredmásodpercben), amelynek során a felhasználó látja az értesítést, hogy a <ph name="PRODUCT_NAME" /> böngészőt vagy a <ph name="PRODUCT_OS_NAME" />-eszközt újra kell indítani egy függőben lévő frissítés alkalmazásához. + + Ezen időtartam során a felhasználó ismétlődő értesítést kap a frissítés szükségességéről. <ph name="PRODUCT_OS_NAME" />-eszközök esetében az újraindítási értesítés a tálcán jelenik meg, amikor a rendszer frissítést talál. Az értesítés színe megváltozik az értesítési időtartam felének eltelte után, majd újra megváltozik a teljes értesítési időtartam letelte után. A <ph name="PRODUCT_NAME" /> böngésző esetében az értesítési időtartam harmadának letelte után megváltozik az alkalmazásmenü, jelezve, hogy újraindításra van szükség. Az értesítés színe megváltozik az értesítési időtartam kétharmadának eltelte után, majd újra megváltozik a teljes értesítési időtartam letelte után. Az <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> házirend által engedélyezett további értesítések ugyanezt a módszert követik a böngésző esetében. + + Ha a házirend nincs beállítva, akkor a <ph name="PRODUCT_OS_NAME" />-eszközök esetében az alapértelmezett érték 345 600 000 ezredmásodperc (négy nap), a böngésző esetében pedig 604 800 000 ezredmásodperc (egy hét).</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="9096086085182305205">Azonosítási szerverek engedélyezési listája</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 8ab7c27d..1d21f4f 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -27,6 +27,7 @@ Jika kebijakan ini disetel, layar login akan selalu ditampilkan dalam lokal yang diberikan oleh nilai pertama dari kebijakan ini (kebijakan didefinisikan sebagai daftar untuk kompatibilitas yang diteruskan). Jika kebijakan ini tidak disetel atau disetel ke daftar kosong, layar login akan ditampilkan dalam lokal sesi pengguna terakhir. Jika kebijakan ini disetel ke nilai lokal yang tidak valid, layar login akan ditampilkan di lokal alternatif (saat ini, en-US).</translation> <translation id="1062011392452772310">Mengaktifkan pengesahan jarak jauh untuk perangkat tersebut</translation> <translation id="1062407476771304334">Ganti</translation> +<translation id="1079801999187584280">Larang penggunaan Developer Tools</translation> <translation id="109166998561583554">Pemicu laporan perlindungan sandi pada akun yang berisiko</translation> <translation id="1093082332347834239">Jika setelan ini diaktifkan, host bantuan jarak jauh akan dijalankan dalam proses dengan izin <ph name="UIACCESS_PERMISSION_NAME" />. Hal ini akan memungkinkan pengguna jarak jauh untuk berinteraksi dengan jendela yang berada jauh di desktop pengguna lokal. @@ -79,6 +80,7 @@ Faktor skala harus 100% atau lebih.</translation> <translation id="131353325527891113">Tampilkan nama pengguna pada layar masuk</translation> +<translation id="1325295456374328159">Konfigurasi lokal yang diizinkan dalam sesi pengguna</translation> <translation id="1327466551276625742">Aktifkan permintaan konfigurasi jaringan saat offline</translation> <translation id="1330145147221172764">Aktifkan keyboard di layar</translation> <translation id="13356285923490863">Nama Kebijakan</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Apakah untuk mengaktifkan kepercayaan pada Infrastruktur PKI Lama milik Symantec Corporation</translation> <translation id="1393485621820363363">Mengaktifkan printer perangkat perusahaan</translation> <translation id="1397855852561539316">URL saran penyedia penelusuran default</translation> +<translation id="1424081297104898791">Memungkinkan Anda mengontrol lokasi penggunaan Developer Tools. + + Jika kebijakan ini ditetapkan ke 'DeveloperToolsDisallowedForForceInstalledExtensions' (nilai 0, yang merupakan nilai default untuk pengguna perusahaan), Developer Tools dan konsol JavaScript secara umum dapat diakses, namun tidak dapat diakses dalam konteks ekstensi yang diinstal oleh kebijakan perusahaan. + Jika kebijakan ini ditetapkan ke 'DeveloperToolsAllowed' (nilai 1, yang merupakan nilai default untuk pengguna tidak terkelola), Developer Tools dan konsol JavaScript dapat diakses dan digunakan dalam semua konteks, termasuk dalam konteks ekstensi yang diinstal oleh kebijakan perusahaan. + Jika kebijakan ini ditetapkan ke 'DeveloperToolsDisallowed' (nilai 2), Developer Tools tidak dapat diakses dan elemen situs tidak dapat diperiksa lagi. Semua pintasan keyboard dan semua menu atau entri menu konteks untuk membuka Developer Tools atau Konsol JavaScript akan dinonaktifkan. + Jika kebijakan lama DeveloperToolsDisabled ditetapkan ke true, nilai untuk kebijakan ini diabaikan dan Developer Tools dinonaktifkan.</translation> <translation id="1426410128494586442">Ya</translation> <translation id="1427655258943162134">Alamat atau URL server proxy</translation> <translation id="1435659902881071157">Konfigurasi jaringan tingkat perangkat</translation> @@ -204,6 +212,7 @@ <translation id="1803646570632580723">Daftar aplikasi tersemat untuk ditampilkan pada peluncur</translation> <translation id="1808715480127969042">Cekal cookie di situs ini</translation> <translation id="1810261428246410396">Izinkan Tethering Instan untuk digunakan.</translation> +<translation id="1826282708349731794">Mengontrol cara Pembersih Chrome melaporkan data ke Google</translation> <translation id="1827523283178827583">Gunakan server proxy tetap</translation> <translation id="1843117931376765605">Segarkan peringkat untuk kebijakan pengguna</translation> <translation id="1844620919405873871">Mengonfigurasi kebijakan terkait buka kunci cepat.</translation> @@ -417,7 +426,7 @@ Kebijakan ini memungkinkan administrator memberikan konfigurasi printer untuk pengguna. - <ph name="PRINTER_DISPLAY_NAME" /> dan <ph name="PRINTER_DESCRIPTION" /> string formulir kosong yang dapat disesuaikan untuk mempermudah pemilihan printer. Info <ph name="PRINTER_MANUFACTURER" /> dan <ph name="PRINTER_MODEL" /> diberikan agar pengguna akhir mudah mengidentifikasi printer. Keduanya mewakili produsen dan model printer. <ph name="PRINTER_URI" /> harus berupa alamat yang dapat dijangkau dari komputer klien, termasuk <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, dan <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> bersifat opsional. Jika tersedia, akan digunakan untuk membantu menghapus duplikat printer <ph name="ZEROCONF_DISCOVERY" />. + <ph name="PRINTER_DISPLAY_NAME" /> dan <ph name="PRINTER_DESCRIPTION" /> string format bebas yang dapat disesuaikan untuk mempermudah pemilihan printer. Info <ph name="PRINTER_MANUFACTURER" /> dan <ph name="PRINTER_MODEL" /> diberikan agar pengguna akhir mudah mengidentifikasi printer. Keduanya mewakili produsen dan model printer. <ph name="PRINTER_URI" /> harus berupa alamat yang dapat dijangkau dari komputer klien, termasuk <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, dan <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> bersifat opsional. Jika tersedia, akan digunakan untuk membantu menghapus duplikat printer <ph name="ZEROCONF_DISCOVERY" />. <ph name="PRINTER_EFFECTIVE_MODEL" /> harus cocok dengan salah satu string yang mewakili printer <ph name="PRODUCT_NAME" /> yang didukung. String ini akan digunakan untuk mengidentifikasi dan menginstal PPD yang sesuai untuk printer. Informasi selengkapnya dapat ditemukan di https://support.google.com/chrome?p=noncloudprint. @@ -425,7 +434,7 @@ Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat. Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang diberikan oleh tiap pengguna. - Untuk perangkat yang dikelola Active Directory, kebijakan mendukung perluasan <ph name="MACHINE_NAME_VARIABLE" /> ke nama mesin Active Directory atau substring-nya. Misalnya, jika nama mesin <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> akan diganti dengan 4 karakter yang dimulai setelah posisi keenam, yaitu <ph name="MACHINE_NAME_PART_EXAMPLE" />. Perhatikan bahwa posisinya mulai dari nol. + Untuk perangkat yang dikelola Active Directory, kebijakan ini mendukung perluasan <ph name="MACHINE_NAME_VARIABLE" /> ke nama mesin Active Directory atau substring-nya. Misalnya, jika nama mesin <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> akan diganti dengan 4 karakter yang dimulai setelah posisi keenam, yaitu <ph name="MACHINE_NAME_PART_EXAMPLE" />. Perhatikan bahwa posisinya mulai dari nol. </translation> <translation id="2294382669900758280">Pemutaran video di aplikasi Android tidak dipertimbangkan, meski kebijakan ini disetel ke <ph name="TRUE" />.</translation> <translation id="2298647742290373702">Mengonfigurasi halaman Tab Baru di <ph name="PRODUCT_NAME" />.</translation> @@ -584,6 +593,7 @@ Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat. Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang diberikan oleh tiap pengguna. </translation> <translation id="2633084400146331575">Aktifkan masukan lisan</translation> +<translation id="2640843331263301324">Mengaktifkan Pembersih Chrome di Windows</translation> <translation id="2646290749315461919">Memungkinkan Anda mengatur apakah situs web diizinkan untuk melacak lokasi fisik pengguna. Melacak lokasi fisik pengguna dapat diizinkan secara default, ditolak secara default, atau pengguna dapat ditanya setiap kali sebuah situs web meminta lokasi fisik. Jika kebijakan ini dibiarkan tidak disetel, 'AskGeolocation' akan digunakan dan pengguna dapat mengubahnya.</translation> <translation id="2647069081229792812">Aktifkan atau nonaktifkan pengeditan bookmark</translation> <translation id="2650049181907741121">Tindakan yang akan diambil saat pengguna menutup penutupnya</translation> @@ -647,13 +657,6 @@ Jika kebijakan ini digunakan, hanya printer dengan id yang cocok dengan nilai di kebijakan ini yang tersedia bagi pengguna. Id harus sesuai dengan kolom "id" atau "guid" dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Mengaktifkan ketersediaan Sentuh untuk Menelusuri di tampilan konten <ph name="PRODUCT_NAME" />. - - Jika Anda mengaktifkan setelan ini, Sentuh untuk Menelusuri akan tersedia untuk pengguna dan mereka dapat memilih untuk mengaktifkan atau menonaktifkannya. - - Jika Anda menonaktifkan setelan ini, Sentuh untuk Menelusuri akan dinonaktifkan sepenuhnya. - - Jika kebijakan ini tidak disetel, hal ini setara dengan diaktifkan, lihat deskripsi di atas.</translation> <translation id="285480231336205327">Aktifkan mode kontras tinggi</translation> <translation id="2854919890879212089">Membuat <ph name="PRODUCT_NAME" /> menggunakan printer default sistem sebagai pilihan default pada Pratinjau Cetak, bukan printer yang terakhir kali digunakan. @@ -1203,12 +1206,14 @@ <translation id="4554651132977135445">Mode pemrosesan loopback kebijakan pengguna</translation> <translation id="4555850956567117258">Mengaktifkan pengesahan jarak jauh bagi pengguna</translation> <translation id="4557134566541205630">URL halaman tab baru penyedia penelusuran default</translation> +<translation id="4567137030726189378">Izinkan penggunaan Developer Tools</translation> <translation id="4600786265870346112">Aktifkan kursor besar</translation> <translation id="4604931264910482931">Konfigurasikan daftar hitam perpesanan asli</translation> <translation id="4613508646038788144">Jika kebijakan disetel ke false, maka software pihak ketiga akan diizinkan untuk melakukan injeksi kode yang dapat dieksekusi ke dalam proses Chrome. Jika kebijakan tidak disetel atau disetel ke true, maka software pihak ketiga akan dicegah melakukan injeksi kode yang dapat dieksekusi ke dalam proses Chrome.</translation> <translation id="4617338332148204752">Lewati pemeriksaan tag meta pada <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Mengonfigurasi daftar putih pemasangan ekstensi</translation> <translation id="4632343302005518762">Izinkan <ph name="PRODUCT_FRAME_NAME" /> menangani jenis konten yang tercantum</translation> +<translation id="4632566332417930481">Larang penggunaan Developer Tools pada ekstensi yang diinstal oleh kebijakan perusahaan, izinkan penggunaan Developer Tools dalam konteks lainnya</translation> <translation id="4633786464238689684">Mengubah perilaku default tombol baris teratas ke tombol fungsi. Jika kebijakan ini disetel ke true, tombol baris teratas keyboard akan membuat perintah tombol fungsi per default. Tombol penelusuran harus ditekan untuk mengembalikan perilakunya ke tombol media. @@ -1460,9 +1465,13 @@ 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="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> <translation id="5457924070961220141">Memungkinkan Anda mengonfigurasi perender HTML default saat <ph name="PRODUCT_FRAME_NAME" /> dipasang. Setelan default yang digunakan ketika kebijakan ini tidak disetel adalah mengizinkan browser host melakukan rendering, tetapi Anda dapat menimpanya secara opsional dan membiarkan <ph name="PRODUCT_FRAME_NAME" /> merender halaman HTML secara default.</translation> +<translation id="5459155981813668716">Mengonfigurasi lokal yang digunakan untuk menampilkan <ph name="PRODUCT_OS_NAME" />. + + Jika kebijakan ini ditetapkan, pengguna hanya dapat mengonfigurasi <ph name="PRODUCT_OS_NAME" /> untuk ditampilkan di salah satu lokal yang ditentukan oleh kebijakan tersebut. Jika kebijakan ini tidak ditetapkan atau ditetapkan ke daftar kosong, <ph name="PRODUCT_OS_NAME" /> dapat ditampilkan di semua lokal yang didukung. Jika kebijakan ini ditetapkan ke daftar yang memuat nilai yang tidak valid, maka semua nilai yang tidak valid akan diabaikan. Jika sebelumnya pengguna telah mengonfigurasi <ph name="PRODUCT_OS_NAME" /> untuk ditampilkan dalam bahasa yang tidak diizinkan oleh kebijakan ini, lokal tampilan akan dialihkan ke lokal yang diizinkan saat berikutnya pengguna login. Jika pengguna telah mengonfigurasi beberapa lokal pilihan, dan salah satu lokal pilihan itu diizinkan oleh kebijakan ini, maka <ph name="PRODUCT_OS_NAME" /> akan dialihkan ke lokal tersebut. Jika tidak, <ph name="PRODUCT_OS_NAME" /> akan dialihkan ke nilai valid pertama yang ditentukan oleh kebijakan ini, atau ke lokal fallback (saat ini en-US), jika kebijakan ini hanya memuat entri yang tidak valid.</translation> <translation id="5464816904705580310">Mengonfigurasi setelan untuk pengguna yang dikelola.</translation> <translation id="546726650689747237">Penundaan peredupan layar saat menggunakan daya AC</translation> <translation id="5469484020713359236">Memungkinkan Anda menyetel daftar pola url yang menentukan situs yang diizinkan untuk menyetel cookie. Jika kebijakan ini dibiarkan tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultCookiesSetting', jika disetel, atau konfigurasi pribadi pengguna.</translation> @@ -1576,7 +1585,6 @@ Jika kebijakan ini tidak disetel, masukan yang diucapkan akan dinonaktifkan saat layar masuk ditampilkan untuk pertama kali. Pengguna dapat mengaktifkan atau menonaktifkan masukan yang diucapkan kapan saja dan statusnya di layar masuk bersifat permanen antar pengguna.</translation> <translation id="5868414965372171132">Konfigurasi jaringan tingkat pengguna</translation> -<translation id="588135807064822874">Mengaktifkan Sentuh untuk Menelusuri</translation> <translation id="5883015257301027298">Setelan cookie default</translation> <translation id="5887414688706570295">Mengonfigurasi awalan TalkGadget yang akan digunakan oleh hosting akses jarak jauh dan mencegah pengguna mengubahnya. @@ -1680,6 +1688,7 @@ <translation id="6036523166753287175">Mengaktifkan firewall traversal dari host akses jarak jauh</translation> <translation id="6070667616071269965">Tata letak keyboard layar login perangkat</translation> <translation id="6074963268421707432">Jangan izinkan situs apa pun menampilkan pemberitahuan desktop</translation> +<translation id="6074964551275531965">Setel periode waktu untuk notifikasi update</translation> <translation id="6076099373507468537">Menjelaskan daftar perangkat USB yang diizinkan untuk dilepas dari driver kernelnya, agar dapat langsung digunakan melalui API chrome.usb dalam aplikasi web. Entri berupa pasangan Pengenal Vendor USB dan Pengenal Produk untuk mengidentifikasi hardware tertentu. Jika kebijakan ini tidak dikonfigurasi, daftar perangkat USB yang dapat dilepas akan kosong.</translation> @@ -1752,6 +1761,11 @@ <translation id="6392973646875039351">Mengaktifkan fitur IsiOtomatis <ph name="PRODUCT_NAME" /> dan memungkinkan pengguna melengkapi formulir web secara otomatis menggunakan informasi yang tersimpan sebelumnya seperti alamat atau informasi kartu kredit. Jika Anda menonaktifkan setelan ini, IsiOtomatis tidak akan dapat diakses pengguna. Jika Anda mengaktifkan setelan ini atau tidak menyetel nilai, IsiOtomatis akan tetap berada di bawah kontrol pengguna. Cara ini akan memungkinkan pengguna mengonfigurasi profil IsiOtomatis dan mengaktifkan atau menonaktifkan IsiOtomatis sesuai keinginan mereka.</translation> <translation id="6394350458541421998">Kebijakan ini tidak lagi digunakan sejak <ph name="PRODUCT_OS_NAME" /> versi 29. Gunakan kebijakan PresentationScreenDimDelayScale sebagai gantinya.</translation> <translation id="6401669939808766804">Keluarkan pengguna</translation> +<translation id="6412477120967771054">Jika ditetapkan ke false, 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 ditetapkan ke true atau tidak ditetapkan, 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. + + Kebijakan ini tidak tersedia pada instance Windows yang tidak digabungkan dengan domain <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Memungkinkan Anda menyetel daftar pola url yang menentukan situs yang tidak diizinkan untuk menyetel cookie. Jika kebijakan ini dibiarkan tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultCookiesSetting', jika disetel, atau konfigurasi pribadi pengguna.</translation> <translation id="6426205278746959912">Anda tidak dapat memaksa aplikasi Android untuk menggunakan proxy. Bagian setelan proxy disediakan untuk aplikasi Android, yang dapat dipilih untuk dipatuhi secara sukarela: @@ -1772,6 +1786,13 @@ Untuk mengontrol situs yang diizinkan untuk menjalankan Flash, lihat kebijakan "DefaultPluginsSetting", "PluginsAllowedForUrls", dan "PluginsBlockedForUrls". Jika setelan ini dinonaktifkan atau tidak disetel, konten Flash dari asal lainnya atau konten kecil dapat diblokir.</translation> +<translation id="6535639183431116351">Kebijakan ini tidak digunakan lagi pada M68; sebagai gantinya gunakan DeveloperToolsAvailability. + + Menonaktifkan Developer Tools dan konsol JavaScript. + + Jika Anda mengaktifkan setelan ini, Developer Tools tidak dapat diakses dan elemen situs tidak dapat diperiksa lagi. Semua pintasan keyboard dan semua menu atau entri menu konteks untuk membuka Developer Tools atau Konsol JavaScript akan dinonaktifkan. + + Jika opsi ini dinonaktifkan atau tidak ditetapkan, pengguna dapat menggunakan Developer Tools dan konsol JavaScript.</translation> <translation id="653608967792832033">Menentukan panjang waktu tanpa masukan pengguna sebelum layar terkunci ketika menggunakan daya baterai. Saat kebijakan ini disetel ke nilai yang lebih besar dari nol, nilai tersebut akan menentukan panjang waktu pengguna tetap menganggur sebelum <ph name="PRODUCT_OS_NAME" /> mengunci layar. @@ -1829,19 +1850,14 @@ Jika kebijakan ini tidak disetel, prediksi jaringan akan diaktifkan namun pengguna dapat mengubahnya.</translation> <translation id="6658245400435704251">Menentukan jumlah waktu (dalam detik) sebuah perangkat dapat menunda download pembaruannya secara acak dari saat pembaruan tersebut pertama kali didorong ke server. Perangkat dapat menunggu dengan sebagian dari waktu ini dari segi prediksi waktu penyelesaian tugas dan sisa waktunya dari segi jumlah pemeriksaan pembaruan. Dalam keadaan apa pun, penyebaran dibatasi dengan jumlah waktu yang konstan sehingga perangkat tidak akan terus menunggu download pembaruan selamanya.</translation> <translation id="6665670272107384733">Setel seberapa sering pengguna harus memasukkan sandi untuk menggunakan buka kunci cepat.</translation> -<translation id="6681229465468164801">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang dicegah meminta pengguna memberi akses ke perangkat USB. +<translation id="6681229465468164801">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang dicegah agar tidak meminta pengguna memberikan akses ke perangkat USB. - Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna. + Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs yaitu dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna. - Pola URL di kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui WebUsbAskForUrls. Tidak ditentukan yang mana dari antara kedua kebijakan ini yang diprioritaskan jika URL cocok dengan keduanya.</translation> + 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="6698071416141001300">Laporan perlindungan sandi pada akun yang berisiko dipicu oleh penggunaan ulang sandi</translation> <translation id="6699880231565102694">Mengaktifkan autentikasi dua faktor untuk hosting akses jarak jauh</translation> -<translation id="6702257826895463228">Memungkinkan situs untuk menavigasi dan membuka (jendela) pop-up sekaligus. - - Untuk penjelasan selengkapnya, lihat https://www.chromestatus.com/features/5675755719622656. - Jika kebijakan ini diaktifkan, situs akan diizinkan untuk menavigasi dan membuka jendela/tab baru sekaligus. - Jika kebijakan ini dinonaktifkan atau tidak disetel, situs tidak akan dapat menavigasi dan membuka jendela/tab baru sekaligus.</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. Jika kebijakan ini dinonaktifkan atau tidak disetel, hanya profil lokal reguler yang akan digunakan. @@ -1982,11 +1998,11 @@ Jika setelan ini dinonaktifkan atau tidak disetel, perlindungan Safe Browsing berlaku untuk semua resource. Kebijakan ini tidak tersedia di instance Windows yang tidak digabungkan dengan domain <ph name="MS_AD_NAME" />.</translation> <translation id="7079519252486108041">Cekal pop-up di situs ini</translation> -<translation id="7085803328069945025">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang diizinkan untuk meminta pengguna memberi akses ke perangkat USB. +<translation id="7085803328069945025">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang diizinkan untuk meminta pengguna memberikan akses ke perangkat USB. - Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna. + Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs yaitu dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna. - Pola URL di kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui WebUsbBlockedForUrls. Tidak ditentukan yang mana dari antara kedua kebijakan ini yang diprioritaskan jika URL cocok dengan keduanya.</translation> + Pola URL di kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui WebUsbBlockedForUrls. Tidak ditentukan yang mana di antara kedua kebijakan ini yang diprioritaskan jika URL cocok dengan keduanya.</translation> <translation id="7106631983877564505">Mengaktifkan kunci jika perangkat <ph name="PRODUCT_OS_NAME" /> menganggur atau ditangguhkan. Jika Anda mengaktifkan setelan ini, pengguna akan dimintai sandi untuk membuka kunci perangkat dari mode tidur. @@ -2180,6 +2196,7 @@ Lihat https://developers.google.com/safe-browsing untuk info selengkapnya terkait Safe Browsing.</translation> <translation id="7643883929273267746">Batasi akun yang terlihat di <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Menentukan apakah roaming data harus diaktifkan untuk perangkat. Jika disetel ke true, roaming data akan diizinkan. Jika dibiarkan tanpa konfigurasi atau disetel ke false, roaming data tidak akan tersedia.</translation> +<translation id="7673194325208122247">Periode waktu (milidetik)</translation> <translation id="7683777542468165012">Penyegaran Kebijakan Dinamis</translation> <translation id="7694807474048279351">Menjadwalkan mulai ulang otomatis setelah pembaruan <ph name="PRODUCT_OS_NAME" /> diterapkan. @@ -2305,6 +2322,13 @@ <translation id="7961779417826583251">Nonaktifkan penerapan Transparansi Sertifikat untuk daftar Otoritas Sertifikat Lama</translation> <translation id="7974114691960514888">Kebijakan ini tidak lagi didukung. Mengaktifkan penggunaan STUN dan server relay saat menyambungkan ke klien jarak jauh. Jika setelan ini diaktifkan, maka komputer ini dapat menemukan dan tersambung ke komputer host jarak jauh bahkan jika dipisahkan oleh firewall. Jika setelan ini dinonaktifkan dan sambungan UDP keluar difilter oleh firewall, maka komputer ini hanya dapat tersambung ke komputer host dalam jaringan lokal.</translation> <translation id="7976157349247117979">Nama tujuan <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Jika tidak ditetapkan, apabila mendeteksi software yang tidak diinginkan, Pembersih Chrome dapat melaporkan metadata tentang pemindaian ke Google sesuai dengan kebijakan yang ditetapkan oleh SafeBrowsingExtendedReportingEnabled. Selanjutnya, Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak. Pengguna dapat membagikan hasil pembersihan kepada Google untuk membantu mendeteksi software yang tidak diinginkan di waktu mendatang. Hasil ini memuat metadata file dan kunci registri seperti dijelaskan dalam Panduan Layanan Privasi Chrome. + + Jika ditetapkan ke false, apabila mendeteksi software yang tidak diinginkan, Pembersih Chrome tidak akan melaporkan metadata tentang pemindaian ke Google, yang berarti menggantikan kebijakan apa pun yang ditetapkan oleh SafeBrowsingExtendedReportingEnabled. Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak. Hasil pembersihan tidak akan dilaporkan ke Google dan pengguna tidak akan memiliki opsi untuk melaporkannya. + + Jika ditetapkan ke true, apabila mendeteksi software yang tidak diinginkan, Pembersih Chrome dapat melaporkan metadata tentang pemindaian ke Google sesuai dengan kebijakan yang ditetapkan oleh SafeBrowsingExtendedReportingEnabled. Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak. Hasil pembersihan akan dilaporkan ke Google dan pengguna tidak akan memiliki opsi untuk mencegahnya. + + Kebijakan ini tidak tersedia pada instance Windows yang tidak digabungkan dengan domain <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Anda dapat mempertimbangkan setelan kebijakan IsolateOrigins untuk mendapatkan yang terbaik dari kedua fungsi, yaitu isolasi dan dampak terbatas bagi pengguna, dengan menggunakan IsolateOrigins yang berisi daftar situs yang ingin Anda isolasi. Setelan ini, SitePerProcess, mengisolasi semua situs. Jika kebijakan diaktifkan, tiap situs akan dijalankan dalam prosesnya sendiri. Jika kebijakan dinonaktifkan, Isolasi Situs eksplisit tidak akan terjadi dan uji coba kolom IsolateOrigins dan SitePerProcess akan dinonaktifkan. Pengguna tetap dapat mengaktifkan SitePerProcess secara manual. Jika kebijakan tidak dikonfigurasi, pengguna dapat mengubah setelan ini. Di <ph name="PRODUCT_OS_NAME" />, sebaiknya setel juga kebijakan perangkat <ph name="DEVICE_LOGIN_SCREEN_SITE_PER_PROCESS_POLICY_NAME" /> ke nilai yang sama. Jika nilai yang ditentukan oleh kedua kebijakan tidak cocok, mungkin terjadi keterlambatan saat masuk sesi pengguna sementara nilai yang ditentukan oleh kebijakan pengguna sedang diterapkan. </translation> @@ -2420,6 +2444,7 @@ <translation id="8300455783946254851">Menonaktifkan sinkronisasi Google Drive di aplikasi File <ph name="PRODUCT_OS_NAME" /> saat menggunakan sambungan seluler jika disetel ke True. Dalam kasus ini, data hanya disinkronkan ke Google Drive saat tersambung melalui Wi-Fi atau Ethernet. Jika tidak disetel atau disetel ke False, pengguna akan dapat mentransfer file ke Google Drive melalui sambungan seluler.</translation> +<translation id="8300992833374611099">Kontrol lokasi penggunaan Developer Tools</translation> <translation id="8312129124898414409">Memungkinkan Anda menyetel apakah situs web diizinkan untuk menggunakan pembuatan kunci atau tidak. Penggunaan pembuatan kunci dapat diizinkan atau ditolak untuk semua situs web. Jika kebijakan ini tidak disetel, 'BlockKeygen' akan digunakan dan pengguna dapat mengubahnya.</translation> @@ -2635,6 +2660,11 @@ <translation id="9035964157729712237">ID Ekstensi yang dikeluarkan dari daftar hitam</translation> <translation id="9042911395677044526">Memungkinkan konfigurasi jaringan dorongan untuk diterapkan per pengguna ke perangkat <ph name="PRODUCT_OS_NAME" />. Konfigurasi jaringan adalah string berformat JSON seperti yang didefinisikan oleh format Konfigurasi Jaringan Terbuka yang diuraikan di <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Tentukan apakah aktivitas video memengaruhi pengelolaan daya</translation> +<translation id="9085839450090699752">Memungkinkan Anda menetapkan periode waktu, dalam milidetik, yang selama periode tersebut pengguna akan menerima notifikasi bahwa <ph name="PRODUCT_NAME" /> harus dijalankan ulang atau perangkat <ph name="PRODUCT_OS_NAME" /> harus dimulai ulang untuk menerapkan update yang tertunda. + + Selama periode waktu ini, pengguna akan terus-menerus diberi tahu tentang perlunya melakukan update. Untuk perangkat <ph name="PRODUCT_OS_NAME" />, notifikasi untuk memulai ulang perangkat akan ditampilkan di baki sistem ketika ada upgrade yang terdeteksi. Warna notifikasi akan berubah setelah separuh periode notifikasi berlalu, dan berubah lagi setelah seluruh periode notifikasi berlalu. Untuk browser <ph name="PRODUCT_NAME" />, warna menu aplikasi akan berubah setelah 1/3 periode notifikasi berlalu untuk menunjukkan bahwa browser perlu dijalankan ulang. Warna notifikasi akan berubah lagi setelah 2/3 periode notifikasi berlalu, dan berubah sekali lagi setelah seluruh periode notifikasi berlalu. Notifikasi tambahan yang diaktifkan oleh kebijakan <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> untuk browser mengikuti jadwal yang sama seperti ini. + + Jika tidak ditetapkan, periode default 345.600.000 milidetik (4 hari) akan digunakan untuk perangkat <ph name="PRODUCT_OS_NAME" /> dan 604.800.000 milidetik (1 minggu) untuk browser.</translation> <translation id="9088433379343318874">Izinkan penyedia konten pengguna yang dilindungi</translation> <translation id="9088444059179765143">Mengonfigurasi metode deteksi zona waktu otomatis</translation> <translation id="9096086085182305205">Daftar putih server autentikasi</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index dcc7d8c..94ae2cd0 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -27,6 +27,7 @@ Se questa norma viene impostata, la schermata di accesso verrà sempre visualizzata nella lingua stabilita dal primo valore di questa norma (la norma viene definita come elenco per la compatibilità con le versioni successive). Se la norma non viene impostata o se viene impostato un elenco vuoto, la schermata di accesso verrà visualizzata nella lingua dell'ultima sessione utente. Se la norma viene impostata su un valore non corrispondente a una lingua valida, la schermata di accesso verrà visualizzata in una lingua di riserva (attualmente en-US).</translation> <translation id="1062011392452772310">Attivazione dell'attestazione da remoto per il dispositivo</translation> <translation id="1062407476771304334">Sostituisci</translation> +<translation id="1079801999187584280">Non consentire l'utilizzo degli Strumenti per sviluppatori</translation> <translation id="109166998561583554">Attivazione della segnalazione di account a rischio da parte del servizio di protezione tramite password</translation> <translation id="1093082332347834239">Se l'impostazione viene attivata, l'host per l'assistenza remota viene eseguito in un processo con le autorizzazioni <ph name="UIACCESS_PERMISSION_NAME" />. In questo modo gli utenti remoti possono interagire con finestre con privilegi più elevati sul desktop dell'utente locale. @@ -76,6 +77,7 @@ Il fattore di regolazione minimo deve essere 100%.</translation> <translation id="131353325527891113">Mostra nomi utente nella schermata di accesso</translation> +<translation id="1325295456374328159">Configura le lingue consentite in una sessione utente</translation> <translation id="1327466551276625742">Attivazione richiesta di configurazione della rete offline</translation> <translation id="1330145147221172764">Attiva tastiera sullo schermo</translation> <translation id="13356285923490863">Nome norma</translation> @@ -88,6 +90,12 @@ <translation id="1387596372902085462">Consente di stabilire se considerare attendibile o meno l'infrastruttura PKI precedente di Symantec Corporation</translation> <translation id="1393485621820363363">Stampanti aziendali associate ai dispositivi attive</translation> <translation id="1397855852561539316">URL di suggerimento del provider di ricerca predefinito</translation> +<translation id="1424081297104898791">Ti consente di stabilire dove è possibile usare gli Strumenti per sviluppatori. + + Se questa norma viene impostata su "DeveloperToolsDisallowedForForceInstalledExtensions" (valore 0, ossia il valore predefinito per gli utenti aziendali), in genere è possibile accedere agli Strumenti per sviluppatori e alla console JavaScript, ma non è possibile accedervi nel contesto delle estensioni installate in base a norme aziendali. + Se questa norma viene impostata su "DeveloperToolsAllowed" (valore 1, ossia il valore predefinito per gli utenti non gestiti), gli Strumenti per sviluppatori e la console JavaScript saranno accessibili e utilizzabili in tutti i contesti, incluso il contesto delle estensioni installate in base a norme aziendali. + Se questa norma viene impostata su "DeveloperToolsDisallowed" (valore 2), gli Strumenti per sviluppatori non saranno accessibili e non sarà più possibile esaminare gli elementi del sito web. Le eventuali scorciatoie da tastiera e le voci dei menu contestuali o di altri menu che consentono di aprire gli Strumenti per sviluppatori o la console JavaScript verranno disattivate. + Se la norma precedente DeveloperToolsDisabled viene impostata su true, il valore di questa norma viene ignorato e gli Strumenti per sviluppatori verranno disattivati.</translation> <translation id="1426410128494586442">Sì</translation> <translation id="1427655258943162134">Indirizzo o URL del server proxy</translation> <translation id="1435659902881071157">Configurazione di rete a livello di dispositivo</translation> @@ -193,6 +201,7 @@ <translation id="1803646570632580723">Elenco di applicazioni bloccate da visualizzare in Avvio applicazioni</translation> <translation id="1808715480127969042">Blocca cookie su questi siti</translation> <translation id="1810261428246410396">Consenti l'uso del tethering istantaneo.</translation> +<translation id="1826282708349731794">Consente di stabilire la modalità di segnalazione dei dati di Chrome Software Cleaner a Google</translation> <translation id="1827523283178827583">Utilizza server proxy definiti</translation> <translation id="1843117931376765605">Frequenza di aggiornamento per norma utente</translation> <translation id="1844620919405873871">Consente di configurare le norme relative allo sblocco rapido.</translation> @@ -573,6 +582,7 @@ Questa norma non influisce sulla capacità degli utenti di configurare le stampanti su singoli dispositivi. È supplementare alla configurazione di stampanti da parte dei singoli utenti. </translation> <translation id="2633084400146331575">Attiva la funzione di lettura vocale</translation> +<translation id="2640843331263301324">Consente di attivare Chrome Software Cleaner su Windows</translation> <translation id="2646290749315461919">Permette di stabilire se consentire o meno il monitoraggio della posizione fisica degli utenti da parte dei siti web. Il monitoraggio della posizione fisica degli utenti può essere consentito o negato per impostazione predefinita oppure l'utente può ricevere una richiesta ogni volta che un sito web desidera conoscere la posizione fisica. Se questa norma non viene impostata, verrà utilizzato il valore "AskGeolocation", che potrà essere modificato dagli utenti.</translation> <translation id="2647069081229792812">Attiva o disattiva la funzione di modifica dei preferiti</translation> <translation id="2650049181907741121">Azione da compiere quando l'utente chiude il coperchio</translation> @@ -636,13 +646,6 @@ Se viene usata questa norma, solo le stampanti con ID corrispondenti ai valori della norma saranno disponibili per gli utenti. Gli ID devono corrispondere ai campi "id" o "guid" del file specificato nella norma <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Consente di attivare la disponibilità della funzione Tocca per cercare nella visualizzazione contenuti di <ph name="PRODUCT_NAME" />. - - Se questa impostazione viene attivata, la funzione Tocca per cercare sarà a disposizione degli utenti, che potranno scegliere se attivarla o disattivarla. - - Se questa impostazione viene disattivata, la funzione Tocca per cercare verrà disattivata completamente. - - Non impostare questa norma equivale ad attivarla; leggere la descrizione precedente.</translation> <translation id="285480231336205327">Attiva modalità ad alto contrasto</translation> <translation id="2854919890879212089">Consente di impostare in <ph name="PRODUCT_NAME" /> l'uso della stampante predefinita del sistema, anziché della stampante usata più di recente, come opzione predefinita della finestra Anteprima di stampa. @@ -1184,12 +1187,14 @@ <translation id="4554651132977135445">Modalità di elaborazione loopback delle norme relative agli utenti</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> +<translation id="4567137030726189378">Consenti l'utilizzo degli Strumenti per sviluppatori</translation> <translation id="4600786265870346112">Attivazione del puntatore grande</translation> <translation id="4604931264910482931">Configura lista nera di messaggi nativi</translation> <translation id="4613508646038788144">Se la norma viene impostata su false, i programmi software di terze parti potranno inserire codice eseguibile nei processi di Chrome. Se la norma non viene impostata o viene impostata su true, i programmi software di terze parti non potranno inserire codice eseguibile nei processi di Chrome.</translation> <translation id="4617338332148204752">Salta il controllo dei metatag in <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Configura la whitelist per l'installazione delle estensioni</translation> <translation id="4632343302005518762">Consenti a <ph name="PRODUCT_FRAME_NAME" /> di gestire i tipi di contenuti elencati</translation> +<translation id="4632566332417930481">Non consentire l'utilizzo degli Strumenti per sviluppatori per le estensioni installate in base a norme aziendali; consenti l'utilizzo degli Strumenti per sviluppatori in altri contesti</translation> <translation id="4633786464238689684">Consente di modificare il comportamento predefinito dei tasti della fila superiore in tasti funzione. Se questa norma è impostata su "true", i tasti della fila superiore della tastiera riprodurranno i comandi dei tasti funzione per impostazione predefinita. Per ripristinare il comportamento dei tasti multimediali, è necessario premere il tasto per la ricerca. @@ -1438,9 +1443,13 @@ 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="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> <translation id="5457924070961220141">Consente di configurare il renderer HTML predefinito se <ph name="PRODUCT_FRAME_NAME" /> è installato. Se questa norma non viene impostata, per impostazione predefinita il rendering viene eseguito dal browser host; tuttavia, in alternativa, puoi sostituire tale impostazione e consentire che l'esecuzione del rendering delle pagine HTML venga eseguita, per impostazione predefinita, da <ph name="PRODUCT_FRAME_NAME" />.</translation> +<translation id="5459155981813668716">Consente di configurare le lingue di visualizzazione consentite per <ph name="PRODUCT_OS_NAME" />. + + Se questa norma viene impostata, l'utente potrà configurare soltanto una delle lingue di visualizzazione di <ph name="PRODUCT_OS_NAME" /> specificate da questa norma. Se la norma non viene impostata o viene impostato un elenco vuoto, <ph name="PRODUCT_OS_NAME" /> potrà essere visualizzato in tutte le lingue supportate. Se per questa norma viene impostato un elenco contenente valori non validi, tutti i valori non validi verranno ignorati. Se un utente aveva precedentemente configurato una lingua di visualizzazione di <ph name="PRODUCT_OS_NAME" /> non consentita da questa norma, all'accesso successivo la lingua di visualizzazione verrà sostituita con una lingua consentita. Se l'utente aveva configurato delle lingue preferite e una di queste è consentita da questa norma, in <ph name="PRODUCT_OS_NAME" /> verrà usata tale lingua. In caso contrario, in <ph name="PRODUCT_OS_NAME" /> verrà usato il primo valore valido specificato in questo norma oppure, se la norma contiene soltanto voci non valide, verrà usata una lingua di riserva (attualmente en-US).</translation> <translation id="5464816904705580310">Configurazione delle impostazioni per gli utenti gestiti.</translation> <translation id="546726650689747237">Ritardo oscuramento schermo in caso di utilizzo di CA</translation> <translation id="5469484020713359236">Consente di impostare un elenco di pattern URL che specificano i siti autorizzati a impostare cookie. Se questa norma non viene impostata, per tutti i siti verrà utilizzato il valore predefinito globale della norma "DefaultCookiesSetting", se è impostata, oppure verrà utilizzata la configurazione personale dell'utente.</translation> @@ -1554,7 +1563,6 @@ Se la norma non viene impostata, la lettura vocale viene disattivata alla prima visualizzazione della schermata di accesso. Gli utenti possono attivare o disattivare la lettura vocale in qualsiasi momento e il relativo stato nella schermata di accesso persiste per tutti gli utenti.</translation> <translation id="5868414965372171132">Configurazione di rete a livello di utente</translation> -<translation id="588135807064822874">Attiva la funzione Tocca per cercare</translation> <translation id="5883015257301027298">Impostazione cookie predefiniti</translation> <translation id="5887414688706570295">Consente di configurare il prefisso TalkGadget che verrà utilizzato dagli host di accesso remoto e impedisce agli utenti di modificarlo. @@ -1657,6 +1665,7 @@ <translation id="6036523166753287175">Abilita attraversamento firewall da host di accesso remoto</translation> <translation id="6070667616071269965">Layout da tastiera della schermata di accesso del dispositivo</translation> <translation id="6074963268421707432">Non consentire la visualizzazione di notifiche desktop da parte dei siti</translation> +<translation id="6074964551275531965">Imposta il periodo di tempo per le notifiche relative agli aggiornamenti</translation> <translation id="6076099373507468537">Definisce l'elenco di dispositivi USB che possono essere scollegati dal driver del kernel per essere utilizzati tramite l'API chrome.usb direttamente all'interno di un'applicazione web. Le voci sono coppie costituite dall'ID fornitore USB e dall'ID prodotto per identificare un hardware specifico. Se la norma non è configurata, l'elenco di dispositivi USB scollegabili è vuoto.</translation> @@ -1725,6 +1734,11 @@ <translation id="6392973646875039351">Consente di attivare la funzione Compilazione automatica di <ph name="PRODUCT_NAME" /> e di permettere agli utenti di eseguire il completamento automatico dei moduli web utilizzando informazioni memorizzate in precedenza, come l'indirizzo o i dati della carta di credito. Se disattivi questa impostazione, gli utenti non potranno utilizzare la funzione Compilazione automatica. Se attivi questa impostazione o non imposti un valore, la funzione Compilazione automatica potrà essere gestita dagli utenti. Gli utenti potranno quindi configurare i profili di Compilazione automatica e attivare o disattivare a propria scelta la funzione Compilazione automatica.</translation> <translation id="6394350458541421998">La norma non è più supportata a partire dalla versione 29 di <ph name="PRODUCT_OS_NAME" />. Utilizza la norma PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Disconnetti l'utente</translation> +<translation id="6412477120967771054">Se questa norma viene impostata su false, 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 disabilitata. + + Se la norma viene impostata su true 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 abilitata. + + Questa norma non è disponibile sulle istanze di Windows che non fanno parte di un dominio <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Consente di impostare un elenco di pattern URL che specificano i siti non autorizzati a impostare cookie. Se questa norma non viene impostata, per tutti i siti verrà utilizzato il valore predefinito globale della norma "DefaultCookiesSetting", se è impostata, oppure verrà utilizzata la configurazione personale dell'utente.</translation> <translation id="6426205278746959912">Non è possibile imporre l'utilizzo di un proxy alle app Android. Viene messo a disposizione un sottoinsieme di impostazioni proxy che le app Android possono decidere se rispettare o meno. @@ -1745,6 +1759,13 @@ Per stabilire quali siti web possono eseguire i contenuti Flash, fai riferimento alle norme "DefaultPluginsSetting", "PluginsAllowedForUrls" e "PluginsBlockedForUrls". Se questa impostazione viene disattivata o non viene impostata, i contenuti Flash di altre origini o i contenuti ridotti potrebbero essere bloccati.</translation> +<translation id="6535639183431116351">Questa norma è stata ritirata in M68; usa la norma DeveloperToolsAvailability. + + Consente di disattivare gli Strumenti per sviluppatori e la console JavaScript. + + Se questa impostazione viene attivata, gli Strumenti per sviluppatori non saranno accessibili e non sarà più possibile esaminare gli elementi del sito web. Le eventuali scorciatoie da tastiera e le voci dei menu contestuali o di altri menu che consentono di aprire gli Strumenti per sviluppatori o la console JavaScript verranno disattivate. + + Se questa opzione viene disattivata o non viene impostata sarà possibile utilizzare gli Strumenti per sviluppatori e la console JavaScript.</translation> <translation id="653608967792832033">Consente di specificare il periodo di tempo senza input dell'utente trascorso il quale lo schermo viene bloccato quando viene utilizzata la batteria. Se questa norma viene impostata su un valore maggiore di zero, consente di specificare il periodo di tempo per cui l'utente deve rimanere inattivo prima che <ph name="PRODUCT_OS_NAME" /> blocchi lo schermo. @@ -1810,11 +1831,6 @@ <translation id="6689792153960219308">Segnala lo stato dell'hardware</translation> <translation id="6698071416141001300">La segnalazione di account a rischio da parte del servizio di protezione tramite password viene attivata se vengono riutilizzate password</translation> <translation id="6699880231565102694">Abilita autenticazione a due fattori per gli host di accesso remoto</translation> -<translation id="6702257826895463228">Consenti ai siti di navigare e aprire popup contemporaneamente. - - Per avere una spiegazione completa, consulta la pagina https://www.chromestatus.com/features/5675755719622656. - Se questa norma viene attivata, ai siti sarà concesso di navigare e aprire nuove finestre/schede contemporaneamente. - Se questa norma viene disattivata o non impostata, ai siti non sarà concesso di navigare e aprire nuove finestre/schede contemporaneamente.</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. Se questa norma viene disattivata o non viene impostata, saranno utilizzati solo i normali profili locali. @@ -2150,6 +2166,7 @@ Visita il sito https://developers.google.com/safe-browsing per avere ulteriori informazioni sulla funzione Navigazione sicura.</translation> <translation id="7643883929273267746">Limita gli account visibili in <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">È possibile stabilire se attivare o meno il roaming dei dati per il dispositivo. Se la norma viene impostata su true, il roaming dei dati sarà consentito. Se non viene configurata o viene impostata su false, il roaming dei dati non sarà disponibile.</translation> +<translation id="7673194325208122247">Periodo di tempo (millisecondi)</translation> <translation id="7683777542468165012">Aggiornamento dinamico delle norme</translation> <translation id="7694807474048279351">Consente di pianificare un riavvio automatico in seguito all'applicazione di un aggiornamento di <ph name="PRODUCT_OS_NAME" />. @@ -2276,6 +2293,13 @@ <translation id="7961779417826583251">Disattiva l'applicazione di Certificate Transparency per un elenco di autorità di certificazione precedenti</translation> <translation id="7974114691960514888">Questa norma non è più supportata. Consente di attivare l'utilizzo di server relay e STUN durante la connessione a un client remoto. Se questa impostazione viene attivata, questo computer potrà rilevare i computer host remoti e collegarsi a essi anche se sono separati da un firewall. Se questa impostazione viene disattivata e le connessioni UDP in uscita vengono filtrate dal firewall, questo computer potrà collegarsi ai computer host soltanto all'interno della rete locale.</translation> <translation id="7976157349247117979">Nome della destinazione di <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Se questa norma non viene impostata e Chrome Software Cleaner dovesse rilevare software indesiderato, a Google potrebbero essere segnalati metadati relativi alla scansione in base alla norma stabilita da SafeBrowsingExtendedReportingEnabled. Chrome Software Cleaner chiederà poi all'utente se vuole ripulire il software indesiderato. L'utente potrà decidere di condividere i risultati della pulizia con Google per contribuire a rilevare software indesiderato in futuro. Questi risultati contengono metadati di file e chiavi del registro di sistema, come spiegato nel Whitepaper sulla privacy di Chrome. + + Se la norma viene impostata su false e Chrome Software Cleaner dovesse rilevare software indesiderato, a Google non verranno segnalati metadati relativi alla scansione, ignorando qualsiasi norma stabilita da SafeBrowsingExtendedReportingEnabled. Chrome Software Cleaner chiederà all'utente se vuole ripulire il software indesiderato. I risultati della pulizia non verranno segnalati a Google e l'utente non avrà la possibilità di segnalarli. + + Se la norma viene impostata su true e Chrome Software Cleaner dovesse rilevare software indesiderato, a Google potrebbero essere segnalati metadati relativi alla scansione in base alla norma stabilita da SafeBrowsingExtendedReportingEnabled. Chrome Software Cleaner chiederà all'utente se vuole ripulire il software indesiderato. I risultati della pulizia verranno segnalati a Google e l'utente non avrà la possibilità di impedire la segnalazione. + + Questa norma non è disponibile sulle istanze di Windows che non fanno parte di un dominio <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Potresti considerare l'impostazione della norma IsolateOrigins per ottenere sia l'isolamento sia un impatto limitato per gli utenti. Usa @@ -2387,6 +2411,7 @@ <translation id="8300455783946254851">Consente di disattivare la sincronizzazione di Google Drive nell'app File di <ph name="PRODUCT_OS_NAME" /> utilizzando una connessione alla rete dati quando questa norma viene impostata su True. In tal caso, i dati vengono sincronizzati con Google Drive solo in presenza di una connessione alla rete Wi-Fi o Ethernet. Se questa norma non viene impostata o viene impostata su False, gli utenti possono trasferire file in Google Drive mediante connessioni alla rete dati.</translation> +<translation id="8300992833374611099">Stabilisci dove è possibile utilizzare gli Strumenti per sviluppatori</translation> <translation id="8312129124898414409">Consente di stabilire se consentire o meno l'utilizzo della generazione di chiavi sui siti web. L'utilizzo della generazione di chiavi può essere consentito o negato per tutti i siti web. Se questa norma non viene impostata, verrà utilizzato il valore della norma "BlockKeygen", che potrà essere modificato dagli utenti.</translation> @@ -2613,6 +2638,11 @@ <translation id="9035964157729712237">ID delle estensioni da escludere dalla blacklist</translation> <translation id="9042911395677044526">Consente di forzare l'applicazione della configurazione di rete per utente su un dispositivo <ph name="PRODUCT_OS_NAME" />. La configurazione di rete è una stringa in formato JSON definita secondo il formato Open Network Configuration descritto all'indirizzo <ph name="ONC_SPEC_URL" />.</translation> <translation id="9084985621503260744">Specifica se l'attività video incide sulla gestione dell'alimentazione</translation> +<translation id="9085839450090699752">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. Questa notifica cambia colore una volta trascorso metà del periodo di notifica e lo cambia di nuovo al termine dell'intero periodo di notifica. Per quanto riguarda i browser <ph name="PRODUCT_NAME" />, il menu delle app cambia per indicare che è necessario riavviare 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" /> relativa ai browser seguono questa stessa pianificazione. + + Se la norma non viene impostata, viene usato il periodo predefinito di 345600000 millisecondi (quattro giorni) per i dispositivi <ph name="PRODUCT_OS_NAME" /> e di 604800000 millisecondi (una settimana) per i browser.</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="9096086085182305205">Whitelist server di autenticazione</translation>
diff --git a/components/policy/resources/policy_templates_iw.xtb b/components/policy/resources/policy_templates_iw.xtb index 2cff71d..78ffd1f6 100644 --- a/components/policy/resources/policy_templates_iw.xtb +++ b/components/policy/resources/policy_templates_iw.xtb
@@ -26,6 +26,7 @@ אם המדיניות הזו מוגדרת, מסך הכניסה יוצג תמיד לפי המקום שסופק על-ידי הערך הראשון במדיניות הזו (המדיניות מוגדרת כרשימה כדי להתאים לגרסאות עתידיות). אם המדיניות לא מוגדרת או אם הוגדרה רשימה ריקה, מסך הכניסה יוצג לפי המקום בהפעלת המשתמש האחרונה. אם המדיניות הזו מוגדרת כערך שאינו מקום חוקי, מסך הכניסה יוצג לפי מקום שהוגדר כברירת מחדל (נכון לעכשיו זהו en-US).</translation> <translation id="1062011392452772310">אפשר הזדהות מרחוק עבור המכשיר</translation> <translation id="1062407476771304334">החלף</translation> +<translation id="1079801999187584280">חסימת השימוש ב'כלים למפתחים'</translation> <translation id="109166998561583554">הפעולה שגורמת לשירות ההגנה באמצעות סיסמה לסמן חשבון כנמצא בסיכון</translation> <translation id="1093082332347834239">אם ההגדרה הזו פועלת, מארח הסיוע מרחוק יופעל בתהליך עם הרשאות <ph name="UIACCESS_PERMISSION_NAME" />. מצב זה יאפשר למשתמשים מרוחקים לבצע פעולות בחלונות עם הרשאות מתקדמות בשולחן העבודה של המשתמש המקומי. @@ -78,6 +79,7 @@ גורם קנה המידה חייב להיות לפחות 100%.</translation> <translation id="131353325527891113">הצג שמות משתמש במסך הכניסה</translation> +<translation id="1325295456374328159">הגדרת השילובים המותרים של שפה ואזור בסשן של משתמש</translation> <translation id="1327466551276625742">הפעל בקשה לתצורת רשת במצב לא מקוון</translation> <translation id="1330145147221172764">הפעל מקלדת על המסך</translation> <translation id="13356285923490863">שם מדיניות</translation> @@ -90,6 +92,12 @@ <translation id="1387596372902085462">האם להפעיל את האמון בתשתית PKI מדור קודם של Symantec Corporation</translation> <translation id="1393485621820363363">מדפסות ארגוניות מופעלות הקשורות למכשירים</translation> <translation id="1397855852561539316">כתובת אתר שמציעה ספק חיפוש המוגדר כברירת מחדל</translation> +<translation id="1424081297104898791">מאפשרת לך לקבוע איפה ניתן להשתמש ב'כלים למפתחים'. + + אם המדיניות מוגדרת כ-'DeveloperToolsDisallowedForForceInstalledExtensions' (ערך 0, ברירת המחדל למשתמשים ארגוניים), אפשר לגשת אל 'כלים למפתחים' ואל 'לוח JavaScript', מלבד בהקשר של תוספים המותקנים על-ידי המדיניות הארגונית. + אם המדיניות הזו מוגדרת כ-'DeveloperToolsAllowed' (ערך 1, ברירת המחדל למשתמשים שאינם מנוהלים), אפשר לגשת אל 'כלים למפתחים' ואל 'לוח JavaScript' ולהשתמש בהם בכל הקשר, כולל בהקשר של תוספים שהותקנו על-ידי המדיניות הארגונית. + אם המדיניות הזו מוגדרת כ-'DeveloperToolsDisallowed' (ערך 2), לא ניתן לגשת אל 'כלים למפתחים', ולא ניתן עוד לבדוק רכיבים באתרים. המערכת תשבית מקשי קיצור, תפריטים ואפשרויות בתפריטי הקשר המיועדים לפתיחת 'כלים למפתחים' או 'לוח JavaScript'. + אם המדיניות מדור קודם DeveloperToolsDisabled מוגדרת כ-true, המערכת תתעלם מערך המדיניות הזו ו'כלים למפתחים' יושבתו.</translation> <translation id="1426410128494586442">כן</translation> <translation id="1427655258943162134">כתובת או כתובת אתר של שרת Proxy</translation> <translation id="1435659902881071157">תצורת רשת ברמת המכשיר</translation> @@ -201,6 +209,7 @@ <translation id="1803646570632580723">רשימת יישומים מוצמדים שיש להציג במפעיל</translation> <translation id="1808715480127969042">חסום קובצי Cookie באתרים אלה</translation> <translation id="1810261428246410396">אישור להשתמש בשיתוף אינטרנט מיידי בין מכשירים.</translation> +<translation id="1826282708349731794">קובעת את האופן שבו נתונים מדווחים אל Google על-ידי Chrome Cleanup</translation> <translation id="1827523283178827583">השתמש בשרתי Proxy קבועים</translation> <translation id="1843117931376765605">קצב רענון עבור מדיניות משתמש</translation> <translation id="1844620919405873871">הגדרה של מדיניות הקשורה לביטול נעילה מהיר.</translation> @@ -420,13 +429,13 @@ מדיניות זו מאפשרת למנהלי מערכות לספק למשתמשים שלהם תצורות מדפסת. - <ph name="PRINTER_DISPLAY_NAME" /> ו-<ph name="PRINTER_DESCRIPTION" /> הן מחרוזות בהתאמה אישית שמטרתן להקל על בחירת מדפסת. הערכים <ph name="PRINTER_MANUFACTURER" /> ו-<ph name="PRINTER_MODEL" /> משמשים לזיהוי קל של מדפסת על-ידי משתמשי קצה. הם מייצגים את היצרן והדגם של המדפסת. הערך <ph name="PRINTER_URI" /> צריך להיות כתובת הנגישה ממחשב לקוח, כולל ה-<ph name="URI_SCHEME" />, <ph name="URI_PORT" /> ו-<ph name="URI_QUEUE" />. הערך <ph name="PRINTER_UUID" /> הוא אופציונלי. אם מציינים אותו, הוא משמש כדי לעזור בביטול הכפילויות של <ph name="ZEROCONF_DISCOVERY" />. + <ph name="PRINTER_DISPLAY_NAME" /> ו-<ph name="PRINTER_DESCRIPTION" /> הן מחרוזות בהתאמה אישית שמטרתן להקל על בחירת מדפסת. הערכים <ph name="PRINTER_MANUFACTURER" /> ו-<ph name="PRINTER_MODEL" /> משמשים לזיהוי קל של מדפסת על-ידי משתמשי קצה. הם מייצגים את היצרן והדגם של המדפסת. הערך <ph name="PRINTER_URI" /> צריך להיות כתובת הנגישה ממחשב לקוח, כולל ה-<ph name="URI_SCHEME" />, <ph name="URI_PORT" /> ו-<ph name="URI_QUEUE" />. הערך <ph name="PRINTER_UUID" /> הוא אופציונלי. אם מציינים אותו, הוא משמש כדי לעזור בביטול הכפילויות של <ph name="ZEROCONF_DISCOVERY" />. הערך <ph name="PRINTER_EFFECTIVE_MODEL" /> חייב להתאים לאחת מהמחרוזות המייצגות מדפסת נתמכת של <ph name="PRODUCT_NAME" />. המחרוזת תשמש לזיהוי ולהתקנה של ה-PPD המתאים של המדפסת. מידע נוסף זמין בכתובת https://support.google.com/chrome?p=noncloudprint. - הגדרת המדפסת מסתיימת עם השימוש הראשון במדפסת. לא מתבצעת הורדה של קובצי PPD עד לשימוש במדפסת. לאחר מכן, קובצי PPD שנמצאים בשימוש נפוץ נוספים לקובץ המטמון. + הגדרת המדפסת מסתיימת עם השימוש הראשון במדפסת. לא מתבצעת הורדה של קובצי PPD עד לשימוש במדפסת. לאחר מכן, קובצי PPD שנמצאים בשימוש לעתים קרובות נוספים לקובץ המטמון. - למדיניות הזו אין השפעה על היכולת של משתמשים להגדיר תצורת מדפסות במכשירים נפרדים. היא מיועדת לשמש כתוסף לתצורה של מדפסות שנקבעת על-ידי משתמשים נפרדים. + למדיניות הזו אין השפעה על היכולת של משתמשים להגדיר תצורת מדפסות במכשירים שונים. היא מיועדת לשמש כתוסף לתצורה של מדפסות שנקבעת על-ידי משתמשים שונים. במכשירים המנוהלים על-ידי Active Directory, המדיניות הזו תומכת בהרחבה של <ph name="MACHINE_NAME_VARIABLE" /> לשם המחשב שמנוהל על-ידי Active Directory או למחרוזת משנה שלו. לדוגמה, אם שם המחשב הוא <ph name="MACHINE_NAME_EXAMPLE" />, הערך <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> יוחלף ב-4 התווים שמתחילים אחרי המיקום השישי. למשל, <ph name="MACHINE_NAME_PART_EXAMPLE" />. לתשומת ליבך, המיקום מבוסס על אפסים. </translation> @@ -585,6 +594,7 @@ למדיניות הזו אין השפעה על היכולת של משתמשים להגדיר תצורת מדפסות במכשירים נפרדים. היא מיועדת לשמש כתוסף לתצורה של מדפסות שנקבעת על-ידי משתמשים נפרדים. </translation> <translation id="2633084400146331575">אפשר משוב מילולי</translation> +<translation id="2640843331263301324">מפעילה את Chrome Cleanup ב-Windows</translation> <translation id="2646290749315461919">מאפשר לך להגדיר אם מותר לאתרים לעקוב אחר המיקום הפיזי של המשתמשים. ניתן לאפשר מעקב אחר המיקום הפיזי של המשתמש כברירת מחדל, לדחות מעקב זה כברירת מחדל או שהמשתמש יתבקש לדווח על מיקומו הפיזי בכל פעם שאתר מבקש זאת. אם לא הגדרת מדיניות זו, המערכת תשתמש ב-'AskGeolocation' והמשתמש יוכל לשנות זאת.</translation> <translation id="2647069081229792812">הפעלה או השבתה של עריכת סימניות</translation> <translation id="2650049181907741121">פעולה שיש לבצע כשהמשתמש סוגר את המכסה</translation> @@ -648,13 +658,6 @@ אם המדיניות הזו הופעלה, רק המדפסות שהמזהים שלהן תואמים לערכים שצוינו יהיו זמינות למשתמש. המזהים חייבים להיות תואמים לשדות "id" או "guid" בקובץ שצוין ב-<ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">מדיניות זו מאפשרת זמינות של 'גע כדי לחפש' בתצוגת התוכן של <ph name="PRODUCT_NAME" />. - - אם תפעיל הגדרה זו, התכונה 'גע כדי לחפש' תהיה זמינה למשתמשים והם יוכלו לבחור אם להפעיל או לכבות אותה. - - אם תבטל הגדרה זו, התכונה 'גע כדי לחפש' תושבת לחלוטין. - - אי-הגדרה של מדיניות זו כמוה כהפעלתה. ראה בתיאור למעלה.</translation> <translation id="285480231336205327">הפעל מצב ניגודיות גבוהה</translation> <translation id="2854919890879212089">מורה ל-<ph name="PRODUCT_NAME" /> לבחור במדפסת שהוגדרה במערכת כברירת מחדל לתצוגה המקדימה של ההדפסה, במקום במדפסת האחרונה שבה נעשה שימוש. @@ -1207,12 +1210,14 @@ <translation id="4554651132977135445">מצב עיבוד בלולאה חוזרת של מדיניות משתמש</translation> <translation id="4555850956567117258">הפעל הזדהות מרחוק עבור המשתמש</translation> <translation id="4557134566541205630">כתובת האתר של דף הכרטיסייה החדשה של ספק החיפוש המוגדר כברירת מחדל</translation> +<translation id="4567137030726189378">התרת שימוש ב'כלים למפתחים'</translation> <translation id="4600786265870346112">הפעל סמן גדול</translation> <translation id="4604931264910482931">הגדרה של רשימה שחורה עבור העברת הודעות מקומית</translation> <translation id="4613508646038788144">אם המדיניות מוגדרת כ-false, תוכנות של צד שלישי יוכלו להוסיף אל התהליכים של Chrome קוד לביצוע. אם המדיניות לא תוגדר או תוגדר כ-true, תוכנות של צד שלישי לא יוכלו להוסיף אל התהליכים של Chrome קוד לביצוע.</translation> <translation id="4617338332148204752">דלג על בדיקת המטא תגים ב-<ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">הגדר רשימת היתרים של התקנת תוספים</translation> <translation id="4632343302005518762">אפשר ל-<ph name="PRODUCT_FRAME_NAME" /> לטפל בסוגי התוכן הרשומים.</translation> +<translation id="4632566332417930481">חסימת השימוש ב'כלים למפתחים' בתוספים שמותקנים על-ידי המדיניות הארגונית, התרת שימוש ב'כלים למפתחים' בהקשרים אחרים</translation> <translation id="4633786464238689684">משנה את התנהגות ברירת המחדל של המקשים בשורה העליונה לזו של מקשי פונקציה. אם המדיניות הזו תוגדר כ-true, שורת המקשים העליונה במקלדת תבצע פקודות של מקשי פונקציה כברירת מחדל. יש להקיש על מקש החיפוש על מנת להחזיר את ההתנהגות שלהם לזו של מקשי מדיה. @@ -1459,9 +1464,13 @@ אם המדיניות הזו מוגדרת כרשימה של מזהי שיטות קלט, שיטות הקלט הנתונות יהיו זמינות במסך הכניסה. שיטת הקלט הראשונה תיבחר מראש. כשמפעילים סמל של משתמש מסוים במסך הכניסה, שיטת הקלט הראשונה של המשתמש תהיה זמינה בנוסף לשיטות הקלט שצוינו במדיניות הזו. אם המדיניות הזו לא מוגדרת, שיטות הקלט במסך הכניסה ייקבעו לפי המקום שבו מוצג מסך הכניסה. המערכת תתעלם מערכים שאינם מזהים חוקיים של שיטת קלט.</translation> <translation id="5423001109873148185">כאשר מדיניות זו מופעלת היא מאלצת ייבוא של מנועי החיפוש מדפדפן ברירת המחדל הנוכחי. אם מדיניות זו מופעלת היא משפיעה גם על תיבת הדו-שיח של הייבוא. אם היא מושבתת, מנוע החיפוש המוגדר כברירת מחדל אינו מיובא. אם לא הוגדרה, ייתכן כי המערכת תשאל את המשתמש אם לייבא או שהייבוא יתבצע באופן אוטומטי.</translation> <translation id="5423197884968724595">שם הגבלת WebView של Android:</translation> +<translation id="5442026853063570579">המדיניות הזו שולטת גם על הגישה אל 'אפשרויות למפתחים' ב-Android. אם המדיניות הזו מוגדרת כ-'DeveloperToolsDisallowed' (ערך 2), משתמשים לא יוכלו לגשת אל 'אפשרויות למפתחים'. אם היא מוגדרת כערך אחר או אינה מוגדרת, משתמשים יוכלו לגשת אל אפשרויות למפתחים על-ידי הקשה שבע פעמים על מספר ה-Build באפליקציית ההגדרות של Android.</translation> <translation id="5447306928176905178">הפעלת דיווח של פרטי זיכרון (גודל ערימה של JS) לדף (יצא משימוש)</translation> <translation id="5457065417344056871">הפעלת מצב אורח בדפדפן</translation> <translation id="5457924070961220141">מאפשר לך להגדיר את מאפשר HTML המוגדר כברירת מחדל כאשר <ph name="PRODUCT_FRAME_NAME" /> מותקן. נעשה שימוש בהגדרת ברירת מחדל זו כאשר המדיניות שאינה מוגדרת היא לאפשר לדפדפן המארח לבצע את ההפעלה, אך תוכל באופן אופציונלי לבטל זאת וש-<ph name="PRODUCT_FRAME_NAME" /> יאפשר דפי HTML כברירת מחדל.</translation> +<translation id="5459155981813668716">מגדירה את שילובי השפה והאזור שבהם אפשר להציג את <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" /> יעבור אל הערך החוקי הראשון שצוין במדיניות הזו. אם המדיניות הזו מכילה רק ערכים לא חוקיים, ייעשה שימוש בשילוב גיבוי של שפה ואזור (נכון לעכשיו, en-US).</translation> <translation id="5464816904705580310">קבע הגדרות עבור משתמשים מנוהלים.</translation> <translation id="546726650689747237">השהיה של עמעום מסך בזמן שימוש בשקע חשמל</translation> <translation id="5469484020713359236">מאפשר לך להגדיר רשימה של דפוסי כתובות אתר המפרטת אתרים עם אישור להגדיר קובצי Cookie. אם מדיניות זו לא הוגדרה, המערכת תשתמש בערך ברירת המחדל הכללי עבור כל האתרים לפי המדיניות 'DefaultCookiesSetting', במקרה שהוגדרה, או לפי התצורה האישית שקבע המשתמש במקרה שלא הוגדרה.</translation> @@ -1575,7 +1584,6 @@ אם תשאיר מדיניות זו ללא הגדרה, המשוב הקולי יהיה מושבת בעת ההצגה הראשונה של מסך ההתחברות. משתמשים יוכלו להפעיל או להשבית את המשוב הקולי בכל עת והסטטוס שלו במסך ההתחברות יישאר עקבי בין המשתמשים.</translation> <translation id="5868414965372171132">תצורת רשת ברמת המשתמש</translation> -<translation id="588135807064822874">הפעלת 'גע כדי לחפש'</translation> <translation id="5883015257301027298">הגדרת ברירת מחדל של קובצי Cookie</translation> <translation id="5887414688706570295">מגדיר את קידומת TalkGadget שתשמש עבור מארחים של גישה מרחוק ומונע מהמשתמשים לשנות אותה. @@ -1679,6 +1687,7 @@ <translation id="6036523166753287175">אפשר חציית חומת אש ממארח הגישה מרחוק</translation> <translation id="6070667616071269965">פריסות המקלדת של מסך הכניסה במכשיר</translation> <translation id="6074963268421707432">אל תרשה לאף אתר להציג התראות בשולחן העבודה</translation> +<translation id="6074964551275531965">הגדרת תקופת הזמן להצגת הודעות לגבי עדכון</translation> <translation id="6076099373507468537">מדיניות זו מגדירה את רשימת מכשירי ה-USB שניתן לנתק ממנהל התקן הליבה שלהם, במטרה להשתמש במכשירים באמצעות ה-API chrome.usb ישירות בתוך אפליקציית אינטרנט. כל רשומה כוללת זוג מזהים - מזהה ספק USB ומזהה מוצר - שמציינים חומרה ספציפית. אם מדיניות זו לא הוגדרה, רשימת מכשירי ה-USB שניתן לנתק ריקה.</translation> @@ -1751,6 +1760,11 @@ <translation id="6392973646875039351">המדיניות הופכת את תכונת המילוי האוטומטי של <ph name="PRODUCT_NAME" /> לפעילה ומאפשרת למשתמשים להשלים אוטומטית טפסים באינטרנט באמצעות מידע שאוחסן בעבר, כגון כתובת או פרטי כרטיס אשראי. אם תשבית הגדרה זו, המילוי האוטומטי לא יהיה נגיש למשתמשים. אם תהפוך הגדרה זו לפעילה או לא תקבע ערך, המילוי האוטומטי יישאר תחת שליטתו של המשתמש. דבר זה יאפשר לו להגדיר פרופילי מילוי אוטומטי ולהפעיל או לבטל מילוי אוטומטי על פי שיקול דעתו.</translation> <translation id="6394350458541421998">מדיניות זו הופסקה החל מגרסה 29 של <ph name="PRODUCT_OS_NAME" />. השתמש במדיניות PresentationScreenDimDelayScale במקום זאת.</translation> <translation id="6401669939808766804">הוצא את המשתמש מהמערכת</translation> +<translation id="6412477120967771054">אם היא מוגדרת כ-false, Chrome Cleanup לא יכול לבדוק אם יש במערכת תוכנה לא רצויה ולבצע ניקוי. לא ניתן במצב זה להפעיל את Chrome Cleanup באופן ידני דרך chrome://settings/cleanup. + + אם היא מוגדרת כ-'true' או אינה מוגדרת, Chrome Cleanup בודק באופן תקופתי אם יש במערכת תוכנה לא רצויה, ואם תוכנה כזו תימצא, תוצג למשתמש שאלה האם להסיר אותה. במצב זה ניתן להפעיל את Chrome Cleanup באופן ידני דרך chrome://settings. + + המדיניות הזו לא זמינה במופעי Windows שאינם חלק מדומיין <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">מאפשר לך להגדיר רשימה של דפוסי כתובות אתר של אתרים שאין להם הרשאה להגדיר קובצי Cookie. אם מדיניות זו לא תוגדר, המערכת תשתמש בערך ברירת המחדל הכללי עבור כל האתרים, בהתאם למדיניות DefaultCookiesSetting (אם היא מוגדרת) או לפי התצורה שקבע המשתמש.</translation> <translation id="6426205278746959912">אינך יכול לאלץ אפליקציות Android להשתמש בשרת proxy. קבוצת-משנה של הגדרות שרת proxy זמינה לאפליקציות Android, והן יכולות לקבוע אם לכבד אותן או לא: @@ -1771,6 +1785,14 @@ כדי לקבוע אילו אתרים יורשו להפעיל Flash, יש לעיין במדיניות "DefaultPluginsSetting", "PluginsAllowedForUrls" ו-"PluginsBlockedForUrls" policies. אם ההגדרה הזו מושבתת או לא נקבעה, ייתכן שתוכן Flash ממקורות אחרים או תוכן קטן ייחסם.</translation> +<translation id="6535639183431116351">המדיניות הזו הוצאה משימוש ב-M68. יש להשתמש במקומה ב-DeveloperToolsAvailability. + + משביתה את 'כלים למפתחים' ואת 'לוח JavaScript'. + + אם ההגדרה הזו מופעלת, לא ניתן עוד לגשת אל 'כלים למפתחים' ולבדוק רכיבי באתרים. +המערכת תשבית מקשי קיצור, תפריטים ואפשרויות בתפריטי הקשר המיועדים לפתיחת 'כלים למפתחים' או 'לוח JavaScript'. + + אם האפשרות הזו מושבתת או אינה מוגדרת, 'כלים למפתחים' ו'לוח JavaScript' יהיו זמינים למשתמשים.</translation> <translation id="653608967792832033">מציינת את משך הזמן ללא קלט משתמש שלאחריו המסך ננעל כשנעשה שימוש בסוללה. כשהמדיניות הזו מוגדרת לערך גדול מאפס, היא מציינת את משך הזמן שבו המשתמש צריך להיות במצב לא פעיל לפני ש-<ph name="PRODUCT_OS_NAME" /> נועל את המסך. @@ -1828,19 +1850,14 @@ אם לא תגדיר מדיניות זו כלל, חיזויי רשת יופעלו, אך המשתמשים יוכלו לשנות זאת.</translation> <translation id="6658245400435704251">מציין עד כמה שניות המכשיר יכול לעכב אוטומטית את הורדת העדכון המתבצעת באמצעותו, מהרגע שבו העדכון נדחף לראשונה אל השרת. המכשיר עשוי להמתין חלק מזמן זה במונחים של זמן לפי שעון רגיל, ואת החלק הנותר במונחים של מספר בדיקות העדכון. בכל מקרה, הפיזור נמצא בתחום העליון של פרק זמן קבוע, כדי שהמכשיר לעולם לא ייתקע לנצח בהמתנה להוריד עדכון.</translation> <translation id="6665670272107384733">הגדרת התדירות שבה המשתמש צריך להזין סיסמה כדי להשתמש בביטול נעילה מהיר</translation> -<translation id="6681229465468164801">מאפשרת לך להגדיר רשימת דפוסים של כתובות המציינים אתרים שאינם רשאים להציג בפני המשתמש בקשת הרשאה לגשת אל מכשיר USB. +<translation id="6681229465468164801">מאפשרת לך להגדיר רשימת דפוסים של כתובות המציינים אתרים שאינם רשאים להציג בפני המשתמש בקשת הרשאה לגשת אל התקן USB. אם לא מגדירים את המדיניות הזו, הערך הגלובלי שמוגדר כברירת מחדל ישמש בכל האתרים מהמדיניות DefaultWebUsbGuardSetting, אם היא הוגדרה, או מהתצורה האישית של המשתמש אם המדיניות לא הוגדרה. -יש לוודא שדפוסים של כתובות אתרים במדיניות הזו לא מתנגשים עם דפוסים שהוגדרו דרך WebUsbAskForUrls. לא צוין איזו מאפשרויות המדיניות מקבלת עדיפות אם כתובת אתר כלשהי מופיעה בשתיהן.</translation> +יש לוודא שדפוסים של כתובות אתרים במדיניות הזו לא מתנגשים עם דפוסים שהוגדרו דרך WebUsbAskForUrls. לא מוגדר איזו מאפשרויות המדיניות מקבלת עדיפות אם כתובת אתר כלשהי מופיעה בשתיהן.</translation> <translation id="6689792153960219308">דיווח על מצב חומרה</translation> <translation id="6698071416141001300">סימון חשבונות כנמצאים בסיכון על-ידי שירות ההגנה באמצעות סיסמה מופעל אחרי שימוש חוזר בסיסמה</translation> <translation id="6699880231565102694">אפשר אימות של שני גורמים עבור מארחים של גישה מרחוק</translation> -<translation id="6702257826895463228">אישור לאתרים לנווט ולפתוח חלונות קופצים בו זמנית. - - הסבר מלא זמין בכתובת https://www.chromestatus.com/features/5675755719622656. - אם המדיניות הזו מופעלת, אתרים יהיו רשאים לנווט ולפתוח חלונות/כרטיסיות חדשים בו זמנית. - אם המדיניות הזו מושבתת או לא מוגדרת, אתרים לא יהיו רשאים לנווט ולפתוח חלון/כרטיסייה חדשים בו זמנית.</translation> <translation id="6724842112053619797">אם תפעיל את ההגדרה הזו, גם ההגדרות השמורות בפרופילים ב-<ph name="PRODUCT_NAME" />, כמו סימניות, נתוני מילוי אוטומטי, סיסמאות וכו', ייכתבו בקובץ שמאוחסן בתיקיית פרופיל המשתמש Roaming או במיקום שצוין על-ידי מנהל המערכת במדיניות <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. הפעלת המדיניות הזו משביתה את הסינכרון בענן. אם המדיניות הזו מושבתת או אינה מוגדרת, ייעשה שימוש רק בפרופילים המקומיים הרגילים. @@ -1984,11 +2001,11 @@ אם ההגדרה הזו מושבתת או לא תוגדר, תחול הגנת ברירת המחדל של גלישה בטוחה על כל המשאבים. המדיניות הזו לא זמינה במופעי Windows שלא צורפו אל דומיין <ph name="MS_AD_NAME" />.</translation> <translation id="7079519252486108041">חסום חלונות קופצים באתרים אלה</translation> -<translation id="7085803328069945025">מאפשרת לך להגדיר רשימת דפוסים של כתובות המציינים אתרים שרשאים להציג בפני המשתמש בקשת הרשאה לגשת אל מכשיר USB. +<translation id="7085803328069945025">מאפשרת לך להגדיר רשימת דפוסים של כתובות המציינים אתרים שרשאים להציג בפני המשתמש בקשת הרשאה לגשת אל התקן USB. אם לא מגדירים את המדיניות הזו, הערך הגלובלי שמוגדר כברירת מחדל ישמש בכל האתרים מהמדיניות DefaultWebUsbGuardSetting, אם היא הוגדרה, או מהתצורה האישית של המשתמש אם היא לא הוגדרה. -יש לוודא שדפוסים של כתובות אתרים במדיניות הזו לא מתנגשים עם דפוסים שהוגדרו דרך WebUsbAskForUrls. לא צוין איזו מאפשרויות המדיניות מקבלת עדיפות אם כתובת אתר כלשהי מופיעה בשתיהן.</translation> +יש לוודא שדפוסים של כתובות אתרים במדיניות הזו לא מתנגשים עם דפוסים שהוגדרו דרך WebUsbAskForUrls. לא מוגדר איזו מאפשרויות המדיניות מקבלת עדיפות אם כתובת אתר כלשהי מופיעה בשתיהן.</translation> <translation id="7106631983877564505">אפשר נעילה כאשר מכשירי <ph name="PRODUCT_OS_NAME" /> אינם פעילים או מושעים. אם תהפוך הגדרה זו לפעילה, משתמשים יתבקשו להזין סיסמה כדי לבטל את נעילת המכשירים ממצב שינה. @@ -2182,6 +2199,7 @@ בכתובת https://developers.google.com/safe-browsing אפשר למצוא מידע נוסף על 'גלישה בטוחה'.</translation> <translation id="7643883929273267746">הגבלת החשבונות הגלויים ב-<ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">קובעת אם נתוני הנדידה יופעלו עבור המכשיר. אם מוגדרת כ'אמת', תתאפשר נדידת נתונים. אם אינה מוגדרת, או מוגדרת כ'שקר', נדידת נתונים תהיה לא זמינה.</translation> +<translation id="7673194325208122247">תקופת זמן (אלפיות שנייה)</translation> <translation id="7683777542468165012">רענון מדיניות דינמי</translation> <translation id="7694807474048279351">תזמן אתחול אוטומטי לאחר שהוחל עדכון עבור <ph name="PRODUCT_OS_NAME" />. @@ -2308,6 +2326,13 @@ <translation id="7974114691960514888">מדיניות זו אינה נתמכת עוד. מאפשר שימוש של שרתי STUN ושרתי ממסר בעת חיבור ללקוח מרוחק. אם הפכת הגדרה זו לפעילה, מחשב זה יכול לגלות מחשבי מארח מרוחקים אלה ולהתחבר אליהם, גם אם הם מופרדים על ידי חומת אש. אם הגדרה זו מושבתת וחיבורי UDP יוצאים מסוננים על ידי חומת האש, מחשב זה יכול להתחבר רק למחשבי מארח בתוך הרשת המקומית.</translation> <translation id="7976157349247117979">שם היעד של <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">אם היא לא מוגדרת, כש-Chrome Cleanup מוצא תוכנה לא רצויה, הוא עשוי לדווח ל-Google מטא נתונים לגבי הבדיקה בהתאם למדיניות שהוגדרה על-ידי SafeBrowsingExtendedReportingEnabled. לאחר מכן Chrome Cleanup יציג שאלה למשתמש האם לנקות את התוכנה הלא רצויה. המשתמש יכול לבחור לשתף את תוצאות הניקוי עם Google כדי לסייע בזיהוי עתידי של תוכנות לא רצויות. התוצאות האלה כוללות מפתחות מרשם ומטא נתונים לגבי קבצים, כפי שמתואר בסקירת הפרטיות של Chrome . + + אם היא מוגדרת כ-false, כש-Chrome Cleanup מוצא תוכנה לא רצויה, הוא לא ידווח ל-Google מטא נתונים לגבי הבדיקה , ויעקוף כל מדיניות שהוגדרה על-ידי SafeBrowsingExtendedReportingEnabled. Chrome Cleanup יציג בפני המשתמש שאלה האם לנקות את התוכנה הלא רצויה. תוצאות הניקוי לא ידווחו אל Google ולא תהיה למשתמש אפשרות לעשות זאת בעצמו. + + אם היא מוגדרת כ-true, כש-Chrome Cleanup מוצא תוכנה לא רצויה, הוא עשוי לדווח ל-Google מטא נתונים לגבי הבדיקה בהתאם למדיניות שהוגדרה על-ידי SafeBrowsingExtendedReportingEnabled. Chrome Cleanup יציג בפני המשתמש שאלה האם לנקות את התוכנה הלא רצויה. תוצאות הניקוי ידווחו אל Google ולא תהיה למשתמש אפשרות למנוע זאת. + + המדיניות הזו לא זמינה במופעי Windows שאינם חלק מדומיין <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> מומלץ לעיין בהגדרת המדיניות IsolateOrigins כדי ליהנות מהיתרונות של שתי האפשרויות - בידוד והשפעה מוגבלת על משתמשים - על-ידי שימוש ב-IsolateOrigins עם רשימה של האתרים @@ -2435,6 +2460,7 @@ <translation id="8300455783946254851">כאשר היא מוגדרת כ-true, משביתה את הסנכרון של Google Drive ביישום 'קבצים' של <ph name="PRODUCT_OS_NAME" /> בעת שימוש בחיבור סלולרי. במקרה זה, נתונים מסונכרנים עם Google Drive רק כשיש חיבור דרך Wi-Fi או Ethernet. אם לא הוגדרה, או אם הוגדרה כ-false, משתמשים יוכלו להעביר קבצים ל-Google Drive באמצעות חיבור סלולרי.</translation> +<translation id="8300992833374611099">הגדרת המקומות שבהם אפשר להשתמש ב'כלים למפתחים'</translation> <translation id="8312129124898414409">מדיניות זו מאפשרת לך לקבוע אם מותר לאתרים להשתמש ביצירת מפתחות. ניתן לאפשר יצירת מפתחות עבור כל האתרים או לבטל זאת עבור כל האתרים. אם לא הגדרת מדיניות זו, המערכת תשתמש ב-'BlockKeygen' והמשתמש יוכל לשנות זאת.</translation> @@ -2661,6 +2687,11 @@ <translation id="9035964157729712237">מזהי תוספים שפטורים מהוספה לרשימה השחורה</translation> <translation id="9042911395677044526">מאפשרת לדחוף את תצורת הרשת כדי שתיושם עבור משתמש למכשיר <ph name="PRODUCT_OS_NAME" />. תצורת הרשת היא מחרוזת בפורמט JSON כפי שהוגדרה על ידי פורמט תצורת הרשת הפתוחה, באופן המתואר ב-<ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">ציין האם פעילות וידאו משפיעה על ניהול צריכת החשמל</translation> +<translation id="9085839450090699752">מאפשרת לך לקבוע את תקופת הזמן באלפיות שנייה להצגת הודעה למשתמש על כך שצריך להפעיל מחדש את <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 אלפיות שנייה (שבוע) בשביל דפדפנים.</translation> <translation id="9088433379343318874">הפעלת ספק התוכן של המשתמש בפיקוח</translation> <translation id="9088444059179765143">קבע את תצורת השיטה לזיהוי אוטומטי של אזור זמן</translation> <translation id="9096086085182305205">רשימת היתרים של שרת אימות</translation> @@ -2702,7 +2733,7 @@ <translation id="9158929520101169054">התרת כניסה עם מספר חשבונות בתוך הדפדפן</translation> <translation id="9165792353046089850">מאפשרת לך לקבוע אם אתרים יכולים לקבל גישה אל התקני USB מחוברים. ניתן לחסום את הגישה לחלוטין, או שהמשתמש יתבקש להעניק אישור בכל פעם שאתר רוצה לקבל גישה אל התקני USB מחוברים. - אפשר לעקוף את המדיניות הזו בשביל דפוסי ספציפיים של כתובות אתרים בעזרת אפשרויות המדיניות 'WebUsbAskForUrls' ו-'WebUsbBlockedForUrls'. + אפשר לעקוף את המדיניות הזו בשביל דפוסים ספציפיים של כתובות אתרים בעזרת אפשרויות המדיניות 'WebUsbAskForUrls' ו-'WebUsbBlockedForUrls'. אם המדיניות הזו לא תוגדר, יעשה שימוש באפשרות '3' והמשתמש יוכל לשנות את ההגדרה.</translation> <translation id="9167719789236691545">השבתת Drive באפליקציה 'קבצים' של <ph name="PRODUCT_OS_NAME" /></translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index da4fb80..0c7034e 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -648,13 +648,6 @@ このポリシーが使用される場合、ユーザーはこのポリシーに指定されている値に ID が一致するプリンタのみを使用できます。この ID は、<ph name="DEVICE_PRINTERS_POLICY" /> で指定されたファイル内の「id」または「guid」フィールドに対応している必要があります。 </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> のコンテンツ ビューで [タップして検索] を使用できるかどうかを制御します。 - -この設定を有効にした場合、ユーザーは [タップして検索] を使用でき、この機能のオンとオフを切り替えることができます。 - -この設定を無効にした場合、[タップして検索] は無効になります。 - -このポリシーが未設定の場合は、有効にした場合と同じ結果になります(上の説明をご覧ください)。</translation> <translation id="285480231336205327">ハイ コントラスト モードを有効にする</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" /> で、印刷プレビューのデフォルトの出力先として、最近使用したプリンタではなくシステムのデフォルト プリンタが使用されるように設定します。 @@ -1583,7 +1576,6 @@ このポリシーが未設定の場合は、ログイン画面が表示された直後は音声フィードバックが無効になります。ユーザーはいつでも音声フィードバックを有効または無効にすることができ、ログイン画面での音声フィードバックの状態はログアウト後も維持されます。</translation> <translation id="5868414965372171132">ユーザー レベルのネットワーク設定</translation> -<translation id="588135807064822874">タップして検索を有効にする</translation> <translation id="5883015257301027298">デフォルトの Cookie 設定</translation> <translation id="5887414688706570295">リモート アクセス ホストが使用する TalkGadget プレフィックスを設定し、ユーザーが変更できないようにします。 @@ -1844,11 +1836,6 @@ <translation id="6689792153960219308">ハードウェア ステータスを報告する</translation> <translation id="6698071416141001300">パスワードが再使用されたときに、パスワード保護サービスでリスクのあるアカウントとして報告する</translation> <translation id="6699880231565102694">リモート アクセス ホストの 2 段階認証プロセスを有効にする</translation> -<translation id="6702257826895463228">移動と同時にポップアップを表示することをサイトに許可します。 - - 詳しくは、https://www.chromestatus.com/features/5675755719622656 をご覧ください。 - このポリシーが有効な場合、サイトでは移動と同時に新しいウィンドウやタブを開くことができます。 - このポリシーが無効または未設定の場合、サイトでは移動と同時に新しいウィンドウやタブを開くことはできません。</translation> <translation id="6724842112053619797">この設定を有効にした場合は、<ph name="PRODUCT_NAME" /> プロフィールに保存されている設定(ブックマーク、自動入力データ、パスワードなど)が、「ローミング」ユーザー プロフィール フォルダまたは管理者が <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> ポリシーで指定した場所に保存されるファイルにも書き込まれます。このポリシーを有効にすると、クラウド同期は無効になります。 このポリシーを無効にするか未設定のままにした場合は、通常のローカル プロフィールのみが使用されます。
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb index 9daa2d7..cade057a 100644 --- a/components/policy/resources/policy_templates_kn.xtb +++ b/components/policy/resources/policy_templates_kn.xtb
@@ -449,6 +449,20 @@ ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ನಿಘಂಟನ್ನು ಬಳಸಿಕೊಂಡು ಕಾಗುಣಿತ ಪರಿಶೀಲನೆಯನ್ನು ಈಗಲೂ ಮಾಡಬಹುದಾಗಿದೆ; ಈ ನೀತಿಯು ಆನ್ಲೈನ್ ಸೇವೆಯ ಬಳಕೆಯನ್ನು ಮಾತ್ರ ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಈ ಸೆಟ್ಟಿಂಗ್ ಕಾನ್ಫಿಗರ್ ಮಾಡದಿದ್ದರೆ ನಂತರ ಬಳಕೆದಾರರು ಕಾಗುಣಿತ ಪರಿಶೀಲನೆಯ ಸೇವೆಯನ್ನು ಬಳಸಿದ್ದಾರೆಯೇ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು.</translation> +<translation id="2294283832646774959">ಪ್ರಿಂಟರ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. + + ನಿರ್ವಾಹಕರು, ಬಳಕೆದಾರರಿಗೆ ಪ್ರಿಂಟರ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಒದಗಿಸಲು ಈ ಕಾರ್ಯನೀತಿಯು ಅವಕಾಶ ನೀಡುತ್ತದೆ. + + <ph name="PRINTER_DISPLAY_NAME" /> ಮತ್ತು <ph name="PRINTER_DESCRIPTION" /> ಮುಕ್ತ-ರೂಪದ ಸ್ಟ್ರಿಂಗ್ಗಳಾಗಿದ್ದು, ಪ್ರಿಂಟರ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಆಯ್ಕೆ ಮಾಡುವುದಕ್ಕಾಗಿ, ಇವುಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು. ಅಂತಿಮ ಬಳಕೆದಾರರನ್ನು ಆಧರಿಸಿ ಪ್ರಿಂಟರ್ ಗುರುತಿಸಲು, <ph name="PRINTER_MANUFACTURER" /> ಮತ್ತು <ph name="PRINTER_MODEL" /> ನೆರವಾಗುತ್ತವೆ. ಅವು ಪ್ರಿಂಟರ್ನ ತಯಾರಕರು ಮತ್ತು ಮಾಡೆಲ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ. <ph name="PRINTER_URI" />, ಯಾವುದೇ ಕ್ಲೈಂಟ್ ಕಂಪ್ಯೂಟರ್ನಿಂದ ತಲುಪಲು ಸಾಧ್ಯವಿರುವ ವಿಳಾಸವಾಗಿರಬೇಕು ಮತ್ತು <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, ಹಾಗೂ <ph name="URI_QUEUE" /> ಅನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. <ph name="PRINTER_UUID" /> ಐಚ್ಛಿಕವಾಗಿದೆ. ಇದನ್ನು ಒದಗಿಸಿದರೆ, <ph name="ZEROCONF_DISCOVERY" /> ಪ್ರಿಂಟರ್ಗಳ ನಕಲನ್ನು ತೊಡೆದುಹಾಕಲು ಅದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. + + <ph name="PRODUCT_NAME" /> ಬೆಂಬಲಿತ ಪ್ರಿಂಟರ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಸ್ಟ್ರಿಂಗ್ಗಳಲ್ಲಿ ಒಂದು ಸ್ಟ್ರಿಂಗ್ಗೆ <ph name="PRINTER_EFFECTIVE_MODEL" /> ಹೊಂದಿಕೆಯಾಗಬೇಕು. ಪ್ರಿಂಟರ್ಗಾಗಿ ಸೂಕ್ತ PPD ಅನ್ನು ಗುರುತಿಸಿ, ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಈ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು https://support.google.com/chrome?p=noncloudprint ನಲ್ಲಿ ನೋಡಬಹುದು. + + ಪ್ರಿಂಟರ್ ಅನ್ನು ಮೊದಲ ಬಾರಿ ಬಳಸಿದಾಗ, ಪ್ರಿಂಟರ್ ಹೊಂದಿಸುವಿಕೆ ಪೂರ್ತಿಯಾಗುತ್ತದೆ. ಪ್ರಿಂಟರ್ ಅನ್ನು ಬಳಸುವವರೆಗೆ PPD ಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಅದರ ಬಳಿಕ, ಆಗಾಗ ಬಳಸುವ PPD ಗಳನ್ನು ಕ್ಯಾಷ್ನಲ್ಲಿ ಉಳಿಸಲಾಗುವುದು. + + ಬಳಕೆದಾರರು ಪ್ರಿಂಟರ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಸಾಧನಗಳಲ್ಲಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದೇ ಎಂಬುದರ ಮೇಲೆ ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ಪ್ರತ್ಯೇಕ ಬಳಕೆದಾರರು ಪ್ರಿಂಟರ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದಕ್ಕೆ ಪೂರಕವಾಗಿರುವುದು ಇದರ ಉದ್ದೇಶವಾಗಿದೆ. + + ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಮೂಲಕ ನಿರ್ವಹಿಸುವ ಸಾಧನಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, <ph name="MACHINE_NAME_VARIABLE" /> ಅನ್ನು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಮೆಷೀನ್ ಹೆಸರು ಅಥವಾ ಅದರ ಸಬ್ಸ್ಟ್ರಿಂಗ್ನಷ್ಟು ವಿಸ್ತರಿಸುವುದನ್ನು ಈ ಕಾರ್ಯನೀತಿಯು ಬೆಂಬಲಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಮೆಷೀನ್ ಹೆಸರು <ph name="MACHINE_NAME_EXAMPLE" /> ಆಗಿದ್ದರೆ, 6ನೇ ಸ್ಥಾನದ ನಂತರದಿಂದ ಪ್ರಾರಂಭವಾಗುವ 4 ಅಕ್ಷರಗಳನ್ನು , ಅಂದರೆ <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> ಅನ್ನು <ph name="MACHINE_NAME_PART_EXAMPLE" /> ಗೆ ಬದಲಿಸಲಾಗುತ್ತದೆ. ಸ್ಥಾನವು ಶೂನ್ಯದಿಂದ ಆರಂಭವಾಗುತ್ತದೆ ಎನ್ನುವುದನ್ನು ಗಮನಿಸಿ. + </translation> <translation id="2294382669900758280">ಒಂದು ವೇಳೆ ಈ ನೀತಿಯನ್ನು <ph name="TRUE" /> ಗೆ ಹೊಂದಿಸಿದ್ದರೂ, Android ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಪ್ಲೇ ಆಗುತ್ತಿರುವ ವೀಡಿಯೊವನ್ನು ಪರಿಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="2298647742290373702"><ph name="PRODUCT_NAME" /> ನಲ್ಲಿ ಡಿಫಾಲ್ಟ್ ಹೊಸ ಟ್ಯಾಬ್ ಪುಟವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.</translation> <translation id="2299220924812062390">ಸಕ್ರಿಯಗೊಳಿಸಿದ ಪ್ಲಗಿನ್ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸು</translation> @@ -679,13 +693,6 @@ ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಿದರೆ, ಈ ಕಾರ್ಯನೀತಿಯಲ್ಲಿರುವ ಮೌಲ್ಯಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಐಡಿಗಳನ್ನು ಹೊಂದಿರುವ ಪ್ರಿಂಟರ್ಗಳು ಮಾತ್ರ ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿರುತ್ತವೆ. ಐಡಿಗಳು, <ph name="DEVICE_PRINTERS_POLICY" /> ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿರುವ ಫೈಲ್ನಲ್ಲಿ "ಐಡಿ" ಅಥವಾ "ಜಿಯುಐಡಿ" ಕ್ಷೇತ್ರಗಳಿಗೆ ಸಂಬಂಧಿಸಿರಬೇಕು. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> ನ ವಿಷಯ ವೀಕ್ಷಣೆಯಲ್ಲಿ ಹುಡುಕಲು ಸ್ಪರ್ಶಿಸು ಲಭ್ಯತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. - - ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನೀವು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಹುಡುಕಲು ಸ್ಪರ್ಶಿಸು ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಅವರು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡಲು ಆಯ್ಕೆಮಾಡಿಕೊಳ್ಳಬಹುದು. - - ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನೀವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಹುಡುಕಲು ಸ್ಪರ್ಶಿಸು ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. - - ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಹಾಗೇ ಬಿಟ್ಟರೆ, ಅದು ಸಕ್ರಿಯಗೊಳಿಸಿರುವುದಕ್ಕೆ ಸಮವಾಗಿರುತ್ತದೆ, ಮೇಲಿನ ವಿವರಣೆಯನ್ನು ನೋಡಿ.</translation> <translation id="285480231336205327">ಉನ್ನತ ಕಾಂಟ್ರಾಸ್ಟ್ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="2854919890879212089">ಮುದ್ರಣದ ಪೂರ್ವ ವೀಕ್ಷಣೆಯಲ್ಲಿ ತುಂಬಾ ಇತ್ತೀಚೆಗೆ ಬಳಸಲಾದ ಪ್ರಿಂಟರ್ ಆಯ್ಕೆಯನ್ನು ತೋರಿಸುವ ಬದಲಿಗೆ <ph name="PRODUCT_NAME" /> ಅನ್ನು ಸಿಸ್ಟಂನ ಡಿಫಾಲ್ಟ್ ಪ್ರಿಂಟರ್ ಆಗಿ ತೋರಿಸಲು ಕಾರಣಗಳು. @@ -1258,6 +1265,7 @@ <translation id="4508686775017063528">ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದೇ ಇದ್ದರೆ <ph name="PRODUCT_NAME" /> ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು ಮತ್ತು ಬಿತ್ತರಿಸುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ವೆಬ್ಸೈಟ್ಗಳು ಮತ್ತು ಬಿತ್ತರಿಸುವಿಕೆಯ ಪರಿಕರಪಟ್ಟಿ ಐಕಾನ್ (ತೋರಿಸಿದರೆ) ಅಪ್ಲಿಕೇಶನ್ ಮೆನು, ಪುಟ ಸಂದರ್ಭ ಮೆನುಗಳು, ಮಾಧ್ಯಮ ನಿಯಂತ್ರಣಗಳಿಂದ ಇದನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಈ ನೀತಿಯು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು.</translation> +<translation id="4515404363392014383">ವಿಶ್ವಾಸಾರ್ಹ ಮೂಲಗಳಿಗೆ ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="4518251772179446575">ಬಳಕೆದಾರರ ಭೌತಿಕ ಸ್ಥಾನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಯಾವಾಗಲಾದರೂ ಸೈಟ್ ಬೇಕಾದಲ್ಲಿ ಕೇಳಿ</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> ನ ಓಮ್ನಿಬಾಕ್ಸ್ನಲ್ಲಿ ಸಲಹೆಗಳನ್ನು ಹುಡುಕಲು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಕೆದಾರರು ಬದಲಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ. @@ -1385,6 +1393,7 @@ ಒಂದು ವೇಳೆ ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದರೆ, ಪರದೆ ಎಚ್ಚರಿಕೆ ಲಾಕ್ಗಳ ವಿನಂತಿಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="487460824085252184">ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರವಾನೆ ಮಾಡಿ, ಬಳಕೆದಾರರ ಅನುಮತಿಯನ್ನು ಕೇಳಬೇಡಿ.</translation> +<translation id="4874982543810021567">ಈ ಸೈಟ್ಗಳಲ್ಲಿ WebUSB ನಿರ್ಬಂಧಿಸಿ</translation> <translation id="4876805738539874299">ಗರಿಷ್ಟ SSL ಆವೃತ್ತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="4897928009230106190">POST ಸಹಿತ ಸಲಹೆ ಹುಡುಕಾಟ ನಡೆಸುವಾಗ ಬಳಸಿಕೊಂಡ ಮಾನದಂಡಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಇದು ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಹೆಸರು/ಮೌಲ್ಯದ ಜೋಡಿಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿರುವಂತೆ {ಹುಡುಕಾಟ ನಿಯಮಗಳು} ಮೌಲ್ಯವು ಟೆಂಪ್ಲೇಟ್ ಮಾನದಂಡವಾಗಿದ್ದಲ್ಲಿ, ಇದನ್ನು ನೈಜ ಹುಡುಕಾಟದ ನಿಯಮಗಳ ಡೇಟಾದಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. @@ -1716,7 +1725,6 @@ ಒಂದು ವೇಳೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟರೆ, ಲಾಗಿನ್ ಪರದೆಯು ಮೊದಲು ಪ್ರದರ್ಶನಗೊಂಡಾಗ ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆ ನಿಷ್ಕ್ರಿಯಗೊಳ್ಳುತ್ತದೆ. ಬಳಕೆದಾರರು ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಸಕ್ರಿಯ ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು ಮತ್ತು ಲಾಗಿನ್ ಪರದೆಯಲ್ಲಿರುವ ಅದರ ಸ್ಥಿತಿಯು ಬಳಕೆದಾರರ ನಡುವೆ ನಿರಂತರವಾಗಿರುತ್ತದೆ.</translation> <translation id="5868414965372171132">ಬಳಕೆದಾರ ಮಟ್ಟದ ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರೇಶನ್</translation> -<translation id="588135807064822874">ಹುಡುಕಲು ಸ್ಪರ್ಶಿಸು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="5883015257301027298">ಡಿಫಾಲ್ಟ್ ಕುಕೀಸ್ ಸೆಟ್ಟಿಂಗ್</translation> <translation id="5887414688706570295">ರಿಮೋಟ್ ಪ್ರವೇಶ ಹೋಸ್ಟ್ಗಳ ಮೂಲಕ ಬಳಸಲಾಗುವ TalkGadget ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬದಲಿಸದಂತೆ ಬಳಕೆದಾರರನ್ನು ತಡೆಯುತ್ತದೆ. @@ -1975,14 +1983,14 @@ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟರೆ, ನೆಟ್ವರ್ಕ್ ಮುನ್ಸೂಚನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ ಆದರೆ ಬಳಕೆದಾರರಿಗೆ ಇದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> <translation id="6658245400435704251">ಸರ್ವರ್ಗೆ ಮೊದಲು ಅಪ್ಡೇಟ್ವನ್ನು ದೂಡಿದಲ್ಲಿಂದ ಸಾಧನವು ಅಪ್ಡೇಟ್ದ ಡೌನ್ಲೋಡ್ ಅನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ವಿಳಂಬ ಮಾಡಬಹುದಾದವರೆಗಿನ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಗೋಡೆ-ಗಡಿಯಾರದ ಸಮಯದಲ್ಲಿ ಹಾಗೂ ಅಪ್ಡೇಟ್ ಪರಿಶೀಲನೆಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ಸಾಧನವು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ಆಗಾಗ್ಗೆ ಬದಲಾಗುವ ಸಮಯದ ಹದ್ದುಬಸ್ತಿನಲ್ಲಿ ಚದುರಿರುತ್ತದೆ ಆದ್ದರಿಂದ ಡೌನ್ಲೋಡ್ಗೆ ನಿರೀಕ್ಷಿಸುತ್ತಿರುವಾಗ ಸಾಧನವು ಮಧ್ಯೆ ಸಿಲುಕಿಹಾಕಿಕೊಳ್ಳುವುದಿಲ್ಲ ಯಾವಾಗಲೂ ನವೀಕರಿಸುತ್ತದೆ.</translation> <translation id="6665670272107384733">ತ್ವರಿತ ಅನ್ಲಾಕ್ ಬಳಸಲು ಬಳಕೆದಾರರು ಎಷ್ಟು ಬಾರಿ ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಬೇಕು ಎಂಬುದನ್ನು ಸೆಟ್ ಮಾಡಿ</translation> +<translation id="6681229465468164801">USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶ ನೀಡಬೇಕೆಂದು ಬಳಕೆದಾರರನ್ನು ಕೇಳದಂತೆ ತಡೆಯಬೇಕಾದ ಸೈಟ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ URL ವಿನ್ಯಾಸಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ಇದು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. + + ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದ ಪಕ್ಷದಲ್ಲಿ, 'DefaultWebUsbGuardSetting' ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದರೆ, ಎಲ್ಲಾ ಸೈಟ್ಗಳಿಗಾಗಿ ಸಮಗ್ರ ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಇಲ್ಲಿಂದ ಬಳಸಲಾಗುತ್ತದೆ; ಇಲ್ಲದಿದ್ದರೆ ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ಬಳಸಲಾಗುತ್ತದೆ. + + ಈ ಕಾರ್ಯನೀತಿಯ URL ವಿನ್ಯಾಸಗಳು, WebUsbAskForUrls ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವವುಗಳೊಂದಿಗೆ ಸಂಘರ್ಷ ಹೊಂದಿರಬಾರದು. URL ಎರಡಕ್ಕೂ ಹೊಂದಿಕೆಯಾದರೆ, ಯಾವ ಕಾರ್ಯನೀತಿಯು ಆದ್ಯತೆ ಹೊಂದಿರುತ್ತದೆ ಎನ್ನುವುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿಲ್ಲ.</translation> <translation id="6689792153960219308">ಹಾರ್ಡ್ವೇರ್ ಸ್ಥಿತಿ ವರದಿ ಮಾಡಿ</translation> <translation id="6698071416141001300">ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದರೆ ಪಾಸ್ವರ್ಡ್ ಸಂರಕ್ಷಣೆಗೆ ಸಂಬಂಧಪಟ್ಟಂತೆ ಅಪಾಯದಲ್ಲಿರುವ ಖಾತೆ ಫ್ಲ್ಯಾಗ್ ಮಾಡುವಿಕೆ ಟ್ರಿಗರ್ ಆಗುತ್ತದೆ</translation> <translation id="6699880231565102694">ರಿಮೋಟ್ ಪ್ರವೇಶ ಹೋಸ್ಟ್ಗಳಿಗಾಗಿ ಎರಡು ಅಂಶದ ಪ್ರಮಾಣೀಕರಣ ಸಕ್ರಿಯಗೊಳಿಸು</translation> -<translation id="6702257826895463228">ಏಕಕಾಲದಲ್ಲಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮತ್ತು ಪಾಪ್-ಅಪ್ಗಳನ್ನು ತೆರೆಯಲು ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. - - ಪೂರ್ಣ ವಿವರಣೆಗಾಗಿ, https://www.chromestatus.com/features/5675755719622656 ನೋಡಿ. - ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ, ಏಕಕಾಲದಲ್ಲಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮತ್ತು ಹೊಸ ವಿಂಡೋ/ಟ್ಯಾಬ್ಗಳನ್ನು ತೆರೆಯಲು ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. - ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ, ಏಕಕಾಲದಲ್ಲಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮತ್ತು ಹೊಸ ವಿಂಡೋ/ಟ್ಯಾಬ್ಗಳನ್ನು ತೆರೆಯಲು ಸೈಟ್ಗಳಿಗೆ ನಿರಾಕರಿಸುತ್ತದೆ.</translation> <translation id="6724842112053619797">ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಸ್ವಯಂ ಭರ್ತಿ ಡೇಟಾ, ಪಾಸ್ವರ್ಡ್ಗಳು, ಇತ್ಯಾದಿಯಂತಹ <ph name="PRODUCT_NAME" />ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಸಂಗ್ರಹಿತವಾದ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಇದನ್ನು <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />ನೀತಿಯ ಮೂಲಕ ನಿರ್ವಾಹಕರು ಸೂಚಿಸಲಾದ ರೋಮಿಂಗ್ ಬಳಕೆದಾರ ಪ್ರೊಫೈಲ್ ಫೋಲ್ಡರ್ ಅಥವಾ ಸ್ಥಳದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಫೈಲ್ಗೆ ಸಹ ಬರೆಯಲಾಗುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಕ್ಲೌಡ್ ಸಿಂಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. @@ -2105,6 +2113,11 @@ ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದಿದ್ದರೆ, ಎಲ್ಲಾ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಡಿಫಾಲ್ಟ್ ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಸಂರಕ್ಷಣೆಯನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ. <ph name="MS_AD_NAME" /> ಡೊಮೇನ್ಗೆ ಸೇರಿಸಿರದ Windows ನಿದರ್ಶನಗಳಿಗೆ ಈ ಕಾರ್ಯನೀತಿಯು ಲಭ್ಯವಿರುವುದಿಲ್ಲ.</translation> <translation id="7079519252486108041">ಈ ಸೈಟ್ಗಳಲ್ಲಿನ ಪಾಪ್ಅಪ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸು</translation> +<translation id="7085803328069945025">USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶ ನೀಡಬೇಕೆಂದು ಬಳಕೆದಾರರನ್ನು ಕೇಳಲು ಅನುಮತಿಯಿರುವ ಸೈಟ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ URL ವಿನ್ಯಾಸಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ಇದು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. + + ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದ ಪಕ್ಷದಲ್ಲಿ, 'DefaultWebUsbGuardSetting' ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದರೆ, ಎಲ್ಲಾ ಸೈಟ್ಗಳಿಗಾಗಿ ಸಮಗ್ರ ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಇಲ್ಲಿಂದ ಬಳಸಲಾಗುತ್ತದೆ; ಇಲ್ಲದಿದ್ದರೆ ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ಬಳಸಲಾಗುತ್ತದೆ. + + ಈ ಕಾರ್ಯನೀತಿಯ URL ವಿನ್ಯಾಸಗಳು, WebUsbBlockedForUrls ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವವುಗಳೊಂದಿಗೆ ಸಂಘರ್ಷ ಹೊಂದಿರಬಾರದು. URL ಎರಡಕ್ಕೂ ಹೊಂದಿಕೆಯಾದರೆ, ಯಾವ ಕಾರ್ಯನೀತಿಯು ಆದ್ಯತೆ ಹೊಂದಿರುತ್ತದೆ ಎನ್ನುವುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿಲ್ಲ.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> ಸಾಧನಗಳು ನಿಷ್ಕ್ರಿಯ ಅಥವಾ ಅಮಾನತ್ತುಗೊಂಡಾಗ ಲಾಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನೀವು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಸಾಧನವನ್ನು ಅವುಗಳ ನಿದ್ರಾಸ್ಥಿತಿಯಿಂದ ಅನ್ಲಾಕ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಬಳಕೆದಾರರಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಕೇಳಲಾಗುತ್ತದೆ. @@ -2869,6 +2882,7 @@ AC ಪವರ್ ಮತ್ತು ಬ್ಯಾಟರಿಗಾಗಿ ಪ್ರತ್ಯೇಕ ಸೆಟ್ಟಿಂಗ್ಗಳು ಸಹ ಇವೆ. </translation> <translation id="9105265795073104888">ಪ್ರಾಕ್ಸಿ ಕಾನ್ಫಿಗರೇಶನ್ ಆಯ್ಕೆಗಳ ಉಪವರ್ಗವನ್ನು ಮಾತ್ರ Android ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಲಭ್ಯವಾಗಿಸಲಾಗುತ್ತದೆ. ಪ್ರಾಕ್ಸಿಯನ್ನು ಬಳಸಲು Android ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಯ್ಕೆ ಮಾಡಿಕೊಳ್ಳಬಹುದು. ಪ್ರಾಕ್ಸಿಯನ್ನು ಬಳಸುವಂತೆ ಅವುಗಳಿಗೆ ನೀವು ಒತ್ತಾಯಿಸಲಾಗುವುದಿಲ್ಲ.</translation> +<translation id="9106865192244721694">ಈ ಸೈಟ್ಗಳಲ್ಲಿ WebUSB ಗೆ ಅವಕಾಶ ನೀಡಿ</translation> <translation id="9112727953998243860">ಎಂಟರ್ಪ್ರೈಸ್ ಪ್ರಿಂಟರ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್</translation> <translation id="9112897538922695510">ಪ್ರೋಟೋಕಾಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಂದಾಯಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು ಶಿಫಾರಸು ಮಾಡಿರುವ ನೀತಿ ಮಾತ್ರವೇ ಆಗಿರಬಹುದು. ಗುಣಲಕ್ಷಣದ |ಪ್ರೋಟೋಕಾಲ್| 'mailto' ಎಂಬ ಯೋಜನೆಗೆ ಹೊಂದಿಸಿರಬೇಕು ಮತ್ತು ಯೋಜನೆಯನ್ನು ನಿರ್ವಹಿಸುವಂತಹ ಅಪ್ಲಿಕೇಶನ್ನ URL ನಮೂನೆಗೆ ಗುಣಲಕ್ಷಣದ |url| ಅನ್ನು ಹೊಂದಿಸಿರಬೇಕು. ನಮೂನೆಯು '%s' ಅನ್ನು ಒಳಗೊಂಡಿರಬಹುದು, ಇದು ಪ್ರದರ್ಶನಗೊಂಡರೆ ನಿರ್ವಹಣಾ URL ಮೂಲಕ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. @@ -2899,6 +2913,11 @@ <translation id="915194831143859291">ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿಲ್ಲ ಎಂದು ಹೊಂದಿಸಿದಲ್ಲಿ, ಸಾಧನವನ್ನು ಶಟ್ಡೌನ್ ಮಾಡಲು <ph name="PRODUCT_OS_NAME" /> ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದಲ್ಲಿ, ಬಳಕೆದಾರರು ಸಾಧನವನ್ನು ಶಟ್ಡೌನ್ ಮಾಡಿದಾಗ <ph name="PRODUCT_OS_NAME" /> ರೀಬೂಟ್ ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡುತ್ತದೆ. ರೀಬೂಟ್ ಬಟನ್ಗಳ ಮೂಲಕ UI ನಲ್ಲಿ <ph name="PRODUCT_OS_NAME" /> ಶಟ್ಡೌನ್ ಬಟನ್ಗಳ ಎಲ್ಲಾ ಸಂದರ್ಭಗಳನ್ನು ಸ್ಥಾನಾಂತರಿಸುತ್ತದೆ. ಬಳಕೆದಾರರು ಪವರ್ ಬಟನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಾಧನವನ್ನು ಶಟ್ಡೌನ್ ಮಾಡಿದಲ್ಲಿ, ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೂ ಸಹ ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರೀಬೂಟ್ ಆಗುವುದಿಲ್ಲ.</translation> <translation id="9158929520101169054">ಬ್ರೌಸರ್ನಲ್ಲಿ ಬಹು ಸೈನ್-ಇನ್ ಅನ್ನು ಅನುಮತಿಸಿ</translation> +<translation id="9165792353046089850">ಸಂಪರ್ಕಿತ USB ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ ಪಡೆಯಲು ವೆಬ್ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿ ಇದೆಯೇ ಎಂಬುದನ್ನು ಹೊಂದಿಸಲು ಇದು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಪ್ರವೇಶವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿರ್ಬಂಧಿಸಬಹುದು ಅಥವಾ ಯಾವುದಾದರೂ ವೆಬ್ಸೈಟ್, ಸಂಪರ್ಕಿತ USB ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ ಪಡೆಯಲು ಬಯಸುವಾಗ, ಬಳಕೆದಾರರಲ್ಲಿ ಪ್ರತಿ ಬಾರಿ ಅನುಮತಿ ಕೇಳಬಹುದು. + + 'WebUsbAskForUrls' ಮತ್ತು 'WebUsbBlockedForUrls' ಕಾರ್ಯನೀತಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ನಿರ್ದಿಷ್ಟ URL ವಿನ್ಯಾಸಗಳಿಗಾಗಿ ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಅತಿಕ್ರಮಿಸಬಹುದು. + + ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, '3' ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಬಳಕೆದಾರರು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> ಫೈಲ್ಗಳ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಡ್ರೈವ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="9185107612228451403">ವಿಸ್ತರಣೆ ಸಂಬಂಧಿತ ನೀತಿಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. ಶ್ವೇತಪಟ್ಟಿ ಮಾಡದ ಹೊರತು ಅವುಗಳನ್ನು ಬಳಕೆದಾರರು ಕಪ್ಪುಪಟ್ಟಿ ಮಾಡಲಾದ ವಿಸ್ತರಣೆಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಅನುಮತಿಸುವುದಿಲ್ಲ. <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> ನಲ್ಲಿ ಅವುಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಪಡಿಸುವ ಮೂಲಕ ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವಿಸ್ತರಣೆಗಳನ್ನು ಸ್ಥಾಪಿಸಲು <ph name="PRODUCT_NAME" /> ಒತ್ತಾಯಿಸಬಹುದು. ಕಪ್ಪುಪಟ್ಟಿಯಲ್ಲಿ ಅವುಗಳು ಪ್ರಸ್ತುತ ಇರುವುದನ್ನು ಪರಿಗಣಿಸದೆ ಒತ್ತಾಯವಾಗಿ-ಸ್ಥಾಪಿಸಿದ ವಿಸ್ತರಣೆಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ.</translation> <translation id="9187743794267626640">ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯನ್ನು ಇರಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index 6395d845..507f909 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -677,13 +677,6 @@ 이 정책을 사용하면 이 정책에 있는 값과 ID가 일치하는 프린터만 사용자에게 제공됩니다. 이 ID는 <ph name="DEVICE_PRINTERS_POLICY" />에 명시된 파일 내 'id' 또는 'guid' 입력란과 일치해야 합니다. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" />의 콘텐츠 보기에서 '터치하여 검색'을 사용 설정합니다. - - 이 설정을 사용하면 사용자가 '터치하여 검색'을 사용할 수 있으며 기능을 켜거나 끌 수 있습니다. - - 이 설정을 사용 중지하면 '터치하여 검색'이 완전히 사용 중지됩니다. - - 이 정책을 설정하지 않으면 위에 설명된 사용 설정한 경우와 동일하게 적용됩니다.</translation> <translation id="285480231336205327">고대비 모드 사용</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" />이(가) 가장 최근에 사용한 프린터 대신 시스템 기본 프린터를 인쇄 미리보기에서 기본으로 선택하게 합니다. @@ -1661,7 +1654,6 @@ 이 정책이 설정되지 않은 경우 로그인 화면이 처음 나타날 때 음성 피드백이 사용 중지되어 있습니다. 사용자는 언제든지 음성 피드백을 사용 설정 또는 사용 중지할 수 있으며 로그인 화면에서의 상태가 사용자별로 유지됩니다.</translation> <translation id="5868414965372171132">사용자 수준 네트워크 설정</translation> -<translation id="588135807064822874">터치하여 검색 사용</translation> <translation id="5883015257301027298">기본 쿠키 설정</translation> <translation id="5887414688706570295">원격 액세스 호스트가 사용할 TalkGadget 프리픽스를 구성하여 사용자가 변경하지 못하게 합니다. @@ -1934,11 +1926,6 @@ <translation id="6689792153960219308">하드웨어 상태 보고</translation> <translation id="6698071416141001300">비밀번호가 재사용되어 위험 계정에 관한 비밀번호 보호 경고가 실행됨</translation> <translation id="6699880231565102694">원격 액세스 호스트를 위한 2단계 인증 사용</translation> -<translation id="6702257826895463228">사이트에서 동시에 팝업을 탐색하고 열도록 허용합니다. - - 자세한 내용은 https://www.chromestatus.com/features/5675755719622656 페이지를 참조하세요. - 이 정책을 사용하도록 설정하면 사이트에서 동시에 새로운 창/탭을 탐색하고 열 수 있습니다. - 이 정책을 사용 중지하거나 설정하지 않으면 사이트에서 동시에 새로운 창/탭을 탐색하고 열 수 없습니다.</translation> <translation id="6724842112053619797">이 설정을 사용하면 북마크, 데이터 자동 완성, 비밀번호 등 <ph name="PRODUCT_NAME" /> 프로필에 저장된 설정이 로밍 사용자 프로필 폴더나 <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> 정책을 통해 관리자가 지정한 위치에 저장된 파일에도 작성됩니다. 이 정책을 사용하면 클라우드 동기화는 사용 중지됩니다. 이 정책을 사용 중지하거나 설정하지 않으면 일반 로컬 프로필만 사용됩니다.
diff --git a/components/policy/resources/policy_templates_lt.xtb b/components/policy/resources/policy_templates_lt.xtb index 615e6f02..ac693520 100644 --- a/components/policy/resources/policy_templates_lt.xtb +++ b/components/policy/resources/policy_templates_lt.xtb
@@ -679,13 +679,6 @@ Jei ši politika naudojama, naudotojui pasiekiami tik spausdintuvai, kurių ID atitinka šioje politikoje nurodytas vertes. ID turi atitikti laukus „id“ arba „guid“ faile, kuris nurodytas „<ph name="DEVICE_PRINTERS_POLICY" />“. </translation> -<translation id="2844404652289407061">Įgalinamas paieškos palietus pasiekiamumas „<ph name="PRODUCT_NAME" />“ turinio rodinyje. - - Jei įgalinsite šį nustatymą, naudotojui bus pasiekiama paieška palietus ir jis galės pasirinkti įjungti arba išjungti funkciją. - - Jei šį nustatymą išjungsite, paieška palietus bus visiškai išjungta. - - Jei ši politika nenustatyta, ji bus tarsi įgalinta. Žr. anksčiau pateiktą aprašą.</translation> <translation id="285480231336205327">Įgalinti didelio kontrasto būseną</translation> <translation id="2854919890879212089">Kaip numatytoji funkcijos „Spaudinio peržiūra“ parinktis „<ph name="PRODUCT_NAME" />“ naudojamas sistemos numatytasis spausdintuvas, o ne pastarasis naudotas spausdintuvas. @@ -1672,7 +1665,6 @@ Jei ši politika nenustatyta, ekrano skaitymas balsu bus išjungtas, kai pirmą kartą bus rodomas prisijungimo ekranas. Naudotojai galės bet kada įgalinti arba išjungti ekrano skaitymą balsu, o jų būsena prisijungimo ekrane bus vienoda skirtingiems naudotojams.</translation> <translation id="5868414965372171132">Naudotojo lygio tinklo konfigūracija</translation> -<translation id="588135807064822874">Paieškos palietus įgalinimas</translation> <translation id="5883015257301027298">Numatytasis slapukų nustatymas</translation> <translation id="5887414688706570295">Konfigūruojamas „TalkGadget“ (Pokalbių programėlės) kodas, kuris bus naudojamas nuotolinės prieigos prieglobų, ir neleidžiama naudotojams jo keisti. @@ -1944,11 +1936,6 @@ <translation id="6689792153960219308">Aparatinės įrangos būsenos ataskaitos pateikimas</translation> <translation id="6698071416141001300">Paskyros, kuriai iškilo pavojus, žymėjimas dėl slaptažodžio apsaugos suaktyvinamas pakartotinai naudojant slaptažodį</translation> <translation id="6699880231565102694">Įgalinti nuotolinės prieigos prieglobų autentifikavimą dviem veiksniais</translation> -<translation id="6702257826895463228">Svetainėms leidžiama vienu metu naršyti ir atidaryti iššokančiuosius langus. - - Visas paaiškinimas pateikiamas adresu https://www.chromestatus.com/features/5675755719622656. - Jei ši politika įgalinta, svetainėms bus leidžiama vienu metu naršyti ir atidaryti naujus langus / skirtukus. - Jei ši politika išjungta arba nenustatyta, svetainėms nebus leidžiama vienu metu naršyti ir atidaryti naujų langų / skirtukų.</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. Jei ši politika išjungta ar nenustatyta, bus naudojami tik įprasti vietiniai profiliai.
diff --git a/components/policy/resources/policy_templates_lv.xtb b/components/policy/resources/policy_templates_lv.xtb index b2dbaed8..b018fbd 100644 --- a/components/policy/resources/policy_templates_lv.xtb +++ b/components/policy/resources/policy_templates_lv.xtb
@@ -27,6 +27,7 @@ Ja šī politika ir iestatīta, pierakstīšanās ekrāns vienmēr tiks rādīts tajā lokalizācijā, kura atbilst šīs politikas pirmajai vērtībai (politika ir definēta kā pārsūtīšanas saderības saraksts). Ja šī politika nav iestatīta vai tai ir iestatīts tukšs saraksts, pierakstīšanās ekrāns tiks rādīts pēdējā lietotāja sesijas lokalizācijā. Ja šai politikai ir iestatīta vērtība, kas nav derīga lokalizācija, pierakstīšanās ekrāns tiks rādīts atkāpšanās lokalizācijā (pašlaik: en-US).</translation> <translation id="1062011392452772310">Iespējot ierīces attālu apstiprināšanu</translation> <translation id="1062407476771304334">Aizstāt</translation> +<translation id="1079801999187584280">Neatļaut izstrādātāju rīku lietošanu</translation> <translation id="109166998561583554">Apdraudēta paroles aizsardzība — konta atzīmēšanas aktivizēšana</translation> <translation id="1093082332347834239">Ja šis iestatījums ir iespējots, attālās palīdzības saimniekdators darbosies norises gaitā ar <ph name="UIACCESS_PERMISSION_NAME" /> atļaujām. Tādējādi attālie lietotāji varēs veikt darbības ar privileģētajiem logiem lokālā lietotāja darbvirsmā. @@ -79,6 +80,7 @@ Maiņas faktoram ir jābūt vismaz 100%.</translation> <translation id="131353325527891113">Rādīt lietotājvārdus pieteikšanās ekrānā</translation> +<translation id="1325295456374328159">Konfigurē lietotāja sesijā atļautās lokalizācijas</translation> <translation id="1327466551276625742">Iespējot tīkla konfigurācijas uzvedni, kad dators darbojas bezsaistes režīmā</translation> <translation id="1330145147221172764">Iespējot ekrāna tastatūru</translation> <translation id="13356285923490863">Politikas nosaukums</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Vai norādīt, ka Symantec Corporation mantotā PKI infrastruktūra ir uzticama</translation> <translation id="1393485621820363363">Iespējoti uzņēmuma ierīču printeri</translation> <translation id="1397855852561539316">Noklusējuma meklētājprogrammas ieteikumu URL</translation> +<translation id="1424081297104898791">Ļauj noteikt, kādos kontekstos izstrādātāja rīkus var lietot. + + Ja politikai ir iestatīta vērtība “DeveloperToolsDisallowedForForceInstalledExtensions” (vērtība “0” — noklusējuma vērtība korporatīvajiem lietotājiem), izstrādātāja rīki un JavaScript konsole ir pieejami, taču tiem nevar piekļūt paplašinājumos, kuri ir instalēti saskaņā ar uzņēmuma politiku. + Ja politikai ir iestatīta vērtība “DeveloperToolsAllowed” (vērtība “1” — noklusējuma vērtība nepārvaldītiem lietotājiem), izstrādātāja rīkiem un JavaScript konsolei var piekļūt un tos var izmantot visos kontekstos, tostarp arī paplašinājumos, kuri ir instalēti saskaņā ar uzņēmuma politiku. + Ja politikai ir iestatīta vērtība “DeveloperToolsDisallowed” (vērtība “2”), izstrādātāja rīkiem nevar piekļūt un tīmekļa vietnes elementus vairs nevar pārbaudīt. Tiek atspējoti visi īsinājumtaustiņi un izvēļņu vai kontekstizvēļņu komandas, ar kuru palīdzību tiek atvērti izstrādātāju rīki vai JavaScript konsole. + Ja mantotajai politikai DeveloperToolsDisabled ir iestatīta vērtība “True”, šīs politikas vērtība tiek ignorēta un izstrādātāju rīki tiek atspējoti.</translation> <translation id="1426410128494586442">Jā</translation> <translation id="1427655258943162134">Starpniekservera adrese vai URL</translation> <translation id="1435659902881071157">Ierīces līmeņa tīkla konfigurācija</translation> @@ -206,6 +214,7 @@ <translation id="1803646570632580723">Saraksts ar piespraustām lietotnēm, kuras rādīt palaišanas lapā</translation> <translation id="1808715480127969042">Bloķē sīkfailus šajās vietnēs</translation> <translation id="1810261428246410396">Tūlītējās piesaistes izmantošanas atļaušana</translation> +<translation id="1826282708349731794">Kontrolē, kā Chrome tīrīšanas rīks nosūta datus Google serveriem</translation> <translation id="1827523283178827583">Izmanto fiksētus starpniekserverus</translation> <translation id="1843117931376765605">Lietotāja politikas atsvaidzes ātrums</translation> <translation id="1844620919405873871">Konfigurē ar ātro atbloķēšanu saistītās politikas</translation> @@ -611,6 +620,7 @@ Šī politika neietekmē to, vai lietotāji var konfigurēt printerus atsevišķās ierīcēs. Tā ir paredzēta kā papildu konfigurācija atsevišķu lietotāju veiktajai printeru konfigurācijai. </translation> <translation id="2633084400146331575">Iespējot izrunu</translation> +<translation id="2640843331263301324">Iespējo Chrome tīrīšanas rīku Windows datorā</translation> <translation id="2646290749315461919">Ļauj iestatīt, vai vietnēm ir atļauts izsekot lietotāju fizisko atrašanās vietu. Lietotāju fiziskās atrašanās vietas izsekošana var tikt atļauta pēc noklusējuma, noraidīta pēc noklusējuma vai lietotājam var tikt vaicāts katru reizi, kad vietne pieprasa datus par fizisko atrašanās vietu. Ja šī politika nav iestatīta, tiks lietota politika AskGeolocation un lietotājs to varēs mainīt.</translation> @@ -680,13 +690,6 @@ Ja šī politika tiek izmantota, lietotājam ir pieejami tikai tie printeri, kuru identifikatori atbilst šajā politikā norādītajām vērtībām. Identifikatoriem ir jāatbilst lauku “id” vai “guid” vērtībām failā, kas norādīts politikā <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Izmantojot šo politiku, pārlūka <ph name="PRODUCT_NAME" /> satura skatā var iespējot funkciju “Meklēšana pieskaroties”. - - Ja šis iestatījums ir iespējots, funkcija “Meklēšana pieskaroties” ir pieejama lietotājam un lietotājs to var ieslēgt vai izslēgt. - - Ja šis iestatījums ir atspējots, funkcija “Meklēšana pieskaroties” ir pilnībā atspējota. - - Ja šai politikai nav iestatīta vērtība, ir spēkā tādi paši iestatījumi kā gadījumos, kad politika būtu iespējota (skatiet iepriekš sniegto aprakstu).</translation> <translation id="285480231336205327">Iespējot augsta kontrasta režīmu</translation> <translation id="2854919890879212089">Šī politika nosaka, ka pēc noklusējuma pārlūkprogrammas <ph name="PRODUCT_NAME" /> drukas priekšskatījumā jāizmanto sistēmas noklusējuma printeris, nevis pēdējais lietotais printeris. @@ -1263,12 +1266,14 @@ <translation id="4554651132977135445">Lietotāju politikas atgriezeniskās cilpas apstrādes režīms</translation> <translation id="4555850956567117258">Iespējo lietotājam attālināto apstiprināšanu.</translation> <translation id="4557134566541205630">Jaunas cilnes lapas noklusējuma URL meklēšanas nodrošinātājam</translation> +<translation id="4567137030726189378">Atļauj izstrādātāju rīku lietošanu</translation> <translation id="4600786265870346112">Lielā kursora iespējošana</translation> <translation id="4604931264910482931">Vietējās ziņojumapmaiņas melnā saraksta konfigurēšana</translation> <translation id="4613508646038788144">Ja politikai ir iestatīta vērtība “False”, trešās puses programmatūra pārlūka Chrome procesos varēs ievietot izpildāmo kodu. Ja politikai nav iestatīta vērtība vai ir iestatīta vērtība “True”, trešās puses programmatūrai tiek liegta izpildāmā koda ievietošana pārlūka Chrome procesos.</translation> <translation id="4617338332148204752">Izlaist metataga pārbaudīšanu spraudnī <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfigurē paplašinājumu instalēšanas balto sarakstu</translation> <translation id="4632343302005518762">Atļauja produktam <ph name="PRODUCT_FRAME_NAME" /> apstrādāt sarakstā iekļautos satura veidus</translation> +<translation id="4632566332417930481">Neatļauj izstrādātāju rīku lietošanu paplašinājumos, kuri ir instalēti saskaņā ar uzņēmuma politiku; atļauj izstrādātāju rīku lietošanu citos kontekstos.</translation> <translation id="4633786464238689684">Augšējās rindas taustiņu noklusējuma darbība tiek mainīta, un tie tiek izmantoti kā funkciju taustiņi. Ja šai politikai tiek iestatīta vērtība “true”, tastatūras augšējā taustiņu rinda pēc noklusējuma izpildīs funkciju taustiņu komandas. Lai tos atkal izmantotu kā multivides taustiņus, jānospiež meklēšanas taustiņš. @@ -1545,10 +1550,14 @@ Ja tā nav iestatīta, vai nu lietotājam var tikt vaicāts, vai importēt, vai arī importēšana var notikt automātiski.</translation> <translation id="5423197884968724595">Android WebView ierobežojuma nosaukums:</translation> +<translation id="5442026853063570579">Šī politika arī kontrolē piekļuvi Android izstrādātājiem paredzētajām opcijām. Ja šai politikai tiek iestatīta vērtība “DeveloperToolsDisallowed” (vērtība “2”), lietotāji nevarēs piekļūt izstrādātājiem paredzētajām opcijām. Ja politikai tiek iestatīta cita vērtība vai politika netiek iestatīta, lietotāji varēs piekļūt izstrādātājiem paredzētajām opcijām, septiņas reizes pieskaroties versijas numuram Android iestatījumu lietotnē.</translation> <translation id="5447306928176905178">Lapas patērētās atmiņas uzskaites (JS kaudzes izmērs) iespējošana (izmantošana pārtraukta)</translation> <translation id="5457065417344056871">Viesa režīma iespējošana pārlūkā</translation> <translation id="5457924070961220141">Ļauj konfigurēt noklusējuma HTML renderētāju, ja ir instalēts <ph name="PRODUCT_FRAME_NAME" />. Ja šī politika nav iestatīta, pēc noklusējuma renderēšanu ir atļauts veikt saimniekdatora pārlūkam, bet šo vērtību pēc izvēles var ignorēt un likt, lai HTML lapu renderēšanu pēc noklusējuma veiktu <ph name="PRODUCT_FRAME_NAME" /> .</translation> +<translation id="5459155981813668716">Konfigurē operētājsistēmas <ph name="PRODUCT_OS_NAME" /> attēlojuma lokalizācijas. + + Ja šī politika ir iestatīta, lietotājs var konfigurēt operētājsistēmas <ph name="PRODUCT_OS_NAME" /> attēlošanu tikai šajā politikā norādītajās lokalizācijās. Ja šī politika nav iestatīta vai tai ir iestatīts tukšs saraksts, operētājsistēma <ph name="PRODUCT_OS_NAME" /> var tikt attēlota visās atbalstītajās lokalizācijās. Ja politikai iestatītajā sarakstā ir nederīgas vērtības, tās tiks ignorētas. Ja lietotājs iepriekš konfigurēja operētājsistēmas <ph name="PRODUCT_OS_NAME" /> attēlošanu lokalizācijā, kas šajā politikā nav atļauta, nākamajā lietotāja pierakstīšanās reizē lokalizācija tiks mainīta uz politikā atļautu lokalizāciju. Ja lietotājs iepriekš konfigurēja vēlamās lokalizācijas un viena no vēlamajām lokalizācijām ir atļauta šajā politikā, operētājsistēmā <ph name="PRODUCT_OS_NAME" /> tiks izmantota attiecīgā lokalizācija. Ja vēlamā lokalizācija nav iestatīta, operētājsistēmā <ph name="PRODUCT_OS_NAME" /> tika izmantota pirmā derīgā politikā norādītā vērtība vai atkāpšanās lokalizācija (šobrīd “en-US”), ja politikā ir norādītas nederīgas vērtības.</translation> <translation id="5464816904705580310">Konfigurē iestatījumus pārvaldītajiem lietotājiem.</translation> <translation id="546726650689747237">Aizkave līdz ekrāna aptumšošanai, ja ierīce darbojas ar maiņstrāvu</translation> <translation id="5469484020713359236">Ļauj iestatīt URL rakstu sarakstu, kurā ir norādītas vietnes, kurām ir atļauts iestatīt sīkfailus. @@ -1670,7 +1679,6 @@ Ja šī politika nav iestatīta, mutiskās atsauksmes ir atspējotas, kad pirmo reizi tiek parādīts pieteikšanās ekrāns. Lietotāji var jebkurā brīdī iespējot vai atspējot mutiskās atsauksmes, un šī iestatījuma statuss pieteikšanās ekrānā tiek saglabāts visiem lietotājiem.</translation> <translation id="5868414965372171132">Lietotāja līmeņa tīkla konfigurācija</translation> -<translation id="588135807064822874">Meklēšana pieskaroties — iespējošana</translation> <translation id="5883015257301027298">Noklusējuma sīkfailu iestatījums</translation> <translation id="5887414688706570295">Konfigurē attālās piekļuves saimniekdatoros izmantojamo sīkrīka TalkGadget prefiksu un neļauj lietotājiem to mainīt. @@ -1774,6 +1782,7 @@ <translation id="6036523166753287175">Ugunsmūra apvada iespējošana no attālās piekļuves saimniekdatora</translation> <translation id="6070667616071269965">Ierīces pierakstīšanās ekrāna tastatūras izkārtojumi</translation> <translation id="6074963268421707432">Neatļauj nevienai vietnei rādīt paziņojumus darbvirsmā</translation> +<translation id="6074964551275531965">Iestatīt laika periodu atjauninājumu paziņojumiem</translation> <translation id="6076099373507468537">Definē USB ierīces, kuras ir atļauts atvienot no kodola draiveriem, lai tās izmantotu ar chrome.usb API tieši tīmekļa lietojumprogrammā. Katru ierakstu veido USB pakalpojumu sniedzēja identifikators un produkta identifikators, kas identificē aparatūru. Ja šī politika netiek konfigurēta, atvienojamo USB ierīču saraksts ir tukšs.</translation> @@ -1852,6 +1861,11 @@ Ja šis iestatījums ir iespējots vai tam nav iestatīta vērtība, lietotāji varēs pārvaldīt funkcijas Automātiskā aizpilde lietošanu. Tādējādi lietotāji varēs konfigurēt funkcijas Automātiskā aizpilde profilus un pēc saviem ieskatiem ieslēgt/izslēgt funkciju Automātiskā aizpilde.</translation> <translation id="6394350458541421998">Šīs politikas darbība tika pārtraukta ar <ph name="PRODUCT_OS_NAME" /> versiju 29. Lūdzu, tās vietā izmantojiet politiku PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Atteikt lietotāju</translation> +<translation id="6412477120967771054">Ja politikai ir iestatīta vērtība “False”, Chrome tīrīšanas rīkam tiek liegta sistēmas pārmeklēšana, kas ir nepieciešama nevēlamu programmatūru noteikšanai un tīrīšanai. Manuāla Chrome tīrīšanas rīka aktivizēšana sadaļā chrome://settings/cleanup ir atspējota. + + Ja politikai ir iestatīta vērtība “True” vai politika nav iestatīta, Chrome tīrīšanas rīks sistēmā periodiski meklē nevēlamu programmatūru un, ja šāda programmatūra tiek atrasta, lietotājam tiks parādīta ziņojums ar jautājumu, vai šo programmatūru noņemt. Manuāla Chrome tīrīšanas rīka aktivizēšana sadaļā chrome://settings ir iespējota. + + Šī politika nav pieejama Windows instancēs, kas nav pievienotas <ph name="MS_AD_NAME" /> domēnam.</translation> <translation id="6417861582779909667">Ļauj iestatīt URL rakstu sarakstu, kurā ir norādītas vietnes, kurām nav atļauts iestatīt sīkfailus. Ja šī politika nav iestatīta, visām vietnēm tiks izmantota globālā noklusējuma vērtība no politikas DefaultCookiesSetting (ja tā ir iestatīta) vai pretējā gadījumā no lietotāja personīgās konfigurācijas.</translation> @@ -1874,6 +1888,13 @@ Lai noteiktu, kurās vietnēs varēs palaist Flash saturu, skatiet politikas “DefaultPluginsSetting”, “PluginsAllowedForUrls” un “PluginsBlockedForUrls”. Ja šis iestatījums ir atspējots vai nav iestatīts, Flash saturs ar citu izcelsmi vai mazais saturs var tikt bloķēts.</translation> +<translation id="6535639183431116351">Šī politika versijā M68 ir novecojusi, izmantojiet politiku DeveloperToolsAvailability. + + Atspējo izstrādātāju rīkus un JavaScript konsoli. + + Ja šis iestatījums tiek iespējots, izstrādātāju rīkiem nevarēs piekļūt un tīmekļa vietnes elementus vairs nevarēs pārbaudīt. Tiek atspējoti visi īsinājumtaustiņi un izvēļņu vai kontekstizvēļņu komandas, ar kuru palīdzību tiek atvērti izstrādātāja rīki vai JavaScript konsole. + + Ja šī opcija ir atspējota vai nav iestatīta, lietotājs varēs izmantot izstrādātāja rīkus un JavaScript konsoli.</translation> <translation id="653608967792832033">Tiek norādīts laika periods, kurā lietotājam ir jāveic kāda darbība, pretējā gadījumā ekrāns tiek bloķēts (ja ierīce darbojas ar akumulatora jaudu). Ja šai politikai ir iestatīta vērtība, kas ir lielāka par nulli, tā norāda laika periodu, kurā lietotājam ir jāveic kāda darbība, pretējā gadījumā operētājsistēmā <ph name="PRODUCT_OS_NAME" /> tiek bloķēts ekrāns. @@ -1939,11 +1960,6 @@ <translation id="6689792153960219308">Ziņošana par aparatūras statusu</translation> <translation id="6698071416141001300">Apdraudēta paroles aizsardzība — konta atzīmēšana aktivizēta, atkārtoti izmantojot paroli</translation> <translation id="6699880231565102694">Divu faktoru autentifikācijas iespējošana attālās piekļuves saimniekdatoriem</translation> -<translation id="6702257826895463228">Ļauj vietnēs vienlaicīgi navigēt un atvērt uznirstošos logus. - - Detalizēts skaidrojums ir sniegts vietnē https://www.chromestatus.com/features/5675755719622656. - Ja šī politika ir iespējota, vietnēs varēs vienlaicīgi navigēt un atvērt jaunus logus/cilnes. - Ja šī politika ir atspējota, vietnēs nedrīkstēs vienlaicīgi navigēt un atvērt jaunus logus/cilnes.</translation> <translation id="6724842112053619797">Ja iespējosiet šo iestatījumu, <ph name="PRODUCT_NAME" /> profilos saglabātie iestatījumi, piemēram, grāmatzīmes, automātiskās aizpildes dati, paroles, tiks saglabāti arī failā, kas tiks glabāts viesabonēšanas lietotāju profilu mapē vai vietā, ko norādījis administrators, izmantojot politiku “<ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />”. Iespējojot šo politiku, tiek atspējota sinhronizācija mākonī. Ja šī politika ir atspējota vai nav iestatīta, tiks izmantoti tikai parastie lokālie profili. @@ -2310,6 +2326,7 @@ Plašāku informāciju par funkciju Droša pārlūkošana skatiet vietnē https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Ierobežotie konti, kas ir redzami pārlūkā <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Nosaka, vai datu viesabonēšana ir jāiespējo ierīcei. Ja politika ir iestatīta uz Patiesa, datu viesabonēšana ir atļauta. Ja politika nav konfigurēta vai iestatīta uz Aplama, datu viesabonēšana nav atļauta.</translation> +<translation id="7673194325208122247">Laika periods (milisekundes)</translation> <translation id="7683777542468165012">Dinamiskā politikas atsvaidzināšana</translation> <translation id="7694807474048279351">Plānojiet automātisku atkārtotu palaišanu pēc <ph name="PRODUCT_OS_NAME" /> atjauninājuma piemērošanas. @@ -2442,6 +2459,13 @@ Ja šis iestatījums ir atspējots un ugunsmūris filtrē izejošos UDP savienojumus, dators var izveidot savienojumus tikai ar lokālā tīkla saimniekdatoriem.</translation> <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> galamērķa nosaukums</translation> +<translation id="7977445800390854860">Ja šī politika nav iestatīta, Chrome tīrīšanas rīki saskaņā ar SafeBrowsingExtendedReportingEnabled politiku pēc nevēlamas programmatūras noteikšanas meklēšanas metadatus nosūtīs Google serveriem. Tādā gadījumā lietotājam tiks parādīts Chrome tīrīšanas rīku ziņojums ar jautājumu, vai nevēlamo programmatūru noņemt. Lietotājs var izvēlēties, vai tīrīšanas rezultātus kopīgot ar Google serveriem, lai uzlabotu turpmāku nevēlamas programmatūras noteikšanu. Kā norādīts Chrome konfidencialitātes tehniskajā dokumentā, šie rezultāti ietver faila metadatus un reģistra atslēgas. + + Ja politikai ir iestatīta vērtība “False”, Chrome tīrīšanas rīki pēc nevēlamas programmatūras noteikšanas nesūtīs meklēšanas metadatus Google serveriem un ignorēs politiku SafeBrowsingExtendedReportingEnabled. Lietotājam tiks parādīts Chrome tīrīšanas rīku ziņojums ar jautājumu, vai nevēlamo programmatūru noņemt. Tīrīšanas rezultāti netiks nosūtīti Google serveriem, un arī lietotājam nebūs pieejamas opcijas to nosūtīšanai. + + Ja politikai ir iestatīta vērtība “True”, Chrome tīrīšanas rīki saskaņā ar SafeBrowsingExtendedReportingEnabled politiku pēc nevēlamas programmatūras noteikšanas meklēšanas metadatus nosūtīs Google serveriem. Lietotājam tiks parādīts Chrome tīrīšanas rīku ziņojums ar jautājumu, vai nevēlamo programmatūru noņemt. Tīrīšanas rezultāti tiks nosūtīti Google serveriem, un lietotājam nebūs pieejamas opcijas, lai nosūtīšanu liegtu. + + Šī politika nav pieejama Windows instancēs, kas nav pievienotas <ph name="MS_AD_NAME" /> domēnam.</translation> <translation id="7978060394348264922"> Ieteicams izmantot politikas IsolateOrigins iestatījumu, lai gūtu vislabākos rezultātus, izolētu tikai vietnes, @@ -2564,6 +2588,7 @@ <translation id="8300455783946254851">Ja šai opcijai ir iestatīta vērtība Patiesa, tiek atspējota failu sinhronizācija ar Google disku operētājsistēmas <ph name="PRODUCT_OS_NAME" /> lietotnē Faili, kad tiek izmantots mobilais savienojums. Dati tiek sinhronizēti ar Google disku tikai tad, ja ir izveidots Wi-Fi vai Ethernet savienojums. Ja šī opcija nav iestatīta vai tai ir iestatīta vērtība Nepatiesa, lietotāji varēs pārsūtīt failus uz Google disku, izmantojot mobilos savienojumus.</translation> +<translation id="8300992833374611099">Nosaka, kādos kontekstos izstrādātāju rīkus var lietot</translation> <translation id="8312129124898414409">Ļauj iestatīt, vai vietnēs ir atļauts izmantot atslēgu ģenerēšanu. Atslēgu ģenerēšanas izmantošana var tikt atļauta vai noraidīta visām vietnēm. Ja šī politika nav iestatīta, tiks lietota politika “BlockKeygen” un lietotājs to varēs mainīt.</translation> @@ -2801,6 +2826,11 @@ <translation id="9042911395677044526">Ļauj pārsūtīšanas tīkla konfigurāciju izmantot konkrētam lietotājam <ph name="PRODUCT_OS_NAME" /> ierīcē. Tīkla konfigurācija ir JSON formatēta virkne, kā definēts Atvērta tīkla konfigurācijas formātā, kas aprakstīts šeit: <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Video darbības ietekmes uz jaudas pārvaldību norādīšana</translation> +<translation id="9085839450090699752">Atļauj iestatīt laika periodus (milisekundēs), kuru laikā lietotāji tiek informēti par nepieciešamību atkārtoti palaist pārlūku <ph name="PRODUCT_NAME" /> vai restartēt <ph name="PRODUCT_OS_NAME" /> ierīci, lai varētu instalēt pieejamo atjauninājumu. + + Iestatītajā laika periodā lietotājs atkārtoti saņems paziņojumus par atjaunināšanu. <ph name="PRODUCT_OS_NAME" /> ierīcēs paziņojums par restartēšanu tiek rādīts sistēmas teknē, kad ir atrasts jauninājums. Paziņojuma krāsa mainās, kad ir pagājusi puse no paziņojuma laika perioda, un pēc tam mainās atkārtoti, kad ir pagājis viss paziņojuma periods. Pārlūkā <ph name="PRODUCT_NAME" /> lietotņu izvēlnes krāsa mainās, kad ir pagājusi trešdaļa no paziņojuma perioda, tādējādi norādot, ka nepieciešama atkārtota palaišana. Šī paziņojuma krāsa mainās vēl vienu reizi, kad ir pagājušas divas trešdaļas paziņojuma perioda, un trešo reizi — paziņojuma perioda beigās. Tādā pašā veidā tiek rādīti arī pārlūka politikas <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> iespējotie papildu paziņojumi. + + Ja šī politika nav iestatīta, <ph name="PRODUCT_OS_NAME" /> ierīcēs tiek izmantots noklusējuma periods 345 600 000 milisekundes (četras dienas), bet pārlūkos — 604 800 000 milisekundes (viena nedēļa).</translation> <translation id="9088433379343318874">Iespējot uzraudzītā lietotāja satura nodrošinātāju</translation> <translation id="9088444059179765143">Automātiskās laika joslas noteikšanas metodes konfigurēšana</translation> <translation id="9096086085182305205">Autentifikācijas serveru baltais saraksts</translation>
diff --git a/components/policy/resources/policy_templates_ml.xtb b/components/policy/resources/policy_templates_ml.xtb index 9ca07f52..5012a7e9 100644 --- a/components/policy/resources/policy_templates_ml.xtb +++ b/components/policy/resources/policy_templates_ml.xtb
@@ -499,6 +499,20 @@ ഡൗൺലോഡ് ചെയ്ത നിഘണ്ടു ഉപയോഗിച്ചും അക്ഷരപ്പിശക് പരിശോധന നടത്താൻ കഴിയും; ഈ നയം ഓൺലൈൻ സേവനത്തിന്റെ ഉപയോഗം മാത്രം നിയന്ത്രിക്കുന്നു. ഈ ക്രമീകരണം കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ, അക്ഷരപ്പിശക് പരിശോധനാ സേവനം ഉപയോഗിക്കണമോ വേണ്ടയോ എന്നത് ഉപയോക്താവിന് തിരഞ്ഞെടുക്കാൻ കഴിയും.</translation> +<translation id="2294283832646774959">പ്രിന്ററുകളുടെ ഒരു ലിസ്റ്റ് കോൺഫിഗർ ചെയ്യുന്നു. + + ഈ നയം, അഡ്മിനിസ്ട്രേറ്റർമാരെ അവരുടെ ഉപയോക്താക്കൾക്ക് പ്രിന്റർ കോൺഫിഗറേഷനുകൾ നൽകാൻ അനുവദിക്കുന്നു. + + <ph name="PRINTER_DISPLAY_NAME" />, <ph name="PRINTER_DESCRIPTION" /> എന്നിവ ഫ്രീ-ഫോം സ്ട്രിംഗുകളാണ്, പ്രിന്റർ തിരഞ്ഞെടുക്കൽ എളുപ്പത്തിലാക്കാൻ അവയെ ഇഷ്ടാനുസൃതമാക്കാവുന്നതാണ്. അന്തിമ ഉപയോക്താക്കൾക്ക് എളുപ്പത്തിൽ പ്രിന്റർ തിരിച്ചറിയുന്നതിന് <ph name="PRINTER_MANUFACTURER" />, <ph name="PRINTER_MODEL" /> എന്നിവ സഹായിക്കും. പ്രിന്ററിന്റെ നിർമ്മാതാവിനെയും മോഡലിനെയുമാണ് ഇവ പ്രതിനിധീകരിക്കുന്നത്. <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, <ph name="URI_QUEUE" /> എന്നിവയുൾപ്പെടെ, ഒരു ക്ലയന്റ് കമ്പ്യൂട്ടറിൽ നിന്ന് ആക്സസ് ചെയ്യാവുന്ന വിലാസമായിരിക്കണം <ph name="PRINTER_URI" />. <ph name="PRINTER_UUID" /> ഓപ്ഷണലാണ്. നൽകിയിട്ടുണ്ടെങ്കിൽ, ഇത് <ph name="ZEROCONF_DISCOVERY" /> പ്രിന്ററുകളുടെ ഡ്യൂപ്ലിക്കേറ്റുകൾ ഇല്ലാതാക്കാൻ സഹായിക്കുന്നു. + + <ph name="PRODUCT_NAME" /> പിന്തുണയുള്ള പ്രിന്ററിനെ പ്രതിനിധാനം ചെയ്യുന്ന സ്ട്രിംഗുകളിൽ ഒന്ന് <ph name="PRINTER_EFFECTIVE_MODEL" /> എന്നതുമായി പൊരുത്തപ്പെടണം. പ്രിന്ററിന് അനുയോജ്യമായ PPD തിരിച്ചറിഞ്ഞ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് സ്ട്രിംഗ് ഉപയോഗിക്കപ്പെടും. കൂടുതൽ വിവരങ്ങൾ https://support.google.com/chrome?p=noncloudprint സന്ദർശിച്ചാൽ കണ്ടെത്താനാവും. + + ഒരു പ്രിന്റർ ആദ്യം ഉപയോഗിക്കുമ്പോൾ തന്നെ പ്രിന്റർ സജ്ജീകരണം പൂർത്തിയാകുന്നു. പ്രിന്റർ ഉപയോഗിക്കുന്നത് വരെ PPD-കൾ ഡൗൺലോഡ് ചെയ്യില്ല. അതിനുശേഷം, പതിവായി ഉപയോഗിക്കുന്ന PPD-കൾ കാഷെ ചെയ്യുന്നതാണ്. + + ഉപയോക്താക്കൾക്ക് വ്യക്തിഗത ഉപകരണങ്ങളിൽ പ്രിന്ററുകൾ ഉപയോഗിക്കാനാവുമോ എന്നതിനെ ഈ നയം ബാധിക്കുകയില്ല. ഇത് വ്യക്തിഗത ഉപയോക്താക്കൾ മുഖേനയുള്ള പ്രിന്റർ കോൺഫിഗറേഷന് അനുബന്ധമാകാൻ ഉദ്ദേശിച്ചുള്ളതാണ്. + + ആക്റ്റീവ് ഡയറക്ടറി മാനേജ് ചെയ്യപ്പെടുന്ന ഉപകരണങ്ങളുടെ കാര്യത്തിൽ, ആക്റ്റീവ് ഡയറക്ടറി മെഷീനിന്റെ പേരിലേക്കോ അതിന്റെ ഉപസ്ട്രിംഗിലേക്കോ <ph name="MACHINE_NAME_VARIABLE" /> എന്നതിന്റെ വിപുലീകരണത്തെ ഈ നയം പിന്തുണയ്ക്കുന്നു. ഉദാഹരണത്തിന്, മെഷീനിന്റെ പേര് <ph name="MACHINE_NAME_EXAMPLE" /> എന്നാണെങ്കിൽ, 6-ാമത്തെ സ്ഥാനത്തിന് ശേഷം, അതായത് <ph name="MACHINE_NAME_PART_EXAMPLE" />-ന് ശേഷം, 4 പ്രതീകങ്ങൾ ഉപയോഗിച്ച് <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> പ്രതിസ്ഥാപിക്കപ്പെടും. പൂജ്യം അടിസ്ഥാനമാക്കിയതാണ് സ്ഥാനമെന്ന് ശ്രദ്ധിക്കുക. + </translation> <translation id="2294382669900758280">നയം <ph name="TRUE" /> എന്ന് സജ്ജമാക്കിയിരിക്കുകയാണെങ്കിൽപ്പോലും, Android ആപ്സുകളിൽ വീഡിയോ പ്ലേ ചെയ്യുന്നത് പരിഗണിക്കാനാവില്ല.</translation> <translation id="2298647742290373702"><ph name="PRODUCT_NAME" /> എന്നതിലെ ഡിഫോൾട്ടായ പുതിയ ടാബ് പേജ് കോൺഫിഗർ ചെയ്യുക.</translation> <translation id="2299220924812062390">പ്രാപ്തമാക്കപ്പെട്ട പ്ലഗിനുകളുടെ ലിസ്റ്റ് നിര്ദേശിക്കുന്നു</translation> @@ -747,13 +761,6 @@ ഈ നയം ഉപയോഗിക്കപ്പെട്ടിട്ടുണ്ടെങ്കിൽ, ഈ നയത്തിലെ മൂല്യങ്ങളുമായി പൊരുത്തപ്പെടുന്ന ഐഡികളുള്ള പ്രിന്ററുകൾ മാത്രം ഉപയോക്താവിന് ലഭ്യമാകുന്നു. <ph name="DEVICE_PRINTERS_POLICY" />-ൽ വ്യക്തമാക്കിയിട്ടുള്ള ഫയലിലെ "id" അല്ലെങ്കിൽ "guid" ഫീൽഡുകളുമായി ഐഡികൾ പൊരുത്തമുള്ളതായിരിക്കണം. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> എന്നതിന്റെ ഉള്ളടക്ക കാഴ്ചയിൽ 'തിരയാൻ സ്പർശിക്കുക' എന്നതിന്റെ ലഭ്യത പ്രവർത്തനക്ഷമമാക്കുന്നു. - - നിങ്ങൾ ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുകയാണെങ്കിൽ, ഉപയോക്താവിന് 'തിരയാൻ സ്പർശിക്കുക' ലഭ്യമാകും. അവർക്ക് ഫീച്ചർ ഓണാക്കാനോ ഓഫാക്കാനോ തീരുമാനിക്കാം. - - നിങ്ങൾ ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കുകയാണെങ്കിൽ, 'തിരയാൻ സ്പർശിക്കുക' പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കും. - - ഈ നയം സജ്ജമാക്കാതെ വിടുന്നത് അത് പ്രവർത്തനക്ഷമമാക്കുന്നതിന് തുല്യമാണ്, മുകളിലുള്ള വിവരണം കാണുക.</translation> <translation id="285480231336205327">ഉയർന്ന ദൃശ്യ തീവ്രത മോഡ് പ്രാപ്തമാക്കുക</translation> <translation id="2854919890879212089">ഏറ്റവും സമീപകാലത്ത് ഉപയോഗിച്ച പ്രിന്ററിന് പകരമായി, അച്ചടി പ്രിവ്യൂവിലെ ഡിഫോൾട്ട് തിരഞ്ഞെടുപ്പായി <ph name="PRODUCT_NAME" /> സിസ്റ്റം ഡിഫോൾട്ട് പ്രിന്റർ ഉപയോഗിക്കുന്നതിന് കാരണമാകുന്നു. @@ -1382,6 +1389,7 @@ <translation id="4508686775017063528">ഈ നയം 'ശരി' എന്ന് സജ്ജമാക്കുകയോ സജ്ജമാക്കാതിരിക്കുകയോ ആണെങ്കിൽ, <ph name="PRODUCT_NAME" /> പ്രവർത്തനക്ഷമമാക്കുകയും ഉപയോക്താക്കൾക്ക് ആപ്പ് മെനു, പേജ് സന്ദർഭ മെനുകൾ, Cast-പ്രവർത്തനക്ഷമമാക്കിയ വെബ്സൈറ്റുകളിലെ മീഡിയ നിയന്ത്രണങ്ങൾ, (ദൃശ്യമാക്കിയിട്ടുണ്ടെങ്കിൽ) Cast ടൂൾബാർ ഐക്കൺ എന്നിവയിൽ നിന്ന് ഇത് ആരംഭിക്കാനാവും. ഈ നയം 'തെറ്റ്' എന്ന് സജ്ജമാക്കുകയാണെങ്കിൽ, <ph name="PRODUCT_NAME" /> പ്രവർത്തനരഹിതമാക്കും.</translation> +<translation id="4515404363392014383">വിശ്വസനീയ ഉറവിടങ്ങൾക്കായി സുരക്ഷിത ബ്രൗസിംഗ് പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="4518251772179446575">ഉപയോക്താക്കളുടെ ഭൌതിക ലൊക്കേഷന് ട്രാക്കുചെയ്യണമെന്ന് സൈറ്റ് ആഗ്രഹിക്കുമ്പോഴൊക്കെ ചോദിക്കുക</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" />-ന്റെ ഒമ്നി ബോക്സിൽ തിരയൽ നിർദ്ദേശങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുകയും ഈ ക്രമീകരണം മാറ്റുന്നതിൽ നിന്നും ഉപയോക്താക്കളെ തടയുകയും ചെയ്യുന്നു. @@ -1516,6 +1524,7 @@ ഈ നയം false എന്നായി സജ്ജമാക്കിയാൽ സ്ക്രീൻ വേക്ക് ലോക്ക് അഭ്യർത്ഥനകൾ അവഗണിക്കപ്പെടും.</translation> <translation id="487460824085252184">സ്വമേധയാ മൈഗ്രേറ്റ് ചെയ്യുക, ഉപയോക്തൃ സമ്മതം ചോദിക്കരുത്.</translation> +<translation id="4874982543810021567">ഈ സൈറ്റുകളിൽ WebUSB ബ്ലോക്ക് ചെയ്യുക</translation> <translation id="4876805738539874299">പരമാവധി SSL പതിപ്പ് പ്രവർത്തനക്ഷമമാക്കി</translation> <translation id="4897928009230106190">POST ഉപയോഗിച്ച് ഒരു നിർദ്ദേശിത തിരയൽ നടത്തുമ്പോൾ ഉപയോഗിക്കുന്ന പാരാമീറ്ററുകൾ വ്യക്തമാക്കുന്നു. ഇതിൽ കോമയാൽ വേർതിരിച്ച പേര്/മൂല്യം ജോടികൾ അടങ്ങിയിരിക്കുന്നു. മുകളിലെ ഉദാഹരണത്തിലുള്ളതുപോലെ {searchTerms} മൂല്യം ഒരു ടെംപ്ലേറ്റ് പാരാമീറ്റർ ആണെങ്കിൽ തിരയൽ പദങ്ങളുടെ ഡാറ്റ അതിനെ മാറ്റിസ്ഥാപിക്കും. @@ -1885,7 +1894,6 @@ ഈ നയം സജ്ജമാക്കാതെ വിടുകയാണെങ്കിൽ, ആദ്യമായി ലോഗിൻ സ്ക്രീൻ ദൃശ്യമാകുമ്പോൾ സംഭാഷണ ഫീഡ്ബാക്ക് പ്രവർത്തനരഹിതമാകും. ഉപയോക്താക്കൾക്ക് ഏതുസമയത്തും സംഭാഷണ ഫീഡ്ബാക്ക് പ്രവർത്തനക്ഷമമാക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ കഴിയും, ഒപ്പം ലോഗിൻ സ്ക്രീനിൽ ഉപയോക്താക്കൾക്കിടയിൽ അതിന്റെ നില തുടരുകയും ചെയ്യും.</translation> <translation id="5868414965372171132">ഉപയോക്തൃ-തല നെറ്റ്വർക്ക് കോൺഫിഗറേഷൻ</translation> -<translation id="588135807064822874">'തിരയുന്നതിന് സ്പർശിക്കുക' പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="5883015257301027298">കുക്കികള്ക്കായുള്ള സ്ഥിരസ്ഥിതി ക്രമീകരണം</translation> <translation id="5887414688706570295">TalkGadget പ്രിഫിക്സ് കോൺഫിഗർ ചെയ്യുന്നത്, വിദൂര ആക്സസ്സ് ഹോസ്റ്റുകൾ ഉപയോഗിക്കുകയും ഇത് മാറ്റുന്നതിൽ നിന്നും ഉപയോക്താക്കളെ തടയുകയും ചെയ്യുന്നു. @@ -2161,14 +2169,14 @@ ഈ നയം സജ്ജീകരിക്കാതെ വിടുകയാണെങ്കിൽ, നെറ്റ്വർക്ക് പ്രവചനം പ്രവർത്തനക്ഷമമാകും എന്നാൽ ഉപയോക്താവിന് അത് മാറ്റാനാകും.</translation> <translation id="6658245400435704251">സെർവറിലേക്ക് ആദ്യമായി അപ്ഡേറ്റ് നീക്കപ്പെട്ട സമയത്തിന് ശേഷം, ആ അപ്ഡേറ്റിന്റെ ഡൗൺലോഡിനെ യാദൃശ്ചികമായി ഒരു ഉപകരണം, എത്ര നിമിഷങ്ങളോളം കാലതാമസം വരുത്താം എന്ന് സൂചിപ്പിക്കുന്നു. ഉപകരണം, ഈ കാലതാമസ സമയത്തിന്റെ ഒരു ഭാഗം ചുവർ ഘടികാരത്തിന്റെ അടിസ്ഥാനത്തിൽ കാലതാമസം വരുത്താം, അപ്ഡേറ്റ് പരിശോധനകളുടെ എണ്ണത്തെ അടിസ്ഥാനമാക്കിയാണ് ഉപകരണം ബാക്കിയുള്ള ഭാഗം കാലതാമസം വരുത്തുന്നത്. എന്ത് സാഹചര്യമായാലും, ശാശ്വതമായി ഒരു അപ്ഡേറ്റ് ഡൗൺലോഡ് ചെയ്യുന്നതിനായി കാത്തിരിക്കുന്ന തരത്തിൽ ഉപകരണം സ്തംഭിച്ചുപോകാതിരിക്കുന്നതിനായി ഒരു സ്ഥിര അളവ് സമയത്തിലേക്ക് സ്കാറ്റർ നിർബന്ധിതമാക്കപ്പെടുന്നു.</translation> <translation id="6665670272107384733">അതിവേഗ അൺലോക്ക് ഉപയോഗിക്കാൻ ഉപയോക്താവ് എത്രതവണ പാസ്വേഡ് നൽകണമെന്നത് സജ്ജീകരിക്കുക</translation> +<translation id="6681229465468164801">ഒരു USB ഉപകരണത്തിലേക്ക് ആക്സസ് അനുവദിക്കാൻ ഉപയോക്താവിനോട് ചോദിക്കുന്നതിൽ നിന്ന് തടയപ്പെടുന്ന സൈറ്റുകൾ വ്യക്തമാക്കുന്ന url പാറ്റേണുകളുടെ ഒരു ലിസ്റ്റ് സജ്ജീകരിക്കുന്നതിന് നിങ്ങളെ അനുവദിക്കുന്നു. + + ഈ നയം സജ്ജമാക്കാതെ വിട്ടിരിക്കുകയാണെങ്കിൽ, എല്ലാ സൈറ്റുകൾക്കും വേണ്ടി, ആഗോള സ്ഥിര മൂല്യം ഉപയോഗിക്കപ്പെടും; 'DefaultWebUsbGuardSetting' നയം സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ അതിൽ നിന്നോ, സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, ഉപയോക്താവിന്റെ വ്യക്തിഗത കോൺഫിഗറേഷനിൽ നിന്നോ ഉള്ള മൂല്യമാണ് ഉപയോഗിക്കപ്പെടുക. + + ഈ നയത്തിലെ URL പാറ്റേണുകളും WebUsbAskForUrls വഴി കോൺഫിഗർ ചെയ്യപ്പെട്ടിട്ടുള്ളവയും തമ്മിൽ പൊരുത്തക്കേട് ഉണ്ടാകരുത്. രണ്ട് നയങ്ങളുമായും ഒരു URL പൊരുത്തപ്പെടുന്നുണ്ടെങ്കിൽ, രണ്ടിൽ ഏതിന് പ്രാമുഖ്യം നൽകണമെന്ന വ്യക്തമാക്കപ്പെടുന്നില്ല.</translation> <translation id="6689792153960219308">ഹാർഡ്വെയർ നില റിപ്പോർട്ട് ചെയ്യുക</translation> <translation id="6698071416141001300">പാസ്വേഡ് പുനരുപയോഗിച്ച്, പാസ്വേഡ് പരിരക്ഷ വഴി അപകടസാധ്യതാ അക്കൗണ്ട് ഫ്ലാഗ് ചെയ്യൽ ട്രിഗര് ചെയ്തു</translation> <translation id="6699880231565102694">വിദൂര ആക്സസ്സ് ഹോസ്റ്റുകൾക്കായി ഇരട്ട-വസ്തുതാ പ്രാമാണീകരണം പ്രാപ്തമാക്കുക</translation> -<translation id="6702257826895463228">ഒരേ സമയത്ത് നാവിഗേറ്റ് ചെയ്യാനും പോപ്പ്-അപ്പുകൾ തുറക്കാനും സൈറ്റുകളെ അനുവദിക്കുന്നു. - - സമ്പൂർണ വിശദീകരണത്തിനായി https://www.chromestatus.com/features/5675755719622656 കാണുക. - ഈ നയം പ്രവർത്തനക്ഷമമാണെങ്കിൽ, സൈറ്റുകളെ ഒരേ സമയം നാവിഗേറ്റ് ചെയ്യാനും പുതിയ വിൻഡോകൾ/ടാബുകൾ തുറക്കാനും അനുവദിക്കും. - ഈ നയം പ്രവർത്തനരഹിതമോ സജ്ജീകരിക്കാത്ത നിലയിലോ ആണെങ്കിൽ, സൈറ്റുകളെ ഒരേ സമയം നാവിഗേറ്റ് ചെയ്യാനും പുതിയ വിൻഡോകൾ/ടാബുകൾ തുറക്കാനും അനുവദിക്കില്ല.</translation> <translation id="6724842112053619797">റോമിംഗ് ഉപയോക്തൃ പ്രൊഫൈൽ ഫോൾഡറിലോ <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> നയം വഴി അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ ലൊക്കേഷനിലോ സൂക്ഷിച്ചിട്ടുള്ള ഒരു ഫയലിൽ, ബുക്ക്മാർക്കുകൾ, സ്വയമേവ പൂരിപ്പിക്കുന്ന വിവരങ്ങൾ, പാസ്വേഡുകൾ എന്നിവ പോലെ <ph name="PRODUCT_NAME" /> പ്രൊഫൈലുകളിൽ സൂക്ഷിച്ചിരിക്കുന്ന ക്രമീകരണവും റൈറ്റുചെയ്യും. ഈ നയം പ്രവർത്തനസജ്ജമാക്കുമ്പോൾ ക്ലൗഡ് സമന്വയിപ്പിക്കൽ പ്രവർത്തനരഹിതമാക്കുന്നു. ഈ നയം പ്രവർത്തനരഹിതമാക്കുകയോ അല്ലെങ്കിൽ സജ്ജമാക്കാതെ വിടുകയോ ആണെങ്കിൽ, സാധാരണ ലോക്കൽ പ്രൊഫൈലുകൾ മാത്രമേ ഉപയോഗിക്കൂ. @@ -2334,6 +2342,11 @@ ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കിയിട്ടില്ലെങ്കിലോ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിലോ, എല്ലാ റിസോഴ്സുകളിലേക്കും സുരക്ഷിത ബ്രൗസിംഗ് പരിരക്ഷ ബാധകമാക്കപ്പെടും. ഒരു <ph name="MS_AD_NAME" /> ഡോമെയ്നിൽ ചേർന്നിട്ടില്ലാത്ത Windows ഇൻസ്റ്റാൻസുകൾക്ക് ഈ നയം ലഭ്യമല്ല.</translation> <translation id="7079519252486108041">ഈ സൈറ്റുകളില് പോപ്പപ്പുകള് തടയുക.</translation> +<translation id="7085803328069945025">ഒരു USB ഉപകരണത്തിലേക്ക് ആക്സസ് അനുവദിക്കാൻ ഉപയോക്താവിനോട് ചോദിക്കുന്നതിന് അനുവദിക്കപ്പെടുന്ന സൈറ്റുകൾ വ്യക്തമാക്കുന്ന url പാറ്റേണുകളുടെ ഒരു ലിസ്റ്റ് സജ്ജീകരിക്കുന്നതിന് നിങ്ങളെ അനുവദിക്കുന്നു. + + ഈ നയം സജ്ജമാക്കാതെ വിട്ടിരിക്കുകയാണെങ്കിൽ, എല്ലാ സൈറ്റുകൾക്കും വേണ്ടി, ആഗോള സ്ഥിര മൂല്യം ഉപയോഗിക്കപ്പെടും; 'DefaultWebUsbGuardSetting' നയം സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ അതിൽ നിന്നോ, സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, ഉപയോക്താവിന്റെ വ്യക്തിഗത കോൺഫിഗറേഷനിൽ നിന്നോ ഉള്ള മൂല്യമാണ് ഉപയോഗിക്കപ്പെടുക. + + ഈ നയത്തിലെ URL പാറ്റേണുകളും WebUsbBlockedForUrls വഴി കോൺഫിഗർ ചെയ്യപ്പെട്ടിട്ടുള്ളവയും തമ്മിൽ പൊരുത്തക്കേട് ഉണ്ടാകരുത്. രണ്ട് നയങ്ങളുമായും ഒരു URL പൊരുത്തപ്പെടുന്നുണ്ടെങ്കിൽ, രണ്ടിൽ ഏതിന് പ്രാമുഖ്യം നൽകണമെന്ന വ്യക്തമാക്കപ്പെടുന്നില്ല.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> ഉപകരണങ്ങൾ നിഷ്ക്രിയമാകുമ്പോഴോ താൽക്കാലികമായി നിർത്തുമ്പോഴോ ലോക്ക് പ്രവർത്തനക്ഷമമാക്കുക. നിങ്ങൾ ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുകയാണെങ്കിൽ, സുഷുപ്തിയിൽ നിന്ന് ഉപകരണം അൺലോക്കുചെയ്യുന്നതിന് ഉപയോക്താക്കളോട് പാസ്വേഡ് ആവശ്യപ്പെടുന്നതാണ്. @@ -3168,6 +3181,7 @@ AC പവറിനും ബാറ്ററിയ്ക്കും വ്യത്യസ്ത ക്രമീകരണങ്ങളും ഉണ്ട്. </translation> <translation id="9105265795073104888">പ്രോക്സി കോൺഫിഗറേഷൻ ഓപ്ഷനുകളുടെ ഒരു ഉപഗണത്തെ മാത്രമേ Android ആപ്പുകൾക്ക് ലഭ്യമാക്കിയിട്ടുള്ളൂ. Android ആപ്പുകൾ സ്വമേധയാ പ്രോക്സി ഉപയോഗിക്കുന്നതിന് തിരഞ്ഞെടുത്തേക്കാം. പ്രോക്സി ഉപയോഗിക്കാൻ നിങ്ങൾക്ക് അവയെ നിർബന്ധിക്കാനാവില്ല.</translation> +<translation id="9106865192244721694">ഈ സൈറ്റുകളില് WebUSB അനുവദിക്കുക</translation> <translation id="9112727953998243860">എന്റർപ്രൈസ് പ്രിന്റർ കോൺഫിഗറേഷൻ ഫയൽ</translation> <translation id="9112897538922695510">പ്രോട്ടോക്കോൾ ഹാന്ഡ്ലറുകളുടെ ഒരു ലിസ്റ്റ് രജിസ്റ്റര് ചെയ്യാൻ നിങ്ങളെ അനിവദിക്കുന്നു. ഇതൊരു ശുപാർശ ചെയ്തിരിക്കുന്ന നയം മാത്രമായിരിക്കും. പ്രോപ്പർട്ടി |protocol|, 'mailto' എന്നതുപോലെയുള്ള സ്കീമിലേക്ക് സജ്ജമാക്കിയിരിക്കണം ഒപ്പം പ്രോപ്പർട്ടി |url|, സ്കീം കൈകാര്യംചെയ്യുന്ന അപ്ലിക്കേഷന്റെ URL പാറ്റേണിലേക്ക് സജ്ജമാക്കിയിരിക്കണം. '%s' നിലവിലുണ്ടെങ്കിലും പാറ്റേണിൽ അത് ഉൾപ്പെട്ടിരിക്കാം, ഒപ്പം അത് നിയന്ത്രിത URL ഉപയോഗിച്ച് മാറ്റി പകരം വയ്ക്കും. @@ -3207,6 +3221,11 @@ <translation id="915194831143859291">ഈ നയം 'false' ആയി സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിലോ കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിലോ, ഉപകരണം ഷട്ട് ഡൗൺ ചെയ്യാൻ <ph name="PRODUCT_OS_NAME" /> ഉപയോക്താവിനെ അനുവദിക്കും. ഈ നയം 'true' ആയി സജ്ജമാക്കുകയാണെങ്കിൽ, ഉപയോക്താവ് ഉപകരണം ഷട്ട് ഡൗൺ ചെയ്യുമ്പോൾ <ph name="PRODUCT_OS_NAME" /> റീബൂട്ട് ട്രിഗർ ചെയ്യും. റീബൂട്ട് ബട്ടണുകൾ കൊണ്ട് UI-യിലെ ഷട്ട് ഡൗൺ ബട്ടണുകളുടെ എല്ലാ ആവർത്തനങ്ങളും <ph name="PRODUCT_OS_NAME" /> മാറ്റി പകരംവയ്ക്കും. നയം പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിലും, ഉപയോക്താവ് പവർ ബട്ടൺ ഉപയോഗിച്ച് ഉപകരണം ഷട്ട് ഡൗൺ ചെയ്യുകയാണെങ്കിൽ, ഇത് സ്വയമേവ റീബൂട്ട് ചെയ്യില്ല.</translation> <translation id="9158929520101169054">ബ്രൗസറിനുള്ളിൽ ഒന്നിലധികം സൈൻ-ഇൻ അനുവദിക്കുക</translation> +<translation id="9165792353046089850">കണക്റ്റ് ചെയ്ത USB ഉപകരണങ്ങളിലേക്ക് വെബ്സൈറ്റുകൾക്ക് ആക്സസ് അനുവദിക്കണോ എന്ന് സജ്ജീകരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ആക്സസ് പൂർണ്ണമായും ബ്ലോക്ക് ചെയ്യാം, അല്ലെങ്കിൽ വെബ്സൈറ്റിന് കണക്റ്റ് ചെയ്ത USB ഉപകരണങ്ങളിലേക്ക് ആക്സസ് ആവശ്യമുള്ളപ്പോഴെല്ലാം ഉപയോക്താവിനോട് അക്കാര്യം ചോദിക്കാം. + + 'WebUsbAskForUrls' നയവും 'WebUsbBlockedForUrls' നയവും ഉപയോഗിക്കുന്ന നിർദ്ദിഷ്ട URL പാറ്റേണുകൾക്ക് ഈ നയം അസാധുവാക്കാവുന്നതാണ്. + + ഈ നയം സജ്ജീകരിക്കാത്ത നിലയിലാണെങ്കിൽ, '3' ഉപയോഗിക്കും, ഉപയോക്താവിന് ഇത് മാറ്റാവുന്നതാണ്.</translation> <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> ഫയലുകളുടെ ആപ്പിൽ ഡ്രൈവ് പ്രവർത്തനരഹിതമാക്കുക</translation> <translation id="9185107612228451403">വിപുലീകരണവുമായി ബന്ധപ്പെട്ട നയങ്ങൾ കോൺഫിഗർ ചെയ്യുന്നു. ബ്ലാക്ക്ലിസ്റ്റുചെയ്ത വിപുലീകരണങ്ങൾ വൈറ്റ്ലിസ്റ്റുചെയ്യാതിരുന്നാൽ, അവ ഇൻസ്റ്റാളുചെയ്യാൻ ഉപയോക്താവിനെ അനുവദിക്കില്ല. <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> എന്നതിൽ വിപുലീകരണങ്ങളെ വ്യക്തമാക്കുന്നതിലൂടെ അവയെ സ്വയമേവ ഇൻസ്റ്റാളുചെയ്യാൻ <ph name="PRODUCT_NAME" /> എന്നതിനെ നിങ്ങൾക്ക് നിർബന്ധിതമാക്കാം. നിർബന്ധിതമായി ഇൻസ്റ്റാളുചെയ്ത വിപുലീകരണങ്ങൾ, അവ ബ്ലാക്ക്ലിസ്റ്റിലുണ്ടോയെന്നത് പരിഗണിക്കാതെ തന്നെ ഇൻസ്റ്റാളുചെയ്യപ്പെടുന്നു.</translation> <translation id="9187743794267626640">ബാഹ്യ സംഭരണം മൗണ്ടുചെയ്യുന്നത് അപ്രാപ്തമാക്കുക</translation>
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb index 027f8286..260e0f85 100644 --- a/components/policy/resources/policy_templates_mr.xtb +++ b/components/policy/resources/policy_templates_mr.xtb
@@ -682,7 +682,7 @@ हे सेटिंग अक्षम असल्यास, वेब पृष्ठे JavaScript वापरू शकत नाहीत आणि वापरकर्ता ते सेटिंग बदलू शकत नाही. हे सेटिंग सक्षम असल्यास किंवा सेट नसल्यास, वेब पृष्ठे JavaScript वापरू शकतात परंतु वापरकर्ता ते सेटिंग बदलू शकतो.</translation> -<translation id="2753637905605932878">WebRTC ने वापरलेल्या स्थानिक UDP पोर्टची श्रेणी प्रतिबंधित करा</translation> +<translation id="2753637905605932878">WebRTC ने वापरलेल्या स्थानिक UDP पोर्टची वर्गवारी प्रतिबंधित करा</translation> <translation id="2757054304033424106">इंस्टॉल केले जाण्यासाठी अनुमती असलेल्या विस्तार/अॅप्सचे प्रकार</translation> <translation id="2759224876420453487">एकाधिक सत्रामध्ये वापरकर्ता वर्तन नियंत्रित करा</translation> <translation id="2761483219396643566">बॅटरी उर्जेवर चालत असताना निष्क्रिय चेतावणी विलंब</translation> @@ -721,13 +721,6 @@ हे धोरण वापरले असल्यास, वापरकर्त्याला केवळ या धोरणातील मूल्यांशी जुळणारे आयडी असलेले प्रिंटर उपलब्ध होतात. आयडी <ph name="DEVICE_PRINTERS_POLICY" /> मध्ये निर्दिष्ट केलेल्या "आयडी" किंवा "मार्गदर्शक" फील्डशी अनुरूप असणे आवश्यक आहे. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> च्या सामग्री दृश्यामध्ये शोधण्यासाठी स्पर्श करा ची उपलब्धता सक्षम करते. - - आपण हे सेटिंग सक्षम केल्यास, वापरकर्त्यासाठी शोधण्यासाठी स्पर्श करा उपलब्ध असेल आणि वैशिष्ट्य चालू किंवा बंद करणे ते निवडू शकतात. - - आपण हे सेटिंग अक्षम केल्यास, शोधण्यासाठी स्पर्श करा पूर्णपणे अक्षम केले जाईल. - - हे धोरण सेट न केलेले ठेवल्यास, ते सक्षम ठेवले जात असल्याच्या सममूल्य असते, वरील वर्णन पहा.</translation> <translation id="285480231336205327">उच्च तीव्रता मोड सक्षम करा</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" /> ने अगदी अलीकडे वापरण्यात आलेला प्रिंटर निवडण्याऐवजी प्रिंट प्रीव्ह्यूमधील डीफॉल्ट यादीतील सिस्टम डीफॉल्ट प्रिंटर म्हणून वापरण्यास कारणीभूत ठरते. @@ -1004,9 +997,9 @@ <translation id="3736879847913515635">वापरकर्ता व्यवस्थापकामध्ये व्यक्ती जोडणे सक्षम करा</translation> <translation id="3737544779868348650">डिव्हाइस नेटवर्क होस्ट नाव</translation> <translation id="3750220015372671395">या साइटवर की निर्मिती अवरोधित करा</translation> -<translation id="375266612405883748">या मशीनमधील रिमोट अॅक्सेस होस्टद्वारे वापरलेल्या UDP पोर्ट श्रेणी प्रतिबंधित करते. +<translation id="375266612405883748">या मशीनमधील रिमोट अॅक्सेस होस्टद्वारे वापरलेल्या UDP पोर्ट वर्गवारी प्रतिबंधित करते. - हे धोरण सेट न करता सोडल्यास किंवा यास रिकाम्या स्ट्रिंगवर सेट केल्यास, <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> धोरण बंद केल्याशिवाय, रिमोट अॅक्सेस होस्टला कोणतेही उपलब्ध पोर्ट वापरण्यास अनुमती दिली जाईल, ज्यात रिमोट अॅक्सेस होस्ट 12400-12409 श्रेणीमध्ये UDP पोर्ट वापरेल.</translation> + हे धोरण सेट न करता सोडल्यास किंवा यास रिकाम्या स्ट्रिंगवर सेट केल्यास, <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> धोरण बंद केल्याशिवाय, रिमोट अॅक्सेस होस्टला कोणतेही उपलब्ध पोर्ट वापरण्यास अनुमती दिली जाईल, ज्यात रिमोट अॅक्सेस होस्ट 12400-12409 वर्गवारीमध्ये UDP पोर्ट वापरेल.</translation> <translation id="3756011779061588474">विकसक मोड अवरोधित करा</translation> <translation id="3758089716224084329"><ph name="PRODUCT_NAME" /> कडून वापरण्यात येणारे प्रॉक्सी सर्व्हर निर्दिष्ट करण्याची आपल्याला अनुमती देते आणि प्रॉक्सी सेटिंग्ज बदलण्यापासून वापरकर्त्यांना प्रतिबंधित करते. @@ -1636,9 +1629,9 @@ ते असत्यवर सेट केले असल्यास किंवा ते सेट केले नसल्यास, API वरील कॉल एरर कोडसह अयशस्वी होतील.</translation> <translation id="5283457834853986457">प्लग-इन फाइंडर (कालबाह्य) बंद करा</translation> -<translation id="5288772341821359899">धोरण सेट केले असल्यास, WebRTC ने वापरलेली UDP पोर्ट श्रेणी ही निर्दिष्ट केलेल्या पोर्टपुरती मर्यादित केली जाते (समाप्ती बिंदू समाविष्ट केले आहेत). +<translation id="5288772341821359899">धोरण सेट केले असल्यास, WebRTC ने वापरलेली UDP पोर्ट वर्गवारी ही निर्दिष्ट केलेल्या पोर्टपुरती मर्यादित केली जाते (समाप्ती बिंदू समाविष्ट केले आहेत). - धोरण सेट केले नसल्यास किंवा ते रिक्त स्ट्रिंगवर किंवा अवैध पोर्ट श्रेणीवर सेट केले असल्यास, WebRTC ला कोणतेही उपलब्ध असलेले स्थानिक UDP पोर्ट वापरण्याची अनुमती दिली जाते.</translation> + धोरण सेट केले नसल्यास किंवा ते रिक्त स्ट्रिंगवर किंवा अवैध पोर्ट वर्गवारीवर सेट केले असल्यास, WebRTC ला कोणतेही उपलब्ध असलेले स्थानिक UDP पोर्ट वापरण्याची अनुमती दिली जाते.</translation> <translation id="5290940294294002042">वापरकर्ता सक्षम किंवा अक्षम करू शकतो अशा प्लगइनची सूची निर्दिष्ट करा</translation> <translation id="5302612588919538756">हे धोरण बहिष्कृत केले आहे, त्याऐवजी SyncDisabled वापरण्याचा विचार करा. @@ -1860,7 +1853,7 @@ <translation id="5835124959204887277">सिक्युरिटी कीमधील अनुप्रमाणन सर्टिफिकेटची विनंती केली असताना URL आणि डोमेन निर्दिष्ट करते. याव्यतिरिक्त, विशिष्ट अनुप्रमाणन वापरले जाऊ शकते हे सूचित करणारा संकेत सिक्युरिटी कीला पाठवला जाईल. याशिवाय, साइट सिक्युरिटी कीच्या प्रमाणनाची विनंती करत असताना वापरकर्त्यांना Chrome 65+ मध्ये सूचित केले जाईल. URL (जसे की https://example.com/some/path) केवळ U2F appIDs शी जुळेल. डोमेन (जसे की example.com) केवळ webauthn RP ID शी जुळतील. म्हणून, दिलेल्या साइटसाठी U2F आणि webauthn API दोन्ही कव्हर करण्यासाठी, appID URL आणि डोमेन दोन्ही सूचीबद्ध करणे आवश्यक असेल.</translation> -<translation id="5836064773277134605">दूरस्थ प्रवेश होस्टद्वारे वापरलेली UDP पोर्ट श्रेणी प्रतिबंधित करा</translation> +<translation id="5836064773277134605">दूरस्थ प्रवेश होस्टद्वारे वापरलेली UDP पोर्ट वर्गवारी प्रतिबंधित करा</translation> <translation id="5862253018042179045">लॉगिन स्क्रीनवर बोललेला अभिप्राय प्रवेशयोग्यता वैशिष्ट्याची डीफॉल्ट स्थिती सेट करा. हे धोरण सत्य वर सेट असल्यास, जेव्हा लॉगिन स्क्रीन दर्शविली असते तेव्हा बोललेला अभिप्राय सक्षम केला जाईल. @@ -1871,7 +1864,6 @@ हे धोरण सेट न करता सोडल्यास, जेव्हा प्रथम लॉगिन स्क्रीन दर्शविली जाते तेव्हा बोललेला अभिप्राय अक्षम केला जातो. वापरकर्ते कोणत्याही वेळी बोललेला अभिप्राय आणि वापरकर्त्यांमध्ये कायम असलेली लॉगिन स्क्रीनवरील त्याची स्थिती सक्षम किंवा अक्षम करू शकतात.</translation> <translation id="5868414965372171132">वापरकर्ता स्तरीय नेटवर्क कॉन्फिगरेशन</translation> -<translation id="588135807064822874">शोधण्यासाठी स्पर्श करा सक्षम करा</translation> <translation id="5883015257301027298">डीफॉल्ट कुकीज सेटिंग</translation> <translation id="5887414688706570295">TalkGadget उपसर्ग कॉन्फिगर करते जे दूरस्थ प्रवेश होस्टद्वारे वापरले जाते आणि वापरकर्त्यास त्यास वापरण्यापासून प्रतिबंधित करते. निर्दिष्ट केल्यास, हा उपसर्ग TalkGadget करिता एक पूर्ण डोमेन तयार करण्यासाठी आधारभूत TalkGadget नावामध्ये योजला आहे. आधारभूत TalkGadget डोमेन नाव '.talkgadget.google.com' हे आहे. @@ -2138,11 +2130,6 @@ <translation id="6689792153960219308">हार्डवेअर स्थितीचा अहवाल द्या</translation> <translation id="6698071416141001300">पासवर्ड पुन्हा वापरला गेल्यामुळे खात्यावर पासवर्ड संरक्षण जोखीम फ्लॅगिंग ट्रिगर होते</translation> <translation id="6699880231565102694">दूरस्थ प्रवेश होस्टसाठी द्वि-घटक प्रमाणीकरण सक्षम करा</translation> -<translation id="6702257826895463228">साइटना एकाच वेळी नेव्हिगेट करण्याची आणि पॉप-अप उघडण्याची अनुमती देते. - - संपूर्ण स्पष्टीकरणासाठी https://www.chromestatus.com/features/5675755719622656 पहा. - जर हे धोरण सुरू केले असेल तर, साइटना एकाच वेळी नेव्हिगेट करण्यास आणि नवीन विंडो/टॅब उघडण्याची अनुमती दिली जाईल. - जर हे धोरण बंद केले असेल किंवा सेट केले नसेल तर, साइटना एकाच वेळी नेव्हिगेट करण्यास आणि नवीन विंडो/टॅब उघडण्याची अनुमती दिली जाणार नाही.</translation> <translation id="6724842112053619797">तुम्ही ही सेटिंग चालू केल्यास, <ph name="PRODUCT_NAME" /> च्या प्रोफाइलमध्ये स्टोअर असलेल्या सेटिंग्ज जसे बुकमार्क, ऑटोफिल डेटा, पासवर्ड, इ. देखील रोमिंग वापरकर्ता प्रोफाइल फोल्डरमध्ये किंवा प्रशासकाने <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> धोरणामधून निर्दिष्ट केलेल्या स्थानावर स्टोअर केलेल्या फाइलमध्ये लिहिल्या जातील. हे धोरण चालू केल्याने क्लाऊड सिंक बंद होईल. हे धोरण बंद केल्यास किंवा सेट न करता ठेवल्यास फक्त नेहमीच्या स्थानिक प्रोफाइल वापरात येतील. @@ -2924,9 +2911,9 @@ लक्षात ठेवा की हे धोरण अक्षम केले तरी देखील, ब्राउझिंग आणि डाउनलोड इतिहास तसाच राहील याची हमी दिली जात नाही: वापरकर्ते इतिहास डेटाबेस फायली थेट संपादित करण्यात किंवा हटविण्यात सक्षम होऊ शकतील आणि ब्राउझर स्वतःच कालबाह्य होईल किंवा कधीही कोणताही किंवा सर्व इतिहास संग्रहित करू शकेल. - हे सेटिंग सक्षम केलेले असेल किंवा सेट केलेले नसल्यास, ब्राउझिंग आणि डाउनलोड इतिहास हटविला जाऊ शकतो. + हे सेटिंग सक्षम केलेले असेल किंवा सेट केलेले नसल्यास, ब्राउझिंग आणि डाउनलोड इतिहास हटवला जाऊ शकतो. - हे सेटिंग अक्षम केलेले असल्यास, ब्राउझिंग आणि डाउनलोड इतिहास हटविला जाऊ शकत नाही.</translation> + हे सेटिंग अक्षम केलेले असल्यास, ब्राउझिंग आणि डाउनलोड इतिहास हटवला जाऊ शकत नाही.</translation> <translation id="8759829385824155666">Kerberos एंक्रिप्शन प्रकारांना अनुमती दिली</translation> <translation id="8764119899999036911">व्युत्पन्न केलेले Kerberos SPN प्रमाणभूत DNS नावावर किंवा प्रविष्ट केलेल्या मूळ नावावर आधारित आहे ते निर्दिष्ट करते.
diff --git a/components/policy/resources/policy_templates_ms.xtb b/components/policy/resources/policy_templates_ms.xtb index 6e4b519..76c218f 100644 --- a/components/policy/resources/policy_templates_ms.xtb +++ b/components/policy/resources/policy_templates_ms.xtb
@@ -27,6 +27,7 @@ Jika dasar ini ditetapkan, skrin log masuk akan sentiasa dipaparkan dalam tempat peristiwa yang diberikan oleh nilai pertama dasar ini (dasar ditentukan sebagai senarai untuk keserasian pemajuan). Jika dasar ini tidak ditetapkan atau ditetapkan pada senarai kosong, skrin log masuk akan dipaparkan dalam tempat peristiwa sesi pengguna yang terakhir. Jika dasar ini ditetapkan pada nilai yang merupakan tempat peristiwa yang tidak sah, skrin log masuk akan dipaparkan dalam tempat peristiwa sandaran (pada masa ini, en-US).</translation> <translation id="1062011392452772310">Dayakan pembuktian jauh untuk peranti</translation> <translation id="1062407476771304334">Gantikan</translation> +<translation id="1079801999187584280">Jangan benarkan penggunaan Alat Pembangun</translation> <translation id="109166998561583554">Penanda akaun perlindungan kata laluan berisiko dicetuskan</translation> <translation id="1093082332347834239">Jika tetapan ini didayakan, hos bantuan jauh akan dijalankan dalam proses dengan kebenaran <ph name="UIACCESS_PERMISSION_NAME" />. Langkah ini akan membolehkan pengguna jauh berinteraksi dengan tetingkap ternaik pada desktop pengguna setempat. @@ -79,6 +80,7 @@ Faktor skala mestilah 100% atau lebih.</translation> <translation id="131353325527891113">Paparkan nama pengguna pada skrin log masuk</translation> +<translation id="1325295456374328159">Konfigurasikan tempat peristiwa yang dibenarkan dalam sesi pengguna</translation> <translation id="1327466551276625742">Dayakan gesaan konfigurasi rangkaian apabila di luar talian</translation> <translation id="1330145147221172764">Dayakan papan kekunci pada skrin</translation> <translation id="13356285923490863">Nama Dasar</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Sama ada hendak mendayakan kepercayaan dalam Infrastruktur PKI Lama Symantec Corporation</translation> <translation id="1393485621820363363">Pencetak peranti perusahaan didayakan</translation> <translation id="1397855852561539316">Pembekal carian lalai mencadangkan URL</translation> +<translation id="1424081297104898791">Membenarkan anda mengawal tempat Alat Pembangun boleh digunakan. + + Jika dasar ini ditetapkan kepada 'DeveloperToolsDisallowedForForceInstalledExtensions' (nilai 0, merupakan nilai lalai untuk pengguna perusahaan), Alat Pembangun dan konsol JavaScript boleh diakses secara umum, tetapi tidak boleh diakses dalam konteks sambungan yang dipasang oleh dasar perusahaan. + Jika dasar ini ditetapkan kepada 'DeveloperToolsAllowed' (nilai 1, merupakan nilai lalai untuk pengguna yang tidak diurus), Alat Pembangun dan konsol JavaScript boleh diakses dan digunakan dalam semua konteks, termasuk konteks sambungan yang dipasang oleh dasar perusahaan. + Jika dasar ini ditetapkan kepada 'DeveloperToolsDisallowed' (nilai 2), Alat Pembangun tidak boleh diakses dan elemen tapak web tidak boleh disemak lagi. Sebarang pintasan papan kekunci dan mana-mana menu atau masukan menu konteks untuk membuka Alat Pembangun atau Konsol JavaScript akan dilumpuhkan. + Jika dasar lama DeveloperToolsDisabled ditetapkan kepada benar, nilai dasar ini diabaikan dan Alat Pembangun dilumpuhkan.</translation> <translation id="1426410128494586442">Ya</translation> <translation id="1427655258943162134">Alamat atau URL pelayan proksi</translation> <translation id="1435659902881071157">Konfigurasi rangkaian tahap peranti</translation> @@ -206,6 +214,7 @@ <translation id="1803646570632580723">Senarai apl berpin untuk dipaparkan dalam pelancar</translation> <translation id="1808715480127969042">Sekat kuki pada tapak ini</translation> <translation id="1810261428246410396">Benarkan penggunaan Penambatan Segera.</translation> +<translation id="1826282708349731794">Mengawal cara Chrome Cleanup melaporkan data kepada Google</translation> <translation id="1827523283178827583">Gunakan pelayan proksi tetap</translation> <translation id="1843117931376765605">Segar semula kadar untuk dasar pengguna</translation> <translation id="1844620919405873871">Mengkonfigurasikan dasar yang berkaitan buka kunci pantas.</translation> @@ -610,6 +619,7 @@ Dasar ini tidak mempengaruhi sama ada pengguna boleh mengkonfigurasi pencetak pada peranti individu. Tujuan dasar adalah sebagai tambahan kepada konfigurasi pencetak oleh pengguna individu. </translation> <translation id="2633084400146331575">Dayakan maklum balas yang dituturkan</translation> +<translation id="2640843331263301324">Mendayakan Chrome Cleanup pada Windows</translation> <translation id="2646290749315461919">Membenarkan anda menetapkan sama ada tapak web dibenarkan untuk mengesan lokasi fizikal pengguna. Penjejakan lokasi fizikal pengguna boleh dibenarkan secara lalai, dinafikan secara lalai atau pengguna boleh ditanya setiap kali tapak web meminta lokasi fizikal. Jika dasar ini tidak ditetapkan, 'AskGeolocation' akan digunakan dan pengguna akan dapat mengubah.</translation> <translation id="2647069081229792812">Dayakan atau lumpuhkan pengeditan penanda halaman</translation> <translation id="2650049181907741121">Tindakan yang perlu diambil apabila pengguna menutup penutup</translation> @@ -677,13 +687,6 @@ Jika dasar ini digunakan, hanya pencetak dengan ID yang sepadan dengan nilai dalam dasar ini akan tersedia kepada pengguna. ID mesti sepadan dengan medan "id" atau "guid" dalam fail yang dinyatakan dalam <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Mendayakan ketersediaan Sentuh untuk Cari dalam paparan kandungan <ph name="PRODUCT_NAME" />. - - Jika anda mendayakan tetapan ini, Sentuh untuk Cari akan tersedia kepada pengguna dan mereka boleh memilih untuk menghidupkan atau mematikan ciri tersebut. - - Jika anda melumpuhkan tetapan ini, Sentuh untuk Cari akan dilumpuhkan sepenuhnya. - - Jika dasar ini dibiarkan tanpa ditetapkan, keadaannya sama seperti tetapan ini didayakan, lihat huraian di atas.</translation> <translation id="285480231336205327">Dayakan mod kontras tinggi</translation> <translation id="2854919890879212089">Menyebabkan <ph name="PRODUCT_NAME" /> menggunakan pencetak lalai sistem sebagai pilihan lalai dalam Pratonton Cetakan dan bukannya pencetak yang paling baru digunakan. @@ -1265,12 +1268,14 @@ <translation id="4554651132977135445">Mod pemprosesan gelung balik dasar pengguna</translation> <translation id="4555850956567117258">Dayakan pembuktian jauh untuk pengguna</translation> <translation id="4557134566541205630">URL halaman tab baharu penyedia carian lalai</translation> +<translation id="4567137030726189378">Benarkan penggunaan Alat Pembangun</translation> <translation id="4600786265870346112">Dayakan kursor besar</translation> <translation id="4604931264910482931">Konfigurasi senarai hitam pemesejan natif</translation> <translation id="4613508646038788144">Jika dasar ditetapkan kepada palsu, maka perisian pihak ketiga akan dibenarkan untuk menyuntik kod boleh laku ke dalam proses Chrome. Jika dasar tidak ditetapkan atau ditetapkan kepada benar, maka perisian pihak ketiga akan dihalang daripada menyuntik kod boleh laku ke dalam proses Chrome.</translation> <translation id="4617338332148204752">Langkau semakan teg meta dalam <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfigurasi senarai putih pemasangan sambungan</translation> <translation id="4632343302005518762">Benarkan <ph name="PRODUCT_FRAME_NAME" /> mengendalikan jenis kandungan yang disenaraikan</translation> +<translation id="4632566332417930481">Jangan benarkan penggunaan Alat Pembangun pada sambungan yang dipasang oleh dasar perusahaan, benarkan penggunaan Alat Pembangun dalam konteks lain</translation> <translation id="4633786464238689684">Menukar tingkah laku lalai kekunci baris atas kepada kekunci fungsi. Jika dasar ini ditetapkan kepada benar, kekunci baris atas papan kekunci akan menghasilkan perintah kekunci fungsi secara lalai. Kekunci carian perlu ditekan untuk menukar kembali tingkah lakunya kepada kekunci media. @@ -1541,10 +1546,14 @@ 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="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> <translation id="5457924070961220141">Membenarkan anda mengkonfigurasi pemapar HTML lalai apabila <ph name="PRODUCT_FRAME_NAME" /> dipasang. Tetapan lalai yang gunakan apabila dasar ini dibiarkan tanpa ditetapkan ialah untuk membenarkan penyemak imbas hos membuat paparan, tetapi anda boleh memilih untuk mengatasi hal ini dan membenarkan <ph name="PRODUCT_FRAME_NAME" /> memaparkan halaman HTML secara lalai.</translation> +<translation id="5459155981813668716">Mengkonfigurasi tempat peristiwa yang mungkin memaparkan <ph name="PRODUCT_OS_NAME" />. + + Jika dasar ini ditetapkan, pengguna hanya boleh mengkonfigurasi <ph name="PRODUCT_OS_NAME" /> untuk dipaparkan dalam salah satu tempat peristiwa yang ditentukan oleh dasar ini. Jika dasar ini tidak ditetapkan atau ditetapkan pada senarai kosong, <ph name="PRODUCT_OS_NAME" /> boleh dipaparkan dalam semua tempat peristiwa yang disokong. Jika dasar ini ditetapkan pada senarai yang mempunyai nilai yang tidak sah, semua nilai yang tidak sah akan diabaikan. Jika pengguna mengkonfigurasi <ph name="PRODUCT_OS_NAME" /> sebelum ini untuk dipaparkan dalam bahasa yang tidak dibenarkan oleh dasar ini, tempat peristiwa yang dipaparkan akan ditukar kepada tempat peristiwa yang dibenarkan apabila pengguna mengelog masuk pada masa akan datang. Jika pengguna telah mengkonfigurasi tempat peristiwa pilihan dan salah satu tempat peristiwa pilihan itu dibenarkan oleh dasar ini, <ph name="PRODUCT_OS_NAME" /> akan bertukar kepada tempat peristiwa ini. Jika tidak, <ph name="PRODUCT_OS_NAME" /> akan bertukar kepada nilai pertama yang sah yang ditentukan oleh dasar ini atau bertukar kepada tempat peristiwa sebelumnya (pada masa ini en-US), jika dasar ini hanya mengandungi masukan yang tidak sah.</translation> <translation id="5464816904705580310">Konfigurasikan tetapan untuk pengguna terurus.</translation> <translation id="546726650689747237">Kelewatan pemalapan skrin apabila dijalankan dengan kuasa AC</translation> <translation id="5469484020713359236">Membolehkan anda menetapkan pola url yang menentukan tapak yang dibenarkan untuk menetapkan kuki. @@ -1666,7 +1675,6 @@ Jika dasar ini dibiarkan tanpa ditetapkan, maklum balas pertuturan dilumpuhkan apabila skrin log masuk mula-mula dipaparkan. Pengguna boleh mendayakan atau melumpuhkan maklum balas pertuturan pada bila-bila masa dan statusnya pada skrin log masuk berterusan antara pengguna.</translation> <translation id="5868414965372171132">Konfigurasi rangkaian tahap pengguna</translation> -<translation id="588135807064822874">Dayakan Sentuh untuk Cari</translation> <translation id="5883015257301027298">Tetapan kuki lalai</translation> <translation id="5887414688706570295">Mengkonfigurasi awalan TalkGadget yang akan digunakan oleh hos akses jauh dan menghalang pengguna daripada menukarnya. @@ -1770,6 +1778,7 @@ <translation id="6036523166753287175">Dayakan penyusuran tembok api daripada hos akses jauh</translation> <translation id="6070667616071269965">Reka letak papan kekunci skrin log masuk peranti</translation> <translation id="6074963268421707432">Jangan benarkan mana-mana tapak untuk memaparkan pemberitahuan desktop</translation> +<translation id="6074964551275531965">Tetapkan tempoh waktu untuk pemberitahuan kemas kini</translation> <translation id="6076099373507468537">Menentukan senarai peranti USB yang dibenarkan untuk ditanggalkan daripada pemacu inti peranti tersebut untuk digunakan menerusi API chrome.usb terus dalam aplikasi web. Entri ialah pasangan Pengecam Vendor USB dan Pengecam Produk untuk mengenal pasti perkakasan khusus. Jika dasar ini tidak dikonfigurasikan, senarai peranti USB yang boleh ditanggalkan ditetapkan sebagai kosong.</translation> @@ -1852,6 +1861,11 @@ Jika anda mendayakan tetapan ini atau tidak menetapkan nilai, Auto Isi akan kekal di bawah kawalan pengguna. Perkara ini akan membenarkan mereka mengkonfigurasi profil Auto Isi dan untuk menghidupkan atau mematikan Auto Isi mengikut budi bicara mereka.</translation> <translation id="6394350458541421998">Dasar ini telah dihentikan pada <ph name="PRODUCT_OS_NAME" /> versi 29. Sebaliknya sila gunakan dasar PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Log keluar pengguna</translation> +<translation id="6412477120967771054">Jika ditetapkan kepada palsu, akan menghalang Chrome Cleanup daripada mengimbas sistem untuk mengesan perisian yang tidak dikehendaki dan melakukan pembersihan. Tindakan memulakan Chrome Cleanup secara manual daripada chrome://settings/cleanup dilumpuhkan. + + Jika ditetapkan kepada benar atau tidak ditetapkan, Chrome Cleanup akan mengimbas sistem secara berkala untuk mengesan perisian yang tidak dikehendaki dan sekiranya menemui perisian tersebut, Chrome Cleanup akan bertanya kepada pengguna sama ada hendak mengalihnya keluar. Tindakan memulakan Chrome Cleanup secara manual daripada chrome://settings didayakan. + + Dasar ini tidak tersedia pada kejadian Windows yang tidak menyertai domain <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Membolehkan anda menetapkan senarai pola url yang menentukan tapak yang tidak dibenarkan untuk menetapkan kuki. Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak, sama ada dari dasar 'DefaultCookiesSetting' jika ia ditetapkan atau konfigurasi peribadi pengguna tersebut jika sebaliknya.</translation> @@ -1874,6 +1888,13 @@ Untuk mengawal tapak web yang dibenarkan untuk menjalankan Flash, lihat dasar "DefaultPluginsSetting", "PluginsAllowedForUrls" dan "PluginsBlockedForUrls". Jika tetapan ini dilumpuhkan atau tidak ditetapkan, kandungan Flash daripada sumber lain atau kandungan kecil mungkin disekat.</translation> +<translation id="6535639183431116351">Dasar ini ditamatkan dalam M68, sila gunakan DeveloperToolsAvailability sebagai ganti. + + Melumpuhkan Alat Pembangun dan konsol JavaScript. + + Jika anda mendayakan tetapan ini, Alat Pembangun tidak boleh diakses dan elemen tapak web tidak boleh disemak lagi. Sebarang pintasan papan kekunci dan mana-mana menu atau masukan menu konteks untuk membuka Alat Pembangun atau Konsol JavaScript akan dilumpuhkan. + + Menetapkan pilihan ini kepada dilumpuhkan atau membiarkannya tanpa ditetapkan membolehkan pengguna menggunakan Alat Pembangun dan konsol JavaScript.</translation> <translation id="653608967792832033">Menetapkan panjang masa tanpa input daripada pengguna yang akan mengunci skrin selepas tempoh tersebut apabila dijalankan dengan kuasa bateri. Apabila dasar ini ditetapkan kepada nilai yang lebih besar daripada sifar, ia menetapkan panjang masa pengguna melahu sebelum <ph name="PRODUCT_OS_NAME" /> mengunci skrin. @@ -1931,7 +1952,7 @@ Jika dasar ini dibiarkan tanpa ditetapkan, ramalan rangkaian akan didayakan tetapi pengguna akan boleh mengubahnya.</translation> <translation id="6658245400435704251">Menyatakan bilangan saat sehingga peranti boleh melambatkan muat turun kemas kini secara rawak dari masa kemas kini mula ditolak keluar ke pelayan. Peranti mungkin menunggu sebahagian masa ini dari segi masa jam dinding dan bahagian yang selebihnya dari segi bilangan semakan kemas kini. Dalam apa jua keadaan, serakan atas disempadani oleh jumlah masa yang tetap supaya peranti tidak sekali-kali akan tersekat menunggu selama-lamanya untuk memuat turun kemas kini.</translation> <translation id="6665670272107384733">Tetapkan kekerapan pengguna perlu memasukkan kata laluan untuk menggunakan buka kunci pantas</translation> -<translation id="6681229465468164801">Membolehkan anda menetapkan senarai corak url bagi menentukan tapak yang dihalang daripada meminta pengguna memberikan tapak tersebut akses kepada peranti USB. +<translation id="6681229465468164801">Membolehkan anda menetapkan senarai corak url bagi menentukan tapak yang dihalang daripada meminta pengguna memberi tapak tersebut akses kepada peranti USB. Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak sama ada daripada dasar 'DefaultWebUsbGuardSetting' jika dasar ini ditetapkan atau konfigurasi peribadi pengguna akan digunakan. @@ -1939,11 +1960,6 @@ <translation id="6689792153960219308">Laporkan status perkakasan</translation> <translation id="6698071416141001300">Penandaan akaun perlindungan kata laluan berisiko dicetuskan oleh penggunaan semula kata laluan</translation> <translation id="6699880231565102694">Dayakan pengesahan dua faktor untuk hos akses jauh</translation> -<translation id="6702257826895463228">Benarkan tapak menavigasi dan membuka tetingkap timbul secara serentak. - - Untuk mendapatkan penerangan lengkap, lihat https://www.chromestatus.com/features/5675755719622656. - Jika dasar ini didayakan, tapak akan dibenarkan menavigasi dan membuka tetingkap/tab baharu secara serentak. - Jika dasar ini dilumpuhkan atau tidak ditetapkan, tapak tidak dibenarkan menavigasi dan membuka tetingkap/tab baharu secara serentak.</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. Jika dasar ini dilumpuhkan atau dibiarkan tidak ditetapkan, hanya profil "local" biasa akan digunakan. @@ -2106,7 +2122,7 @@ Jika tetapan ini dilumpuhkan atau tidak ditetapkan, maka perlindungan Safe Browsing lalai akan digunakan pada semua sumber. Dasar ini tidak tersedia pada tika Windows yang tidak dihubungkan ke domain <ph name="MS_AD_NAME" />.</translation> <translation id="7079519252486108041">Sekat pop muncul pada tapak ini</translation> -<translation id="7085803328069945025">Membolehkan anda menetapkan senarai corak url bagi menentukan tapak yang dibenarkan meminta pengguna memberikan tapak tersebut akses kepada peranti USB. +<translation id="7085803328069945025">Membolehkan anda menetapkan senarai corak url bagi menentukan tapak yang dibenarkan meminta pengguna memberi tapak tersebut akses kepada peranti USB. Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak sama ada daripada dasar 'DefaultWebUsbGuardSetting' jika dasar ini ditetapkan atau konfigurasi peribadi pengguna akan digunakan. @@ -2312,6 +2328,7 @@ Lihat https://developers.google.com/safe-browsing untuk mendapatkan maklumat lanjut tentang Penyemakan Imbas Selamat.</translation> <translation id="7643883929273267746">Sekat akaun yang dapat dilihat di <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Menentukan sama ada data perayauan perlu didayakan untuk peranti. Jika ditetapkan kepada benar, perayauan data dibenarkan. Jika dibiarkan tanpa dikonfigurasi atau ditetapkan kepada palsu, perayauan data tidak akan tersedia.</translation> +<translation id="7673194325208122247">Tempoh waktu (milisaat)</translation> <translation id="7683777542468165012">Segar Semula Dasar Dinamik</translation> <translation id="7694807474048279351">Jadualkan but semula automatik selepas kemas kini <ph name="PRODUCT_OS_NAME" /> telah dilaksanakan. @@ -2444,6 +2461,13 @@ Jika tetapan ini dilumpuhkan dan sambungan UDP keluar ditapis oleh firewall, maka mesin ini hanya boleh bersambung dengan mesin hos di dalam rangkaian setempat sahaja.</translation> <translation id="7976157349247117979">Nama destinasi <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Jika tidak ditetapkan, sekiranya Chrome Cleanup mengesan perisian yang tidak dikehendaki, Chrome Cleanup boleh melaporkan metadata tentang imbasan itu kepada Google menurut dasar yang ditetapkan oleh SafeBrowsingExtendedReportingEnabled. Chrome Cleanup kemudiannya akan menanyakan pengguna jika mereka ingin membersihkan perisian yang tidak dikehendaki itu. Pengguna boleh memilih untuk berkongsi keputusan pembersihan dengan Google untuk membantu pengesanan perisian yang tidak dikehendaki pada masa akan datang. Keputusan ini mengandungi metadata fail dan kunci daftaran seperti yang diterangkan oleh Kertas Putih Privasi Chrome. + + Jika ditetapkan kepada palsu, sekiranya Chrome Cleanup mengesan perisian yang tidak dikehendaki, Chrome Cleanup tidak akan melaporkan metadata tentang imbasan itu kepada Google, mengatasi sebarang dasar yang ditetapkan oleh SafeBrowsingExtendedReportingEnabled. Chrome Cleanup akan menanyakan pengguna jika mereka ingin membersihkan perisian yang tidak dikehendaki itu. Keputusan pembersihan tidak akan dilaporkan kepada Google dan pengguna tidak akan mempunyai pilihan untuk melakukannya. + + Jika ditetapkan kepada benar, sekiranya Chrome Cleanup mengesan perisian yang tidak dikehendaki, Chrome Cleanup boleh melaporkan metadata tentang imbasan itu kepada Google menurut dasar yang ditetapkan oleh SafeBrowsingExtendedReportingEnabled. Chrome Cleanup akan menanyakan pengguna jika mereka ingin membersihkan perisian yang tidak dikehendaki itu. Keputusan pembersihan akan dilaporkan kepada Google dan pengguna tidak mempunyai pilihan untuk menghalangnya. + + Dasar ini tidak tersedia pada kejadian Windows yang tidak menyertai domain <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Anda mungkin mahu meneliti tetapan dasar IsolateOrigins untuk memanfaatkan kedua-dua keadaan, pengasingan dan kesan yang terhad untuk pengguna, @@ -2566,6 +2590,7 @@ <translation id="8300455783946254851">Melumpuhkan penyegerakan Google Drive dalam apl Fail <ph name="PRODUCT_OS_NAME" /> semasa menggunakan sambungan selular apabila ditetapkan kepada Benar. Jika ini berlaku, data hanya akan disegerakkan ke Google Drive semasa disambungkan melalui Wi-Fi atau Ethernet. Jika tidak ditetapkan atau ditetapkan kepada Palsu, pengguna akan dapat memindahkan fail ke Google Drive melalui sambungan selular.</translation> +<translation id="8300992833374611099">Kawal tempat yang boleh menggunakan Alat Pembangun</translation> <translation id="8312129124898414409">Membenarkan anda untuk menetapkan sama ada tapak web dibenarkan untuk menggunakan penghasilan kunci. Menggunakan penghasilan kunci boleh dibenarkan untuk semua tapak web atau ditolak untuk semua tapak web. Jika dasar ini dibiarkan tanpa ditetapkan, 'BlockKeygen' akan digunakan dan pengguna akan dapat menukarnya.</translation> @@ -2806,6 +2831,11 @@ <translation id="9035964157729712237">ID sambungan untuk dikecualikan daripada senarai hitam</translation> <translation id="9042911395677044526">Membenarkan penolakan konfigurasi rangkaian digunakan untuk setiap pengguna pada peranti <ph name="PRODUCT_OS_NAME" />. Konfigurasi rangkaian ialah rentetan berformat JSON seperti yang ditakrifkan oleh format Konfigurasi Rangkaian Terbuka yang dihuraikan di <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Menyatakan sama ada aktiviti video menjejaskan pengurusan kuasa</translation> +<translation id="9085839450090699752">Membenarkan anda menetapkan tempoh waktu dalam milisaat berkenaan pengguna yang akan dimaklumkan tentang <ph name="PRODUCT_NAME" /> yang mesti dilancarkan semula atau tentang peranti <ph name="PRODUCT_OS_NAME" /> yang mesti dimulakan semula untuk menggunakan kemas kini yang belum selesai. + + Sepanjang tempoh waktu ini, pengguna akan dimaklumkan berulang kali tentang perlunya kemas kini. Untuk peranti <ph name="PRODUCT_OS_NAME" />, pemberitahuan mula semula akan dipaparkan dalam dulang sistem apabila naik taraf dikesan. Pemberitahuan ini akan berubah warna apabila separuh daripada tempoh pemberitahuan telah berlalu dan berubah warna sekali lagi apabila keseluruhan tempoh pemberitahuan telah berlalu. Untuk penyemak imbas <ph name="PRODUCT_NAME" />, menu apl akan berubah untuk menunjukkan pelancaran semula diperlukan apabila satu pertiga tempoh pemberitahuan telah berlalu. Pemberitahuan ini berubah warna apabila dua pertiga tempoh pemberitahuan telah berlalu dan berubah warna sekali lagi apabila keseluruhan tempoh pemberitahuan telah berlalu. Pemberitahuan tambahan yang didayakan oleh dasar <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> untuk penyemak imbas akan mengikut jadual yang sama ini. + + Jika tidak ditetapkan, tempoh lalai 345600000 milisaat (empat hari) akan digunakan untuk peranti <ph name="PRODUCT_OS_NAME" /> dan 604800000 milisaat (satu minggu) untuk penyemak imbas.</translation> <translation id="9088433379343318874">Dayakan penyedia kandungan pengguna di bawah seliaan</translation> <translation id="9088444059179765143">Konfigurasi kaedah pengesanan zon waktu automatik</translation> <translation id="9096086085182305205">Senarai putih pelayan pengesahan</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index df2d079..cfb850f 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -27,6 +27,7 @@ Als dit beleid is ingesteld, wordt het inlogscherm altijd weergegeven in de taal die is aangegeven door de eerste waarde van dit beleid (het beleid wordt gedefinieerd als een lijst voor voorwaartse compatibiliteit). Als dit beleid niet is ingesteld of is ingesteld op een lege lijst, wordt het inlogscherm weergegeven in de taal van de laatste gebruikerssessie. Als dit beleid is ingesteld op een waarde die geen geldige taal is, wordt het inlogscherm weergegeven in een reservetaal (momenteel en-US).</translation> <translation id="1062011392452772310">Externe bevestiging van apparaat inschakelen</translation> <translation id="1062407476771304334">Vervangen</translation> +<translation id="1079801999187584280">Het gebruik van de hulpprogramma's voor ontwikkelaars niet toestaan</translation> <translation id="109166998561583554">Trigger voor accountmarkering wegens wachtwoordbeveiligingsrisico</translation> <translation id="1093082332347834239">Als de instelling is ingeschakeld, wordt de host voor ondersteuning op afstand uitgevoerd in een proces met <ph name="UIACCESS_PERMISSION_NAME" />-rechten. Zodoende kan een externe gebruiker de vensters met een verhoogde bevoegdheid op de desktop van de lokale gebruiker gebruiken. @@ -78,6 +79,7 @@ De schaalfactor moet 100% of meer zijn.</translation> <translation id="131353325527891113">Gebruikersnamen weergeven in het aanmeldscherm</translation> +<translation id="1325295456374328159">Instellen welke talen zijn toegestaan in een gebruikerssessie</translation> <translation id="1327466551276625742">Prompt voor netwerkconfiguratie inschakelen als je offline bent</translation> <translation id="1330145147221172764">Schermtoetsenbord inschakelen</translation> <translation id="13356285923490863">Naam van beleid</translation> @@ -90,6 +92,12 @@ <translation id="1387596372902085462">Of je vertrouwen wilt stellen in de Legacy PKI-infrastructuur van Symantec Corporation</translation> <translation id="1393485621820363363">Zakelijke apparaatprinters ingeschakeld</translation> <translation id="1397855852561539316">Voorgestelde URL voor standaardzoekprovider</translation> +<translation id="1424081297104898791">Hiermee stel je in welke hulpprogramma's voor ontwikkelaars kunnen worden gebruikt. + + Als dit beleid is ingesteld op 'DeveloperToolsDisallowedForForceInstalledExtensions' (waarde 0, de standaardinstelling voor zakelijke gebruikers), zijn de hulpprogramma's voor ontwikkelaars en JavaScript-console wel algemeen toegankelijk, maar niet in de context van extensies die zijn geïnstalleerd op basis van het bedrijfsbeleid. + Als dit beleid is ingesteld op 'DeveloperToolsAllowed' (waarde 1, de standaardinstelling voor onbeheerde gebruikers), zijn de hulpprogramma's voor ontwikkelaars en de JavaScript-console toegankelijk in elke context, inclusief de context van extensies die zijn geïnstalleerd op basis van het bedrijfsbeleid. + Als dit beleid is ingesteld op 'DeveloperToolsDisallowed' (waarde 2), zijn de hulpprogramma's voor ontwikkelaars niet toegankelijk en kunnen de website-elementen niet worden geïnspecteerd. Sneltoetsen en items van menu's of contextmenu's waarmee de hulpprogramma's voor ontwikkelaars of de JavaScript-console worden geopend, zijn uitgeschakeld. + Als het verouderde beleid 'DeveloperToolsDisabled' is ingesteld op 'true' (waar), wordt de waarde van dit beleid genegeerd en zijn de hulpprogramma's voor ontwikkelaars uitgeschakeld.</translation> <translation id="1426410128494586442">Ja</translation> <translation id="1427655258943162134">Adres of URL van proxyserver</translation> <translation id="1435659902881071157">Netwerkconfiguratie op apparaatniveau</translation> @@ -202,6 +210,7 @@ <translation id="1803646570632580723">Lijst met vastgezette apps om weer te geven in het opstartprogramma</translation> <translation id="1808715480127969042">Cookies blokkeren op deze sites</translation> <translation id="1810261428246410396">Het gebruik van instant-tethering toestaan</translation> +<translation id="1826282708349731794">Bepaalt hoe de Chrome Cleanup Tool gegevens doorgeeft aan Google</translation> <translation id="1827523283178827583">Vaste proxyservers gebruiken</translation> <translation id="1843117931376765605">Vernieuwingsfrequentie voor gebruikersbeleid</translation> <translation id="1844620919405873871">Hiermee configureer je het beleid ten aanzien van snel ontgrendelen.</translation> @@ -599,6 +608,7 @@ Dit beleid is niet van invloed op de mogelijkheid van gebruikers om printers op afzonderlijke apparaten te configureren. Het is bedoeld als aanvulling op de configuratie van printers door individuele gebruikers. </translation> <translation id="2633084400146331575">Gesproken feedback inschakelen</translation> +<translation id="2640843331263301324">Schakelt de Chrome Cleanup Tool in voor Windows</translation> <translation id="2646290749315461919">Hiermee kun je instellen of websites de fysieke locatie van gebruikers mogen bijhouden. Het bijhouden van de fysieke locatie van gebruikers kan standaard worden toegestaan, standaard worden geweigerd of het kan de gebruiker telkens worden gevraagd wanneer een website zijn fysieke locatie opvraagt. Als dit beleid niet wordt ingesteld, wordt 'AskGeolocation' gebruikt en kan de gebruiker dit wijzigen.</translation> @@ -668,13 +678,6 @@ Als dit beleid wordt gebruikt, zijn alleen de printers met ID's die overeenkomen met de waarden in dit beleid, beschikbaar voor de gebruiker. De ID's moeten overeenkomen met het ID- of GUID-veld in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Hiermee wordt de beschikbaarheid van 'Tikken om te zoeken' ingeschakeld in de inhoudsweergave van <ph name="PRODUCT_NAME" />. - - Als je deze instelling inschakelt, is 'Tikken om te zoeken' beschikbaar voor de gebruiker en kan de gebruiker de functie in- of uitschakelen. - - Als je deze instelling uitschakelt, wordt 'Tikken om te zoeken' volledig uitgeschakeld. - - Als er geen instelling voor dit beleid is opgegeven, staat dit gelijk aan het inschakelen van het beleid (zie de beschrijving hierboven).</translation> <translation id="285480231336205327">Modus voor hoog contrast inschakelen</translation> <translation id="2854919890879212089">Zorgt ervoor dat <ph name="PRODUCT_NAME" /> de standaardprinter van het systeem gebruikt als standaardkeuze bij Afdrukvoorbeeld in plaats van de laatst gebruikte printer. @@ -1252,12 +1255,14 @@ <translation id="4554651132977135445">Loopback-verwerkingsmodus voor gebruikersbeleid</translation> <translation id="4555850956567117258">Externe bevestiging van gebruiker inschakelen</translation> <translation id="4557134566541205630">URL van standaard zoekprovider voor nieuwe tabbladpagina</translation> +<translation id="4567137030726189378">Het gebruik van de hulpprogramma's voor ontwikkelaars toestaan</translation> <translation id="4600786265870346112">Grote muisaanwijzer inschakelen</translation> <translation id="4604931264910482931">Zwarte lijst voor systeemeigen berichten configureren</translation> <translation id="4613508646038788144">Als het beleid is ingesteld op false (onwaar), is het mogelijk om via software van derden uitvoerbare code te injecteren in de processen van Chrome. Als het beleid niet is ingesteld of is ingesteld op true (waar), kan er geen uitvoerbare code via software van derden worden geïnjecteerd in de processen van Chrome.</translation> <translation id="4617338332148204752">De metatagcontrole in <ph name="PRODUCT_FRAME_NAME" /> overslaan</translation> <translation id="4625915093043961294">Witte lijst voor het installeren van extensies configureren</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" /> toestaan de vermelde soorten content te verwerken.</translation> +<translation id="4632566332417930481">Het gebruik van de hulpprogramma's voor ontwikkelaars uitschakelen voor extensies die zijn geïnstalleerd op basis van het bedrijfsbeleid, maar toestaan in andere contexten</translation> <translation id="4633786464238689684">Hiermee wordt het standaardgedrag van de toetsen op de bovenste rij gewijzigd in functietoetsen. Als dit beleid wordt ingesteld op 'waar', voeren de toetsen op de bovenste rij van het toetsenbord standaard opdrachten van functietoetsen uit. De zoektoets moet worden ingedrukt om het gedrag terug te zetten naar mediatoetsen. @@ -1527,10 +1532,14 @@ Als dit beleid niet is ingesteld, kan de gebruiker worden gevraagd of deze wil importeren, of wordt er automatisch geïmporteerd.</translation> <translation id="5423197884968724595">Naam van Android WebView-beperking:</translation> +<translation id="5442026853063570579">Met dit beleid wordt ook de toegang tot de ontwikkelaarsopties van Android beheerd. Als je dit beleid instelt op 'DeveloperToolsDisallowed' (waarde 2), hebben gebruikers geen toegang tot ontwikkelaarsopties. Als je dit beleid instelt op een andere waarde of niet instelt, hebben gebruikers toegang tot ontwikkelaarsopties door zeven keer op het buildnummer te tikken in de app Instellingen van Android.</translation> <translation id="5447306928176905178">Het rapporteren van geheugengegevens (JS-heapgrootte) aan de pagina inschakelen (verouderd)</translation> <translation id="5457065417344056871">De gastmodus inschakelen in browser</translation> <translation id="5457924070961220141">Hiermee kun je de standaard HTML-renderer configureren wanneer <ph name="PRODUCT_FRAME_NAME" /> is geïnstalleerd. De standaardinstelling die wordt gebruikt wanneer dit beleid niet wordt ingesteld, wordt gebruikt om de hostbrowser de rendering te laten regelen, maar je kunt dit naar wens aanpassen en <ph name="PRODUCT_FRAME_NAME" /> HTML-pagina's standaard laten renderen.</translation> +<translation id="5459155981813668716">Hiermee wordt ingesteld in welke talen <ph name="PRODUCT_OS_NAME" /> wordt weergegeven. + + Als dit beleid is ingesteld, kan de gebruiker alleen instellen dat <ph name="PRODUCT_OS_NAME" /> wordt weergegeven in een van de talen die is opgenomen in dit beleid. Als dit beleid niet is ingesteld of is ingesteld op een lege lijst, kan <ph name="PRODUCT_OS_NAME" /> worden weergegeven in alle ondersteunde talen. Als dit beleid is ingesteld op een lijst met ongeldige waarden, worden alle ongeldige waarden genegeerd. Als een gebruiker al eerder had ingesteld dat <ph name="PRODUCT_OS_NAME" /> wordt weergegeven in een bepaalde taal die niet is toegestaan door dit beleid, wordt de weergavetaal (op het moment dat de gebruiker inlogt) ingesteld op een taal die wel is toegestaan. Als de gebruiker voorkeurstalen had ingesteld en een van de voorkeurstalen is toegestaan door dit beleid, schakelt <ph name="PRODUCT_OS_NAME" /> over naar deze taal. Als de gebruiker geen voorkeurstalen had ingesteld, schakelt <ph name="PRODUCT_OS_NAME" /> over naar de eerste geldige waarde die door het beleid is bepaald, of anders naar de standaardtaal (momenteel en-US) als het beleid alleen ongeldige talen bevat.</translation> <translation id="5464816904705580310">Hiermee configureer je instellingen voor beheerde gebruikers.</translation> <translation id="546726650689747237">Vertraging van dimmen van scherm wanneer op netstroom wordt gewerkt</translation> <translation id="5469484020713359236">Hiermee kun je een lijst met URL-patronen instellen waarmee sites worden gespecificeerd die cookies mogen instellen. @@ -1653,7 +1662,6 @@ Als je het beleid niet instelt, wordt gesproken feedback uitgeschakeld wanneer het inlogscherm voor het eerst wordt weergegeven. Gebruikers kunnen gesproken feedback op elk moment in- of uitschakelen en de status op het inlogscherm is permanent tussen gebruikers.</translation> <translation id="5868414965372171132">Netwerkconfiguratie op gebruikersniveau</translation> -<translation id="588135807064822874">'Tikken om te zoeken' toestaan</translation> <translation id="5883015257301027298">Standaardinstelling voor cookies</translation> <translation id="5887414688706570295">Hiermee configureer je het voorvoegsel voor het TalkGadget dat wordt gebruikt door hosts voor externe toegang en voorkom je dat gebruikers dit wijzigen. @@ -1757,6 +1765,7 @@ <translation id="6036523166753287175">Firewallpassage vanaf host voor externe toegang inschakelen</translation> <translation id="6070667616071269965">Toetsenbordindelingen voor inlogscherm van apparaat</translation> <translation id="6074963268421707432">Niet toestaan dat sites bureaubladmeldingen weergeven</translation> +<translation id="6074964551275531965">De periode voor updatemeldingen instellen</translation> <translation id="6076099373507468537">Hiermee wordt de lijst met USB-apparaten gedefinieerd die mogen worden ontkoppeld van hun kernel-driver, zodat ze via de chrome.usb-API rechtstreeks kunnen worden gebruikt in een webapplicatie. Items zijn paren van de ID van de USB-leverancier en de ID van het product, zodat specifieke hardware kan worden geïdentificeerd. Als dit beleid niet is geconfigureerd, is de lijst met USB-apparaten die kunnen worden ontkoppeld leeg.</translation> @@ -1839,6 +1848,11 @@ Als je de instelling inschakelt of geen waarde instelt, kunnen gebruikers de opties voor Automatisch aanvullen zelf beheren. Zo kunnen ze profielen voor Automatisch aanvullen configureren en de functie naar wens in- of uitschakelen.</translation> <translation id="6394350458541421998">Dit beleid wordt niet meer gebruikt sinds <ph name="PRODUCT_OS_NAME" /> versie 29. Gebruik het beleid PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">De gebruiker uitloggen</translation> +<translation id="6412477120967771054">Als deze waarde is ingesteld op 'false' (onwaar), scant de Chrome Cleanup Tool het systeem niet op ongewenste software en kan de tool niets opschonen. Het is ook niet meer mogelijk de Chrome Cleanup Tool handmatig te starten via chrome://settings/cleanup. + + Als de waarde is ingesteld op 'true' (waar) of niet is ingesteld, scant de Chrome Cleanup Tool het systeem periodiek op ongewenste software. Als er ongewenste software wordt aangetroffen, wordt de gebruiker gevraagd of deze moet worden verwijderd. Het is mogelijk de Chrome Cleanup Tool te starten via chrome://settings. + + Dit beleid is niet beschikbaar voor Windows-instanties die niet aan een <ph name="MS_AD_NAME" />-domein zijn gekoppeld.</translation> <translation id="6417861582779909667">Hiermee kun je een lijst met URL-patronen instellen waarmee sites worden gespecificeerd die geen cookies mogen instellen. Als dit beleid niet wordt ingesteld, wordt de algemene standaardwaarde gebruikt voor alle sites op basis van het beleid 'DefaultCookiesSetting' (als dit is ingesteld) of anders op basis van de configuratie van de gebruiker.</translation> @@ -1861,6 +1875,13 @@ Als je wilt beheren welke websites Flash mogen uitvoeren, bekijk je de beleidsregels 'DefaultPluginsSetting', 'PluginsAllowedForUrls' en 'PluginsBlockedForUrls'. Als deze instelling is uitgeschakeld of niet is ingesteld, kan Flash-content van andere bronnen of minder belangrijke content worden geblokkeerd.</translation> +<translation id="6535639183431116351">Dit beleid is beëindigd in M68. Gebruik in plaats hiervan DeveloperToolsAvailability. + + Hiermee worden de hulpprogramma's voor ontwikkelaars en de JavaScript-console uitgeschakeld. + + Als je deze instelling inschakelt, kunnen de hulpprogramma's voor ontwikkelaars niet meer worden geopend en kunnen website-elementen niet meer worden geïnspecteerd. Alle sneltoetsen en menu- en contextmenuopties voor het openen van de hulpprogramma's voor ontwikkelaars of de JavaScript-console worden uitgeschakeld. + + Als je deze optie uitschakelt of niet instelt, kan de gebruiker de hulpprogramma's voor ontwikkelaars en de JavaScript-console gebruiken.</translation> <translation id="653608967792832033">Hiermee wordt de tijdsduur zonder input van gebruikers gespecificeerd waarna het scherm wordt vergrendeld wanneer op de batterij wordt gewerkt. Als dit beleid is ingesteld op een grotere waarde dan nul, specificeert het de tijd die de gebruiker inactief moet blijven voordat het scherm wordt vergrendeld door <ph name="PRODUCT_OS_NAME" />. @@ -1926,11 +1947,6 @@ <translation id="6689792153960219308">De hardwarestatus melden</translation> <translation id="6698071416141001300">Accountmarkering wegens wachtwoordbeveiligingsrisico wordt geactiveerd bij hergebruik van een wachtwoord</translation> <translation id="6699880231565102694">Authenticatie in twee stappen inschakelen voor hosts voor externe toegang</translation> -<translation id="6702257826895463228">Toestaan dat sites tegelijkertijd kunnen navigeren en pop-ups kunnen openen. - - Ga naar https://www.chromestatus.com/features/5675755719622656 voor een volledige uitleg. - Als je dit beleid inschakelt, kunnen sites tegelijkertijd navigeren en nieuwe vensters/tabbladen openen. - Als dit beleid is uitgeschakeld of niet is ingesteld, kunnen sites niet tegelijkertijd navigeren en nieuwe vensters/tabbladen openen.</translation> <translation id="6724842112053619797">Als je deze instelling inschakelt, worden de instellingen die zijn opgeslagen in <ph name="PRODUCT_NAME" />-profielen (zoals bladwijzers, gegevens voor automatisch aanvullen, wachtwoorden, enzovoort), ook geschreven naar een bestand dat is opgeslagen in de map voor roaming-gebruikersprofielen of op een locatie die de beheerder heeft opgegeven via het beleid <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Als je dit beleid inschakelt, wordt cloud-synchronisatie uitgeschakeld. Als dit beleid is uitgeschakeld of niet wordt ingesteld, worden alleen de gewone lokale profielen gebruikt. @@ -2284,6 +2300,7 @@ Zie https://developers.google.com/safe-browsing voor meer informatie over Safe Browsing.</translation> <translation id="7643883929273267746">Accounts die zichtbaar zijn in <ph name="PRODUCT_NAME" /> beperken</translation> <translation id="7651739109954974365">Bepaalt of dataroaming moet worden ingeschakeld voor het apparaat. Als dit is ingesteld op 'true', wordt dataroaming toegestaan. Als de instelling niet wordt geconfigureerd of op 'false' is ingesteld, is dataroaming niet beschikbaar.</translation> +<translation id="7673194325208122247">Periode (milliseconden)</translation> <translation id="7683777542468165012">Beleid dynamisch vernieuwen</translation> <translation id="7694807474048279351">Plannen dat het apparaat automatisch opnieuw opstart nadat een update van <ph name="PRODUCT_OS_NAME" /> is uitgevoerd. @@ -2416,6 +2433,13 @@ Als deze instelling is uitgeschakeld en uitgaande UDP-verbindingen worden gefilterd door de firewall, kan dit apparaat alleen verbinding maken met hosts binnen het lokale netwerk.</translation> <translation id="7976157349247117979">Naam van de bestemming van <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Als deze waarde niet is ingesteld en de Chrome Cleanup Tool ongewenste software detecteert, kan de Chrome Cleanup Tool metadata over de scan doorgeven aan Google in overeenstemming met het beleid dat is ingesteld door SafeBrowsingExtendedReportingEnabled. De Chrome Cleanup Tool vraagt de gebruiker of de ongewenste software moet worden verwijderd. De gebruiker kan ervoor kiezen de resultaten van de opschoning met Google te delen, zodat Google de detectie van ongewenste software kan verbeteren. Deze resultaten bevatten metadata van bestanden en registersleutels, zoals wordt beschreven in de whitepaper over Chrome en privacy. + + Als de waarde is ingesteld op 'false' (onwaar) en de Chrome Cleanup Tool ongewenste software detecteert, worden er geen metadata van de scan met Google gedeeld. Het beleid dat is ingesteld door SafeBrowsingExtendedReportingEnabled wordt genegeerd. De Chrome Cleanup Tool vraagt de gebruiker of de ongewenste software moet worden verwijderd. De resultaten van de opschoning worden niet met Google gedeeld, en de gebruiker krijgt niet de keuze om dit te doen. + + Als de waarde is ingesteld op 'true' (waar) en de Chrome Cleanup Tool ongewenste software detecteert, kan de Chrome Cleanup Tool metadata over de scan doorgeven aan Google in overeenstemming met het beleid dat is ingesteld door SafeBrowsingExtendedReportingEnabled. De Chrome Cleanup Tool vraagt de gebruiker of de ongewenste software moet worden verwijderd. De resultaten van de opschoning worden met Google gedeeld, en de gebruiker krijgt niet de keuze om dit te voorkomen. + + Dit beleid is niet beschikbaar voor Windows-instanties die niet aan een <ph name="MS_AD_NAME" />-domein zijn gekoppeld.</translation> <translation id="7978060394348264922"> De beleidsinstelling IsolateOrigins is misschien handig als je optimaal gebruik wilt maken van beide functies (isolatie en beperkte impact voor gebruikers), door IsolateOrigins te gebruiken met een lijst van de sites die je wilt isoleren. Met deze instelling (SitePerProcess) worden alle sites geïsoleerd. Als het beleid is ingeschakeld, wordt elke site uitgevoerd in een eigen proces. @@ -2535,6 +2559,7 @@ <translation id="8300455783946254851">Als deze instelling is ingesteld op 'waar', wordt synchronisatie met Google Drive uitgeschakeld in de app Bestanden van <ph name="PRODUCT_OS_NAME" /> bij gebruik van een mobiele verbinding. In dat geval worden gegevens alleen gesynchroniseerd met Google Drive bij verbinding via wifi of Ethernet. Als deze instelling niet is ingesteld of is ingesteld op 'onwaar', kunnen gebruikers bestanden overzetten naar Google Drive via mobiele verbindingen.</translation> +<translation id="8300992833374611099">Bepalen wanneer de hulpprogramma's voor ontwikkelaars kunnen worden gebruikt</translation> <translation id="8312129124898414409">Hiermee kun je instellen of websites sleutels mogen genereren. Het genereren van sleutels kan ofwel worden toegestaan voor alle websites ofwel worden geweigerd voor alle websites. Als dit beleid niet wordt ingesteld, wordt 'BlockKeygen' gebruikt en kan de gebruiker dit wijzigen.</translation> @@ -2768,6 +2793,11 @@ <translation id="9035964157729712237">Extensie-ID's die zijn vrijgesteld van de zwarte lijst</translation> <translation id="9042911395677044526">Hiermee kun je een gebruikerspecifieke netwerkconfiguratie toepassen op een <ph name="PRODUCT_OS_NAME" />-apparaat. De netwerkconfiguratie is een tekenreeks met JSON-indeling, zoals gedefinieerd door de indeling voor open netwerkconfiguratie, beschreven op <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Specificeer of videoactiviteit invloed heeft op stroombeheer</translation> +<translation id="9085839450090699752">Hiermee kun je een periode in milliseconden instellen waarin gebruikers een melding krijgen dat <ph name="PRODUCT_NAME" /> opnieuw moet worden gestart of dat een <ph name="PRODUCT_OS_NAME" />-apparaat opnieuw moet worden opgestart om een beschikbare update toe te passen. + + Gedurende deze periode wordt de gebruiker herhaaldelijk geïnformeerd over het belang van de update. Op <ph name="PRODUCT_OS_NAME" />-apparaten wordt een melding dat opnieuw moet worden opgestart, weergegeven in het systeemvak zodra er een upgrade wordt gedetecteerd. Deze melding verandert van kleur wanneer de helft van de meldingsperiode is verstreken en nogmaals wanneer de volledige meldingsperiode is verstreken. In <ph name="PRODUCT_NAME" />-browsers wordt nadat een derde van de meldingstijd is verstreken, in het app-menu aangegeven dat opnieuw moet worden opgestart. Deze melding verandert van kleur wanneer twee derde van de meldingsperiode is verstreken en nogmaals wanneer de volledige meldingsperiode is verstreken. De extra meldingen die worden geactiveerd door het beleid <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> voor browsers, volgen dezelfde planning. + + Als deze waarde niet is ingesteld, wordt een standaardperiode van 345.600.000 milliseconden (vier dagen) gebruikt voor <ph name="PRODUCT_OS_NAME" />-apparaten en 604.800.000 milliseconden (één week) voor browsers.</translation> <translation id="9088433379343318874">Contentprovider voor de gebruiker met beperkte rechten inschakelen</translation> <translation id="9088444059179765143">De methode voor automatische tijdzonedetectie configureren</translation> <translation id="9096086085182305205">Witte lijst voor verificatieserver</translation>
diff --git a/components/policy/resources/policy_templates_no.xtb b/components/policy/resources/policy_templates_no.xtb index 703cd5e..24d8479 100644 --- a/components/policy/resources/policy_templates_no.xtb +++ b/components/policy/resources/policy_templates_no.xtb
@@ -667,13 +667,6 @@ Hvis denne regelen brukes, blir bare skriverne med ID-er som samsvarer med verdiene i denne regelen, tilgjengelige for brukeren. ID-ene må samsvare med «id»- eller «quid»-feltene i filen spesifisert i <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Gjør «Trykk for å søke» tilgjengelig i innholdsvisningen i <ph name="PRODUCT_NAME" />. - - Hvis du slår på denne innstillingen, blir «Trykk for å søke»-funksjonen tilgjengelig for brukerne, og de kan velge om de vil slå den på eller av. - - Hvis du slår av denne innstillingen, slås «Trykk for å søke» helt av. - - Hvis du ikke denne regelen ikke spesifiseres, er effekten den samme som om den var slått på. Se beskrivelsen ovenfor.</translation> <translation id="285480231336205327">Aktiver modus for høy kontrast</translation> <translation id="2854919890879212089">Gjør at <ph name="PRODUCT_NAME" /> bruker skriveren som er standard for systemet, i stedet for skriveren som ble brukt sist, som standardvalg i forhåndsvisning av utskrift. @@ -1634,7 +1627,6 @@ Hvis innstillingen ikke angis, deaktiveres muntlig tilbakemelding når påloggingssiden vises for første gang. Brukere kan aktivere eller deaktivere muntlig tilbakemelding når som helst, og dens status på påloggingssiden forblir den samme mellom brukere.</translation> <translation id="5868414965372171132">Nettverkskonfigurasjon på brukernivå</translation> -<translation id="588135807064822874">Slå på «trykk for å søke»</translation> <translation id="5883015257301027298">Standardinnstilling for informasjonskapsler</translation> <translation id="5887414688706570295">Konfigurerer TalkGadget-prefikset som skal brukes av verter med ekstern adgang, og forhindrer brukere fra å endre det. @@ -1908,11 +1900,6 @@ <translation id="6689792153960219308">Rapportér maskinvarestatus</translation> <translation id="6698071416141001300">Rapportering av kontoer der passordbeskyttelsen kan være kompromittert, utløses ved gjenbruk av passord</translation> <translation id="6699880231565102694">Aktiver to-delt autentisering for verter med ekstern adgang</translation> -<translation id="6702257826895463228">Tillater at nettsteder navigerer og åpner forgrunnsvinduer samtidig. - - Du kan se en fullstendig forklaring ved å gå til https://www.chromestatus.com/features/5675755719622656. - Hvis denne regelen er aktivert, kan nettsteder navigere og åpne nye vinduer eller faner samtidig. - Hvis denne regelen er deaktivert eller ikke er angitt, kan ikke nettsteder navigere og åpne nye vinduer eller faner samtidig.</translation> <translation id="6724842112053619797">Hvis du slår på denne innstillingen, blir innstillingene som er lagret i <ph name="PRODUCT_NAME" />-profiler (for eksempel bokmerker, autofylldata, passord også videre), også skrevet til en fil som lagres i mappen for roaming-brukerprofilen, eller på et sted som bestemmes av administratoren via regelen <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Når du slår på denne regelen, deaktiveres skysynkronisering. Hvis denne regelen er slått av eller ikke er angitt, blir bare de vanlige, lokale profilene brukt.
diff --git a/components/policy/resources/policy_templates_pl.xtb b/components/policy/resources/policy_templates_pl.xtb index 3a02e7f6..1cd3172 100644 --- a/components/policy/resources/policy_templates_pl.xtb +++ b/components/policy/resources/policy_templates_pl.xtb
@@ -25,6 +25,7 @@ <translation id="1049138910114524876">Umożliwia skonfigurowanie ustawień regionalnych wymuszanych na ekranie logowania systemu <ph name="PRODUCT_OS_NAME" />. Jeśli ta zasada jest skonfigurowana, ekran logowania będzie zawsze wyświetlany z zastosowaniem ustawień regionalnych podanych jako pierwsza wartość tej zasady (aby zapewnić zgodność w przyszłości, zasada jest zdefiniowana jako lista). Jeśli zasada jest nieskonfigurowana lub jej wartością jest pusta lista, ekran logowania będzie wyświetlany z zastosowaniem ustawień regionalnych ostatniej sesji użytkownika. Jeśli zasada będzie mieć wartość, która nie określa prawidłowych ustawień regionalnych, ekran logowania będzie wyświetlany z zastosowaniem zastępczych ustawień regionalnych (obecnie en-US).</translation> <translation id="1062011392452772310">Włącz zaświadczanie zdalne dla urządzenia</translation> <translation id="1062407476771304334">Zastąp</translation> +<translation id="1079801999187584280">Zablokuj używanie narzędzi dla programistów</translation> <translation id="109166998561583554">Wyzwalacz oznaczania kont jako zagrożonych w zakresie ochrony hasłem</translation> <translation id="1093082332347834239">Jeśli to ustawienie jest włączone, host pomocy zdalnej będzie uruchamiany w procesie z uprawnieniami <ph name="UIACCESS_PERMISSION_NAME" />. Dzięki temu użytkownicy zdalni będą mieć dostęp do okien z podwyższonym poziomem uprawnień na komputerze użytkownika lokalnego. @@ -77,6 +78,7 @@ Współczynnik skalowania musi wynosić co najmniej 100%.</translation> <translation id="131353325527891113">Pokaż nazwy użytkowników na ekranie logowania</translation> +<translation id="1325295456374328159">Skonfiguruj dozwolone języki sesji użytkownika</translation> <translation id="1327466551276625742">Włącza pytanie o konfigurację sieci wyświetlane w trybie offline</translation> <translation id="1330145147221172764">Włącz klawiaturę ekranową</translation> <translation id="13356285923490863">Nazwa zasady</translation> @@ -89,6 +91,12 @@ <translation id="1387596372902085462">Czy włączyć zaufanie w starszej infrastrukturze klucza publicznego Symantec Corporation</translation> <translation id="1393485621820363363">Włączone drukarki firmowe powiązane z urządzeniami</translation> <translation id="1397855852561539316">Adres URL usługi propozycji od domyślnego dostawcy wyszukiwania</translation> +<translation id="1424081297104898791">Określa, gdzie można używać narzędzi dla programistów. + + Jeśli ta zasada jest ustawiona na wartość „DeveloperToolsDisallowedForForceInstalledExtensions” (wartość 0, która jest domyślną dla użytkowników w przedsiębiorstwie), narzędzia dla programistów i konsola JavaScript są dostępne wszędzie z wyjątkiem kontekstu rozszerzeń zainstalowanych przez zasady przedsiębiorstwa. + Jeśli ta zasada jest ustawiona na wartość „DeveloperToolsAllowed” (wartość 1, która jest domyślną dla użytkowników niezarządzanych), narzędzia dla programistów i konsola JavaScript są dostępne we wszystkich kontekstach, również w kontekście rozszerzeń zainstalowanych przez zasady przedsiębiorstwa. + Jeśli ta zasada jest ustawiona na wartość „DeveloperToolsDisallowed” (wartość 2), narzędzia dla programistów są niedostępne i nie można badać elementów na stronach. Wyłączone będą wszystkie skróty klawiszowe oraz pozycje menu i menu kontekstowego, które otwierają narzędzia dla programistów i konsolę JavaScript. + Jeśli starsza zasada DeveloperToolsDisabled jest ustawiona na wartość prawda, wartość tej zasady jest ignorowana, a narzędzia dla programistów są wyłączone.</translation> <translation id="1426410128494586442">Tak</translation> <translation id="1427655258943162134">Adres IP lub URL serwera proxy</translation> <translation id="1435659902881071157">Konfiguracja sieci na poziomie urządzenia</translation> @@ -202,6 +210,7 @@ <translation id="1803646570632580723">Lista przypiętych aplikacji pokazywanych w programie uruchamiającym</translation> <translation id="1808715480127969042">Blokuj pliki cookie w tych witrynach</translation> <translation id="1810261428246410396">Zezwalaj na używanie funkcji Instant Tethering.</translation> +<translation id="1826282708349731794">Określa sposób przesyłania do Google danych przez Narzędzie do czyszczenia Chrome</translation> <translation id="1827523283178827583">Używaj stałych serwerów proxy</translation> <translation id="1843117931376765605">Częstotliwość odświeżania zasad użytkownika</translation> <translation id="1844620919405873871">Konfiguruje zasady szybkiego odblokowania.</translation> @@ -407,11 +416,11 @@ W przypadku systemów Windows niepodłączonych do domeny <ph name="MS_AD_NAME" /> wymuszona instalacja jest ograniczona do aplikacji i rozszerzeń dostępnych w Chrome Web Store. - Pamiętaj, że kod źródłowy każdego rozszerzenia można zmodyfikować za pomocą narzędzi dla programistów (potencjalnie zakłócając jego działanie). Jeśli jest to problemem, ustaw zasadę <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. + Pamiętaj, że kod źródłowy każdego rozszerzenia można zmodyfikować za pomocą Narzędzi dla programistów (potencjalnie zakłócając jego działanie). Jeśli jest to problemem, ustaw zasadę <ph name="DEVELOPER_TOOLS_POLICY_NAME" />. Każdy element na liście tej zasady jest ciągiem zawierającym identyfikator rozszerzenia i opcjonalnie URL „aktualizacji” oddzielone średnikiem (<ph name="SEMICOLON" />). Identyfikator rozszerzenia to ciąg 32 znaków, który znajdziesz np. na <ph name="CHROME_EXTENSIONS_LINK" /> w trybie programisty. URL „aktualizacji” powinien wskazywać plik manifestu aktualizacji w postaci dokumentu XML, zgodnie z opisem w dokumencie <ph name="LINK_TO_EXTENSION_DOC1" />. Domyślnie używany jest URL aktualizacji Chrome Web Store (obecnie to „https://clients2.google.com/service/update2/crx”). Uwaga: URL „aktualizacji” ustawiony przez tę zasadę jest używany tylko podczas pierwszej instalacji. Późniejsze aktualizacje rozszerzenia korzystają z adresu URL aktualizacji wskazanego w pliku manifestu. Pamiętaj też, że podanie adresu URL „aktualizacji” było obowiązkowe w <ph name="PRODUCT_NAME" /> do wersji 67 włącznie. - Na przykład <ph name="EXTENSION_POLICY_EXAMPLE" /> instaluje aplikację <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> ze standardowego adresu URL „aktualizacji” Chrome Web Store. Więcej informacji o hostowaniu rozszerzeń znajdziesz na <ph name="LINK_TO_EXTENSION_DOC2" />. + Na przykład <ph name="EXTENSION_POLICY_EXAMPLE" /> instaluje aplikację <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> ze standardowego adresu URL „aktualizacji” Chrome Web Store. Więcej informacji o hostowaniu rozszerzeń znajdziesz na <ph name="LINK_TO_EXTENSION_DOC2" /> Jeśli ta zasada nie jest ustawiona, aplikacje ani rozszerzenia nie są instalowane automatycznie, a użytkownik może odinstalować dowolne z nich w <ph name="PRODUCT_NAME" />.</translation> <translation id="2292084646366244343"><ph name="PRODUCT_NAME" /> może sprawdzać pisownię, używając usługi internetowej Google. Jeśli to ustawienie zostanie włączone, usługa będzie zawsze używana. W przypadku wyłączenia tego ustawienia, usługa nie będzie nigdy wykorzystywana. @@ -590,6 +599,7 @@ Zasada nie ma wpływu na to, czy użytkownicy mogą konfigurować drukarki na pojedynczych urządzeniach. Jest ona uzupełnieniem konfiguracji drukarek wykonywanej przez poszczególnych użytkowników. </translation> <translation id="2633084400146331575">Włącz potwierdzenia głosowe</translation> +<translation id="2640843331263301324">Włącza Narzędzie do czyszczenia Chrome w Windows</translation> <translation id="2646290749315461919">Umożliwia określenie, czy witryny mogą śledzić fizyczną lokalizację użytkownika. Śledzenie fizycznej lokalizacji użytkownika może być domyślnie dozwolone lub zabronione bądź użytkownik może być o to pytany za każdym razem, gdy witryna żąda informacji o lokalizacji. W przypadku nieskonfigurowania tej zasady używane będzie ustawienie „AskGeolocation”, a użytkownik będzie mógł je zmienić.</translation> <translation id="2647069081229792812">Włącz lub wyłącz edytowanie zakładek</translation> <translation id="2650049181907741121">Działanie, jakie ma zostać wykonane po zamknięciu pokrywy przez użytkownika</translation> @@ -653,13 +663,6 @@ Jeśli ta zasada jest używana, użytkownik ma dostęp tylko do drukarek, których identyfikatory pasują do wartości w niej ustawionych. Identyfikatory muszą być zgodne z wartościami w polach „id” lub „guid” w pliku określonym w zasadzie <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Pozwala korzystać z funkcji „Dotknij, by wyszukać” w widoku treści w <ph name="PRODUCT_NAME" />. - - Jeśli włączysz to ustawienie, funkcja „Dotknij, by wyszukać” będzie dostępna dla użytkownika i będzie on mógł ją włączyć lub wyłączyć. - - Jeśli wyłączysz to ustawienie, funkcja „Dotknij, by wyszukać” zostanie całkowicie wyłączona. - - Pozostawienie tej zasady nieustawionej jest równoznaczne z jej włączeniem – patrz opis powyżej.</translation> <translation id="285480231336205327">Włącz tryb wysokiego kontrastu</translation> <translation id="2854919890879212089">Sprawia, że w podglądzie wydruku w <ph name="PRODUCT_NAME" /> zostanie wybrana domyślna drukarka systemowa, a nie ostatnio użyta. @@ -1210,12 +1213,14 @@ <translation id="4554651132977135445">Tryb przetwarzania w pętli zasad dotyczących użytkowników</translation> <translation id="4555850956567117258">Włącz zaświadczanie zdalne dla użytkownika</translation> <translation id="4557134566541205630">URL strony nowej karty domyślnego dostawcy wyszukiwania</translation> +<translation id="4567137030726189378">Zezwól na używanie narzędzi dla programistów</translation> <translation id="4600786265870346112">Włącz duży kursor</translation> <translation id="4604931264910482931">Skonfiguruj czarną listę wiadomości natywnych</translation> <translation id="4613508646038788144">Jeśli ta zasada ma ustawienie „fałsz”, oprogramowanie innych firm będzie mogło wstrzykiwać kod wykonywalny do procesów Chrome. Jeśli ta zasada jest nieskonfigurowana lub ma ustawienie „prawda”, oprogramowanie innych firm nie będzie mogło wstrzykiwać takiego kodu do procesów Chrome.</translation> <translation id="4617338332148204752">Pomiń sprawdzanie metatagów w <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfiguruj białą listę instalacji rozszerzeń</translation> <translation id="4632343302005518762">Zezwalaj <ph name="PRODUCT_FRAME_NAME" /> na obsługę poniższych typów treści</translation> +<translation id="4632566332417930481">Zablokuj używanie narzędzi dla programistów w odniesieniu do rozszerzeń zainstalowanych przez zasady przedsiębiorstwa, zezwól na używanie narzędzi dla programistów w pozostałych kontekstach</translation> <translation id="4633786464238689684">Zmienia domyślne działanie górnego rzędu klawiszy na klawisze funkcyjne. Jeśli ustawisz dla tej zasady wartość prawda, górny rząd klawiszy na klawiaturze będzie domyślnie umożliwiał korzystanie z poleceń klawiszy funkcyjnych. Aby przywrócić standardowe funkcje klawiszy multimediów, należy nacisnąć klawisz wyszukiwania. @@ -1462,9 +1467,13 @@ 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="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> <translation id="5457924070961220141">Umożliwia skonfigurowanie domyślnego mechanizmu renderowania HTML po zainstalowaniu wtyczki <ph name="PRODUCT_FRAME_NAME" />. Ustawieniem domyślnym, stosowanym w przypadku nieskonfigurowania tej zasady, jest zezwolenie przeglądarce hosta na wykonywanie renderowania, jednak możesz opcjonalnie zastąpić to ustawienie, tak aby strony HTML były domyślnie renderowane przez wtyczkę <ph name="PRODUCT_FRAME_NAME" />.</translation> +<translation id="5459155981813668716">Określa języki, w których można wyświetlać <ph name="PRODUCT_OS_NAME" />. + + Jeśli ta zasada jest skonfigurowana, użytkownik może skonfigurować wyświetlanie <ph name="PRODUCT_OS_NAME" /> tylko w jednym z języków określonych w tej zasadzie. Jeśli zasada jest nieskonfigurowana lub jest ustawiona na pustą listę, <ph name="PRODUCT_OS_NAME" /> można wyświetlać we wszystkich obsługiwanych językach. Jeśli ustawiona lista zawiera nieprawidłowe wartości, będą one ignorowane. Jeśli użytkownik wcześniej skonfigurował wyświetlanie <ph name="PRODUCT_OS_NAME" /> w języku niedozwolonym przez tę zasadę, język wyświetlania zostanie przełączony na dozwolony po następnym zalogowaniu się użytkownika. Jeśli użytkownik skonfigurował preferowane języki i jeden z nich jest dozwolony przez tę zasadę, <ph name="PRODUCT_OS_NAME" /> przełączy się na ten język. W przeciwnym razie <ph name="PRODUCT_OS_NAME" /> przełączy się na język odpowiadający pierwszej prawidłowej wartości z listy, a jeśli lista zawiera same nieprawidłowe wartości – na język zastępczy (obecnie en-US).</translation> <translation id="5464816904705580310">Konfiguruj ustawienia dla zarządzanych użytkowników.</translation> <translation id="546726650689747237">Opóźnienie przyciemnienia ekranu przy zasilaniu sieciowym</translation> <translation id="5469484020713359236">Umożliwia skonfigurowanie listy wzorcowych URL-i określających witryny, którym wolno tworzyć pliki cookie. Jeśli ta zasada nie zostanie skonfigurowana, dla wszystkich witryn będzie używana globalna wartość domyślna pochodząca z zasady „DefaultCookiesSetting” (jeśli została skonfigurowana) lub z osobistej konfiguracji użytkownika.</translation> @@ -1578,7 +1587,6 @@ Jeśli zasada pozostanie nieustawiona, po pierwszym wyświetleniu ekranu logowania potwierdzenia głosowe są wyłączone. Użytkownicy mogą je w każdej chwili włączyć lub wyłączyć i ich stan na ekranie logowania jest trwały dla wszystkich użytkowników.</translation> <translation id="5868414965372171132">Konfiguracja sieci na poziomie użytkownika</translation> -<translation id="588135807064822874">Włącz funkcję Dotknij, by wyszukać</translation> <translation id="5883015257301027298">Domyślne ustawienie plików cookie</translation> <translation id="5887414688706570295">Konfiguruje przedrostek gadżetu TalkGadget, który będzie używany przez hosty zdalnego dostępu, i uniemożliwia użytkownikom jego zmianę. @@ -1682,6 +1690,7 @@ <translation id="6036523166753287175">Włącz omijanie zapory sieciowej przez hosta dostępu zdalnego</translation> <translation id="6070667616071269965">Układy klawiatury na ekranie logowania na urządzeniu</translation> <translation id="6074963268421707432">Nie zezwalaj żadnej witrynie na pokazywanie powiadomień na pulpicie</translation> +<translation id="6074964551275531965">Ustaw czas wyświetlania powiadomień o aktualizacji</translation> <translation id="6076099373507468537">Definiuje listę urządzeń USB, które można odłączać od sterownika jądra i stosować za pomocą interfejsu chrome.usb API bezpośrednio w aplikacji internetowej. W celu wskazania konkretnego urządzenia lista obejmuje pary identyfikatora dostawcy urządzenia USB i identyfikatora produktu. Jeśli nie skonfigurujesz tej zasady, lista odłączanych urządzeń USB będzie pusta.</translation> @@ -1754,6 +1763,11 @@ <translation id="6392973646875039351">Włącza funkcję autouzupełniania w <ph name="PRODUCT_NAME" /> i umożliwia użytkownikom automatyczne wypełnianie formularzy internetowych za pomocą zapisanych wcześniej informacji, takich jak np. adres czy dane karty kredytowej. Jeśli wyłączysz to ustawienie, autouzupełnianie będzie niedostępne dla użytkowników. Jeśli ustawienie jest włączone lub nieskonfigurowane, użytkownik zachowuje kontrolę nad autouzupełnianiem. Może wówczas konfigurować profile autouzupełniania oraz włączać i wyłączać tę funkcję według własnego uznania.</translation> <translation id="6394350458541421998">Ta zasada została wycofana w <ph name="PRODUCT_OS_NAME" /> w wersji 29. Zamiast niej użyj zasady PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Wyloguj użytkownika</translation> +<translation id="6412477120967771054">Ustawienie wartości fałsz powoduje, że Narzędzie do czyszczenia 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 ustawiona na wartość prawda lub będzie nieskonfigurowana, Narzędzie do czyszczenia 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. + + Ta zasada jest niedostępna w systemach Windows niepołączonych z domeną <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Umożliwia skonfigurowanie listy wzorcowych URL-i określających witryny, którym nie wolno tworzyć plików cookie. Jeśli ta zasada nie zostanie skonfigurowana, dla wszystkich witryn będzie używana globalna wartość domyślna pobierana z zasady „DefaultCookiesSetting” (jeśli została ustawiona) lub z osobistej konfiguracji użytkownika.</translation> <translation id="6426205278746959912">Nie można wymusić używania serwera proxy przez aplikacje na Androida. Mają one dostęp do niektórych jego ustawień i mogą uwzględniać je dobrowolnie: @@ -1774,6 +1788,13 @@ Aby określić strony, na których będzie dozwolone uruchamianie treści Flash, zapoznaj się z zasadami „DefaultPluginsSetting”, „PluginsAllowedForUrls” i „PluginsBlockedForUrls”. Jeśli to ustawienie jest wyłączone lub nie jest określone, treści Flash z innych źródeł oraz treści drobne mogą być blokowane.</translation> +<translation id="6535639183431116351">Ta zasada została wycofana w M68. Zamiast niej należy używać zasady DeveloperToolsAvailability. + + Wyłącza narzędzia dla programistów i konsolę JavaScript. + + Gdy to ustawienie jest włączone, narzędzia dla programistów są niedostępne i niemożliwe jest zbadanie elementów na stronie. Wszystkie skróty klawiszowe oraz pozycje w menu aplikacji i menu kontekstowym umożliwiające otwarcie narzędzi dla programistów lub konsoli JavaScript będą wyłączone. + + Wyłączenie lub nieskonfigurowanie tej opcji umożliwi korzystanie z narzędzi dla programistów i konsoli JavaScript.</translation> <translation id="653608967792832033">Określa, po jakim czasie nieaktywności użytkownika blokowany jest ekran przy zasilaniu z baterii. Jeśli ta zasada ma wartość większą niż zero, określa czas, przez który użytkownik musi pozostać bezczynny, zanim <ph name="PRODUCT_OS_NAME" /> zablokuje ekran. @@ -1839,11 +1860,6 @@ <translation id="6689792153960219308">Raportuj stan sprzętu</translation> <translation id="6698071416141001300">Oznaczenie konta jako zagrożonego w zakresie ochrony hasłem jest wyzwalane przez użycie tego samego hasła w innym miejscu</translation> <translation id="6699880231565102694">Włącz uwierzytelnianie dwuskładnikowe dla hostów zdalnego dostępu</translation> -<translation id="6702257826895463228">Zezwala stronom na otwieranie wyskakujących okienek podczas nawigowania. - - Pełne wyjaśnienie można znaleźć na https://www.chromestatus.com/features/5675755719622656 - Jeśli ta zasada zostanie włączona, strony będą mogły otwierać nowe okna/karty podczas nawigowania. - Jeśli ta zasada zostanie wyłączona lub nie zostanie ustawiona, strony nie będą mogły otwierać nowych okien/kart podczas nawigowania.</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ą. Jeśli nie włączysz tej zasady lub jej nie skonfigurujesz, używane będą tylko zwykłe profile lokalne. @@ -2179,6 +2195,7 @@ Więcej informacji o Bezpiecznym przeglądaniu znajdziesz na https://developers.google.com/safe-browsing</translation> <translation id="7643883929273267746">Ogranicz konta widoczne w <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Określa, czy na urządzeniu powinno być włączone przesyłanie danych w roamingu. W przypadku włączenia tej zasady przesyłanie danych w roamingu będzie dozwolone. Jeśli zasada będzie wyłączona lub nieskonfigurowana, przesyłanie danych w roamingu będzie niedostępne.</translation> +<translation id="7673194325208122247">Czas (w milisekundach)</translation> <translation id="7683777542468165012">Dynamiczne odświeżanie zasad</translation> <translation id="7694807474048279351">Planuje automatyczne ponowne uruchomienie po zastosowaniu aktualizacji <ph name="PRODUCT_OS_NAME" />. @@ -2304,6 +2321,13 @@ <translation id="7961779417826583251">Wyłącz egzekwowanie protokołu Certificate Transparency dla starych urzędów certyfikacji z listy</translation> <translation id="7974114691960514888">Ta zasada nie jest już obsługiwana. Umożliwia stosowanie protokołu STUN i serwerów przekazywania podczas łączenia się z klientem zdalnym. Jeśli ustawienie jest włączone, ten komputer może wykrywać hosty zdalne i łączyć się z nimi nawet wówczas, gdy są oddzielone zaporą sieciową. Jeśli ustawienie jest wyłączone, a wychodzące połączenia UDP są filtrowane przez zaporę sieciową, komputer może łączyć się tylko z hostami w sieci lokalnej.</translation> <translation id="7976157349247117979">Nazwa miejsca docelowego <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Gdy ta zasada jest nieskonfigurowana, Narzędzie do czyszczenia Chrome po wykryciu niechcianego oprogramowania może przesłać metadane skanowania do Google zgodnie z ustawieniem zasady SafeBrowsingExtendedReportingEnabled. Następnie Narzędzie do czyszczenia Chrome zapyta użytkownika, czy usunąć niechciane oprogramowanie. Użytkownik może zdecydować, czy przesłać do Google wyniki czyszczenia, by pomóc ulepszyć wykrywanie niechcianego oprogramowania. Te wyniki zawierają metadane plików i klucze rejestru zgodnie z opisem w Dokumencie na temat ochrony prywatności w Google Chrome. + + Gdy zasada jest ustawiona na wartość fałsz, Narzędzie do czyszczenia Chrome po wykryciu niechcianego oprogramowania nie prześle metadanych skanowania do Google, ignorując ustawienie zasady SafeBrowsingExtendedReportingEnabled. Narzędzie do czyszczenia Chrome zapyta użytkownika, czy usunąć niechciane oprogramowanie. Wyniki czyszczenia nie będą przesyłane do Google, a użytkownik nie będzie pytany, czy chce to zrobić. + + Gdy zasada jest ustawiona na wartość prawda, Narzędzie do czyszczenia Chrome po wykryciu niechcianego oprogramowania może przesłać metadane skanowania do Google zgodnie z ustawieniem zasady SafeBrowsingExtendedReportingEnabled. Narzędzie do czyszczenia Chrome zapyta użytkownika, czy usunąć niechciane oprogramowanie. Wyniki czyszczenia będą przesyłane do Google, a użytkownik nie będzie pytany, czy się na to zgadza. + + Ta zasada jest niedostępna w systemach Windows niepołączonych z domeną <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Możesz dostosować ustawienie zasady IsolateOrigins, by uzyskać optymalne efekty – izolację i ograniczony wpływ na użytkowników. W tym celu @@ -2430,6 +2454,7 @@ <translation id="8300455783946254851">Po ustawieniu wartości prawda wyłącza synchronizację Dysku Google w aplikacji Pliki w <ph name="PRODUCT_OS_NAME" />, gdy użytkownik korzysta z połączenia komórkowego. Dane są synchronizowane z Dyskiem Google tylko przez Wi-Fi lub Ethernet. Jeśli nie ustawisz tej zasady lub wybierzesz wartość fałsz, użytkownicy mogą przesyłać dane na Dysk Google przez sieć komórkową.</translation> +<translation id="8300992833374611099">Gdzie można używać narzędzi dla programistów</translation> <translation id="8312129124898414409">Umożliwia określenie, czy w witrynach mogą być generowane klucze. Generowanie kluczy może być dozwolone lub zabronione we wszystkich witrynach. Jeśli ta zasada nie zostanie skonfigurowana, będzie używane ustawienie „BlockKeygen”, a użytkownik będzie mógł je zmienić.</translation> @@ -2659,6 +2684,11 @@ <translation id="9035964157729712237">Identyfikatory rozszerzeń nieobjętych czarną listą</translation> <translation id="9042911395677044526">Pozwala na przesyłanie konfiguracji sieciowej w trybie push do urządzeń z <ph name="PRODUCT_OS_NAME" /> dla poszczególnych użytkowników. Konfiguracja sieci to łańcuch w formacie JSON zgodny z formatem Open Network Configuration opisanym na <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Określ, czy aktywność związana z filmami wpływa na zarządzanie energią</translation> +<translation id="9085839450090699752">Umożliwia ustawienie czasu (w milisekundach), przez który użytkownicy będą powiadamiani o konieczności ponownego uruchomienia <ph name="PRODUCT_NAME" /> lub urządzenia z <ph name="PRODUCT_OS_NAME" /> w celu zainstalowania oczekującej aktualizacji. + + Przez ten czas użytkownik będzie cyklicznie informowany o konieczności aktualizacji. Na urządzeniach z <ph name="PRODUCT_OS_NAME" /> powiadomienie o konieczności ponownego uruchomienia będzie wyświetlane w obszarze powiadomień. Powiadomienie zmieni kolor pierwszy raz po upływie połowy okresu powiadamiania i drugi raz po jego zakończeniu. W przeglądarkach <ph name="PRODUCT_NAME" /> po upływie jednej trzeciej okresu powiadamiania zmienia się menu aplikacji, sygnalizując konieczność ponownego uruchomienia. Powiadomienie zmienia kolor po upływie dwóch trzecich okresu powiadamiania i ponownie po jego zakończeniu. Dodatkowe powiadomienia, które w przeglądarkach włącza zasada <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, są wyświetlane według tego samego harmonogramu. + + Jeśli zasada jest nieskonfigurowana, na urządzeniach z <ph name="PRODUCT_OS_NAME" /> stosowany jest okres domyślny 345600000 milisekund (cztery dni), a w przeglądarkach – 604800000 milisekund (tydzień).</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="9096086085182305205">Biała lista serwera uwierzytelniania</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index e522e80..ce40539 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -646,13 +646,6 @@ Se esta política for usada, somente as impressoras com códigos que correspondem aos valores da política estarão disponíveis para o usuário. Os códigos precisam corresponder aos campos "id" ou "guid" no arquivo especificado em <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Ativa a disponibilidade de "Tocar para pesquisar" na visualização de conteúdo do <ph name="PRODUCT_NAME" />. - - Se você ativa esta configuração, o recurso "Tocar para pesquisar" fica disponível para o usuário, e é possível optar por ativar ou desativar o recurso. - - Se você desativa esta configuração, o recurso "Tocar para pesquisar" é completamente desativado. - - A não definição desta política equivale a ativá-la (consulte a descrição acima).</translation> <translation id="285480231336205327">Ativar modo de alto contraste</translation> <translation id="2854919890879212089">Faz com que o <ph name="PRODUCT_NAME" /> use a impressora padrão do sistema como a opção padrão em Visualizar impressão em vez de a impressora usada mais recentemente. @@ -1574,7 +1567,6 @@ Se esta política não for definida, o feedback falado será desativado quando a tela de login for exibida pela primeira vez. Os usuários podem ativar ou desativar o feedback falado a qualquer momento e seu status na tela de login continuará entre os usuários.</translation> <translation id="5868414965372171132">Configuração de rede em nível do usuário</translation> -<translation id="588135807064822874">Ativar "Tocar para pesquisar"</translation> <translation id="5883015257301027298">Configuração de cookies padrão</translation> <translation id="5887414688706570295">Configura o prefixo TalkGadget que será usado pelos hosts de acesso remoto e impede os usuários de alterá-lo. @@ -1835,11 +1827,6 @@ <translation id="6689792153960219308">Informar status de hardware</translation> <translation id="6698071416141001300">A sinalização de conta com a proteção de senha em risco é acionada pela reutilização de senha</translation> <translation id="6699880231565102694">Ativar autenticação de dois fatores para hosts de acesso remoto</translation> -<translation id="6702257826895463228">Permite que os sites naveguem e abram pop-ups simultaneamente. - - Para uma explicação completa, consulte https://www.chromestatus.com/features/5675755719622656. - Se esta política estiver ativada, os sites terão permissão para navegar e abrir novas janelas/guias simultaneamente. - Se esta política estiver desativada ou não for definida, os sites não terão permissão para navegar e abrir uma nova janela/guia simultaneamente.</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. Se essa política for desativada ou não for configurada, apenas os perfis locais normais serão usados.
diff --git a/components/policy/resources/policy_templates_pt-PT.xtb b/components/policy/resources/policy_templates_pt-PT.xtb index c7aca8a3..f3893634 100644 --- a/components/policy/resources/policy_templates_pt-PT.xtb +++ b/components/policy/resources/policy_templates_pt-PT.xtb
@@ -660,13 +660,6 @@ Se esta política for utilizada, apenas as impressoras com IDs correspondentes aos valores nesta política estão disponíveis para o utilizador. Os IDs têm de corresponder aos campos "id" ou "guid" no ficheiro especificado em <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Ativa a disponibilidade de Tocar para pesquisar na vista de conteúdo do <ph name="PRODUCT_NAME" />. - - Se ativar esta definição, a funcionalidade Tocar para pesquisar fica disponível para o utilizador e este pode optar por a ativar ou desativar. - - Se desativar esta definição, Tocar para pesquisar é completamente desativado. - - Se esta política for deixada por definir, é o equivalente a estar ativa. Consulte a descrição acima.</translation> <translation id="285480231336205327">Ativar modo de alto contraste</translation> <translation id="2854919890879212089">Faz com que o <ph name="PRODUCT_NAME" /> utilize a impressora predefinida do sistema como a escolha predefinida na Pré-visualização de impressão em vez da impressora utilizada mais recentemente. @@ -1595,7 +1588,6 @@ Se esta política não for definida, as respostas faladas são desativadas quando o ecrã de início de sessão é mostrado pela primeira vez. Os utilizadores podem ativar ou desativar as respostas faladas a qualquer momento e o estado desta funcionalidade no ecrã de início de sessão persiste entre utilizadores.</translation> <translation id="5868414965372171132">Configuração de rede ao nível do utilizador</translation> -<translation id="588135807064822874">Ativar Tocar para pesquisar</translation> <translation id="5883015257301027298">Definição de cookies predefinida</translation> <translation id="5887414688706570295">Configura o prefixo do TalkGadget a ser utilizado por anfitriões de acesso remoto e evita que os utilizadores o alterem. @@ -1856,11 +1848,6 @@ <translation id="6689792153960219308">Comunicar o estado do hardware</translation> <translation id="6698071416141001300">A sinalização de conta protegida por palavra-passe em risco é acionada pela reutilização da palavra-passe.</translation> <translation id="6699880231565102694">Ativar a autenticação de dois fatores para anfitriões de acesso remoto</translation> -<translation id="6702257826895463228">Permite que os sites naveguem e abram pop-ups em simultâneo. - - Para obter uma explicação completa, consulte https://www.chromestatus.com/features/5675755719622656. - Se esta política estiver ativada, os sites serão autorizados a navegar e a abrir novas janelas/novos separadores em simultâneo. - Se esta política estiver desativada ou não definida, os sites deixarão de ter autorização para navegar e abrir uma nova janela/um novo separador em simultâneo.</translation> <translation id="6724842112053619797">Se ativar esta definição, as definições armazenadas nos perfis do <ph name="PRODUCT_NAME" />, tais como marcadores, dados de preenchimento automático, palavras-passe, etc., também são escritas num ficheiro armazenado na pasta do perfil de utilizador Roaming ou numa localização especificada pelo gestor através da política <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Se ativar esta política, desativa a sincronização na nuvem. Se esta política estiver desativada ou não estiver definida, apenas são utilizados os perfis locais normais.
diff --git a/components/policy/resources/policy_templates_ro.xtb b/components/policy/resources/policy_templates_ro.xtb index 32bcbfb..27a0acec 100644 --- a/components/policy/resources/policy_templates_ro.xtb +++ b/components/policy/resources/policy_templates_ro.xtb
@@ -656,13 +656,6 @@ Dacă această politică este folosită, utilizatorilor le sunt disponibile numai imprimantele ale căror ID-uri se potrivesc cu valorile din politică. ID-urile trebuie să corespundă câmpurilor „id” sau „guid” din fișierul specificat în <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Activează disponibilitatea funcției Atinge pentru a căuta în timpul afișării conținutului din <ph name="PRODUCT_NAME" />. - - Dacă activezi această setare, funcția Atinge pentru a căuta va fi disponibilă utilizatorului și acesta va putea activa sau dezactiva funcția. - - Dacă dezactivezi această setare, funcția Atinge pentru a căuta va fi dezactivată complet. - - Dacă politica nu este configurată, va fi considerată ca fiind activată. Vezi descrierea de mai sus.</translation> <translation id="285480231336205327">Activați modul de contrast ridicat</translation> <translation id="2854919890879212089">Determină <ph name="PRODUCT_NAME" /> să folosească imprimanta prestabilită pentru sistem ca opțiune prestabilită în funcția Previzualizare înainte de printare, în locul imprimantei folosite cel mai recent. @@ -1601,7 +1594,6 @@ 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="588135807064822874">Activează Atinge pentru a căuta</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. @@ -1862,11 +1854,6 @@ <translation id="6689792153960219308">Raportează starea hardware-ului</translation> <translation id="6698071416141001300">Declanșarea semnalării unui cont protejat prin parolă care prezintă un risc este activată de refolosirea parolei</translation> <translation id="6699880231565102694">Activați autentificarea cu doi factori pentru gazdele de acces la distanță</translation> -<translation id="6702257826895463228">Permite site-urilor să navigheze și să deschidă ferestre pop-up în același timp. - - Pentru o explicație completă, consultă https://www.chromestatus.com/features/5675755719622656. - Dacă această politică este activată, site-urile vor avea permisiunea să navigheze și să deschidă ferestre/file noi în același timp. - Dacă această politică este dezactivată sau nu este configurată, site-urile nu vor avea permisiunea să navigheze și să deschidă o fereastră/filă nouă în același timp.</translation> <translation id="6724842112053619797">Dacă activezi această setare, setările stocate în profilurile <ph name="PRODUCT_NAME" />, cum ar fi marcajele, datele de completare automată, parolele etc. vor fi scrise și într-un fișier stocat în dosarul profilului de utilizator pentru Roaming sau într-o locație specificată de administrator prin politica <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Dacă activezi această politică, se dezactivează sincronizarea în cloud. Dacă această politică este dezactivată sau nu este configurată, se vor folosi numai profilurile locale obișnuite. @@ -2725,7 +2712,7 @@ <translation id="915194831143859291">Dacă această politică este dezactivată sau nu este configurată, <ph name="PRODUCT_OS_NAME" /> îi va permite utilizatorului să oprească dispozitivul. Dacă această politică este activată, <ph name="PRODUCT_OS_NAME" /> va declanșa o repornire când utilizatorul închide dispozitivul. <ph name="PRODUCT_OS_NAME" /> înlocuiește toate aparițiile butoanelor de închidere din interfața de utilizare cu butoane de repornire. Dacă utilizatorul închide dispozitivul folosind butonul de pornire, acesta nu va reporni automat, chiar dacă politica este activată.</translation> <translation id="9158929520101169054">Permite conectarea multiplă în browser</translation> -<translation id="9165792353046089850">Îți permite să setezi 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. +<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. Această politică poate fi înlocuită pentru anumite șabloane de adrese URL prin aplicarea politicilor „WebUsbAskForUrls” și „WebUsbBlockedForUrls”.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 88db758..d579629 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -27,6 +27,7 @@ Если правило настроено, для экрана входа будет задан язык, указанный первым (правило определяется списком для прямой совместимости). Если правило не настроено или указан пустой список, будут использоваться региональные настройки последнего сеанса пользователя. Если задано некорректное значение, будет использоваться резервное значение (en-US).</translation> <translation id="1062011392452772310">Включает удаленную проверку устройства</translation> <translation id="1062407476771304334">Заменить</translation> +<translation id="1079801999187584280">Запретить использование Инструментов разработчика</translation> <translation id="109166998561583554">Триггер, при срабатывании которого защита паролем предупреждает, что аккаунт под угрозой</translation> <translation id="1093082332347834239">Если эта настройка включена, то удаленный хост помощника подключится с правами <ph name="UIACCESS_PERMISSION_NAME" />. Это позволит удаленным пользователям взаимодействовать на вашем компьютере с привилегированными окнами. @@ -77,6 +78,7 @@ Значение коэффициента должно составлять не менее 100%.</translation> <translation id="131353325527891113">Показать имена пользователей на экране входа</translation> +<translation id="1325295456374328159">Настроить языки для сеанса пользователя</translation> <translation id="1327466551276625742">При отсутствии подключения показывать запрос на настройку сети</translation> <translation id="1330145147221172764">Включить экранную клавиатуру</translation> <translation id="13356285923490863">Название правила</translation> @@ -89,6 +91,12 @@ <translation id="1387596372902085462">Считать ли устаревшую инфраструктуру открытых ключей Symantec Corporation надежной</translation> <translation id="1393485621820363363">Принтеры, доступные на устройствах компании</translation> <translation id="1397855852561539316">URL используемой по умолчанию поисковой системы для запроса подсказок</translation> +<translation id="1424081297104898791">Позволяет настраивать ограничения на использование Инструментов разработчика. + + Если в правиле указано DeveloperToolsDisallowedForForceInstalledExtensions (значение 0 задано по умолчанию для корпоративных пользователей), доступ к Инструментам разработчика и консоли JavaScript разрешен в целом, но запрещен в отношении расширений, установленных в соответствии с корпоративной политикой. + Если в правиле указано DeveloperToolsAllowed (значение 1 задано по умолчанию для пользователей без управления), доступ к Инструментам разработчика и консоли JavaScript разрешен всегда, в том числе в отношении расширений, установленных в соответствии с корпоративной политикой. + Если в правиле указано DeveloperToolsDisallowed (значение 2), Инструменты разработчика недоступны и их нельзя использовать для анализа сайтов. Также при этом не работают быстрые клавиши и пункты меню, позволяющие открывать Инструменты разработчика и консоль JavaScript. + Если для устаревшего правила DeveloperToolsDisabled указан параметр True, значение правила DeveloperToolsAvailability игнорируется. Инструменты разработчика будут отключены.</translation> <translation id="1426410128494586442">Да</translation> <translation id="1427655258943162134">Адрес или URL прокси-сервера</translation> <translation id="1435659902881071157">Конфигурации сети на уровне устройства</translation> @@ -195,6 +203,7 @@ <translation id="1803646570632580723">Список прикрепленных приложений в панели запуска</translation> <translation id="1808715480127969042">Блокировать файлы cookie на этих сайтах</translation> <translation id="1810261428246410396">Разрешить использование мгновенной точки доступа</translation> +<translation id="1826282708349731794">Настроить передачу отчетов из Инструмента очистки Chrome в Google</translation> <translation id="1827523283178827583">Использовать фиксированные прокси-серверы</translation> <translation id="1843117931376765605">Частота обновлений политики пользователя</translation> <translation id="1844620919405873871">Настраивает правила, связанные с быстрой разблокировкой.</translation> @@ -415,7 +424,7 @@ Строки <ph name="PRINTER_DISPLAY_NAME" /> и <ph name="PRINTER_DESCRIPTION" /> заполняются в свободной форме для того, чтобы пользователям было проще выбрать принтер. Строки <ph name="PRINTER_MANUFACTURER" /> и <ph name="PRINTER_MODEL" />, в которых указывается модель и производитель принтера, помогают конечным пользователям его идентифицировать. В качестве <ph name="PRINTER_URI" /> необходимо указать адрес в сети клиентского компьютера, включая <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> и <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> указывать необязательно, однако этот параметр помогает дедуплицировать принтеры <ph name="ZEROCONF_DISCOVERY" />. - Значение строки <ph name="PRINTER_EFFECTIVE_MODEL" /> должно совпадать со значением одной из строк, в которых указан принтер с поддержкой <ph name="PRODUCT_NAME" />. Эта строка будет использоваться для того, чтобы идентифицировать и установить подходящий файл PPD для этого принтера. Подробнее читайте на странице https://support.google.com/chrome?p=noncloudprint. + Значение строки <ph name="PRINTER_EFFECTIVE_MODEL" /> должно совпадать со значением одной из строк, в которых указан принтер с поддержкой <ph name="PRODUCT_NAME" />. Эта строка будет использоваться для того, чтобы идентифицировать и установить подходящий файл PPD для этого принтера. Подробности вы найдете на странице https://support.google.com/chrome?p=noncloudprint. Настройка принтера завершается после первого использования. До этого момента файлы PPD не скачиваются. В дальнейшем часто используемые файлы PPD кешируются. @@ -577,6 +586,7 @@ С помощью этого правила нельзя разрешить или запретить пользователям настраивать принтеры на своих устройствах. Оно только дополняет настройки пользователей. </translation> <translation id="2633084400146331575">Озвучивание действий</translation> +<translation id="2640843331263301324">Включить Инструмент очистки Chrome в Windows</translation> <translation id="2646290749315461919">Позволяет разрешить или запретить сайтам отслеживать местоположение пользователя. Эта функция может быть включена или отключена по умолчанию, либо пользователю может предоставляться возможность выбора каждый раз, когда сайт запрашивает местоположение. Если это правило не настроено, действует правило AskGeolocation и пользователи могут самостоятельно изменить его значение.</translation> <translation id="2647069081229792812">Включить или отключить возможность изменения закладок</translation> <translation id="2650049181907741121">Действие после закрытия крышки</translation> @@ -640,11 +650,6 @@ Когда правило настроено, пользователь может работать только с теми принтерами, идентификаторы которых в нем прописаны. Эти идентификаторы должны совпадать со значениями полей "id" и "guid" файла, указанного в правиле <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Разрешает быстрый поиск по контенту в окне <ph name="PRODUCT_NAME" />. - - Если вы укажете значение True или не станете настраивать правило, пользователь сможет включить или отключить быстрый поиск. - - Если вы укажете значение False, быстрый поиск будет всегда отключен.</translation> <translation id="285480231336205327">Включить режим высокой контрастности</translation> <translation id="2854919890879212089">Эта настройка обязывает <ph name="PRODUCT_NAME" /> использовать в режиме предварительного просмотра системный принтер по умолчанию, а не последний выбранный принтер. @@ -1196,12 +1201,14 @@ <translation id="4554651132977135445">Режим кольцевой проверки правил для пользователей</translation> <translation id="4555850956567117258">Включает удаленное подтверждение данных пользователем</translation> <translation id="4557134566541205630">Показ URL страницы быстрого доступа в поисковой системе по умолчанию</translation> +<translation id="4567137030726189378">Разрешить использование Инструментов разработчика</translation> <translation id="4600786265870346112">Включение большого курсора</translation> <translation id="4604931264910482931">Создание черного списка для хостов обмена сообщениями с оригинальными приложениями</translation> <translation id="4613508646038788144">Если указать значение False, ПО независимых производителей сможет передавать исполняемый код в процессы Chrome. Чтобы избежать этого, не задавайте правило или укажите значение True.</translation> <translation id="4617338332148204752">Отменить проверку метатега в <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Настройка белого списка расширений</translation> <translation id="4632343302005518762">Типы содержания, которые <ph name="PRODUCT_FRAME_NAME" /> может обрабатывать</translation> +<translation id="4632566332417930481">Запретить использование Инструментов разработчика в отношении расширений, установленных в соответствии с корпоративной политикой, и разрешить во всех остальных случаях</translation> <translation id="4633786464238689684">Использование клавиш верхнего ряда как функциональных Если задано значение true, клавиши верхнего ряда по умолчанию будут заменять функциональные клавиши. Чтобы использовать клавишу верхнего ряда для управления мультимедиа, одновременно потребуется нажать и удерживать клавишу поиска. @@ -1451,9 +1458,13 @@ Если выбран список идентификаторов способов ввода, на экране входа будут указаны эти способы. Выбор будет установлен на первом элементе списка. Если на экране отображается список пользователей, дополнительно будут доступны неиспользуемые в последнее время способы ввода. Если правило не настроено, способы ввода будут определяться региональными настройками для экрана входа. Некорректные идентификаторы способов ввода будут скрыты.</translation> <translation id="5423001109873148185">Это правило импортирует поисковые системы из текущего браузера по умолчанию. Если оно включено, меняется поведение диалогового окна импорта. Если правило отключено, поисковая система по умолчанию не импортируется. Если оно не настроено, импорт может быть выполнен автоматически либо пользователю может быть предложено выполнить его.</translation> <translation id="5423197884968724595">Название ограничения для Android WebView:</translation> +<translation id="5442026853063570579">Это правило также контролирует доступ к режиму Android для разработчиков. Если в правиле указано DeveloperToolsDisallowed (значение 2), у пользователей нет доступа к режиму для разработчиков. Если задано другое значение или правило не настроено, пользователи смогут включить этот режим, семь раз нажав на номер сборки в настройках Android.</translation> <translation id="5447306928176905178">Передавать на страницу информацию об использовании памяти JavaScript (устарело)</translation> <translation id="5457065417344056871">Включает гостевой режим в браузере</translation> <translation id="5457924070961220141">Позволяет настроить средство обработки HTML по умолчанию при установке <ph name="PRODUCT_FRAME_NAME" />. Если это правило не настроено, по умолчанию обработку выполняет браузер хоста, но это значение можно переопределить, и тогда обработку HTML-страниц по умолчанию выполняет <ph name="PRODUCT_FRAME_NAME" />.</translation> +<translation id="5459155981813668716">Устанавливает региональные настройки для <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" /> будет использоваться первое допустимое значение из этого правила или резервный язык (в настоящее время это en-US), если правило содержит только недопустимые значения.</translation> <translation id="5464816904705580310">Настройки управляемых профилей.</translation> <translation id="546726650689747237">Задержка затемнения экрана при работе от сети</translation> <translation id="5469484020713359236">Задает список шаблонов URL для сайтов, которым разрешено сохранять файлы cookie. Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию на основе правила DefaultCookiesSetting (если оно настроено, в противном случае – на основе пользовательской конфигурации).</translation> @@ -1567,7 +1578,6 @@ Если значение правила не задано, при первом переходе на экран входа функция озвучивания действий будет отключена. Пользователи могут ее в любое время включить и отключить, а ее статус будет виден всем пользователям на экране входа.</translation> <translation id="5868414965372171132">Конфигурация сети на уровне пользователя</translation> -<translation id="588135807064822874">Включить быстрый поиск</translation> <translation id="5883015257301027298">Настройки файлов cookie по умолчанию</translation> <translation id="5887414688706570295">Настраивает префикс TalkGadget для хостов удаленного доступа и запрещает пользователям его менять. @@ -1673,6 +1683,7 @@ <translation id="6036523166753287175">Включить обход брандмауэра для хоста удаленного доступа</translation> <translation id="6070667616071269965">Раскладки клавиатуры экрана входа</translation> <translation id="6074963268421707432">Запретить показ уведомлений на всех сайтах</translation> +<translation id="6074964551275531965">Задать период времени для уведомлений об обновлениях</translation> <translation id="6076099373507468537">Определяет список USB-устройств, которые можно использовать напрямую в веб-приложениях через chrome.usb API (в обход драйвера ядра). Каждая запись содержит пару идентификаторов (продавца и товара), чтобы точно определить устройство. Если это правило не настроено, список отсоединяемых USB-устройств будет пустым.</translation> @@ -1745,6 +1756,11 @@ <translation id="6392973646875039351">Включает в <ph name="PRODUCT_NAME" /> функцию автозаполнения и разрешает автоматически заполнять веб-формы, например с полями адреса или номера банковской карты, ранее сохраненными данными. Если этот параметр отключен, функция автозаполнения недоступна пользователям, а если он включен или его значение не указано, пользователь может использовать автозаполнение, настраивать профили автозаполнения, а также включать и отключать эту функцию по своему усмотрению.</translation> <translation id="6394350458541421998">Это правило не поддерживается в <ph name="PRODUCT_OS_NAME" /> версии 29 и будет исключено из более поздних версий. Вместо него используйте правило PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Выход из системы</translation> +<translation id="6412477120967771054">Если задано значение False, Инструмент очистки Chrome не будет запускаться для сканирования системы, обнаружения нежелательного ПО и проведения очистки. Ручной запуск Инструмента из chrome://settings/cleanup также будет отключен. + + Если задано значение True или правило не настроено, Инструмент очистки Chrome будет периодически запускаться для сканирования системы и при обнаружении нежелательного ПО будет появляться запрос на его удаление. Ручной запуск Инструмента из chrome://settings/cleanup будет включен. + + Это правило недоступно на устройствах Windows, не входящих в домен <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Задает список шаблонов URL для сайтов, которым запрещено устанавливать файлы cookie. Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию на основе правила DefaultCookiesSetting (если оно настроено, в противном случае – на основе пользовательской конфигурации).</translation> <translation id="6426205278746959912">Вы не можете принудить приложения Android использовать прокси-сервер. Приложения сами решают, делать это или нет, поскольку им доступна часть настроек прокси-сервера. @@ -1765,6 +1781,13 @@ Чтобы указать, каким сайтам разрешено запускать Flash, используйте правило DefaultPluginsSetting, PluginsAllowedForUrls или PluginsBlockedForUrls. Если это правило отключено или не настроено, Flash-контент небольшого размера или из сторонних источников может блокироваться.</translation> +<translation id="6535639183431116351">Это правило не поддерживается в M68, используйте вместо него DeveloperToolsAvailability. + + Отключает Инструменты разработчика и консоль JavaScript. + + Если этот параметр включен, Инструменты разработчика недоступны и их нельзя использовать для анализа сайтов. Также при этом не работают быстрые клавиши и пункты меню, позволяющие открывать Инструменты разработчика и консоль JavaScript. + + Если этот параметр отключен или не задан, Инструменты разработчика и консоль JavaScript доступны для использования.</translation> <translation id="653608967792832033">Указывает, через какое время бездействия блокируется экран при работе от батареи. Если значение больше нуля, оно определяет время бездействия, через которое <ph name="PRODUCT_OS_NAME" /> заблокирует экран. @@ -1830,11 +1853,6 @@ <translation id="6689792153960219308">Отчет о статусе оборудования</translation> <translation id="6698071416141001300">Когда пароль используется повторно, защита паролем предупреждает, что аккаунт под угрозой</translation> <translation id="6699880231565102694">Включение двухфакторной аутентификации для хостов удаленного доступа</translation> -<translation id="6702257826895463228">Разрешить сайтам одновременно открывать всплывающие окна и переходить на новую страницу. - - Дополнительную информацию можно найти по ссылке https://www.chromestatus.com/features/5675755719622656. - Если правило включено, сайтам будет разрешено одновременно открывать новые окна или вкладки, а также переходить на новую страницу. - Если правило отключено, сайтам будет запрещено одновременно открывать новые окна или вкладки, а также переходить на новую страницу.</translation> <translation id="6724842112053619797">При включении этого правила настройки профиля для сервиса "<ph name="PRODUCT_NAME" />" (например, закладки, данные автозаполнения, пароли и т. д.) копируются в отдельный файл. Он хранится в папке перемещаемого профиля пользователя или в каталоге, который администратор определил в правиле <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Когда это правило включено, синхронизация с облаком не выполняется. Если это правило отключено или не установлено, будут использованы только обычные локальные профили. @@ -2171,6 +2189,7 @@ Дополнительную информацию о Безопасном просмотре можно прочитать на странице https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Ограничить число аккаунтов, которые видны в <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Устанавливает возможность для роуминга данных для устройства. Если параметр задан, роуминг данных разрешен. Если нет (по умолчанию), роуминг данных будет недоступен.</translation> +<translation id="7673194325208122247">Период времени (мс)</translation> <translation id="7683777542468165012">Динамическое обновление правил</translation> <translation id="7694807474048279351">Планирование автоматической перезагрузки после того, как было применено обновление <ph name="PRODUCT_OS_NAME" />. @@ -2296,6 +2315,13 @@ <translation id="7961779417826583251">Отключить проверку сертификатов для устаревших центров сертификации</translation> <translation id="7974114691960514888">Это правило более не поддерживается. Оно позволяет использовать STUN и серверы ретрансляции для подключения удаленных клиентов. Если этот параметр включен, удаленные клиенты могут находить хосты и подключаться к ним, даже когда используется брандмауэр. Если этот параметр отключен, а исходящие UDP-соединения фильтруются брандмауэром, к хосту смогут подключиться только клиенты, находящиеся в локальной сети.</translation> <translation id="7976157349247117979">Название ресивера <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Если это правило не настроено, при обнаружении нежелательного ПО с помощью Инструмента очистки Chrome метаданные сканирования могут быть переданы в Google в соответствии с правилом SafeBrowsingExtendedReportingEnabled. Пользователь увидит запрос на удаление нежелательного ПО и сможет сам принять решение, отправлять ли в Google отчет, чтобы улучшить функцию обнаружения нежелательного ПО. Отчет включает метаданные файла и ключи реестра в соответствии с Политикой конфиденциальности Chrome. + + Если выбрано значение False, при обнаружении нежелательного ПО метаданные сканирования не будут переданы в Google независимо от настроек правила SafeBrowsingExtendedReportingEnabled. Появится запрос на удаление нежелательного ПО, но отчет о проверке отправлен не будет, и пользователь не сможет на это повлиять. + + Если выбрано значение True, при обнаружении нежелательного ПО метаданные сканирования будут переданы в Google в соответствии с правилом SafeBrowsingExtendedReportingEnabled. Появится запрос на удаление нежелательного ПО и отчет о проверке будет отправлен в Google. Пользователь не сможет на это повлиять. + + Правило недоступно на устройствах Windows, не входящих в домен <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Правило SitePerProcess изолирует все сайты. При необходимости используйте правило IsolateOrigins, @@ -2422,6 +2448,7 @@ Если задано значение "false", загрузка файлов на Google Диск будет разрешена.</translation> +<translation id="8300992833374611099">Установить ограничения на использование Инструментов разработчика</translation> <translation id="8312129124898414409">Позволяет разрешить или запретить создание ключей для всех сайтов. Если это правило не настроено, для всех сайтов будет использоваться правило BlockKeygen (пользователь может изменить эту настройку).</translation> <translation id="8329984337216493753">Эти правила действуют только в коммерческой версии. @@ -2643,6 +2670,11 @@ <translation id="9035964157729712237">Идентификаторы расширений, исключаемых из черного списка</translation> <translation id="9042911395677044526">Позволяет принудительно переносить конфигурацию сети конкретного пользователя на любые устройства <ph name="PRODUCT_OS_NAME" />. Конфигурация сети описывается строкой в формате JSON, который определен форматом Open Network Configuration, с которым можно ознакомиться, перейдя по адресу <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Определяет, влияет ли воспроизведение видео на режим энергопотребления</translation> +<translation id="9085839450090699752">Позволяет задать период времени в миллисекундах, в течение которого пользователю будут показываться уведомления о том, что для установки обновления необходимо перезапустить <ph name="PRODUCT_NAME" /> или перезагрузить устройство <ph name="PRODUCT_OS_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 миллисекунд (одна неделя) для браузеров.</translation> <translation id="9088433379343318874">Открыть доступ к поставщику контента для контролируемых профилей</translation> <translation id="9088444059179765143">Определять часовой пояс автоматически</translation> <translation id="9096086085182305205">Белый список аутентификации сервера</translation>
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb index cbb82baa6a..a347d97b 100644 --- a/components/policy/resources/policy_templates_sk.xtb +++ b/components/policy/resources/policy_templates_sk.xtb
@@ -26,6 +26,7 @@ Ak je toto pravidlo nastavené, prihlasovacia obrazovka sa vždy zobrazí v jazyku, ktorý je určený prvou hodnotou tohto pravidla (z dôvodu kompatibility s nasledujúcimi verziami je pravidlo definované ako zoznam). Ak toto pravidlo nie je nastavené alebo je nastavené na prázdny zoznam, prihlasovacia obrazovka sa zobrazí v jazyku poslednej relácie používateľa. Ak je pravidlo nastavené na hodnotu, ktorá nie je platným jazykom, prihlasovacia obrazovka sa zobrazí v záložnom jazyku (aktuálne americká angličtina).</translation> <translation id="1062011392452772310">Povoliť pre zariadenie vzdialené overenie</translation> <translation id="1062407476771304334">Nahradiť</translation> +<translation id="1079801999187584280">Zakázať použitie nástrojov pre vývojárov</translation> <translation id="109166998561583554">Spustenie nahlásenia ohrozeného účtu v rámci ochrany heslom</translation> <translation id="1093082332347834239">Ak je toto nastavenie povolené, hostiteľ vzdialenej pomoci sa bude spúšťať v procesoch s povoleniami <ph name="UIACCESS_PERMISSION_NAME" />. Umožní tak vzdialeným používateľom interagovať s privilegovanými oknami na pracovnej ploche miestneho používateľa. @@ -78,6 +79,7 @@ Škálovací faktor musí mať hodnotu aspoň 100 %.</translation> <translation id="131353325527891113">Zobraziť používateľské mená na prihlasovacej obrazovke</translation> +<translation id="1325295456374328159">Konfigurovanie povolených miestnych nastavení v relácii používateľa</translation> <translation id="1327466551276625742">Povolenie výzvy na konfiguráciu siete v režime offline</translation> <translation id="1330145147221172764">Zobraziť klávesnicu na obrazovke</translation> <translation id="13356285923490863">Názov pravidla</translation> @@ -90,6 +92,12 @@ <translation id="1387596372902085462">Určuje, či sa má dôverovať starej infraštruktúre PKI spoločnosti Symantec Corporation</translation> <translation id="1393485621820363363">Povolené podnikové tlačiarne zariadenia</translation> <translation id="1397855852561539316">Webová adresa návrhu predvoleného poskytovateľa vyhľadávania</translation> +<translation id="1424081297104898791">Umožňuje ovládať, kde sa môžu nástroje pre vývojárov používať. + + Ak toto pravidlo nastavíte na možnosť „DeveloperToolsDisallowedForForceInstalledExtensions“ (hodnota 0, ktorá je predvolená pre podnikových používateľov), nástroje pre vývojárov a konzola JavaScriptu sa budú môcť všeobecne používať, ale nie v kontexte rozšírení nainštalovaných podnikovým pravidlom. + Ak toto pravidlo nastavíte na hodnotu „DeveloperToolsAllowed“ (hodnota 1, ktorá je predvolená pre nespravovaných používateľov), nástroje pre vývojárov a konzola Javascriptu sa budú môcť používať vo všetkých kontextoch vrátane kontextu rozšírení nainštalovaných podnikovým pravidlom. + Ak toto pravidlo nastavíte na možnosť „DeveloperToolsDisallowed“ (hodnota 2), nástroje pre vývojárov nebude možné používať ani nebude možné kontrolovať prvky webov. Zakázané budú tiež všetky klávesové skratky a položky klasických či kontextových ponúk, pomocou ktorých je možné otvoriť nástroje pre vývojárov alebo konzolu JavaScriptu. + Ak nastavíte staré pravidlo DeveloperToolsDisabled na hodnotu True, hodnota tohto pravidla sa bude ignorovať a nástroje pre vývojárov budú deaktivované.</translation> <translation id="1426410128494586442">Áno</translation> <translation id="1427655258943162134">Adresa alebo webová adresa servera proxy</translation> <translation id="1435659902881071157">Konfigurácia siete na úrovni zariadenia</translation> @@ -197,6 +205,7 @@ <translation id="1803646570632580723">Zoznam pripnutých aplikácií, ktoré sa zobrazujú v spúšťači</translation> <translation id="1808715480127969042">Blokovať súbory cookie na týchto webových stránkach</translation> <translation id="1810261428246410396">Povoliť používanie dynamického tetheringu</translation> +<translation id="1826282708349731794">Ovláda, ako Chrome Cleanup hlási dáta Googlu</translation> <translation id="1827523283178827583">Použiť fixné servery proxy</translation> <translation id="1843117931376765605">Frekvencia obnovenia pravidiel pre používateľov</translation> <translation id="1844620919405873871">Nakonfiguruje pravidlá súvisiace s rýchlym odomknutím.</translation> @@ -417,9 +426,9 @@ Toto pravidlo umožňuje správcom poskytnúť používateľom konfigurácie tlačiarní. - <ph name="PRINTER_DISPLAY_NAME" /> a <ph name="PRINTER_DESCRIPTION" /> sú prispôsobiteľné textové reťazce, pomocou ktorých je možné zjednodušiť výber tlačiarne. Hodnoty <ph name="PRINTER_MANUFACTURER" /> a <ph name="PRINTER_MODEL" /> uľahčujú identifikáciu tlačiarní koncovými používateľmi. Prestavujú výrobcu a model tlačiarne. <ph name="PRINTER_URI" /> by mala byť adresa dostupná z klientského počítača vrátane údajov <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> a <ph name="URI_QUEUE" />. Hodnota <ph name="PRINTER_UUID" /> je voliteľná. Ak je zadaná, používa sa na odobranie duplicitných tlačiarní <ph name="ZEROCONF_DISCOVERY" />. + <ph name="PRINTER_DISPLAY_NAME" /> a <ph name="PRINTER_DESCRIPTION" /> sú prispôsobiteľné textové reťazce, pomocou ktorých je možné zjednodušiť výber tlačiarne. Hodnoty <ph name="PRINTER_MANUFACTURER" /> a <ph name="PRINTER_MODEL" /> uľahčujú identifikáciu tlačiarní koncovými používateľmi. Predstavujú výrobcu a model tlačiarne. <ph name="PRINTER_URI" /> by mala byť adresa dostupná z klientského počítača vrátane údajov <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> a <ph name="URI_QUEUE" />. Hodnota <ph name="PRINTER_UUID" /> je voliteľná. Ak je zadaná, používa sa na odobranie duplicitných tlačiarní <ph name="ZEROCONF_DISCOVERY" />. - <ph name="PRINTER_EFFECTIVE_MODEL" /> sa musí zhodovať z jedným reťazcom predstavujúcim podporovanú tlačiareň <ph name="PRODUCT_NAME" />. Reťazec sa použije na identifikáciu a inštaláciu príslušného súboru PPD pre tlačiareň. Ďalšie informácie nájdete na adrese https://support.google.com/chrome?p=noncloudprint. + <ph name="PRINTER_EFFECTIVE_MODEL" /> sa musí zhodovať s jedným reťazcom predstavujúcim podporovanú tlačiareň <ph name="PRODUCT_NAME" />. Reťazec sa použije na identifikáciu a inštaláciu príslušného súboru PPD pre tlačiareň. Ďalšie informácie nájdete na adrese https://support.google.com/chrome?p=noncloudprint. Nastavenie tlačiarne sa dokončí pri prvom použití. Súbory PPD sa stiahnu až pri použití tlačiarne. Často používané súbory PPD sa následne uložia do vyrovnávacej pamäte. @@ -594,6 +603,7 @@ Toto pravidlo nemá vplyv na to, či používatelia môžu konfigurovať tlačiarne na jednotlivých zariadeniach. Je určené ako doplnok konfigurácie tlačiarní jednotlivými používateľmi. </translation> <translation id="2633084400146331575">Povoliť hlasovú odozvu</translation> +<translation id="2640843331263301324">Aktivuje Chrome Cleanup v systéme Windows</translation> <translation id="2646290749315461919">Umožňuje nastaviť, či môžu webové stránky sledovať fyzickú polohu používateľa. Sledovanie fyzickej polohy používateľa sa dá nakonfigurovať tak, že bude v predvolenom nastavení umožnené alebo zamietnuté. Tiež je možné nastaviť, aby sa pri pokuse webových stránok o sledovanie fyzickej polohy používateľovi zobrazila výzva. Ak toto pravidlo ponecháte nenastavené, použije sa pravidlo „AskGeolocation“ a používateľ ho bude môcť zmeniť.</translation> @@ -663,13 +673,6 @@ Ak toto pravidlo použijete, používateľ bude mať k dispozícii iba tlačiarne s identifikátormi, ktoré sa zhodujú s hodnotami v tomto pravidle. Identifikátory sa musia zhodovať s hodnotou v poli „id“ alebo „guid“ v súbore určenom v pravidle <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">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úť. - - Ak toto nastavenie zakážete, Vyhľadávanie klepnutím bude úplne vypnuté. - - Ak toto pravidlo nenastavíte, prehliadač sa bude správať rovnako, ako keby ste ho povolili (prečítajte si popis vyššie).</translation> <translation id="285480231336205327">Povoliť režim s vysokým kontrastom</translation> <translation id="2854919890879212089">Umožňuje nastaviť, aby prehliadač <ph name="PRODUCT_NAME" /> predvolene používal v časti Ukážka tlače namiesto poslednej použitej tlačiarne predvolenú tlačiareň systému. @@ -1242,12 +1245,14 @@ <translation id="4554651132977135445">Režim spracovania slučky pravidiel pre používateľov</translation> <translation id="4555850956567117258">Povoliť pre používateľa vzdialené overenie</translation> <translation id="4557134566541205630">Predvolená webová adresa stránky novej karty poskytovateľa vyhľadávania</translation> +<translation id="4567137030726189378">Povoliť používanie nástrojov pre vývojárov</translation> <translation id="4600786265870346112">Povoliť veľký kurzor</translation> <translation id="4604931264910482931">Konfigurácia zoznamu zakázaných položiek pre odosielanie natívnych správ</translation> <translation id="4613508646038788144">Ak toto pravidlo nastavíte na hodnotu False, softvér tretej strany bude môcť vkladať spustiteľný kód do procesov Chromu. Ak toto pravidlo nastavíte na hodnotu True alebo ponecháte nenastavené, softvér tretej strany bude mať vkladanie spustiteľného kódu do procesov Chromu zakázané.</translation> <translation id="4617338332148204752">Preskočiť kontrolu metaznačiek v rámci služby <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfigurovať zoznam rozšírení, ktorých inštalácia je povolená</translation> <translation id="4632343302005518762">Povoliť doplnku <ph name="PRODUCT_FRAME_NAME" /> spracovávať uvedené typy obsahu</translation> +<translation id="4632566332417930481">Zakázať používanie nástrojov pre vývojárov v prípade rozšírení nainštalovaných podnikovým pravidlom, povoliť používanie nástrojov pre vývojárov v iných kontextoch</translation> <translation id="4633786464238689684">Zmení predvolené správanie klávesov v hornom rade na funkčné klávesy. Ak toto pravidlo nastavíte na hodnotu pravda (true), klávesy v hornom rade klávesnice budú predvolene plniť príkazy funkčných klávesov. Stlačením klávesu vyhľadávania vrátite ich správanie späť na klávesy pre médiá. @@ -1520,10 +1525,14 @@ 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="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> <translation id="5457924070961220141">Umožňuje konfigurovať vykresľovací modul HTML, keď je nainštalovaný doplnok <ph name="PRODUCT_FRAME_NAME" />. V predvolenom nastavení, ktoré sa používa v prípade, ak je toto pravidlo ponechané nenastavené, môže vykresľovanie vykonávať hostiteľský prehliadač. Toto nastavenie však môžete prepísať a namiesto toho vykresľovať stránky HTML pomocou doplnku <ph name="PRODUCT_FRAME_NAME" />.</translation> +<translation id="5459155981813668716">Konfiguruje miestne nastavenia, v ktorých sa <ph name="PRODUCT_OS_NAME" /> môže zobrazovať. + + Ak toto pravidlo nastavíte, používateľ môže nakonfigurovať iba to, aby sa <ph name="PRODUCT_OS_NAME" /> zobrazoval v jednom z miestnych nastavení špecifikovaných týmto pravidlom. Ak toto pravidlo nenastavíte alebo ho nastavíte na prázdny zoznam, <ph name="PRODUCT_OS_NAME" /> sa môže zobrazovať vo všetkých podporovaných miestnych nastaveniach. Ak pravidlo nastavíte na zoznam s neplatnými hodnotami, všetky neplatné hodnoty sa budú ignorovať. Ak používateľ predtým nakonfiguroval, aby sa <ph name="PRODUCT_OS_NAME" /> zobrazoval v jazyku, ktorý toto pravidlo nepovoľuje, pri najbližšom prihlásení používateľa sa zobrazené miestne nastavenie prepne na povolené miestne nastavenie. Ak používateľ nakonfiguroval preferované miestne nastavenia a jedno z týchto nastavení je povolené týmto pravidlom, <ph name="PRODUCT_OS_NAME" /> sa prepne na toto miestne nastavenie. V opačnom prípade sa <ph name="PRODUCT_OS_NAME" /> prepne na prvú platnú hodnotu špecifikovanú týmto pravidlom alebo na záložné miestne nastavenie (aktuálne en-US), ak pravidlo obsahuje iba neplatné záznamy.</translation> <translation id="5464816904705580310">Umožňuje nakonfigurovať nastavenia pre spravovaných používateľov.</translation> <translation id="546726650689747237">Oneskorenie zníženia jasu obrazovky pri používaní napájacieho zdroja</translation> <translation id="5469484020713359236">Umožňuje nastaviť zoznam vzorov webových adries určujúcich webové stránky, ktoré môžu nastavovať súbory cookie. @@ -1645,7 +1654,6 @@ Ak toto pravidlo ponecháte nenastavené, bude hlasová odozva pri prvom zobrazení prihlasovacej obrazovky zakázaná. Používatelia budú môcť hlasovú odozvu kedykoľvek povoliť alebo zakázať a jej stav na prihlasovacej obrazovke sa zachová aj po zmene používateľov.</translation> <translation id="5868414965372171132">Konfigurácia siete na úrovni používateľa</translation> -<translation id="588135807064822874">Povoliť Vyhľadávanie klepnutím</translation> <translation id="5883015257301027298">Predvolené nastavenie súborov cookie</translation> <translation id="5887414688706570295">Konfiguruje predponu TalkGadget, ktorú budú používať hostitelia vzdialeného prístupu, a bráni používateľom, aby ju zmenili. @@ -1749,6 +1757,7 @@ <translation id="6036523166753287175">Povoliť prechod cez bránu firewall v smere od hostiteľa vzdialeného prístupu</translation> <translation id="6070667616071269965">Rozloženie klávesnice na prihlasovacej obrazovke zariadenia</translation> <translation id="6074963268421707432">Nepovoliť žiadnym stránkam zobrazovať upozornenia na pracovnej ploche</translation> +<translation id="6074964551275531965">Nastaviť časové obdobie upozornení na aktualizáciu</translation> <translation id="6076099373507468537">Definuje zoznam zariadení USB, ktoré je možné odpojiť od ovládača jadra, aby sa dali použiť prostredníctvom rozhrania chrome.usb API priamo vo webovej aplikácii. Vstupné hodnoty sú páry identifikátor dodávateľa USB – identifikátor produktu na určenie konkrétneho hardvéru. Ak toto pravidlo nenakonfigurujete, zoznam odpojiteľných zariadení USB bude prázdny.</translation> @@ -1830,6 +1839,11 @@ 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="6394350458541421998">Toto pravidlo sa prestalo používať v systéme <ph name="PRODUCT_OS_NAME" /> verzie 29. Použite namiesto neho pravidlo PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Odhlásiť používateľa</translation> +<translation id="6412477120967771054">Ak pravidlo nastavíte na hodnotu False, 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 pravidlo nastavíte na hodnotu True alebo ho 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é. + + Toto pravidlo nie je k dispozícii v reláciách systému Windows, ktoré nie sú pripojené k doméne <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Umožňuje nastaviť zoznam vzorov webových adries určujúcich webové stránky, ktoré nemôžu nastavovať súbory cookie. Ak toto pravidlo ponecháte nenastavené, použije sa v prípade všetkých webových stránok globálna predvolená hodnota buď z pravidla „DefaultCookiesSetting“ (ak je nastavené), alebo z osobnej konfigurácie používateľa.</translation> @@ -1852,6 +1866,13 @@ Ak chcete ovládať, ktoré webové stránky majú povolené spúšťať Flash, pozrite si pravidlá DefaultPluginsSetting, PluginsAllowedForUrls a PluginsBlockedForUrls. Ak je toto nastavenie zakázané alebo nie je nastavené, obsah Flash z ostatných zdrojov alebo malého obsahu môže byť blokovaný.</translation> +<translation id="6535639183431116351">Podpora tohto pravidla bola ukončená vo verzii M68. Použite namiesto neho pravidlo DeveloperToolsAvailability. + + Zakáže nástroje pre vývojárov a konzolu JavaScriptu. + + Ak toto nastavenie povolíte, nebude možné pristupovať k nástrojom pre vývojárov ani kontrolovať prvky webov. Zakázané budú tiež všetky klávesové skratky a položky klasických či kontextových ponúk, pomocou ktorých je možné otvoriť nástroje pre vývojárov alebo konzolu JavaScriptu. + + Ak túto možnosť nastavíte ako zakázanú alebo ju ponecháte nenastavenú, umožníte používateľovi používať nástroje pre vývojárov a konzolu JavaScriptu.</translation> <translation id="653608967792832033">Určuje dobu nečinnosti používateľa, po ktorej sa obrazovka pri napájaní z batérie uzamkne. Ak je toto pravidlo nastavené na hodnotu väčšiu ako nula, určuje dobu nečinnosti používateľa, po ktorej systém <ph name="PRODUCT_OS_NAME" /> obrazovku uzamkne. @@ -1917,11 +1938,6 @@ <translation id="6689792153960219308">Nahlásiť stav hardvéru</translation> <translation id="6698071416141001300">Nahlásenie ohrozeného účtu v rámci ochrany heslom sa spúšťa po opätovnom použití hesla</translation> <translation id="6699880231565102694">Povolenie dvojfázového overenia totožnosti pre hostiteľov vzdialeného prístupu</translation> -<translation id="6702257826895463228">Povoliť webom súbežne prechádzať a otvárať kontextové okná. - - Úplné vysvetlenie nájdete na adrese https://www.chromestatus.com/features/5675755719622656. - Ak toto pravidlo povolíte, weby budú môcť súbežne prechádzať a otvárať nové okná alebo karty. - Ak toto pravidlo zakážete alebo nenastavíte, weby nebudú môcť súbežne prechádzať alebo otvárať nové okná ani karty.</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. Ak je toto pravidlo zakázané alebo nie je nastavené, budú sa používať iba miestne profily. @@ -2286,6 +2302,7 @@ Ďalšie informácie o Bezpečnom prehliadaní získate na adrese https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Obmedziť účty, ktoré sú viditeľné v prehliadači <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Určuje, či bude v zariadení povolený roaming pre dátové prenosy. Ak je pravidlo nastavené na hodnotu true, roaming pre dátové prenosy bude povolený. Ak ho ponecháte nenakonfigurované alebo ho nastavíte na hodnotu false, roaming pre dátové prenosy nebude k dispozícii.</translation> +<translation id="7673194325208122247">Časové obdobie (milisekundy)</translation> <translation id="7683777542468165012">Obnovenie dynamického pravidla</translation> <translation id="7694807474048279351">Naplánuje automatické reštartovanie po použití aktualizácie systému <ph name="PRODUCT_OS_NAME" />. @@ -2419,6 +2436,13 @@ Ak je toto nastavenie zakázané a brána firewall filtruje odchádzajúce pripojenia cez protokol UDP, môže sa tento počítač pripojiť len k počítačom hostiteľa v rámci miestnej siete.</translation> <translation id="7976157349247117979">Názov cieľového priečinka <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Ak toto pravidlo ponecháte nenastavené, Chrome Cleanup by mal zisťovať nechcený softvér, bude môcť nahlasovať metadáta hľadania Googlu v súlade s pravidlom, ktoré nastavila možnosť SafeBrowsingExtendedReportingEnabled. Chrome Cleanup sa potom opýta používateľa, či chce nechcený softvér odstrániť. Používateľ môže zvoliť, aby sa výsledky čistenia zdieľali s Googlom s cieľom pomôcť so zisťovaním nechceného softvéru v budúcnosti. Tieto výsledky obsahujú metadáta súborov a kľúče databázy Registry podľa popisu v informáciách o ochrane súkromia v Chrome. + + Ak pravidlo nastavíte na hodnotu False, Chrome Cleanup pri zistení nechceného softvéru nenahlási metadáta hľadania Googlu, čím prepíše akékoľvek pravidlo nastavené možnosťou SafeBrowsingExtendedReportingEnabled. Chrome Cleanup sa opýta používateľa, či chce nechcený softvér odstrániť. Výsledky vyčistenia sa nenahlásia Googlu a používateľ to ani nebude môcť zvoliť. + + Ak pravidlo nastavíte na hodnotu True, Chrome Cleanup pri zistení nechceného softvéru môže nahlásiť metadáta hľadania do Googlu s súlade s pravidlom nastaveným možnosťou SafeBrowsingExtendedReportingEnabled. Chrome Cleanup sa opýta používateľa, či chce nechcený softvér odstrániť. Výsledky vyčistenia sa nahlásia Googlu a používateľ nebude mať možnosť tomu zabrániť. + + Toto pravidlo nie je k dispozícii v reláciách systému Windows, ktoré nie sú pripojené k doméne <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> Ak chcete vyťažiť z oboch možností, t. j. izolovať s obmedzeným vplyvom na používateľov, pozrite si nastavenie pravidla IsolateOrigins. Pravidlo IsolateOrigins použite so zoznamom webov, ktoré chcete izolovať. Toto nastavenie – SitePerProcess – izoluje všetky weby. Ak toto pravidlo povolíte, všetky weby sa budú spúšťať vo vlastných procesoch. @@ -2537,6 +2561,7 @@ <translation id="8300455783946254851">Ak je pravidlo nastavené na hodnotu True, zakáže v aplikácií Súbory systému <ph name="PRODUCT_OS_NAME" /> synchronizáciu služby Disk Google pri používaní mobilného pripojenia. V tomto prípade sa budú údaje v službe Disk Google synchronizovať iba pri pripojení k sieti Wi‑Fi alebo Ethernet. Ak je hodnota funkcie nastavená na možnosť False, používatelia budú môcť prenášať súbory do služby Disk Google prostredníctvom mobilných pripojení.</translation> +<translation id="8300992833374611099">Ovládanie toho, kde sa môžu nástroje pre vývojárov používať</translation> <translation id="8312129124898414409">Umožňuje nastaviť, či môžu webové stránky používať generovanie kľúčov. Používanie generovania kľúčov je možné buď povoliť pre všetky webové stránky, alebo ho pre všetky webové stránky zakázať. Ak toto pravidlo ponecháte nenastavené, použije sa pravidlo BlockKeygen a používateľ ho bude môcť zmeniť.</translation> @@ -2768,6 +2793,11 @@ <translation id="9035964157729712237">ID rozšírení, ktoré majú byť zo zoznamu zakázaných rozšírení vyňaté</translation> <translation id="9042911395677044526">Umožňuje preniesť konfiguráciu siete, ktorá sa použije pre jednotlivých používateľov v zariadení so systémom <ph name="PRODUCT_OS_NAME" />. Konfigurácia siete je reťazec vo formáte JSON, ktorý sa riadi definíciou formátu Open Network Configuration uvedenou na adrese <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Určuje, či prehrávanie videa ovplyvňuje správu napájania</translation> +<translation id="9085839450090699752">Umožňuje nastaviť časové obdobie v milisekundách, po uplynutí ktorého budú používatelia upozornení, že <ph name="PRODUCT_NAME" /> sa musí znova spustiť alebo že zariadenie <ph name="PRODUCT_OS_NAME" /> musí byť reštartované, aby sa použila čakajúca aktualizácia. + + V priebehu tohto časového obdobia bude používateľ opakovane informovaný o potrebe aktualizácie. V zariadeniach <ph name="PRODUCT_OS_NAME" /> sa po zistení inovácie objaví na paneli úloh systému upozornenie na reštartovanie. Farba tohto upozornenia sa zmení po uplynutí polovice obdobia a opäť po uplynutí celého obdobia. V prípade prehliadačov <ph name="PRODUCT_NAME" /> sa po uplynutí jednej tretiny časového obdobia upozornenia zmení ponuka aplikácie, ktorá označuje potrebu opätovného spustenia. Farba upozornenia sa zmení po uplynutí dvoch tretín obdobia a znova po uplynutí celého obdobia. Ďalšie upozornenia povolené pravidlom <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> pre prehliadače dodržiavajú rovnaký harmonogram. + + Ak pravidlo nenastavíte, použije sa predvolené obdobie 345 600 000 milisekúnd (štyri dni) pre zariadenia <ph name="PRODUCT_OS_NAME" /> a 604 800 000 milisekúnd (jeden týždeň) pre prehliadače.</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="9096086085182305205">Zoznam povolených overovacích serverov</translation>
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb index ff0624a..1ea96c2 100644 --- a/components/policy/resources/policy_templates_sl.xtb +++ b/components/policy/resources/policy_templates_sl.xtb
@@ -679,13 +679,6 @@ Če se uporablja ta pravilnik, so uporabniku na voljo samo tiskalniki z ID-ji, ki se ujemajo z vrednostmi v tem pravilniku. ID-ji morajo ustrezati polju »id« ali »guid« v datoteki, določeni v pravilniku <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Omogoči razpoložljivost funkcije »Dotaknite se za iskanje« v pogledu vsebine brskalnika <ph name="PRODUCT_NAME" />. - - Če omogočite to nastavitev, je funkcija »Dotaknite se za iskanje« na voljo uporabniku, ki lahko to funkcijo vkopi ali izklopi. - - Če onemogočite to nastavitev, bo funkcija »Dotaknite se za iskanje« v celoti onemogočena. - - Če ta pravilnik ni nastavljen, je enako, kot če je funkcija omogočena. Glejte zgornji opis.</translation> <translation id="285480231336205327">Omogoči visokokontrastni način</translation> <translation id="2854919890879212089">Povzroči, da <ph name="PRODUCT_NAME" /> kot privzeto možnost v predogledu tiskanja uporabi sistemsko privzet tiskalnik namesto nazadnje uporabljenega tiskalnika. @@ -1671,7 +1664,6 @@ Če pravilnika ne nastavite, je izgovorjava onemogočena, ko je prvič prikazan prijavni zaslon. Uporabniki lahko kadar koli omogočijo ali onemogočijo izgovorjavo, pri čemer se njeno stanje na prijavnem zaslonu ohrani med uporabniki.</translation> <translation id="5868414965372171132">Konfiguracija omrežja na ravni uporabnika</translation> -<translation id="588135807064822874">Omogočanje funkcije Iskanje z dotikom</translation> <translation id="5883015257301027298">Privzeta nastavitev piškotkov</translation> <translation id="5887414688706570295">Nastavi predpono »TalkGadget«, ki jo bodo uporabljali gostitelji oddaljenega dostopa, in prepreči uporabnikom njeno spreminjanje. @@ -1944,11 +1936,6 @@ <translation id="6689792153960219308">Poročanje o stanju strojne opreme</translation> <translation id="6698071416141001300">Označevanje ogroženih računov, ki uporabljajo zaščito z geslom, z zastavico sproži vnovična uporaba gesla</translation> <translation id="6699880231565102694">Omogočanje preverjanja pristnosti v dveh korakih za gostitelje oddaljenega dostopa</translation> -<translation id="6702257826895463228">Spletnim mestom dovoli hkratno premikanje in odpiranje pojavnih oken. - - Podrobno pojasnilo je na strani https://www.chromestatus.com/features/5675755719622656. - Če je ta pravilnik omogočen, bo spletnim mestom dovoljeno hkratno premikanje in odpiranje novih oken/zavihkov. - Če je ta pravilnik onemogočen ali ni nastavljen, spletnim mestom ne bo dovoljeno hkratno premikanje in odpiranje novih oken/zavihkov.</translation> <translation id="6724842112053619797">Če omogočite to nastavitev, se podatki, shranjeni v profilih izdelka <ph name="PRODUCT_NAME" />, kot so zaznamki, podatki samodejnega izpolnjevanja, gesla in drugi podatki, prav tako zapišejo v datoteko, shranjeno v mapo uporabniškega profila za gostovanje ali na lokacijo, ki jo določi skrbnik s pravilnikom <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Če omogočite ta pravilnik, onemogočite sinhronizacijo z oblakom. Če je ta pravilnik onemogočen ali ni nastavljen, se uporabijo samo lokalni profili.
diff --git a/components/policy/resources/policy_templates_sr.xtb b/components/policy/resources/policy_templates_sr.xtb index 6e0433a5..bd4bf5b 100644 --- a/components/policy/resources/policy_templates_sr.xtb +++ b/components/policy/resources/policy_templates_sr.xtb
@@ -27,6 +27,7 @@ Ако сте подесили ове смернице, екран за пријављивање ће се увек приказивати на локалитету који је одређен првом вредношћу ових смерница (смернице се дефинишу као листа за одржавање компатибилности унапред). Ако ове смернице нису подешене или су подешене на празну листу, екран за пријављивање ће се приказивати на локалитету последње корисничке сесије. Ако су ове смернице подешене на вредност која није важећи локалитет, екран за пријављивање ће се приказивати на заменском локалитету (тренутно, en-US).</translation> <translation id="1062011392452772310">Омогућавање даљинске потврде за уређај</translation> <translation id="1062407476771304334">Замени</translation> +<translation id="1079801999187584280">Онемогућава употребу алатки за програмере</translation> <translation id="109166998561583554">Покретач за означавање налога чија је заштита лозинком угрожена</translation> <translation id="1093082332347834239">Ако је ово подешавање омогућено, покренуће се хост за даљинску помоћ са дозволама <ph name="UIACCESS_PERMISSION_NAME" />. То ће омогућити удаљеним корисницима да врше интеракцију са подигнутим прозорима на радној површини локалног корисника. @@ -79,6 +80,7 @@ Фактор промена мора да буде 100% или више.</translation> <translation id="131353325527891113">Приказивање корисничких имена на екрану за пријављивање</translation> +<translation id="1325295456374328159">Конфигуришу дозвољене локалитете у корисничкој сесији</translation> <translation id="1327466551276625742">Омогући упит за конфигурацију мреже у офлајн режиму</translation> <translation id="1330145147221172764">Омогући тастатуру на екрану</translation> <translation id="13356285923490863">Назив смерница</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Одлучивање о поузданости застареле инфраструктуре јавног кључа корпорације Symantec</translation> <translation id="1393485621820363363">Омогућени штампачи за уређаје предузећа</translation> <translation id="1397855852561539316">URL адреса за предлог подразумеваног добављача претраге</translation> +<translation id="1424081297104898791">Омогућавају вам да контролишете где се могу користити алатке за програмере. + + Ако подесите ове смернице на „DeveloperToolsDisallowedForForceInstalledExtensions“ (вредност 0, која је подразумевана за пословне кориснике), алаткама за програмере и JavaScript конзоли се, у принципу, може приступити, али не у контексту додатака које инсталирају смернице за предузећа. + Ако подесите ове смернице на „DeveloperToolsAllowed“ (вредност 1, која је подразумевана за кориснике којима се не управља), алаткама за програмере и JavaScript конзоли се може приступити и они се могу користити у свим контекстима, укључујући контекст додатака које инсталирају смернице за предузећа. + Ако подесите ове смернице на „DeveloperToolsDisallowed“ (вредност 2), алаткама за програмере се не може приступити нити се више могу проверавати елементи веб-сајтова. Онемогућавају се тастерске пречице и ставке менија или контекстуалних менија за отварање алатки за програмере или JavaScript конзоле. + Ако подесите застареле смернице DeveloperToolsDisabled на Тачно, вредност ових смерница се игнорише и алатке за програмере се онемогућавају.</translation> <translation id="1426410128494586442">Да</translation> <translation id="1427655258943162134">Адреса или URL адреса прокси сервера</translation> <translation id="1435659902881071157">Конфигурација мреже на нивоу уређаја</translation> @@ -205,6 +213,7 @@ <translation id="1803646570632580723">Листа закачених апликација које треба приказати у покретачу</translation> <translation id="1808715480127969042">Блокирај колачиће на овим сајтовима</translation> <translation id="1810261428246410396">Дозвољавају коришћење Инстант привезивања.</translation> +<translation id="1826282708349731794">Контролишу како чишћење Chrome-а пријављује податке Google-у</translation> <translation id="1827523283178827583">Користи фиксне прокси сервере</translation> <translation id="1843117931376765605">Учесталост освежавања за смернице корисника</translation> <translation id="1844620919405873871">Конфигурише смернице у вези са брзим откључавањем.</translation> @@ -606,6 +615,7 @@ Ове смернице не утичу на то да ли корисници могу да конфигуришу штампаче на појединачним уређајима. Оне су додатне смернице за конфигурацију штампача коју обављају појединачни корисници. </translation> <translation id="2633084400146331575">Омогући говорне повратне информације</translation> +<translation id="2640843331263301324">Омогућавају чишћење Chrome-а у Windows-у</translation> <translation id="2646290749315461919">Омогућава вам да подесите да ли је веб-сајтовима дозвољено да прате корисникову физичку локацију. Праћење корисникове физичке локације може да се дозволи подразумевано, да се забрани подразумевано или корисник сваки пут може да добије упит када неки веб-сајт затражи физичку локацију. Ако ове смернице нису подешене, смернице „AskGeolocation“ ће се користити и корисник ће то моћи да промени.</translation> @@ -675,13 +685,6 @@ Ако се ове смернице користе, само штампачи са ИД-овима који се подударају са вредностима наведеним у овим смерницама су доступни корисницима. ИД-ови морају да се подударају са пољима „id“ или „guid“ у датотеци наведеној у смерницама <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Омогућавају функцију Додирните за претрагу у приказу садржаја производа <ph name="PRODUCT_NAME" />. - - Ако омогућите ово подешавање, кориснику ће бити доступна функција Додирните за претрагу, па ће моћи да изабере да је укључи или искључи. - - Ако онемогућите ово подешавање, функција Додирните за претрагу ће у потпуности бити онемогућена. - - Ако не подесите ове смернице, то је исто као да су омогућене, па погледајте опис изнад.</translation> <translation id="285480231336205327">Омогући режим високог контраста</translation> <translation id="2854919890879212089">Омогућава да <ph name="PRODUCT_NAME" /> користи подразумевани системски штампач као подразумевани избор у Прегледу пре штампања уместо последњег коришћеног штампача. @@ -1257,12 +1260,14 @@ <translation id="4554651132977135445">Режим за обраду унутрашње повратне функције</translation> <translation id="4555850956567117258">Омогућавање даљинске потврде за корисника</translation> <translation id="4557134566541205630">URL странице Нова картица подразумеваног добављача претраге</translation> +<translation id="4567137030726189378">Омогућава употребу алатки за програмере</translation> <translation id="4600786265870346112">Омогућавање великог показивача</translation> <translation id="4604931264910482931">Конфигурисање црне листе за изворну размену порука</translation> <translation id="4613508646038788144">Ако подесите смернице на Нетачно, софтвер независног произвођача ће моћи да умеће извршни кôд у Chrome процесе. Ако не подесите смернице или их подесите на Тачно, софтвер независног произвођача неће моћи да умеће извршни кôд у Chrome процесе.</translation> <translation id="4617338332148204752">Прескочи проверу метаознака у <ph name="PRODUCT_FRAME_NAME" />-у</translation> <translation id="4625915093043961294">Конфигуриши белу листу за инсталацију додатака</translation> <translation id="4632343302005518762">Дозволи <ph name="PRODUCT_FRAME_NAME" />-у да рукује наведеним типовима садржаја</translation> +<translation id="4632566332417930481">Онемогућава употребу алатки за програмере у додацима које инсталирају смернице за предузећа и омогућава њихову употребу у другим контекстима</translation> <translation id="4633786464238689684">Мењају подразумевано понашање тастера из горњег реда у понашање функцијских тастера. Ако подесите ове смернице на Тачно, горњи ред тастера на тастатури ће подразумевано обављати команде функцијских тастера. Морате да притиснете тастер за претрагу да би се опет понашали као тастери за медије. @@ -1535,10 +1540,14 @@ Ако нису подешене, корисник ће можда бити упитан да ли жели да га увезе или ће се увоз аутоматски обавити.</translation> <translation id="5423197884968724595">Име Android WebView ограничења:</translation> +<translation id="5442026853063570579">Ове смернице контролишу и приступ Android опцијама за програмера. Ако ове смернице подесите на „DeveloperToolsDisallowed“ (вредност 2), корисници не могу да приступају опцијама за програмера. Ако ове смернице подесите на другу вредност или их не подесите, корисници могу да приступају опцијама за програмера ако седам пута додирну број верзије у апликацији Android подешавања.</translation> <translation id="5447306928176905178">Омогући пријављивање информација о меморији (величина JS динамичке меморије) на страници (застарело)</translation> <translation id="5457065417344056871">Омогући режим госта у прегледачу</translation> <translation id="5457924070961220141">Омогућава вам да конфигуришете подразумевани HTML приказивач када је <ph name="PRODUCT_FRAME_NAME" /> инсталиран. Подразумевано подешавање када ове смернице нису подешене је да се прегледачу хоста дозволи приказивање, али можете опционално да ово замените и да <ph name="PRODUCT_FRAME_NAME" /> подразумевано приказује HTML странице.</translation> +<translation id="5459155981813668716">Конфигуришу локалитете на којима <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" /> се пребацује на прву важећу вредност коју наводе ове смернице или на резервни локалитет (тренутно је то en-US) ако ове смернице садрже само неважеће локалитете.</translation> <translation id="5464816904705580310">Конфигуришите подешавања за кориснике којима се управља.</translation> <translation id="546726650689747237">Време до затамњивања екрана када је уређај прикључен на струју</translation> <translation id="5469484020713359236">Омогућава вам да подесите листу образаца URL адреса који наводе сајтове којима је дозвољено да постављају колачиће. @@ -1660,7 +1669,6 @@ Ако не подесите ове смернице, говорне повратне информације ће бити онемогућене када се екран за пријављивање прикаже по први пут. Корисници ће моћи да омогуће или онемогуће говорне повратне информације у било ком тренутку и њихов статус на екрану за пријављивање ће бити трајан за кориснике.</translation> <translation id="5868414965372171132">Конфигурација мреже на нивоу корисника</translation> -<translation id="588135807064822874">Омогући Додирни за претрагу</translation> <translation id="5883015257301027298">Подразумевано подешавање за колачиће</translation> <translation id="5887414688706570295">Конфигурише TalkGadget префикс који ће користити хостови са даљинским приступом и спречава кориснике да га промене. @@ -1764,6 +1772,7 @@ <translation id="6036523166753287175">Омогући прелазак заштитног зида са хоста са даљинским приступом</translation> <translation id="6070667616071269965">Распореди на тастатури на екрану за пријављивање на уређају</translation> <translation id="6074963268421707432">Не дозволи да било који сајт приказује обавештења на рачунару</translation> +<translation id="6074964551275531965">Подешавају временски период за обавештења о ажурирањима</translation> <translation id="6076099373507468537">Дефинишу листу USB уређаја којима је дозвољено да се одвоје од свог управљачког програма за језгро да би могли да се користе преко API-ја chrome.usb директно унутар веб-апликације. Уноси су парови Идентификатора продавца USB-а и Идентификатора производа како би се одређени хардвер идентификовао. Ако ове смернице нису конфигурисане, листа одвојивих USB уређаја ће бити празна.</translation> @@ -1842,6 +1851,11 @@ Ако омогућите ово подешавање или не подесите вредност, корисник ће и даље контролисати Аутоматско попуњавање. Ово ће му омогућити да конфигурише профиле Аутоматског попуњавања и укључује и искључује Аутоматско попуњавање по сопственом нахођењу.</translation> <translation id="6394350458541421998">Ове смернице су укинуте почев од верзије 29 <ph name="PRODUCT_OS_NAME" />-а. Уместо њих користите смернице PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Одјави корисника</translation> +<translation id="6412477120967771054">Ако подесите ове смернице на Нетачно, онемогућавате чишћењу Chrome-а да скенира систем у потрази за нежељеним софтвером и да обавља чишћења. Ручно покретање чишћења Chrome-а помоћу chrome://settings/cleanup је онемогућено. + + Ако подесите ове смернице на Тачно или их не подесите, чишћење Chrome-а повремено скенира систем у потрази за нежељеним софтвером и ако га пронађе, пита корисника да ли жели да га уклони. Ручно покретање чишћења Chrome-а помоћу chrome://settings је омогућено. + + Ове смернице нису доступне у инстанцама Windows-а које нису придружене неком <ph name="MS_AD_NAME" /> домену.</translation> <translation id="6417861582779909667">Омогућава вам да подесите листу образаца URL адреса који наводе сајтове којима није дозвољено да постављају колачиће. Ако ове смернице нису подешене, глобална подразумевана вредност биће коришћена за све сајтове из смерница „DefaultCookiesSetting“, уколико су оне подешене, а ако нису, из личне конфигурације корисника.</translation> @@ -1864,6 +1878,13 @@ Да бисте контролисали којим веб-сајтовима је дозвољено да покрећу Flash, погледајте смернице „DefaultPluginsSetting“, „PluginsAllowedForUrls“ и „PluginsBlockedForUrls“. Ако је ово подешавање онемогућено или није подешено, Flash садржај из других извора или садржај мањих димензија може да буде блокиран.</translation> +<translation id="6535639183431116351">Ове смернице су застареле у M68, користите DeveloperToolsAvailability. + + Онемогућавају алатке за програмере и JavaScript конзолу. + + Ако омогућите ово подешавање, алаткама за програмере се не може приступити нити се више могу проверавати елементи веб-сајтова. Онемогућавају се тастерске пречице и ставке менија или контекстуалних менија за отварање алатки за програмере или JavaScript конзоле. + + Ако онемогућите ову опцију или је не подесите, корисник може да користи алатке за програмере и JavaScript конзолу.</translation> <translation id="653608967792832033">Наводе период без корисничких уноса после кога се екран закључава када се користи батерија. Када су ове смернице подешене на вредност већу од нуле, оне наводе период у коме корисник треба да буде неактиван да би <ph name="PRODUCT_OS_NAME" /> закључао екран. @@ -1929,11 +1950,6 @@ <translation id="6689792153960219308">Шаљи извештај о статусу хардвера</translation> <translation id="6698071416141001300">Покретач за означавање налога чија је заштита лозинком угрожена се активира када се лозинка поново користи</translation> <translation id="6699880231565102694">Омогућавање потврде аутентичности помоћу два фактора за хостове са даљинским приступом</translation> -<translation id="6702257826895463228">Дозвољавају сајтовима да се истовремено померају и отварају искачуће прозоре. - - Пуно објашњење потражите на https://www.chromestatus.com/features/5675755719622656. - Ако омогућите ове смернице, сајтовима ће бити дозвољено да се истовремено померају и отварају нове прозоре/картице. - Ако онемогућите или не подесите ове смернице, сајтовима неће бити дозвољено да се истовремено померају и отварају нови прозор/картицу.</translation> <translation id="6724842112053619797">Ако омогућите ово подешавање, подешавања сачувана на <ph name="PRODUCT_NAME" /> профилима, нпр. обележивачи, подаци за аутоматско попуњавање, лозинке итд. ће бити уписана и у датотеку која се чува у директоријуму корисничког профила Роминг или на локацији коју наведе администратор путем <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> смерница. Ако омогућите ове смернице, онемогућићете синхронизовање у клауду. Ако онемогућите ове смернице или их оставите неподешене, користиће се само стандардни локални профили. @@ -2298,6 +2314,7 @@ Погледајте https://developers.google.com/safe-browsing за више информација о Безбедном прегледању.</translation> <translation id="7643883929273267746">Ограничи налоге који су видљиви у прегледачу <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Одређују да ли треба омогућити роминг за податке за уређај. Ако буду подешене на Тачно, роминг за податке ће бити дозвољен. Ако не буду конфигурисане или буду подешене на Нетачно, роминг за податке неће бити доступан.</translation> +<translation id="7673194325208122247">Временски период (у милисекундама)</translation> <translation id="7683777542468165012">Динамичко освежавање смерница</translation> <translation id="7694807474048279351">Заказивање аутоматског поновног покретања након примене ажурирања за <ph name="PRODUCT_OS_NAME" />. @@ -2430,6 +2447,13 @@ Ако је ово подешавање онемогућено, а одлазне UDP везе филтрира заштитни зид, онда овај уређај може да се повеже само са уређајима хостовима у оквиру локалне мреже.</translation> <translation id="7976157349247117979">Назив одредишта за <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Ако не подесите ове смернице и ако чишћење Chrome-а открије нежељени софтвер, оно може да пријави Google-у метаподатке о скенирању у складу са смерницама које подеси SafeBrowsingExtendedReportingEnabled. Чишћење Chrome-а после тога пита корисника да ли жели да очисти нежељени софтвер. Корисник може да одабере да дели резултате чишћења са Google-ом како би помогао са будућим откривањем нежељеног софтвера. Ови резултати садрже метаподатке о датотекама и кључеве регистра у складу са описом наведеним у белој књизи за приватност у Chrome-у. + + Ако подесите ове смернице на Нетачно и ако чишћење Chrome-а открије нежељени софтвер, оно не пријављује Google-у метаподатке о скенирању, што замењује смернице које подеси SafeBrowsingExtendedReportingEnabled. Чишћење Chrome-а пита корисника да ли жели да очисти нежељени софтвер. Резултати чишћења се не пријављују Google-у и корисник нема опцију да то уради. + + Ако подесите ове смернице на Тачно и ако чишћење Chrome-а открије нежељени софтвер, оно може да пријави Google-у метаподатке о скенирању у складу са смерницама које подеси SafeBrowsingExtendedReportingEnabled. Чишћење Chrome-а пита корисника да ли жели да очисти нежељени софтвер. Резултати чишћења се пријављују Google-у и корисник нема опцију да то спречи. + + Ове смернице нису доступне у инстанцама Windows-а које нису придружене неком <ph name="MS_AD_NAME" /> домену.</translation> <translation id="7978060394348264922"> Погледајте подешавање смерница IsolateOrigins да бисте постигли најбољи учинак у погледу изолације и ограниченог утицаја на кориснике коришћењем @@ -2566,6 +2590,7 @@ <translation id="8300455783946254851">Онемогућавају синхронизовање са Google диском у <ph name="PRODUCT_OS_NAME" /> апликацији Датотеке када се користи мобилна веза и када су подешене на Тачно. У том случају, подаци се синхронизују са Google диском само када је веза успостављена преко Wi-Fi-ја или етернета. Ако нису подешене или су подешене на Нетачно, корисници ће моћи да преносе датотеке на Google диск преко мобилних веза.</translation> +<translation id="8300992833374611099">Контролишу где се могу користити алатке за програмере</translation> <translation id="8312129124898414409">Омогућава вам да подесите да ли је веб-сајтовима дозвољено да користе генерисање шифара. Коришћење генерисања шифара може да буде дозвољено или забрањено за све веб-сајтове. Ако ове смернице нису подешене, користиће се смернице „BlockKeygen“ и корисник ће моћи да их промени.</translation> @@ -2802,6 +2827,11 @@ <translation id="9035964157729712237">ИД-ови додатака које треба изузети са црне листе</translation> <translation id="9042911395677044526">Омогућава да се конфигурација мреже примени по кориснику уређаја <ph name="PRODUCT_OS_NAME" />. Конфигурација мреже је стринг са JSON форматирањем као што је дефинисано форматом Open Network Configuration описаним на адреси <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Одредите да ли видео активности утичу на управљање струјом</translation> +<translation id="9085839450090699752">Омогућавају вам да подесите временски период, у милисекундама, током ког корисници добијају обавештење да морају поново да покрену <ph name="PRODUCT_NAME" /> или да рестартују <ph name="PRODUCT_OS_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 милисекунди (недељу дана) за прегледаче.</translation> <translation id="9088433379343318874">Омогући добављача садржаја за корисника под надзором</translation> <translation id="9088444059179765143">Конфигуриши метод аутоматског откривања временске зоне</translation> <translation id="9096086085182305205">Бела листа сервера за потврду аутентичности</translation>
diff --git a/components/policy/resources/policy_templates_sv.xtb b/components/policy/resources/policy_templates_sv.xtb index aada01579..6b63a6d3 100644 --- a/components/policy/resources/policy_templates_sv.xtb +++ b/components/policy/resources/policy_templates_sv.xtb
@@ -27,6 +27,7 @@ När principen har ställts in visas inloggningsskärmen alltid på det språk som har angetts först i principen (definitionen ges i form av en lista så att principen ska vara kompatibel med framtida versioner). Om principen inte har ställts in eller om en tom lista har angetts visas inloggningsskärmen på det språk som användes vid den senaste användarsessionen. Om principen har ställts in på ett ogiltigt värde används reservspråkkoden (för närvarande en-US) för inloggningsskärmen.</translation> <translation id="1062011392452772310">Aktivera fjärrattestering för enheten</translation> <translation id="1062407476771304334">Ersätt</translation> +<translation id="1079801999187584280">Tillåt inte använding av Utvecklarverktyg</translation> <translation id="109166998561583554">Lösenordsskyddets utlösare för när en varning om att kontot är utsatt för risk ska visas</translation> <translation id="1093082332347834239">Om inställningen är aktiverad körs fjärrhjälpsvärden i en process med behörigheter för <ph name="UIACCESS_PERMISSION_NAME" />. Det innebär att fjärranvändare kan interagera med fönster som öppnats med högre behörighet på den lokala användarens dator. @@ -79,6 +80,7 @@ Skalningsfaktorn måste vara 100 % eller mer.</translation> <translation id="131353325527891113">Visa användarnamn på inloggningsskärmen</translation> +<translation id="1325295456374328159">Konfigurera de tillåtna språkkoderna i en användarsession</translation> <translation id="1327466551276625742">Aktivera uppmaning att konfigurera nätverk om enheten är offline</translation> <translation id="1330145147221172764">Aktivera skärmtangentbordet</translation> <translation id="13356285923490863">Policynamn</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Om Symantec Corporations äldre PKI-infrastruktur ska vara betrodd eller inte</translation> <translation id="1393485621820363363">Aktiverade skrivare för företagsenheter</translation> <translation id="1397855852561539316">Standardsökleverantörens förslagsadress</translation> +<translation id="1424081297104898791">Gör det möjligt att styra om utvecklarverktyg kan användas. + + Om DeveloperToolsDisallowedForForceInstalledExtensions (värde 0, som är standardinställningen för företagsanvändare) anges för principen beviljas allmän åtkomst till utveckarverktygen och JavaScript-konsolen, men åtkomst för tillägg som har installerats via en företagsprincip beviljas inte. + Om DeveloperToolsAllowed (värde 1, som är standardinställningen för ohanterade användare) anges för principen beviljas åtkomst till Utvecklarverktygen och JavaScript-konsolen i alla sammanhang, inklusive tillägg som har installerats via en företagsprincip. + Om DeveloperToolsDisallowed (värde 2) anges för principen beviljas inte åtkomst till utvecklarverktygen och webbplatselement kan inte längre kontrolleras. Alla kortkommandon och meny- eller snabbmenyalternativ som försöker öppna utvecklarverktygen eller JavaScript-konsolen inaktiveras. + Om den äldre principen DeveloperToolsDisabled är inställd på sant ignoreras principens värde och utvecklarverktygen inaktiveras.</translation> <translation id="1426410128494586442">Ja</translation> <translation id="1427655258943162134">Proxyserverns adress eller webbadress</translation> <translation id="1435659902881071157">Nätverkskonfiguration på enhetsnivå</translation> @@ -207,6 +215,7 @@ <translation id="1803646570632580723">Lista över fasta appar som ska visas i startfönstret</translation> <translation id="1808715480127969042">Blockera cookies på dessa webbplatser</translation> <translation id="1810261428246410396">Tillåt att direktinternetdelning används.</translation> +<translation id="1826282708349731794">Styr hur Chrome Cleanup rapporterar data till Google</translation> <translation id="1827523283178827583">Använd fasta proxyservrar</translation> <translation id="1843117931376765605">Uppdateringsfrekvens för användarpolicy</translation> <translation id="1844620919405873871">Konfigurerar principer som är relaterade till snabb upplåsning.</translation> @@ -610,6 +619,7 @@ Principen påverkar inte om användarna får konfigurera skrivare på enskilda enheter. Den är tänkt som ett komplement till enskilda användares skrivarkonfigurationer. </translation> <translation id="2633084400146331575">Aktivera talad feedback.</translation> +<translation id="2640843331263301324">Aktiverar Chrome Cleanup i Windows</translation> <translation id="2646290749315461919">Policyn gör att du kan ställa in om webbplatser får spåra användarnas fysiska plats. Att spåra användarnas fysiska plats kan vara tillåtet som standard, inte tillåtet som standard eller användaren kan bli tillfrågad varje gång en webbplats efterfrågar den fysiska platsen. Om policyn inte har angetts används AskGeolocation och användaren kan ändra inställningen.</translation> @@ -679,13 +689,6 @@ Om principen används är bara de skrivare vars id matchar något av principens värden tillgängliga för användaren. Id:na måste svara mot id- eller guid-fälten i den fil som angetts i <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Aktiverar tillgången till Tryck för att söka i innehållsvyn i <ph name="PRODUCT_NAME" />. - - Om inställningen aktiveras blir Tryck för att söka tillgängligt för användaren som sedan kan välja att aktivera eller inaktivera funktionen. - - Om du inaktiverar inställningen inaktiveras Tryck för att söka helt och hållet. - - Om principen inte ges något värde innebär det att den är aktiverad (se beskrivningen ovan).</translation> <translation id="285480231336205327">Aktivera läge för hög kontrast</translation> <translation id="2854919890879212089">Gör att datorns standardskrivare används som standardval för Förhandsgranskning i <ph name="PRODUCT_NAME" /> i stället för den senast använda skrivaren. @@ -1268,12 +1271,14 @@ <translation id="4554651132977135445">Behandlingsläge för användarprincip-loopback</translation> <translation id="4555850956567117258">Aktivera fjärrattestering för användaren</translation> <translation id="4557134566541205630">Webbadress för standardsökleverantören av ny fliksida</translation> +<translation id="4567137030726189378">Tillåt användning av utvecklarverktygen</translation> <translation id="4600786265870346112">Aktivera den stora markören</translation> <translation id="4604931264910482931">Konfigurera svarta listan för Native Messaging</translation> <translation id="4613508646038788144">Om principen är inställd på falskt är det tillåtet för programvara från tredje part att injicera körbar kod i Chrome-processer. Om principen har lämnats utan inställning eller ställts in på sant blockeras injicering av körbar kod i Chome-processer från tredjepartsprogram.</translation> <translation id="4617338332148204752">Hoppa över kontroll av metataggar i <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Konfigurera vitlista för tilläggsinstallation</translation> <translation id="4632343302005518762">Tillåt att <ph name="PRODUCT_FRAME_NAME" /> hanterar innehållstyperna som anges</translation> +<translation id="4632566332417930481">Tillåt inte användning av utvecklarverktygen i tillägg som har installerats via en företagsprincip. Tillåt användning av utvecklarverktygen i andra sammanhang.</translation> <translation id="4633786464238689684">Ändrar standardbeteendet för tangenter på den översta raden till funktionstangenter. Om principen anges som true fungerar tangentbordets översta tangentrad som tangenter med funktionskommandon som standard. Tryck på söktangenten för att ändra tillbaka funktionen till medieknappar. @@ -1548,10 +1553,14 @@ Om policyn inte är inställd kan användaren tillfrågas om importen ska göras eller inte, eller så kan importen göras automatiskt.</translation> <translation id="5423197884968724595">Begränsningsnamn för Android WebView:</translation> +<translation id="5442026853063570579">Den här principen styr även åtkomsten till Androids utvecklaralternativ. Om DeveloperToolsDisallowed (värde 2) anges för principen kan användarna inte öppna utvecklaralternativen. Om ett annat värde anges eller värdet lämnas tomt kan användarna öppna utvecklaralternativen genom att trycka sju gånger på versionsnumret i appen Inställningar i Android.</translation> <translation id="5447306928176905178">Aktivera minnesrapportering (heap-storlek för JavaScript) på sidan (föråldrad)</translation> <translation id="5457065417344056871">Använda gästläget i webbläsaren</translation> <translation id="5457924070961220141">Policyn gör att du kan konfigurera standardrenderare för HTML när <ph name="PRODUCT_FRAME_NAME" /> installeras. Standardinställningen som används om policyn inte ställs in är att tillåta att värdwebbläsaren utför renderingen, men du kan åsidosätta detta och låta <ph name="PRODUCT_FRAME_NAME" /> rendera HTML-sidor som standard.</translation> +<translation id="5459155981813668716">Konfigurerar de språkkoder som <ph name="PRODUCT_OS_NAME" /> kan visas i. + + Om principen används kan användare endast ställa in <ph name="PRODUCT_OS_NAME" /> på att visas i någon av de språkkoder som anges i denna princip. Om principen inte används eller om en tom lista anges för principen kan <ph name="PRODUCT_OS_NAME" /> visas i alla språkkoder som stöds. Om en lista med ogiltiga värden anges för principen ignoreras alla värden. Om en användare tidigare har ställt in <ph name="PRODUCT_OS_NAME" /> på att visas i en språkkod som inte tillåts i denna princip byts den visade språkkoden ut mot en tillåten språkkoden nästa gång användaren loggar in. Om användaren har konfigurerat föredragna språkkoder och en av de föredragna språkkoderna tillåts i denna princip ändras <ph name="PRODUCT_OS_NAME" /> till denna språkkod. I annat fall ändras <ph name="PRODUCT_OS_NAME" /> till det första giltiga värdet i denna princip eller till en alternativ språkkod (för närvarande en-US) om principen endast innehåller ogiltiga värden.</translation> <translation id="5464816904705580310">Konfigurera inställningar för hanterade användare.</translation> <translation id="546726650689747237">Skärmdämpningstid när enheten är ansluten till elnätet</translation> <translation id="5469484020713359236">Policyn gör att du kan ange en lista med webbadressmönster som anger webbplatser som får spara cookies. @@ -1673,7 +1682,6 @@ Om den här principen inte anges är talad feedback inaktiverad första gången som inloggningsskärmen visas. Användarna kan aktivera eller inaktivera talad feedback när som helst och funktionens status på inloggningsskärmen sparas.</translation> <translation id="5868414965372171132">Nätverkskonfiguration på användarnivå</translation> -<translation id="588135807064822874">Aktivera Tryck för att söka</translation> <translation id="5883015257301027298">Standardinställning för cookies</translation> <translation id="5887414688706570295">Konfigurerar prefixet TalkGadget som kommer att användas av fjärråtkomstvärdar och förhindrar att användare ändrar det. @@ -1778,6 +1786,7 @@ <translation id="6036523166753287175">Aktivera brandväggspassage från fjärråtkomstsvärd</translation> <translation id="6070667616071269965">Tangentbordslayouter för enhetens inloggningsskärm</translation> <translation id="6074963268421707432">Tillåt inte att någon webbplats visar aviseringar på skrivbordet</translation> +<translation id="6074964551275531965">Ange tidsperiod för aviseringar om uppdatering</translation> <translation id="6076099373507468537">Definierar vilka USB-enheter som får kopplas bort från sina kärndrivrutiner så att de kan användas direkt i en webbapp med API:et chrome.usb. Posterna i listan består av id-par för USB, leverantörs-id och produkt-id, som tillsammans identifierar maskinvaran. Om principen inte har konfigurerats är listan med frånkopplingsbara USB-enheter tom.</translation> @@ -1860,6 +1869,11 @@ Om du aktiverar inställningen eller inte anger något värde kan användarna styra autofyll. De kan konfigurera autofyllprofiler och aktivera och inaktivera autofyllfunktionen när de vill.</translation> <translation id="6394350458541421998">Den här principen finns inte med i <ph name="PRODUCT_OS_NAME" /> version 29 och senare. Använd principen PresentationScreenDimDelayScale i stället.</translation> <translation id="6401669939808766804">Logga ut användaren</translation> +<translation id="6412477120967771054">Om principen är inställd på falskt förhindras Chrome Cleanup från att genomsöka systemet efter oönskad programvara och genomföra rensning. Att starta Chrome Cleanup manuellt via chrome://settings/cleanup har inaktiverats. + + Om den är inställd på sant eller inte inställd alls genomsöker Chrome Cleanup systemet efter oönskad programvara regelbundet. Om något upptäcks blir användaren tillfrågad om de vill ta bort det. Att starta Chrome Cleanup manuellt via chrome://settings har aktiverats. + + Denna princip är inte tillgänglig på Windows-instanser som inte är kopplade till en <ph name="MS_AD_NAME" /> domän.</translation> <translation id="6417861582779909667">Policyn gör att du kan ställa in en lista med webbadressmönster som inte får spara cookies. Om policyn inte anges används det globala standardvärdet för alla webbplatser, antingen från policyn DefaultCookiesSetting om den används eller användarens personliga konfiguration.</translation> @@ -1882,6 +1896,13 @@ Du styr vilka webbplatser som Flash får köras på med principerna DefaultPluginsSetting, PluginsAllowedForUrls och PluginsBlockedForUrls. Om den här inställningen har inaktiverats eller lämnats orörd kan Flash-innehåll från andra domäner eller småskaligt innehåll blockeras.</translation> +<translation id="6535639183431116351">Den här principen har fasats ut i M68. Använd DeveloperToolsAvailability i stället. + + Principen inaktiverar utvecklarverktygen och JavaScript-konsolen. + + Om du aktiverar inställningen går det inte att använda utvecklarverktygen och det går inte att inspektera webbplatselement. Kortkommandon och alternativ för att öppna utvecklarverktygen eller JavaScript-konsolen på menyer och snabbmenyer inaktiveras. + + Om det här alternativet inaktiveras eller inte anges kan utvecklarverktygen och JavaScript-konsolen användas.</translation> <translation id="653608967792832033">Anger efter hur lång tid utan indata från användaren som skärmen ska låsas när enheten går på batteri. Om policyns värde är större än noll anger det hur länge användaren kan vara inaktiv innan <ph name="PRODUCT_OS_NAME" /> låser skärmen. @@ -1947,11 +1968,6 @@ <translation id="6689792153960219308">Rapportera maskinvarustatus</translation> <translation id="6698071416141001300">Lösenordsskyddets varningar om att kontot är utsatt för risk utlöses av att lösenordet återanvänds</translation> <translation id="6699880231565102694">Aktivera tvåfaktorsautentisering för fjärråtkomstvärdar</translation> -<translation id="6702257826895463228">Tillåter att webbplatser navigerar och öppnar popup-fönster samtidigt. - - En fullständig förklaring finns på https://www.chromestatus.com/features/5675755719622656. - Om den här policyn är aktiverad kan webbplatser samtidigt navigera och öppna nya fönster eller flikar. - Om den här policyn är inaktiverad eller inte anges kan webbplatser inte navigera och öppna nya fönster eller flikar samtidigt.</translation> <translation id="6724842112053619797">Om du aktiverar den här inställningen skrivs även inställningar för <ph name="PRODUCT_NAME" />-profiler (exempelvis bokmärken, autofylluppgifter och lösenord) till en fil som lagras i användarprofilmappen för roaming eller en plats som anges av administratören i principen <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Molnsynkronisering inaktiveras när principen aktiveras. Om den här principen är inaktiverad eller utan värde används endast vanliga lokala profiler. @@ -2317,6 +2333,7 @@ Mer information om Säker webbläsning finns på https://developers.google.com/safe-browsing.</translation> <translation id="7643883929273267746">Begränsa vilka konton som är synliga i <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Avgör om dataroaming ska vara tillåtet för enheten. Om värdet är sant är dataroaming tillåten. Om policyn inte är konfigurerad eller om värdet är falskt är dataroaming inte tillåten.</translation> +<translation id="7673194325208122247">Tidsperiod (millisekunder)</translation> <translation id="7683777542468165012">Dynamisk policyuppdatering</translation> <translation id="7694807474048279351">Schemalägg en automatisk omstart efter uppdatering av <ph name="PRODUCT_OS_NAME" />. @@ -2449,6 +2466,13 @@ Om inställningen är inaktiverad och utgående UDP-anslutningar filtreras av brandväggen kan den här datorn bara ansluta till värddatorer inom det lokala nätverket.</translation> <translation id="7976157349247117979">Namn på <ph name="PRODUCT_NAME" />-mål</translation> +<translation id="7977445800390854860">Om principen inte anges och Chrome Cleanup upptäcker oönskad programvara kan metadata om genomsökningen rapporteras till Google i enlighet med principer som anges i SafeBrowsingExtendedReportingEnabled. Chrome Cleanup frågar sedan om användaren vill rensa den oönskade programvaran. Användaren kan välja att dela resultaten från rensningen med Google för att förbättra framtida genomsökning. Resultaten innehåller metadata från filer och registernycklar i enlighet med dokumentationen om sekretess i Google Chrome. + + Om principen är inställd på falskt och Chrome Cleanup upptäcker oönskad programvara rapporteras metadata om genomsökningen till Google, och principer som anges i SafeBrowsingExtendedReportingEnabled åsidosätts. Chrome Cleanup frågar om användaren vill rensa den oönskade programvaran. Resultaten från rensningen rapporteras inte till Google och användaren får inte alternativet att göra det. + + Om principen är inställd på sant och Chrome Cleanup upptäcker oönskad programvara rapporteras inte metadata om genomsökningen till Google i enlighet med principer som anges i SafeBrowsingExtendedReportingEnabled. Chrome Cleanup frågar om användaren vill rensa den oönskade programvaran. Resultaten från rensningen rapporteras till Google och användaren får inte alternativet att förhindra det. + + Principen är inte tillgänglig på Windows-instanser som inte är kopplade till en <ph name="MS_AD_NAME" /> domän.</translation> <translation id="7978060394348264922"> Ta gärna en titt på principen IsolateOrigins också: du kan få det bästa av två världar, isolering och begränsad inverkan på användarna, genom att ange en @@ -2571,6 +2595,7 @@ <translation id="8300455783946254851">När inställningen här är Sant inaktiveras Google Drive-synkronisering i appen Filer i <ph name="PRODUCT_OS_NAME" /> när en mobilanslutning används. Data synkroniseras då med Google Drive endast vid anslutning via Wi-Fi eller Ethernet. Om ingen inställning görs eller om Falskt anges, kan användaren föra över filer till Google Drive via mobilanslutningar.</translation> +<translation id="8300992833374611099">Styr var Utvecklarverktyg kan användas</translation> <translation id="8312129124898414409">Gör att du kan ange om webbplatser får använda nyckelgenerering. Du kan antingen tillåta eller blockera användning av nyckelgenerering på alla webbplatser. Om du inte anger policyn används BlockKeygen och inställningen kan ändras av användaren.</translation> @@ -2808,6 +2833,11 @@ <translation id="9035964157729712237">Tilläggs-ID:n att undanta från svartlistan</translation> <translation id="9042911395677044526">Tillåter att en pushad nätverkskonfiguration används per användare på en <ph name="PRODUCT_OS_NAME" />-enhet. Nätverkskonfigurationen är en JSON-formaterad sträng som definieras av formatet för öppen nätverkskonfiguration som beskrivs på <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Ange om videoaktivitet påverkar energihanteringen</translation> +<translation id="9085839450090699752">Gör det möjlighet att ange en tidsperiod i millisekunder under vilken användare meddelas att <ph name="PRODUCT_NAME" /> eller <ph name="PRODUCT_OS_NAME" />-enheten måste startas om för att en vilande uppdatering ska börja gälla. + + Under den tiden visas upprepade uppmaningar om uppdatering. På <ph name="PRODUCT_OS_NAME" />-enheter visas en avisering om omstart i systemfältet när en uppgradering upptäcks. Aviseringen ändrar färg när halva aviseringsperioden har passerat och sedan en gång till när hela aviseringsperioden har passerat. I webbläsaren <ph name="PRODUCT_NAME" /> ändras appmenyn för att markera att en omstart behövs när en tredjedel av aviseringsperioden har passerat. Denna avisering ändrar färg när två tredjedelar av aviseringsperioden har passerat och sedan igen när hela aviseringsperioden har passerat. De ytterligare aviseringar som aktiveras via principen <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> för webbläsare följer samma schema. + + Om inget värde anges används standardperioden 345600000 millisekunder (fyra dagar) för <ph name="PRODUCT_OS_NAME" />-enheter och 604800000 millisekunder (en vecka) för webbläsare.</translation> <translation id="9088433379343318874">Aktiverar den kontrollerade användarens innehållsleverantör</translation> <translation id="9088444059179765143">Konfigurera metod för automatisk tidszonsangivelse</translation> <translation id="9096086085182305205">Vitlista för autentiseringsserver</translation>
diff --git a/components/policy/resources/policy_templates_sw.xtb b/components/policy/resources/policy_templates_sw.xtb index ade36041..729c401c 100644 --- a/components/policy/resources/policy_templates_sw.xtb +++ b/components/policy/resources/policy_templates_sw.xtb
@@ -661,13 +661,6 @@ Ikiwa sera hii inatumiwa, printa zenye vitambulisho vinavyolingana na thamani iliyo katika sera ndizo pekee zitakazopatikana kwa watumiaji. Ni lazima vitambulisho vilingane na sehemu za "kitambulisho" au "mwongozo" kwenye faili iliyobainishwa katika <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">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. - - Ukizima mipangilio hii, kipengele cha Gusa ili Utafute kitazimwa kabisa. - - Sera hii ikiachwa bila kuwekwa, ni sawa na kuwashwa, angalia maelezo yaliyo hapo juu.</translation> <translation id="285480231336205327">Wezesha modi ya juu ya kulinganua</translation> <translation id="2854919890879212089">Mipangilio hii husababisha <ph name="PRODUCT_NAME" /> kutumia printa chaguo-msingi ya mfumo kama uteuzi chaguo-msingi katika Onyesho la Kuchungulia la Printa badala ya printa iliyotumika hivi majuzi. @@ -1641,7 +1634,6 @@ Ukiweka sera hii, watumiaji wanaweza kuipuuza kwa muda kwa kuwasha au kuzima maoni yaliyotamkwa. Hata hivyo, uchaguzi wa mtumiaji sio wa kuendelea na chaguo-msingi hurejeshwa tena wakati wowote skrini ya kuingia katika akaunti inapoonekana upya au mtumiaji anaposalia kama hafanyi kitu kwenye skrini ya kuingia katika akaunti kwa dakika moja. Iwapo sera hii itawachwa bila kuwekwa, maoni yaliyotamkwa yatazimwa skrini ya kuingia katika akaunti itakapoonyeshwa kwanza. Watumiaji wanaweza kuwasha au kuzima maoni yaliyosemwa wakati wowote na hali yake kwenye skrini ya kuingia katika akaunti itakatalia kati ya watumiaji.</translation> <translation id="5868414965372171132">Usanidi mtandao wa kiwango cha mtumiaji</translation> -<translation id="588135807064822874">Washa kipengee cha Gusa ili Utafute</translation> <translation id="5883015257301027298">Mpangilio wa vidakuzi chaguo-msingi</translation> <translation id="5887414688706570295">Inasanidi kiambishi awali cha TalkGadget ambacho kitatumiwa na mpangishaji wa ufikivu wa mbali na huzuia watumiaji kukibadilisha. @@ -1910,11 +1902,6 @@ <translation id="6689792153960219308">Ripoti hali ya maunzi</translation> <translation id="6698071416141001300">Hali ya kuripoti hatari kwa ulinzi wa nenosiri la akaunti husababishwa na hatua ya kutumia tena nenosiri lile lile</translation> <translation id="6699880231565102694">Wezesha uthibitishaji wa vipengee viwili kwa wapangishaji wa ufikivu wa mbali</translation> -<translation id="6702257826895463228">Huruhusu tovuti zivinjari kwa wakati mmoja na zifungue madirisha ibukizi. - - Kwa ufafanuzi kamili, angalia https://www.chromestatus.com/features/5675755719622656. - Sera hii ikiwashwa, tovuti zitaruhusiwa zivinjari kwa wakati mmoja na zifungue vichupo au madirisha mapya. - Sera hii ikizimwa au isipowekwa, tovuti hazitaruhusiwa zivinjari kwa wakati mmoja wala kufungua kichupo au dirisha jipya.</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. Ukiizima sera hii au usipoweka mipangilio, wasifu wa kawaida kwenye kifaa chako ndio utakaotumika pekee.
diff --git a/components/policy/resources/policy_templates_ta.xtb b/components/policy/resources/policy_templates_ta.xtb index 1d5d6a7..59b4068 100644 --- a/components/policy/resources/policy_templates_ta.xtb +++ b/components/policy/resources/policy_templates_ta.xtb
@@ -27,6 +27,7 @@ இந்தக் கொள்கை அமைக்கப்பட்டால், உள்நுழைத் திரை எப்போதும் இந்தக் கொள்கையின் (கொள்கையானது வரவிருக்கும் பதிப்புகளுடன் இணங்கும்தன்மைக்கான பட்டியலாக வரையறுக்கப்பட்டுள்ளது) முதல் மதிப்பு வழங்கிய மொழியில் காட்டப்படும். இந்தக் கொள்கை அமைக்கப்படாமல் இருந்தாலோ அல்லது வெற்றுப் பட்டியலாக அமைக்கப்பட்டாலோ, கடைசியாகப் பயன்படுத்திய பயனர் அமர்வின் மொழியில் உள்நுழைவுத் திரை காட்டப்படும். இந்தக் கொள்கை, தவறான மொழியின் மதிப்புக்கு அமைக்கப்பட்டால், உள்நுழைவுத் திரையானது இயல்பு மொழியில் (தற்போது en-US) அமைக்கப்படும்.</translation> <translation id="1062011392452772310">சாதனத்திற்கான தொலைநிலைச் சான்றொப்பத்தை இயக்கு</translation> <translation id="1062407476771304334">மாற்றியமை</translation> +<translation id="1079801999187584280">டெவெலப்பர் கருவிகளின் பயன்பாட்டை அனுமதிக்காதே</translation> <translation id="109166998561583554">பயனர் கணக்கு அபாயத்தில் உள்ளது என கடவுச்சொல் பாதுகாப்புச் சேவை குறிப்பதற்கான தூண்டல்</translation> <translation id="1093082332347834239">இந்தக் கொள்கையை இயக்கினால், தொலைநிலை உதவி ஹோஸ்ட்டானது <ph name="UIACCESS_PERMISSION_NAME" /> அனுமதிகளைக் கொண்ட செயல்முறையில் இயங்கும். இது தொலைநிலைப் பயனர்களை அகப் பயனரின் டெஸ்க்டாப்பில் உயர்நிலைச் சாளரங்களை அணுக அனுமதிக்கும். @@ -74,6 +75,7 @@ அளவு காரணி 100% அல்லது அதற்கு அதிகமாக இருக்க வேண்டும்.</translation> <translation id="131353325527891113">உள்நுழைவு திரையில் பயனர்பெயர்களைக் காண்பி</translation> +<translation id="1325295456374328159">பயனர் அமர்வில் அனுமதிக்கப்படும் மொழிகளை உள்ளமைக்கவும்</translation> <translation id="1327466551276625742">ஆஃப்லைனில் இருக்கும்போது பிணைய உள்ளமைவுத் தூண்டலை இயக்கு</translation> <translation id="1330145147221172764">திரை விசைப்பலகை இயக்கு</translation> <translation id="13356285923490863">கொள்கைப் பெயர்</translation> @@ -86,6 +88,12 @@ <translation id="1387596372902085462">Symantec Corporation இன் Legacy PKI Infrastructureஐ நம்பகமானது என இயக்க வேண்டுமா</translation> <translation id="1393485621820363363">இயக்கப்பட்ட நிறுவனச் சாதனப் பிரிண்டர்கள்</translation> <translation id="1397855852561539316">இயல்புநிலை தேடல் வழங்குநர் பரிந்துரை URL</translation> +<translation id="1424081297104898791">டெவெலப்பர் கருவிகள் எங்கு பயன்படுத்தப்படும் என்பதை அனுமதிக்கும். + + 'DeveloperToolsDisallowedForForceInstalledExtensions' (நிறுவனப் பயனர்களுக்கான இயல்பான மதிப்பு 0) என இந்தக் கொள்கை அமைக்கப்பட்டால், டெவெலப்பர் கருவிகளையும் JavaScript கன்சோலையும் பொதுவாக அணுகலாம். ஆனால், நிறுவனக் கொள்கையால் நிறுவப்படும் நீட்டிப்புகளின் அடிப்படையில் அவற்றை அணுக முடியாது. + 'DeveloperToolsAllowed' (நிர்வகிக்கப்படாத பயனர்களுக்கான இயல்பான மதிப்பு 1) என இந்தக் கொள்கை அமைக்கப்பட்டால், நிறுவனக் கொள்கையால் நிறுவப்படும் நீட்டிப்புகளின் அடிப்படையில் உட்பட எல்லா அடிப்படைகளிலும் டெவெலப்பர் கருவிகளையும் JavaScript கன்சோலையும் அணுக முடியும். + 'DeveloperToolsDisallowed' (மதிப்பு 2) என இந்தக் கொள்கை அமைக்கப்பட்டால், டெவெலப்பர் கருவிகளை அணுக முடியாது, இணையதளக் கூறுகளை ஆய்வு செய்யமுடியாது. டெவெலப்பர் கருவிகள் அல்லது JavaScript கன்சோலைத் திறப்பதற்கான எந்த விசைப்பலகைக் குறுக்குவழிகளும் மெனு அல்லது சூழல் மெனு உள்ளீடுகளும் முடக்கப்படும். + DeveloperToolsDisabled என்ற லெகஸி கொள்கையைச் சரி என அமைத்தால், இந்தக் கொள்கையின் மதிப்பு புறக்கணிக்கப்பட்டு, டெவெலப்பர் கருவிகள் முடக்கப்படும்.</translation> <translation id="1426410128494586442">ஆம்</translation> <translation id="1427655258943162134">ப்ராக்ஸி சேவையகத்தின் முகவரி அல்லது URL</translation> <translation id="1435659902881071157">சாதன-நிலை பிணைய உள்ளமைவு</translation> @@ -197,6 +205,7 @@ <translation id="1803646570632580723">தொடக்கத்தில் காண்பிப்பதற்கான பின்செய்யப்பட்ட பயன்பாடுகளின் பட்டியல்</translation> <translation id="1808715480127969042">இந்த தளங்களில் குக்கீகளைத் தடு </translation> <translation id="1810261428246410396">உடனடி இணைப்பு முறையைப் பயன்படுத்துவதை அனுமதிக்கும்.</translation> +<translation id="1826282708349731794">Chrome சுத்திகரிப்பானது எவ்வாறு Googleக்குத் தரவை அறிக்கையிடுகிறது என்பதைக் கட்டுப்படுத்தும்</translation> <translation id="1827523283178827583">நிலையான ப்ராக்ஸி சேவையகங்களைப் பயன்படுத்து</translation> <translation id="1843117931376765605">பயனர் கொள்கைக்கான புதுப்பிப்பு விகிதம்</translation> <translation id="1844620919405873871">விரைந்து திறக்கும் அம்சம் தொடர்பான கொள்கைகளை உள்ளமைக்கும்.</translation> @@ -406,7 +415,7 @@ <ph name="PRINTER_DISPLAY_NAME" />, <ph name="PRINTER_DESCRIPTION" /> ஆகியவை பிரிண்டரை எளிதாகத் தேர்ந்தெடுக்க உதவும் கட்டுப்பாடற்ற எழுத்துச்சரங்கள் ஆகும். இவற்றை விருப்பப்படி மாற்றிக்கொள்ளலாம். இறுதிப் பயனர்கள் பிரிண்டரை எளிதாக அடையாளம் காண்பதற்கு <ph name="PRINTER_MANUFACTURER" /> மற்றும் <ph name="PRINTER_MODEL" /> உதவுகின்றன. அவை பிரிண்டரின் உற்பத்தியாளரையும் மாடலையும் குறிக்கும். <ph name="PRINTER_URI" /> என்பது கிளையன்ட் கணினியிலிருந்து தொடர்புகொள்ளத்தக்க முகவரியாக இருக்க வேண்டும். அது <ph name="URI_SCHEME" />, <ph name="URI_PORT" />, <ph name="URI_QUEUE" /> ஆகியவற்றைக் கொண்டிருக்க வேண்டும். <ph name="PRINTER_UUID" />ஐ விரும்பினால் வழங்கலாம். அவ்வாறு வழங்கினால், அது <ph name="ZEROCONF_DISCOVERY" /> பிரிண்டர்களின் நகல்களை நீக்குவதற்குப் பயன்படுத்தப்படும். - <ph name="PRINTER_EFFECTIVE_MODEL" /> ஆனது <ph name="PRODUCT_NAME" />ஐ ஆதரிக்கும் பிரிண்டரைக் குறிக்கும் எழுத்துச்சரங்கள் ஒன்றுடன் பொருந்த வேண்டும். இந்த எழுத்துச்சரம், பிரிண்டருக்கான சரியான PPDஐ அடையாளங்கண்டு, நிறுவப் பயன்படுத்தப்படும். கூடுதல் தகவலைப் பின்வரும் இணைப்பில் பார்க்கலாம்: https://support.google.com/chrome?p=noncloudprint. + <ph name="PRINTER_EFFECTIVE_MODEL" /> ஆனது <ph name="PRODUCT_NAME" />ஐ ஆதரிக்கும் பிரிண்டரைக் குறிக்கும் எழுத்துச்சரங்களில் ஒன்றுடன் பொருந்த வேண்டும். இந்த எழுத்துச்சரம், பிரிண்டருக்கான சரியான PPDஐ அடையாளங்கண்டு, நிறுவப் பயன்படுத்தப்படும். கூடுதல் தகவலைப் பின்வரும் இணைப்பில் பார்க்கலாம்: https://support.google.com/chrome?p=noncloudprint. பிரிண்டரை முதல்முறை பயன்படுத்தும் போது அது அமைக்கப்பட்டுவிடும். பிரிண்டரைப் பயன்படுத்தும் வரை, PPDகள் பதிவிறக்கப்படாது. அதன் பின்னர், அடிக்கடி பயன்படுத்தும் PPDகள் தற்காலிகமாகச் சேமிக்கப்படும். @@ -571,6 +580,7 @@ தனிப்பட்ட சாதனங்களில் பயனர்களால் பிரிண்டர்களை உள்ளமைக்க முடியுமா முடியாதா என்பதை இந்தக் கொள்கை பாதிக்காது. தனிப்பட்ட பயனர்களின் பிரிண்டர்கள் உள்ளமைவுடன் சேர்ந்து கூடுதலாகச் செயல்படுவதற்காகவே இது உருவாக்கப்பட்டது. </translation> <translation id="2633084400146331575">பேச்சுவடிவ கருத்தைச் செயலாக்கு</translation> +<translation id="2640843331263301324">Windows இல் Chrome சுத்திகரிப்பை இயக்கும்</translation> <translation id="2646290749315461919">பயனர்களின் இருப்பிடத்தை தடமறிய, வலைத்தளங்கள் அனுமதிக்கப்படுகின்றனவா என்பதை அமைக்க உங்களை அனுமதிக்கின்றன. பயனர்களின் இருப்பிடத்தைத் தடமறிவது இயல்புநிலையால் அனுமதிக்கப்படலாம், இயல்புநிலையால் மறுக்கப்படலாம் அல்லது வலைத்தளம் கோரும் இருப்பிடத்தை ஒவ்வொரு முறையும் பயனரிடம் கேட்கப்படலாம். இந்தக் கொள்கையை அமைக்காமல் விட்டால், 'AskGeolocation' பயன்படுத்தப்படும், பயனர் அதை மாற்ற முடியும்.</translation> <translation id="2647069081229792812">புக்மார்க்கைத் திருத்துவதை இயக்கும் அல்லது முடக்கும்</translation> <translation id="2650049181907741121">உறையை பயனர் மூடும்போது எடுக்க வேண்டிய நடவடிக்கை</translation> @@ -634,13 +644,6 @@ இந்தக் கொள்கை பயன்படுத்தப்பட்டால், இந்தக் கொள்கையில் உள்ள மதிப்புகளுடன் பொருந்தும் ஐடிகளைக் கொண்ட பிரிண்டர்களை மட்டுமே பயனர் பயன்படுத்த முடியும். <ph name="DEVICE_PRINTERS_POLICY" /> இல் குறிப்பிடப்பட்டுள்ள கோப்பில் உள்ள "id" அல்லது "guid" புலங்களுடன் ஐடிகள் பொருந்த வேண்டும். </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> இன் உள்ளடக்கக் காட்சியில் தேடுவதற்குத் தொடு என்னும் அம்சத்தைக் கிடைக்கச் செய்யும். - - இந்த அமைப்பை இயக்கினால், தேடுவதற்குத் தொடு அம்சம் பயனருக்குக் கிடைக்கும், அம்சத்தை இயக்குதல் அல்லது முடக்குதலை அவர்களே தேர்வுசெய்யலாம். - - இந்த அமைப்பை முடக்கினால், தேடுவதற்குத் தொடு அம்சம் முழுமையாக முடக்கப்படும். - - இந்தக் கொள்கையை அமைக்காமல் விடுவது, அதனை இயக்குவதற்கு இணையானதாகும், மேலே உள்ள விளக்கத்தைப் பார்க்கவும்.</translation> <translation id="285480231336205327">அதிக தெளிவான பயன்முறையை செயலாக்குக</translation> <translation id="2854919890879212089">மிகச் சமீபத்தில் பயன்படுத்திய பிரிண்டருக்குப் பதிலாக, அச்சு மாதிரிக்காட்சியில் இயல்புத் தேர்வாக அமைத்த சாதன இயல்புப் பிரிண்டரை <ph name="PRODUCT_NAME" /> பயன்படுத்தும்படி செய்யும். @@ -1171,7 +1174,7 @@ <translation id="4508686775017063528">இந்தக் கொள்கையைச் சரி என அமைத்தால் அல்லது அமைக்கவில்லை எனில், <ph name="PRODUCT_NAME" /> இயக்கப்படும். மேலும், பயன்பாட்டு மெனு, பக்க சூழல் மெனுக்கள், அனுப்புதல் இயக்கப்பட்ட இணையதளங்களிலுள்ள மீடியா கட்டுப்பாடுகள், Cast கருவிப்பட்டி ஐகான் (காட்டப்பட்டால்) ஆகியவற்றிலிருந்து பயனர்கள் அதைத் தொடங்கலாம். இந்தக் கொள்கையைத் தவறு என அமைத்தால், <ph name="PRODUCT_NAME" /> முடக்கப்படும்.</translation> -<translation id="4515404363392014383">நம்பகமான ஆதாரங்களுக்கான பாதுகாப்பான உலாவலை இயக்கு</translation> +<translation id="4515404363392014383">நம்பகமான ஆதாரங்களுக்கு பாதுகாப்பான உலாவலை இயக்கு</translation> <translation id="4518251772179446575">ஒரு தளம் பயனரின் நிஜ இருப்பிடத்தை பின்தொடர விரும்பும்போதெல்லாம் கேட்கவும்</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> இன் சர்வபுலத்தில் தேடல் பரிந்துரைகளை இயக்குகிறது மற்றும் பயனர்கள் இந்த அமைப்பை மாற்றுவதைத் தடுக்கிறது. @@ -1197,12 +1200,14 @@ <translation id="4554651132977135445">பயனர் கொள்கை லூப்பேக் செயலாக்கப் பயன்முறை</translation> <translation id="4555850956567117258">பயனருக்கான தொலைநிலைச் சான்றொப்பத்தை இயக்கு</translation> <translation id="4557134566541205630">இயல்புநிலைத் தேடல் வழங்குநர் புதிய தாவல் பக்க URL</translation> +<translation id="4567137030726189378">டெவெலப்பர் கருவிகளின் பயன்பாட்டை அனுமதி</translation> <translation id="4600786265870346112">பெரிய இடஞ்சுட்டியை இயக்கு</translation> <translation id="4604931264910482931">நேட்டிவ் செய்தியிடல் தடுப்புப்பட்டியலை உள்ளமைத்தல்</translation> <translation id="4613508646038788144">கொள்கையானது "வேண்டாம்" என அமைக்கப்பட்டால், Chrome செயல்முறைகளில் செயலாக்கத்தக்க குறியீட்டை உட்செலுத்துவதற்கு மூன்றாம் தரப்பு மென்பொருள் அனுமதிக்கப்படும். கொள்கை அமைக்கப்படாமல் விட்டாலோ அல்லது "சரி" என அமைத்தாலோ, Chrome செயல்முறைகளில் செயலாக்கத்தக்க குறியீட்டை உட்செலுத்துவதிலிருந்து மூன்றாம் தரப்பு மென்பொருள் தடுக்கப்படும்.</translation> <translation id="4617338332148204752"><ph name="PRODUCT_FRAME_NAME" /> இல் மீக்குறி பயன்படுத்துவதைத் தவிர்</translation> <translation id="4625915093043961294">நீட்டிப்பு நிறுவுதல் அனுமதிப் பட்டியலை உள்ளமைக்கவும்</translation> <translation id="4632343302005518762">பின்வரும் பட்டியலிடப்பட்ட உள்ளடக்க வகைகளைக் கையாள <ph name="PRODUCT_FRAME_NAME" /> ஐ அனுமதி</translation> +<translation id="4632566332417930481">நிறுவனக் கொள்கையால் நிறுவப்படும் நீட்டிப்புகளில் டெவெலப்பர் கருவிகளின் பயன்பாட்டை அனுமதிக்காமல், மற்றவற்றில் அவற்றின் பயன்பாட்டை அனுமதிக்கும்</translation> <translation id="4633786464238689684">மேல் வரிசையில் உள்ள விசைகளின் இயல்புநிலைச் செயலைச் செயல்பாட்டு விசைகளுக்கு மாற்றுகிறது. இந்தக் கொள்கைச் சரி என அமைக்கப்பட்டிருந்தால், விசைப் பலகையின் மேல் வரிசையில் உள்ள விசைகள் இயல்புநிலையில் செயல்பாட்டு விசையின் கட்டளைகளைச் செயல்படுத்தும். இவற்றின் செயலை மீண்டும் மீடியா விசைகளாக மாற்ற தேடல் விசையை அழுத்த வேண்டியிருக்கும். @@ -1455,9 +1460,13 @@ இந்தக் கொள்கை, உள்ளீட்டு முறை அடையாளங்காட்டிகளின் பட்டியலாக அமைக்கப்பட்டால், வழங்கிய உள்ளீட்டுப் பயன்முறைகள் உள்நுழைவுத் திரையில் கிடைக்கும். முதலில் வழங்கிய உள்ளீட்டு முறையானது முன்கூட்டியே தேர்ந்தெடுக்கப்பட்டிருக்கும். உள்நுழைவுத் திரையில் பயனர் பாட் ஃபோகஸ் செய்துக் கொண்டிருக்கும் போது, இந்தக் கொள்கை வழங்கும் உள்ளீட்டு முறைகளுடன் சேர்த்து பயனர் கடைசியாகப் பயன்படுத்திய உள்ளீட்டு முறையும் கிடைக்கும். இந்தக் கொள்கை அமைக்கப்படவில்லை எனில், உள்நுழைவுத் திரை காட்டப்படும் மொழியிலிருந்து உள்நுழைவுத் திரையில் உள்ளீட்டு முறைகள் பெறப்படும். தவறான உள்ளீட்டு முறை அடையாளங்காட்டிகள் உள்ள மதிப்புகள் புறக்கணிக்கப்படும்.</translation> <translation id="5423001109873148185">இந்த கொள்கை செயலாக்கப்பட்டிருந்தால் தற்போதைய இயல்புநிலை உலாவியில் இருந்து, தேடல் இன்ஜின்கள் இறக்குமதி செய்யப்பட வேண்டும் என்பதை வற்புறுத்தும். செயலாக்கப்பட்டிருந்தால், இறக்குமதி உரையாடலையும் இந்தக் கொள்கை பாதிக்கும். முடக்கப்பட்டிருந்தால், இயல்புநிலையான தேடல் இன்ஜின் இறக்குமதியாகாது. இது அமைக்கப்படவில்லை எனில், இறக்குமதி செய்யலாமா என பயனரிடம் கேட்கப்படும் அல்லது தானாக இறக்குமதியாகும்.</translation> <translation id="5423197884968724595">Android WebView வரம்புப் பெயர்:</translation> +<translation id="5442026853063570579">Android டெவெலப்பர் விருப்பங்களுக்கான அணுகலையும் இந்தக் கொள்கை கட்டுப்படுத்தும். இந்தக் கொள்கையை 'DeveloperToolsDisallowed' (மதிப்பு 2) என அமைத்தால், பயனர்களால் டெவெலப்பர் விருப்பங்களை அணுக முடியாது. இந்தக் கொள்கையை வேறொரு மதிப்பில் அமைத்தாலோ அல்லது அமைக்காமல் விட்டாலோ, Android அமைப்புகள் பயன்பாட்டில் இருக்கும் பதிப்பு எண்ணை ஏழு முறை தட்டுவதன் மூலம், பயனர்களால் டெவெலப்பர் விருப்பங்களை அணுக முடியும்.</translation> <translation id="5447306928176905178">பக்கத்திற்கு (நீக்கப்பட்டது) நினைவகத் தகவலை அறிக்கையிடுவதை (JS ஹீப் அளவு) இயக்கு</translation> <translation id="5457065417344056871">உலாவியில் விருந்தினர் பயன்முறையை இயக்கும்</translation> <translation id="5457924070961220141"><ph name="PRODUCT_FRAME_NAME" /> நிறுவியிருக்கும்போது, இயல்புநிலை HTML தொகுத்தலை உள்ளமைக்க உங்களை அனுமதிக்கிறது. தொகுத்தலுக்கு ஹோஸ்ட் உலாவியை அனுமதிக்க, இந்தக் கொள்கை அமைக்காமல் விலகியிருக்கும்போது, இயல்புநிலை அமைப்பு பயன்படுத்தப்படுகிறது. ஆனால், நீங்கள் இதை மேலெழுதலாம், இயல்புநிலை மூலம் <ph name="PRODUCT_FRAME_NAME" /> தொகுப்பு HTML பக்கங்களைப் பெறலாம்.</translation> +<translation id="5459155981813668716"><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" /> காட்டப்படும் அல்லது இந்தக் கொள்கையில் தவறான உள்ளீடுகள் மட்டுமே இருந்தால், இயல்பு மொழியில் (தற்சமயம் en-US) காட்டப்படும்.</translation> <translation id="5464816904705580310">நிர்வகிக்கப்படும் பயனர்களுக்கான அமைப்புகளை உள்ளமை.</translation> <translation id="546726650689747237">AC சக்தியில் இயங்கும்போது திரை மங்கல் தாமதமாகும்</translation> <translation id="5469484020713359236">குக்கீகளை அமைக்க அனுமதிக்கின்ற தளங்களைக் குறிக்கும் url வகைகளின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கிறது.ஒட்டுமொத்தமாக அமைக்காமல் இந்தப் பாலிசி விடப்பட்டிருந்தால் இயல்புநிலை மதிப்பானது, அமைக்கப்பட்டிருந்தால் 'DefaultCookiesSetting' கொள்கை அல்லது பயனரின் தனிப்பட்ட உள்ளமைவிலிருந்து அனைத்து தளங்களுக்கும் பயன்படுத்தப்படும்.</translation> @@ -1571,7 +1580,6 @@ இந்தக் கொள்கை அமைக்கப்படாமல் இருந்தால், உள்நுழைவுத் திரை முதலில் காண்பிக்கப்படும்போது பேச்சுவடிவ கருத்து முடக்கப்படும். உள்நுழைவுத் திரையில் பயனர்கள் எந்த நேரத்திலும் பேச்சுவடிவ கருத்தையும் அதன் நிலையையும் இயக்கலாம் அல்லது முடக்கலாம், இது பயனர்களுக்கு இடையில் நிலையானது.</translation> <translation id="5868414965372171132">பயனர்-நிலை பிணைய உள்ளமைவு</translation> -<translation id="588135807064822874">தேடுவதற்குத் தொடுதலை இயக்கும்</translation> <translation id="5883015257301027298">இயல்புநிலை குக்கீகள் அமைப்பு</translation> <translation id="5887414688706570295">ஹோஸ்ட்களின் தொலைநிலை அணுகலுக்குப் பயன்படுத்தப்படும் TalkGadget முன்னொட்டை உள்ளமைக்கும், மேலும் பயனர்கள் அதை மாற்றுவதிலிருந்து தடுக்கும். @@ -1676,6 +1684,7 @@ <translation id="6036523166753287175">தொலைநிலை அணுகல் ஹோஸ்ட்டில் இருந்து கடந்துவர, ஃபயர்வாலைச் செயல்படுத்து</translation> <translation id="6070667616071269965">சாதன உள்நுழைவுத் திரையின் விசைப்பலகைத் தளவமைப்புகள்</translation> <translation id="6074963268421707432">டெஸ்க்டாப் அறிவிக்கைகளைக் காண்பிக்க எந்த தளத்தையும் அனுமதிக்காதே</translation> +<translation id="6074964551275531965">புதுப்பிப்பு தொடர்பான அறிவிப்புகளுக்குக் கால அளவை அமைக்கும்</translation> <translation id="6076099373507468537">chrome.usb API வழியே நேரடியாக இணையப் பயன்பாட்டில் பயன்படுத்துவதற்காக, கெர்னல் இயக்கியிலிருந்து அகற்ற அனுமதிக்கும் USB சாதனங்களின் பட்டியலை வரையறுக்கும். உள்ளீடுகள் என்பவை குறிப்பிட்ட வன்பொருளை அடையாளப்படுத்த, USB விற்பனையாளர் அடையாளங்காட்டி மற்றும் தயாரிப்பு அடையாளங்காட்டியின் இணைகளாகும். இந்தக் கொள்கை உள்ளமைக்கப்படவில்லை எனில், அகற்றத்தக்க USB சாதனங்களின் பட்டியல் காலியாக இருக்கும்.</translation> @@ -1748,6 +1757,11 @@ <translation id="6392973646875039351"><ph name="PRODUCT_NAME" /> இன் தானியங்கு நிரப்புதல் அம்சத்தை இயக்குகிறது, மேலும் முகவரி அல்லது கிரெடிட் கார்டு தகவல் போன்று முன்பே சேமிக்கப்பட்ட தகவல்களைப் பயன்படுத்தி வலைப் படிவங்களைத் தானாகவே நிரப்புவதற்கு பயனர்களை அனுமதிக்கிறது. நீங்கள் இந்த அமைப்பை முடக்கினால், பயனர்கள் தன்னியக்கநிரப்புதல் அம்சத்தை அணுக முடியாது. நீங்கள் இந்த அம்சத்தை இயக்கினால் அல்லது எந்தவொரு மதிப்பையும் இதற்கு தரவில்லை என்றால், தன்னியக்கநிரப்புதல் பயனரின் கட்டுப்பாட்டில் இருக்கும். இதனால் அவர்கள் தன்னியக்க நிரப்புதலை, அவர்களின் விருப்புரிமையின்படி இயக்கலாம் அல்லது அணைக்கலாம்.</translation> <translation id="6394350458541421998">இந்தக் கொள்கையானது <ph name="PRODUCT_OS_NAME" /> பதிப்பு 29 க்கு பின்பு முடக்கப்பட்டுள்ளது. அதற்குப் பதிலாக PresentationScreenDimDelayScale கொள்கையைப் பயன்படுத்தவும்.</translation> <translation id="6401669939808766804">பயனரை வெளியேற்றுக</translation> +<translation id="6412477120967771054">தவறு என அமைக்கப்பட்டால், Chrome சுத்திகரிப்பானது தேவையில்லாத மென்பொருளுக்காக, சாதனத்தை ஸ்கேன் செய்வதையும் சுத்திகரிப்புகளை மேற்கொள்வதையும் இந்தக் கொள்கை தடுக்கிறது. chrome://settings/cleanup என்பதில் கைமுறையாக Chrome சுத்திகரிப்பைக் இயக்குவது முடக்கப்பட்டுள்ளது. + + சரி என அமைக்கப்பட்டாலோ அல்லது அமைக்கப்படவில்லை என்றாலோ, Chrome சுத்திகரிப்பானது தேவையில்லாத மென்பொருளுக்காக, சாதனத்தை அவ்வப்போது ஸ்கேன் செய்யும். ஏதேனும் கண்டறிந்தால், அதை அகற்ற வேண்டுமா எனப் பயனரைக் கேட்கும். chrome://settings என்பதில் கைமுறையாக Chrome சுத்திகரிப்பைக் இயக்குவது இயக்கப்பட்டுள்ளது. + + <ph name="MS_AD_NAME" /> டொமைனில் சேராத Windows நேர்வுகளில் இந்தக் கொள்கை கிடைக்காது.</translation> <translation id="6417861582779909667">குக்கீகளை அமைக்க அனுமதிக்காத தளங்களைக் குறிக்கும் url வகைகளின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கிறது. இந்த கொள்கை அமைக்கப்படாமல் இருந்தால், 'DefaultCookiesSetting' கொள்கை அமைக்கப்பட்டு இருந்தால் அல்லது பயனரின் தனிப்பட்ட உள்ளமைப்புகளில் இருந்து ஒட்டுமொத்த இயல்புநிலை மதிப்பானது எல்லா தளங்களுக்கும் பயன்படுத்தப்படும்.</translation> <translation id="6426205278746959912">ப்ராக்ஸியைப் பயன்படுத்தும்படி நீங்கள் Android பயன்பாடுகளைக் கட்டாயப்படுத்த முடியாது. Android பயன்பாடுகளுக்கு, துணைக்குழு ப்ராக்ஸி அமைப்புகள் ஏற்கனவே வழங்கப்பட்டுள்ளதால், முக்கியத்துவம் அளிப்பதை அவை தானாகவே தேர்வுசெய்துகொள்ளும்: @@ -1768,6 +1782,13 @@ எந்தெந்த இணையதளங்கள் Flashஐ இயக்க அனுமதிக்கப்படுகின்றன என்பதைக் கட்டுப்படுத்த, "DefaultPluginsSetting", "PluginsAllowedForUrls", "PluginsBlockedForUrls" ஆகிய கொள்கைகளைப் பார்க்கவும். இந்த அமைப்பு முடக்கப்பட்டால் அல்லது அமைக்கப்படவில்லை எனில், பிற மூலங்களிலிருந்து பெற்ற Flash உள்ளடக்கம் அல்லது சிறு உள்ளடக்கம் தடுக்கப்படலாம்.</translation> +<translation id="6535639183431116351">இந்தக் கொள்கையானது M68 இல் தடுக்கப்பட்டுள்ளதால், அதற்குப் பதிலாக DeveloperToolsAvailabilityஐப் பயன்படுத்தவும். + + டெவெலப்பர் கருவிகளையும் JavaScript கன்சோலையும் முடக்கும். + + இந்த அமைப்பை இயக்கினால், டெவெலப்பர் கருவிகளை அணுக முடியாது, இணையதளக் கூறுகளை ஆய்வு செய்யமுடியாது. டெவெலப்பர் கருவிகள் அல்லது JavaScript கன்சோலைத் திறப்பதற்கான எந்த விசைப்பலகைக் குறுக்குவழிகளும் மெனு அல்லது சூழல் மெனு உள்ளீடுகளும் முடக்கப்படும். + + இந்த அமைப்பை முடக்கினாலோ அல்லது அமைக்காமல் விட்டாலோ, டெவெலப்பர் கருவிகளையும் JavaScript கன்சோலையும் பயன்படுத்த, பயனர்களை அனுமதிக்கும்.</translation> <translation id="653608967792832033">பேட்டரி சக்தியில் இயங்கும்போது திரையானது பூட்டப்பட்ட பிறகு பயனர் உள்ளீடின்றி நேரத்தின் அளவைக் குறிப்பிடுகிறது. இந்தக் கொள்கையானது பூஜ்யத்தைவிட அதிகமான மதிப்பில் அமைக்கப்பட்டிருக்கும்போது, <ph name="PRODUCT_OS_NAME" /> ஆனது திரையைப் பூட்டுவதற்கு முன், செயலற்ற நிலையில் பயனர் இருக்க வேண்டிய நேரத்தின் அளவை இது குறிப்பிடும். @@ -1825,19 +1846,14 @@ இந்தக் கொள்கை அமைக்கப்படாமல் விடப்பட்டு இருந்தால், நெட்வொர்க் யூகம் இயக்கப்படும், ஆனால் பயனரால் அதனை மாற்ற முடியும்.</translation> <translation id="6658245400435704251">சேவையகத்திற்கு வெளியே புதுப்பிப்பை, முதலில் தள்ளப்படுகின்ற நேரத்திலிருந்து ஒரு சாதனம் சீரற்ற முறையில், அதன் பதிவிறக்கத்தைத் தாமதப்படுத்துகின்ற நொடிகளின் எண்ணிக்கையை குறிக்கிறது. சாதனமானது இந்த நேரத்தின் ஒரு பகுதியை சுவர்-கடிகார நேர அடிப்படையிலும் மீதமுள்ள நேரத்தை புதுப்பிப்பு சரிபார்த்தலின் எண்ணிக்கை அடிப்படையிலும் காத்திருக்கலாம்.. எதுவானாலும், ஒரு நிலையான நேர அளவிற்கு மேலே சிதறல் கட்டுப்பட்டிருப்பதனால், சாதனம் ஒரு புதுப்பிப்பைப் பதிவிறக்க ஒருபோதும் காத்திருந்து எப்போதும் சிக்கிக் கொள்ளாது.</translation> <translation id="6665670272107384733">விரைந்து திறக்கும் அம்சத்தைப் பயன்படுத்த, பயனர் எப்போது கடவுச்சொல்லை உள்ளிட வேண்டும் என்பதை அமைக்கும்</translation> -<translation id="6681229465468164801">USB சாதனத்திற்கான அணுகலை அவற்றிற்கு வழங்க, பயனரைக் கேட்பதிலிருந்து மறுக்கப்படும் தளங்களைக் குறிப்பிடும் url பேட்டர்ன்களின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கும். +<translation id="6681229465468164801">USB சாதனத்திற்கான அணுகலை வழங்குமாறு, பயனரைக் கேட்பதிலிருந்து தடுக்கப்படும் தளங்களைக் குறிப்பிடும் url பேட்டர்ன்களின் பட்டியலை அமைக்க உதவுகிறது. - இந்தக் கொள்கையை அமைக்கவில்லை எனில், உலகளாவிய இயல்பு மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultWebUsbGuardSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும். + இந்தக் கொள்கையை அமைக்கவில்லை எனில், ஒட்டுமொத்த இயல்பு மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultWebUsbGuardSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும். - இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbAskForUrls மூலம் உள்ளமைக்கப்பட்ட பிறகு முரண்படக்கூடாது. URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> + இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbAskForUrls மூலம் உள்ளமைக்கப்பட்டுள்ளவற்றுடன் முரண்படக்கூடாது. ஒரு URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> <translation id="6689792153960219308">வன்பொருள் நிலையை அறிவிக்கும்</translation> <translation id="6698071416141001300">பயனர் கணக்கு அபாயத்தில் உள்ளது என கடவுச்சொல் பாதுகாப்புச் சேவை குறிப்பதற்கான தூண்டலானது, கடவுச்சொல் மீண்டும் பயன்படுத்தப்பட்டால் தூண்டப்படும்</translation> <translation id="6699880231565102694">தொலைநிலை அணுகல் ஹோஸ்ட்களின் இரு-காரணி அங்கீகாரத்தைச் செயல்படுத்து</translation> -<translation id="6702257826895463228">தளங்கள் ஒரே நேரத்தில் செல்லவும் பாப் அப்களைத் திறக்கவும் அனுமதிக்கும். - - முழுமையான விளக்கத்திற்கு, https://www.chromestatus.com/features/5675755719622656 என்ற இணைப்பப் பார்க்கவும். - இந்தக் கொள்கையானது இயக்கப்பட்டால், தளங்கள் ஒரே நேரத்தில் செல்வதற்கும் புதிய சாளரங்கள்/தாவல்களைத் திறப்பதற்கும் அனுமதிக்கப்படும். - இந்தக் கொள்கையானது முடக்கப்பட்டாலோ அல்லது அமைக்கப்படவில்லை என்றாலோ, தளங்கள் ஒரே நேரத்தில் செல்வதற்கும் புதிய சாளரங்கள்/தாவல்களைத் திறப்பதற்கும் அனுமதிக்கப்படாது.</translation> <translation id="6724842112053619797">இந்த அமைப்பை இயக்கினால், <ph name="PRODUCT_NAME" /> சுயவிவரங்களில் சேமிக்கப்பட்ட புத்தகக்குறிகள், தன்னிரப்பித் தரவு, கடவுச்சொற்கள் போன்ற பல அமைப்புகளும், ரோமிங் பயனர் சுயவிவரக் கோப்புறையில் சேமிக்கப்பட்ட கோப்பு அல்லது <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> கொள்கை மூலம் நிர்வாகி குறிப்பிட்ட இடத்தில் எழுதப்படும். இந்தக் கொள்கையை இயக்கினால், கிளவுட் ஒத்திசைவு முடக்கப்படும். இந்தக் கொள்கை முடக்கப்பட்டால் அல்லது அமைக்கப்படவில்லை எனில், வழக்கமான அகச் சுயவிவரங்கள் மட்டுமே பயன்படுத்தப்படும். @@ -1971,11 +1987,11 @@ இந்த அமைப்பு முடக்கப்பட்டிருந்தாலோ அல்லது அமைக்கப்படவில்லை என்றாலோ, அனைத்து ஆதாரங்களுக்கும் இயல்புநிலை பாதுகாப்பான உலாவல் பாதுகாப்பு பயன்படுத்தப்படும். <ph name="MS_AD_NAME" /> டொமைனில் இணைக்கப்பட்டிருக்காத Windows நேர்வுகளுக்கு, இந்தக் கொள்கை கிடைக்காது.</translation> <translation id="7079519252486108041">இந்த தளங்களில் பாப்அப்களைத் தடு</translation> -<translation id="7085803328069945025">USB சாதனத்திற்கான அணுகலை அவற்றிற்கு வழங்க, பயனரைக் கேட்க அனுமதிக்கப்படும் தளங்களைக் குறிப்பிடும் url பேட்டர்ன்களின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கும். +<translation id="7085803328069945025">USB சாதனத்திற்கான அணுகலை வழங்குமாறு, பயனரைக் கேட்க அனுமதிக்கப்படும் தளங்களைக் குறிப்பிடும் url பேட்டர்ன்களின் பட்டியலை அமைக்க உதவுகிறது. - இந்தக் கொள்கையை அமைக்கவில்லை எனில், உலகளாவிய இயல்பு மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultWebUsbGuardSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும். + இந்தக் கொள்கையை அமைக்கவில்லை எனில், ஒட்டுமொத்த இயல்பு மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultWebUsbGuardSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும். - இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbBlockedForUrls மூலம் உள்ளமைக்கப்பட்ட பிறகு முரண்படக்கூடாது. URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> + இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbBlockedForUrls மூலம் உள்ளமைக்கப்பட்டுள்ளவற்றுடன் முரண்படக்கூடாது. ஒரு URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> சாதனங்கள் செயல்படாமல் இருக்கும் போதோ இடைநீக்கப்பட்டிருக்கும் போதோ, பூட்டை இயக்கு. இந்த அமைப்பை இயக்கினால், உறக்கநிலையிலிருந்து சாதனத்தை இயக்க, பயனர்களிடம் கடவுச்சொல்லை உள்ளிடுமாறு கேட்கப்படும். @@ -2170,6 +2186,7 @@ பாதுகாப்பான உலாவல் குறித்த கூடுதல் தகவலுக்கு, https://developers.google.com/safe-browsing எனும் இணைப்பைப் பார்க்கவும்.</translation> <translation id="7643883929273267746"><ph name="PRODUCT_NAME" /> இல் தெரியும் கணக்குகளை வரம்பிடு</translation> <translation id="7651739109954974365">சாதனத்திற்கு தரவு ரோமிங்கை இயக்கலாமா என்பதை தீர்மானிக்கும். true என அமைக்கப்பட்டிருந்தால், தரவு ரோமிங் அனுமதிக்கப்படும். உள்ளமைக்கப்படாமல் விடுபட்டாலோ அல்லது false என அமைக்கப்பட்டாலோ, தரவு ரோமிங் கிடைக்காமல் போகலாம்.</translation> +<translation id="7673194325208122247">கால அளவு (மில்லிவினாடிகள்)</translation> <translation id="7683777542468165012">டைனமிக் கொள்கை புதுப்பிப்பு</translation> <translation id="7694807474048279351"><ph name="PRODUCT_OS_NAME" /> புதுப்பிப்பு பயன்படுத்தப்பட்ட பிறகு தானியங்கு மறுதொடக்கத்தைத் திட்டமிடவும். @@ -2296,6 +2313,13 @@ <translation id="7961779417826583251">லெகஸி சான்றிதழ் அங்கீகரிப்பாளர்களின் பட்டியலுக்குச் சான்றிதழ் வெளிப்படைத்தன்மை செயலாக்கத்தை முடக்கு</translation> <translation id="7974114691960514888">இந்தக் கொள்கை, இனி ஆதரவளிக்கப்படாது. தொலைநிலை பயனகத்துடன் இணைக்கும்போது, STUN மற்றும் அதனுடன் தொடர்புடைய சேவையகங்களின் பயன்பாட்டைச் செயலாக்குகிறது. இந்த அமைப்பு செயல்படுத்தப்பட்டால், ஃபயர்வாலால் தனிப்படுத்தப்பட்டிருந்தாலும், இந்த கணினியானது தொலைநிலை ஹோஸ்ட் கணினிகளைக் கண்டறிந்து அதனுடன் இணைய முடியும். இந்த அமைப்பு முடக்கப்பட்டு, வெளிச்செல்லும் UDP இணைப்புகளால் ஃபயர்வாலால் வடிகட்டப்பட்டால், அக பிணையத்திற்குள் மட்டுமே, ஹோஸ்ட் கணினிகளுடன் இணைக்கப்படும்.</translation> <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> இலக்கின் பெயர்</translation> +<translation id="7977445800390854860">அமைக்கப்படவில்லை எனில், Chrome சுத்திகரிப்பில் தேவையில்லாத மென்பொருள் கண்டறியப்பட்டால், SafeBrowsingExtendedReportingEnabled அமைத்த கொள்கையின் அடிப்படையில், ஸ்கேன் குறித்த மீத்தரவை Googleக்கு அது அனுப்பக்கூடும். அதற்குப் பிறகு, தேவையில்லாத மென்பொருளை அகற்ற வேண்டுமா என, பயனரின் விருப்பத்தை Chrome சுத்திகரிப்பு கேட்கும். எதிர்காலத்தில் தேவையில்லாத மென்பொருள் கண்டறிதலுக்கு உதவுவதற்காக, Google இடம் சுத்திகரிப்பின் முடிவுகளைப் பயனர் பகிரலாம். Chrome தனியுரிமை அறிக்கையில் விவரிக்கப்பட்டுள்ளபடி, இந்த முடிவுகள் கோப்பு மீத்தரவையும் பதிவக விசைகளையும் கொண்டிருக்கும். + + தவறு என அமைக்கப்பட்டு, Chrome சுத்திகரிப்பில் தேவையில்லாத மென்பொருள் கண்டறியப்பட்டால், SafeBrowsingExtendedReportingEnabled அமைத்த எந்தவொரு கொள்கையையும் மீறி, ஸ்கேன் குறித்த மீத்தரவை Googleக்கு அது அனுப்பாது. தேவையில்லாத மென்பொருளை அகற்ற வேண்டுமா என, பயனரின் விருப்பத்தை Chrome சுத்திகரிப்பு கேட்கும். Google இடம் சுத்திகரிப்பின் முடிவுகள் பகிரப்படாது. அவ்வாறு பகிர்வது தொடர்பான விருப்பம் பயனருக்கு இருக்காது. + + சரி என அமைக்கப்பட்டு, Chrome சுத்திகரிப்பில் தேவையில்லாத மென்பொருள் கண்டறியப்பட்டால், SafeBrowsingExtendedReportingEnabled அமைத்த கொள்கையின் அடிப்படையில், ஸ்கேன் குறித்த மீத்தரவை Googleக்கு அது அனுப்பக்கூடும். தேவையில்லாத மென்பொருளை அகற்ற வேண்டுமா என, பயனரின் விருப்பத்தை Chrome சுத்திகரிப்பு கேட்கும். Google இடம் சுத்திகரிப்பின் முடிவுகள் பகிரப்படும். அதைத் தடுப்பது தொடர்பான விருப்பம் பயனருக்கு இருக்காது. + + <ph name="MS_AD_NAME" /> டொமைனில் சேராத Windows நேர்வுகளில் இந்தக் கொள்கை கிடைக்காது.</translation> <translation id="7978060394348264922"> தனிப்படுத்தல் மற்றும் பயனர்களுக்கு குறைந்த அளவிலான தாக்கம் என்ற இரண்டையும் சிறப்பாகப் பெறுவதற்கு, IsolateOrigins கொள்கை அமைப்பைப் பார்க்கவும். அதில் நீங்கள் தனிப்படுத்த விரும்பும் தளங்களின் பட்டியலுடன் IsolateOriginsஐப் பயன்படுத்தலாம். SitePerProcess எனும் இந்த அமைப்பு, எல்லாத் தளங்களையும் தனிப்படுத்தும். கொள்கை இயக்கப்பட்டிருந்தால், ஒவ்வொரு தளமும் அதற்குரிய செயல்முறையை இயக்கும். @@ -2408,6 +2432,7 @@ <translation id="8300455783946254851">செல்லுலார் இணைப்பு பயன்படுத்தப்பட்டு, அதன் மதிப்பு சரி என்பதாக அமைக்கப்படும் போது <ph name="PRODUCT_OS_NAME" /> கோப்புகள் பயன்பாட்டில் Google இயக்கக ஒத்திசைவை முடக்குகிறது. இந்த நிலையில், WiFi அல்லது ஈதர்நெட்டுடன் இணைக்கப்படும் போது மட்டுமே தரவு Google இயக்ககத்துடன் ஒத்திசைக்கப்படும். அமைக்கப்படாமல் அல்லது தவறு என்பதாக அமைக்கப்பட்டால், பயனர்கள் செல்லுலார் இணைப்புகள் வழியாக Google இயக்ககத்திற்கு கோப்புகளைப் பரிமாற்றலாம்.</translation> +<translation id="8300992833374611099">டெவலப்பர் கருவிகளை எங்கு பயன்படுத்தலாம் என்பதைக் கட்டுப்படுத்தும்</translation> <translation id="8312129124898414409">விசை உருவாக்கத்தைப் பயன்படுத்த இணையதளங்கள் அனுமதிக்கப்படுமா என்பதை அமைக்க உங்களை அனுமதிக்கும். விசை உருவாக்கத்தைப் பயன்படுத்துவதை எல்லா இணைய தளங்களுக்கும் அனுமதிக்கலாம் அல்லது எல்லா இணைய தளங்களுக்கும் மறுக்கலாம். இந்தக் கொள்கை அமைக்கப்படாமல் விடப்பட்டால், 'BlockKeygen' பயன்படுத்தப்படும், பயனரால் அதனை மாற்ற முடியும்.</translation> @@ -2629,6 +2654,11 @@ <translation id="9035964157729712237">தடுப்புப் பட்டியலில் இருந்து, விலக்குவதற்கான நீட்டிப்பு IDகள்</translation> <translation id="9042911395677044526"><ph name="PRODUCT_OS_NAME" /> சாதனத்தில் பயன்படுத்துவதற்கு ஒரு பயனருக்கு புஷிங் நெட்வொர்க் உள்ளமைவை அனுமதிக்கிறது. நெட்வொர்க் உள்ளமைவு என்பது <ph name="ONC_SPEC_URL" /> இல் விளக்கப்பட்டுள்ளபடி திறந்த நெட்வொர்க் உள்ளமைவு வடிவத்தால் வரையறுக்கப்பட்ட JSON-வடிவமைப்பு தொடர் ஆகும்.</translation> <translation id="9084985621503260744">வீடியோ செயல்பாடு, சக்தி மேலாண்மையைப் பாதிக்குமா என்பதைக் குறிப்பிடவும்</translation> +<translation id="9085839450090699752">நிலுவையிலுள்ள புதுப்பிப்பைப் பயன்படுத்துவதற்கு, <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" /> சாதனங்களுக்கு இயல்பான கால அளவான 345600000 மில்லிவினாடிகள் (நான்கு நாட்கள்) பயன்படுத்தப்படும், மேலும் உலாவிகளுக்கு இயல்பான கால அளவான 604800000 மில்லிவினாடிகள் (ஒரு வாரம்) பயன்படுத்தப்படும்.</translation> <translation id="9088433379343318874">கண்காணிக்கப்படும் பயனருக்கான உள்ளடக்க வழங்குநரை இயக்கு</translation> <translation id="9088444059179765143">தானாக நேரமண்டலத்தைக் கண்டறிதல் முறையை உள்ளமை</translation> <translation id="9096086085182305205">அங்கீகார சேவையக அனுமதி பட்டியல்</translation> @@ -2666,7 +2696,7 @@ <translation id="915194831143859291">இந்தக் கொள்கை false என அமைக்கப்பட்டிருந்தாலோ அல்லது உள்ளமைக்கப்படாமல் இருந்தாலோ, சாதனத்தை இயக்க நிறுத்தம் செய்ய, பயனரை <ph name="PRODUCT_OS_NAME" /> அனுமதிக்கும். இந்தக் கொள்கை true என அமைக்கப்பட்டால், சாதனத்தைப் பயனர் இயக்க நிறுத்தம் செய்யும்போது, மறுதொடக்கத்தை <ph name="PRODUCT_OS_NAME" /> செயல்படுத்தும். UI இல் உள்ள எல்லா இயக்க நிறுத்தப் பொத்தான்களையும், மறுதொடக்கப் பொத்தான்களாக <ph name="PRODUCT_OS_NAME" /> மாற்றியமைக்கும். பவர் பொத்தானைப் பயன்படுத்திச் சாதனத்தைப் பயனர் இயக்க நிறுத்தம் செய்யும் போது, கொள்கை இயக்கப்பட்டிருந்தாலும் சாதனம் தானாக மறுதொடக்கமாகாது.</translation> <translation id="9158929520101169054">உலாவிக்குள் பல உள்நுழைவை அனுமதி</translation> -<translation id="9165792353046089850">இணைக்கப்பட்டுள்ள USB சாதனங்களுக்கான அணுகலைப் பெறுவதற்கு, இணையதளங்களை அனுமதிக்கலாமா அல்லது வேண்டாமா என்பதை அமைக்க, உங்களை அனுமதிக்கும். அணுகலை முழுமையாகத் தடுக்கலாம் அல்லது இணையதளமானது இணைக்கப்பட்டுள்ள USB சாதனங்களை அணுக விரும்பும் ஒவ்வொரு முறையும் பயனரிடம் கேட்கலாம். +<translation id="9165792353046089850">இணைக்கப்பட்டுள்ள USB சாதனங்களுக்கான அணுகலைப் பெறுவதற்கு, இணையதளங்களை அனுமதிக்கலாமா அல்லது வேண்டாமா என்பதை அமைக்க உதவுகிறது. அணுகலை முழுமையாகத் தடுக்கலாம் அல்லது இணையதளமானது இணைக்கப்பட்டுள்ள USB சாதனங்களை அணுக விரும்பும் ஒவ்வொரு முறையும் பயனரிடம் கேட்கலாம். WebUsbAskForUrls', 'WebUsbBlockedForUrls' கொள்கைகளைப் பயன்படுத்தும் குறிப்பிட்ட URL பேட்டர்ன்களுக்காக இந்தக் கொள்கை மேலெழுதப்படலாம்.
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb index 82b94f5..bb08c33a 100644 --- a/components/policy/resources/policy_templates_te.xtb +++ b/components/policy/resources/policy_templates_te.xtb
@@ -731,13 +731,6 @@ ఈ విధానాన్ని ఉపయోగించినట్లయితే, ఈ విధానంలో ఉన్న విలువలకు సరిపోలిన idలను కలిగిన ప్రింటర్లు మాత్రమే వినియోగదారుకి అందుబాటులో ఉంటాయి. idలు తప్పనిసరిగా <ph name="DEVICE_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్లోని "id" లేదా "guid" ఫీల్డ్లకు సంబంధితంగా ఉండాలి. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> కంటెంట్ వీక్షణలో శోధించడానికి తాకండి లక్షణం లభ్యతను ప్రారంభిస్తుంది. - - మీరు ఈ సెట్టింగ్ను ప్రారంభిస్తే, వినియోగదారుకు శోధించడానికి తాకండి లక్షణం అందుబాటులో ఉంటుంది మరియు వారు లక్షణాన్ని ఆన్ లేదా ఆఫ్ చేయడాన్ని ఎంచుకోగలరు. - - మీరు ఈ సెట్టింగ్ను నిలిపివేస్తే, శోధించడానికి తాకండి లక్షణం పూర్తిగా నిలిపివేయబడుతుంది. - - ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, దాన్ని ప్రారంభించి ఉండటంతో సమానం, ఎగువ వివరణను చూడండి.</translation> <translation id="285480231336205327">అధిక వర్ణ వ్యత్యాస మోడ్ను ప్రారంభించు</translation> <translation id="2854919890879212089">ప్రింట్ పరిదృశ్యంలో అత్యంత ఇటీవల ఉపయోగించిన ప్రింటర్కు బదులుగా సిస్టమ్ డిఫాల్ట్ ప్రింటర్ను డిఫాల్ట్ ఎంపికగా <ph name="PRODUCT_NAME" /> ఉపయోగించేలా చేస్తుంది. @@ -1834,7 +1827,6 @@ ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు చదివి వినిపించే అభిప్రాయం నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా చదివి వినిపించే అభిప్రాయాన్ని ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు మరియు లాగిన్ స్క్రీన్లో దాని స్థితి వినియోగదారుల మధ్య అలాగే కొనసాగుతుంది.</translation> <translation id="5868414965372171132">వినియోగదారు-స్థాయి నెట్వర్క్ కాన్ఫిగరేషన్</translation> -<translation id="588135807064822874">శోధించడానికి తాకండి లక్షణాన్ని ప్రారంభిస్తుంది</translation> <translation id="5883015257301027298">డిఫాల్ట్ కుక్కీల సెట్టింగ్</translation> <translation id="5887414688706570295">రిమోట్ ప్రాప్యత హోస్ట్లు ఉపయోగించే TalkGadget ఆదిప్రత్యయాన్ని కాన్ఫిగర్ చేస్తుంది మరియు వినియోగదారులు దీన్ని మార్చకుండా నిరోధిస్తుంది. @@ -2101,11 +2093,6 @@ <translation id="6689792153960219308">హార్డ్వేర్ స్థితిని నివేదిస్తుంది</translation> <translation id="6698071416141001300">పాస్వర్డ్ని తిరిగి ఉపయోగించినప్పుడు పాస్వర్డ్ రక్షణ ప్రమాదంలో ఉన్న ఖాతా ఫ్లాగింగ్ సక్రియం చేయబడుతుంది</translation> <translation id="6699880231565102694">రిమోట్ ప్రాప్యత హోస్ట్ల కోసం రెండు-కారక ప్రామాణీకరణను ప్రారంభిస్తుంది</translation> -<translation id="6702257826895463228">ఏకకాలంలో నావిగేట్ చేయడానికి మరియు పాప్-అప్లను తెరవడానికి సైట్లను అనుమతించండి. - - పూర్తి వివరణ కోసం, https://www.chromestatus.com/features/5675755719622656ని చూడండి. - ఈ విధానం ప్రారంభించబడితే, ఏకకాలంలో నావిగేట్ చేయడానికి మరియు కొత్త విండోలు/ట్యాబ్లను తెరవడానికి సైట్లు అనుమతించబడతాయి. - ఈ విధానం నిలిపివేయబడితే లేదా సెట్ చేయకపోతే, ఏకకాలంలో నావిగేట్ చేయడం మరియు కొత్త విండో/ట్యాబ్ను తెరవడం కోసం సైట్లు అనుమతించబడవు.</translation> <translation id="6724842112053619797">మీరు ఈ సెట్టింగ్ని ఆరంభించినట్లయితే, బుక్మార్క్లు, స్వీయపూరణ డేటా, పాస్వర్డ్లు మొదలైన <ph name="PRODUCT_NAME" /> ప్రొఫైల్లలో నిల్వ చేయబడిన సెట్టింగ్లు రోమింగ్ వినియోగదారు ప్రొఫైల్ ఫోల్డర్లో లేదా <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> విధానం ద్వారా నిర్వాహకుడు పేర్కొన్న స్థానంలో నిల్వ చేయబడిన ఫైల్లో కూడా వ్రాయబడతాయి. ఈ విధానం ఆరంభమైతే క్లౌడ్ సింక్ నిలిపివేయబడుతుంది. ఈ విధానం నిలిపివేయబడినా లేదా సెట్ చేయకుండా వదిలివేయబడినా, సాధారణ స్థానిక ప్రొఫైల్లు మాత్రమే వినియోగించబడతాయి.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index e749136..09c3b71 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -27,6 +27,7 @@ หากมีการตั้งค่านโยบายนี้ หน้าจอการลงชื่อเข้าใช้จะแสดงเป็นภาษาที่ได้มาจากค่าแรกของนโยบายนี้ทุกครั้ง (นโยบายได้รับการกำหนดค่าเป็นรายการเพื่อความเข้ากันได้ในอนาคต) หากไม่ได้ตั้งค่านโยบายนี้หรือตั้งค่าเป็นรายการที่ว่างเปล่า หน้าจอการลงชื่อเข้าใช้จะแสดงเป็นภาษาที่ผู้ใช้ใช้ในเซสชันล่าสุด หากนโยบายนี้มีการตั้งค่าภาษาไม่ถูกต้อง หน้าจอการลงชื่อเข้าใช้จะแสดงเป็นภาษาสำรอง (ปัจจุบันคือ en-US)</translation> <translation id="1062011392452772310">เปิดใช้งานการยืนยันระยะไกลสำหรับอุปกรณ์</translation> <translation id="1062407476771304334">แทนที่</translation> +<translation id="1079801999187584280">ไม่อนุญาตการใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์</translation> <translation id="109166998561583554">ทริกเกอร์การป้องกันด้วยรหัสผ่านสำหรับบัญชีที่ได้รับแจ้งว่ามีความเสี่ยง</translation> <translation id="1093082332347834239">หากเปิดใช้การตั้งค่านี้ ระบบจะเรียกใช้โฮสต์ความช่วยเหลือระยะไกลในการดำเนินการที่มีสิทธิ์ <ph name="UIACCESS_PERMISSION_NAME" /> ซึ่งจะทำให้ผู้ใช้ระยะไกลโต้ตอบกับหน้าต่างที่ลอยอยู่บนเดสก์ท็อปของผู้ใช้ในเครื่องได้ @@ -79,6 +80,7 @@ แฟกเตอร์การปรับระดับต้องเป็น 100% หรือมากกว่า</translation> <translation id="131353325527891113">แสดงชื่อผู้ใช้บนหน้าจอการลงชื่อเข้าใช้</translation> +<translation id="1325295456374328159">กำหนดค่าภาษาที่อนุญาตในเซสชันของผู้ใช้</translation> <translation id="1327466551276625742">เปิดใช้พรอมต์การกำหนดค่าเครือข่ายเมื่อออฟไลน์</translation> <translation id="1330145147221172764">เปิดใช้แป้นพิมพ์บนหน้าจอ</translation> <translation id="13356285923490863">ชื่อนโยบาย</translation> @@ -91,6 +93,13 @@ <translation id="1387596372902085462">เลือกว่าจะเปิดใช้การเชื่อถือโครงสร้างพื้นฐานคีย์สาธารณะเดิมของ Symantec Corporation หรือไม่</translation> <translation id="1393485621820363363">เครื่องพิมพ์สำหรับอุปกรณ์ขององค์กรที่มีการเปิดใช้</translation> <translation id="1397855852561539316">URL ที่แนะนำโดยผู้ให้บริการการค้นหาเริ่มต้น</translation> +<translation id="1424081297104898791">อนุญาตให้คุณควบคุมว่าจะใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ที่ใดบ้าง + + หากตั้งค่านโยบายนี้เป็น "DeveloperToolsDisallowedForForceInstalledExtensions" (ค่า 0 ซึ่งเป็นค่าเริ่มต้นสำหรับผู้ใช้องค์กร) คุณจะเข้าถึงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคอนโซล JavaScript ได้โดยทั่วไป แต่จะเข้าถึงไม่ได้ในบริบทส่วนขยายที่ติดตั้งโดยนโยบายองค์กร + หากตั้งค่านโยบายเป็น "DeveloperToolsAllowed" (ค่า 1 ซึ่งเป็นค่าเริ่มต้นสำหรับผู้ใช้ที่ไม่มีการจัดการ) คุณจะเข้าถึงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคอนโซล JavaScript ได้ และยังใช้ได้ในทุกบริบท รวมถึงในบริบทส่วนขยายที่ติดตั้งโดยนโยบายองค์กรด้วย + หากตั้งค่านโยบายนี้เป็น "DeveloperToolsDisallowed" (ค่า 2) คุณจะเข้าถึงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ไม่ได้และองค์ประกอบในเว็บไซต์จะไม่ได้รับการตรวจสอบอีกต่อไป แป้นพิมพ์ลัดและเมนูใดๆ หรือรายการเมนูตามบริบทที่ใช้เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์หรือคอนโซล JavaScript จะถูกปิดใช้ + + หากตั้งค่านโยบายเดิม DeveloperToolsDisabled เป็น "จริง" ระบบจะเพิกเฉยต่อค่าของนโยบายนี้และเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จะถูกปิดใช้</translation> <translation id="1426410128494586442">ใช่</translation> <translation id="1427655258943162134">ที่อยู่หรือ URL ของพร็อกซีเซิร์ฟเวอร์</translation> <translation id="1435659902881071157">การกำหนดค่าเครือข่ายระดับอุปกรณ์</translation> @@ -199,6 +208,7 @@ <translation id="1803646570632580723">รายชื่อของแอปพลิเคชันที่ตรึงจะแสดงในตัวเรียกใช้งาน</translation> <translation id="1808715480127969042">ปิดกั้นคุกกี้บนไซต์เหล่านี้</translation> <translation id="1810261428246410396">อนุญาตให้ใช้การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือแบบด่วน</translation> +<translation id="1826282708349731794">ควบคุมวิธีที่การทำความสะอาด Chrome รายงานข้อมูลไปยัง Google</translation> <translation id="1827523283178827583">ใช้พร็อกซีเซิร์ฟเวอร์แบบคงที่</translation> <translation id="1843117931376765605">อัตราการรีเฟรชสำหรับนโยบายผู้ใช้</translation> <translation id="1844620919405873871">กำหนดค่านโยบายที่เกี่ยวข้องกับการปลดล็อกด่วน</translation> @@ -582,6 +592,7 @@ นโยบายนี้ไม่มีผลต่อความสามารถในการกำหนดค่าเครื่องพิมพ์ของอุปกรณ์ใดๆ แต่เป็นเพียงนโยบายเพิ่มเติมการตั้งค่าเครื่องพิมพ์ของผู้ใช้แต่ละราย </translation> <translation id="2633084400146331575">เปิดใช้งานการตอบสนองด้วยเสียง</translation> +<translation id="2640843331263301324">เปิดใช้การทำความสะอาด Chrome ใน Windows</translation> <translation id="2646290749315461919">ช่วยให้คุณกำหนดว่าเว็บไซต์จะได้รับอนุญาตให้ติดตามตำแหน่งทางกายภาพของผู้ใช้หรือไม่ การติดตามตำแหน่งทางกายภาพของผู้ใช้สามารถได้รับอนุญาตตามค่าเริ่มต้น ปฏิเสธโดยค่าเริ่มต้น หรือระบบสามารถถามผู้ใช้ทุกครั้งที่เว็บไซต์ขอตำแหน่งทางกายภาพ หากนโยบายนี้ไม่มีการตั้งค่าไว้ จะมีการใช้ "AskGeolocation" และผู้ใช้สามารถจะเปลี่ยนแปลงได้</translation> <translation id="2647069081229792812">เปิดหรือปิดใช้การแก้ไขบุ๊กมาร์ก</translation> <translation id="2650049181907741121">การทำงานของอุปกรณ์เมื่อผู้ใช้ปิดฝา</translation> @@ -644,13 +655,6 @@ ถ้าใช้นโยบายนี้ ผู้ใช้จะใช้งานได้เฉพาะเครื่องพิมพ์ที่มีรหัสตรงกับค่าในนโยบาย รหัสดังกล่าวต้องตรงกับช่อง "ID" หรือ "GUID" ในไฟล์ที่ระบุใน <ph name="DEVICE_PRINTERS_POLICY" /> </translation> -<translation id="2844404652289407061">เปิดใช้ตัวเลือก "แตะเพื่อค้นหา" ในมุมมองเนื้อหาของ <ph name="PRODUCT_NAME" /> - - หากคุณเปิดใช้การตั้งค่านี้ แตะเพื่อค้นหาจะมีให้ผู้ใช้เลือกใช้ ผู้ใช้สามารถเลือกว่าจะเปิดหรือปิดฟีเจอร์นี้ได้ - - หากคุณปิดใช้การตั้งค่านี้ แตะเพื่อค้นหาจะถูกปิดใช้ทั้งหมด - - หากไม่ได้ตั้งค่านโยบายนี้ จะเทียบเท่ากับการเปิดใช้การตั้งค่า โปรดดูรายละเอียดข้างต้น</translation> <translation id="285480231336205327">เปิดใช้งานโหมดความคมชัดสูง</translation> <translation id="2854919890879212089">เป็นสาเหตุให้ <ph name="PRODUCT_NAME" /> ใช้เครื่องพิมพ์เริ่มต้นของระบบเป็นทางเลือกเริ่มต้นในหน้าตัวอย่างก่อนพิมพ์ แทนเครื่องพิมพ์ที่ใช้งานล่าสุด @@ -1201,12 +1205,14 @@ <translation id="4554651132977135445">โหมดประมวลผล Loopback ของนโยบายด้านผู้ใช้</translation> <translation id="4555850956567117258">เปิดใช้งานการยืนยันระยะไกลสำหรับผู้ใช้</translation> <translation id="4557134566541205630">URL หน้าแท็บใหม่ของผู้ให้บริการการค้นหาเริ่มต้น</translation> +<translation id="4567137030726189378">อนุญาตการใช้งานเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์</translation> <translation id="4600786265870346112">เปิดใช้งานเคอร์เซอร์ขนาดใหญ่</translation> <translation id="4604931264910482931">กำหนดค่าบัญชีดำการรับส่งข้อความดั้งเดิม</translation> <translation id="4613508646038788144">หากตั้งค่านโยบายเป็น False ซอฟต์แวร์ของบุคคลที่สามจะสามารถแทรกโค้ดที่สั่งการได้ลงในการประมวลผลของ Chrome หากไม่มีการตั้งค่านโยบายหรือตั้งค่าเป็น True ซอฟต์แวร์ของบุคคลที่สามจะถูกบล็อกไม่ให้แทรกโค้ดที่สั่งการได้ลงในการประมวลผลของ Chrome</translation> <translation id="4617338332148204752">ข้ามการตรวจสอบเมตาแท็กใน <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">กำหนดค่ารายการที่อนุญาตสำหรับการติดตั้งส่วนขยาย</translation> <translation id="4632343302005518762">อนุญาตให้ <ph name="PRODUCT_FRAME_NAME" /> จัดการประเภทเนื้อหาตามที่แสดงในรายการ</translation> +<translation id="4632566332417930481">ไม่อนุญาตการใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในส่วนขยายที่ติดตั้งโดยนโยบายองค์กร อนุญาตการใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในบริบทอื่นๆ</translation> <translation id="4633786464238689684">เปลี่ยนการทำงานที่เป็นค่าเริ่มต้นของแป้นแถวบนสุดเป็นแป้นฟังก์ชัน หากนโยบายนี้ตั้งค่าเป็น "จริง" แป้นแถวบนสุดของแป้นพิมพ์จะให้ผลการทำงานเป็นคำสั่งของแป้นฟังก์ชันตามค่าเริ่มต้น โดยจะต้องกดแป้นค้นหาเพื่อเปลี่ยนการทำงานกลับไปเป็นแป้นสื่อ @@ -1458,9 +1464,13 @@ หากตั้งค่านโยบายนี้เป็นรายการตัวระบุวิธีการป้อนข้อมูล วิธีการป้อนข้อมูลที่ระบุจะพร้อมใช้งานในหน้าจอการลงชื่อเข้าใช้ ระบบจะเลือกวิธีการป้อนข้อมูลแรกที่ระบุไว้ล่วงหน้า เมื่อมีการทำงานบนพ็อดผู้ใช้ในหน้าจอการลงชื่อเข้าใช้ วิธีการป้อนข้อมูลที่ผู้ใช้ใช้ล่าสุดจะพร้อมใช้งานนอกเหนือจากวิธีการป้อนข้อมูลที่ได้จากนโยบายนี้ หากไม่ได้ตั้งค่านโยบายนี้ วิธีการป้อนข้อมูลในหน้าจอการลงชื่อเข้าใช้จะได้รับมาจากภาษาที่หน้าจอการลงชื่อเข้าใช้แสดง ระบบจะไม่สนใจค่าที่ไม่ใช่ตัวระบุวิธีการป้อนข้อมูลที่ถูกต้อง</translation> <translation id="5423001109873148185">นโยบายนี้บังคับให้นำเข้าเครื่องมือค้นหาจากเบราว์เซอร์เริ่มต้นปัจจุบันหากมีการเปิดใช้งานอยู่ หากมีการเปิดใช้งาน นโยบายนี้จะมีผลต่อข้อความโต้ตอบการนำเข้าด้วย หากปิดใช้งาน จะไม่มีการนำเข้าเครื่องมือค้นหาเริ่มต้น หากไม่มีการตั้งค่าไว้ ผู้ใช้อาจได้รับคำถามว่าจะนำเข้าหรือไม่ หรือการนำเข้าอาจเกิดขึ้นโดยอัตโนมัติ</translation> <translation id="5423197884968724595">ชื่อข้อจำกัดของ Android WebView:</translation> +<translation id="5442026853063570579">นโยบายนี้ยังควบคุมการเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ของ Android เช่นกัน หากคุณตั้งค่านโยบายนี้เป็น "DeveloperToolsDisallowed" (ค่า 2) ผู้ใช้จะเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ไม่ได้ หากตั้งค่านโยบายเป็นค่าอื่นหรือไม่ได้ตั้งค่า ผู้ใช้จะเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ได้ด้วยการแตะหมายเลขบิวด์ 7 ครั้งในแอปการตั้งค่าของ Android</translation> <translation id="5447306928176905178">เปิดการรายงานข้อมูลหน่วยความจำ (JS ขนาดใหญ่) บนหน้า (กำหนดให้เลิกใช้แล้ว)</translation> <translation id="5457065417344056871">เปิดใช้โหมดผู้มาเยือนในเบราว์เซอร์</translation> <translation id="5457924070961220141">ช่วยให้คุณสามารถกำหนดค่าตัวแสดงผล HTML เริ่มต้นเมื่อทำการติดตั้ง <ph name="PRODUCT_FRAME_NAME" /> การตั้งค่าเริ่มต้นที่ใช้เมื่อไม่มีการตั้งค่านโยบายนี้คือการอนุญาตให้เบราว์เซอร์ของโฮสต์ทำการแสดงผล แต่คุณสามารถเลือกที่จะแทนที่การตั้งค่านี้และทำให้ <ph name="PRODUCT_FRAME_NAME" /> แสดงหน้า HTML โดยค่าเริ่มต้น</translation> +<translation id="5459155981813668716">กำหนดค่าภาษาที่ <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" /> จะเปลี่ยนไปใช้ค่าที่ถูกต้องค่าแรกที่นโยบายระบุไว้หรือเปลี่ยนไปใช้ภาษาสำรอง (ซึ่งตอนนี้คือ en-US) หากนโยบายนี้มีเฉพาะรายการที่ไม่ถูกต้อง</translation> <translation id="5464816904705580310">กำหนดการตั้งค่าสำหรับผู้ใช้ที่ได้รับการจัดการ</translation> <translation id="546726650689747237">ระยะหน่วงเวลาการหรี่แสงหน้าจอเมื่อทำงานโดยใช้ไฟ AC</translation> <translation id="5469484020713359236">ช่วยให้คุณกำหนดรายการของรูปแบบ URL ที่ระบุไซต์ที่ได้รับอนุญาตให้ตั้งค่าคุกกี้ หากนโยบายนี้ไม่มีการตั้งค่าไว้ จะใช้ค่าเริ่มต้นทั่วไปสำหรับไซต์ทั้งหมด ทั้งจากนโยบาย "DefaultCookiesSetting" หากมีการตั้งค่าไว้ หรือจากการกำหนดค่าส่วนบุคคลของผู้ใช้เอง</translation> @@ -1574,7 +1584,6 @@ หากนโยบายนี้ไม่ได้มีการตั้งค่า เสียงพูดตอบรับจะถูกปิดใช้งานเมื่อหน้าจอการเข้าสู่ระบบแสดงเป็นครั้งแรก ผู้ใช้สามารถเปิดหรือปิดใช้งานเสียงพูดตอบรับได้ตลอดเวลา และสถานะของเสียงพูดตอบรับบนหน้าจอการเข้าสู่ระบบจะยังคงอยู่ระหว่างผู้ใช้</translation> <translation id="5868414965372171132">การกำหนดค่าเครือข่ายระดับผู้ใช้</translation> -<translation id="588135807064822874">เปิดใช้แตะเพื่อค้นหา</translation> <translation id="5883015257301027298">การตั้งค่าคุกกี้เริ่มต้น</translation> <translation id="5887414688706570295">กำหนดค่าส่วนนำหน้าของ TalkGadget ที่จะถูกใช้โดยโฮสต์การเข้าถึงระยะไกลและป้องกันไม่ให้ผู้ใช้ทำการเปลี่ยนแปลง @@ -1678,6 +1687,7 @@ <translation id="6036523166753287175">เปิดใช้งานไฟร์วอลล์ Traversal จากโฮสต์สำหรับการเข้าถึงระยะไกล</translation> <translation id="6070667616071269965">รูปแบบแป้นพิมพ์ในหน้าจอการลงชื่อเข้าใช้อุปกรณ์</translation> <translation id="6074963268421707432">ไม่อนุญาตให้ไซต์ใดๆ แสดงการแจ้งเตือนของเดสก์ท็อป</translation> +<translation id="6074964551275531965">กำหนดระยะเวลาสำหรับการแจ้งเตือนการอัปเดต</translation> <translation id="6076099373507468537">กำหนดรายการอุปกรณ์ USB ที่ได้รับอนุญาตให้ถอดออกจากไดรเวอร์ Kernel เพื่อที่จะใช้งานผ่าน chrome.usb API ภายในเว็บแอปพลิเคชันโดยตรง รายการต่างๆ เป็นการจับคู่ระหว่างตัวระบุผู้ให้บริการ USB และตัวระบุผลิตภัณฑ์เพื่อที่จะระบุฮาร์ดแวร์ที่เจาะจง หากไม่มีการกำหนดค่านโยบายนี้ รายการอุปกรณ์ USB ที่ถอดได้นั้นจะว่างเปล่า</translation> @@ -1750,6 +1760,11 @@ <translation id="6392973646875039351">เปิดใช้งานฟีเจอร์ป้อนอัตโนมัติของ <ph name="PRODUCT_NAME" /> และช่วยให้ผู้ใช้กรอกข้อมูลเว็บฟอร์มอัตโนมัติโดยใช้ข้อมูลที่เก็บไว้ก่อนหน้านี้ เช่น ที่อยู่หรือข้อมูลบัตรเครดิต หากคุณปิดใช้งานการตั้งค่านี้ ผู้ใช้จะใช้งานการป้อนอัตโนมัติไม่ได้ หากคุณเปิดใช้งานการตั้งค่านี้หรือไม่ได้กำหนดค่า การป้อนอัตโนมัติจะอยู่ภายใต้การควบคุมของผู้ใช้ ซึ่งจะช่วยให้ผู้ใช้สามารถกำหนดค่าโปรไฟล์ป้อนอัตโนมัติและปิดหรือเปิดการป้อนอัตโนมัติได้ตามที่ผู้ใช้เห็นสมควร</translation> <translation id="6394350458541421998">นโยบายนี้ได้ถูกยกเลิกไปตั้งแต่ <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 29 โปรดใช้นโยบาย PresentationScreenDimDelayScale แทน</translation> <translation id="6401669939808766804">ออกจากระบบให้ผู้ใช้</translation> +<translation id="6412477120967771054">การตั้งค่าเป็น "เท็จ" จะป้องกันไม่ให้การทำความสะอาด Chrome สแกนหาซอฟต์แวร์ไม่พึงประสงค์ในระบบและทำความสะอาด การทริกเกอร์การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings/cleanup จะถูกปิดใช้ + + หากตั้งค่าเป็น "จริง" หรือไม่ได้ตั้งค่า การทำความสะอาด Chrome จะสแกนหาซอฟต์แวร์ไม่พึงประสงค์ในระบบอยู่เป็นระยะและหากพบ ระบบจะถามผู้ใช้ว่าต้องการลบซอฟต์แวร์ดังกล่าวไหม การทริกเกอร์การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings/cleanup จะถูกเปิดใช้ + + นโยบายนี้ไม่มีในเครื่อง Windows ที่ไม่ได้เข้าร่วมโดเมน <ph name="MS_AD_NAME" /></translation> <translation id="6417861582779909667">ช่วยให้คุณกำหนดรายการของรูปแบบ URL ที่ระบุไซต์ที่ไม่ได้รับอนุญาตให้ตั้งค่าคุกกี้ หากนโยบายนี้ไม่มีการตั้งค่าไว้ จะใช้ค่าเริ่มต้นของทั่วโลกสำหรับไซต์ทั้งหมด ทั้งจากนโยบาย "DefaultCookiesSetting" หากมีการตั้งค่าไว้ หรือจากการกำหนดค่าส่วนบุคคลของผู้ใช้</translation> <translation id="6426205278746959912">คุณไม่สามารถบังคับให้แอป Android ใช้พร็อกซี แต่จะมีการตั้งค่าพร็อกซีชุดย่อยชุดหนึ่งที่ใช้ได้กับแอป Android ซึ่งแอปอาจเลือกที่จะปฏิบัติตาม: @@ -1770,6 +1785,13 @@ หากต้องการควบคุมเว็บไซต์ที่อนุญาตให้ Flash ทำงาน ให้ดูนโยบาย "DefaultPluginsSetting", "PluginsAllowedForUrls" และ "PluginsBlockedForUrls" หากปิดใช้งานการตั้งค่านี้หรือไม่ได้กำหนดค่าไว้ ระบบอาจบล็อกเนื้อหา Flash จากแหล่งที่มาอื่นหรือเนื้อหาขนาดเล็ก</translation> +<translation id="6535639183431116351">นโยบายนี้เลิกใช้งานแล้วใน M68 โปรดใช้ DeveloperToolsAvailability แทน + + ปิดใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคอนโซล JavaScript + + หากคุณเปิดใช้การตั้งค่านี้ คุณจะเข้าถึงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ไม่ได้ และองค์ประกอบในเว็บไซต์จะไม่ได้รับการตรวจสอบอีกต่อไป แป้นพิมพ์ลัดและเมนูใดๆ หรือรายการเมนูบริบทที่ใช้เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์หรือคอนโซล JavaScript จะถูกปิดใช้ + + การตั้งค่าตัวเลือกนี้เป็นปิดใช้หรือไม่ตั้งค่าเลยทำให้ผู้ใช้สามารถใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์และคอนโซล JavaScript ได้</translation> <translation id="653608967792832033">ระบุระยะเวลาก่อนล็อกหน้าจอเมื่อไม่มีการป้อนข้อมูลจากผู้ใช้ขณะทำงานโดยใช้พลังงานแบตเตอรี่ เมื่อนโยบายนี้ถูกตั้งค่าไว้ด้วยค่าที่มากกว่าศูนย์ จะเป็นการระบุระยะเวลาที่ผู้ใช้ต้องไม่ใช้งานก่อนที่ <ph name="PRODUCT_OS_NAME" /> จะล็อกหน้าจอ @@ -1835,11 +1857,6 @@ <translation id="6689792153960219308">รายงานสถานะของฮาร์ดแวร์</translation> <translation id="6698071416141001300">เรียกใช้การป้องกันด้วยรหัสผ่านสำหรับบัญชีที่ได้รับแจ้งว่ามีความเสี่ยงเมื่อมีการใช้รหัสผ่านซ้ำ</translation> <translation id="6699880231565102694">เปิดใช้งานการตรวจสอบสิทธิ์แบบสองปัจจัยสำหรับโฮสต์การเข้าถึงระยะไกล</translation> -<translation id="6702257826895463228">อนุญาตให้เว็บไซต์นำทางและเปิดป๊อปอัปพร้อมกันได้ - - ดูคำอธิบายฉบับเต็มได้ที่ https://www.chromestatus.com/features/5675755719622656 - หากเปิดใช้นโยบายนี้ เว็บไซต์จะมีสิทธิ์นำทางและเปิดหน้าต่าง/แท็บใหม่ไปพร้อมกันได้ - หากปิดใช้หรือไม่ได้ตั้งค่านโยบายนี้ เว็บไซต์จะไม่มีสิทธิ์นำทางและเปิดหน้าต่าง/แท็บใหม่ไปพร้อมกัน</translation> <translation id="6724842112053619797">หากคุณเปิดใช้การตั้งค่านี้ ระบบจะบันทึกการตั้งค่าที่เก็บไว้ในโปรไฟล์ <ph name="PRODUCT_NAME" /> เช่น บุ๊กมาร์ก ข้อมูลการป้อนอัตโนมัติ รหัสผ่าน ไปยังไฟล์ที่เก็บไว้ในโฟลเดอร์โปรไฟล์ผู้ใช้โรมมิ่งหรือตำแหน่งที่ผู้ดูแลระบบระบุไว้ผ่านนโยบาย <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> ด้วย การเปิดใช้นโยบายนี้จะปิดใช้คลาวด์ซิงค์ หากปิดใช้หรือไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้เฉพาะโปรไฟล์ปกติในเครื่องเท่านั้น @@ -2189,6 +2206,7 @@ ดูข้อมูลเพิ่มเติมเกี่ยวกับ Safe Browsing ได้ที่ https://developers.google.com/safe-browsing</translation> <translation id="7643883929273267746">จำกัดบัญชีที่แสดงอยู่ใน <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">กำหนดว่าควรจะเปิดใช้งานการโรมมิ่งข้อมูลสำหรับอุปกรณ์หรือไม่ หากตั้งค่าเป็น "จริง" การโรมมิ่งข้อมูลจะได้รับอนุญาต หากไม่กำหนดค่าหรือตั้งค่าเป็น "เท็จ" จะไม่สามารถใช้การโรมมิ่งข้อมูลได้</translation> +<translation id="7673194325208122247">ระยะเวลา (มิลลิวินาที)</translation> <translation id="7683777542468165012">การรีเฟรชนโยบายแบบไดนามิก</translation> <translation id="7694807474048279351">กำหนดเวลาการรีบูตอัตโนมัติหลังจากมีการใช้การอัปเดตของ <ph name="PRODUCT_OS_NAME" /> @@ -2314,6 +2332,13 @@ <translation id="7961779417826583251">ปิดการบังคับใช้ความโปร่งใสของใบรับรองสำหรับรายการผู้ออกใบรับรองเดิม</translation> <translation id="7974114691960514888">นโยบายนี้ไม่ได้รับการสนับสนุนอีกต่อไป เปิดใช้งานการใช้ STUN และเซิร์ฟเวอร์ถ่ายทอดเมื่อเชื่อมต่อกับไคลเอ็นต์ระยะไกล หากการตั้งค่านี้ถูกเปิดใช้งาน เครื่องนี้จะสามารถค้นพบและเชื่อมต่อกับเครื่องโฮสต์ระยะไกลแม้ว่าจะถูกกั้นโดยไฟร์วอลล์ หากการตั้งค่านี้ถูกปิดใช้งานและการเชื่อมต่อ UDP ขาออกถูกกรองโดยไฟร์วอลล์ เครื่องนี้จะสามารถเชื่อมต่อไปยังเครื่องโฮสต์ภายในเครือข่ายท้องถิ่นเท่านั้น</translation> <translation id="7976157349247117979">ชื่อของปลายทาง <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">หากไม่ได้ตั้งค่า เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบอาจรายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google เพื่อให้สอดคล้องกับนโยบายซึ่งกำหนดโดย SafeBrowsingExtendedReportingEnabled จากนั้นการทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการทำความสะอาดซอฟต์แวร์ไม่พึงประสงค์ไหม ผู้ใช้มีสิทธิ์เลือกแชร์ผลการทำความสะอาดกับ Google เพื่อช่วยในการตรวจพบซอฟต์แวร์ไม่พึงประสงค์ในอนาคต ผลลัพธ์จะมีข้อมูลเมตาของไฟล์และคีย์รีจิสทรีตามที่อธิบายไว้ในสมุดปกขาวเรื่องความเป็นส่วนตัวของ Chrome + + หากตั้งค่าเป็น "เท็จ" เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบจะไม่รายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google โดยจะลบล้างนโยบายใดๆ ที่ตั้งค่าไว้โดย SafeBrowsingExtendedReportingEnabled การทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการทำความสะอาดซอฟต์แวร์ไม่พึงประสงค์ไหม ระบบจะไม่รายงานผลลัพธ์ของการทำความสะอาดไปยัง Google และผู้ใช้ก็จะไม่มีตัวเลือกในการรายงานด้วย + + หากตั้งค่าเป็น "จริง" เมื่อการทำความสะอาดของ Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบอาจรายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google เพื่อให้สอดคล้องกับนโยบายซึ่งกำหนดโดย SafeBrowsingExtendedReportingEnabled การทำความสะอาดของ Chrome จะถามผู้ใช้ว่าต้องการทำความสะอาดซอฟต์แวร์ไม่พึงประสงค์ไหม ระบบจะรายงานผลการทำความสะอาดไปยัง Google และผู้ใช้จะไม่มีตัวเลือกในการระงับการรายงานนี้ + + นโยบายนี้ไม่มีในเครื่อง Windows ที่ไม่ได้เข้าร่วมโดเมน <ph name="MS_AD_NAME" /></translation> <translation id="7978060394348264922"> ขอแนะนำให้ดูการตั้งค่านโยบาย IsolateOrigins เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ทั้งการแยกและการจำกัดผลกระทบที่มีต่อผู้ใช้ด้วยการใช้ @@ -2435,6 +2460,7 @@ <translation id="8300455783946254851">เมื่อตั้งค่าเป็น True จะปิดใช้การซิงค์ Google ไดรฟ์ในแอป Files ของ <ph name="PRODUCT_OS_NAME" /> เมื่อใช้การเชื่อมต่อเครือข่ายมือถือ ในกรณีดังกล่าว ข้อมูลจะซิงค์กับ Google ไดรฟ์เมื่อเชื่อมต่อผ่าน Wi-Fi หรืออินเทอร์เน็ตเท่านั้น หากไม่มีการตั้งค่าหรือตั้งค่าเป็น False ผู้ใช้จะสามารถโอนไฟล์ไปยัง Google ไดรฟ์ผ่านการเชื่อมต่อเครือข่ายมือถือ</translation> +<translation id="8300992833374611099">ควบคุมว่าเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จะใช้ในที่ใดได้บ้าง</translation> <translation id="8312129124898414409">ช่วยให้คุณกำหนดว่าเว็บไซต์ได้รับอนุญาตให้ใช้การสร้างคีย์หรือไม่ โดยสามารถอนุญาตหรือไม่อนุญาตให้เว็บไซต์ทั้งหมดใช้การสร้างคีย์ หากไม่ได้ตั้งค่านโยบายนี้ไว้ ระบบจะใช้ "BlockKeygen" และผู้ใช้จะสามารถเปลี่ยนแปลงได้</translation> @@ -2662,6 +2688,11 @@ <translation id="9035964157729712237">รหัสส่วนขยายที่ได้รับการยกเว้นจากรายการที่ไม่อนุญาต</translation> <translation id="9042911395677044526">อนุญาตให้ใช้การกำหนดค่าเครือข่ายแบบพุชสำหรับผู้ใช้แต่ละคนของอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> การกำหนดค่าอุปกรณ์จะเป็นสตริงรูปแบบ JSON ตามที่กำหนดโดยรูปแบบการกำหนดค่าเครือข่ายแบบเปิดซึ่งอธิบายไว้ที่ <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">ระบุว่ากิจกรรมวิดีโอมีผลต่อการจัดการพลังงานหรือไม่</translation> +<translation id="9085839450090699752">อนุญาตให้คุณตั้งค่าระยะเวลา (หน่วยเป็นมิลลิวินาที) ที่จะแสดงการแจ้งเตือนให้ผู้ใช้ทราบว่าต้องเปิด <ph name="PRODUCT_NAME" /> ขึ้นมาใหม่หรือต้องรีสตาร์ทอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> เพื่อนำอัปเดตที่รอดำเนินการไปใช้ + + ระหว่างช่วงเวลานี้ ผู้ใช้จะได้รับการแจ้งเตือนอยู่เรื่อยๆ ว่าต้องอัปเดต สำหรับอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> การแจ้งเตือนให้รีสตาร์ทจะปรากฏในถาดระบบเมื่อพบการอัปเกรด และการแจ้งเตือนจะเปลี่ยนสีเมื่อระยะการแจ้งเตือนผ่านไปครึ่งหนึ่งแล้ว และจะเปลี่ยนสีอีกครั้งเมื่อการแจ้งเตือนครบกำหนด สำหรับเบราว์เซอร์ <ph name="PRODUCT_NAME" /> เมนูแอปจะเปลี่ยนไปเพื่อบ่งชี้ว่าคุณต้องเปิดเบราว์เซอร์ขึ้นมาใหม่เมื่อถึง 1 ส่วน 3 ของระยะเวลาแจ้งเตือนที่กำหนดไว้ การแจ้งเตือนจะเปลี่ยนสีเมื่อถึง 2 ส่วน 3 ของระยะเวลาทั้งหมด และเปลี่ยนสีอีกครั้งเมื่อการแจ้งเตือนครบกำหนด การแจ้งเตือนอื่นๆ ที่เปิดใช้โดยนโยบาย <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> สำหรับเบราว์เซอร์จะใช้กำหนดการแจ้งเตือนเดียวกันนี้ + + หากไม่ได้ตั้งค่า ระบบจะใช้ระยะเวลาเริ่มต้นที่ 345,600,000 มิลลิวินาที (4 วัน) สำหรับอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> และ 604,800,000 มิลลิวินาที (1 สัปดาห์) สำหรับเบราว์เซอร์</translation> <translation id="9088433379343318874">เปิดใช้ผู้ให้บริการเนื้อหาสำหรับผู้ใช้ภายใต้การดูแล</translation> <translation id="9088444059179765143">กำหนดค่าวิธีการตรวจหาเขตเวลาอัตโนมัติ</translation> <translation id="9096086085182305205">รายการที่อนุญาตสำหรับเซิร์ฟเวอร์การตรวจสอบสิทธิ์</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index d4d4ed0..b66148f2 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -28,6 +28,7 @@ Bu politika ayarlanırsa, oturum açma ekranı her zaman bu politikanın ilk değerinde belirtilen yerel ayarda görüntülenir (politika, ileriye dönük uyumluluk için bir liste olarak tanımlanmaktadır). Bu politika ayarlanmazsa veya boş bir liste sağlanırsa oturum açma ekranı, kullanıcının son oturumundaki yerel ayarda görüntülenir. Bu politika için belirtilen yerel ayar geçerli değilse oturum açma ekranı yedek yerel ayarda (şu anda en-US) görüntülenir.</translation> <translation id="1062011392452772310">Cihaz için uzaktan doğrulamayı etkinleştir</translation> <translation id="1062407476771304334">Değiştir</translation> +<translation id="1079801999187584280">Geliştirici Araçları'nın kullanımına izin verme</translation> <translation id="109166998561583554">Şifre koruma hizmetinin risk altındaki hesabı işaretleme tetikleyicisi</translation> <translation id="1093082332347834239">Bu ayar etkinleştirilirse uzaktan yardım ana makinesi bir işlemde <ph name="UIACCESS_PERMISSION_NAME" /> izinleriyle çalıştırılır. Bu durum, uzak kullanıcıların yerel kullanıcının masaüstünde yükseltilmiş pencerelerle etkileşimde bulunmasına olanak tanır. @@ -80,6 +81,7 @@ Ölçekleme faktörü %100 veya üzeri olmalıdır.</translation> <translation id="131353325527891113">Kullanıcı adlarını giriş ekranında göster</translation> +<translation id="1325295456374328159">Kullanıcı oturumunda izin verilen yerel ayarları yapılandır</translation> <translation id="1327466551276625742">Çevrimdışı iken ağ yapılandırma istemini etkinleştir</translation> <translation id="1330145147221172764">Ekran klavyesini etkinleştir</translation> <translation id="13356285923490863">Politika Adı</translation> @@ -92,6 +94,12 @@ <translation id="1387596372902085462">Symantec Corporation'ın Eski PKI Altyapısı'ndaki güvenin etkinleştirilip etkinleştirilmemesi</translation> <translation id="1393485621820363363">Etkinleştirilmiş kurumsal cihaz yazıcıları</translation> <translation id="1397855852561539316">Arama önerileri için varsayılan arama sağlayıcı URL'si</translation> +<translation id="1424081297104898791">Geliştirici Araçları'nın kullanılabileceği yerleri kontrol etmenize olanak tanır. + + Bu politika "DeveloperToolsDisallowedForForceInstalledExtensions" (kurumsal kullanıcılar için varsayılan değer olan 0 değeri) olarak ayarlanırsa, Geliştirici Araçları ve JavaScript konsoluna genel olarak erişilebilir ancak kurumsal politikaya göre yüklenen uzantıların bağlamında bunlara erişim sağlanamaz. + Bu politika "DeveloperToolsAllowed" (yönetilmeyen kullanıcılar için varsayılan değer olan 1 değeri) olarak ayarlanırsa, Geliştirici Araçları ve JavaScript konsoluna erişilebilir ve bunlar kurumsal politikaya göre yüklenen uzantılar bağlamı dahil tüm bağlamlarda kullanılır. + Bu politika "DeveloperToolsDisallowed" (2 değeri) olarak ayarlanırsa Geliştirici Araçları'na erişilemez ve web sitesi öğeleri bundan sonra incelenemez. Geliştirici Araçları veya JavaScript Konsolu'nu açmaya yönelik klavye kısayolları ve menü ya da içerik menüsü girişleri devre dışı bırakılır. + Eski DeveloperToolsDisabled politikası true (doğru) değerine ayarlanırsa bu politikanın değeri yoksayılır ve Geliştirici Araçları devre dışı bırakılır.</translation> <translation id="1426410128494586442">Evet</translation> <translation id="1427655258943162134">Proxy sunucunun adresi veya URL'si</translation> <translation id="1435659902881071157">Cihaz düzeyinde ağ yapılandırması</translation> @@ -209,6 +217,7 @@ <translation id="1803646570632580723">Başlatıcıda gösterilecek sabitlenmiş uygulamalar listesi</translation> <translation id="1808715480127969042">Bu sitelerdeki çerezleri engelle</translation> <translation id="1810261428246410396">Anında Tethering'in kullanılmasına izin ver.</translation> +<translation id="1826282708349731794">Chrome Temizleme Aracı'nın verileri Google'a raporlama şeklini kontrol eder</translation> <translation id="1827523283178827583">Sabit proxy sunucuları kullan</translation> <translation id="1843117931376765605">Kullanıcı politikası için yenileme hızı</translation> <translation id="1844620919405873871">Hızlı kilit açmayla ilgili politikaları yapılandırır.</translation> @@ -609,6 +618,7 @@ Bu politikanın, kullanıcıların ayrı ayrı cihazlardaki yazıcıları yapılandırıp yapılandıramamaları üzerinde herhangi bir etkisi yoktur. Ayrı ayrı kullanıcıların yazıcı yapılandırmalarını tamamlaması amaçlanmıştır. </translation> <translation id="2633084400146331575">Sözlü geribildirimi etkinleştir</translation> +<translation id="2640843331263301324">Windows'da Chrome Temizleme Aracı'nı etkinleştirir</translation> <translation id="2646290749315461919">Web sitelerinin kullanıcının fiziksel konumunu izlemelerine izin verilip verilmeyeceğini ayarlamanıza olanak tanır. Kullanıcıların fiziksel konumunun izlenmesine varsayılan olarak izin verilebilir, bu varsayılan olarak reddedilebilir veya bir web sitesi her fiziksel konum isteğinde bulunduğunda kullanıcıya sorulabilir. Bu politika ayarlanmadan bırakılırsa, 'AskGeolocation' kullanılır ve kullanıcı bu ayarı değiştirebilir.</translation> @@ -678,13 +688,6 @@ Bu politika kullanılırsa, kullanıcı yalnızca kimlikleri bu politikadaki değerlerle eşleşen yazıcıları kullanabilir. Kimliklerin <ph name="DEVICE_PRINTERS_POLICY" /> politikasında belirtilen dosyadaki "id" veya "guid" alanlarına karşılık gelmesi gerekir. </translation> -<translation id="2844404652289407061"><ph name="PRODUCT_NAME" /> ürününün içerik görünümünde Dokun ve Ara özelliğinin kullanılabilmesini sağlar. - - Bu ayarı etkinleştirirseniz, kullanıcı Dokun ve Ara özelliğini kullanabilir ve özelliği istediği gibi açıp kapatabilir. - - Bu özelliği devre dışı bırakırsanız, Dokun ve Ara özelliği tümüyle devre dışı kalır. - - Bu politika ayarlanmadan bırakılırsa, etkinleştirilmiş gibi görev görür (yukarıdaki açıklamaya bakın).</translation> <translation id="285480231336205327">Yüksek kontrast modunu etkinleştir</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" /> ürününün, Baskı Önizleme'de varsayılan seçenek olarak en son kullanılan yazıcı yerine sistem varsayılan yazıcısını kullanmasına neden olur. @@ -1256,12 +1259,14 @@ <translation id="4554651132977135445">Kullanıcı politikası geri döngü işleme modu</translation> <translation id="4555850956567117258">Kullanıcı için uzaktan doğrulamayı etkinleştir</translation> <translation id="4557134566541205630">Varsayılan arama sağlayıcısı yeni sekme sayfası URL'si</translation> +<translation id="4567137030726189378">Geliştirici Araçları'nın kullanımına izin verir</translation> <translation id="4600786265870346112">Büyük imleci etkinleştir</translation> <translation id="4604931264910482931">Yerel mesajlaşma kara listesini yapılandır</translation> <translation id="4613508646038788144">Bu politika false (yanlış) değerine ayarlanırsa üçüncü taraf yazılımlarının Chrome işlemlerine çalıştırılabilir kod yerleştirmelerine izin verilir. Politika ayarlanmazsa veya true (doğru) değerine ayarlanırsa üçüncü taraf yazılımlarının Chrome işlemlerine çalıştırılabilir kod yerleştirmeleri engellenir.</translation> <translation id="4617338332148204752"><ph name="PRODUCT_FRAME_NAME" /> cihazında meta etiket kontrolünü atla</translation> <translation id="4625915093043961294">Uzantı yükleme beyaz listesini yapılandır</translation> <translation id="4632343302005518762"><ph name="PRODUCT_FRAME_NAME" /> için listelenen içerik türlerini işlemeye izin ver</translation> +<translation id="4632566332417930481">Kurumsal politika tarafından yüklenen uzantılarda Geliştirici Araçları kullanımına izin verme, diğer bağlamlarda Geliştirici Araçları kullanımına izin ver</translation> <translation id="4633786464238689684">Üst sıra tuşlarının varsayılan davranışını işlev tuşları olarak değiştirir. Bu politika true değerine ayarlanırsa klavyedeki tuşların en üst sırası, varsayılan ayara göre işlev tuşu komutları oluşturur. Bunların davranışını tekrar medya tuşlarına döndürmek için arama tuşuna basılması gerekir. @@ -1532,10 +1537,14 @@ Ayarlanmazsa, kullanıcıdan içe aktarma işlemini gerçekleştirmesi istenebilir veya içe aktarma otomatik olarak gerçekleşebilir.</translation> <translation id="5423197884968724595">Android WebView kısıtlama adı:</translation> +<translation id="5442026853063570579">Ayrıca bu politika Android Geliştirici Seçenekleri'ne erişimi de kontrol eder. Bu politikayı "DeveloperToolsDisallowed" (2 değeri) olarak ayarlarsanız kullanıcılar Geliştirici Seçenekleri'ne erişemez. Bu politikayı başka bir seçeneğe ayarlar veya ayarlamadan bırakırsanız kullanıcılar, Android ayarları uygulamasında derleme numarasına yedi kez dokunarak Geliştirici Seçenekleri'ne erişebilir.</translation> <translation id="5447306928176905178">Bellek bilgilerini (JS yığın boyutu) sayfada raporlamayı etkinleştir (kullanımdan kaldırıldı)</translation> <translation id="5457065417344056871">Tarayıcıda misafir modunu etkinleştir</translation> <translation id="5457924070961220141"><ph name="PRODUCT_FRAME_NAME" /> yüklendiğinde varsayılan HTML oluşturucusunu yapılandırabilmenizi sağlar. Bu politika ayarlanmadan bırakılırsa kullanılan varsayılan ayar, oluşturma işlemini ana makine tarayıcısının yapmasına izin vermektir, ancak isteğe bağlı olarak bu ayarı geçersiz kılabilir ve HTML sayfalarını oluşturma işleminin varsayılan olarak <ph name="PRODUCT_FRAME_NAME" /> tarafından yapılmasını sağlayabilirsiniz.</translation> +<translation id="5459155981813668716"><ph name="PRODUCT_OS_NAME" /> ürününün görüntülenebileceği yerel ayarları yapılandırır. + + Bu politika ayarlanırsa kullanıcı, <ph name="PRODUCT_OS_NAME" /> ürününü yalnızca bu politikada belirtilen yerel ayarların birinde görüntülenecek şekilde yapılandırabilir. Bu politika ayarlanmazsa veya boş bir listeye ayarlanırsa <ph name="PRODUCT_OS_NAME" />, desteklenen tüm yerel ayarlarda görüntülenebilir. Bu politika geçersiz değerler içeren bir listeye ayarlanırsa tüm geçersiz değerler yoksayılır. Bir kullanıcı daha önce <ph name="PRODUCT_OS_NAME" /> ürününü bu politika tarafından izin verilmeyen bir dilde görüntülenecek şekilde yapılandırmışsa, kullanıcı tekrar oturum açtığında görüntüleme yerel ayarı izin verilen bir yerel ayarla değiştirilir. Kullanıcı tercih edilen yerel ayarları yapılandırdıysa ve bu politika, tercih edilen yerel ayarlardan birine izin veriyorsa <ph name="PRODUCT_OS_NAME" />, bu yerel ayara geçiş yapar. Aksi halde, <ph name="PRODUCT_OS_NAME" /> bu politika tarafından belirtilen geçerli değere veya bu politika yalnızca geçersiz girişler içerirse bir yedek yerel ayara (şu anda en-US) geçiş yapar.</translation> <translation id="5464816904705580310">Yönetilen kullanıcılar için ayarları yapılandırın.</translation> <translation id="546726650689747237">AC güçle çalışırken ekran karartma gecikmesi</translation> <translation id="5469484020713359236">Çerezleri ayarlamalarına izin verilen sitelerin belirtildiği bir URL kalıpları listesini ayarlamanıza olanak tanır. @@ -1657,7 +1666,6 @@ Bu politika ayarlanmadan bırakılırsa, giriş ekranı ilk kez gösterildiğinde sesli geri bildirim devre dışıdır. Kullanıcılar sesli geri bildirimi her zaman etkinleştirebilir veya devre dışı bırakabilir ve sesli geri bildirimin giriş ekranındaki durumu kullanıcılar arasında kalıcıdır.</translation> <translation id="5868414965372171132">Kullanıcı düzeyi ağ yapılandırması</translation> -<translation id="588135807064822874">Dokun ve Ara'yı etkinleştir</translation> <translation id="5883015257301027298">Varsayılan çerezler ayarı</translation> <translation id="5887414688706570295">Uzaktan erişim ana makineleri tarafından kullanılacak olan TalkGadget önekini yapılandırır ve kullanıcıların bunu değiştirmesini önler. @@ -1760,6 +1768,7 @@ <translation id="6036523166753287175">Uzaktan erişim ana makinesinden güvenlik duvarı geçişini etkinleştir</translation> <translation id="6070667616071269965">Cihaz oturum açma ekranı klavye düzenleri</translation> <translation id="6074963268421707432">Hiçbir sitenin masaüstü bildirimi göstermesine izin verme</translation> +<translation id="6074964551275531965">Güncelleme bildirimlerinin dönemini ayarla</translation> <translation id="6076099373507468537">chrome.usb API'sı aracılığıyla doğrudan bir web uygulaması içinde kullanılması için çekirdek sürücüsünden çıkarılmasına izin verilen USB cihazlarının listesini tanımlar. Girişler, belirli bir donanımı tanımlamak için kullanılan USB Tedarikçi Tanımlayıcısı ve Ürün Tanımlayıcısı çiftlerinden oluşmaktadır. Bu politika yapılandırılmazsa, çıkarılabilecek USB cihazları listesi boş olur.</translation> @@ -1842,6 +1851,11 @@ Bu ayarı etkinleştirirseniz veya bir değer ayarlamazsanız, Otomatik Doldurma kullanıcının denetimi altında kalır. Böylece kullanıcılara, Otomatik Doldurma profillerini yapılandırma ve kendi istedikleri şekilde Otomatik Doldurma özelliğini açıp kapama olanağı verilir.</translation> <translation id="6394350458541421998">Bu politika, <ph name="PRODUCT_OS_NAME" /> Sürüm 29 itibariyle kullanımdan kaldırılmıştır. Lütfen bunun yerine PresentationScreenDimDelayScale politikasını kullanın.</translation> <translation id="6401669939808766804">Kullanıcının oturumunu kapat</translation> +<translation id="6412477120967771054">False (yanlış) değerine ayarlanırsa Chrome Temizleme Aracı'nın sistemdeki istenmeyen yazılımları taramasını ve temizleme işlemleri gerçekleştirmesini engeller. Chrome Temizleme Aracı'nın chrome://settings/cleanup adresinden manuel olarak tetiklenmesi devre dışı bırakılır. + + True (doğru) değerine ayarlanır veya ayarlanmadan bırakılırsa, Chrome Temizleme Aracı belirli aralıklarla sistemdeki istenmeyen yazılımları tarar ve böyle bir yazılım bulursa kullanıcıya, bulduğu yazılımı kaldırmak isteyip istemediğini sorar. Chrome Temizleme Aracı'nın chrome://settings adresinden manuel olarak tetiklenmesi etkinleştirilir. + + Bu politika, bir <ph name="MS_AD_NAME" /> alanına katılmamış Windows örneklerinde kullanılamaz.</translation> <translation id="6417861582779909667">Çerezleri ayarlamalarına izin verilmeyen sitelerin belirtildiği bir URL kalıpları listesini ayarlamanıza olanak tanır. Bu politika ayarlanmadan bırakılırsa, 'DefaultCookiesSetting' politikası ayarlandıysa buradaki değer, aksi takdirde kullanıcının kişisel yapılandırması tüm siteler için genel varsayılan değer olarak kullanılır.</translation> @@ -1864,6 +1878,13 @@ Hangi web sitelerinin Flash'ı çalıştırmasına izin verildiğini kontrol etmek için, "DefaultPluginsSetting", "PluginsAllowedForUrls" ve "PluginsBlockedForUrls" politikalarına bakın. Bu ayar devre dışı bırakılırsa veya hiç ayarlanmazsa, diğer kaynaklardan gelen Flash içeriği veya küçük içerik engellenebilir.</translation> +<translation id="6535639183431116351">Bu politika M68 sürümünde kullanımdan kaldırılmıştır; lütfen bunun yerine DeveloperToolsAvailability politikasını kullanın. + + Geliştirici Araçları'nı ve JavaScript konsolunu devre dışı bırakır. + + Bu ayarı etkinleştirirseniz, Geliştirici Araçları'na erişilemez ve web sitesi öğeleri bundan sonra incelenemez. Geliştirici Araçları veya JavaScript Konsolu'nu açmak için kullanılan klavye kısayolları ve menüler veya bağlam menüsü girişleri devre dışı bırakılır. + + Bu seçeneğin devre dışı olarak ayarlanması veya ayarlanmadan bırakılması, kullanıcının Geliştirici Araçları ve JavaScript konsolunu kullanmasına izin verir.</translation> <translation id="653608967792832033">Pil gücüyle çalışırken, ekranın kilitlenmesinden önce kullanıcı girişi olmadan geçecek süreyi belirtir. Bu politika sıfırdan büyük bir değere ayarlandığında, <ph name="PRODUCT_OS_NAME" /> tarafından ekran kilitlenmeden önce kullanıcının boşta kalması gereken süreyi belirtir. @@ -1925,15 +1946,10 @@ Bu politika ayarlanmadan bırakılırsa, tüm siteler için ya "DefaultWebUsbGuardSetting" politikasından (ayarlanmışsa) ya da kullanıcının kişisel yapılandırmasından gelen genel varsayılan değer kullanılır. - Bu politikadaki URL kalıplar WebUsbAskForUrls aracılığıyla yapılandırılan URL kalıplarıyla çakışmamalıdır. Bir URL her ikisinde de yer alırsa, bu iki politikadan hangisinin öncelikli olacağı belirsizdir.</translation> + Bu politikadaki URL kalıpları WebUsbAskForUrls aracılığıyla yapılandırılan URL kalıplarıyla çakışmamalıdır. Bir URL her ikisiyle de eşleşirse bu iki politikadan hangisinin öncelikli olacağı belirsizdir.</translation> <translation id="6689792153960219308">Donanım durumunu bildir</translation> <translation id="6698071416141001300">Şifre koruma hizmetinin risk altındaki hesabı işaretleme özelliği, şifre yeniden kullanımıyla tetiklendi</translation> <translation id="6699880231565102694">Uzaktan erişim ana makineleri için iki öğeli kimlik doğrulamayı etkinleştir</translation> -<translation id="6702257826895463228">Sitelerin eşzamanlı olarak gezinmesine ve pop-up açmasına izin verir. - - Tam açıklama için https://www.chromestatus.com/features/5675755719622656 adresine bakın. - Bu politika etkinleştirilirse sitelerin eşzamanlı olarak gezinmesine ve yeni pencereler/sekmeler açmasına izin verilir. - Bu politika devre dışı bırakılır veya ayarlanmazsa sitelerin eşzamanlı olarak gezinmesine ve yeni bir pencere/sekme açmasına izin verilmez.</translation> <translation id="6724842112053619797">Bu ayarı etkinleştirirseniz <ph name="PRODUCT_NAME" /> profillerinde depolanan yer işaretleri, otomatik doldurma verileri, şifreler gibi ayarlar Dolaşım kullanıcı profili klasöründe veya Yönetici tarafından <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> politikası aracılığıyla belirlenen bir konumda depolanan bir dosyaya daha yazılır. Bu politikanın etkinleştirilmesi halinde bulut senkronizasyonu devre dışı bırakılır. Bu politika devre dışı bırakılırsa veya ayarlanmazsa yalnızca normal yerel profiller kullanılır. @@ -2101,7 +2117,7 @@ Bu politika ayarlanmadan bırakılırsa, tüm siteler için ya "DefaultWebUsbGuardSetting" politikasından (ayarlanmışsa) ya da kullanıcının kişisel yapılandırmasından gelen genel varsayılan değer kullanılır. - Bu politikadaki URL kalıplar WebUsbAskForUrls aracılığıyla yapılandırılan URL kalıplarıyla çakışmamalıdır. Bir URL her ikisinde de yer alırsa, bu iki politikadan hangisinin öncelikli olacağı belirsizdir.</translation> + Bu politikadaki URL kalıpları WebUsbAskForUrls aracılığıyla yapılandırılan URL kalıplarıyla çakışmamalıdır. Bir URL her ikisiyle de eşleşirse bu iki politikadan hangisinin öncelikli olacağı belirsizdir.</translation> <translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> cihazları boştayken veya askıya alındığında kilidi etkinleştir. Bu ayarı etkinleştirirseniz uykudaki cihazlarının kilidini açabilmeleri için kullanıcılardan şifre girmeleri istenir. @@ -2301,6 +2317,7 @@ Güvenli Tarama hakkında daha fazla bilgi için https://developers.google.com/safe-browsing adresine bakın.</translation> <translation id="7643883929273267746"><ph name="PRODUCT_NAME" /> içinde görülebilen hesapları kısıtlama</translation> <translation id="7651739109954974365">Veri dolaşımının etkin olup olmayacağını belirler. True olarak ayarlanırsa, veri dolaşımına izin verilir. Hiç ayarlanmazsa veya false değerine ayarlanırsa, veri dolaşımına izin verilmez.</translation> +<translation id="7673194325208122247">Dönem (milisaniye)</translation> <translation id="7683777542468165012">Dinamik Politika Yenileme</translation> <translation id="7694807474048279351"><ph name="PRODUCT_OS_NAME" /> güncellemesi uygulandıktan sonra otomatik yeniden başlatma planla. @@ -2433,6 +2450,13 @@ Bu ayar devre dışı bırakılırsa ve giden UDP bağlantılarına güvenlik duvarı tarafından filtre uygulanıyorsa, bu makine yalnızca yerel ağ içindeki ana makinelere bağlanabilir.</translation> <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> hedefinin adı</translation> +<translation id="7977445800390854860">Ayarlanmadan bırakılırsa Chrome Temizleme Aracı istenmeyen yazılımları tespit eder, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikaya uygun şekilde taramayla ilgili meta verileri Google'a raporlayabilir. Chrome Temizleme Aracı, daha sonra kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar. Kullanıcı, ileride istenmeyen yazılımların tespiti konusunda yardımcı olması için temizleme işlemi sonuçlarının Google ile paylaşılmasını seçebilir. Bu sonuçlar, Chrome Gizlilik Raporu'nda açıklandığı gibi dosya meta verilerini ve kayıt defteri anahtarlarını içerir. + + False (yanlış) değerine ayarlanırsa Chrome Temizleme Aracı istenmeyen yazılımları tespit eder, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikayı geçersiz kılarak taramayla ilgili meta verileri Google'a raporlamaz. Chrome Temizleme Aracı, kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar. Temizleme işleminin sonuçları Google'a bildirilmez ve kullanıcıya bununla ilgili bir seçenek sunulmaz. + + True (doğru) değerine ayarlanırsa Chrome Temizleme Aracı istenmeyen yazılımları tespit eder, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikaya uygun şekilde taramayla ilgili meta verileri Google'a raporlayabilir. Chrome Temizleme Aracı, kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar. Temizleme işleminin sonuçları Google'a bildirilir ve kullanıcıya bunu önleme seçeneği sunulmaz. + + Bu politika, <ph name="MS_AD_NAME" /> alanına katılmamış Windows örneklerinde kullanılamaz.</translation> <translation id="7978060394348264922"> Hem izolasyondan hem de kullanıcılar için sınırlı etkiden en iyi şekilde yararlanmak üzere IsolateOrigins politika ayarına bakmak isteyebilirsiniz. Bunun için, izole etmek istediğiniz sitelerin listesiyle IsolateOrigins'i kullanabilirsiniz. Bu ayar (SitePerProcess) tüm siteleri izole eder. Bu politikanın etkinleştirilmesi halinde her site kendi işleminde çalışır. @@ -2558,6 +2582,7 @@ <translation id="8300455783946254851">Doğru değerine ayarlandığında, hücresel bağlantı kullanılırken <ph name="PRODUCT_OS_NAME" />, Files uygulamasında Google Drive senkronizasyonunu devre dışı bırakır. Bu durumda, veriler yalnızca Kablosuz veya Ethernet üzerinden bağlanıldığında Google Drive ile senkronize edilir. Hiç ayarlanmazsa veya Yanlış değerine ayarlanırsa kullanıcılar dosyaları hücresel bağlantılar üzerinden Google Drive'a aktarabilirler.</translation> +<translation id="8300992833374611099">Geliştirici Araçları'nın kullanılabileceği yerleri kontrol et</translation> <translation id="8312129124898414409">Web sitelerinin anahtar oluşturma işlevini kullanmasına izin verilip verilmeyeceğini ayarlamanıza olanak tanır. Anahtar oluşturma işlevini kullanma izni ya tüm web siteleri için verilebilir ya da hepsi için reddedilebilir. Bu politika ayarlanmadan bırakılırsa, "BlockKeygen" kullanılır ve kullanıcı bu ayarı değiştirebilir.</translation> @@ -2798,6 +2823,11 @@ <translation id="9035964157729712237">Kara listeden muaf tutulacak uzantı kimlikleri</translation> <translation id="9042911395677044526">Kullanıcılara ayrı ayrı uygulanacak ağ yapılandırmasını bir <ph name="PRODUCT_OS_NAME" /> cihazına iletmeye olanak verir. Ağ yapılandırması, Açık Ağ Yapılandırma biçimi tarafından <ph name="ONC_SPEC_URL" /> adresinde tanımlandığı gibi, JSON biçimli bir dizedir.</translation> <translation id="9084985621503260744">Video etkinliğinin güç yönetimini etkileyip etkilemeyeceğini belirtme</translation> +<translation id="9085839450090699752">Beklemedeki bir güncellemenin uygulanması için <ph name="PRODUCT_NAME" /> ürününün veya bir <ph name="PRODUCT_OS_NAME" /> cihazının yeniden başlatılması gerektiği konusunda kullanıcıların bilgilendirileceği dönemi milisaniye cinsinden ayarlamanıza olanak tanır. + + Bu dönem boyunca, kullanıcı güncelleme gereksinimi konusunda tekrarlanan bir şekilde bilgilendirilir. <ph name="PRODUCT_OS_NAME" /> cihazlarda, yeni sürüme geçme olanağı tespit edildiğinde sistem tepsisinde bir yeniden başlatma bildirimi görüntülenir. Bu bildirimin rengi, bildirim döneminin yarısı geçtikten ve tam bildirim dönemi sona erdikten sonra değişir. <ph name="PRODUCT_NAME" /> tarayıcılarda, yeniden başlatmanın gerektiğini belirtmek için bildirim döneminin üçte biri geçtikten sonra uygulama menüsü değişir. Bu bildirimin rengi, bildirim döneminin üçte ikisi ve tam bildirim dönemi geçtikten sonra tekrar değişir. Tarayıcılar için <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> politikasıyla etkinleştirilen ek bildirimler bu programa uyar. + + Bu değer ayarlanmazsa, <ph name="PRODUCT_OS_NAME" /> cihazlarda varsayılan dönem için 345600000 milisaniye (dört gün) ve tarayıcılar için 604800000 milisaniye (bir hafta) değerleri kullanılır.</translation> <translation id="9088433379343318874">Denetlenen kullanıcı içerik sağlayıcısını etkinleştirme</translation> <translation id="9088444059179765143">Otomatik saat dilimi algılama yöntemini yapılandır</translation> <translation id="9096086085182305205">Kimlik doğrulama sunucusu beyaz listesi</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 01e04970..48e6fc2 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -27,6 +27,7 @@ Якщо правило налаштовано, на екрані входу завжди використовуватиметься мовний код, указаний у першому значенні в цьому правилі (правило визначається як список прямої сумісності). Якщо це правило не налаштовано або для нього вказано пустий список, на екрані входу використовуватиметься мовний код останнього сеансу користувача. Якщо для цього правила вказано недійсний мовний код, на екрані входу використовуватиметься альтернативний код (зараз "en-US").</translation> <translation id="1062011392452772310">Вмикає віддалене підтвердження даних для пристрою</translation> <translation id="1062407476771304334">Замінити</translation> +<translation id="1079801999187584280">Забороняє використання Інструментів розробника</translation> <translation id="109166998561583554">Активатор позначення облікових записів під загрозою для захисту паролем</translation> <translation id="1093082332347834239">Якщо це налаштування ввімкнено, хост віддаленої допомоги запускатиметься з дозволами <ph name="UIACCESS_PERMISSION_NAME" />. Це дасть віддаленим користувачам змогу взаємодіяти з вікнами на локальному робочому столі користувача. @@ -79,6 +80,7 @@ Коефіцієнт масштабування має становити 100% або більше.</translation> <translation id="131353325527891113">Показувати імена користувачів на екрані входу</translation> +<translation id="1325295456374328159">Налаштовує дозволені мовні коди в сеансі користувача</translation> <translation id="1327466551276625742">Вмикати запит на конфігурацію мережі в режимі офлайн</translation> <translation id="1330145147221172764">Увімкнути екранну клавіатуру</translation> <translation id="13356285923490863">Назва правила</translation> @@ -91,6 +93,12 @@ <translation id="1387596372902085462">Позначення застарілої інфраструктури PKI корпорації Symantec надійною</translation> <translation id="1393485621820363363">Увімкнені принтери пристроїв підприємства</translation> <translation id="1397855852561539316">URL-адреса для пропозицій пошукової служби за умовчанням</translation> +<translation id="1424081297104898791">Дає змогу керувати використанням Інструментів розробника. + + Якщо це правило має значення DeveloperToolsDisallowedForForceInstalledExtensions (значення 0, яке встановлено за умовчанням для корпоративних користувачів), загалом надається доступ до Інструментів розробника й консолі JavaScript, але не до розширень, установлених згідно з політикою підприємства. + Якщо це правило має значення DeveloperToolsAllowed (значення 1, яке встановлено за умовчанням для некерованих користувачів), надається повний доступ до Інструментів розробника й консолі JavaScript, зокрема до розширень, установлених згідно з політикою підприємства. + Якщо це правило має значення DeveloperToolsDisallowed (значення 2), Інструменти розробника недоступні, а елементи веб-сайтів не можна перевірити. Усі комбінації клавіш і пункти меню або контекстного меню, що використовуються для відкривання Інструментів розробника чи консолі JavaScript, буде вимкнено. + Якщо для застарілого правила DeveloperToolsDisabled вибрано true, значення цього правила ігнорується, а Інструменти розробника буде вимкнено.</translation> <translation id="1426410128494586442">так</translation> <translation id="1427655258943162134">Адреса або URL-адреса проксі-сервера</translation> <translation id="1435659902881071157">Налаштування мережі на рівні пристрою</translation> @@ -205,6 +213,7 @@ <translation id="1803646570632580723">Список закріплених програм для відображення на панелі запуску</translation> <translation id="1808715480127969042">Блокувати файли cookie на цих сайтах</translation> <translation id="1810261428246410396">Дозволити використання миттєвої точки доступу.</translation> +<translation id="1826282708349731794">Визначає, як Майстер очищення Chrome повідомляє дані в Google</translation> <translation id="1827523283178827583">Використовувати фіксовані проксі-сервери</translation> <translation id="1843117931376765605">Частота оновлення політики користувача</translation> <translation id="1844620919405873871">Налаштовує правила, пов’язані зі швидким розблокуванням.</translation> @@ -592,6 +601,7 @@ Це правило не впливає на здатність користувачів налаштовувати принтери для окремих пристроїв. Воно доповнює такі налаштування. </translation> <translation id="2633084400146331575">Увімкнути голосові підказки</translation> +<translation id="2640843331263301324">Вмикає Майстер очищення Chrome у Windows</translation> <translation id="2646290749315461919">Дозволяє вказувати, чи можуть веб-сайти відстежувати фізичне місцезнаходження користувача. Відстеження фізичного місцезнаходження користувача можна дозволити чи заборонити за умовчанням, або користувач може сам вибирати щоразу, коли веб-сайт хоче отримати дані про його фізичне місцезнаходження. Якщо це правило не встановлено, використовується правило "AskGeolocation", але користувач може змінювати це налаштування.</translation> <translation id="2647069081229792812">Увімкнути або вимкнути редагування закладок</translation> <translation id="2650049181907741121">Дія, яка має виконуватися, коли користувач закриває кришку</translation> @@ -655,13 +665,6 @@ Якщо це правило застосовується, доступні лише принтери з переліченими в ньому ідентифікаторами. Ідентифікатори мають відповідати полям id або guid файлу, указаного в <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Вмикає доступність функції "Пошук дотиком" у перегляді вмісту <ph name="PRODUCT_NAME" />. - - Якщо ввімкнути це налаштувати, користувач зможе шукати дотиком, а також вмикати та вимикати цю функцію. - - Якщо вимкнути це налаштування, функцію "Пошук дотиком" буде вимкнено. - - Не налаштувати це правило – те саме, що ввімкнути його (див. опис вище).</translation> <translation id="285480231336205327">Увімкнути режим високого контрасту</translation> <translation id="2854919890879212089"><ph name="PRODUCT_NAME" /> використовуватиме в режимі попереднього перегляду друку системний принтер за умовчанням замість останнього використаного принтера. @@ -1214,12 +1217,14 @@ <translation id="4554651132977135445">Режим обробки зациклення політики користувача</translation> <translation id="4555850956567117258">Вмикає віддалене підтвердження даних для користувача</translation> <translation id="4557134566541205630">URL-адреса сторінки нової вкладки пошукової системи за умовчанням</translation> +<translation id="4567137030726189378">Дозволяє використання Інструментів розробника</translation> <translation id="4600786265870346112">Увімкнути великий курсор</translation> <translation id="4604931264910482931">Налаштування чорного списку хостів для обміну повідомленнями з оригінальними додатками</translation> <translation id="4613508646038788144">Якщо це правило має значення false, ПЗ незалежних розробників може вставляти виконуваний код у процеси Chrome. Якщо це правило не налаштовано або має значення true, ПЗ незалежних розробників не може цього робити.</translation> <translation id="4617338332148204752">Пропускати перевірку метатегів у <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="4625915093043961294">Налаштувати список дозволених для встановлення розширень</translation> <translation id="4632343302005518762">Дозволити <ph name="PRODUCT_FRAME_NAME" /> обробляти перелічені типи вмісту</translation> +<translation id="4632566332417930481">Забороняє використовувати Інструменти розробника для розширень, установлених згідно з політикою підприємства, але дозволяє застосовувати їх в інших ситуаціях</translation> <translation id="4633786464238689684">Змінює поведінку за умовчанням верхнього ряду клавіш на функціональні клавіші. Якщо для цього правила встановлено значення "true", клавіші вгорі клавіатури за умовчанням працюватимуть як функціональні. Щоб повернути їм функціональність медіа-клавіш, потрібно натиснути клавішу пошуку. @@ -1471,9 +1476,13 @@ Якщо для правила вказано список ідентифікаторів методів введення, ці методи будуть доступні на екрані входу. Перший указаний метод буде вибрано за умовчанням. Коли рядок введення на екрані входу активний, разом із дозволеними цим правилом методами введення буде доступний останній метод введення, вибраний користувачем. Якщо правило не налаштовано, методи введення буде вибрано на основі мовного коду, який використовується на екрані входу. Недійсні ідентифікатори методів введення ігноруються.</translation> <translation id="5423001109873148185">Якщо це правило ввімкнено, пошукові системи імпортуються з поточного веб-переглядача за умовчанням. Якщо його ввімкнено, це правило також впливає на діалогове вікно імпортування. Якщо вимкнено, пошукова система за умовчанням не імпортується. Якщо це правило не встановлено, користувач отримує запит на імпортування або імпортування розпочинається автоматично.</translation> <translation id="5423197884968724595">Назва обмеження Android WebView:</translation> +<translation id="5442026853063570579">Це правило також керує доступом до Параметрів розробника Android. Якщо для нього встановлено значення DeveloperToolsDisallowed (значення 2), користувачі не матимуть доступу до Параметрів розробника. Якщо це правило не налаштовано або для нього встановлено інше значення, користувачі можуть отримувати доступ до Параметрів розробника, сім разів торкнувшись номера складання в додатку Налаштування Android.</translation> <translation id="5447306928176905178">Увімкнути повідомлення з інформацією про пам’ять (розмір динамічної пам’яті JavaScript) для сторінки (не рекомендується)</translation> <translation id="5457065417344056871">Увімкнути режим гостя у веб-переглядачі</translation> <translation id="5457924070961220141">Дозволяє налаштовувати засіб відтворення сторінок HTML за умовчанням, якщо встановлено <ph name="PRODUCT_FRAME_NAME" />. Якщо це правило не встановлено, використовується налаштування за умовчанням, яке дозволяє веб-переглядачу хосту відтворювати сторінки. Це можна змінити та відтворювати сторінки HTML за допомогою <ph name="PRODUCT_FRAME_NAME" /> за умовчанням.</translation> +<translation id="5459155981813668716">Налаштовує мови, якими може відображатися <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" /> застосовуватиметься перше дійсне значення, указане в цьому правилі, або вихідна мова (наразі en-US), якщо правило містить лише недійсні значення.</translation> <translation id="5464816904705580310">Налаштувати параметри для керованих користувачів.</translation> <translation id="546726650689747237">Затримка затемнення екрана, коли використовується живлення від мережі</translation> <translation id="5469484020713359236">Дозволяє налаштовувати список шаблонів URL-адрес, що визначають сайти, яким дозволено встановлювати файли cookie. Якщо це правило не встановлено, для всіх сайтів використовується загальне значення за умовчанням – з правила "DefaultCookiesSetting" (якщо його встановлено) або з особистих налаштувань користувача.</translation> @@ -1587,7 +1596,6 @@ Якщо це правило не встановлено, голосові підказки вимикаються під час першої появи екрана входу. Користувачі можуть вмикати чи вимикати голосові підказки будь-коли, і такий вибір на екрані входу буде чинним для всіх користувачів.</translation> <translation id="5868414965372171132">Налаштування мережі на рівні користувача</translation> -<translation id="588135807064822874">Увімкнути Пошук дотиком</translation> <translation id="5883015257301027298">Налаштування файлів cookie за умовчанням</translation> <translation id="5887414688706570295">Налаштовує префікс TalkGadget, який використовується хостами віддаленого доступу, і не дозволяє користувачам змінювати його. @@ -1691,6 +1699,7 @@ <translation id="6036523166753287175">Увімкнення обходу брандмауера з хосту віддаленого доступу</translation> <translation id="6070667616071269965">Розкладка клавіатури на екрані входу на пристрої</translation> <translation id="6074963268421707432">Забороняти всім сайтам показувати сповіщення на робочому столі</translation> +<translation id="6074964551275531965">Встановлює період часу для сповіщень про оновлення</translation> <translation id="6076099373507468537">Визначається список пристроїв USB, які можна від’єднувати від драйвера ядра, щоб використовувати через API chrome.usb просто у веб-додатку. Записи є парами ідентифікатора постачальника USB й ідентифікатора продукту для визначення апаратного забезпечення. Якщо це правило не налаштовано, список пристроїв USB, які можна від’єднувати, порожній.</translation> @@ -1763,6 +1772,13 @@ <translation id="6392973646875039351">Вмикає функцію автозаповнення в <ph name="PRODUCT_NAME" /> і дозволяє користувачам автоматично заповнювати веб-форми, використовуючи раніше збережену інформацію, як-от адресу чи дані кредитної картки. Якщо це налаштування вимкнено, функція автозаповнення не доступна для користувачів. Якщо це налаштування ввімкнено або значення не встановлено, функцією автозаповнення керує користувач. Це дозволяє йому налаштовувати профілі автозаповнення та вмикати чи вимикати функцію автозаповнення на власний розсуд.</translation> <translation id="6394350458541421998">Це правило не підтримується від 29-ї версії <ph name="PRODUCT_OS_NAME" />. Натомість використовуйте правило PresentationScreenDimDelayScale.</translation> <translation id="6401669939808766804">Вихід користувача</translation> +<translation id="6412477120967771054">Якщо вибрано значення false, Майстер очищення Chrome не скануватиме систему на наявність небажаного програмного забезпечення й не виконуватиме очищення. Можливість активувати Майстер очищення Chrome вручну за допомогою chrome://settings вимкнено. + + Якщо це правило не налаштовано або має значення true, Майстер очищення Chrome періодично скануватиме систему на наявність небажаного програмного забезпечення. Якщо таке буде знайдено, користувач отримає запит на його видалення. +Можливість активувати Майстер очищення Chrome вручну за допомогою +chrome://settings увімкнено. + + Це правило недоступне у версіях Windows, які не зареєстровані в домені <ph name="MS_AD_NAME" />.</translation> <translation id="6417861582779909667">Дозволяє налаштовувати список шаблонів URL-адрес, що визначають сайти, яким заборонено встановлювати файли cookie. Якщо це правило не встановлено, для всіх сайтів використовується загальне значення за умовчанням – з правила "DefaultCookiesSetting" (якщо його встановлено) або з особистих налаштувань користувача.</translation> <translation id="6426205278746959912">Не можна змусити додатки Android використовувати проксі. Додатки Android мають доступ до налаштувань проксі та можуть вибирати, чи застосовувати їх. @@ -1783,6 +1799,13 @@ Щоб вибрати, на яких веб-сайтах відтворювати вміст Flash, перегляньте правила "DefaultPluginsSetting", "PluginsAllowedForUrls" і "PluginsBlockedForUrls". Якщо цей параметр вимкнено або не налаштовано, вміст Flash з інших джерел або невеликий вміст може блокуватися.</translation> +<translation id="6535639183431116351">Це правило більше не підтримується у версії M68. Натомість використовуйте правило DeveloperToolsAvailability. + + Вимикає Інструменти розробника та консоль JavaScript. + + Якщо ввімкнути це налаштування, Інструменти розробника будуть недоступними, а елементи веб-сайтів більше не можна буде перевірити. Усі комбінації клавіш і пункти меню або контекстного меню для відкривання Інструментів розробника чи консолі JavaScript буде вимкнено. + + Якщо цю опцію вимкнути або не налаштувати, користувач зможе використовувати Інструменти розробника та консоль JavaScript.</translation> <translation id="653608967792832033">Визначає період часу неактивності користувача, після якого екран блокується, якщо використовується заряд акумулятора. Якщо для цього правила встановлено значення більше за нуль, указується період часу, протягом якого користувач має залишатися неактивним, перш ніж <ph name="PRODUCT_OS_NAME" /> заблокує екран. @@ -1848,11 +1871,6 @@ <translation id="6689792153960219308">Повідомляти про стан апаратного забезпечення</translation> <translation id="6698071416141001300">Позначення облікових записів під загрозою для захисту паролем активується під час повторного введення пароля</translation> <translation id="6699880231565102694">Вмикати двофакторну автентифікацію для хостів віддаленого доступу</translation> -<translation id="6702257826895463228">Дозволяє сайтам одночасно виконувати навігацію та відкривати спливаючі вікна. - - Докладніше пояснення можна переглянути за посиланням: https://www.chromestatus.com/features/5675755719622656. - Якщо це правило ввімкнено, сайти зможуть одночасно виконувати навігацію та відкривати нові вікна чи вкладки. - Якщо це правило вимкнено чи не налаштовано, сайти не зможуть одночасно виконувати навігацію та відкривати нові вікна чи вкладки.</translation> <translation id="6724842112053619797">Якщо ввімкнути цей параметр, налаштування з профілів <ph name="PRODUCT_NAME" /> (як-от закладки, дані автозаповнення, паролі тощо) також записуватимуться у файл у папці роумінгового профілю користувача або в місці, указаному адміністратором у правилі <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Якщо ввімкнути це правило, вимкнеться синхронізація в хмарі. Якщо це правило вимкнено або не налаштовано, використовуватимуться лише звичайні локальні профілі. @@ -2189,6 +2207,7 @@ Відвідайте сторінку https://developers.google.com/safe-browsing, щоб дізнатися більше про Безпечний перегляд.</translation> <translation id="7643883929273267746">Обмежити видимість облікових записів у <ph name="PRODUCT_NAME" /></translation> <translation id="7651739109954974365">Визначає, чи має бути ввімкнено роумінг даних для пристрою. Якщо значення правила встановлено як "true", роумінг даних дозволено. Якщо правило не налаштовано чи його значення встановлено як "false", роумінг даних буде недоступним.</translation> +<translation id="7673194325208122247">Період часу (мілісекунди)</translation> <translation id="7683777542468165012">Динамічне оновлення політики</translation> <translation id="7694807474048279351">Планувати автоматичне перезавантаження, коли застосовано оновлення <ph name="PRODUCT_OS_NAME" />. @@ -2314,6 +2333,13 @@ <translation id="7961779417826583251">Вимкнути застосування перевірки сертифіката для списку застарілих центрів сертифікації</translation> <translation id="7974114691960514888">Це правило більше не підтримується. Дозволяє використання серверів STUN і серверів-ретрансляторів під час з’єднання з віддаленим клієнтом. Якщо це налаштування ввімкнено, такий комп’ютер може виявляти комп’ютери віддаленого хосту та з’єднуватися з ними, навіть якщо вони розділені брандмауером. Якщо це налаштування вимкнено, а вихідні з’єднання за протоколом UDP фільтруються брандмауером, такий комп’ютер може з’єднуватися лише з комп’ютерами хосту в локальній мережі.</translation> <translation id="7976157349247117979">Назва місця призначення <ph name="PRODUCT_NAME" /></translation> +<translation id="7977445800390854860">Якщо це правило не налаштовано, виявивши небажане програмне забезпечення, Майстер очищення Chrome може передавати метадані про сканування в Google відповідно до правила SafeBrowsingExtendedReportingEnabled. Майстер очищення Chrome пропонуватиме користувачам видалити таке небажане програмне забезпечення. Користувач може надіслати результати очищення в Google, щоб допомогти виявляти такі проблеми в майбутньому. У цих результатах містяться файли метаданих і реєстраційні ключі, як описано в Офіційному описі політики конфіденційності Google Chrome. + + Якщо вибрано значення false, виявивши небажане програмне забезпечення, Майстер очищення Chrome не передаватиме в Google метадані про сканування, замінюючи всі правила відповідно до SafeBrowsingExtendedReportingEnabled. Майстер очищення Chrome пропонуватиме користувачам видалити таке небажане програмне забезпечення. Результати очищення не повідомлятимуться в Google, і користувачі не матимуть можливості зробити це самостійно. + + Якщо вибрано значення true, виявивши небажане програмне забезпечення, Майстер очищення Chrome може передавати метадані про сканування в Google відповідно до правила SafeBrowsingExtendedReportingEnabled. Користувачам пропонуватиметься видалити таке небажане програмне забезпечення. Результати очищення повідомлятимуться в Google, і користувачі не зможуть перешкодити цьому. + + Це правило недоступне у версіях Windows, які не зареєстровані в домені <ph name="MS_AD_NAME" />.</translation> <translation id="7978060394348264922"> У налаштуваннях правила IsolateOrigins можна переглянути можливості ізоляції й обмеженого впливу на користувачів. Використовуйте @@ -2438,6 +2464,7 @@ <translation id="8300455783946254851">Вимикає синхронізацію Google Диска в додатку Файли в <ph name="PRODUCT_OS_NAME" /> під час використання мобільного з’єднання, якщо для правила встановлено значення "true". У такому випадку дані синхронізуються з Google Диском лише під час з’єднання Wi-Fi чи Ethernet. Якщо правило не налаштовано або має значення "false", користувачі можуть надсилати файли на Google Диск через мобільне з’єднання.</translation> +<translation id="8300992833374611099">Визначає, де можна використовувати Інструменти розробника</translation> <translation id="8312129124898414409">Можна дозволити або заборонити всім сайтам генерувати ключі. Якщо це правило не налаштовано, застосовується правило BlockKeygen. Користувач може його змінити.</translation> @@ -2666,6 +2693,11 @@ <translation id="9035964157729712237">Ідентифікатори розширень для виключення з "чорного списку"</translation> <translation id="9042911395677044526">Дозволяє надсилати конфігурацію мережі для застосування кожним окремим користувачем на пристрої з <ph name="PRODUCT_OS_NAME" />. Конфігурація мережі – це рядок у форматі JSON, визначений форматом Open Network Configuration, який описано на сторінці <ph name="ONC_SPEC_URL" /></translation> <translation id="9084985621503260744">Визначати, чи дії з відео впливають на керування живленням</translation> +<translation id="9085839450090699752">Дає змогу встановити період часу (у мілісекундах), упродовж якого користувачеві повідомлятимуть, що потрібно перезапустити <ph name="PRODUCT_NAME" /> чи пристрій <ph name="PRODUCT_OS_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 мілісекунд (один тиждень) для веб-переглядачів.</translation> <translation id="9088433379343318874">Увімкнути постачальника вмісту для контрольованих користувачів</translation> <translation id="9088444059179765143">Налаштувати метод автоматичного визначення часового поясу</translation> <translation id="9096086085182305205">Список дозволених серверів для автентифікації</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index e63a68b5..e3b5345b7 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -436,7 +436,7 @@ Chính sách này cho phép các quản trị viên cung cấp cấu hình máy in cho người dùng của mình. - <ph name="PRINTER_DISPLAY_NAME" /> và <ph name="PRINTER_DESCRIPTION" /> là các chuỗi tùy ý có thể tùy chỉnh để dễ chọn máy in. <ph name="PRINTER_MANUFACTURER" /> và <ph name="PRINTER_MODEL" /> biểu thị nhà sản xuất và kiểu máy in, giúp người dùng cuối dễ dàng nhận diện máy in. <ph name="PRINTER_URI" /> phải là địa chỉ có thể truy cập từ một máy khách bao gồm <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> và <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> là tùy chọn. Nếu được cung cấp, tùy chọn này sẽ được sử dụng để giúp loại bỏ trùng lặp máy in <ph name="ZEROCONF_DISCOVERY" />. + <ph name="PRINTER_DISPLAY_NAME" /> và <ph name="PRINTER_DESCRIPTION" /> là các chuỗi dạng tự do có thể tùy chỉnh để dễ dàng chọn máy in. <ph name="PRINTER_MANUFACTURER" /> và <ph name="PRINTER_MODEL" /> biểu thị nhà sản xuất và kiểu máy in, giúp người dùng cuối dễ dàng nhận diện máy in. <ph name="PRINTER_URI" /> phải là địa chỉ có thể truy cập từ một máy khách bao gồm <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> và <ph name="URI_QUEUE" />. <ph name="PRINTER_UUID" /> là tùy chọn. Nếu được cung cấp, tùy chọn này sẽ được sử dụng để giúp loại bỏ trùng lặp máy in <ph name="ZEROCONF_DISCOVERY" />. <ph name="PRINTER_EFFECTIVE_MODEL" /> phải khớp với một trong các chuỗi đại diện cho một máy in được hỗ trợ <ph name="PRODUCT_NAME" />. Chuỗi này sẽ được sử dụng để nhận diện và cài đặt PPD phù hợp cho máy in. Bạn có thể tìm thêm thông tin tại https://support.google.com/chrome?p=noncloudprint. @@ -678,13 +678,6 @@ Nếu bạn sử dụng chính sách này thì chỉ những máy in có id khớp với các giá trị trong chính sách này mới được cung cấp cho người dùng. Các id này phải tương ứng với các trường "id" hoặc "guid" trong tệp đã chỉ định trong <ph name="DEVICE_PRINTERS_POLICY" />. </translation> -<translation id="2844404652289407061">Cho phép sử dụng Chạm để tìm kiếm trong chế độ xem nội dung của <ph name="PRODUCT_NAME" />. - - Nếu bạn bật cài đặt này, người dùng có thể sử dụng Chạm để tìm kiếm và họ có thể chọn tắt hoặc bật tính năng này. - - Nếu bạn tắt cài đặt này, Chạm để tìm kiếm sẽ bị vô hiệu hóa hoàn toàn. - - Nếu bạn không đặt chính sách này, điều này tương đương với việc bạn đã bật chính sách này, hãy xem mô tả ở trên.</translation> <translation id="285480231336205327">Bật chế độ tương phản cao</translation> <translation id="2854919890879212089">Cài đặt <ph name="PRODUCT_NAME" /> để chọn máy in có sẵn trong hệ thống làm máy in mặc định trong mục Xem trước bản in thay cho máy in đã sử dụng gần đây nhất. @@ -1663,7 +1656,6 @@ Nếu không đặt chính sách này, phản hồi bằng giọng nói bị tắt khi màn hình đăng nhập hiển thị lần đầu. Người dùng có thể bật hoặc tắt phản hồi bằng giọng nói bất cứ lúc nào và trạng thái của tính năng này trên màn hình đăng nhập được duy trì giữa những người dùng.</translation> <translation id="5868414965372171132">Cấu hình mạng ở mức người dùng</translation> -<translation id="588135807064822874">Bật Chạm để tìm kiếm</translation> <translation id="5883015257301027298">Cài đặt cookie mặc định</translation> <translation id="5887414688706570295">Định cấu hình tiền tố TalkGadget sẽ được máy chủ truy cập từ xa sử dụng và ngăn người dùng thay đổi tiền tố này. @@ -1931,11 +1923,6 @@ <translation id="6689792153960219308">Báo cáo trạng thái phần cứng</translation> <translation id="6698071416141001300">Tùy chọn gắn cờ tài khoản gặp rủi ro về 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="6699880231565102694">Bật xác thực hai bước cho máy chủ truy cập từ xa</translation> -<translation id="6702257826895463228">Cho phép các trang web chuyển tới và mở các cửa sổ bật lên cùng một lúc. - - Để biết giải thích đầy đủ, hãy truy cập vào https://www.chromestatus.com/features/5675755719622656. - Nếu bạn đã bật chính sách này, các trang web sẽ được phép chuyển tới và mở các cửa sổ/tab mới cùng một lúc. - Nếu bạn đã tắt hoặc chưa đặt chính sách này, các trang web sẽ không được phép chuyển tới và mở cửa sổ/tab mới cùng một lúc.</translation> <translation id="6724842112053619797">Nếu bạn bật cài đặt này, thì các cài đặt được lưu trữ trong cấu hình của <ph name="PRODUCT_NAME" /> như dấu trang, dữ liệu tự động điền, mật khẩu, v.v. cũng sẽ được ghi vào một tệp được lưu trữ trong thư mục cấu hình Người dùng chuyển vùng hoặc một vị trí do Quản trị viên chỉ định thông qua chính sách <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Việc bật chính sách này sẽ tắt đồng bộ hóa trên đám mây. Nếu chính sách này bị tắt hoặc chưa được đặt thì chỉ các cấu hình cục bộ thông thường mới được sử dụng.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index 430dcba..13198ea 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -625,13 +625,6 @@ 如果使用此政策,则只有那些具有与此政策中所列值匹配的 ID 的打印机才可供用户使用。ID 必须与 <ph name="DEVICE_PRINTERS_POLICY" /> 中指定的文件内的“id”或“guid”字段相符。 </translation> -<translation id="2844404652289407061">在 <ph name="PRODUCT_NAME" /> 的内容视图中启用“触摸搜索”功能。 - - 如果您启用了此设置,用户将能够使用“触摸搜索”功能,并可以启用或停用该功能。 - - 如果您停用了此设置,系统将完全停用“触摸搜索”功能。 - - 如果此政策未设置,其效果等同于已启用,请参见上述说明。</translation> <translation id="285480231336205327">启用高反差模式</translation> <translation id="2854919890879212089">让 <ph name="PRODUCT_NAME" /> 将系统默认打印机(而不是最近使用过的打印机)用作打印预览中的默认选项。 @@ -1267,7 +1260,7 @@ 如果将此政策设为 false,系统就会忽略屏幕唤醒锁定请求。</translation> <translation id="487460824085252184">自动迁移,不询问用户是否同意。</translation> -<translation id="4874982543810021567">禁止这些网站访问 WebUSB</translation> +<translation id="4874982543810021567">禁止这些网站使用 WebUSB</translation> <translation id="4876805738539874299">启用最高 SSL 版本</translation> <translation id="4897928009230106190">指定通过 POST 提供搜索建议时使用的参数。该参数由以英文逗号分隔的名称/值对组成。如果值为模板参数(例如上例中的 {searchTerms}),那么系统会将其替换成真正的搜索字词数据。 @@ -1542,7 +1535,6 @@ 如果未设置此政策,则登录屏幕初次显示时会停用语音反馈。用户可以随时启用或停用语音反馈,并且其在登录屏幕上的启用或停用状态对各用户均有效。</translation> <translation id="5868414965372171132">用户级网络配置</translation> -<translation id="588135807064822874">启用“触摸搜索”功能</translation> <translation id="5883015257301027298">默认 Cookie 设置</translation> <translation id="5887414688706570295">配置供远程访问主机使用的 TalkGadget 前缀,并禁止用户更改此设置。 @@ -1802,11 +1794,6 @@ <translation id="6689792153960219308">报告硬件状态</translation> <translation id="6698071416141001300">重复使用密码可触发“密码保护服务举报面临风险的帐号”功能</translation> <translation id="6699880231565102694">为远程访问主机启用双重身份验证</translation> -<translation id="6702257826895463228">允许网站在导航的同时打开弹出式窗口。 - - 如需完整说明,请访问 https://www.chromestatus.com/features/5675755719622656。 - 如果此政策处于启用状态,网站将可以在导航的同时打开新窗口/标签页。 - 如果此政策处于停用状态或未设置,网站将无法在导航的同时打开新窗口/标签页。</translation> <translation id="6724842112053619797">如果您启用此设置,存储在 <ph name="PRODUCT_NAME" /> 个人资料中的设置(例如书签、自动填充数据、密码等)将会被写入一个存储在漫游用户个人资料文件夹内的文件中,或被写入一个由管理员通过 <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> 政策指定的位置中。启用此政策会停用云同步。 如果此政策已停用或未设置,则系统只会使用常规的本地个人资料。 @@ -2601,7 +2588,7 @@ <translation id="9096086085182305205">身份验证服务器白名单</translation> <translation id="9098553063150791878">HTTP 身份验证政策</translation> <translation id="9105265795073104888">仅一小部分代理配置选项已可供 Android 应用使用。Android 应用可能会主动选择使用相应代理。您无法强制此类应用使用该代理。</translation> -<translation id="9106865192244721694">允许这些网站访问 WebUSB</translation> +<translation id="9106865192244721694">允许这些网站使用 WebUSB</translation> <translation id="9112727953998243860">企业打印机配置文件</translation> <translation id="9112897538922695510">可让您注册一个协议处理程序列表。此政策只能是推荐的政策。属性|protocol|应设为“mailto”等协议,属性|url|应设为处理该协议的应用采用的网址格式。该格式中可以包含“%s”(如果有,将被替换为所处理的网址)。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index aefaf75a..7a4046d 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -653,13 +653,6 @@ 一旦設定了這項政策,使用者就只能使用 ID 符合本政策值的印表機,且 ID 必須和 <ph name="DEVICE_PRINTERS_POLICY" /> 指定檔案中的「id」或「guid」欄位相符。 </translation> -<translation id="2844404652289407061">在 <ph name="PRODUCT_NAME" /> 的內容畫面中啟用「輕觸搜尋」功能。 - - 如果您啟用這項設定,使用者即可使用「輕觸搜尋」功能,並可自行選擇開啟或關閉這項功能。 - - 如果您停用這項設定,就會完全停用「輕觸搜尋」功能。 - - 未設定這項政策則等同於啟用這項功能,請見上方說明。</translation> <translation id="285480231336205327">啟用高反差模式</translation> <translation id="2854919890879212089">讓 <ph name="PRODUCT_NAME" /> 使用系統預設印表機做為預覽列印中的預設選擇,取代最近使用的印表機。 @@ -1586,7 +1579,6 @@ 如果你未設定這項政策,則系統會在初次顯示登入畫面時停用互動朗讀。使用者隨時都可以啟用或停用互動朗讀,而互動朗讀在登入畫面的狀態則視使用者的選擇而定 (均為永久性)。</translation> <translation id="5868414965372171132">使用者層級網路設定</translation> -<translation id="588135807064822874">啟用輕觸搜尋功能</translation> <translation id="5883015257301027298">預設 Cookie 設定</translation> <translation id="5887414688706570295">設定遠端存取主機所要使用的 TalkGadget 前置詞,並且防止使用者變更這項設定。 @@ -1847,11 +1839,6 @@ <translation id="6689792153960219308">回報硬體狀態</translation> <translation id="6698071416141001300">密碼遭到重複使用時,會觸發保護密碼的危險帳戶標記功能</translation> <translation id="6699880231565102694">為遠端存取主機啟用雙重驗證機制</translation> -<translation id="6702257826895463228">允許同時在多個網站中進行瀏覽及開啟彈出式視窗。 - - 如需完整說明,請前往 https://www.chromestatus.com/features/5675755719622656。 - 如果啟用這項政策,即可同時在多個網站中進行瀏覽及開啟新視窗/分頁。 - 如果停用這項政策或不予設定,則無法同時在多個網站中進行瀏覽及開啟新視窗/分頁。</translation> <translation id="6724842112053619797">如果啟用這項設定,系統會將儲存在 <ph name="PRODUCT_NAME" /> 設定檔中的設定 (例如書籤、自動填入資料、密碼等) 一併寫入儲存在漫遊使用者設定檔資料夾中的檔案,或是管理員透過 <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> 政策指定的位置。啟用這項政策時,雲端同步處理功能會遭到停用: 如果停用或未設定這項政策,系統只會使用一般本機設定檔。
diff --git a/components/policy/tools/template_writers/writers/adml_writer.py b/components/policy/tools/template_writers/writers/adml_writer.py index 2483356..84ef08b 100755 --- a/components/policy/tools/template_writers/writers/adml_writer.py +++ b/components/policy/tools/template_writers/writers/adml_writer.py
@@ -5,6 +5,8 @@ from xml.dom import minidom from writers import xml_formatted_writer +from writers.admx_writer import AdmxElementType +import json import re @@ -50,6 +52,10 @@ self._string_table_elem, 'string', {'id': id}) string_elem.appendChild(self._doc.createTextNode(text)) + def _GetAdmxElementType(self, policy): + '''Returns the ADMX element type for a particular Policy.''' + return AdmxElementType.GetType(policy, allow_multi_strings = False) + def WritePolicy(self, policy): '''Generates the ADML elements for a Policy. <stringTable> @@ -66,13 +72,13 @@ Args: policy: The Policy to generate ADML elements for. ''' - policy_type = policy['type'] policy_name = policy['name'] policy_caption = policy.get('caption', policy_name) policy_label = policy.get('label', policy_name) + policy_example = policy.get('example_value') policy_desc = policy.get('desc') - example_value_text = self._GetExampleValueText(policy.get('example_value')) + example_value_text = self._GetExampleValueText(policy_example) if policy_desc is not None and example_value_text is not None: policy_explain = policy_desc + '\n\n' + example_value_text @@ -89,34 +95,45 @@ presentation_elem = self.AddElement( self._presentation_table_elem, 'presentation', {'id': policy_name}) - if policy_type == 'main': + admx_element_type = self._GetAdmxElementType(policy) + if admx_element_type == AdmxElementType.MAIN: pass - elif policy_type in ('string', 'dict', 'external'): - # 'dict' and 'external' policies are configured as JSON-encoded strings on - # Windows. + elif admx_element_type == AdmxElementType.STRING: textbox_elem = self.AddElement(presentation_elem, 'textBox', {'refId': policy_name}) label_elem = self.AddElement(textbox_elem, 'label') label_elem.appendChild(self._doc.createTextNode(policy_label)) - elif policy_type == 'int': + elif admx_element_type == AdmxElementType.MULTI_STRING: + # We currently also show a single-line textbox - see http://crbug/829328 + textbox_elem = self.AddElement(presentation_elem, 'textBox', + {'refId': policy_name + '_Legacy'}) + label_elem = self.AddElement(textbox_elem, 'label') + legacy_label = self._GetLegacySingleLineLabel(policy_label) + self._AddString(policy_name + '_Legacy', legacy_label) + label_elem.appendChild(self._doc.createTextNode(legacy_label)) + # New multi-line textbox, easier to use than old single-line textbox: + multitextbox_elem = self.AddElement(presentation_elem, 'multiTextBox', + {'refId': policy_name, 'defaultHeight': '8'}) + multitextbox_elem.appendChild(self._doc.createTextNode(policy_label)) + elif admx_element_type == AdmxElementType.INT: textbox_elem = self.AddElement(presentation_elem, 'decimalTextBox', {'refId': policy_name}) textbox_elem.appendChild(self._doc.createTextNode(policy_label + ':')) - elif policy_type in ('int-enum', 'string-enum'): + elif admx_element_type == AdmxElementType.ENUM: for item in policy['items']: self._AddString(policy_name + "_" + item['name'], item['caption']) dropdownlist_elem = self.AddElement(presentation_elem, 'dropdownList', {'refId': policy_name}) dropdownlist_elem.appendChild(self._doc.createTextNode(policy_label)) - elif policy_type in ('list', 'string-enum-list'): + elif admx_element_type == AdmxElementType.LIST: self._AddString(policy_name + 'Desc', policy_caption) listbox_elem = self.AddElement(presentation_elem, 'listBox', {'refId': policy_name + 'Desc'}) listbox_elem.appendChild(self._doc.createTextNode(policy_label)) - elif policy_type == 'group': + elif admx_element_type == AdmxElementType.GROUP: pass else: - raise Exception('Unknown policy type %s.' % policy_type) + raise Exception('Unknown element type %s.' % admx_element_type) def BeginPolicyGroup(self, group): '''Generates ADML elements for a Policy-Group. For each Policy-Group two @@ -161,8 +178,16 @@ if isinstance(example_value, list): value_as_text = '\n'.join([str(v) for v in example_value]) return self._GetLocalizedMessage('example_value') + '\n\n' + value_as_text + if isinstance(example_value, dict): + value_as_text = json.dumps(example_value) + return self._GetLocalizedMessage('example_value') + '\n\n' + value_as_text return None + def _GetLegacySingleLineLabel(self, policy_label): + '''Generates a label for a legacy single-line textbox.''' + return (self._GetLocalizedMessage('legacy_single_line_label') + .replace('$6', policy_label)) + def _GetLocalizedMessage(self, msg_id): '''Returns the localized message of the given message ID.''' return self.messages['doc_' + msg_id]['text']
diff --git a/components/policy/tools/template_writers/writers/adml_writer_unittest.py b/components/policy/tools/template_writers/writers/adml_writer_unittest.py index 7e50d8e8..3484d7b 100755 --- a/components/policy/tools/template_writers/writers/adml_writer_unittest.py +++ b/components/policy/tools/template_writers/writers/adml_writer_unittest.py
@@ -55,6 +55,13 @@ 'text': 'Recommended', 'desc': 'bleh' }, + 'doc_example_value': { + 'text': 'Example value:', + 'desc': 'bluh' + }, + 'doc_legacy_single_line_label': { + 'text': '$6 (deprecated)', + }, } self.writer.Init() @@ -143,7 +150,7 @@ } self._InitWriterForAddingPolicyGroups(self.writer) self.writer.BeginPolicyGroup(empty_policy_group) - self.writer.EndPolicyGroup + self.writer.EndPolicyGroup() # Assert generated string elements. output = self.GetXMLOfChildren(self.writer._string_table_elem) expected_output = ( @@ -188,6 +195,7 @@ 'caption': 'String policy caption', 'label': 'String policy label', 'desc': 'This is a test description.', + 'example_value': '01:23:45:67:89:ab', } self. _InitWriterForAddingPolicies(self.writer, string_policy) self.writer.WritePolicy(string_policy) @@ -196,7 +204,8 @@ expected_output = ( '<string id="StringPolicyStub">String policy caption</string>\n' '<string id="StringPolicyStub_Explain">' - 'This is a test description.</string>') + 'This is a test description.\n\n' + 'Example value: 01:23:45:67:89:ab</string>') self.AssertXMLEquals(output, expected_output) # Assert generated presentation elements. output = self.GetXMLOfChildren(self.writer._presentation_table_elem) @@ -378,10 +387,10 @@ '</presentation>') self.AssertXMLEquals(output, expected_output) - def testDictionaryPolicy(self): + def testDictionaryPolicy(self, is_external = False): dict_policy = { 'name': 'DictionaryPolicyStub', - 'type': 'dict', + 'type': 'external' if is_external else 'dict', 'caption': 'Dictionary policy caption', 'label': 'Dictionary policy label', 'desc': 'This is a test description.', @@ -406,31 +415,7 @@ self.AssertXMLEquals(output, expected_output) def testExternalPolicy(self): - external_policy = { - 'name': 'ExternalPolicyStub', - 'type': 'external', - 'caption': 'External policy caption', - 'label': 'External policy label', - 'desc': 'This is a test description.', - } - self._InitWriterForAddingPolicies(self.writer, external_policy) - self.writer.WritePolicy(external_policy) - # Assert generated string elements. - output = self.GetXMLOfChildren(self.writer._string_table_elem) - expected_output = ( - '<string id="ExternalPolicyStub">External policy caption</string>\n' - '<string id="ExternalPolicyStub_Explain">' - 'This is a test description.</string>') - self.AssertXMLEquals(output, expected_output) - # Assert generated presentation elements. - output = self.GetXMLOfChildren(self.writer._presentation_table_elem) - expected_output = ( - '<presentation id="ExternalPolicyStub">\n' - ' <textBox refId="ExternalPolicyStub">\n' - ' <label>External policy label</label>\n' - ' </textBox>\n' - '</presentation>') - self.AssertXMLEquals(output, expected_output) + self.testDictionaryPolicy(is_external = True) def testPlatform(self): # Test that the writer correctly chooses policies of platform Windows.
diff --git a/components/policy/tools/template_writers/writers/admx_writer.py b/components/policy/tools/template_writers/writers/admx_writer.py index d7277be8..a0bbfc3 100755 --- a/components/policy/tools/template_writers/writers/admx_writer.py +++ b/components/policy/tools/template_writers/writers/admx_writer.py
@@ -7,6 +7,77 @@ from writers import xml_formatted_writer +class AdmxElementType: + '''The different types of ADMX elements that can be used to display a policy. + This is related to the 'type' field in policy_templates.json, but there isn't + a perfect 1:1 mapping. This class is also used when writing ADML files, to + ensure that the ADML generated from policy_templates.json is compatible with + the ADMX generated from policy_templates.json""" + ''' + MAIN = 1 + STRING = 2 + MULTI_STRING = 3 + INT = 4 + ENUM = 5 + LIST = 6 + GROUP = 7 + + @staticmethod + def GetType(policy, allow_multi_strings = False): + '''Returns the ADMX element type that should be used for the given policy. + This logic is shared between the ADMX writer and the ADML writer, to ensure + that the ADMX and ADML generated from policy_tempates.json are compatible. + + Args: + policy: A dict describing the policy, as found in policy_templates.json. + allow_multi_strings: If true, the use of multi-line textbox elements is + allowed, so this function will sometimes return MULTI_STRING. If false + it falls back to single-line textboxes instead by returning STRING. + + Returns: + One of the enum values of AdmxElementType. + + Raises: + Exception: If policy['type'] is not recognized. + ''' + policy_type = policy['type'] + policy_example = policy.get('example_value') + + # TODO(olsen): Some policies are defined in policy_templates.json as type + # string, but the string is actually a JSON object. We should change the + # schema so they are 'dict' or similar, but until then, we use this + # heuristic to decide whether they are actually JSON and so could benefit + # from being displayed to the user as a multi-line string: + if (policy_type == 'string' + and allow_multi_strings + and policy_example is not None + and policy_example.strip().startswith('{')): + return AdmxElementType.MULTI_STRING + + admx_element_type = AdmxElementType._POLICY_TYPE_MAP.get(policy_type) + if admx_element_type is None: + raise Exception('Unknown policy type %s.' % policy_type) + + if (admx_element_type == AdmxElementType.MULTI_STRING + and not allow_multi_strings): + return AdmxElementType.STRING + + return admx_element_type + +AdmxElementType._POLICY_TYPE_MAP = { + 'main': AdmxElementType.MAIN, + 'string': AdmxElementType.STRING, + 'dict': AdmxElementType.MULTI_STRING, + 'external': AdmxElementType.MULTI_STRING, + 'int': AdmxElementType.INT, + 'int-enum': AdmxElementType.ENUM, + 'string-enum': AdmxElementType.ENUM, + 'list': AdmxElementType.LIST, + 'string-enum-list': AdmxElementType.LIST, + 'group': AdmxElementType.GROUP + } + + def GetWriter(config): '''Factory method for instanciating the ADMXWriter. Every Writer needs a GetWriter method because the TemplateFormatter uses this method to @@ -176,16 +247,29 @@ } self.AddElement(definitions_elem, 'definition', attributes) - def _AddStringPolicy(self, parent, name): + def _AddStringPolicy(self, parent, name, id = None): '''Generates ADMX elements for a String-Policy and adds them to the passed parent node. ''' attributes = { + 'id': id or name, + 'valueName': name, + 'maxLength': '1000000', + } + self.AddElement(parent, 'text', attributes) + + def _AddMultiStringPolicy(self, parent, name): + '''Generates ADMX elements for a multi-line String-Policy and adds them to + the passed parent node. + ''' + # We currently also show a single-line textbox - see http://crbug/829328 + self._AddStringPolicy(parent, name, id = name + '_Legacy') + attributes = { 'id': name, 'valueName': name, 'maxLength': '1000000', } - self.AddElement(parent, 'text', attributes) + self.AddElement(parent, 'multiText', attributes) def _AddIntPolicy(self, parent, name): '''Generates ADMX elements for an Int-Policy and adds them to the passed @@ -264,14 +348,14 @@ raise Exception('There is supposed to be only one "elements" node but' ' there are %s.' % str(len(elements_list))) - def _WritePolicy(self, policy, name, key, parent): - '''Generates AMDX elements for a Policy. There are four different policy - types: Main-Policy, String-Policy, Enum-Policy and List-Policy. - ''' - policies_elem = self._active_policies_elem - policy_type = policy['type'] - policy_name = policy['name'] + def _GetAdmxElementType(self, policy): + '''Returns the ADMX element type for a particular Policy.''' + return AdmxElementType.GetType(policy, allow_multi_strings = False) + def _WritePolicy(self, policy, name, key, parent): + '''Generates ADMX elements for a Policy.''' + policies_elem = self._active_policies_elem + policy_name = policy['name'] attributes = { 'name': name, 'class': self.GetClass(policy), @@ -280,6 +364,7 @@ 'presentation': self._AdmlPresentation(policy_name), 'key': key, } + # Store the current "policy" AMDX element in self for later use by the # WritePolicy method. policy_elem = self.AddElement(policies_elem, 'policy', @@ -288,27 +373,30 @@ {'ref': parent}) self.AddElement(policy_elem, 'supportedOn', {'ref': self.config['win_supported_os']}) - if policy_type == 'main': + + element_type = self._GetAdmxElementType(policy) + if element_type == AdmxElementType.MAIN: self.AddAttribute(policy_elem, 'valueName', policy_name) self._AddMainPolicy(policy_elem) - elif policy_type in ('string', 'dict', 'external'): - # 'dict' and 'external' policies are configured as JSON-encoded strings on - # Windows. + elif element_type == AdmxElementType.STRING: parent = self._GetElements(policy_elem) self._AddStringPolicy(parent, policy_name) - elif policy_type == 'int': + elif element_type == AdmxElementType.MULTI_STRING: + parent = self._GetElements(policy_elem) + self._AddMultiStringPolicy(parent, policy_name) + elif element_type == AdmxElementType.INT: parent = self._GetElements(policy_elem) self._AddIntPolicy(parent, policy_name) - elif policy_type in ('int-enum', 'string-enum'): + elif element_type == AdmxElementType.ENUM: parent = self._GetElements(policy_elem) self._AddEnumPolicy(parent, policy) - elif policy_type in ('list', 'string-enum-list'): + elif element_type == AdmxElementType.LIST: parent = self._GetElements(policy_elem) self._AddListPolicy(parent, key, policy_name) - elif policy_type == 'group': + elif element_type == AdmxElementType.GROUP: pass else: - raise Exception('Unknown policy type %s.' % policy_type) + raise Exception('Unknown element type %s.' % element_type) def WritePolicy(self, policy): if self.CanBeMandatory(policy):
diff --git a/components/policy/tools/template_writers/writers/admx_writer_unittest.py b/components/policy/tools/template_writers/writers/admx_writer_unittest.py index 7cb09ee..ba8ebbb 100755 --- a/components/policy/tools/template_writers/writers/admx_writer_unittest.py +++ b/components/policy/tools/template_writers/writers/admx_writer_unittest.py
@@ -522,10 +522,10 @@ self.AssertXMLEquals(output, expected_output) - def testDictionaryPolicy(self): + def testDictionaryPolicy(self, is_external = False): dict_policy = { 'name': 'SampleDictionaryPolicy', - 'type': 'dict', + 'type': 'external' if is_external else 'dict', } self._initWriterForPolicy(self.writer, dict_policy) @@ -548,29 +548,7 @@ self.AssertXMLEquals(output, expected_output) def testExternalPolicy(self): - external_policy = { - 'name': 'SampleExternalPolicy', - 'type': 'external', - } - self._initWriterForPolicy(self.writer, external_policy) - - self.writer.WritePolicy(external_policy) - output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) - expected_output = ( - '<policy class="' + self.writer.GetClass(external_policy) + '"' - ' displayName="$(string.SampleExternalPolicy)"' - ' explainText="$(string.SampleExternalPolicy_Explain)"' - ' key="Software\\Policies\\' + self._GetKey() + '"' - ' name="SampleExternalPolicy"' - ' presentation="$(presentation.SampleExternalPolicy)">\n' - ' <parentCategory ref="PolicyGroup"/>\n' - ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' - ' <elements>\n' - ' <text id="SampleExternalPolicy" maxLength="1000000"' - ' valueName="SampleExternalPolicy"/>\n' - ' </elements>\n' - '</policy>') - self.AssertXMLEquals(output, expected_output) + self.testDictionaryPolicy(is_external = True) def testPlatform(self): # Test that the writer correctly chooses policies of platform Windows.
diff --git a/components/policy/tools/template_writers/writers/chromeos_adml_writer.py b/components/policy/tools/template_writers/writers/chromeos_adml_writer.py index de54eb9..ae92923 100755 --- a/components/policy/tools/template_writers/writers/chromeos_adml_writer.py +++ b/components/policy/tools/template_writers/writers/chromeos_adml_writer.py
@@ -7,6 +7,7 @@ import base64 from writers import adml_writer +from writers.admx_writer import AdmxElementType def GetWriter(config): @@ -26,3 +27,7 @@ def IsPolicySupported(self, policy): return self.IsCrOSManagementSupported(policy, 'active_directory') and \ super(ChromeOSADMLWriter, self).IsPolicySupported(policy) + + # Overridden. + def _GetAdmxElementType(self, policy): + return AdmxElementType.GetType(policy, allow_multi_strings = True)
diff --git a/components/policy/tools/template_writers/writers/chromeos_adml_writer_unittest.py b/components/policy/tools/template_writers/writers/chromeos_adml_writer_unittest.py index e6c8819..6e839f75 100755 --- a/components/policy/tools/template_writers/writers/chromeos_adml_writer_unittest.py +++ b/components/policy/tools/template_writers/writers/chromeos_adml_writer_unittest.py
@@ -16,6 +16,7 @@ from writers import chromeos_adml_writer from writers import adml_writer_unittest +from writers.admx_writer import AdmxElementType class ChromeOsAdmlWriterUnittest( @@ -67,5 +68,38 @@ policy['supported_chrome_os_management'] = ['active_directory'] self.assertTrue(self.writer.IsPolicySupported(policy)) + # Overridden. + def testDictionaryPolicy(self, is_external = False): + dict_policy = { + 'name': 'DictionaryPolicyStub', + 'type': 'external' if is_external else 'dict', + 'caption': 'Dictionary policy caption', + 'label': 'Dictionary policy label', + 'desc': 'This is a test description.', + } + self. _InitWriterForAddingPolicies(self.writer, dict_policy) + self.writer.WritePolicy(dict_policy) + # Assert generated string elements. + output = self.GetXMLOfChildren(self.writer._string_table_elem) + expected_output = ( + '<string id="DictionaryPolicyStub">Dictionary policy caption</string>\n' + '<string id="DictionaryPolicyStub_Explain">' + 'This is a test description.</string>\n' + '<string id="DictionaryPolicyStub_Legacy">' + 'Dictionary policy label (deprecated)</string>') + self.AssertXMLEquals(output, expected_output) + # Assert generated presentation elements. + output = self.GetXMLOfChildren(self.writer._presentation_table_elem) + expected_output = ( + '<presentation id="DictionaryPolicyStub">\n' + ' <textBox refId="DictionaryPolicyStub_Legacy">\n' + ' <label>Dictionary policy label (deprecated)</label>\n' + ' </textBox>\n' + ' <multiTextBox defaultHeight="8" refId="DictionaryPolicyStub">' + 'Dictionary policy label</multiTextBox>\n' + '</presentation>') + self.AssertXMLEquals(output, expected_output) + + if __name__ == '__main__': unittest.main()
diff --git a/components/policy/tools/template_writers/writers/chromeos_admx_writer.py b/components/policy/tools/template_writers/writers/chromeos_admx_writer.py index a0baa59..e68e2159 100755 --- a/components/policy/tools/template_writers/writers/chromeos_admx_writer.py +++ b/components/policy/tools/template_writers/writers/chromeos_admx_writer.py
@@ -7,6 +7,7 @@ import base64 from writers import admx_writer +from writers.admx_writer import AdmxElementType def GetWriter(config): @@ -32,3 +33,7 @@ def IsPolicySupported(self, policy): return self.IsCrOSManagementSupported(policy, 'active_directory') and \ super(ChromeOSADMXWriter, self).IsPolicySupported(policy) + + # Overridden. + def _GetAdmxElementType(self, policy): + return AdmxElementType.GetType(policy, allow_multi_strings = True)
diff --git a/components/policy/tools/template_writers/writers/chromeos_admx_writer_unittest.py b/components/policy/tools/template_writers/writers/chromeos_admx_writer_unittest.py index 6437502e..424cf27 100755 --- a/components/policy/tools/template_writers/writers/chromeos_admx_writer_unittest.py +++ b/components/policy/tools/template_writers/writers/chromeos_admx_writer_unittest.py
@@ -16,6 +16,7 @@ from writers import chromeos_admx_writer from writers import admx_writer_unittest +from writers.admx_writer import AdmxElementType class ChromeOsAdmxWriterUnittest( @@ -116,5 +117,34 @@ policy['supported_chrome_os_management'] = ['active_directory'] self.assertTrue(self.writer.IsPolicySupported(policy)) + #Overridden + def testDictionaryPolicy(self, is_external = False): + dict_policy = { + 'name': 'SampleDictionaryPolicy', + 'type': 'external' if is_external else 'dict', + } + self._initWriterForPolicy(self.writer, dict_policy) + + self.writer.WritePolicy(dict_policy) + output = self.GetXMLOfChildren(self._GetPoliciesElement(self.writer._doc)) + expected_output = ( + '<policy class="' + self.writer.GetClass(dict_policy) + '"' + ' displayName="$(string.SampleDictionaryPolicy)"' + ' explainText="$(string.SampleDictionaryPolicy_Explain)"' + ' key="Software\\Policies\\' + self._GetKey() + '"' + ' name="SampleDictionaryPolicy"' + ' presentation="$(presentation.SampleDictionaryPolicy)">\n' + ' <parentCategory ref="PolicyGroup"/>\n' + ' <supportedOn ref="SUPPORTED_TESTOS"/>\n' + ' <elements>\n' + ' <text id="SampleDictionaryPolicy_Legacy" maxLength="1000000"' + ' valueName="SampleDictionaryPolicy"/>\n' + ' <multiText id="SampleDictionaryPolicy" maxLength="1000000"' + ' valueName="SampleDictionaryPolicy"/>\n' + ' </elements>\n' + '</policy>') + self.AssertXMLEquals(output, expected_output) + + if __name__ == '__main__': unittest.main()
diff --git a/components/printing/service/pdf_compositor_manifest.json b/components/printing/service/pdf_compositor_manifest.json index 98745a3..ecbad43 100644 --- a/components/printing/service/pdf_compositor_manifest.json +++ b/components/printing/service/pdf_compositor_manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "compositor": [ "printing::mojom::PdfCompositor" ] + "compositor": [ "printing.mojom.PdfCompositor" ] }, "requires": { "*": [ "app" ],
diff --git a/components/printing/service/pdf_compositor_service_unittest_manifest.json b/components/printing/service/pdf_compositor_service_unittest_manifest.json index 02be317..19a847f 100644 --- a/components/printing/service/pdf_compositor_service_unittest_manifest.json +++ b/components/printing/service/pdf_compositor_service_unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/components/renderer_context_menu/views/toolkit_delegate_views.h b/components/renderer_context_menu/views/toolkit_delegate_views.h index 9ee4d0f..eb3ef32 100644 --- a/components/renderer_context_menu/views/toolkit_delegate_views.h +++ b/components/renderer_context_menu/views/toolkit_delegate_views.h
@@ -35,9 +35,12 @@ const gfx::Point& point, ui::MenuSourceType type); - private: + protected: // ToolkitDelegate: void Init(ui::SimpleMenuModel* menu_model) override; + + private: + // ToolkitDelegate: void Cancel() override; void UpdateMenuItem(int command_id, bool enabled,
diff --git a/components/security_interstitials/core/browser/resources/interstitial_large.html b/components/security_interstitials/core/browser/resources/interstitial_large.html index b6dafc6..cdb7392a 100644 --- a/components/security_interstitials/core/browser/resources/interstitial_large.html +++ b/components/security_interstitials/core/browser/resources/interstitial_large.html
@@ -33,7 +33,7 @@ </div> </div> <div id="recurrent-error-message"> - <p>$i18nRaw{recurrentErrorParagraph}</p> + $i18nRaw{recurrentErrorParagraph} </div> <div id="extended-reporting-opt-in" class="hidden"> <label>
diff --git a/components/security_interstitials/core/common/resources/interstitial_common.css b/components/security_interstitials/core/common/resources/interstitial_common.css index 71e5ace4..86680abd 100644 --- a/components/security_interstitials/core/common/resources/interstitial_common.css +++ b/components/security_interstitials/core/common/resources/interstitial_common.css
@@ -188,6 +188,17 @@ opacity: 1; } +#recurrent-error-message { + background: #ededed; + padding: 12px 16px; + margin-top: 12px; + margin-bottom: 16px; +} + +.showing-recurrent-error-message #extended-reporting-opt-in { + margin-top: 16px; +} + @media (max-width: 700px) { .interstitial-wrapper { padding: 0 10%; @@ -456,13 +467,3 @@ padding-right: 0; } } - -#recurrent-error-message { - background: #efefef; - padding: 14px; - margin-top: 7px; -} - -.showing-recurrent-error-message #extended-reporting-opt-in { - margin-top: 14px; -}
diff --git a/components/services/filesystem/manifest.json b/components/services/filesystem/manifest.json index 1bc538a..5e2e1647 100644 --- a/components/services/filesystem/manifest.json +++ b/components/services/filesystem/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "filesystem:filesystem": [ "filesystem::mojom::FileSystem" ] + "filesystem:filesystem": [ "filesystem.mojom.FileSystem" ] }, "requires": { "*": [ "app" ]
diff --git a/components/services/font/manifest.json b/components/services/font/manifest.json index 2fd8207..434a7ff3 100644 --- a/components/services/font/manifest.json +++ b/components/services/font/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "app": [ "font_service::mojom::FontService" ] + "app": [ "font_service.mojom.FontService" ] }, "requires": { "*": [ "app" ]
diff --git a/components/services/heap_profiling/heap_profiling_manifest.json b/components/services/heap_profiling/heap_profiling_manifest.json index 40d94cb..4c77773 100644 --- a/components/services/heap_profiling/heap_profiling_manifest.json +++ b/components/services/heap_profiling/heap_profiling_manifest.json
@@ -5,8 +5,8 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "profiling": [ "heap_profiling::mojom::ProfilingService" ], - "heap_profiler": [ "memory_instrumentation::mojom::HeapProfiler" ] + "profiling": [ "heap_profiling.mojom.ProfilingService" ], + "heap_profiler": [ "memory_instrumentation.mojom.HeapProfiler" ] }, "requires": { "*": [ "app" ],
diff --git a/components/services/leveldb/manifest.json b/components/services/leveldb/manifest.json index 2b5c39a..41102cc4 100644 --- a/components/services/leveldb/manifest.json +++ b/components/services/leveldb/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "leveldb:leveldb": [ "leveldb::mojom::LevelDBService" ] + "leveldb:leveldb": [ "leveldb.mojom.LevelDBService" ] }, "requires": { "*": [ "app" ]
diff --git a/components/services/patch/manifest.json b/components/services/patch/manifest.json index 5afcc109..f69b1a2 100644 --- a/components/services/patch/manifest.json +++ b/components/services/patch/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "patch_file": [ "patch::mojom::FilePatcher" ] + "patch_file": [ "patch.mojom.FilePatcher" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/components/services/unzip/manifest.json b/components/services/unzip/manifest.json index b21cb37..2cfc345 100644 --- a/components/services/unzip/manifest.json +++ b/components/services/unzip/manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "unzip_file": [ "unzip::mojom::Unzipper" ] + "unzip_file": [ "unzip.mojom.Unzipper" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/components/sessions/core/tab_restore_service_helper.cc b/components/sessions/core/tab_restore_service_helper.cc index d7e3a95..3a142b4d 100644 --- a/components/sessions/core/tab_restore_service_helper.cc +++ b/components/sessions/core/tab_restore_service_helper.cc
@@ -319,11 +319,10 @@ } else { // Restore a single tab from the window. Find the tab that matches the // ID in the window and restore it. - for (auto tab_i = window.tabs.begin(); tab_i != window.tabs.end(); - ++tab_i) { + for (size_t tab_i = 0; tab_i < window.tabs.size(); tab_i++) { SessionID::id_type restored_tab_browser_id; { - const Tab& tab = **tab_i; + const Tab& tab = *window.tabs[tab_i]; if (tab.id != id) continue; @@ -331,13 +330,20 @@ LiveTab* restored_tab = nullptr; context = RestoreTab(tab, context, disposition, &restored_tab); live_tabs.push_back(restored_tab); - window.tabs.erase(tab_i); + DCHECK(ValidateWindow(window)); + window.tabs.erase(window.tabs.begin() + tab_i); } // If restoring the tab leaves the window with nothing else, delete it // as well. if (window.tabs.empty()) { entries_.erase(entry_iterator); } else { + // Adjust |selected_tab index| to keep the window in a valid state. + if (static_cast<int>(tab_i) <= window.selected_tab_index) { + window.selected_tab_index = + std::max(0, window.selected_tab_index - 1); + } + DCHECK(ValidateWindow(window)); // Update the browser ID of the rest of the tabs in the window so if // any one is restored, it goes into the same window as the tab // being restored now.
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index da81d47..46c1acf 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">ለ<ph name="PERMISSION_NAME" /> ፈቃድ አቀናብር</translation> <translation id="1111153019813902504">የቅርብ ጊዜ ዕልባቶች</translation> <translation id="1113869188872983271">&እንደገና ደርድርን ቀልብስ</translation> +<translation id="1125573121925420732">ማስጠንቀቂያዎች ድርጣቢያዎች የእነርሱን ደህንነት በሚያዘምኑበት ጊዜ የተለመዱ ሊሆኑ ይችላሉ። ይህ በቅርቡ መሻሻል አለበት።</translation> <translation id="1126551341858583091">የአካባቢያዊ ማከማቻው መጠን <ph name="CRASH_SIZE" /> ነው።</translation> <translation id="112840717907525620">የመምሪያ መሸጎጫ እሺ</translation> <translation id="1150979032973867961">ይህ አገልጋይ <ph name="DOMAIN" /> መሆኑን ሊያረጋግጥ አልቻለም፤ የደህንነት እውቅና ማረጋገጫው በኮምፒውተርዎ ስርዓተ ክወና የሚታመን አይደለም። ይሄ በተሳሳተ አወቃቀር ወይም አንድ አጥቂ ግንኙነትዎን በመጥለፉ የተከሰተ ሊሆን ይችላል።</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />የWindows አውታረ መረብ መመርመሪያውን ለማሄድ ይሞክሩ<ph name="END_LINK" />።</translation> <translation id="1783075131180517613">እባክዎ የማመሳሰል ይለፍ ሐረግዎን ያዘምኑ።</translation> <translation id="1787142507584202372">የእርስዎ ክፍት ትሮች እዚህ ይመጣሉ</translation> -<translation id="1789575671122666129">ብቅ-ባዮች</translation> <translation id="1791429645902722292">Google ዘመናዊ ቁልፍ</translation> <translation id="1803264062614276815">የካርድ ያዢው ስም</translation> <translation id="1806541873155184440"><ph name="ADDED_TO_AUTOFILL_MONTH" /> ላይ ታክሏል</translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">የተመረጡትን ንጥሎች አስወግድ</translation> <translation id="277133753123645258">የመላኪያ ዘዴ</translation> <translation id="277499241957683684">የሚጎድል የመሣሪያ መዝገብ</translation> +<translation id="2781030394888168909">MacOSን ወደ ውጭ ይላኩ</translation> <translation id="2784949926578158345">ግንኙነቱ ዳግም እንዲጀምር ተደርጓል።</translation> <translation id="2788784517760473862">ተቀባይነት ያላቸው ክሬዲት ካርዶች</translation> <translation id="2794233252405721443">ጣቢያ ታግዷል</translation> @@ -461,6 +462,7 @@ <translation id="4171400957073367226">መጥፎ የማረጋገጫ ፊርማ</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> ተጨማሪ ንጥል}one{<ph name="ITEM_COUNT" /> ተጨማሪ ንጥሎች}other{<ph name="ITEM_COUNT" /> ተጨማሪ ንጥሎች}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome የእርስዎን የ<ph name="ORG_NAME" /> የይለፍ ቃል በሌሎች ጣቢያዎች ላይ ዳግመኛ ከተጠቀሙበት እንደገና እንዲያዋቅሩት ይመክራል።</translation> <translation id="4196861286325780578">&ውሰድን ድገም</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />የኬላ እና የጸረ-ቫይረስ ውቅረቶችን መፈተሽ<ph name="END_LINK" /></translation> <translation id="4220128509585149162">ብልሽቶች</translation> @@ -508,6 +510,7 @@ <translation id="4415426530740016218">የመውሰጃ አድራሻ</translation> <translation id="4424024547088906515">ይህ አገልጋይ <ph name="DOMAIN" /> መሆኑን ሊያረጋግጥ አልቻለም፤ የደህንነት እውቅና ማረጋገጫው በChrome የሚታመን አይደለም። ይሄ በተሳሳተ አወቃቀር ወይም አንድ አጥቂ ግንኙነትዎን በመጥለፉ የተከሰተ ሊሆን ይችላል።</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> የመግቢያ እውቅና ማረጋገጫዎን አልተቀበለም፣ ወይም ገና አልተሰጠዎት ይሆናል።</translation> +<translation id="4434045419905280838">ብቅ-ባዮች እና አቅጣጫ ማዞሮች</translation> <translation id="443673843213245140">የተኪ መጠቀም ተሰናክሏል ግን ግልጽ የሆነ የተኪ ውቅር ተገልጿል።</translation> <translation id="445100540951337728">ተቀባይነት ያላቸው ዴቢት ካርዶች</translation> <translation id="4506176782989081258">የማረጋገጥ ስህተት፦ <ph name="VALIDATION_ERROR" /></translation> @@ -693,13 +696,13 @@ <translation id="5869405914158311789">ይህ ጣቢያ ሊደረስበት አይችልም</translation> <translation id="5869522115854928033">የተቀመጡ የይለፍ ቃሎች</translation> <translation id="5893752035575986141">ክሬዲት ካርዶች ተቀባይነት አላቸው።</translation> +<translation id="5898382028489516745">Chromium የእርስዎን የ<ph name="ORG_NAME" /> የይለፍ ቃል በሌሎች ጣቢያዎች ላይ ዳግመኛ ከተጠቀሙበት እንደገና እንዲያዋቅሩት ይመክራል።</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (ሰምሯል)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ጥቅም ላይ ያለ}one{# ጥቅም ላይ ያለ}other{# ጥቅም ላይ}}</translation> <translation id="5939518447894949180">ዳግም አስጀምር</translation> <translation id="5959728338436674663">አደገኛ መተግበሪያዎችን እና ጣቢያዎችን ማግኘት እንዲያግዝ አንዳንድ <ph name="BEGIN_WHITEPAPER_LINK" />የሥርዓት መረጃ እና የገጽ ይዘት<ph name="END_WHITEPAPER_LINK" />ን በራስ-ሰር ወደ Google ይላኩ። <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">የዕውቂያ መረጃን ያርትዑ</translation> <translation id="5967867314010545767">ከታሪክ አስወግድ</translation> -<translation id="5972020793760134803">ወደ ትር ቀይር</translation> <translation id="5975083100439434680">አሳንስ</translation> <translation id="598637245381783098">የክፍያ መተግበሪያን መክፈት አይቻልም</translation> <translation id="5989320800837274978">ቋሚ ተኪ አገልጋዮችም ሆኑ የ.pac ስክሪፕት ዩአርኤል አልተገለጹም።</translation> @@ -1035,7 +1038,6 @@ <translation id="8553075262323480129">የገጹ ቋንቋ ሊታወቅ ስላልቻለ ትርጉሙ አልተሳካም።</translation> <translation id="8557066899867184262">CVC ከካርድዎ በስተጀርባ ላይ ይገኛል።</translation> <translation id="8559762987265718583">የእርስዎ መሣሪያ ቀን (<ph name="DATE_AND_TIME" />) ልክ ስላልሆነ ወደ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> የግል ግንኙነት መመስረት አይቻልም።</translation> -<translation id="8564985650692024650">Chromium የእርስዎን የ<ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ይለፍ ቃል በሌሎች ጣቢያዎች ላይ ዳግም ከተጠቀሙበት እንደገና እንዲያዋቅሩት ይመክራል።</translation> <translation id="8571890674111243710">ገጽ ወደ <ph name="LANGUAGE" /> በመተርጎም ላይ...</translation> <translation id="858637041960032120">ስልክ ቁጥር ያክሉ </translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">የመላኪያ አድራሻ</translation> <translation id="884923133447025588">ምንም የመሻሪያ ዘዴ አልተገኘም።</translation> <translation id="885730110891505394">ከGoogle ጋር ማጋራት</translation> -<translation id="8858065207712248076">Chrome የእርስዎን የ<ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ይለፍ ቃል በሌሎች ጣቢያዎች ላይ ዳግም ከተጠቀሙበት እንደገና እንዲያዋቅሩት ይመክራል።</translation> <translation id="8866481888320382733">የመምሪያ ቅንብሮችን መተንተን ላይ ስህተት</translation> <translation id="8870413625673593573">በቅርብ ጊዜ የተዘጉ</translation> <translation id="8874824191258364635">የሚሰራ የካርድ ቁጥር ያስገቡ</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 0c861c0..52d8d0af 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />تجربة تشغيل بيانات التشخيص لشبكة Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">يُرجى تحديث عبارة مرور المزامنة.</translation> <translation id="1787142507584202372">تظهر علامات التبويب المفتوحة هنا</translation> -<translation id="1789575671122666129">النوافذ المنبثقة</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">اسم حامل البطاقة</translation> <translation id="1806541873155184440">تمت الإضافة في <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">توقيع تحقق سيئ</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{عنصر (<ph name="ITEM_COUNT" />) آخر}zero{<ph name="ITEM_COUNT" /> عنصر آخر}two{عنصران (<ph name="ITEM_COUNT" />) آخران}few{<ph name="ITEM_COUNT" /> عناصر أخرى}many{<ph name="ITEM_COUNT" /> عنصرًا آخر}other{<ph name="ITEM_COUNT" /> عنصر آخر}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">يوصي Chrome بإعادة تعيين كلمة مرور <ph name="ORG_NAME" /> في حال إعادة استخدامها في مواقع ويب أخرى.</translation> <translation id="4196861286325780578">إ&عادة النقل</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />التحقق من عمليات تهيئة الجدار الناري وبرامج مكافحة الفيروسات<ph name="END_LINK" /></translation> <translation id="4220128509585149162">الأعطال</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">لا يمكن الوصول إلى موقع الويب هذا</translation> <translation id="5869522115854928033">كلمات المرور المحفوظة</translation> <translation id="5893752035575986141">يتم قبول بطاقات الائتمان.</translation> +<translation id="5898382028489516745">يوصي Chromium بإعادة تعيين كلمة مرور <ph name="ORG_NAME" /> في حال إعادة استخدامها في مواقع ويب أخرى.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (تمت المزامنة)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 قيد الاستخدام}zero{# قيد الاستخدام}two{# قيد الاستخدام}few{# قيد الاستخدام}many{# قيد الاستخدام}other{# قيد الاستخدام}}</translation> <translation id="5939518447894949180">إعادة</translation> <translation id="5959728338436674663">يمكنك إرسال بعض <ph name="BEGIN_WHITEPAPER_LINK" />معلومات النظام ومحتوى الصفحة<ph name="END_WHITEPAPER_LINK" /> إلى Google تلقائيًا للمساعدة في اكتشاف التطبيقات والمواقع الضارة. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">تعديل معلومات الاتصال</translation> <translation id="5967867314010545767">إزالة من السجل</translation> -<translation id="5972020793760134803">التبديل إلى علامة التبويب أخرى</translation> <translation id="5975083100439434680">تصغير</translation> <translation id="598637245381783098">لا يمكن فتح تطبيق الدفع</translation> <translation id="5989320800837274978">لم يتم تحديد أي من الخوادم الوكيلة الثابتة ولا عنوان URL للنص البرمجي pac.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">تعذّرت الترجمة لتعذر تحديد لغة الصفحة.</translation> <translation id="8557066899867184262">رمز التحقق من البطاقة (CVC) موجود خلف بطاقتك.</translation> <translation id="8559762987265718583">تعذر إنشاء اتصال خاص بـ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> نظرًا لأن التاريخ والوقت للجهاز (<ph name="DATE_AND_TIME" />) غير صحيحين.</translation> -<translation id="8564985650692024650">يُوصي Chromium بإعادة تحديد كلمة المرور <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> في حال إعادة استخدامها في مواقع ويب أخرى.</translation> <translation id="8571890674111243710">جارٍ ترجمة الصفحة إلى <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">إضافة رقم هاتف </translation> @@ -1064,7 +1063,6 @@ <translation id="884264119367021077">عنوان الشحن</translation> <translation id="884923133447025588">لم يتمّ العثور على أي آلبة إبطال.</translation> <translation id="885730110891505394">مشاركة مع Google</translation> -<translation id="8858065207712248076">يُوصي Chrome بإعادة تحديد كلمة المرور <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> في حال إعادة استخدامها في مواقع ويب أخرى.</translation> <translation id="8866481888320382733">خطأ في إعدادات تحليل السياسة</translation> <translation id="8870413625673593573">العناصر المغلقة مؤخرًا</translation> <translation id="8874824191258364635">أدخِل رقم بطاقة صحيحًا</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 027d20e..32477ba8 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Избиране на разрешението за <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Скорошни отметки</translation> <translation id="1113869188872983271">&Отмяна на пренареждането</translation> +<translation id="1125573121925420732">Възможно е да виждате предупреждения често, докато уебсайтовете актуализират мерките си за сигурност. Това би трябвало скоро да се подобри.</translation> <translation id="1126551341858583091">Размерът на локалното хранилище е <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Кешът на правилото е в добро състояние</translation> <translation id="1150979032973867961">Сървърът не можа да докаже, че е <ph name="DOMAIN" />; операционната система на компютъра ви няма доверие на сертификата му за сигурност. Това може да се дължи на неправилно конфигуриране или на прихващане на връзката ви от атакуващ.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Опитайте да стартирате мрежова диагностика в Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Моля, актуализирайте пропуска си за синхронизиране.</translation> <translation id="1787142507584202372">Тук ще се показват отворените ви раздели</translation> -<translation id="1789575671122666129">Изскачащи прозорци</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Име на титуляря на картата</translation> <translation id="1806541873155184440">Добавено: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Премахване на избраните елементи</translation> <translation id="277133753123645258">Начин на доставка</translation> <translation id="277499241957683684">Липсващ запис за устройството</translation> +<translation id="2781030394888168909">Експортиране за Mac OS</translation> <translation id="2784949926578158345">Връзката бе възстановена.</translation> <translation id="2788784517760473862">Приемани кредитни карти</translation> <translation id="2794233252405721443">Сайтът е блокиран</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Невалиден подпис за потвърждаване</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{още <ph name="ITEM_COUNT" /> елемент}other{още <ph name="ITEM_COUNT" /> елемента}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> – <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome препоръчва да зададете повторно паролата си за <ph name="ORG_NAME" />, ако сте я използвали и на други сайтове.</translation> <translation id="4196861286325780578">&Възстановяване на преместването</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Проверете конфигурацията на защитната стена и антивирусния софтуер<ph name="END_LINK" />.</translation> <translation id="4220128509585149162">Сривове</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Адрес за вземане</translation> <translation id="4424024547088906515">Сървърът не можа да докаже, че е <ph name="DOMAIN" />; Chrome няма доверие на сертификата му за сигурност. Това може да се дължи на неправилно конфигуриране или на прихващане на връзката ви от атакуващ.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> не прие сертификата ви за вход или е възможно да не е предоставен такъв.</translation> +<translation id="4434045419905280838">Изскач. прозорци и пренасочвания</translation> <translation id="443673843213245140">Използването на прокси сървър е деактивирано, но е посочена изрична негова конфигурация.</translation> <translation id="445100540951337728">Приемани дебитни карти</translation> <translation id="4506176782989081258">Грешка при потвърждаването: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Няма достъп до този сайт</translation> <translation id="5869522115854928033">Запазени пароли</translation> <translation id="5893752035575986141">Приемат се кредитни карти.</translation> +<translation id="5898382028489516745">Chromium препоръчва да зададете повторно паролата си за <ph name="ORG_NAME" />, ако сте я използвали и на други сайтове.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронизирано)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Използва се 1}other{Използват се #}}</translation> <translation id="5939518447894949180">Нулиране</translation> <translation id="5959728338436674663">Автоматично изпращане до Google на <ph name="BEGIN_WHITEPAPER_LINK" />системна информация и част от съдържанието на страниците<ph name="END_WHITEPAPER_LINK" /> с цел по-лесно откриване на опасни приложения и сайтове. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Редактиране на информацията за връзка</translation> <translation id="5967867314010545767">Премахване от историята</translation> -<translation id="5972020793760134803">Превключване към раздел</translation> <translation id="5975083100439434680">Намаляване на мащаба</translation> <translation id="598637245381783098">Приложението за плащане не може да се отвори</translation> <translation id="5989320800837274978">Не са посочени нито фиксирани прокси сървъри, нито URL адрес на скрипт във формат .pac.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Преводът не бе успешен, защото езикът на страницата не можа да бъде определен.</translation> <translation id="8557066899867184262">Кодът за проверка се намира на гърба на картата ви.</translation> <translation id="8559762987265718583">Не може да се установи частна връзка с/ъс <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, тъй като датата и часът на устройството ви (<ph name="DATE_AND_TIME" />) са неправилни.</translation> -<translation id="8564985650692024650">Chromium препоръчва да зададете повторно паролата си за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, ако сте я използвали и на други сайтове.</translation> <translation id="8571890674111243710">Превод на страницата на <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">+ тел. номер</translation> <translation id="859285277496340001">Сертификатът не посочва механизъм за проверка дали е бил анулиран.</translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Адрес за доставка</translation> <translation id="884923133447025588">Не е намерен механизъм за анулиране.</translation> <translation id="885730110891505394">Споделяне с Google</translation> -<translation id="8858065207712248076">Chrome препоръчва да зададете повторно паролата си за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, ако сте я използвали и на други сайтове.</translation> <translation id="8866481888320382733">Грешка при синтактичния анализ на настройките за правилото</translation> <translation id="8870413625673593573">Наскоро затворени</translation> <translation id="8874824191258364635">Въведете валиден номер на карта</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 3e35f57..531561a 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -128,7 +128,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows নেটওয়ার্ক ডায়গনিস্টিক্স চালিয়ে দেখুন<ph name="END_LINK" />।</translation> <translation id="1783075131180517613">দয়া করে আপনার সিঙ্ক পাসফ্রেজ আপডেট করুন৷</translation> <translation id="1787142507584202372">আপনার খোলা ট্যাবগুলি এখানে দেখা যাবে</translation> -<translation id="1789575671122666129">পপআপ</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">কার্ড হোল্ডারের নাম</translation> <translation id="1806541873155184440">যোগ করা হয়েছে <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -460,6 +459,7 @@ <translation id="4171400957073367226">খারাপ যাচাইকরণের স্বাক্ষর</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{আরও <ph name="ITEM_COUNT" />টি আইটেম}one{আরও <ph name="ITEM_COUNT" />টি আইটেম}other{আরও <ph name="ITEM_COUNT" />টি আইটেম}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome-এর নীতি অনুযায়ী আপনার <ph name="ORG_NAME" /> পাসওয়ার্ড বদলে ফেলা উচিত যদি আপনি সেটি অন্য কোনও সাইটে ব্যবহার করে থাকেন।</translation> <translation id="4196861286325780578">&সরানোর কাজটি আবার করুন</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ফায়ারওয়াল এবং অ্যান্টিভাইরাস কনফিগারেশন পরীক্ষা করে দেখুন<ph name="END_LINK" /></translation> <translation id="4220128509585149162">ক্র্যাশেস</translation> @@ -688,13 +688,13 @@ <translation id="5869405914158311789">এই সাইটটিতে পৌছানো যাচ্ছে না</translation> <translation id="5869522115854928033">সংরক্ষিত পাসওয়ার্ড</translation> <translation id="5893752035575986141">ক্রেডিট কার্ড গ্রহণ করা হয়।</translation> +<translation id="5898382028489516745">Chromium-এর নীতি অনুযায়ী আপনার <ph name="ORG_NAME" /> পাসওয়ার্ড বদলে ফেলা উচিত যদি আপনি সেটি অন্য কোনও সাইটে ব্যবহার করে থাকেন।</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (সিঙ্ক হয়েছে)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{১টি ব্যবহৃত হচ্ছে}one{#টি ব্যবহৃত হচ্ছে}other{#টি ব্যবহৃত হচ্ছে}}</translation> <translation id="5939518447894949180">রিসেট করুন</translation> <translation id="5959728338436674663">বিপজ্জনক অ্যাপ্লিকেশান ও সাইটগুলি শনাক্ত করতে Google এর কাছে কিছু<ph name="BEGIN_WHITEPAPER_LINK" /> সিস্টেম তথ্য ও পৃষ্ঠার সামগ্রী<ph name="END_WHITEPAPER_LINK" /> স্বয়ংক্রিয়ভাবে পাঠান। <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">পরিচিতির তথ্য সম্পাদনা করুন</translation> <translation id="5967867314010545767">ইতিহাস থেকে সরান</translation> -<translation id="5972020793760134803">ট্যাবে পরিবর্তন করুন</translation> <translation id="5975083100439434680">জুম কমান</translation> <translation id="598637245381783098">পেমেন্ট অ্যাপ খোলা যাচ্ছে না</translation> <translation id="5989320800837274978">কোনো নির্ধারিত প্রক্সি সার্ভার অথবা একটি.pac স্ক্রিপ্ট UR সুর্নিদিষ্টভাবে উল্লেখ করা হয়নি৷</translation> @@ -711,6 +711,7 @@ <translation id="6047927260846328439">এই কন্টেন্ট প্রতারণার মাধ্যমে আপনাকে দিয়ে কোনও সফ্টওয়্যার ইনস্টল করাতে অথবা আপনার ব্যক্তিগত তথ্য জেনে নেওয়ার চেষ্টা করতে পারে। <ph name="BEGIN_LINK" />তবুও এটি দেখতে চাই<ph name="END_LINK" /></translation> <translation id="6051221802930200923">ওয়েবসাইটটি পিন করা শংসাপত্র ব্যবহার করার কারণে আপনি এখন <ph name="SITE" /> এ যেতে পারবেন না। নেটওয়ার্ক ত্রুটি এবং আক্রমণ সাধারণত সাময়িকভাবে হয়, তাই এই পৃষ্ঠাটি সম্ভবত পরে কাজ করবে।</translation> <translation id="6059925163896151826">USB ডিভাইসগুলি</translation> +<translation id="6071091556643036997">নীতির এই ধরনটি ব্যবহার করা যাবে না।</translation> <translation id="6080696365213338172">প্রশাসকের দ্বারা সরবরাহ করা শংসাপত্রের ব্যবহার করে আপনি সামগ্রী ব্যবহার করেছেন৷ <ph name="DOMAIN" /> কে আপনি যে ডেটা সরবরাহ করেন তা আপনার প্রশাসক বাধা দিতে পারে৷</translation> <translation id="610911394827799129"><ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> এ আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিংয়ের ইতিহাস থাকতে পারে</translation> <translation id="6144381551823904650">{COUNT,plural, =0{কিছুই নয়}=1{১টি পাসওয়ার্ড (সিঙ্ক করা হয়েছে)}one{#টি পাসওয়ার্ড (সিঙ্ক করা হয়েছে)}other{#টি পাসওয়ার্ড (সিঙ্ক করা হয়েছে)}}</translation> @@ -969,7 +970,7 @@ <translation id="8202097416529803614">অর্ডারের সারসংক্ষেপ</translation> <translation id="8205463626947051446">সাইটটিতে বিরক্তিকরভাবে বিজ্ঞাপন দেখানো হয়</translation> <translation id="8211406090763984747">কানেকশনটি নিরাপদ</translation> -<translation id="8218327578424803826">নির্ধারিত অবস্থান:</translation> +<translation id="8218327578424803826">নির্ধারিত লোকেশন:</translation> <translation id="8225771182978767009">এই কম্পিউটার যিনি সেট আপ করেছেন তিনি এই সাইটটি অবরুদ্ধ করার বিষয়টি চয়ন করেছেন।</translation> <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation> <translation id="8238581221633243064">নতুন ছদ্মবেশী ট্যাবে একটি পৃষ্ঠা খুলুন</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 5433cbd..cbafc7c 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Proveu d'executar el Diagnòstic de xarxa de Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Actualitzeu la frase de contrasenya de sincronització.</translation> <translation id="1787142507584202372">Les pestanyes obertes es mostren aquí</translation> -<translation id="1789575671122666129">Finestres emergents</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nom del titular de la targeta</translation> <translation id="1806541873155184440">Afegida el dia <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">La signatura de verificació és incorrecta</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> element més}other{<ph name="ITEM_COUNT" /> elements més}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome et recomana que restableixis la contrasenya per a <ph name="ORG_NAME" /> si l'has fet servir en altres llocs web.</translation> <translation id="4196861286325780578">&Refés el moviment</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Comproveu la configuració del tallafoc i de l'antivirus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Errors</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">No es pot accedir a aquest lloc</translation> <translation id="5869522115854928033">Contrasenyes desades</translation> <translation id="5893752035575986141">S'accepten targetes de crèdit.</translation> +<translation id="5898382028489516745">Chromium et recomana que restableixis la contrasenya per a <ph name="ORG_NAME" /> si l'has fet servir en altres llocs web.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (informació sincronitzada)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en ús}other{# en ús}}</translation> <translation id="5939518447894949180">Restableix</translation> <translation id="5959728338436674663">Envia automàticament algunes <ph name="BEGIN_WHITEPAPER_LINK" />dades del sistema i contingut de les pàgines<ph name="END_WHITEPAPER_LINK" /> a Google per ajudar a detectar les aplicacions i els llocs web perillosos. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edita la informació de contacte</translation> <translation id="5967867314010545767">Elimina de l'historial</translation> -<translation id="5972020793760134803">Canvia a la pestanya</translation> <translation id="5975083100439434680">Redueix</translation> <translation id="598637245381783098">No es pot obrir l'aplicació de pagament</translation> <translation id="5989320800837274978">No s'especifiquen servidors intermediaris ni URL d'script .pac.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">S'ha produït un error en fer la traducció perquè no s'ha pogut determinar l'idioma de la pàgina.</translation> <translation id="8557066899867184262">El CVC es troba a la part posterior de la targeta.</translation> <translation id="8559762987265718583">No es pot establir una connexió privada amb <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perquè la data i l'hora (<ph name="DATE_AND_TIME" />) del dispositiu són incorrectes.</translation> -<translation id="8564985650692024650">Chromium et recomana que restableixis la contrasenya per a <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si l'has fet servir en altres llocs web.</translation> <translation id="8571890674111243710">S'està traduint la pàgina a l'idioma <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Afegeix un número de telèfon</translation> <translation id="859285277496340001">El certificat no especifica un mecanisme per comprovar si s'ha revocat.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">Adreça d’enviament</translation> <translation id="884923133447025588">No s'ha trobat cap mecanisme de revocació.</translation> <translation id="885730110891505394">Comparteix informació amb Google</translation> -<translation id="8858065207712248076">Chrome et recomana que restableixis la contrasenya per a <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si l'has fet servir en altres llocs web.</translation> <translation id="8866481888320382733">S'ha produït un error en analitzar la configuració de la política</translation> <translation id="8870413625673593573">Tancades recentment</translation> <translation id="8874824191258364635">Introdueix un número de targeta vàlid</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 0c3ebc6..f704a7d9 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Vyberte oprávnění pro <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Nejnovější záložky</translation> <translation id="1113869188872983271">&Vrátit změnu uspořádání zpět</translation> +<translation id="1125573121925420732">Během aktualizace zabezpečení na webech mohou být upozornění běžná. Brzy by se to mělo zlepšit.</translation> <translation id="1126551341858583091">Velikost místního úložiště je <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Mezipaměť zásady je v pořádku</translation> <translation id="1150979032973867961">Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Operační systém vašeho počítače nedůvěřuje jeho bezpečnostnímu certifikátu.Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Zkuste spustit Diagnostiku sítě systému Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Aktualizujte prosím heslovou frázi pro synchronizaci.</translation> <translation id="1787142507584202372">Zde se zobrazí otevřené karty</translation> -<translation id="1789575671122666129">Vyskakovací okna</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Jméno držitele karty</translation> <translation id="1806541873155184440">Přidáno <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Odstranit vybrané položky</translation> <translation id="277133753123645258">Způsob dopravy</translation> <translation id="277499241957683684">Chybějící záznam zařízení</translation> +<translation id="2781030394888168909">Exportovat pro MacOS</translation> <translation id="2784949926578158345">Připojení bylo resetováno.</translation> <translation id="2788784517760473862">Přijímané kreditní karty</translation> <translation id="2794233252405721443">Web je blokován</translation> @@ -458,6 +459,7 @@ <translation id="4171400957073367226">Chybný ověřovací podpis</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> další položka}few{<ph name="ITEM_COUNT" /> další položky}many{<ph name="ITEM_COUNT" /> další položky}other{<ph name="ITEM_COUNT" /> dalších položek}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Pokud jste heslo organizace <ph name="ORG_NAME" /> použili na jiném webu, doporučujeme vám ho resetovat.</translation> <translation id="4196861286325780578">&Opakovat přesunutí</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Zkontrolovat konfiguraci firewallu a antivirového softwaru<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Selhání</translation> @@ -505,6 +507,7 @@ <translation id="4415426530740016218">Adresa vyzvednutí</translation> <translation id="4424024547088906515">Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Chrome jeho bezpečnostnímu certifikátu nedůvěřuje. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.</translation> <translation id="4432688616882109544">Web <ph name="HOST_NAME" /> nepřijal přihlašovací certifikát, případně žádný certifikát nebyl poskytnut.</translation> +<translation id="4434045419905280838">Vyskakovací okna a přesměrování</translation> <translation id="443673843213245140">Využití proxy serveru je zakázáno, je však určena explicitní konfigurace proxy serveru.</translation> <translation id="445100540951337728">Přijímané debetní karty</translation> <translation id="4506176782989081258">Chyba ověřování: <ph name="VALIDATION_ERROR" />.</translation> @@ -690,13 +693,13 @@ <translation id="5869405914158311789">Tento web není dostupný</translation> <translation id="5869522115854928033">Uložená hesla</translation> <translation id="5893752035575986141">Obchodník přijímá kreditní karty.</translation> +<translation id="5898382028489516745">Pokud jste heslo organizace <ph name="ORG_NAME" /> použili na jiném webu, doporučujeme vám ho resetovat.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronizováno)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Používá se 1}few{Používají se #}many{Používá se #}other{Používá se #}}</translation> <translation id="5939518447894949180">Resetovat</translation> <translation id="5959728338436674663">Automaticky odesílat část <ph name="BEGIN_WHITEPAPER_LINK" />informací o systému a obsahu stránek<ph name="END_WHITEPAPER_LINK" /> do Googlu s cílem pomoci rozpoznávat nebezpečné aplikace a weby. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Úprava kontaktních údajů</translation> <translation id="5967867314010545767">Odstranit z historie</translation> -<translation id="5972020793760134803">Přepnout na kartu</translation> <translation id="5975083100439434680">Oddálit</translation> <translation id="598637245381783098">Platební aplikaci nelze otevřít</translation> <translation id="5989320800837274978">Nejsou určeny pevně dané servery proxy ani adresa URL skriptu PAC.</translation> @@ -1031,7 +1034,6 @@ <translation id="8553075262323480129">Překlad se nezdařil. Nepodařilo se rozpoznat jazyk stránky.</translation> <translation id="8557066899867184262">Kód CVC je uveden na zadní straně karty.</translation> <translation id="8559762987265718583">Soukromé připojení k doméně <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nelze navázat, protože máte v zařízení nastaveno chybné datum a čas (<ph name="DATE_AND_TIME" />).</translation> -<translation id="8564985650692024650">Pokud jste heslo organizace <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> použili na jiném webu, doporučujeme vám ho resetovat.</translation> <translation id="8571890674111243710">Překlad stránky do jazyka: <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Přidat telefon </translation> @@ -1059,7 +1061,6 @@ <translation id="884264119367021077">Dodací adresa</translation> <translation id="884923133447025588">Nebyl nalezen žádný mechanismus zamítnutí.</translation> <translation id="885730110891505394">Sdílení s Googlem</translation> -<translation id="8858065207712248076">Pokud jste heslo organizace <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> použili na jiném webu, doporučujeme vám ho resetovat.</translation> <translation id="8866481888320382733">Při analýze nastavení zásady došlo k chybě</translation> <translation id="8870413625673593573">Nedávno zavřené</translation> <translation id="8874824191258364635">Zadejte platné číslo karty</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index d8955db..f414c61 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Vælg tilladelse til <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Seneste bogmærker</translation> <translation id="1113869188872983271">&Fortryd omarrangering</translation> +<translation id="1125573121925420732">Advarsler kan almindeligt forekomme, når websites opdaterer deres sikkerhed. Dette forbedres snart.</translation> <translation id="1126551341858583091">Størrelsen på den lokale lagerplads er <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Cache for politik er OK</translation> <translation id="1150979032973867961">Denne server kunne ikke bevise, at den er <ph name="DOMAIN" />, da operativsystemet på din computer ikke har tillid til sikkerhedscertifikatet. Dette kan skyldes en fejlkonfiguration, eller at en hacker har opfanget din forbindelse.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Prøv at køre Windows Netværksdiagnosticering<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Opdater din adgangssætning til synkronisering.</translation> <translation id="1787142507584202372">Dine åbne faner vises her</translation> -<translation id="1789575671122666129">Pop op-vinduer</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kortindehaverens navn</translation> <translation id="1806541873155184440">Tilføjet <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Fjern valgte elementer</translation> <translation id="277133753123645258">Forsendelsesmetode</translation> <translation id="277499241957683684">Manglende enhedsregistrering</translation> +<translation id="2781030394888168909">Eksportér MacOS</translation> <translation id="2784949926578158345">Forbindelsen blev nulstillet.</translation> <translation id="2788784517760473862">Accepterede kreditkort</translation> <translation id="2794233252405721443">Websitet er blokeret</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Ugyldig verifikationssignatur</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> element mere}one{<ph name="ITEM_COUNT" /> element mere}other{<ph name="ITEM_COUNT" /> elementer mere}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome anbefaler, at du nulstiller din adgangskode til <ph name="ORG_NAME" />, hvis du har brugt den på andre websites.</translation> <translation id="4196861286325780578">&Annuller fortryd flytning</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Kontrollere firewall- og antiviruskonfigurationer<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Nedbrud</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Afhentningsadresse</translation> <translation id="4424024547088906515">Denne server kunne ikke bevise, at den er <ph name="DOMAIN" />, da Chrome ikke har tillid til sikkerhedscertifikatet. Dette kan skyldes en fejlkonfiguration, eller at en hacker har opfanget din forbindelse.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> accepterede ikke dit logincertifikat, eller der er ikke angivet et.</translation> +<translation id="4434045419905280838">Pop op-vinduer og omdirigeringer</translation> <translation id="443673843213245140">Brug af en proxy er deaktiveret, men en eksplicit proxykonfiguration er angivet.</translation> <translation id="445100540951337728">Accepterede debetkort</translation> <translation id="4506176782989081258">Valideringsfejl: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Der kan ikke oprettes forbindelse til dette website</translation> <translation id="5869522115854928033">Gemte adgangskoder</translation> <translation id="5893752035575986141">Kreditkort accepteres.</translation> +<translation id="5898382028489516745">Chromium anbefaler, at du nulstiller din adgangskode til <ph name="ORG_NAME" />, hvis du har brugt den på andre websites.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkroniseret)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 i brug}one{# i brug}other{# i brug}}</translation> <translation id="5939518447894949180">Nulstil</translation> <translation id="5959728338436674663">Send automatisk <ph name="BEGIN_WHITEPAPER_LINK" />nogle systemoplysninger og noget sideindhold<ph name="END_WHITEPAPER_LINK" /> til Google som en hjælp til at registrere skadelige apps og websites. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Rediger kontaktoplysninger</translation> <translation id="5967867314010545767">Fjern fra historik</translation> -<translation id="5972020793760134803">Skift til fanen</translation> <translation id="5975083100439434680">Zoom ud</translation> <translation id="598637245381783098">Betalingsappen kan ikke åbnes</translation> <translation id="5989320800837274978">Der er hverken angivet faste proxyservere eller en .pac-scriptwebadresse.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Oversættelsen mislykkedes, fordi sidens sprog ikke kunne fastslås.</translation> <translation id="8557066899867184262">Kontrolkoden findes på bagsiden af kortet.</translation> <translation id="8559762987265718583">Der kan ikke oprettes en privat forbindelse til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, da tid og dato (<ph name="DATE_AND_TIME" />) på din enhed er forkerte.</translation> -<translation id="8564985650692024650">Chromium anbefaler, at du nulstiller din adgangskode til <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, hvis du har brugt den på andre websites.</translation> <translation id="8571890674111243710">Oversætter siden til <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Tilføj tlf.nr. </translation> @@ -1064,7 +1066,6 @@ <translation id="884264119367021077">Leveringsadresse</translation> <translation id="884923133447025588">Der blev ikke fundet nogen funktion til tilbagekaldelse.</translation> <translation id="885730110891505394">Deling med Google</translation> -<translation id="8858065207712248076">Chrome anbefaler, at du nulstiller din adgangskode til <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, hvis du har brugt den på andre websites.</translation> <translation id="8866481888320382733">Der opstod en fejl ved parsing af indstillinger for politik</translation> <translation id="8870413625673593573">Senest lukkede</translation> <translation id="8874824191258364635">Angiv et gyldigt kortnummer</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 824188d..fe52a8bb 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Berechtigung für <ph name="PERMISSION_NAME" /> auswählen</translation> <translation id="1111153019813902504">Vor Kurzem aufgerufene Lesezeichen</translation> <translation id="1113869188872983271">&Neu anordnen rückgängig machen</translation> +<translation id="1125573121925420732">Wenn die Sicherheitsfunktionen von Websites aktualisiert werden, können Warnungen häufiger auftreten. Dies sollte sich bald verbessern.</translation> <translation id="1126551341858583091">Die Größe auf dem lokalen Speicher ist <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Richtlinien-Cache einwandfrei</translation> <translation id="1150979032973867961">Dieser Server konnte nicht beweisen, dass er <ph name="DOMAIN" /> ist. Sein Sicherheitszertifikat wird vom Betriebssystem Ihres Computers als nicht vertrauenswürdig eingestuft. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der Ihre Verbindung abfängt.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Versuchen Sie, die Windows-Netzwerkdiagnose auszuführen.<ph name="END_LINK" /></translation> <translation id="1783075131180517613">Synchronisierungs-Passphrase aktualisieren</translation> <translation id="1787142507584202372">Hier werden Ihre offenen Tabs angezeigt</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Name des Karteninhabers</translation> <translation id="1806541873155184440">Hinzugefügt: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Ausgewählte Einträge entfernen</translation> <translation id="277133753123645258">Versandart</translation> <translation id="277499241957683684">Fehlender Gerätedatensatz</translation> +<translation id="2781030394888168909">Im Mac OS-Format exportieren</translation> <translation id="2784949926578158345">Verbindung wurde zurückgesetzt.</translation> <translation id="2788784517760473862">Akzeptierte Kreditkarten</translation> <translation id="2794233252405721443">Website blockiert</translation> @@ -461,6 +462,7 @@ <translation id="4171400957073367226">Ungültige Bestätigungssignatur</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> weiteres Element}other{<ph name="ITEM_COUNT" /> weitere Elemente}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" />: <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome empfiehlt, Ihr Passwort für <ph name="ORG_NAME" /> zurückzusetzen, wenn Sie es auf anderen Websites verwendet haben.</translation> <translation id="4196861286325780578">&Verschieben wiederholen</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Firewall und Antivirenkonfiguration prüfen<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Abstürze</translation> @@ -508,6 +510,7 @@ <translation id="4415426530740016218">Abholadresse</translation> <translation id="4424024547088906515">Dieser Server konnte nicht beweisen, dass er <ph name="DOMAIN" /> ist. Sein Sicherheitszertifikat wird von Chrome als nicht vertrauenswürdig eingestuft. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der Ihre Verbindung abfängt.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> hat Ihr Anmeldezertifikat nicht akzeptiert oder es wurde keines bereitgestellt.</translation> +<translation id="4434045419905280838">Pop-ups und Weiterleitungen</translation> <translation id="443673843213245140">Die Proxy-Nutzung ist deaktiviert, es ist jedoch eine explizite Proxy-Konfiguration festgelegt.</translation> <translation id="445100540951337728">Akzeptierte Debitkarten</translation> <translation id="4506176782989081258">Fehler bei der Überprüfung: <ph name="VALIDATION_ERROR" /></translation> @@ -693,13 +696,13 @@ <translation id="5869405914158311789">Diese Website ist nicht erreichbar</translation> <translation id="5869522115854928033">Gespeicherte Passwörter</translation> <translation id="5893752035575986141">Kreditkarten werden akzeptiert.</translation> +<translation id="5898382028489516745">Chromium empfiehlt, Ihr Passwort für <ph name="ORG_NAME" /> zurückzusetzen, wenn Sie es auf anderen Websites verwendet haben.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronisiert)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 wird verwendet}other{# werden verwendet}}</translation> <translation id="5939518447894949180">Zurücksetzen</translation> <translation id="5959728338436674663"><ph name="BEGIN_WHITEPAPER_LINK" />Ich möchte automatisch einige Systeminformationen und Seiteninhalte an Google senden<ph name="END_WHITEPAPER_LINK" />, um bei der Erfassung schädlicher Apps und Websites zu helfen. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Kontaktdaten bearbeiten</translation> <translation id="5967867314010545767">Aus Verlauf entfernen</translation> -<translation id="5972020793760134803">Zu folgendem Tab wechseln:</translation> <translation id="5975083100439434680">Verkleinern</translation> <translation id="598637245381783098">Fehler beim Öffnen der Zahlungs-App</translation> <translation id="5989320800837274978">Weder feste Proxyserver noch eine PAC-Skript-URL sind festgelegt.</translation> @@ -1035,7 +1038,6 @@ <translation id="8553075262323480129">Die Übersetzung ist fehlgeschlagen, weil die Sprache der Seite nicht ermittelt werden konnte.</translation> <translation id="8557066899867184262">Der CVC befindet sich auf der Rückseite Ihrer Karte.</translation> <translation id="8559762987265718583">Es kann keine private Verbindung zu <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hergestellt werden, weil Datum und Uhrzeit Ihres Geräts falsch sind (<ph name="DATE_AND_TIME" />).</translation> -<translation id="8564985650692024650">Chromium empfiehlt, Ihr Passwort für <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> zurückzusetzen, wenn Sie es auf anderen Websites verwendet haben.</translation> <translation id="8571890674111243710">Seite wird in folgende Sprache übersetzt: <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Weitere Nummer </translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Versandadresse</translation> <translation id="884923133447025588">Kein Sperrmechanismus gefunden.</translation> <translation id="885730110891505394">Datenfreigabe an Google</translation> -<translation id="8858065207712248076">Chrome empfiehlt, Ihr Passwort für <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> zurückzusetzen, wenn Sie es auf anderen Websites verwendet haben.</translation> <translation id="8866481888320382733">Fehler beim Parsen der Richtlinieneinstellungen</translation> <translation id="8870413625673593573">Kürzlich geschlossen</translation> <translation id="8874824191258364635">Geben Sie eine gültige Kartennummer ein</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index 10d152a..a66c5a6 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Δοκιμάστε να εκτελέσετε τον Διαγνωστικό έλεγχο δικτύου των Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Ενημερώστε την κωδική φράση πρόσβασης συγχρονισμού.</translation> <translation id="1787142507584202372">Οι ανοιχτές καρτέλες σας εμφανίζονται εδώ</translation> -<translation id="1789575671122666129">Αναδυόμενα παράθυρα</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Όνομα κατόχου κάρτας</translation> <translation id="1806541873155184440">Προστέθηκε <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Εσφαλμένη υπογραφή επαλήθευσης</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> ακόμη στοιχείο}other{<ph name="ITEM_COUNT" /> ακόμη στοιχεία}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Το Chrome συνιστά την επαναφορά του κωδικού πρόσβασης <ph name="ORG_NAME" /> εάν τον έχετε επαναχρησιμοποιήσει σε άλλους ιστοτόπους.</translation> <translation id="4196861286325780578">&Επανάληψη μετακίνησης</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Ελέγξτε τις διαμορφώσεις του τείχους προστασίας και της προστασίας από ιούς<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Απότομες διακοπές λειτουργίας</translation> @@ -695,13 +695,13 @@ <translation id="5869405914158311789">Δεν είναι δυνατή η πρόσβαση σε αυτόν τον ιστότοπο</translation> <translation id="5869522115854928033">Αποθηκευμένοι κωδικοί πρόσβασης</translation> <translation id="5893752035575986141">Οι πιστωτικές κάρτες γίνονται δεκτές.</translation> +<translation id="5898382028489516745">Το Chromium συνιστά την επαναφορά του κωδικού πρόσβασης <ph name="ORG_NAME" /> εάν τον έχετε επαναχρησιμοποιήσει σε άλλους ιστοτόπους.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (συγχρονισμένο)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 σε χρήση}other{# σε χρήση}}</translation> <translation id="5939518447894949180">Επαναφορά</translation> <translation id="5959728338436674663">Αυτόματη αποστολή ορισμένων <ph name="BEGIN_WHITEPAPER_LINK" />πληροφοριών συστήματος και περιεχομένου σελίδων<ph name="END_WHITEPAPER_LINK" /> στην Google για διευκόλυνση του εντοπισμού επικίνδυνων εφαρμογών και ιστοτόπων<ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Επεξεργασία στοιχείων επικοινωνίας</translation> <translation id="5967867314010545767">Κατάργηση από το ιστορικό</translation> -<translation id="5972020793760134803">Εναλλαγή σε καρτέλα</translation> <translation id="5975083100439434680">Σμίκρυνση</translation> <translation id="598637245381783098">Δεν είναι δυνατό το άνοιγμα της εφαρμογής πληρωμής</translation> <translation id="5989320800837274978">Δεν προσδιορίζονται ούτε οι σταθεροί διακομιστές μεσολάβησης ούτε μια διεύθυνση URL σεναρίου .pac.</translation> @@ -1037,7 +1037,6 @@ <translation id="8553075262323480129">Η μετάφραση απέτυχε επειδή δεν ήταν δυνατός ο προσδιορισμός της σελίδας.</translation> <translation id="8557066899867184262">Ο κωδικός CVC βρίσκεται στο πίσω μέρος της κάρτας.</translation> <translation id="8559762987265718583">Δεν είναι δυνατή η επίτευξη ιδιωτικής σύνδεσης με τον τομέα <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> επειδή η ημερομηνία και η ώρα (<ph name="DATE_AND_TIME" />) της συσκευής σας είναι λανθασμένες.</translation> -<translation id="8564985650692024650">Το Chromium συνιστά την επαναφορά του κωδικού πρόσβασης <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, εάν τον έχετε χρησιμοποιήσει και σε άλλους ιστοτόπους.</translation> <translation id="8571890674111243710">Μετάφραση σελίδας σε <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Προσθ. τηλεφ. </translation> @@ -1065,7 +1064,6 @@ <translation id="884264119367021077">Διεύθυνση αποστολής</translation> <translation id="884923133447025588">Δεν εντοπίστηκε μηχανισμός ακύρωσης.</translation> <translation id="885730110891505394">Κοινοποίηση στις υπηρεσίες της Google</translation> -<translation id="8858065207712248076">Το Chrome συνιστά την επαναφορά του κωδικού πρόσβασης <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> εάν τον έχετε χρησιμοποιήσει και σε άλλους ιστοτόπους.</translation> <translation id="8866481888320382733">Σφάλμα ανάλυσης ρυθμίσεων πολιτικής</translation> <translation id="8870413625673593573">Έκλεισαν πρόσφατα</translation> <translation id="8874824191258364635">Εισαγάγετε έναν έγκυρο αριθμό κάρτας</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index d23114d..54298a14 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Select permission for <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Recent bookmarks</translation> <translation id="1113869188872983271">&Undo reorder</translation> +<translation id="1125573121925420732">Warnings may be common while websites update their security. This should improve soon.</translation> <translation id="1126551341858583091">The size on the local storage is <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Policy cache OK</translation> <translation id="1150979032973867961">This server could not prove that it is <ph name="DOMAIN" />; its security certificate is not trusted by your computer's operating system. This may be caused by a misconfiguration or an attacker intercepting your connection.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Try running Windows Network Diagnostics<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Please update your sync passphrase.</translation> <translation id="1787142507584202372">Your open tabs appear here</translation> -<translation id="1789575671122666129">Popups</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Cardholder Name</translation> <translation id="1806541873155184440">Added <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Remove selected items</translation> <translation id="277133753123645258">Delivery method</translation> <translation id="277499241957683684">Missing device record</translation> +<translation id="2781030394888168909">Export MacOS</translation> <translation id="2784949926578158345">The connection was reset.</translation> <translation id="2788784517760473862">Accepted credit cards</translation> <translation id="2794233252405721443">Site blocked</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Bad verification signature</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> more item}other{<ph name="ITEM_COUNT" /> more items}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome recommends resetting your <ph name="ORG_NAME" /> password if you reused it on other sites.</translation> <translation id="4196861286325780578">&Redo move</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Checking firewall and antivirus configurations<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Crashes</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Pickup Address</translation> <translation id="4424024547088906515">This server could not prove that it is <ph name="DOMAIN" />; its security certificate is not trusted by Chrome. This may be caused by a misconfiguration or an attacker intercepting your connection.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> didn’t accept your login certificate, or one may not have been provided.</translation> +<translation id="4434045419905280838">Pop-ups and redirects</translation> <translation id="443673843213245140">Use of a proxy is disabled but an explicit proxy configuration is specified.</translation> <translation id="445100540951337728">Accepted debit cards</translation> <translation id="4506176782989081258">Validation error: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">This site can’t be reached</translation> <translation id="5869522115854928033">Saved passwords</translation> <translation id="5893752035575986141">Credit cards are accepted.</translation> +<translation id="5898382028489516745">Chromium recommends resetting your <ph name="ORG_NAME" /> password if you reused it on other sites.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synced)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in use}other{# in use}}</translation> <translation id="5939518447894949180">Reset</translation> <translation id="5959728338436674663">Automatically send some <ph name="BEGIN_WHITEPAPER_LINK" />system information and page content<ph name="END_WHITEPAPER_LINK" /> to Google to help detect dangerous apps and sites. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edit Contact Info</translation> <translation id="5967867314010545767">Remove from history</translation> -<translation id="5972020793760134803">Switch to tab</translation> <translation id="5975083100439434680">Zoom out</translation> <translation id="598637245381783098">Can’t open payment app</translation> <translation id="5989320800837274978">Neither fixed proxy servers nor a .pac script URL are specified.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">The translation failed because the page's language could not be determined.</translation> <translation id="8557066899867184262">The CVC is located behind your card.</translation> <translation id="8559762987265718583">A private connection to <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> can't be established because your device's date and time (<ph name="DATE_AND_TIME" />) are incorrect.</translation> -<translation id="8564985650692024650">Chromium recommends resetting your <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> password if you reused it on other sites.</translation> <translation id="8571890674111243710">Translating page into <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Add phone no.</translation> <translation id="859285277496340001">The certificate does not specify a mechanism to check whether it has been revoked.</translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Delivery address</translation> <translation id="884923133447025588">No revocation mechanism found.</translation> <translation id="885730110891505394">Sharing with Google</translation> -<translation id="8858065207712248076">Chrome recommends resetting your <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> password if you reused it on other sites.</translation> <translation id="8866481888320382733">Error parsing policy settings</translation> <translation id="8870413625673593573">Recently Closed</translation> <translation id="8874824191258364635">Enter a valid card number</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index 70bb569..4c18366 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Intenta ejecutar el Diagnóstico de red de Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Actualiza tu frase de contraseña de sincronización.</translation> <translation id="1787142507584202372">Tus pestañas abiertas aparecen aquí</translation> -<translation id="1789575671122666129">Ventanas emergentes</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nombre del titular de la tarjeta</translation> <translation id="1806541873155184440">Agregada: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -463,6 +462,7 @@ <translation id="4171400957073367226">La firma de verificación no es válida.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> elemento más}other{<ph name="ITEM_COUNT" /> elementos más}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome te recomienda que restablezcas la contraseña de <ph name="ORG_NAME" /> si la volviste a usar en otros sitios.</translation> <translation id="4196861286325780578">&Rehacer Mover</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Comprobar las configuraciones de firewall y antivirus<ph name="END_LINK" />.</translation> <translation id="4220128509585149162">Fallos</translation> @@ -695,13 +695,13 @@ <translation id="5869405914158311789">No se puede acceder a este sitio</translation> <translation id="5869522115854928033">Contraseñas almacenadas</translation> <translation id="5893752035575986141">Se aceptan tarjetas de crédito.</translation> +<translation id="5898382028489516745">Chromium te recomienda que restablezcas la contraseña de <ph name="ORG_NAME" /> si la volviste a usar en otros sitios.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizado)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en uso}other{# en uso}}</translation> <translation id="5939518447894949180">Restablecer</translation> <translation id="5959728338436674663">Enviar automáticamente <ph name="BEGIN_WHITEPAPER_LINK" />determinado contenido de la página e información del sistema<ph name="END_WHITEPAPER_LINK" /> a Google para detectar apps y sitios peligrosos <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Editar la información de contacto</translation> <translation id="5967867314010545767">Eliminar del historial</translation> -<translation id="5972020793760134803">Cambiar a la pestaña</translation> <translation id="5975083100439434680">Alejar</translation> <translation id="598637245381783098">No se puede abrir la app de pago</translation> <translation id="5989320800837274978">No se especifican servidores proxy fijos ni URL de secuencias de comandos .pac.</translation> @@ -1037,7 +1037,6 @@ <translation id="8553075262323480129">Falló la traducción debido a que no se pudo determinar el idioma de la página.</translation> <translation id="8557066899867184262">El CVC se encuentra al dorso de tu tarjeta.</translation> <translation id="8559762987265718583">No se puede establecer una conexión privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora del dispositivo (<ph name="DATE_AND_TIME" />) son incorrectas.</translation> -<translation id="8564985650692024650">Chromium te recomienda que restablezcas la contraseña de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si la volviste a usar en otros sitios.</translation> <translation id="8571890674111243710">Traduciendo página a <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Agregar teléfono </translation> @@ -1065,7 +1064,6 @@ <translation id="884264119367021077">Dirección de envío</translation> <translation id="884923133447025588">No se ha encontrado ningún mecanismo de revocación.</translation> <translation id="885730110891505394">Compartir con Google</translation> -<translation id="8858065207712248076">Chrome te recomienda que restablezcas la contraseña de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si la volviste a usar en otros sitios.</translation> <translation id="8866481888320382733">Error al analizar la configuración de la política</translation> <translation id="8870413625673593573">Cerrado recientemente</translation> <translation id="8874824191258364635">Ingresa un número de tarjeta válido</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index 7c947e49..e941a5d 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Seleccionar permiso de <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Marcadores visitados recientemente</translation> <translation id="1113869188872983271">&Deshacer reorganización</translation> +<translation id="1125573121925420732">Es probable que se muestren advertencias mientras se actualiza la seguridad de los sitios web, pero pronto se solucionará.</translation> <translation id="1126551341858583091">El tamaño del almacenamiento local es de <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Caché de política correcta</translation> <translation id="1150979032973867961">Este servidor no ha podido probar que su dominio es <ph name="DOMAIN" />, el sistema operativo de tu ordenador no confía en su certificado de seguridad. Este problema puede deberse a una configuración incorrecta o a que un atacante haya interceptado la conexión.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Prueba a ejecutar Diagnósticos de red de Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Actualiza tu frase de contraseña de sincronización.</translation> <translation id="1787142507584202372">Las pestañas abiertas aparecen aquí</translation> -<translation id="1789575671122666129">Ventanas emergentes</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nombre del titular de la tarjeta</translation> <translation id="1806541873155184440">Añadida el <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Eliminar elementos seleccionados</translation> <translation id="277133753123645258">Método de envío</translation> <translation id="277499241957683684">Falta un registro de dispositivo.</translation> +<translation id="2781030394888168909">Exportar para MacOS</translation> <translation id="2784949926578158345">Se ha restablecido la conexión.</translation> <translation id="2788784517760473862">Tarjetas de crédito aceptadas</translation> <translation id="2794233252405721443">Sito web bloqueado</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">La firma de verificación no es válida</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> elemento más}other{<ph name="ITEM_COUNT" /> elementos más}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome te recomienda que cambies tu contraseña de <ph name="ORG_NAME" /> si la has vuelto a utilizar en otros sitios web.</translation> <translation id="4196861286325780578">&Rehacer movimiento</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Comprobar la configuración del cortafuegos y del antivirus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">La página no responde o se cierra</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Dirección de recogida</translation> <translation id="4424024547088906515">Este servidor no ha podido probar que su dominio es <ph name="DOMAIN" />, Chrome no confía en su certificado de seguridad. Este problema puede deberse a una configuración incorrecta o a que un atacante haya interceptado la conexión.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> no ha aceptado el certificado de inicio de sesión o es posible que no se haya proporcionado ninguno.</translation> +<translation id="4434045419905280838">Ventanas emergentes y redirecciones</translation> <translation id="443673843213245140">Se ha inhabilitado el uso de un servidor proxy, pero se han especificado ajustes de proxy explícitos.</translation> <translation id="445100540951337728">Tarjetas de débito aceptadas</translation> <translation id="4506176782989081258">Error de validación: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">No se puede acceder a este sitio web</translation> <translation id="5869522115854928033">Contraseñas guardadas</translation> <translation id="5893752035575986141">Se aceptan tarjetas de crédito.</translation> +<translation id="5898382028489516745">Chromium te recomienda que cambies tu contraseña de <ph name="ORG_NAME" /> si la has vuelto a utilizar en otros sitios web.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizado)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en uso}other{# en uso}}</translation> <translation id="5939518447894949180">Restablecer</translation> <translation id="5959728338436674663">Enviar automáticamente <ph name="BEGIN_WHITEPAPER_LINK" />información del sistema y contenido de las páginas<ph name="END_WHITEPAPER_LINK" /> a Google para facilitar la detección de aplicaciones y sitios web peligrosos. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edita la información de contacto</translation> <translation id="5967867314010545767">Eliminar del historial</translation> -<translation id="5972020793760134803">Cambia a la pestaña</translation> <translation id="5975083100439434680">Reducir</translation> <translation id="598637245381783098">No se ha podido abrir la aplicación de pago</translation> <translation id="5989320800837274978">No se han especificado servidores proxy fijos ni una URL de secuencia de comandos .pac.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">La traducción no se ha realizado correctamente porque no se ha podido determinar el idioma de la página.</translation> <translation id="8557066899867184262">Puedes encontrar el CVC en el reverso de la tarjeta.</translation> <translation id="8559762987265718583">No se puede establecer una conexión privada con <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora de tu dispositivo (<ph name="DATE_AND_TIME" />) no son correctas.</translation> -<translation id="8564985650692024650">Chromium te recomienda que cambies tu contraseña de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si la has vuelto a utilizar en otros sitios web.</translation> <translation id="8571890674111243710">Traduciendo página a <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Añade un teléfono</translation> <translation id="859285277496340001">El certificado no especifica ningún mecanismo para comprobar si se ha revocado.</translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Dirección de envío</translation> <translation id="884923133447025588">No se ha encontrado ningún mecanismo de revocación.</translation> <translation id="885730110891505394">Compartir con Google</translation> -<translation id="8858065207712248076">Chrome te recomienda que cambies tu contraseña de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si la has vuelto a utilizar en otros sitios web.</translation> <translation id="8866481888320382733">Error al analizar la configuración de la política</translation> <translation id="8870413625673593573">Cerrado recientemente</translation> <translation id="8874824191258364635">Introduce un número de tarjeta válido</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 3ee8b3d..5a8c1df 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Valige luba üksuse <ph name="PERMISSION_NAME" /> jaoks</translation> <translation id="1111153019813902504">Hiljuti kasutatud järjehoidjad</translation> <translation id="1113869188872983271">&Võta korrastamine tagasi</translation> +<translation id="1125573121925420732">Sel ajal kui veebisaidid värskendavad turvafunktsioone, võivad sageli ilmuda hoiatused. Olukord peaks varsti lahenema.</translation> <translation id="1126551341858583091">Kohaliku salvestusruumi maht on <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Reegli vahemälu töötab probleemideta</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Proovige käitada Windowsi võrgudiagnostika tööriista<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Värskendage sünkroonimise parooli.</translation> <translation id="1787142507584202372">Teie avatud vahelehed kuvatakse siin</translation> -<translation id="1789575671122666129">Hüpikaknad</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kaardiomaniku nimi</translation> <translation id="1806541873155184440">Lisati kuupäeval <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Eemalda valitud üksused</translation> <translation id="277133753123645258">Tarneviis</translation> <translation id="277499241957683684">Seadme kirje puudub</translation> +<translation id="2781030394888168909">Ekspordi MacOS-i jaoks</translation> <translation id="2784949926578158345">Ühendus lähtestati.</translation> <translation id="2788784517760473862">Aktsepteeritavad krediitkaardid</translation> <translation id="2794233252405721443">Sait on blokeeritud</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Sobimatu kinnitusallkiri</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Veel <ph name="ITEM_COUNT" /> üksus}other{Veel <ph name="ITEM_COUNT" /> üksust}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" />: <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome soovitab teil teenuse <ph name="ORG_NAME" /> parooli lähtestada, kui kasutasite seda ka muudel saitidel.</translation> <translation id="4196861286325780578">&Teisalda uuesti</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Kontrollige tulemüüri ja viirusetõrje seadistusi<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Krahhid</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Kättesaamisaadress</translation> <translation id="4424024547088906515">Server ei suutnud tõestada, et see on domeen <ph name="DOMAIN" />, Chrome ei usalda selle turvasertifikaati. Selle põhjuseks võib olla vale seadistus või ründaja, kes on sekkunud teie ühendusse.</translation> <translation id="4432688616882109544">Host <ph name="HOST_NAME" /> ei aktsepteerinud teie sisselogimise sertifikaati või te ei esitanud seda.</translation> +<translation id="4434045419905280838">Hüpikaknad ja ümbersuunamised</translation> <translation id="443673843213245140">Puhverserveri kasutamine on keelatud, kuid määratud on ka konkreetne puhverserveri konfigureerimine.</translation> <translation id="445100540951337728">Aktsepteeritavad deebetkaardid</translation> <translation id="4506176782989081258">Valideerimisviga: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Selle saidiga ei saa ühendust</translation> <translation id="5869522115854928033">Salvestatud paroolid</translation> <translation id="5893752035575986141">Kaupmees aktsepteerib krediitkaarte.</translation> +<translation id="5898382028489516745">Chromium soovitab teil teenuse <ph name="ORG_NAME" /> parooli lähtestada, kui kasutasite seda ka muudel saitidel.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sünkroonitud)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 on kasutusel}other{# on kasutusel}}</translation> <translation id="5939518447894949180">Lähtesta</translation> <translation id="5959728338436674663">Saatke Google'ile automaatselt <ph name="BEGIN_WHITEPAPER_LINK" />süsteemiteavet ja lehe sisu<ph name="END_WHITEPAPER_LINK" />, et aidata tuvastada ohtlikke rakendusi ja saite. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Kontaktteabe muutmine</translation> <translation id="5967867314010545767">Eemalda ajaloost</translation> -<translation id="5972020793760134803">Lülitu vahelehele</translation> <translation id="5975083100439434680">Suumib välja</translation> <translation id="598637245381783098">Makserakendust ei saa avada</translation> <translation id="5989320800837274978">Määratud ei ole fikseeritud puhverservereid ega pac-skriptiga URL-i.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Tõlkimine nurjus, kuna lehe keelt ei õnnestunud määrata.</translation> <translation id="8557066899867184262">CVC asub kaardi tagaküljel.</translation> <translation id="8559762987265718583">Privaatset ühendust ei saa domeeniga <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> luua, kuna seadme kuupäev ja kellaaeg (<ph name="DATE_AND_TIME" />) on valed.</translation> -<translation id="8564985650692024650">Chromium soovitab teil organisatsiooni <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> parooli lähtestada, kui kasutasite seda ka muudel saitidel.</translation> <translation id="8571890674111243710">Lehe tõlkimine <ph name="LANGUAGE" /> keelde...</translation> <translation id="858637041960032120">Lisage telefoninumber</translation> <translation id="859285277496340001">Sertifikaat ei määratle mehhanismi enda võimaliku tühistamise kontrollimiseks.</translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Tarneaadress</translation> <translation id="884923133447025588">Tühistusmehhanismi ei leitud.</translation> <translation id="885730110891505394">Jagamine Google'iga</translation> -<translation id="8858065207712248076">Chromium soovitab teil organisatsiooni <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> parooli lähtestada, kui kasutasite seda ka muudel saitidel.</translation> <translation id="8866481888320382733">Reegli seadete sõelumisel ilmnes viga</translation> <translation id="8870413625673593573">Viimati suletud</translation> <translation id="8874824191258364635">Sisestaeg kehtiv kaardinumber</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 63cc989..b87f57c 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows Network Diagnostics را اجرا کنید<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">لطفاً «رمز عبارتی همگامسازی» خود را بهروزرسانی کنید.</translation> <translation id="1787142507584202372">برگههای بازتان در اینجا نشان داده میشوند</translation> -<translation id="1789575671122666129">پنجرههای بازشو</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">نام صاحب کارت</translation> <translation id="1806541873155184440">تاریخ اضافه شدن: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">امضای تأیید نامناسب</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> مورد دیگر}one{<ph name="ITEM_COUNT" /> مورد دیگر}other{<ph name="ITEM_COUNT" /> مورد دیگر}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome توصیه میکند گذرواژه <ph name="ORG_NAME" /> خود را درصورت استفاده مجدد از آن در سایر سایتها بازنشانی کنید.</translation> <translation id="4196861286325780578">&انجام مجدد انتقال</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />بررسی پیکربندی آنتیویروس و دیوار آتش<ph name="END_LINK" /></translation> <translation id="4220128509585149162">خرابی ها</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">دسترسی به این سایت امکانپذیر نیست</translation> <translation id="5869522115854928033">گذرواژههای ذخیرهشده</translation> <translation id="5893752035575986141">کارتهای اعتباری پذیرفته میشوند.</translation> +<translation id="5898382028489516745">Chromium توصیه میکند گذرواژه <ph name="ORG_NAME" /> خود را درصورت استفاده مجدد از آن در سایر سایتها بازنشانی کنید.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (همگامسازیشده)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{۱ کوکی درحال استفاده}one{# کوکی درحال استفاده}other{# کوکی درحال استفاده}}</translation> <translation id="5939518447894949180">بازنشانی</translation> <translation id="5959728338436674663">ارسال خودکار برخی از <ph name="BEGIN_WHITEPAPER_LINK" />اطلاعات سیستم و محتوای صفحه<ph name="END_WHITEPAPER_LINK" /> به Google برای کمک به شناسایی برنامهها و سایتهای خطرناک. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">ویرایش اطلاعات تماس</translation> <translation id="5967867314010545767">حذف از سابقه</translation> -<translation id="5972020793760134803">رفتن به برگه</translation> <translation id="5975083100439434680">کوچک نمایی</translation> <translation id="598637245381783098">برنامه پرداخت باز نشد</translation> <translation id="5989320800837274978">سرور پروکسی ثابت و URL اسکریپت pac. تعیین نشدهاند.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">ترجمه انجام نشد زیرا زبان صفحه تعیین نشد.</translation> <translation id="8557066899867184262">CVC در پشت کارتتان قرار گرفته است.</translation> <translation id="8559762987265718583">اتصال خصوصی به <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> انجام نمیشود، زیرا تاریخ و زمان دستگاه شما (<ph name="DATE_AND_TIME" />) نادرست است.</translation> -<translation id="8564985650692024650">Chromium توصیه میکند اگر از گذرواژه <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> خود در سایت دیگری استفاده کردید آن را بازنشانی کنید.</translation> <translation id="8571890674111243710">ترجمه صفحه به <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">افزودن شماره تلفن</translation> <translation id="859285277496340001">این مجوز هیچ مکانیزمی را برای بررسی اینکه آیا باطل شده یا نه مشخص نمیکند.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">اطلاعات ارسال</translation> <translation id="884923133447025588">هیچ مکانیزم ابطالی یافت نشد.</translation> <translation id="885730110891505394">اشتراکگذاری با Google</translation> -<translation id="8858065207712248076">Chrome توصیه میکند اگر از گذرواژه <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> خود در سایت دیگری استفاده کردید آن را بازنشانی کنید.</translation> <translation id="8866481888320382733">خطا در تجزیه تنظیمات خطمشی</translation> <translation id="8870413625673593573">اخیراً بستهشده</translation> <translation id="8874824191258364635">شماره کارت معتبری وارد کنید</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index 868776c..b2d07cd 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Valitse käyttöoikeus kohteelle <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Uusimmat kirjanmerkit</translation> <translation id="1113869188872983271">K&umoa uudelleenjärjestely</translation> +<translation id="1125573121925420732">Varoituksia voi esiintyä usein, kun verkkosivustot päivittävät suojaustaan. Asian pitäisi korjaantua pian.</translation> <translation id="1126551341858583091">Paikallisen tallennustilan koko on <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Käytännön välimuisti on OK</translation> <translation id="1150979032973867961">Palvelin ei voinut todistaa olevansa <ph name="DOMAIN" />; tietokoneesi käyttöjärjestelmä ei luota sen suojausvarmenteeseen. Tämä voi johtua määritysvirheestä tai verkkoyhteytesi siepanneesta hyökkääjästä.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Kokeile Windowsin verkon diagnostiikkaa<ph name="END_LINK" /></translation> <translation id="1783075131180517613">Päivitä synkronoinnin tunnuslause.</translation> <translation id="1787142507584202372">Avoimet välilehdet näkyvät tässä.</translation> -<translation id="1789575671122666129">Ponnahdusikkunat</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kortinhaltijan nimi</translation> <translation id="1806541873155184440">Lisätty: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Poista valitut kohteet</translation> <translation id="277133753123645258">Lähetystapa</translation> <translation id="277499241957683684">Laitetallenne puuttuu</translation> +<translation id="2781030394888168909">Vie MacOS-muodossa</translation> <translation id="2784949926578158345">Yhteys katkaistiin.</translation> <translation id="2788784517760473862">Hyväksytyt luottokortit</translation> <translation id="2794233252405721443">Sivusto estetty</translation> @@ -463,6 +464,7 @@ <translation id="4171400957073367226">Virheellinen vahvistusallekirjoitus.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> toinen kohde}other{<ph name="ITEM_COUNT" /> muuta kohdetta}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome suosittelee palvelun <ph name="ORG_NAME" /> salasanan vaihtamista, jos olet käyttänyt sitä muilla sivustoilla.</translation> <translation id="4196861286325780578">&Toista siirto</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Tarkista palomuurin ja virustorjuntaohjelmiston määritykset.<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Kaatuu</translation> @@ -510,6 +512,7 @@ <translation id="4415426530740016218">Nouto-osoite</translation> <translation id="4424024547088906515">Palvelin ei voinut todistaa olevansa <ph name="DOMAIN" />; Chrome ei luota sen suojausvarmenteeseen. Tämä voi johtua määritysvirheestä tai verkkoyhteytesi siepanneesta hyökkääjästä.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> ei hyväksynyt kirjautumisvarmennettasi, tai varmennetta ei annettu.</translation> +<translation id="4434045419905280838">Ponnahdusikk. ja uudelleenohj.</translation> <translation id="443673843213245140">Välityspalvelinta ei saa käyttää, mutta erilliset välityspalvelimen asetukset on määritetty.</translation> <translation id="445100540951337728">Hyväksytyt maksukortit</translation> <translation id="4506176782989081258">Todennusvirhe: <ph name="VALIDATION_ERROR" /></translation> @@ -695,13 +698,13 @@ <translation id="5869405914158311789">Sivustoon ei saada yhteyttä</translation> <translation id="5869522115854928033">Tallennetut salasanat</translation> <translation id="5893752035575986141">Luottokortit hyväksytään.</translation> +<translation id="5898382028489516745">Chromium suosittelee palvelun <ph name="ORG_NAME" /> salasanan vaihtamista, jos olet käyttänyt sitä muilla sivustoilla.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkronoitu)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 käytössä}other{# käytössä}}</translation> <translation id="5939518447894949180">Tyhjennä</translation> <translation id="5959728338436674663"><ph name="BEGIN_WHITEPAPER_LINK" />Lähetä automaattisesti<ph name="END_WHITEPAPER_LINK" /> joitain järjestelmän tietoja ja sivujen sisältöjä Googlelle auttaaksesi sitä havaitsemaan vaarallisia sovelluksia ja sivustoja. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Muokkaa yhteystietoja</translation> <translation id="5967867314010545767">Poista historiasta</translation> -<translation id="5972020793760134803">Vaihda välilehdelle</translation> <translation id="5975083100439434680">Loitonna</translation> <translation id="598637245381783098">Maksusovelluksen avaaminen ei onnistu.</translation> <translation id="5989320800837274978">Kiinteitä välityspalvelimia tai .pac-URL-osoitetta ei ole määritetty.</translation> @@ -1037,7 +1040,6 @@ <translation id="8553075262323480129">Käännös epäonnistui, sillä sivun kieltä ei voitu määrittää.</translation> <translation id="8557066899867184262">CVC sijaitsee kortin takapuolella.</translation> <translation id="8559762987265718583">Verkkotunnukseen <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ei voi muodostaa salattua yhteyttä, koska laitteesi aika ja päivämäärä (<ph name="DATE_AND_TIME" />) ovat virheelliset.</translation> -<translation id="8564985650692024650">Chromium suosittelee organisaation <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> salasanasi vaihtamista, jos olet käyttänyt sitä myös muilla sivustoilla.</translation> <translation id="8571890674111243710">Käännetään sivua kielelle <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Lisää puh.nro </translation> @@ -1065,7 +1067,6 @@ <translation id="884264119367021077">Toimitusosoite</translation> <translation id="884923133447025588">Kumoamisjärjestelmää ei löytynyt.</translation> <translation id="885730110891505394">Googlen kanssa jakaminen</translation> -<translation id="8858065207712248076">Chrome suosittelee organisaation <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> salasanasi vaihtamista, jos olet käyttänyt sitä myös muilla sivustoilla.</translation> <translation id="8866481888320382733">Virhe jäsennettäessä käytännön asetuksia</translation> <translation id="8870413625673593573">Hiljattain suljetut</translation> <translation id="8874824191258364635">Anna kelvollinen kortin numero.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 61cb37f..766fc9f 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Subukang patakbuhin ang Windows Network Diagnostics<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Mangyaring i-update ang iyong passphrase ng pag-sync.</translation> <translation id="1787142507584202372">Lalabas dito ang iyong mga bukas na tab</translation> -<translation id="1789575671122666129">Mga Popup</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Pangalan ng Cardholder</translation> <translation id="1806541873155184440">Idinagdag noong <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Hindi wasto ang signature sa pag-verify</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> pang item}one{<ph name="ITEM_COUNT" /> pang item}other{<ph name="ITEM_COUNT" /> pang item}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Inirerekomenda ng Chrome na i-reset ang iyong password sa <ph name="ORG_NAME" /> kung ginamit mo ito sa iba pang site.</translation> <translation id="4196861286325780578">&Gawing muli ang paglilipat</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Suriin ang mga configuration ng firewall at antivirus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Mga Pag-crash</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Hindi makakonekta sa site na ito</translation> <translation id="5869522115854928033">Mga naka-save na password</translation> <translation id="5893752035575986141">Tinatanggap ang mga credit card.</translation> +<translation id="5898382028489516745">Inirerekomenda ng Chromium na i-reset ang iyong password sa <ph name="ORG_NAME" /> kung ginamit mo ito sa iba pang site.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (naka-sync)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ang ginagamit}one{# ang ginagamit}other{# ang ginagamit}}</translation> <translation id="5939518447894949180">I-reset</translation> <translation id="5959728338436674663">Awtomatikong magpadala ng ilang <ph name="BEGIN_WHITEPAPER_LINK" />impormasyon sa system at content ng page<ph name="END_WHITEPAPER_LINK" /> sa Google upang makatulong na tumukoy ng mapapanganib na app at site. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">I-edit ang Impormasyon ng Contact</translation> <translation id="5967867314010545767">Alisin sa history</translation> -<translation id="5972020793760134803">Lumipat sa tab</translation> <translation id="5975083100439434680">Mag-zoom out</translation> <translation id="598637245381783098">Hindi mabuksan ang app sa pagbabayad</translation> <translation id="5989320800837274978">Hindi tunukoy ang alinman sa mga hindi nababagong proxy server o isang .pac script URL.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">Nabigo ang pag-translate dahil hindi matukoy ang wika ng pahina.</translation> <translation id="8557066899867184262">Makikita ang CVC sa likod ng iyong card.</translation> <translation id="8559762987265718583">Hindi makapagtatag ng pribadong koneksyon sa <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> dahil mali ang petsa at oras ng iyong device (<ph name="DATE_AND_TIME" />).</translation> -<translation id="8564985650692024650">Inirerekomenda ng Chromium na i-reset ang iyong password sa <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> kung ginamit mo ito sa iba pang site.</translation> <translation id="8571890674111243710">Tina-translate ang pahina sa <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Magdagdag ng numero ng telepono</translation> <translation id="859285277496340001">Hindi tumutukoy ang certificate na ito ng mekanismo upang masuri kung nabawi ito.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">Shipping address</translation> <translation id="884923133447025588">Walang nahanap na mekanismo ng pagpapawalang-bisa.</translation> <translation id="885730110891505394">Pagbabahagi sa Google</translation> -<translation id="8858065207712248076">Inirerekomenda ng Chrome na i-reset ang iyong password sa <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> kung ginamit mo ito sa iba pang site.</translation> <translation id="8866481888320382733">Error sa pag-parse ng mga setting ng patakaran</translation> <translation id="8870413625673593573">Recently Closed</translation> <translation id="8874824191258364635">Maglagay ng wastong numero ng card</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index 278a9f87..fe4dcc97 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Essayez d'exécuter les diagnostics réseau de Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Mettre à jour votre phrase secrète de synchronisation</translation> <translation id="1787142507584202372">Les onglets ouverts s'affichent ici</translation> -<translation id="1789575671122666129">Fenêtres pop-up</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nom du titulaire de la carte</translation> <translation id="1806541873155184440">Date d'ajout : <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Signature de validation non valide.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> élément supplémentaire}one{<ph name="ITEM_COUNT" /> élément supplémentaire}other{<ph name="ITEM_COUNT" /> éléments supplémentaires}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">L'équipe Chrome vous recommande de réinitialiser votre mot de passe <ph name="ORG_NAME" /> si vous l'avez réutilisé sur d'autres sites.</translation> <translation id="4196861286325780578">&Rétablir le déplacement</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Vérifier les configurations du pare-feu et de l'antivirus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Plantages</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Ce site est inaccessible</translation> <translation id="5869522115854928033">Mots de passe enregistrés</translation> <translation id="5893752035575986141">Les cartes de crédit sont acceptées.</translation> +<translation id="5898382028489516745">L'équipe Chromium vous recommande de réinitialiser votre mot de passe <ph name="ORG_NAME" /> si vous l'avez réutilisé sur d'autres sites.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronisés)</translation> <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="5939518447894949180">Réinitialiser</translation> <translation id="5959728338436674663">Envoyer automatiquement <ph name="BEGIN_WHITEPAPER_LINK" />des informations système et du contenu de page<ph name="END_WHITEPAPER_LINK" /> à Google afin de faciliter la détection d'applications et de sites dangereux. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Modifier les coordonnées</translation> <translation id="5967867314010545767">Supprimer de l'historique</translation> -<translation id="5972020793760134803">Ouvrir un autre onglet</translation> <translation id="5975083100439434680">Zoom arrière</translation> <translation id="598637245381783098">Impossible d'ouvrir l'application de paiement</translation> <translation id="5989320800837274978">Aucun serveur proxy déterminé ou URL de script .pac n'a été indiqué.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">La traduction a échoué, car nous n'avons pas pu déterminer la langue de la page.</translation> <translation id="8557066899867184262">Le code CVC figure au recto de votre carte.</translation> <translation id="8559762987265718583">Impossible d'établir une connexion privée à <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> : la date et l'heure de votre appareil (<ph name="DATE_AND_TIME" />) sont incorrectes.</translation> -<translation id="8564985650692024650">L'équipe Chromium vous recommande de réinitialiser votre mot de passe <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si vous l'avez réutilisé sur d'autres sites.</translation> <translation id="8571890674111243710">Traduction de la page en <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Saisir num tél</translation> <translation id="859285277496340001">Le certificat n'indique aucun mécanisme permettant de vérifier s'il a été révoqué.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">Adresse de livraison</translation> <translation id="884923133447025588">Aucun système de révocation trouvé</translation> <translation id="885730110891505394">Partage avec Google</translation> -<translation id="8858065207712248076">L'équipe Chrome vous recommande de réinitialiser votre mot de passe <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si vous l'avez réutilisé sur d'autres sites.</translation> <translation id="8866481888320382733">Erreur d'analyse des paramètres de la règle.</translation> <translation id="8870413625673593573">Récemment fermés</translation> <translation id="8874824191258364635">Saisissez un numéro de carte valide</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 46e88c7..cf9dd9f 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -128,7 +128,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows નેટવર્ક ડાયગ્નોસ્ટિક્સ ચલાવવાનો પ્રયાસ કરો<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">કૃપા કરી તમારા સમન્વયન પાસફ્રેઝને અપડેટ કરો.</translation> <translation id="1787142507584202372">તમારા ખુલ્લા ટૅબ્સ અહીં દેખાય છે</translation> -<translation id="1789575671122666129">પૉપઅપ્સ</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">કાર્ડધારકનું નામ</translation> <translation id="1806541873155184440"><ph name="ADDED_TO_AUTOFILL_MONTH" /> ના રોજ ઉમેર્યું</translation> @@ -459,6 +458,7 @@ <translation id="4171400957073367226">ખોટી ચકાસણી સહી</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{વધુ <ph name="ITEM_COUNT" /> આઇટમ}one{વધુ <ph name="ITEM_COUNT" /> આઇટમ}other{વધુ <ph name="ITEM_COUNT" /> આઇટમ}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">જો તમે અન્ય સાઇટ પર <ph name="ORG_NAME" /> પાસવર્ડનો ફરી ઉપયોગ કર્યો હોય, તો Chrome તેને રીસેટ કરવાની ભલામણ કરે છે.</translation> <translation id="4196861286325780578">&ખસેડવું ફરી કરો</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ફાયરવોલ અને એન્ટીવાઇરસ ગોઠવણી તપાસીને<ph name="END_LINK" /></translation> <translation id="4220128509585149162">ક્રેશેસ</translation> @@ -687,13 +687,13 @@ <translation id="5869405914158311789">આ સાઇટ પર પહોંચી શકાતું નથી</translation> <translation id="5869522115854928033">સાચવેલા પાસવર્ડ્સ</translation> <translation id="5893752035575986141">ક્રેડિટ કાર્ડ સ્વીકારવામાં આવે છે.</translation> +<translation id="5898382028489516745">જો તમે અન્ય સાઇટ પર <ph name="ORG_NAME" /> પાસવર્ડનો ફરી ઉપયોગ કર્યો હોય, તો Chromium તેને રીસેટ કરવાની ભલામણ કરે છે.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (સમન્વયિત)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ઉપયોગમાં છે}one{# ઉપયોગમાં છે}other{# ઉપયોગમાં છે}}</translation> <translation id="5939518447894949180">રીસેટ કરો</translation> <translation id="5959728338436674663">જોખમી અૅપ્લિકેશનો અને સાઇટ્સ શોધવામાં સહાય કરવા માટે Google ને કેટલીક <ph name="BEGIN_WHITEPAPER_LINK" />સિસ્ટમ માહિતી અને પૃષ્ઠ સામગ્રી<ph name="END_WHITEPAPER_LINK" /> આપમેળે મોકલો. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">સંપર્ક માહિતીમાં ફેરફાર કરો</translation> <translation id="5967867314010545767">ઇતિહાસમાંથી દૂર કરો</translation> -<translation id="5972020793760134803">ટૅબ પર સ્વિચ કરો</translation> <translation id="5975083100439434680">ઝૂમ ઘટાડો</translation> <translation id="598637245381783098">ચુકવણી ઍપ્લિકેશન ખોલી શકાતી નથી</translation> <translation id="5989320800837274978">નિયત પ્રોક્સી સર્વર્સ અથવા .pac સ્ક્રિપ્ટનો URL નો ઉલ્લેખ કરેલો નથી.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index 429569d..0e546f4 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504"><ph name="PERMISSION_NAME" /> के लिए अनुमति चुनें</translation> <translation id="1111153019813902504">हाल के बुकमार्क</translation> <translation id="1113869188872983271">&पुन: क्रमित करना वापस लाएं</translation> +<translation id="1125573121925420732">जब वेबसाइटें अपनी सुरक्षा अपडेट कर रही होती हैं तब चेतावनियां आम हो सकती हैं. इसमें जल्दी ही सुधार होगा.</translation> <translation id="1126551341858583091">स्थानीय जगह का आकार <ph name="CRASH_SIZE" /> है.</translation> <translation id="112840717907525620">नीति संचय ठीक है</translation> <translation id="1150979032973867961">यह सर्वर यह नहीं प्रमाणित कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाणपत्र आपके कंप्यूटर के ऑपरेटिंग सिस्टम द्वारा विश्वसनीय नहीं है. ऐसा गलत कॉन्फ़िगरेशन या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows नेटवर्क निदान चलाकर देखें<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">कृपया अपना समन्वयन पासफ्रेज़ अपडेट करें.</translation> <translation id="1787142507584202372">आपके द्वारा खोले गए टैब, यहां दिखाई देंगे</translation> -<translation id="1789575671122666129">पॉपअप</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">कार्ड के मालिक का नाम</translation> <translation id="1806541873155184440"><ph name="ADDED_TO_AUTOFILL_MONTH" /> को जोड़ा गया</translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">चयनित आइटम निकालें</translation> <translation id="277133753123645258">शिपिंग का तरीका</translation> <translation id="277499241957683684">डिवाइस का रिकॉर्ड लापता है</translation> +<translation id="2781030394888168909">MacOS निर्यात करें</translation> <translation id="2784949926578158345">कनेक्शन रीसेट किया गया था.</translation> <translation id="2788784517760473862">स्वीकृत क्रेडिट कार्ड</translation> <translation id="2794233252405721443">साइट अवरोधित है</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">गलत सत्यापन हस्ताक्षर</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> और आइटम}one{<ph name="ITEM_COUNT" /> और आइटम}other{<ph name="ITEM_COUNT" /> और आइटम}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">अगर आपने अपने <ph name="ORG_NAME" /> पासवर्ड का दूसरी साइटों पर दोबारा इस्तेमाल किया है, तो Chrome आपको उसे रीसेट करने का सुझाव देता है.</translation> <translation id="4196861286325780578">&ले जाना फिर से करें</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />फायरवॉल और एंटीवायरस कॉन्फ़िगरेशन की जाँच करें<ph name="END_LINK" /></translation> <translation id="4220128509585149162">क्रैश</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">पिकअप का पता</translation> <translation id="4424024547088906515">यह सर्वर यह नहीं प्रमाणित कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाणपत्र Chrome द्वारा विश्वसनीय नहीं है. ऐसा गलत कॉन्फ़िगरेशन या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> ने आपका लॉगिन प्रमाणपत्र स्वीकार नहीं किया है या हो सकता है कि प्रमाणपत्र उपलब्ध नहीं कराया गया हो.</translation> +<translation id="4434045419905280838">पॉप-अप और रीडायरेक्ट</translation> <translation id="443673843213245140">प्रॉक्सी का उपयोग अक्षम है लेकिन कोई स्पष्ट प्रॉक्सी कॉन्फ़िगरेशन निर्दिष्ट किया गया है.</translation> <translation id="445100540951337728">स्वीकृत डेबिट कार्ड</translation> <translation id="4506176782989081258">सत्यापन गड़बड़ी: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">इस साइट तक नहीं पहुंचा जा सकता</translation> <translation id="5869522115854928033">सहेजे गए पासवर्ड</translation> <translation id="5893752035575986141">क्रेडिट कार्ड स्वीकार किए जाते हैं.</translation> +<translation id="5898382028489516745">अगर आपने अपने <ph name="ORG_NAME" /> पासवर्ड का दूसरी साइटों पर दोबारा इस्तेमाल किया है, तो क्रोमियम आपको उसे रीसेट करने का सुझाव देता है.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (सिंक किया गया)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 उपयोग में है}one{# उपयोग में हैं}other{# उपयोग में हैं}}</translation> <translation id="5939518447894949180">रीसेट करें</translation> <translation id="5959728338436674663">Google को कुछ <ph name="BEGIN_WHITEPAPER_LINK" />सिस्टम संबंधी जानकारी और पेज सामग्री<ph name="END_WHITEPAPER_LINK" /> अपने आप भेजें ताकि खतरनाक ऐप्लिकेशन और साइटों का पता लगाने में सहायता मिल सके. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">संपर्क जानकारी में बदलाव करें</translation> <translation id="5967867314010545767">इतिहास से निकालें</translation> -<translation id="5972020793760134803">टैब स्विच करें</translation> <translation id="5975083100439434680">ज़ूम आउट</translation> <translation id="598637245381783098">भुगतान ऐप्लिकेशन नहीं खोला जा सकता</translation> <translation id="5989320800837274978">न तो कोई फ़िक्स्ड प्रॉक्सी सर्वर और न ही कोई .pac स्क्रिप्ट URL निर्दिष्ट किए गए हैं.</translation> @@ -717,6 +720,7 @@ <translation id="6047927260846328439">यह सामग्री आपसे धोखे से सॉफ़्टवेयर इंस्टॉल करवाने या व्यक्तिगत जानकारी का खुलासा करवाने की कोशिश कर सकती है. <ph name="BEGIN_LINK" />फिर भी दिखाएं<ph name="END_LINK" /></translation> <translation id="6051221802930200923">आप इस समय <ph name="SITE" /> पर नहीं जा सकते हैं क्योंकि वेबसाइट प्रमाणपत्र पिनिंग का उपयोग करती है. नेटवर्क की गड़बड़ियां और हमले आमतौर पर कुछ देर के लिए होते हैं, इसलिए यह पेज शायद बाद में ठीक से काम करेगा.</translation> <translation id="6059925163896151826">USB डिवाइस</translation> +<translation id="6071091556643036997">नीति का प्रकार गलत है.</translation> <translation id="6080696365213338172">आपने व्यवस्थापक द्वारा प्रदत्त प्रमाणपत्र के उपयोग से सामग्री एक्सेस की है. आपके द्वारा <ph name="DOMAIN" /> को प्रदान किया गया डेटा आपके व्यवस्थापक द्वारा बीच में रोका जा सकता है.</translation> <translation id="610911394827799129">आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर दूसरी तरह के ब्राउज़िंग इतिहास हो सकते हैं</translation> <translation id="6144381551823904650">{COUNT,plural, =0{कुछ नहीं}=1{1 पासवर्ड (सिंक किया हुआ)}one{# पासवर्ड (सिंक किए हुए)}other{# पासवर्ड (सिंक किए हुए)}}</translation> @@ -1035,7 +1039,6 @@ <translation id="8553075262323480129">अनुवाद विफल हो गया क्योंकि पेज की भाषा निर्धारित नहीं की जा सकी.</translation> <translation id="8557066899867184262">कार्ड वेरीफ़िकेशन कोड (सीवीसी) आपके कार्ड के पीछे मौजूद होता है.</translation> <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> से एक निजी कनेक्शन स्थापित नहीं किया जा सकता क्योंकि आपके डिवाइस का दिनांक और समय (<ph name="DATE_AND_TIME" />) गलत है.</translation> -<translation id="8564985650692024650">अगर आपने अपने <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्ड का दूसरी साइटों पर दोबारा इस्तेमाल किया है, तो क्रोमियम आपको उसे रीसेट करने का सुझाव देता है.</translation> <translation id="8571890674111243710">पेज का अनुवाद <ph name="LANGUAGE" /> में कर रहा है...</translation> <translation id="858637041960032120">फ़ोन नंबर जोड़ें </translation> @@ -1063,7 +1066,6 @@ <translation id="884264119367021077">शिपिंग पता</translation> <translation id="884923133447025588">कोई निरस्तीकरण प्रक्रिया प्राप्त नहीं हुई.</translation> <translation id="885730110891505394">Google के साथ साझा करना</translation> -<translation id="8858065207712248076">अगर आपने अपने <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्ड का दूसरी साइटों पर दोबारा इस्तेमाल किया है, तो Chrome आपको उसे रीसेट करने का सुझाव देता है.</translation> <translation id="8866481888320382733">नीति सेटिंग पार्स करने में गड़बड़ी</translation> <translation id="8870413625673593573">हाल ही में बंद किए गए</translation> <translation id="8874824191258364635">मान्य कार्ड संख्या डालें</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index d438dbc..81b3a2f 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Odaberite dopuštenje: <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Najnovije oznake</translation> <translation id="1113869188872983271">&Poništi promjenu rasporeda</translation> +<translation id="1125573121925420732">Upozorenja mogu biti uobičajena dok web-lokacije ažuriraju sigurnost. To bi se uskoro trebalo poboljšati.</translation> <translation id="1126551341858583091">Veličina na lokalnoj pohrani iznosi <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Predmemorija pravila ispravna je</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Pokušajte pokrenuti Mrežnu dijagnostiku sustava Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Ažurirajte zaporku za sinkronizaciju.</translation> <translation id="1787142507584202372">Ovdje se prikazuju vaše otvorene kartice</translation> -<translation id="1789575671122666129">Skočni prozori</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Ime nositelja kartice</translation> <translation id="1806541873155184440">Dodano <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Ukloni odabrane stavke</translation> <translation id="277133753123645258">Način dostave</translation> <translation id="277499241957683684">Zapis uređaja nije prisutan</translation> +<translation id="2781030394888168909">Izvezi za MacOS</translation> <translation id="2784949926578158345">Veza je ponovo uspostavljena.</translation> <translation id="2788784517760473862">Prihvaćene kreditne kartice</translation> <translation id="2794233252405721443">Web-lokacija blokirana</translation> @@ -461,6 +462,7 @@ <translation id="4171400957073367226">Potpis za potvrdu nije ispravan.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Još <ph name="ITEM_COUNT" /> stavka}one{Još <ph name="ITEM_COUNT" /> stavka}few{Još <ph name="ITEM_COUNT" /> stavke}other{Još <ph name="ITEM_COUNT" /> stavki}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome preporučuje poništavanje zaporke za <ph name="ORG_NAME" /> ako ste je upotrebljavali za druge web-lokacije.</translation> <translation id="4196861286325780578">&Ponovi premještanje</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />provjerite vatrozid i konfiguraciju antivirusnog programa<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Padovi programa</translation> @@ -508,6 +510,7 @@ <translation id="4415426530740016218">Adresa preuzimanja</translation> <translation id="4424024547088906515">Poslužitelj nije mogao dokazati da je <ph name="DOMAIN" />; Chrome smatra da njegov sigurnosni certifikat nije pouzdan. To može biti uzrokovano pogrešnom konfiguracijom ili napadom na vašu vezu.</translation> <translation id="4432688616882109544">Host <ph name="HOST_NAME" /> nije prihvatio vaš certifikat za prijavu ili certifikat nije poslan.</translation> +<translation id="4434045419905280838">Skočni prozori i preusmjeravanja</translation> <translation id="443673843213245140">Upotreba proxy poslužitelja onemogućena je, ali određena je izričita konfiguracija proxy poslužitelja.</translation> <translation id="445100540951337728">Prihvaćene debitne kartice</translation> <translation id="4506176782989081258">Pogreška pri provjeri valjanosti: <ph name="VALIDATION_ERROR" />.</translation> @@ -693,13 +696,13 @@ <translation id="5869405914158311789">Web-lokacija ne može se dohvatiti</translation> <translation id="5869522115854928033">Spremljene zaporke</translation> <translation id="5893752035575986141">Prihvaćaju se kreditne kartice.</translation> +<translation id="5898382028489516745">Chromium preporučuje poništavanje zaporke za <ph name="ORG_NAME" /> ako ste je upotrebljavali za druge web-lokacije.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinkronizirano)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 u upotrebi}one{# u upotrebi}few{# u upotrebi}other{# u upotrebi}}</translation> <translation id="5939518447894949180">Ponovno postavi</translation> <translation id="5959728338436674663">Automatski šalji Googleu neke <ph name="BEGIN_WHITEPAPER_LINK" />podatke o sustavu i sadržaj stranice<ph name="END_WHITEPAPER_LINK" /> radi otkrivanja opasnih aplikacija i web-lokacija. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Uredite podatke za kontakt</translation> <translation id="5967867314010545767">Ukloni iz povijesti</translation> -<translation id="5972020793760134803">Prijeđi na karticu</translation> <translation id="5975083100439434680">Smanji</translation> <translation id="598637245381783098">Aplikacija za plaćanje ne može se otvoriti</translation> <translation id="5989320800837274978">Nisu određeni fiksni proxy poslužitelji ni URL .pac skripte.</translation> @@ -1035,7 +1038,6 @@ <translation id="8553075262323480129">Prijevod nije uspio jer nije bilo moguće odrediti jezik stranice.</translation> <translation id="8557066899867184262">CVC možete pronaći na poleđini kartice.</translation> <translation id="8559762987265718583">Sigurnu vezu s domenom <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nije moguće uspostaviti jer datum i vrijeme (<ph name="DATE_AND_TIME" />) na vašem uređaju nisu točni.</translation> -<translation id="8564985650692024650">Chromium preporučuje poništavanje zaporke za organizaciju <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ako ste je upotrebljavali za druge web-lokacije.</translation> <translation id="8571890674111243710">Prijevod stranice na <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Dodaj tel. broj </translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Adresa za dostavu</translation> <translation id="884923133447025588">Nije pronađen mehanizam za opoziv.</translation> <translation id="885730110891505394">Dijeljenje s Googleom</translation> -<translation id="8858065207712248076">Chrome preporučuje poništavanje zaporke za organizaciju <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ako ste je upotrebljavali za druge web-lokacije.</translation> <translation id="8866481888320382733">Pogreška pri analizi postavki pravila</translation> <translation id="8870413625673593573">Nedavno zatvoreno</translation> <translation id="8874824191258364635">Unesite važeći broj kreditne kartice</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index aeb6053..878fb7b 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Engedély kiválasztása a következőhöz: <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Legutóbbi könyvjelzők</translation> <translation id="1113869188872983271">&Átrendezés visszavonása</translation> +<translation id="1125573121925420732">Gyakran előfordulhatnak figyelmeztetések, amikor a webhelyek frissítik biztonsági megoldásaikat. Ez a helyzet hamarosan javulhat.</translation> <translation id="1126551341858583091">A helyi tárolóban lévő fájl mérete <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Irányelv-gyorsítótár OK</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Próbálkozzon a Windows Hálózati diagnosztika futtatásával<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Kérjük, frissítse szinkronizálási összetett jelszavát.</translation> <translation id="1787142507584202372">A megnyitott lapok helye</translation> -<translation id="1789575671122666129">Előugró ablakok</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kártyatulajdonos neve</translation> <translation id="1806541873155184440">Hozzáadva: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">A kijelölt elemek eltávolítása</translation> <translation id="277133753123645258">Szállítási mód</translation> <translation id="277499241957683684">Hiányzó eszközrekord</translation> +<translation id="2781030394888168909">Exportálás MacOS-formátumban</translation> <translation id="2784949926578158345">A kapcsolat alaphelyzetbe állt.</translation> <translation id="2788784517760473862">Elfogadott hitelkártyák</translation> <translation id="2794233252405721443">A webhely le van tiltva</translation> @@ -460,6 +461,7 @@ <translation id="4171400957073367226">Hibás igazoló aláírás.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{ még <ph name="ITEM_COUNT" /> elem}other{ még <ph name="ITEM_COUNT" /> elem}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" />: <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">A Chrome azt javasolja, hogy adjon meg új <ph name="ORG_NAME" />-jelszavat a régi helyett, ha azt más webhelyeken is használta.</translation> <translation id="4196861286325780578">&Áthelyezés újra</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />A tűzfal és a vírusirtó konfigurációjának ellenőrzése<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Összeomlások</translation> @@ -507,6 +509,7 @@ <translation id="4415426530740016218">Átvételi cím</translation> <translation id="4424024547088906515">A szerver nem tudta bizonyítani, hogy valóban a(z) <ph name="DOMAIN" /> domainbe tartozik; biztonsági tanúsítványa a Chrome 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="4432688616882109544">A(z) <ph name="HOST_NAME" /> nem fogadta el az Ön bejelentkezési tanúsítványát, vagy nem talált ilyet.</translation> +<translation id="4434045419905280838">Előugró ablakok és átirányítások</translation> <translation id="443673843213245140">A proxy használata le van tiltva, de kifejezett proxykonfiguráció van megadva.</translation> <translation id="445100540951337728">Elfogadott bankkártyák</translation> <translation id="4506176782989081258">Érvényesítési hiba: <ph name="VALIDATION_ERROR" /></translation> @@ -692,13 +695,13 @@ <translation id="5869405914158311789">A webhely nem érhető el</translation> <translation id="5869522115854928033">Mentett jelszavak</translation> <translation id="5893752035575986141">Elfogadott hitelkártyák.</translation> +<translation id="5898382028489516745">A Chromium azt javasolja, hogy adjon meg új <ph name="ORG_NAME" />-jelszavat a régi helyett, ha azt más webhelyeken is használta.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (szinkronizálva)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 van használatban}other{# van használatban}}</translation> <translation id="5939518447894949180">Visszaállítás</translation> <translation id="5959728338436674663">Bizonyos <ph name="BEGIN_WHITEPAPER_LINK" />rendszer-információk és oldaltartalmak<ph name="END_WHITEPAPER_LINK" /> automatikus küldése a Google-nak a veszélyes alkalmazások és webhelyek felderítése érdekében. <ph name="PRIVACY_PAGE_LINK" /></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="5972020793760134803">Váltás lapra</translation> <translation id="5975083100439434680">Kicsinyítés</translation> <translation id="598637245381783098">Nem sikerült megnyitni a fizetőalkalmazást</translation> <translation id="5989320800837274978">Sem fix proxyszerver, sem pedig .pac típusú szkript URL-címe nincs megadva.</translation> @@ -1034,7 +1037,6 @@ <translation id="8553075262323480129">A fordítás nem sikerült, mivel az oldal nyelvét nem lehet megállapítani.</translation> <translation id="8557066899867184262">A CVC-kód a kártya hátulján található.</translation> <translation id="8559762987265718583">Nem hozható létre privát kapcsolat a következővel: <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, mert az eszköz dátum- és időbeállítása helytelen (<ph name="DATE_AND_TIME" />).</translation> -<translation id="8564985650692024650">A Chromium azt javasolja, hogy adjon meg új <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-jelszót a régi helyett, ha azt más webhelyeken is használta.</translation> <translation id="8571890674111243710">Oldal fordítása erre a nyelvre: <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Szám hozzáadása </translation> @@ -1062,7 +1064,6 @@ <translation id="884264119367021077">Szállítási cím</translation> <translation id="884923133447025588">Nem található visszavonási mechanizmus.</translation> <translation id="885730110891505394">Megosztás a Google-lal</translation> -<translation id="8858065207712248076">A Chrome azt javasolja, hogy adjon meg új <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-jelszót a régi helyett, ha azt más webhelyeken is használta.</translation> <translation id="8866481888320382733">Irányelv-beállítások előfeldolgozási hibája</translation> <translation id="8870413625673593573">Mostanában bezárt</translation> <translation id="8874824191258364635">Érvényes kártyaszámot adjon meg</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index 8160f52..61c2a3e 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Pilih izin untuk <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Bookmark yang baru dibuka</translation> <translation id="1113869188872983271">&Urungkan pengaturan ulang</translation> +<translation id="1125573121925420732">Peringatan mungkin akan sering ditampilkan selama situs mengupdate keamanannya. Situasi ini akan segera diperbaiki.</translation> <translation id="1126551341858583091">Ukuran di penyimpanan lokal adalah <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Cache kebijakan Oke</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Coba jalankan Diagnostik Jaringan Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Perbarui frasa sandi sinkronisasi Anda.</translation> <translation id="1787142507584202372">Tab yang terbuka muncul di sini</translation> -<translation id="1789575671122666129">Pop-up</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nama Pemegang Kartu</translation> <translation id="1806541873155184440">Ditambahkan pada <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Hapus item yang dipilih</translation> <translation id="277133753123645258">Metode pengiriman</translation> <translation id="277499241957683684">Catatan perangkat hilang</translation> +<translation id="2781030394888168909">Ekspor MacOS</translation> <translation id="2784949926578158345">Sambungan disetel ulang.</translation> <translation id="2788784517760473862">Kartu kredit yang diterima</translation> <translation id="2794233252405721443">Situs diblokir</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Tanda tangan verifikasi tidak valid</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> item lainnya}other{<ph name="ITEM_COUNT" /> item lainnya}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome menyarankan untuk menyetel ulang sandi <ph name="ORG_NAME" /> jika Anda juga menggunakannya di situs lain.</translation> <translation id="4196861286325780578">&Ulangi pemindahan</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Periksa konfigurasi antivirus dan firewall<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Kerusakan</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Alamat Pengambilan</translation> <translation id="4424024547088906515">Server ini tidak dapat membuktikan bahwa ini adalah <ph name="DOMAIN" />; sertifikat keamanannya tidak dipercaya oleh Chrome. Hal ini dapat disebabkan oleh kesalahan konfigurasi atau penyerang memotong sambungan Anda.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> tidak menerima sertifikat masuk Anda, atau sertifikat masuk mungkin tidak diberikan.</translation> +<translation id="4434045419905280838">Pop-up dan pengalihan</translation> <translation id="443673843213245140">Penggunaan proxy dinonaktifkan tetapi konfigurasi proxy yang eksplisit ditentukan.</translation> <translation id="445100540951337728">Kartu kredit yang diterima</translation> <translation id="4506176782989081258">Kesalahan validasi: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Situs ini tidak dapat dijangkau</translation> <translation id="5869522115854928033">Sandi tersimpan</translation> <translation id="5893752035575986141">Kartu kredit diterima.</translation> +<translation id="5898382028489516745">Chromium menyarankan untuk menyetel ulang sandi <ph name="ORG_NAME" /> jika Anda juga menggunakannya di situs lain.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (disinkronkan)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 terpakai}other{# terpakai}}</translation> <translation id="5939518447894949180">Setel ulang</translation> <translation id="5959728338436674663">Kirim beberapa <ph name="BEGIN_WHITEPAPER_LINK" />informasi sistem dan konten halaman<ph name="END_WHITEPAPER_LINK" /> secara otomatis ke Google untuk membantu mendeteksi aplikasi dan situs berbahaya. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edit Info Kontak</translation> <translation id="5967867314010545767">Hapus dari histori</translation> -<translation id="5972020793760134803">Ganti tab</translation> <translation id="5975083100439434680">Perkecil</translation> <translation id="598637245381783098">Tidak dapat membuka aplikasi pembayaran</translation> <translation id="5989320800837274978">Baik proxy server tetap ataupun URL skrip .pac tidak ditentukan.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Terjemahan gagal karena bahasa halaman tidak dapat ditentukan.</translation> <translation id="8557066899867184262">CVC terletak di bagian belakang kartu Anda.</translation> <translation id="8559762987265718583">Sambungan pribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak dapat dibuat karena tanggal dan waktu (<ph name="DATE_AND_TIME" />) perangkat tidak benar.</translation> -<translation id="8564985650692024650">Chromium menyarankan untuk menyetel ulang sandi <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> jika Anda juga menggunakannya di situs lain.</translation> <translation id="8571890674111243710">Menerjemahkan halaman ke <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">+ nomor telepon</translation> <translation id="859285277496340001">Sertifikat tidak menetapkan mekanisme untuk memeriksa apakah sertifikat telah ditarik.</translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Alamat pengiriman</translation> <translation id="884923133447025588">Tidak ditemukan mekanisme pembatalan.</translation> <translation id="885730110891505394">Berbagi dengan Google</translation> -<translation id="8858065207712248076">Chrome menyarankan untuk menyetel ulang sandi <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> jika Anda juga menggunakannya di situs lain.</translation> <translation id="8866481888320382733">Kesalahan saat menguraikan setelan kebijakan</translation> <translation id="8870413625673593573">Barusan Ditutup</translation> <translation id="8874824191258364635">Masukkan nomor kartu yang valid</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index d5d18f7b..72a0e97 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Seleziona l'autorizzazione per <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Preferiti aggiunti di recente</translation> <translation id="1113869188872983271">&Annulla ridisposizione</translation> +<translation id="1125573121925420732">Gli avvisi potrebbero essere frequenti durante l'aggiornamento della sicurezza dei siti web. La situazione dovrebbe migliorare a breve.</translation> <translation id="1126551341858583091">Le dimensioni nello spazio di archiviazione locale sono pari a <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Cache dei criteri integra</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Prova a eseguire lo strumento Diagnostica di rete Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Aggiorna la tua passphrase di sincronizzazione.</translation> <translation id="1787142507584202372">Le tue schede aperte vengono visualizzate qui</translation> -<translation id="1789575671122666129">Popup</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nome del titolare della carta</translation> <translation id="1806541873155184440">Data di aggiunta: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Rimuovi gli elementi selezionati</translation> <translation id="277133753123645258">Metodo di spedizione</translation> <translation id="277499241957683684">Record del dispositivo mancante</translation> +<translation id="2781030394888168909">Esporta Mac OS</translation> <translation id="2784949926578158345">La connessione è stata reimpostata.</translation> <translation id="2788784517760473862">Carte di credito accettate</translation> <translation id="2794233252405721443">Sito bloccato</translation> @@ -459,6 +460,7 @@ <translation id="4171400957073367226">Firma di verifica non valida</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> altro elemento}other{Altri <ph name="ITEM_COUNT" /> elementi}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome ti consiglia di reimpostare la password di <ph name="ORG_NAME" /> se l'hai utilizzata su altri siti.</translation> <translation id="4196861286325780578">&Ripeti spostamento</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Controllare le configurazioni del firewall e antivirus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Arresti anomali</translation> @@ -506,6 +508,7 @@ <translation id="4415426530740016218">Indirizzo di ritiro</translation> <translation id="4424024547088906515">Questo server non è riuscito a dimostrare che si tratta di <ph name="DOMAIN" />; il relativo certificato di sicurezza non è considerato attendibile da Chrome. Il problema potrebbe essere dovuto a un'errata configurazione o a un malintenzionato che intercetta la connessione.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> non ha accettato il certificato di accesso oppure non ne è stato fornito uno.</translation> +<translation id="4434045419905280838">Popup e reindirizzamenti</translation> <translation id="443673843213245140">L'utilizzo di un proxy è stato disattivato ma è stata specificata una configurazione proxy esplicita.</translation> <translation id="445100540951337728">Carte di debito accettate</translation> <translation id="4506176782989081258">Errore di convalida. <ph name="VALIDATION_ERROR" /></translation> @@ -691,13 +694,13 @@ <translation id="5869405914158311789">Impossibile raggiungere il sito</translation> <translation id="5869522115854928033">Password salvate</translation> <translation id="5893752035575986141">Le carte di credito sono accettate.</translation> +<translation id="5898382028489516745">Chromium ti consiglia di reimpostare la password di <ph name="ORG_NAME" /> se l'hai utilizzata su altri siti.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizzati)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in uso}other{# in uso}}</translation> <translation id="5939518447894949180">Ripristina</translation> <translation id="5959728338436674663">Invia automaticamente a Google <ph name="BEGIN_WHITEPAPER_LINK" />alcune informazioni sul sistema e alcuni contenuti delle pagine<ph name="END_WHITEPAPER_LINK" /> per contribuire a rilevare app e siti pericolosi. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Modifica informazioni di contatto</translation> <translation id="5967867314010545767">Rimuovi da cronologia</translation> -<translation id="5972020793760134803">Passa alla scheda</translation> <translation id="5975083100439434680">Diminuisci lo zoom</translation> <translation id="598637245381783098">Impossibile aprire l'app per i pagamenti</translation> <translation id="5989320800837274978">Non sono stati specificati né server proxy fissi né un URL script .pac.</translation> @@ -1032,7 +1035,6 @@ <translation id="8553075262323480129">La traduzione non è riuscita perché non è stato possibile determinare la lingua della pagina.</translation> <translation id="8557066899867184262">Il codice CVC si trova sul lato posteriore della carta.</translation> <translation id="8559762987265718583">Impossibile stabilire una connessione privata con il sito <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perché data e ora del dispositivo (<ph name="DATE_AND_TIME" />) sono sbagliate.</translation> -<translation id="8564985650692024650">Chromium ti consiglia di reimpostare la password di <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, se l'hai utilizzata su altri siti.</translation> <translation id="8571890674111243710">Traduzione della pagina in <ph name="LANGUAGE" /> in corso...</translation> <translation id="858637041960032120">Aggiungi telefono</translation> <translation id="859285277496340001">Il certificato non specifica un meccanismo per il controllo della sua revoca.</translation> @@ -1059,7 +1061,6 @@ <translation id="884264119367021077">Indirizzo di spedizione</translation> <translation id="884923133447025588">Nessun sistema di revoca trovato.</translation> <translation id="885730110891505394">Condivisione con Google</translation> -<translation id="8858065207712248076">Chrome ti consiglia di reimpostare la password di <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, se l'hai utilizzata su altri siti.</translation> <translation id="8866481888320382733">Errore durante l'analisi delle impostazioni criterio</translation> <translation id="8870413625673593573">Chiusi di recente</translation> <translation id="8874824191258364635">Inserisci un numero di carta di credito valido</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index b8364c7..0952c3e 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">צריך לבחור את ההרשאה של <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">סימניות אחרונות</translation> <translation id="1113869188872983271">&ביטול של שינוי סדר</translation> +<translation id="1125573121925420732">לפעמים מופיעות אזהרות בזמן שאתרים מעדכנים את האבטחה שלהם. זה אמור להיפסק בקרוב.</translation> <translation id="1126551341858583091">גודל האחסון המקומי הוא <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">המטמון של המדיניות תקין</translation> <translation id="1150979032973867961">השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />. אישור האבטחה שלו לא נחשב כמהימן על ידי מערכת ההפעלה של המחשב. ייתכן שהסיבה לכך היא תצורה שגויה או תוקף המיירט את החיבור שלך.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />נסה להפעיל את אבחון הרשת של Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">עדכן את משפט-הסיסמה של הסינכרון.</translation> <translation id="1787142507584202372">כאן מופיעות הכרטיסיות שאתה פותח</translation> -<translation id="1789575671122666129">חלונות קופצים</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">שם בעל הכרטיס</translation> <translation id="1806541873155184440">תאריך הוספה: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">הסר פריטים שנבחרו</translation> <translation id="277133753123645258">שיטת משלוח</translation> <translation id="277499241957683684">חסרה רשומת מכשיר</translation> +<translation id="2781030394888168909">ייצוא בפורמט ל-MacOS</translation> <translation id="2784949926578158345">החיבור עבר איפוס.</translation> <translation id="2788784517760473862">כרטיסי אשראי שהסוחר מקבל</translation> <translation id="2794233252405721443">אתר חסום</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">חתימת אימות לא חוקית</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{פריט אחד (<ph name="ITEM_COUNT" />) נוסף}two{<ph name="ITEM_COUNT" /> פריטים נוספים}many{<ph name="ITEM_COUNT" /> פריטים נוספים}other{<ph name="ITEM_COUNT" /> פריטים נוספים}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">אם הזנת את הסיסמה של <ph name="ORG_NAME" /> באתרים אחרים, ההמלצה של Chrome היא לאפס אותה.</translation> <translation id="4196861286325780578">&ביצוע מחדש של העברה</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />לבדוק את תצורת האנטי-וירוס וחומת האש<ph name="END_LINK" /></translation> <translation id="4220128509585149162">קריסה</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">כתובת איסוף</translation> <translation id="4424024547088906515">השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />. אישור האבטחה שלו לא נחשב כמהימן על ידי Chrome. ייתכן שהסיבה לכך היא תצורה שגויה או תוקף המיירט את החיבור שלך.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> לא אישר את אישור ההתחברות שלך, או שלא סופק אישור התחברות.</translation> +<translation id="4434045419905280838">חלונות קופצים והפניות אוטומטיות</translation> <translation id="443673843213245140">השימוש בשרת Proxy הושבת, אך צויינה תצורת שרת Proxy מפורשת.</translation> <translation id="445100540951337728">כרטיסי חיוב שהסוחר מקבל</translation> <translation id="4506176782989081258">שגיאת אימות: <ph name="VALIDATION_ERROR" /></translation> @@ -699,13 +702,13 @@ <translation id="5869405914158311789">לא ניתן לגשת לאתר הזה</translation> <translation id="5869522115854928033">סיסמאות שמורות</translation> <translation id="5893752035575986141">אפשר לשלם באמצעות כרטיסי אשראי.</translation> +<translation id="5898382028489516745">אם הזנת את הסיסמה של <ph name="ORG_NAME" /> באתרים אחרים, ההמלצה של Chromium היא לאפס אותה.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (מסונכרנים)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{אחד נמצא בשימוש}two{שניים נמצאים בשימוש}many{# נמצאים בשימוש}other{# נמצאים בשימוש}}</translation> <translation id="5939518447894949180">אפס</translation> <translation id="5959728338436674663">שלח באופן אוטומטי <ph name="BEGIN_WHITEPAPER_LINK" />חלק מפרטי המערכת ותוכן הדף<ph name="END_WHITEPAPER_LINK" /> אל Google כדי לעזור בזיהוי של אפליקציות ואתרים מסוכנים. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">עריכת הפרטים ליצירת קשר</translation> <translation id="5967867314010545767">הסר מההיסטוריה</translation> -<translation id="5972020793760134803">מעבר לכרטיסייה</translation> <translation id="5975083100439434680">התרחק</translation> <translation id="598637245381783098">לא ניתן לפתוח את אפליקציית התשלומים</translation> <translation id="5989320800837274978">לא צוינו שרתי Proxy קבועים ולא כתובת אתר של סקריפט .pac</translation> @@ -1041,7 +1044,6 @@ <translation id="8553075262323480129">התרגום נכשל כיוון שלא הייתה אפשרות לקבוע את שפת הדף.</translation> <translation id="8557066899867184262">קוד האימות נמצא בגב הכרטיס.</translation> <translation id="8559762987265718583">לא ניתן ליצור חיבור פרטי אל <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> מפני שהתאריך והשעה (<ph name="DATE_AND_TIME" />) במכשיר שלך שגויים.</translation> -<translation id="8564985650692024650">אם הזנת את הסיסמה של <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> באתרים אחרים, ההמלצה של Chromium היא לאפס אותה.</translation> <translation id="8571890674111243710">מתרגם דף ל<ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">הוסף מספר טלפון </translation> @@ -1069,7 +1071,6 @@ <translation id="884264119367021077">כתובת למשלוח</translation> <translation id="884923133447025588">לא נמצא מנגנון ביטול</translation> <translation id="885730110891505394">שיתוף עם Google</translation> -<translation id="8858065207712248076">אם הזנת את הסיסמה של <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> באתרים אחרים, ההמלצה של Chrome היא לאפס אותה.</translation> <translation id="8866481888320382733">שגיאה בניתוח הגדרות המדיניות</translation> <translation id="8870413625673593573">נסגרו לאחרונה</translation> <translation id="8874824191258364635">עליך להזין מספר כרטיס חוקי</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index 7b85081c..78448cb 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows ネットワーク診断ツールを実行してみてください<ph name="END_LINK" />。</translation> <translation id="1783075131180517613">同期パスフレーズを更新してください。</translation> <translation id="1787142507584202372">最近開いたタブがここに表示されます</translation> -<translation id="1789575671122666129">ポップアップ</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">カード名義人</translation> <translation id="1806541873155184440">追加日: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">確認用の署名に問題があります</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{他 <ph name="ITEM_COUNT" /> 件のアイテム}other{他 <ph name="ITEM_COUNT" /> 件のアイテム}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268"><ph name="ORG_NAME" /> パスワードを他のサイトで再使用した場合、Chrome ではパスワードの再設定を促すメッセージが表示されます。</translation> <translation id="4196861286325780578">移動のやり直し(&R)</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ファイアウォールとウイルス対策の設定を確認する<ph name="END_LINK" /></translation> <translation id="4220128509585149162">クラッシュ</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">このサイトにアクセスできません</translation> <translation id="5869522115854928033">保存したパスワード</translation> <translation id="5893752035575986141">クレジット カードをご利用いただけます。</translation> +<translation id="5898382028489516745"><ph name="ORG_NAME" /> パスワードを他のサイトで再使用した場合、Chromium ではパスワードの再設定を促すメッセージが表示されます。</translation> <translation id="5908541034548427511"><ph name="TYPE_1" />(同期済み)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 個が使用中}other{# 個が使用中}}</translation> <translation id="5939518447894949180">リセット</translation> <translation id="5959728338436674663">危険なアプリやサイトの検出に役立てるために一部の<ph name="BEGIN_WHITEPAPER_LINK" />システム情報やページのコンテンツ<ph name="END_WHITEPAPER_LINK" />を Google に自動送信する。<ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">連絡先情報の編集</translation> <translation id="5967867314010545767">履歴から削除</translation> -<translation id="5972020793760134803">タブを切り替え</translation> <translation id="5975083100439434680">縮小する</translation> <translation id="598637245381783098">お支払いアプリを開けません</translation> <translation id="5989320800837274978">固定プロキシ サーバーと .pac スクリプト URL のどちらも指定されていません。</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">ページの言語を検出できないため翻訳できません。</translation> <translation id="8557066899867184262">CVC はカードの裏面に記載されています。</translation> <translation id="8559762987265718583">デバイスの日時(<ph name="DATE_AND_TIME" />)が正しくないため、<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> へのプライベート接続を確立できません。</translation> -<translation id="8564985650692024650"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> パスワードを他のサイトで再使用した場合、Chromium ではパスワードの再設定を促すメッセージが表示されます。</translation> <translation id="8571890674111243710">ページを<ph name="LANGUAGE" />に翻訳しています...</translation> <translation id="858637041960032120">電話番号を追加 </translation> @@ -1064,7 +1063,6 @@ <translation id="884264119367021077">配送先住所</translation> <translation id="884923133447025588">取り消し機構が見つかりません。</translation> <translation id="885730110891505394">Google との共有</translation> -<translation id="8858065207712248076"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> パスワードを他のサイトで再使用した場合、Chrome ではパスワードの再設定を促すメッセージが表示されます。</translation> <translation id="8866481888320382733">ポリシー設定の解析中にエラーが発生しました</translation> <translation id="8870413625673593573">最近閉じたタブ</translation> <translation id="8874824191258364635">有効なクレジット カード番号を入力してください</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index 25812ff1..546119a 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -127,7 +127,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows ನೆಟ್ವರ್ಕ್ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> <translation id="1787142507584202372">ನಿಮ್ಮ ತೆರೆಯಲಾದ ಟ್ಯಾಬ್ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ</translation> -<translation id="1789575671122666129">ಪಾಪ್ಅಪ್ಗಳು</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">ಕಾರ್ಡ್ಹೋಲ್ಡರ್ ಹೆಸರು</translation> <translation id="1806541873155184440"><ph name="ADDED_TO_AUTOFILL_MONTH" /> ಸೇರಿಸಲಾಗಿದೆ</translation> @@ -455,6 +454,7 @@ <translation id="4171400957073367226">ತಪ್ಪು ಪರಿಶೀಲನೆ ಸಹಿ</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> ಹೆಚ್ಚಿನ ಐಟಂ}one{<ph name="ITEM_COUNT" /> ಹೆಚ್ಚಿನ ಐಟಂಗಳು}other{<ph name="ITEM_COUNT" /> ಹೆಚ್ಚಿನ ಐಟಂಗಳು}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">ನೀವು ಇತರ ಸೈಟ್ಗಳಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದ್ದಲ್ಲಿ Chrome ನಿಮ್ಮ <ph name="ORG_NAME" /> ಪಾಸವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> <translation id="4196861286325780578">&ಸರಿಸುವುದನ್ನು ಮತ್ತೆಮಾಡು</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ಫೈರ್ವಾಲ್ ಮತ್ತು ಆಂಟಿವೈರಸ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ<ph name="END_LINK" /></translation> <translation id="4220128509585149162">ವಿಫಲತೆಗಳು</translation> @@ -682,13 +682,13 @@ <translation id="5869405914158311789">ಈ ಸೈಟ್ ತಲುಪಲಾಗುವುದಿಲ್ಲ</translation> <translation id="5869522115854928033">ಉಳಿಸಲಾದ ಪಾಸ್ವರ್ಡ್ಗಳು</translation> <translation id="5893752035575986141">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ಗಳನ್ನು ಸಮ್ಮತಿಸಲಾಗಿದೆ.</translation> +<translation id="5898382028489516745">ನೀವು ಇತರ ಸೈಟ್ಗಳಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದ್ದಲ್ಲಿ Chromium ನಿಮ್ಮ <ph name="ORG_NAME" /> ಪಾಸವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ಬಳಕೆಯಲ್ಲಿದೆ}one{# ಬಳಕೆಯಲ್ಲಿದೆ}other{# ಬಳಕೆಯಲ್ಲಿದೆ}}</translation> <translation id="5939518447894949180">ಮರುಹೊಂದಿಸು</translation> <translation id="5959728338436674663">ಅಪಾಯಕಾರಿ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಸೈಟ್ಗಳ ಪತ್ತೆಗೆ ಸಹಾಯ ಮಾಡಲು Google ಗೆ ಕೆಲವು <ph name="BEGIN_WHITEPAPER_LINK" />ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಪುಟ ವಿಷಯ<ph name="END_WHITEPAPER_LINK" />ವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸಿ. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">ಸಂಪರ್ಕ ಮಾಹಿತಿಯನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="5967867314010545767">ಇತಿಹಾಸದಿಂದ ತೆಗೆದುಹಾಕಿ</translation> -<translation id="5972020793760134803">ಟ್ಯಾಬ್ಗಾಗಿ ಬದಲಿಸಿ</translation> <translation id="5975083100439434680">ಝೂಮ್ ಔಟ್</translation> <translation id="598637245381783098">ಪಾವತಿ ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="5989320800837274978">ಹೊಂದಿಸಿದ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ಗಳು ಆಗಲಿ ಅಥವಾ .pac ಸ್ಕ್ರಿಪ್ಟ್ URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿಲ್ಲ.</translation> @@ -705,6 +705,7 @@ <translation id="6047927260846328439">ಈ ಕಂಟೆಂಟ್ ಸಾಫ್ಟ್ವೇರ್ ಸ್ಥಾಪಿಸುವಂತೆ ಅಥವಾ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸುವಂತೆ ನಿಮ್ಮನ್ನು ಮೋಸಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರಬಹುದು. <ph name="BEGIN_LINK" />ಹೇಗಿದ್ದರೂ ತೋರಿಸಿ<ph name="END_LINK" /></translation> <translation id="6051221802930200923">ನೀವು ಸದ್ಯಕ್ಕೆ <ph name="SITE" /> ಗೆ ಭೇಟಿ ನೀಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಏಕೆಂದರೆ, ವೆಬ್ಸೈಟ್ ಪ್ರಮಾಣಪತ್ರ ಪಿನ್ ಮಾಡುವಿಕೆಯನ್ನು ಬಳಸುತ್ತದೆ. ನೆಟ್ವರ್ಕ್ ದೋಷಗಳು ಮತ್ತು ಆಕ್ರಮಣಗಳು ತಾತ್ಕಾಲಿಕವಾಗಿರುತ್ತವೆ, ಹೀಗಾಗಿ ಈ ಪುಟವು ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ ಕಾರ್ಯ ನಿರ್ವಹಿಸಬಹುದು.</translation> <translation id="6059925163896151826">USB ಸಾಧನಗಳು</translation> +<translation id="6071091556643036997">ಕಾರ್ಯನೀತಿಯ ವಿಧ ಅಮಾನ್ಯವಾಗಿದೆ.</translation> <translation id="6080696365213338172">ನಿರ್ವಾಹಕರು-ಒದಗಿಸಿದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ವಿಷಯವನ್ನು ಪ್ರವೇಶಿಸಿರುವಿರಿ. <ph name="DOMAIN" /> ಗೆ ನೀವು ಒದಗಿಸುವ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ತಡೆಹಿಡಿಯಬಹುದಾಗಿದೆ.</translation> <translation id="610911394827799129">ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ನಲ್ಲಿ ಇತರ ವಿಧಗಳ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೊಂದಿರಬಹುದು</translation> <translation id="6144381551823904650">{COUNT,plural, =0{ಯಾವುದೂ ಇಲ್ಲ}=1{1 ಪಾಸ್ವರ್ಡ್ (ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}one{# ಪಾಸ್ವರ್ಡ್ಗಳು (ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}other{# ಪಾಸ್ವರ್ಡ್ಗಳು (ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}}</translation> @@ -1022,7 +1023,7 @@ </translation> <translation id="859285277496340001">ಇದನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆಯೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಪ್ರಮಾಣಪತ್ರವು ಯಾಂತ್ರೀಕರಣವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿಲ್ಲ.</translation> <translation id="8620436878122366504">ನಿಮ್ಮ ಪೋಷಕರು ಇನ್ನೂ ಇದನ್ನು ಅಂಗೀಕರಿಸಿಲ್ಲ</translation> -<translation id="8625384913736129811">ಈ ಕಾರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನಕ್ಕೆ ಉಳಿಸಿ</translation> +<translation id="8625384913736129811">ಈ ಕಾರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಿ</translation> <translation id="8639963783467694461">ಸ್ವಯಂತುಂಬುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="8680536109547170164"><ph name="QUERY" />, ಉತ್ತರ, <ph name="ANSWER" /></translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವು ಎನ್ಕ್ರಿಪ್ಟ್ ಆಗಿಲ್ಲ.</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 108c21b..40562e33 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows 네트워크 진단 프로그램을 실행<ph name="END_LINK" />해 보세요.</translation> <translation id="1783075131180517613">동기화 암호를 업데이트하세요.</translation> <translation id="1787142507584202372">열린 탭이 여기에 표시됩니다.</translation> -<translation id="1789575671122666129">팝업</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">카드 소유자 이름</translation> <translation id="1806541873155184440">추가일: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">잘못된 인증 서명입니다.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{그 외 <ph name="ITEM_COUNT" />개 항목}other{그 외 <ph name="ITEM_COUNT" />개 항목}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">다른 사이트에서 비밀번호를 재사용했다면 <ph name="ORG_NAME" /> 비밀번호를 재설정하는 것이 좋습니다.</translation> <translation id="4196861286325780578">이동 다시 실행(&R)</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />방화벽 및 바이러스 백신 소프트웨어 설정 확인<ph name="END_LINK" /></translation> <translation id="4220128509585149162">비정상 종료</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">사이트에 연결할 수 없음</translation> <translation id="5869522115854928033">저장된 비밀번호</translation> <translation id="5893752035575986141">신용카드를 사용할 수 있습니다.</translation> +<translation id="5898382028489516745">다른 사이트에서 비밀번호를 재사용했다면 <ph name="ORG_NAME" /> 비밀번호를 재설정하는 것이 좋습니다.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" />(동기화됨)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1개 사용 중}other{#개 사용 중}}</translation> <translation id="5939518447894949180">초기화</translation> <translation id="5959728338436674663">위험한 앱과 사이트를 감지할 수 있도록 일부 <ph name="BEGIN_WHITEPAPER_LINK" />시스템 정보와 페이지 콘텐츠<ph name="END_WHITEPAPER_LINK" />를 Google로 자동 전송합니다. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">연락처 정보 수정</translation> <translation id="5967867314010545767">기록에서 삭제</translation> -<translation id="5972020793760134803">탭으로 전환</translation> <translation id="5975083100439434680">축소</translation> <translation id="598637245381783098">결제 앱을 열 수 없습니다.</translation> <translation id="5989320800837274978">고정 프록시 서버와 .pac 스크립트 URL이 모두 지정되지 않았습니다.</translation> @@ -1035,7 +1035,6 @@ <translation id="8553075262323480129">페이지의 언어를 결정할 수 없으므로 번역하지 못했습니다.</translation> <translation id="8557066899867184262">CVC는 카드 뒷면에 있습니다.</translation> <translation id="8559762987265718583">기기의 날짜와 시간(<ph name="DATE_AND_TIME" />)이 잘못되어 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />에 대한 비공개 연결을 설정할 수 없습니다.</translation> -<translation id="8564985650692024650">다른 사이트에서 비밀번호를 재사용했다면 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 비밀번호를 재설정하는 것이 좋습니다.</translation> <translation id="8571890674111243710">페이지를 <ph name="LANGUAGE" />(으)로 번역 중...</translation> <translation id="858637041960032120">번호 추가</translation> <translation id="859285277496340001">인증서는 취소 여부를 확인하는 매커니즘을 지정하지 않습니다.</translation> @@ -1062,7 +1061,6 @@ <translation id="884264119367021077">배송지 주소</translation> <translation id="884923133447025588">폐기 매커니즘을 찾을 수 없습니다.</translation> <translation id="885730110891505394">Google과 공유</translation> -<translation id="8858065207712248076">다른 사이트에서 비밀번호를 재사용했다면 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 비밀번호를 재설정하는 것이 좋습니다.</translation> <translation id="8866481888320382733">정책 설정을 파싱하는 중 오류 발생</translation> <translation id="8870413625673593573">최근에 닫은 탭</translation> <translation id="8874824191258364635">올바른 카드 번호를 입력하세요.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index 3e728562..f2712a4 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Pabandykite paleisti „Windows Network Diagnostics“<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Atnaujinkite sinchronizavimo slaptafrazę.</translation> <translation id="1787142507584202372">Atidaryti skirtukai bus rodomi čia</translation> -<translation id="1789575671122666129">Iššokantieji langai</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kortelės savininko vardas</translation> <translation id="1806541873155184440">Pridėta <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -463,6 +462,7 @@ <translation id="4171400957073367226">Netinkamas patvirtinimo parašas</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Dar <ph name="ITEM_COUNT" /> elementas}one{Dar <ph name="ITEM_COUNT" /> elementas}few{Dar <ph name="ITEM_COUNT" /> elementai}many{Dar <ph name="ITEM_COUNT" /> elemento}other{Dar <ph name="ITEM_COUNT" /> elementų}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">„Chrome“ rekomenduoja iš naujo nustatyti „<ph name="ORG_NAME" />“ slaptažodį, jei naudojate jį kitose svetainėse.</translation> <translation id="4196861286325780578">&Perkelti dar kartą</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Patikrinti užkardos ir antivirusinės sistemos konfigūracijas<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Gedimai</translation> @@ -695,13 +695,13 @@ <translation id="5869405914158311789">Nepavyksta pasiekti šios svetainės</translation> <translation id="5869522115854928033">Išsaugoti slaptažodžiai</translation> <translation id="5893752035575986141">Kredito kortelės tinkamos.</translation> +<translation id="5898382028489516745">„Chromium“ rekomenduoja iš naujo nustatyti „<ph name="ORG_NAME" />“ slaptažodį, jei naudojate jį kitose svetainėse.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinchronizuota)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Naudojamas 1 slapukas}one{Naudojamas # slapukas}few{Naudojami # slapukai}many{Naudojama # slapuko}other{Naudojama # slapukų}}</translation> <translation id="5939518447894949180">Nustatyti iš naujo</translation> <translation id="5959728338436674663">Automatiškai siųsti tam tikrą <ph name="BEGIN_WHITEPAPER_LINK" />sistemos informaciją ir puslapio turinį<ph name="END_WHITEPAPER_LINK" /> į sistemą „Google“ siekiant padėti aptikti pavojingas programas ir svetaines. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Kontaktinės informacijos redagavimas</translation> <translation id="5967867314010545767">Pašalinti iš istorijos</translation> -<translation id="5972020793760134803">Perjungti skirtuką</translation> <translation id="5975083100439434680">Tolinti</translation> <translation id="598637245381783098">Nepavyksta atidaryti mokėjimo programos</translation> <translation id="5989320800837274978">Nenurodyti nei fiksuoti įgaliotieji serveriai, nei .pac scenarijaus URL.</translation> @@ -1037,7 +1037,6 @@ <translation id="8553075262323480129">Išversti negalima, nes nepavyko nustatyti puslapio kalbos.</translation> <translation id="8557066899867184262">Kortelės saugos kodas (CVC) nurodytas kitoje kortelės pusėje.</translation> <translation id="8559762987265718583">Nepavyksta užmegzti privataus ryšio su <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, nes įrenginio data ir laikas (<ph name="DATE_AND_TIME" />) yra netinkami.</translation> -<translation id="8564985650692024650">„Chromium“ rekomenduoja iš naujo nustatyti <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> slaptažodį, jei naudojate jį kitose svetainėse.</translation> <translation id="8571890674111243710">Puslapis verčiamas į <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Pridėti tel. nr. </translation> @@ -1065,7 +1064,6 @@ <translation id="884264119367021077">Siuntimo adresas</translation> <translation id="884923133447025588">Nerasta atšaukimo mechanizmo.</translation> <translation id="885730110891505394">Bendrinimas su „Google“</translation> -<translation id="8858065207712248076">„Chrome“ rekomenduoja iš naujo nustatyti <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> slaptažodį, jei naudojate jį kitose svetainėse.</translation> <translation id="8866481888320382733">Analizuojant politikos nustatymus įvyko klaida</translation> <translation id="8870413625673593573">Neseniai uždaryta</translation> <translation id="8874824191258364635">Įveskite tinkamą kortelės numerį</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index be32c9f..7b87a377 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Atlasiet atļauju: <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Nesenas grāmatzīmes</translation> <translation id="1113869188872983271">&Atsaukt pārkārtošanu</translation> +<translation id="1125573121925420732">Tīmekļa vietņu drošības atjauninājumu laikā bieži var tikt rādīti brīdinājumi. Drīzumā tas tiks labots.</translation> <translation id="1126551341858583091">Lielums vietējā krātuvē ir <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Politikas kešatmiņa ir labā stāvoklī.</translation> <translation id="1150979032973867961">Šis serveris nevarēja pierādīt, ka šī ir vietne <ph name="DOMAIN" />; tās drošības sertifikāts netiek uzskatīts par uzticamu jūsu datora operētājsistēmā. Iespējams, tas ir nepareizas konfigurācijas dēļ vai arī kāds ir ļaunprātīgi izmantojis jūsu savienojumu.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Mēģiniet palaist Windows tīkla diagnostiku<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Atjauniniet savu sinhronizācijas ieejas frāzi.</translation> <translation id="1787142507584202372">Šeit tiks parādītas jūsu atvērtās cilnes</translation> -<translation id="1789575671122666129">Uznirstošie logi</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kartes īpašnieka vārds, uzvārds</translation> <translation id="1806541873155184440">Pievienota: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Noņemt atlasītos vienumus</translation> <translation id="277133753123645258">Nosūtīšanas veids</translation> <translation id="277499241957683684">Trūkst ierīces ieraksta.</translation> +<translation id="2781030394888168909">Eksportēt MacOS formātā</translation> <translation id="2784949926578158345">Savienojums tika atiestatīts.</translation> <translation id="2788784517760473862">Atbalstītās kredītkartes</translation> <translation id="2794233252405721443">Vietne bloķēta</translation> @@ -461,6 +462,7 @@ <translation id="4171400957073367226">Verifikācijas paraksts nav derīgs.</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Vēl <ph name="ITEM_COUNT" /> vienums}zero{Vēl <ph name="ITEM_COUNT" /> vienumi}one{Vēl <ph name="ITEM_COUNT" /> vienums}other{Vēl <ph name="ITEM_COUNT" /> vienumi}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" />: <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome iesaka atiestatīt jūsu <ph name="ORG_NAME" /> paroli, ja tā tiek izmantota citās vietnēs.</translation> <translation id="4196861286325780578">&Atcelt pārvietošanas atsaukšanu</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Pārbaudiet ugunsmūri un pretvīrusu programmu konfigurācijas<ph name="END_LINK" />.</translation> <translation id="4220128509585149162">Avārijas</translation> @@ -508,6 +510,7 @@ <translation id="4415426530740016218">Saņemšanas adrese</translation> <translation id="4424024547088906515">Šis serveris nevarēja pierādīt, ka šī ir vietne <ph name="DOMAIN" />; tās drošības sertifikāts netiek uzskatīts par uzticamu pārlūkā Chrome. Iespējams, tas ir nepareizas konfigurācijas dēļ vai arī kāds ir ļaunprātīgi izmantojis jūsu savienojumu.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> nepieņēma jūsu pieteikšanās sertifikātu, vai arī pieteikšanās sertifikāts netika iesniegts.</translation> +<translation id="4434045419905280838">Uznirstošie elem. un novirzīšana</translation> <translation id="443673843213245140">Starpniekservera lietošana ir atspējota, bet ir norādīta atklāta starpniekservera konfigurācija.</translation> <translation id="445100540951337728">Atbalstītās debetkartes</translation> <translation id="4506176782989081258">Validācijas kļūda: <ph name="VALIDATION_ERROR" /></translation> @@ -693,13 +696,13 @@ <translation id="5869405914158311789">Šī vietne nav sasniedzama</translation> <translation id="5869522115854928033">Saglabātās paroles</translation> <translation id="5893752035575986141">Tiek pieņemtas kredītkartes.</translation> +<translation id="5898382028489516745">Chromium iesaka atiestatīt jūsu <ph name="ORG_NAME" /> paroli, ja izmantojāt to citās vietnēs.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (veikta sinhronizācija)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 tiek lietots}zero{# tiek lietoti}one{# tiek lietots}other{# tiek lietoti}}</translation> <translation id="5939518447894949180">Atiestatīt</translation> <translation id="5959728338436674663">Automātiski sūtīt Google serveriem noteiktu <ph name="BEGIN_WHITEPAPER_LINK" />sistēmas informāciju un lapu saturu<ph name="END_WHITEPAPER_LINK" />, lai palīdzētu noteikt bīstamas lietotnes un vietnes. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Kontaktinformācijas rediģēšana</translation> <translation id="5967867314010545767">Noņemt no vēstures</translation> -<translation id="5972020793760134803">Pārslēgties uz cilni</translation> <translation id="5975083100439434680">Tālināt</translation> <translation id="598637245381783098">Nevar atvērt maksājumu lietotni</translation> <translation id="5989320800837274978">Nav norādīti nedz fiksēti starpniekserveri, nedz .pac skripta URL.</translation> @@ -1035,7 +1038,6 @@ <translation id="8553075262323480129">Tulkošana neizdevās, jo lapas valoda nav nosakāma.</translation> <translation id="8557066899867184262">CVC kods ir norādīts jūsu kartes aizmugurē.</translation> <translation id="8559762987265718583">Nevar izveidot privātu savienojumu ar <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, jo jūsu ierīces datums un laiks (<ph name="DATE_AND_TIME" />) nav pareizs.</translation> -<translation id="8564985650692024650">Chromium iesaka atiestatīt jūsu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> paroli, ja izmantojāt to citās vietnēs.</translation> <translation id="8571890674111243710">Notiek lapas tulkošana uz <ph name="LANGUAGE" /> valodu...</translation> <translation id="858637041960032120">Piev. tālr. nr. </translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Piegādes adrese</translation> <translation id="884923133447025588">Nav atrasts atsaukšanas mehānisms.</translation> <translation id="885730110891505394">Kopīgošana ar Google</translation> -<translation id="8858065207712248076">Chrome iesaka atiestatīt jūsu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> paroli, ja izmantojāt to citās vietnēs.</translation> <translation id="8866481888320382733">Parsējot politikas iestatījumus, radās kļūda.</translation> <translation id="8870413625673593573">Nesen aizvērtas</translation> <translation id="8874824191258364635">Ievadiet derīgu kartes numuru</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index 17f62b3..4980cf5b 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows നെറ്റ്വർക്ക് ഡയഗണോസ്റ്റിക്സ് റൺ ചെയ്തുനോക്കൂ<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രേസ് ദയവായി അപ്ഡേറ്റ് ചെയ്യുക.</translation> <translation id="1787142507584202372">നിങ്ങൾ നിലവിൽ തുറന്നിട്ടുള്ള ടാബുകൾ ഇവിടെ ദൃശ്യമാകും</translation> -<translation id="1789575671122666129">പോപ്പ്അപ്പുകൾ</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">കാർഡ് ഉടമയുടെ പേര്</translation> <translation id="1806541873155184440"><ph name="ADDED_TO_AUTOFILL_MONTH" />-ന് ചേർത്തു</translation> @@ -461,6 +460,7 @@ <translation id="4171400957073367226">മോശം പരിശോധിച്ചുറപ്പിക്കൽ സിഗ്നേച്ചർ</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> ഇനം കൂടി}other{<ph name="ITEM_COUNT" /> ഇനങ്ങൾ കൂടി}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">മറ്റ് സൈറ്റുകളിൽ നിങ്ങളുടെ <ph name="ORG_NAME" /> പാസ്വേഡ് വീണ്ടും ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, അത് റീസെറ്റ് ചെയ്യാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="4196861286325780578">&നീക്കുന്നത് വീണ്ടും ചെയ്യുക</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ഫയർവാളും ആന്റിവൈറസ് കോൺഫിഗറേഷനുകളും പരിശോധിക്കുന്നു<ph name="END_LINK" /></translation> <translation id="4220128509585149162">ക്രാഷുകള്</translation> @@ -693,13 +693,13 @@ <translation id="5869405914158311789">ഈ സൈറ്റ് ലഭ്യമാക്കാനാകുന്നില്ല</translation> <translation id="5869522115854928033">സംരക്ഷിച്ച പാസ്വേഡുകള്</translation> <translation id="5893752035575986141">ക്രെഡിറ്റ് കാർഡുകൾ സ്വീകരിക്കുന്നു.</translation> +<translation id="5898382028489516745">മറ്റ് സൈറ്റുകളിൽ നിങ്ങളുടെ <ph name="ORG_NAME" /> പാസ്വേഡ് വീണ്ടും ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, അത് റീസെറ്റ് ചെയ്യാൻ Chromium ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (സമന്വയിപ്പിച്ചത്)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ഒരെണ്ണം ഉപയോഗത്തിലുണ്ട്}other{# എണ്ണം ഉപയോഗത്തിലുണ്ട്}}</translation> <translation id="5939518447894949180">വീണ്ടും സജ്ജീകരിക്കുക</translation> <translation id="5959728338436674663">അപകടകരമായ ആപ്സുകളും സൈറ്റുകളും കണ്ടെത്താൻ സഹായിക്കുന്നതിന് ചില <ph name="BEGIN_WHITEPAPER_LINK" />സിസ്റ്റം വിവരങ്ങളും പേജ് ഉള്ളടക്കവും<ph name="END_WHITEPAPER_LINK" /> Google-ന് സ്വയമേവ അയയ്ക്കുക. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">കോൺടാക്റ്റ് വിവരം എഡിറ്റുചെയ്യുക</translation> <translation id="5967867314010545767">ചരിത്രത്തിൽ നിന്നും നീക്കംചെയ്യുക</translation> -<translation id="5972020793760134803">ടാബിലേക്ക് മാറുക</translation> <translation id="5975083100439434680">സൂം ഔട്ട്</translation> <translation id="598637245381783098">പേയ്മെന്റ് ആപ്പ് തുറക്കാനായില്ല</translation> <translation id="5989320800837274978">ഒരു സ്ഥിരമായ പ്രോക്സി സെർവർ അല്ലെങ്കിൽ ഒരു .pac സ്ക്രിപ്റ്റ് URL വ്യക്തമാക്കിയിട്ടില്ല.</translation> @@ -716,6 +716,7 @@ <translation id="6047927260846328439">സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിലേക്കോ വ്യക്തിഗത വിവരങ്ങൾ വെളിപ്പെടുത്തുന്നതിലേക്കോ നിങ്ങളെ തന്ത്രപൂർവ്വം നയിച്ചുകൊണ്ട്, ഈ ഉള്ളടക്കം നിങ്ങളെ കബളിപ്പിക്കാൻ ശ്രമിച്ചേക്കാം. <ph name="BEGIN_LINK" />എന്തായാലും കാണിക്കുക<ph name="END_LINK" /></translation> <translation id="6051221802930200923"><ph name="SITE" /> എന്ന വെബ്സൈറ്റ് സർട്ടിഫിക്കറ്റ് പിന്നിംഗ് ഉപയോഗിക്കുന്നതിനാൽ നിങ്ങൾക്കിപ്പോൾ അത് സന്ദർശിക്കാനാകില്ല. നെറ്റ്വർക്ക് പിശകുകളും ആക്രമണങ്ങളും സാധാരണയായി താൽക്കാലികമായിരിക്കും, അതിനാൽ ഈ പേജ് മിക്കവാറും പിന്നീട് പ്രവർത്തിക്കും.</translation> <translation id="6059925163896151826">USB ഉപകരണങ്ങൾ</translation> +<translation id="6071091556643036997">സാധുതയില്ലാത്ത നയ തരം.</translation> <translation id="6080696365213338172">അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് നിങ്ങൾ ഉള്ളടക്കം ആക്സസ്സുചെയ്തു. നിങ്ങൾ <ph name="DOMAIN" /> എന്നതിലേക്ക് നൽകുന്ന ഡാറ്റ അഡ്മിനിസ്ട്രേറ്റർക്ക് തടയാനാവും.</translation> <translation id="610911394827799129">നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation> <translation id="6144381551823904650">{COUNT,plural, =0{ഒന്നുമില്ല}=1{ഒരു പാസ്വേഡ് (സമന്വയിപ്പിച്ചത്)}other{# പാസ്വേഡുകൾ (സമന്വയിപ്പിച്ചത്)}}</translation> @@ -1032,7 +1033,6 @@ <translation id="8553075262323480129">പേജിന്റെ ഭാഷ നിര്ണ്ണയിക്കാന് കഴിയാത്തതിനാല് വിവര്ത്തനം പരാജയപ്പെട്ടു.</translation> <translation id="8557066899867184262">കാർഡിന് പിന്നിലാണ് CVC രേഖപ്പെടുത്തിയിരിക്കുന്നത്.</translation> <translation id="8559762987265718583">നിങ്ങളുടെ ഉപകരണത്തിന്റെ തീയതിയും സമയവും (<ph name="DATE_AND_TIME" />) തെറ്റായതിനാൽ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> എന്നതിലേക്കുള്ള സ്വകാര്യ കണക്ഷൻ സ്ഥാപിക്കാനാവില്ല.</translation> -<translation id="8564985650692024650">മറ്റ് സൈറ്റുകളിൽ നിങ്ങൾ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> പാസ്വേഡ് പുനരുപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, അത് റീസെറ്റ് ചെയ്യാൻ Chromium ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="8571890674111243710"><ph name="LANGUAGE" /> ലേക്ക് പേജ് വിവര്ത്തനം ചെയ്യുന്നു...</translation> <translation id="858637041960032120">ഫോൺ നം. ചേർക്കൂ </translation> @@ -1060,7 +1060,6 @@ <translation id="884264119367021077">ഷിപ്പിംഗ് വിലാസം</translation> <translation id="884923133447025588">അസാധുവാക്കല് പ്രവര്ത്തനം കണ്ടെത്തിയിട്ടില്ല.</translation> <translation id="885730110891505394">Google-മായി പങ്കിടുന്നു</translation> -<translation id="8858065207712248076">മറ്റ് സൈറ്റുകളിൽ നിങ്ങൾ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> പാസ്വേഡ് പുനരുപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, അത് പുനഃസജ്ജീകരിക്കാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="8866481888320382733">നയ ക്രമീകരണങ്ങൾ പാഴ്സുചെയ്യുന്നതിൽ പിശക്</translation> <translation id="8870413625673593573">സമീപകാലത്ത് അടച്ചവ</translation> <translation id="8874824191258364635">ശരിയായ കാർഡ് നമ്പർ നൽകുക</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index d1c23d4..a4b6f98 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows नेटवर्क निदान चालवून पहा<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">कृपया आपले संंकालित सांकेतिक वाक्यांश अपडेट करा.</translation> <translation id="1787142507584202372">आपले खुले टॅब येथे दिसतात</translation> -<translation id="1789575671122666129">पॉपअप</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">कार्डधारकाचे नाव</translation> <translation id="1806541873155184440">जोडले: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">खराब पडताळणी स्वाक्षरी</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{आणखी <ph name="ITEM_COUNT" /> आयटम}one{आणखी <ph name="ITEM_COUNT" /> आयटम}other{आणखी <ph name="ITEM_COUNT" /> आयटम}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">अन्य साइटवर तुमचा <ph name="ORG_NAME" /> पासवर्ड पुन्हा वापरल्यास Chrome तो रीसेट करण्याची शिफारस करतो.</translation> <translation id="4196861286325780578">&हलवा पुन्हा करा</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />फायरवॉल आणि अँटीव्हायरस कॉन्फिगरेशन तपासणे<ph name="END_LINK" /></translation> <translation id="4220128509585149162">क्रॅश होते</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">या साइटवर पोहचणे शक्य नाही</translation> <translation id="5869522115854928033">सेव्ह केलेले पासवर्ड</translation> <translation id="5893752035575986141">क्रेडिट कार्डे स्वीकारली जातात.</translation> +<translation id="5898382028489516745">अन्य साइटवर तुमचा <ph name="ORG_NAME" /> पासवर्ड पुन्हा वापरल्यास Chromium तो रीसेट करण्याची शिफारस करतो.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (सिंक केलेले)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 वापरात आहे}one{# वापरात आहे}other{# वापरात आहेत}}</translation> <translation id="5939518447894949180">रीसेट करा</translation> <translation id="5959728338436674663">धोकादायक अॅप्स आणि साइट शोधण्यात मदत करण्यासाठी काही <ph name="BEGIN_WHITEPAPER_LINK" />सिस्टम माहिती आणि पृष्ठ सामग्री<ph name="END_WHITEPAPER_LINK" /> स्वयंचलितपणे Google कडे पाठवा. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">संपर्क माहिती संपादित करा</translation> <translation id="5967867314010545767">इतिहासातून काढा</translation> -<translation id="5972020793760134803">टॅबवर स्विच करा</translation> <translation id="5975083100439434680">झूम कमी करा</translation> <translation id="598637245381783098">पेमेंट अॅप उघडू शकत नाही</translation> <translation id="5989320800837274978">निश्चित प्रॉक्सी सर्व्हर किंवा .pac स्क्रिप्ट URL देखील निर्दिष्ट केलेली नाही.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">भाषांतर करण्यात अयशस्वी कारण पृष्ठाची भाषा निर्धारित करणे शक्य नाही.</translation> <translation id="8557066899867184262">CVV तुमच्या कार्डाच्या मागील बाजूस दिलेला असतो.</translation> <translation id="8559762987265718583">आपल्या डिव्हाइसची तारीख आणि वेळ (<ph name="DATE_AND_TIME" />) चुकीची असल्याने <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> सह खाजगी कनेक्शन इंस्टॉल केले जाऊ शकले नाही.</translation> -<translation id="8564985650692024650">जर तुम्ही तुमच्या <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्डचा इतर साइटवर पुन्हा वापर केला असेल तर Chromium तुम्हाला तो रीसेट करण्याची शिफारस करतो.</translation> <translation id="8571890674111243710"><ph name="LANGUAGE" /> मध्ये पृष्ठ अनुवादित करत आहे...</translation> <translation id="858637041960032120">फोन नंबर जोडा</translation> <translation id="859285277496340001">प्रमाणपत्र निरस्त झाले आहे किंवा नाही हे तपासण्यासाठी प्रणाली निर्दिष्ट करत नाही.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">वहनावळ पत्ता</translation> <translation id="884923133447025588">कोणतीही निरस्त करण्याची प्रणाली आढळली नाही.</translation> <translation id="885730110891505394">Google सह सामायिकरण</translation> -<translation id="8858065207712248076">जर तुम्ही तुमच्या <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्डचा इतर साइटवर पुन्हा वापर केला असेल तर Chrome तुम्हाला तो रीसेट करण्याची शिफारस करतो.</translation> <translation id="8866481888320382733">धोरण सेटिंग्ज विश्लेषित करताना एरर</translation> <translation id="8870413625673593573">अलीकडे बंद</translation> <translation id="8874824191258364635">वैध कार्ड नंबर एंटर करा</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 9ebfcb89..35f0c6f 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Pilih kebenaran untuk <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Penanda halaman terbaharu dilawati</translation> <translation id="1113869188872983271">&Buat asal susun semula</translation> +<translation id="1125573121925420732">Amaran mungkin biasa dipaparkan semasa tapak web mengemas kini keselamatannya. Ini akan diperbaik tidak lama lagi.</translation> <translation id="1126551341858583091">Saiz pada storan setempat ialah <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Cache dasar OK</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Cuba jalankan Diagnostik Rangkaian Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Sila kemas kini frasa laluan segerak anda.</translation> <translation id="1787142507584202372">Tab yang dibuka dipaparkan di sini</translation> -<translation id="1789575671122666129">Pop timbul</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nama Pemegang Kad</translation> <translation id="1806541873155184440">Ditambahkan <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Buang item yang dipilih</translation> <translation id="277133753123645258">Kaedah penghantaran</translation> <translation id="277499241957683684">Tiada rekod peranti</translation> +<translation id="2781030394888168909">Eksport MacOS</translation> <translation id="2784949926578158345">Sambungan ditetapkan semula.</translation> <translation id="2788784517760473862">Kad kredit yang diterima</translation> <translation id="2794233252405721443">Tapak disekat</translation> @@ -463,6 +464,7 @@ <translation id="4171400957073367226">Tandatangan pengesahan tidak sah</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> lagi item}other{<ph name="ITEM_COUNT" /> lagi item}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome mengesyorkan anda supaya menetapkan semula kata laluan <ph name="ORG_NAME" /> jika anda menggunakan kata laluan itu semula pada tapak lain.</translation> <translation id="4196861286325780578">&Buat semula pindahkan</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Menyemak konfigurasi tembok api dan antivirus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Nahas</translation> @@ -510,6 +512,7 @@ <translation id="4415426530740016218">Alamat Pengambilan</translation> <translation id="4424024547088906515">Pelayan ini tidak dapat membuktikan bahawa domainnya ialah <ph name="DOMAIN" />; sijil keselamatannya tidak dipercayai oleh Chrome. Ini mungkin disebabkan oleh kesilapan konfigurasi atau penyerang memintasi sambungan anda.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> tidak menerima sijil log masuk anda atau sijil log masuk mungkin tidak diberikan.</translation> +<translation id="4434045419905280838">Tetingkap timbul dan ubah hala</translation> <translation id="443673843213245140">Penggunaan proksi dilumpuhkan tetapi konfigurasi proksi yang jelas dinyatakan.</translation> <translation id="445100540951337728">Kad debit yang diterima</translation> <translation id="4506176782989081258">Ralat pengesahan: <ph name="VALIDATION_ERROR" /></translation> @@ -695,13 +698,13 @@ <translation id="5869405914158311789">Tapak ini tidak dapat dicapai</translation> <translation id="5869522115854928033">Kata laluan disimpan</translation> <translation id="5893752035575986141">Kad kredit diterima.</translation> +<translation id="5898382028489516745">Chromium mengesyorkan anda supaya menetapkan semula kata laluan <ph name="ORG_NAME" /> jika anda menggunakan kata laluan itu semula pada tapak lain.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (disegerakkan)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 sedang digunakan}other{# sedang digunakan}}</translation> <translation id="5939518447894949180">Tetapkan semula</translation> <translation id="5959728338436674663">Hantar secara automatik beberapa <ph name="BEGIN_WHITEPAPER_LINK" />maklumat sistem dan kandungan halaman<ph name="END_WHITEPAPER_LINK" /> kepada Google untuk membantu anda mengesan apl dan tapak yang berbahaya. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edit Maklumat Hubungan</translation> <translation id="5967867314010545767">Buang daripada sejarah</translation> -<translation id="5972020793760134803">Beralih ke tab</translation> <translation id="5975083100439434680">Zum keluar</translation> <translation id="598637245381783098">Tidak dapat membuka apl pembayaran</translation> <translation id="5989320800837274978">Pelayan proksi tetap begitu juga URL skrip .pac, kedua-duanya tidak ditetapkan.</translation> @@ -1037,7 +1040,6 @@ <translation id="8553075262323480129">Gagal terjemahan kerana bahasa halaman tidak dapat ditentukan.</translation> <translation id="8557066899867184262">CVC terletak di belakang kad anda.</translation> <translation id="8559762987265718583">Sambungan peribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak boleh diwujudkan kerana tarikh dan masa peranti anda (<ph name="DATE_AND_TIME" />) tidak betul.</translation> -<translation id="8564985650692024650">Chromium mengesyorkan penetapan semula kata laluan <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> jika anda menggunakan semula kata laluan itu di tapak lain.</translation> <translation id="8571890674111243710">Menterjemah halaman ke <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Tambah no. tel. </translation> @@ -1065,7 +1067,6 @@ <translation id="884264119367021077">Alamat penghantaran</translation> <translation id="884923133447025588">Tiada mekanisme pembatalan dijumpai.</translation> <translation id="885730110891505394">Berkongsi dengan Google</translation> -<translation id="8858065207712248076">Chrome mengesyorkan penetapan semula kata laluan <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> jika anda menggunakan semula kata laluan itu di tapak lain.</translation> <translation id="8866481888320382733">Ralat semasa menghuraikan tetapan dasar</translation> <translation id="8870413625673593573">Ditutup Baru-baru Ini</translation> <translation id="8874824191258364635">Masukkan nombor kad yang sah</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 17055ae..0eedca3 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Rechten selecteren voor <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Onlangs bezochte bladwijzers</translation> <translation id="1113869188872983271">&Volgorde wijzigen ongedaan maken</translation> +<translation id="1125573121925420732">Wanneer de beveiliging van websites wordt geüpdatet, worden vaak waarschuwingen weergegeven. Dit wordt binnenkort verbeterd.</translation> <translation id="1126551341858583091">De grootte in de lokale opslag is <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Cachegeheugen van beleid is OK</translation> <translation id="1150979032973867961">De server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het beveiligingscertificaat van de server wordt niet vertrouwd door het besturingssysteem van je computer. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Voer Windows Netwerkcontrole uit<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Update je wachtwoordzin voor synchronisatie.</translation> <translation id="1787142507584202372">Je geopende tabbladen worden hier weergegeven</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Naam kaarthouder</translation> <translation id="1806541873155184440">Toegevoegd: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Geselecteerde items verwijderen</translation> <translation id="277133753123645258">Verzendmethode</translation> <translation id="277499241957683684">Apparaatrecord ontbreekt</translation> +<translation id="2781030394888168909">Exporteren naar Mac OS</translation> <translation id="2784949926578158345">De verbinding is opnieuw ingesteld.</translation> <translation id="2788784517760473862">Geaccepteerde creditcards</translation> <translation id="2794233252405721443">Site geblokkeerd</translation> @@ -458,6 +459,7 @@ <translation id="4171400957073367226">Onjuiste verificatiehandtekening</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Nog <ph name="ITEM_COUNT" /> item}other{Nog <ph name="ITEM_COUNT" /> items}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome raadt je aan het wachtwoord voor je account <ph name="ORG_NAME" /> opnieuw in te stellen als je het voor andere sites hebt hergebruikt.</translation> <translation id="4196861286325780578">&Opnieuw verplaatsen</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Controleer firewall- en antivirusconfiguraties<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Crashes</translation> @@ -505,6 +507,7 @@ <translation id="4415426530740016218">Ophaaladres</translation> <translation id="4424024547088906515">De server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het beveiligingscertificaat van de server wordt niet vertrouwd door Chrome. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> heeft je inlogcertificaat niet geaccepteerd of er is geen inlogcertificaat geleverd.</translation> +<translation id="4434045419905280838">Pop-ups en omleidingen</translation> <translation id="443673843213245140">Het gebruik van een proxy is uitgeschakeld, maar er is wel een expliciete proxyconfiguratie opgegeven.</translation> <translation id="445100540951337728">Geaccepteerde betaalpassen</translation> <translation id="4506176782989081258">Validatiefout: <ph name="VALIDATION_ERROR" /></translation> @@ -690,13 +693,13 @@ <translation id="5869405914158311789">Deze site is niet bereikbaar</translation> <translation id="5869522115854928033">Opgeslagen wachtwoorden</translation> <translation id="5893752035575986141">Creditcards worden geaccepteerd.</translation> +<translation id="5898382028489516745">Chromium raadt je aan het wachtwoord voor <ph name="ORG_NAME" /> te resetten als je het voor andere sites hebt hergebruikt.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (gesynchroniseerd)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in gebruik}other{# in gebruik}}</translation> <translation id="5939518447894949180">Resetten</translation> <translation id="5959728338436674663">Bepaalde <ph name="BEGIN_WHITEPAPER_LINK" />systeeminformatie en paginacontent<ph name="END_WHITEPAPER_LINK" /> automatisch verzenden naar Google om te helpen bij de detectie van gevaarlijke apps en sites. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Contactgegevens bewerken</translation> <translation id="5967867314010545767">Verwijderen uit geschiedenis</translation> -<translation id="5972020793760134803">Overschakelen naar tabblad</translation> <translation id="5975083100439434680">Uitzoomen</translation> <translation id="598637245381783098">Kan betaal-app niet openen</translation> <translation id="5989320800837274978">Er worden geen vaste proxyservers en geen pac-script-URL gespecificeerd.</translation> @@ -1031,7 +1034,6 @@ <translation id="8553075262323480129">De vertaling is mislukt omdat de taal van de pagina niet kan worden bepaald.</translation> <translation id="8557066899867184262">De CVC-code staat op de achterkant van je kaart.</translation> <translation id="8559762987265718583">Er kan geen privéverbinding met <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tot stand worden gebracht, omdat de datum en tijd van je apparaat (<ph name="DATE_AND_TIME" />) onjuist zijn.</translation> -<translation id="8564985650692024650">Chromium raadt je aan het wachtwoord voor <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> opnieuw in te stellen als je het voor andere sites hebt hergebruikt.</translation> <translation id="8571890674111243710">Pagina wordt vertaald in het <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Telnr. toevoegen</translation> <translation id="859285277496340001">Er wordt in het certificaat geen methode gespecificeerd waarmee kan worden gecontroleerd of het certificaat is ingetrokken.</translation> @@ -1058,7 +1060,6 @@ <translation id="884264119367021077">Verzendadres</translation> <translation id="884923133447025588">Geen intrekkingsmechanisme gevonden.</translation> <translation id="885730110891505394">Delen met Google</translation> -<translation id="8858065207712248076">Chrome raadt je aan het wachtwoord voor <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> opnieuw in te stellen als je het voor andere sites hebt hergebruikt.</translation> <translation id="8866481888320382733">Fout bij het parseren van beleidsinstellingen</translation> <translation id="8870413625673593573">Recent gesloten</translation> <translation id="8874824191258364635">Geef een geldig kaartnummer op</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index f6b2e75..ff69e3c6 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Prøv å kjøre Windows Nettverksdiagnose<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Oppdater passordfrasen for synkronisering.</translation> <translation id="1787142507584202372">De åpne fanene dine vises her</translation> -<translation id="1789575671122666129">Forgrunnsvinduer</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kortinnehaverens navn</translation> <translation id="1806541873155184440">Lagt til: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Ugyldig bekreftelsessignatur</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> element til}other{<ph name="ITEM_COUNT" /> elementer til}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome anbefaler at du tilbakestiller passordet ditt for <ph name="ORG_NAME" /> hvis du også har brukt det på andre nettsteder.</translation> <translation id="4196861286325780578">&Flytt likevel</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Sjekk brannmur- og antiviruskonfigurasjonen<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Kræsj</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Dette nettstedet er ikke tilgjengelig</translation> <translation id="5869522115854928033">Lagrede passord</translation> <translation id="5893752035575986141">Kredittkort godtas.</translation> +<translation id="5898382028489516745">Chromium anbefaler at du tilbakestiller passordet ditt for <ph name="ORG_NAME" /> hvis du også har brukt det på andre nettsteder.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkronisert)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 er i bruk}other{# er i bruk}}</translation> <translation id="5939518447894949180">Tilbakestill</translation> <translation id="5959728338436674663">Send automatisk noe <ph name="BEGIN_WHITEPAPER_LINK" />systeminformasjon og sideinnhold<ph name="END_WHITEPAPER_LINK" /> til Google for å bidra til å oppdage farlige apper og nettsteder. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Endre kontaktinformasjonen</translation> <translation id="5967867314010545767">Fjern fra loggen</translation> -<translation id="5972020793760134803">Bytt til fane</translation> <translation id="5975083100439434680">Zoom ut</translation> <translation id="598637245381783098">Kan ikke åpne betalingsappen</translation> <translation id="5989320800837274978">Verken statiske proxytjenere eller en nettadresse med .pac-skript er angitt.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">Oversettelsen mislyktes fordi sidens språk ikke kunne fastslås.</translation> <translation id="8557066899867184262">CVC-koden finner du på baksiden av kortet.</translation> <translation id="8559762987265718583">En privat tilkobling til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> kunne ikke etableres fordi datoen og klokkeslettet (<ph name="DATE_AND_TIME" />) er feil på enheten.</translation> -<translation id="8564985650692024650">Chromium anbefaler at du tilbakestiller passordet ditt for <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> hvis du også har brukt det på andre nettsteder.</translation> <translation id="8571890674111243710">Oversett siden til <ph name="LANGUAGE" /></translation> <translation id="858637041960032120">Legg til telefonnummer</translation> <translation id="859285277496340001">Sertifikatet spesifiserer ikke en mekanisme for å kontrollere hvorvidt det har blitt tilbakekalt.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">Leveringsadresse</translation> <translation id="884923133447025588">Finner ingen tilbakekallingsmekanisme.</translation> <translation id="885730110891505394">Deling med Google</translation> -<translation id="8858065207712248076">Chrome anbefaler at du tilbakestiller passordet ditt for <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> hvis du også har brukt det på andre nettsteder.</translation> <translation id="8866481888320382733">Analysefeil i angivelsen av enhetrsinnstillinger</translation> <translation id="8870413625673593573">Nylig lukket</translation> <translation id="8874824191258364635">Angi et gyldig kortnummer</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 564b3ba..e75deac 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Wybierz uprawnienia dla: <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Ostatnio używane zakładki</translation> <translation id="1113869188872983271">&Cofnij zmianę kolejności</translation> +<translation id="1125573121925420732">Ostrzeżenia mogą pojawiać się często, dopóki witryny internetowe nie zaktualizują swoich zabezpieczeń. Wkrótce powinno się to poprawić.</translation> <translation id="1126551341858583091">Rozmiar w pamięci lokalnej: <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Pamięć podręczna zasad: OK</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Uruchom Diagnostykę sieci systemu Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Zaktualizuj swoje hasło synchronizacji.</translation> <translation id="1787142507584202372">Tutaj pojawiają się otwarte karty</translation> -<translation id="1789575671122666129">Wyskakujące okienka</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Imię i nazwisko posiadacza karty</translation> <translation id="1806541873155184440">Dodano: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Usuń wybrane elementy</translation> <translation id="277133753123645258">Metoda wysyłki</translation> <translation id="277499241957683684">Brak rekordu urządzenia</translation> +<translation id="2781030394888168909">Eksportuj (MacOS)</translation> <translation id="2784949926578158345">Połączenie zostało zresetowane.</translation> <translation id="2788784517760473862">Akceptowane karty kredytowe</translation> <translation id="2794233252405721443">Strona zablokowana</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Nieprawidłowy podpis weryfikujący</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Jeszcze <ph name="ITEM_COUNT" /> element}few{Jeszcze <ph name="ITEM_COUNT" /> elementy}many{Jeszcze <ph name="ITEM_COUNT" /> elementów}other{Jeszcze <ph name="ITEM_COUNT" /> elementu}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome zaleca zresetowanie hasła, którego używasz w: <ph name="ORG_NAME" />, jeśli zostało użyte na innej stronie.</translation> <translation id="4196861286325780578">&Ponów przeniesienie</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Sprawdź konfigurację zapory sieciowej i oprogramowania antywirusowego<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Awarie</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Adres odbioru</translation> <translation id="4424024547088906515">Ten serwer nie mógł udowodnić, że należy do <ph name="DOMAIN" />. Jego certyfikat bezpieczeństwa nie jest zaufany w Chrome. Może to być spowodowane błędną konfiguracją lub przechwyceniem połączenia przez atakującego.</translation> <translation id="4432688616882109544">Serwer <ph name="HOST_NAME" /> nie zaakceptował lub nie otrzymał Twojego certyfikatu logowania.</translation> +<translation id="4434045419905280838">Pop-upy i przekierowania</translation> <translation id="443673843213245140">Korzystanie z serwera proxy jest wyłączone, ale podano konfigurację proxy.</translation> <translation id="445100540951337728">Akceptowane karty debetowe</translation> <translation id="4506176782989081258">Błąd sprawdzania poprawności: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Ta witryna jest nieosiągalna</translation> <translation id="5869522115854928033">Zapisane hasła</translation> <translation id="5893752035575986141">Karty kredytowe są akceptowane.</translation> +<translation id="5898382028489516745">Chromium zaleca zresetowanie hasła, którego używasz w: <ph name="ORG_NAME" />, jeśli zostało użyte na innej stronie.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (zsynchronizowane)</translation> <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="5939518447894949180">Resetuj</translation> <translation id="5959728338436674663">Automatycznie wysyłaj do Google niektóre <ph name="BEGIN_WHITEPAPER_LINK" />informacje o systemie i część zawartości stron<ph name="END_WHITEPAPER_LINK" />, by pomóc w wykrywaniu niebezpiecznych aplikacji i witryn. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edytuj dane kontaktowe</translation> <translation id="5967867314010545767">Usuń z historii</translation> -<translation id="5972020793760134803">Przełącz na kartę</translation> <translation id="5975083100439434680">Pomniejsz</translation> <translation id="598637245381783098">Nie można otworzyć aplikacji do płatności</translation> <translation id="5989320800837274978">Nie określono ani stałych serwerów proxy, ani adresu URL skryptu PAC.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Tłumaczenie nie powiodło się, ponieważ nie można określić języka strony.</translation> <translation id="8557066899867184262">Kod CVC znajduje się na odwrocie karty.</translation> <translation id="8559762987265718583">Nie można nawiązać prywatnego połączenia z <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, ponieważ data i godzina (<ph name="DATE_AND_TIME" />) ustawione na urządzeniu są nieprawidłowe.</translation> -<translation id="8564985650692024650">Chromium zaleca zresetowanie hasła, którego używasz w: <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, jeśli zostało użyte na innej stronie.</translation> <translation id="8571890674111243710">Trwa tłumaczenie strony na język: <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Dodaj numer telefonu</translation> <translation id="859285277496340001">Certyfikat nie określa mechanizmu do sprawdzania, czy został on unieważniony.</translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Adres wysyłki</translation> <translation id="884923133447025588">Nie znaleziono mechanizmu unieważniania.</translation> <translation id="885730110891505394">Udostępnianie Google</translation> -<translation id="8858065207712248076">Chrome zaleca zresetowanie hasła, którego używasz w: <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, jeśli zostało użyte na innej stronie.</translation> <translation id="8866481888320382733">Podczas przetwarzania ustawień zasady wystąpił błąd</translation> <translation id="8870413625673593573">Ostatnio zamknięte</translation> <translation id="8874824191258364635">Wpisz prawidłowy numer karty</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 4412a8a..6438a9b8 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Tente executar o Diagnóstico de Rede do Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Favor atualizar sua senha de sincronização.</translation> <translation id="1787142507584202372">Suas guias abertas são exibidas aqui</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nome do titular do cartão</translation> <translation id="1806541873155184440">Adicionado em: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Assinatura de verificação inválida</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Mais <ph name="ITEM_COUNT" /> item}one{Mais <ph name="ITEM_COUNT" /> item}other{Mais <ph name="ITEM_COUNT" /> itens}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" />: <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">O Chrome recomenda redefinir sua senha de <ph name="ORG_NAME" /> se você a reutilizou em outros sites.</translation> <translation id="4196861286325780578">&Refazer mover</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Verificar as configurações do antivírus e firewall<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Falhas</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Não é possível acessar esse site</translation> <translation id="5869522115854928033">Senhas salvas</translation> <translation id="5893752035575986141">Cartões de crédito são aceitos.</translation> +<translation id="5898382028489516745">O Chromium recomenda redefinir sua senha de <ph name="ORG_NAME" /> se você a reutilizou em outros sites.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizado)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 em uso}one{# em uso}other{# em uso}}</translation> <translation id="5939518447894949180">Redefinir</translation> <translation id="5959728338436674663">Enviar automaticamente <ph name="BEGIN_WHITEPAPER_LINK" />algumas informações do sistema e conteúdos de página<ph name="END_WHITEPAPER_LINK" /> ao Google para ajudar a detectar sites e apps perigosos. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Edite as Informações de Contato</translation> <translation id="5967867314010545767">Remover do histórico</translation> -<translation id="5972020793760134803">Alternar guia</translation> <translation id="5975083100439434680">Diminuir zoom</translation> <translation id="598637245381783098">Não foi possível abrir app de pagamento</translation> <translation id="5989320800837274978">Nem os servidores proxy fixos nem o URL de script .pac foram especificados.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">A tradução falhou porque não foi possível determinar o idioma da página.</translation> <translation id="8557066899867184262">O CVC está localizado atrás do seu cartão.</translation> <translation id="8559762987265718583">Não é possível estabelecer uma conexão privada com <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora do seu dispositivo (<ph name="DATE_AND_TIME" />) estão incorretas.</translation> -<translation id="8564985650692024650">O Chromium recomenda redefinir sua senha de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se você a reutilizou em outros sites.</translation> <translation id="8571890674111243710">Traduzindo página para <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Ad. nº. telefone </translation> @@ -1064,7 +1063,6 @@ <translation id="884264119367021077">Endereço de entrega</translation> <translation id="884923133447025588">Nenhum mecanismo de revogação encontrado.</translation> <translation id="885730110891505394">Compartilhar com o Google</translation> -<translation id="8858065207712248076">O Chrome recomenda redefinir sua senha de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se você a reutilizou em outros sites.</translation> <translation id="8866481888320382733">Configurações da política de análise de erros</translation> <translation id="8870413625673593573">Recentemente fechadas</translation> <translation id="8874824191258364635">Informe um número de cartão válido</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index 0c84734..737a009 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Experimente executar o Diagnóstico de rede do Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Atualize a frase de acesso de sincronização.</translation> <translation id="1787142507584202372">Os separadores abertos aparecem aqui</translation> -<translation id="1789575671122666129">Pop-ups</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Nome do titular do cartão</translation> <translation id="1806541873155184440">Adicionado a <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Assinatura de verificação incorreta</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Mais <ph name="ITEM_COUNT" /> item}other{Mais <ph name="ITEM_COUNT" /> itens}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">O Chrome recomenda a reposição da palavra-passe do serviço <ph name="ORG_NAME" /> se a tiver reutilizado noutros sites.</translation> <translation id="4196861286325780578">&Refazer movimentação</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Verificar as configurações da firewall e de antivírus<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Erros</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Não é possível aceder a este site</translation> <translation id="5869522115854928033">Palavras-passe guardadas</translation> <translation id="5893752035575986141">Os cartões de crédito são admitidos.</translation> +<translation id="5898382028489516745">O Chromium recomenda a reposição da palavra-passe do serviço <ph name="ORG_NAME" /> se a tiver reutilizado noutros sites.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizados)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 em utilização}other{# em utilização}}</translation> <translation id="5939518447894949180">Repor</translation> <translation id="5959728338436674663">Enviar automaticamente algumas <ph name="BEGIN_WHITEPAPER_LINK" />informações do sistema e conteúdos de páginas<ph name="END_WHITEPAPER_LINK" /> para a Google de modo a ajudar a detetar aplicações e sites perigosos. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Editar informações de contacto</translation> <translation id="5967867314010545767">Remover do histórico</translation> -<translation id="5972020793760134803">Mudar para o separador</translation> <translation id="5975083100439434680">Reduzir</translation> <translation id="598637245381783098">Não é possível abrir a aplicação de pagamento</translation> <translation id="5989320800837274978">Não foram especificados servidores proxy fixos nem um URL de script .pac.</translation> @@ -1035,7 +1035,6 @@ <translation id="8553075262323480129">A tradução falhou porque não foi possível determinar o idioma da página.</translation> <translation id="8557066899867184262">O Código de Segurança/CVC está localizado no verso do cartão.</translation> <translation id="8559762987265718583">Não é possível estabelecer uma ligação privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora do seu dispositivo (<ph name="DATE_AND_TIME" />) estão incorretas.</translation> -<translation id="8564985650692024650">O Chromium recomenda a reposição da palavra-passe da <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se a tiver reutilizado noutros sites.</translation> <translation id="8571890674111243710">A traduzir a página para <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Adic. n.º telef. </translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">Endereço para envio</translation> <translation id="884923133447025588">Não foi encontrado qualquer mecanismo de revogação.</translation> <translation id="885730110891505394">Partilha com a Google</translation> -<translation id="8858065207712248076">O Chrome recomenda a reposição da palavra-passe da <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se a tiver reutilizado noutros sites.</translation> <translation id="8866481888320382733">Erro ao analisar as definições da política</translation> <translation id="8870413625673593573">Fechadas recentemente</translation> <translation id="8874824191258364635">Introduza um número de cartão válido</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index cb8306b..e153677 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Rulează Diagnostice rețea Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Actualizează expresia de acces pentru sincronizare.</translation> <translation id="1787142507584202372">Filele deschise sunt afișate aici</translation> -<translation id="1789575671122666129">Ferestre de tip pop-up</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Numele titularului cardului</translation> <translation id="1806541873155184440">Adăugat pe <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Semnătură de verificare nevalidă</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Încă <ph name="ITEM_COUNT" /> articol}few{Încă <ph name="ITEM_COUNT" /> articole}other{Încă <ph name="ITEM_COUNT" /> de articole}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome îți recomandă să resetezi parola pentru <ph name="ORG_NAME" /> dacă ai folosit-o și pe alte site-uri.</translation> <translation id="4196861286325780578">&Repetați mutarea</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />să verifici configurarea pentru firewall și antivirus;<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Blocări</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Acest site nu poate fi accesat</translation> <translation id="5869522115854928033">Parole salvate</translation> <translation id="5893752035575986141">Se acceptă carduri de credit.</translation> +<translation id="5898382028489516745">Chromium îți recomandă să resetezi parola pentru <ph name="ORG_NAME" /> dacă ai folosit-o și pe alte site-uri.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sincronizat)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 în uz}few{# în uz}other{# în uz}}</translation> <translation id="5939518447894949180">Resetează</translation> <translation id="5959728338436674663">Trimite automat anumite <ph name="BEGIN_WHITEPAPER_LINK" />informații despre sistem și conținutul paginii<ph name="END_WHITEPAPER_LINK" /> la Google pentru a detecta aplicațiile și site-urile periculoase. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Editează informațiile de contact</translation> <translation id="5967867314010545767">Eliminați din istoric</translation> -<translation id="5972020793760134803">Comută la fila</translation> <translation id="5975083100439434680">Micșorează</translation> <translation id="598637245381783098">Nu se poate deschide aplicația de plată</translation> <translation id="5989320800837274978">Nu sunt specificate nici servere proxy fixe și nici o adresă URL pentru scripturi .pac.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">Traducerea nu a reușit, deoarece nu a putut fi stabilită limba paginii.</translation> <translation id="8557066899867184262">Codul CVC se află pe spatele cardului.</translation> <translation id="8559762987265718583">O conexiune privată la <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nu poate fi stabilită, deoarece data și ora dispozitivului (<ph name="DATE_AND_TIME" />) sunt incorecte.</translation> -<translation id="8564985650692024650">Chromium îți recomandă să resetezi parola pentru <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> dacă ai folosit-o și pe alte site-uri.</translation> <translation id="8571890674111243710">Se traduce pagina în <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Adăugați telefon </translation> @@ -1064,7 +1063,6 @@ <translation id="884264119367021077">Adresa de expediere</translation> <translation id="884923133447025588">Nu a fost găsit niciun mecanism de revocare.</translation> <translation id="885730110891505394">Permiterea accesului pentru Google</translation> -<translation id="8858065207712248076">Chrome îți recomandă să resetezi parola pentru <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> dacă ai folosit-o și pe alte site-uri.</translation> <translation id="8866481888320382733">Eroare la analizarea setărilor pentru politică</translation> <translation id="8870413625673593573">Închise recent</translation> <translation id="8874824191258364635">Introdu un număr de card valid</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index 4df3bfb..702768fc 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504"><ph name="PERMISSION_NAME" />: выберите разрешение</translation> <translation id="1111153019813902504">Недавние закладки</translation> <translation id="1113869188872983271">&Отменить изменение порядка</translation> +<translation id="1125573121925420732">Пока на сайтах обновляются сертификаты безопасности, предупреждения временно могут появляться чаще обычного.</translation> <translation id="1126551341858583091">Место на карте памяти: <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">В кеше политики ошибок не найдено</translation> <translation id="1150979032973867961">Не удалось подтвердить, что это сервер <ph name="DOMAIN" />. Операционная система компьютера не доверяет его сертификату безопасности. Возможно, сервер настроен неправильно или кто-то пытается перехватить ваши данные.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Выполните диагностику сети в Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Обновите кодовую фразу для синхронизации.</translation> <translation id="1787142507584202372">Здесь появятся открытые вкладки.</translation> -<translation id="1789575671122666129">Всплывающие окна</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Владелец карты</translation> <translation id="1806541873155184440">Добавлена <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Удалить выбранные элементы</translation> <translation id="277133753123645258">Способ доставки</translation> <translation id="277499241957683684">Устройство не зарегистрировано</translation> +<translation id="2781030394888168909">Экспортировать для macOS</translation> <translation id="2784949926578158345">Соединение сброшено.</translation> <translation id="2788784517760473862">Кредитные карты, которые принимаются к оплате</translation> <translation id="2794233252405721443">Сайт заблокирован</translation> @@ -461,6 +462,7 @@ <translation id="4171400957073367226">Подтверждающая подпись недействительна</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Ещё <ph name="ITEM_COUNT" /> товар}one{Ещё <ph name="ITEM_COUNT" /> товар}few{Ещё <ph name="ITEM_COUNT" /> товара}many{Ещё <ph name="ITEM_COUNT" /> товаров}other{Ещё <ph name="ITEM_COUNT" /> товара}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" />: <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Рекомендуем сбросить пароль в домене <ph name="ORG_NAME" />, если вы используете его на других сайтах.</translation> <translation id="4196861286325780578">&Повторить перемещение</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Проверьте настройки брандмауэра и антивирусного ПО<ph name="END_LINK" />.</translation> <translation id="4220128509585149162">Завершение работы программы</translation> @@ -508,6 +510,7 @@ <translation id="4415426530740016218">Адрес получения</translation> <translation id="4424024547088906515">Не удалось подтвердить, что это сервер <ph name="DOMAIN" />. Chrome не доверяет его сертификату безопасности. Возможно, сервер настроен неправильно или кто-то пытается перехватить ваши данные.</translation> <translation id="4432688616882109544">Ваш сертификат отклонен сайтом <ph name="HOST_NAME" /> или не был выдан.</translation> +<translation id="4434045419905280838">Всплывающие окна и переадресация</translation> <translation id="443673843213245140">Прокси-сервер отключен, но при этом его конфигурация задана явным образом.</translation> <translation id="445100540951337728">Дебетовые карты, которые принимаются к оплате</translation> <translation id="4506176782989081258">Ошибка проверки: <ph name="VALIDATION_ERROR" /></translation> @@ -693,13 +696,13 @@ <translation id="5869405914158311789">Не удается получить доступ к сайту</translation> <translation id="5869522115854928033">Сайты с сохраненными паролями</translation> <translation id="5893752035575986141">Принимаются кредитные карты.</translation> +<translation id="5898382028489516745">Рекомендуем сбросить пароль в домене <ph name="ORG_NAME" />, если вы используете его на других сайтах.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (данные синхронизируются)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Используется 1 файл cookie}one{Используется # файл cookie}few{Используется # файла cookie}many{Используется # файлов cookie}other{Используется # файла cookie}}</translation> <translation id="5939518447894949180">Сбросить</translation> <translation id="5959728338436674663">Автоматически отправлять <ph name="BEGIN_WHITEPAPER_LINK" />системную информацию и контент страниц<ph name="END_WHITEPAPER_LINK" /> в Google, чтобы улучшить распознавание опасных приложений и сайтов. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Измените контактную информацию</translation> <translation id="5967867314010545767">Удалить из истории</translation> -<translation id="5972020793760134803">Переключиться на вкладку</translation> <translation id="5975083100439434680">Уменьшить</translation> <translation id="598637245381783098">Не удалось открыть Payments</translation> <translation id="5989320800837274978">Ни фиксированные прокси-серверы, ни URL PAC-скриптов не указаны.</translation> @@ -1035,7 +1038,6 @@ <translation id="8553075262323480129">Перевод не удался, так как не удается определить язык страницы.</translation> <translation id="8557066899867184262">CVC-код указан на обратной стороне карты.</translation> <translation id="8559762987265718583">Не удалось установить защищенное соединение с доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> из-за неверных настроек системных часов и календаря (<ph name="DATE_AND_TIME" />).</translation> -<translation id="8564985650692024650">Chromium рекомендует сбросить пароль, используемый в подразделении <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, если вы указывали его на других сайтах.</translation> <translation id="8571890674111243710">Перевод страницы на <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Добавьте номер</translation> <translation id="859285277496340001">Этот сертификат не определяет механизм проверки отзыва.</translation> @@ -1062,7 +1064,6 @@ <translation id="884264119367021077">Адрес доставки</translation> <translation id="884923133447025588">Не обнаружен механизм отзыва.</translation> <translation id="885730110891505394">Доступ Google</translation> -<translation id="8858065207712248076">Chrome рекомендует сбросить пароль, используемый в подразделении <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, если вы указывали его на других сайтах.</translation> <translation id="8866481888320382733">Не удалось выполнить анализ настроек политики</translation> <translation id="8870413625673593573">Недавно закрытые</translation> <translation id="8874824191258364635">Введите действительный номер карты.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 764e5f6..195f361 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Vyberte povolenie pre <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Najnovšie záložky</translation> <translation id="1113869188872983271">&Vrátiť späť zmenu poradia</translation> +<translation id="1125573121925420732">Kým weby aktualizujú svoje zabezpečenie, môžu sa často zobrazovať upozornenia. Čoskoro by sa to malo zlepšiť.</translation> <translation id="1126551341858583091">Veľkosť súboru v lokálnom úložisku je <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Vyrovnávacia pamäť pravidla je v poriadku</translation> <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> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Skúste spustiť nástroj Diagnostika siete systému Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Aktualizujte prístupovú frázu na synchronizáciu.</translation> <translation id="1787142507584202372">Tu sa zobrazia otvorené karty</translation> -<translation id="1789575671122666129">Kontextové okná</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Meno majiteľa karty</translation> <translation id="1806541873155184440">Pridané <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Odstrániť vybraté položky</translation> <translation id="277133753123645258">Spôsob dodania</translation> <translation id="277499241957683684">Chýbajúci záznam zariadenia</translation> +<translation id="2781030394888168909">Exportovať pre MacOS</translation> <translation id="2784949926578158345">Spojenie bolo resetované.</translation> <translation id="2788784517760473862">Akceptované kreditné karty</translation> <translation id="2794233252405721443">Web je blokovaný</translation> @@ -458,6 +459,7 @@ <translation id="4171400957073367226">Nesprávny overovací podpis</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> ďalšia položka}few{<ph name="ITEM_COUNT" /> ďalšie položky}many{<ph name="ITEM_COUNT" /> ďalšej položky}other{<ph name="ITEM_COUNT" /> ďalších položiek}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Ak ste heslo organizácie <ph name="ORG_NAME" /> použili na inom webe, Chrome odporúča, aby ste ho obnovili.</translation> <translation id="4196861286325780578">&Znova presunúť</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Skontrolovať konfiguráciu brány firewall a antivírusového softvéru<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Zlyhania</translation> @@ -505,6 +507,7 @@ <translation id="4415426530740016218">Adresa vyzdvihnutia</translation> <translation id="4424024547088906515">Server nedokáže overiť, či ide o doménu <ph name="DOMAIN" />, Chrome 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="4432688616882109544">Web <ph name="HOST_NAME" /> neakceptoval váš prihlasovací certifikát alebo nebol žiadny poskytnutý.</translation> +<translation id="4434045419905280838">Kontextové okná a presmerovania</translation> <translation id="443673843213245140">Použitie servera proxy je zakázané, ale je určená explicitná konfigurácia servera proxy.</translation> <translation id="445100540951337728">Akceptované debetné karty</translation> <translation id="4506176782989081258">Chyba overenia: <ph name="VALIDATION_ERROR" /></translation> @@ -690,13 +693,13 @@ <translation id="5869405914158311789">K tomuto webu sa nedá pripojiť</translation> <translation id="5869522115854928033">Uložené heslá</translation> <translation id="5893752035575986141">Kreditné karty sú akceptované.</translation> +<translation id="5898382028489516745">Ak ste heslo organizácie <ph name="ORG_NAME" /> použili na inom webe, Chromium odporúča, aby ste ho obnovili.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronizované)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Používa sa 1}few{Používajú sa #}many{Používa sa #}other{Používa sa #}}</translation> <translation id="5939518447894949180">Resetovať</translation> <translation id="5959728338436674663">Automaticky odosielať <ph name="BEGIN_WHITEPAPER_LINK" />niektoré informácie o systéme a obsah stránok<ph name="END_WHITEPAPER_LINK" /> do Googlu s cieľom pomôcť rozpoznávať nebezpečné aplikácie a weby. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Úprava kontaktných informácií</translation> <translation id="5967867314010545767">Odstrániť z histórie</translation> -<translation id="5972020793760134803">Prepnúť na kartu</translation> <translation id="5975083100439434680">Oddialiť</translation> <translation id="598637245381783098">Nie je možné otvoriť platobnú aplikáciu</translation> <translation id="5989320800837274978">Nie sú určené pevne dané servery proxy ani skript PAC webovej adresy.</translation> @@ -1031,7 +1034,6 @@ <translation id="8553075262323480129">Prekladanie zlyhalo, pretože sa nepodarilo určiť jazyk stránky.</translation> <translation id="8557066899867184262">Kód CVC nájdete na zadnej strane karty.</translation> <translation id="8559762987265718583">Súkromné pripojenie k doméne <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> sa nedá nadviazať, pretože dátum a čas (<ph name="DATE_AND_TIME" />) vášho zariadenia sú nesprávne.</translation> -<translation id="8564985650692024650">Ak ste heslo organizácie <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> použili aj na iných weboch, Chromium ho odporúča obnoviť.</translation> <translation id="8571890674111243710">Prebieha preklad stránky do jazyka: <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Pridať telefón </translation> @@ -1059,7 +1061,6 @@ <translation id="884264119367021077">Dodacia adresa</translation> <translation id="884923133447025588">Nenašiel sa žiadny mechanizmus rušenia certifikátov.</translation> <translation id="885730110891505394">Zdieľanie s Googlom</translation> -<translation id="8858065207712248076">Ak ste heslo organizácie <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> použili aj na iných weboch, Chrome ho odporúča obnoviť.</translation> <translation id="8866481888320382733">Pri analýze nastavení pravidla sa vyskytla chyba</translation> <translation id="8870413625673593573">Naposledy zatvorené</translation> <translation id="8874824191258364635">Zadajte platné číslo karty</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index 6bae3bb8..293efa86 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Poskušajte zagnati orodje Omrežna diagnostika Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Posodobite geslo za sinhronizacijo.</translation> <translation id="1787142507584202372">Tu so prikazani odprti zavihki</translation> -<translation id="1789575671122666129">Pojavna okna</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Ime imetnika kartice</translation> <translation id="1806541873155184440">Dodano: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Neveljavni podpis za preverjanje</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Še <ph name="ITEM_COUNT" /> element}one{Še <ph name="ITEM_COUNT" /> element}two{Še <ph name="ITEM_COUNT" /> elementa}few{Še <ph name="ITEM_COUNT" /> elementi}other{Še <ph name="ITEM_COUNT" /> elementov}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome priporoča, da ponastavite geslo za <ph name="ORG_NAME" />, če ste ga uporabljali na drugih spletnih mestih.</translation> <translation id="4196861286325780578">&Uveljavi premik</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />preveriti požarni zid in konfiguracije protivirusnega programa<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Zrušitve</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Tega spletnega mesta ni mogoče doseči</translation> <translation id="5869522115854928033">Shranjena gesla</translation> <translation id="5893752035575986141">Sprejema kreditne kartice.</translation> +<translation id="5898382028489516745">Chromium priporoča, da ponastavite geslo za <ph name="ORG_NAME" />, če ste ga uporabljali tudi na drugih spletnih mestih.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinhronizirano)</translation> <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="5939518447894949180">Ponastavi</translation> <translation id="5959728338436674663">Samodejno pošlji Googlu nekatere <ph name="BEGIN_WHITEPAPER_LINK" />sistemske podatke in vsebino strani<ph name="END_WHITEPAPER_LINK" /> zaradi zaznavanja nevarnih aplikacij in spletnih mest. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Urejanje podatkov o stiku</translation> <translation id="5967867314010545767">Odstrani iz zgodovine</translation> -<translation id="5972020793760134803">Preklop na zavihek</translation> <translation id="5975083100439434680">Pomanjšaj</translation> <translation id="598637245381783098">Plačilne aplikacije ni mogoče odpreti</translation> <translation id="5989320800837274978">Določeni niso ne stalni strežniki proxy ne URL skripta .pac.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">Prevod ni uspel, ker ni mogoče določiti jezika strani.</translation> <translation id="8557066899867184262">CVC je na zadnji strani kartice.</translation> <translation id="8559762987265718583">Zasebne povezave z domeno <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ni mogoče vzpostaviti, ker sta datum in ura (<ph name="DATE_AND_TIME" />) v napravi nepravilna.</translation> -<translation id="8564985650692024650">Chromium priporoča, da ponastavite geslo za <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, če ste ga uporabljali tudi na drugih spletnih mestih.</translation> <translation id="8571890674111243710">Prevajanje strani v jezik <ph name="LANGUAGE" /> ...</translation> <translation id="858637041960032120">Dodajte tel. št. </translation> <translation id="859285277496340001">Potrdilo ne navaja mehanizma za preverjanje tega, ali je bilo preklicano.</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">Naslov za pošiljanje</translation> <translation id="884923133447025588">Najden ni bil noben mehanizem za preklic.</translation> <translation id="885730110891505394">Deljenje z Googlom</translation> -<translation id="8858065207712248076">Chrome priporoča, da ponastavite geslo za <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, če ste ga uporabljali na drugih spletnih mestih.</translation> <translation id="8866481888320382733">Napaka pri razčlenjevanju nastavitev pravilnika</translation> <translation id="8870413625673593573">Nedavno zaprto</translation> <translation id="8874824191258364635">Vnesite veljavno številko kartice</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 9c44fdf..0f9351c 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Изаберите дозволу: <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Недавно коришћени обележивачи</translation> <translation id="1113869188872983271">&Опозови промену редоследа</translation> +<translation id="1125573121925420732">Упозорења могу често да се приказују док веб-сајтови ажурирају безбедност. То би ускоро требало да се побољша.</translation> <translation id="1126551341858583091">Величина у локалном меморијском простору је <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Кеш смерница је у реду</translation> <translation id="1150979032973867961">Овај сервер не може да докаже да је <ph name="DOMAIN" />; оперативни систем рачунара нема поверења у његов безбедносни сертификат. Узрок томе је можда погрешна конфигурација или нападач који је прекинуо везу.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Покушајте да покренете Windows дијагностику мреже<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Ажурирај приступну фразу за синхронизацију</translation> <translation id="1787142507584202372">Отворене картице се појављују овде</translation> -<translation id="1789575671122666129">Искачући прозори</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Име власника картице</translation> <translation id="1806541873155184440">Додато је: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Уклони изабране ставке</translation> <translation id="277133753123645258">Начин слања</translation> <translation id="277499241957683684">Недостаје евиденција уређаја</translation> +<translation id="2781030394888168909">Извези за Mac OS</translation> <translation id="2784949926578158345">Веза је враћена на почетне вредности.</translation> <translation id="2788784517760473862">Кредитне картице које се прихватају</translation> <translation id="2794233252405721443">Сајт је блокиран</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Неисправан потпис за верификацију</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{још <ph name="ITEM_COUNT" /> ставка}one{још <ph name="ITEM_COUNT" /> ставка}few{још <ph name="ITEM_COUNT" /> ставке}other{још <ph name="ITEM_COUNT" /> ставки}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome вам препоручује да ресетујете лозинку за <ph name="ORG_NAME" /> ако сте је користили на другим сајтовима.</translation> <translation id="4196861286325780578">&Понови премештање</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />да проверите конфигурацију заштитног зида и антивируса<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Отказивања</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Адреса преузимања</translation> <translation id="4424024547088906515">Овај сервер не може да докаже да је <ph name="DOMAIN" />; Chrome нема поверења у његов безбедносни сертификат. Узрок томе је можда погрешна конфигурација или нападач који је прекинуо везу.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> није прихватио сертификат за пријављивање или сертификат за пријављивање није приложен.</translation> +<translation id="4434045419905280838">Искачући прозори и преусмеравања</translation> <translation id="443673843213245140">Коришћење проксија је онемогућено, али је наведена експлицитна конфигурација проксија.</translation> <translation id="445100540951337728">Дебитне картице које се прихватају</translation> <translation id="4506176782989081258">Грешка при потврди ваљаности: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Овај сајт није доступан</translation> <translation id="5869522115854928033">Сачуване лозинке</translation> <translation id="5893752035575986141">Прихватају се кредитне картице.</translation> +<translation id="5898382028489516745">Chromium вам препоручује да ресетујете лозинку за <ph name="ORG_NAME" /> ако сте је користили на другим сајтовима.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронизовано)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Користи се 1}one{Користи се #}few{Користе се #}other{Користи се #}}</translation> <translation id="5939518447894949180">Ресетуј</translation> <translation id="5959728338436674663">Аутоматски шаљите одређене <ph name="BEGIN_WHITEPAPER_LINK" />информације о систему и садржај страница<ph name="END_WHITEPAPER_LINK" /> Google-у да бисте нам помогли да откријемо опасне апликације и сајтове. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Измените контакт информације</translation> <translation id="5967867314010545767">Уклони из историје</translation> -<translation id="5972020793760134803">Пређи на картицу</translation> <translation id="5975083100439434680">Умањивање</translation> <translation id="598637245381783098">Отварање апликације за плаћање није успело</translation> <translation id="5989320800837274978">Нису наведени ни фиксни прокси сервери нити URL адреса .pac скрипте.</translation> @@ -1035,7 +1038,6 @@ <translation id="8553075262323480129">Превод није успео јер језик странице није могао да буде утврђен.</translation> <translation id="8557066899867184262">CVC је на полеђини картице.</translation> <translation id="8559762987265718583">Није могуће успоставити приватну везу са доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> јер датум и време на уређају (<ph name="DATE_AND_TIME" />) нису тачни.</translation> -<translation id="8564985650692024650">Chromium вам препоручује да ресетујете лозинку за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ако сте је користили на другим сајтовима.</translation> <translation id="8571890674111243710">Превођење странице на <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Додај тел. број </translation> @@ -1063,7 +1065,6 @@ <translation id="884264119367021077">Адреса за слање</translation> <translation id="884923133447025588">Није пронађен ниједан механизам опозива.</translation> <translation id="885730110891505394">Дељење са Google-ом</translation> -<translation id="8858065207712248076">Chrome вам препоручује да ресетујете лозинку за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ако сте је користили на другим сајтовима.</translation> <translation id="8866481888320382733">Грешка при рашчлањивању подешавања смерница</translation> <translation id="8870413625673593573">Недавно затворено</translation> <translation id="8874824191258364635">Унесите важећи број картице</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index 87a5558..a1dd82e 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Välj behörighet för <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Nya bokmärken</translation> <translation id="1113869188872983271">&Ångra Ändra ordning</translation> +<translation id="1125573121925420732">Varningar kan förekomma medan en webbplats uppdaterar säkerheten. Detta förbättras inom kort.</translation> <translation id="1126551341858583091">Storleken på det lokala lagringsutrymmet är <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Cacheminnet för policyn är OK</translation> <translation id="1150979032973867961">Servern kunde inte bevisa att den är <ph name="DOMAIN" /> eftersom datorns operativsystem inte litar på dess säkerhetscertifikat. Detta kan orsakas av en felaktig konfigurering eller att någon spärrar anslutningen.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Testa att köra nätverksdiagnostik för Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Uppdatera lösenfrasen för synkroniseringen.</translation> <translation id="1787142507584202372">Öppna flikar visas här</translation> -<translation id="1789575671122666129">Popup-fönster</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Namn på kortinnehavare</translation> <translation id="1806541873155184440">Lades till den <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Ta bort valda objekt</translation> <translation id="277133753123645258">Fraktalternativ</translation> <translation id="277499241957683684">Enhetsregister saknas</translation> +<translation id="2781030394888168909">Exportera för MacOS</translation> <translation id="2784949926578158345">Anslutningen återställdes.</translation> <translation id="2788784517760473862">Godkända kreditkort</translation> <translation id="2794233252405721443">Webbplatsen har blockerats</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Felaktig verifieringssignatur</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> objekt till}other{<ph name="ITEM_COUNT" /> objekt till}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Du rekommenderas att återställa lösenordet för <ph name="ORG_NAME" /> om du har återanvänt det på andra webbplatser.</translation> <translation id="4196861286325780578">&Gör om Flytta</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />kontrollera konfigureringarna för brandväggen och antivirusprogram<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Kraschar</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Hämtningsadress</translation> <translation id="4424024547088906515">Servern kunde inte bevisa att den är <ph name="DOMAIN" /> eftersom Chrome inte litar på dess säkerhetscertifikat. Detta kan orsakas av en felaktig konfigurering eller att någon spärrar anslutningen.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> godkände inte inloggningscertifikatet eller så har inget inloggningscertifikat angetts.</translation> +<translation id="4434045419905280838">Popup-fönster och omdirigeringar</translation> <translation id="443673843213245140">Användning av proxy är inaktiverad men en explicit proxykonfiguration har angetts.</translation> <translation id="445100540951337728">Godkända betalkort</translation> <translation id="4506176782989081258">Valideringsfel: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Webbplatsen kan inte nås</translation> <translation id="5869522115854928033">Sparade lösenord</translation> <translation id="5893752035575986141">Kreditkort får användas.</translation> +<translation id="5898382028489516745">Du rekommenderas att återställa lösenordet för <ph name="ORG_NAME" /> om du har återanvänt det på andra webbplatser.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkroniserade)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 används}other{# används}}</translation> <translation id="5939518447894949180">Återställ</translation> <translation id="5959728338436674663">Skicka automatiskt viss <ph name="BEGIN_WHITEPAPER_LINK" />information om systemet och innehåll på sidan<ph name="END_WHITEPAPER_LINK" /> för att hjälpa Google att identifiera skadliga appar och webbplatser. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Redigera kontaktuppgifter</translation> <translation id="5967867314010545767">Ta bort från historiken</translation> -<translation id="5972020793760134803">Byta flik</translation> <translation id="5975083100439434680">Zooma ut</translation> <translation id="598637245381783098">Det gick inte att öppna betalningsappen</translation> <translation id="5989320800837274978">Varken fasta proxyservrar eller en webbadress med PAC-skript har angetts.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Det gick inte att översätta eftersom det inte gick att avgöra vilket språk som användes på sidan.</translation> <translation id="8557066899867184262">CVC-koden finns på baksidan av kortet.</translation> <translation id="8559762987265718583">Det gick inte att upprätta en privat anslutning till <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> eftersom enhetens datum och tid (<ph name="DATE_AND_TIME" />) inte stämmer.</translation> -<translation id="8564985650692024650">Du rekommenderas att återställa lösenordet för <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> om du har återanvänt det på andra webbplatser.</translation> <translation id="8571890674111243710">Översätter sidan till <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Ange telefonnr </translation> @@ -1064,7 +1066,6 @@ <translation id="884264119367021077">Leveransadress</translation> <translation id="884923133447025588">Ingen återkallningsmekanism har hittats.</translation> <translation id="885730110891505394">Delar med Google</translation> -<translation id="8858065207712248076">Du rekommenderas att återställa lösenordet för <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> om du har återanvänt det på andra webbplatser.</translation> <translation id="8866481888320382733">Det uppstod ett fel när policyinställningarna analyserades</translation> <translation id="8870413625673593573">Nyligen stängda</translation> <translation id="8874824191258364635">Ange ett giltigt kortnummer</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index 79b5404e..2a49b3373 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Jaribu kutumia zana ya Kuchunguza Mtandao wa Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Tafadhali sasisha kaulisiri yako iliyolandanishwa.</translation> <translation id="1787142507584202372">Vichupo vyako vilivyo wazi huonekana hapa</translation> -<translation id="1789575671122666129">Ibukizi</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Jina la mwenye kadi</translation> <translation id="1806541873155184440">Iliongezwa <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Sahihi mbaya ya uthibitishaji</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Kipengee kingine <ph name="ITEM_COUNT" />}other{Vipengee vingine <ph name="ITEM_COUNT" />}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome inapendekeza ubadilishe nenosiri lako la <ph name="ORG_NAME" /> ikiwa ulilitumia tena kwenye tovuti zingine.</translation> <translation id="4196861286325780578">Rudia hatua</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Kuangalia mipangilio ya kinga-mtandao na kinga-virusi<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Mivurugo</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Imeshindwa kufungua tovuti hii</translation> <translation id="5869522115854928033">Manenosiri yaliyohifadhiwa</translation> <translation id="5893752035575986141">Kadi za mikopo zinakubaliwa.</translation> +<translation id="5898382028489516745">Chromium inapendekeza ubadilishe nenosiri lako la <ph name="ORG_NAME" /> ikiwa ulilitumia tena kwenye tovuti zingine.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (imesawazishwa)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 kinatumika}other{ # vinatumika}}</translation> <translation id="5939518447894949180">Weka upya</translation> <translation id="5959728338436674663">Tuma kiotomatiki <ph name="BEGIN_WHITEPAPER_LINK" />maelezo ya mfumo na maudhui kadha ya ukurasa<ph name="END_WHITEPAPER_LINK" /> kwa Google ili kusaidia kugundua programu na tovuti hatari. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">Badilisha Maelezo ya Mawasiliano</translation> <translation id="5967867314010545767">Ondoa kwenye historia</translation> -<translation id="5972020793760134803">Nenda kwenye kichupo</translation> <translation id="5975083100439434680">Fifiza</translation> <translation id="598637245381783098">Imeshindwa kufungua programu ya kulipa</translation> <translation id="5989320800837274978">Siyo seva proksi za kudumu wala URL ya hati ya .pac zimebainishwa.</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">Tafsiri imeshindwa kwa sababu lugha ya ukurasa isingeweza kuthibitishwa.</translation> <translation id="8557066899867184262">CVC inapatikana nyuma ya kadi yako.</translation> <translation id="8559762987265718583">Muunganisho wa faragha kwenye <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hauwezi kupatikana kwa sababu tarehe na wakati wa kifaa chako (<ph name="DATE_AND_TIME" />) si sahihi.</translation> -<translation id="8564985650692024650">Chromium inapendekeza ubadilishe nenosiri lako la <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ikiwa ulilitumia tena kwenye tovuti zingine.</translation> <translation id="8571890674111243710">Inatafsiri ukurasa katika <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Ongeza simu </translation> @@ -1064,7 +1063,6 @@ <translation id="884264119367021077">Anwani ya kusafirisha</translation> <translation id="884923133447025588">Mbinu ya ubatilishaji haikupatikana.</translation> <translation id="885730110891505394">Kushiriki kwenye Google</translation> -<translation id="8858065207712248076">Chrome inapendekeza ubadilishe nenosiri lako la <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ikiwa ulilitumia tena kwenye tovuti zingine.</translation> <translation id="8866481888320382733">Hitilafu wakati wa kuchanganua mipangilio ya sera</translation> <translation id="8870413625673593573">Zilizofungwa Hivi Karibuni</translation> <translation id="8874824191258364635">Andika nambari sahihi ya kadi</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 45d7239..18631c2 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504"><ph name="PERMISSION_NAME" />க்கான அனுமதியைத் தேர்ந்தெடுக்கவும்</translation> <translation id="1111153019813902504">சமீபத்திய புத்தகக்குறிகள்</translation> <translation id="1113869188872983271">&மறுவரிசைப்படுத்தலைச் செயல்தவிர்</translation> +<translation id="1125573121925420732">இணையதளங்கள் தங்கள் பாதுகாப்பைப் புதுப்பிக்கும் போது, எச்சரிக்கைகள் வழக்கமானதாக இருக்கலாம். இந்த நிலை விரைவில் மேம்படும்.</translation> <translation id="1126551341858583091">அகச் சேமிப்பகத்தில் <ph name="CRASH_SIZE" /> அளவு உள்ளது.</translation> <translation id="112840717907525620">கொள்கை தற்காலிக சேமிப்பு சரியாக உள்ளது</translation> <translation id="1150979032973867961">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழை உங்கள் கணினியின் இயக்க முறைமை நம்பவில்லை. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows நெட்வொர்க் டயக்னஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">உங்களின் ஒத்திசை சொற்றொடரைப் புதுப்பிக்கவும்.</translation> <translation id="1787142507584202372">உங்கள் தாவல்கள் இங்கே தோன்றும்</translation> -<translation id="1789575671122666129">பாப் அப்கள்</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">கார்டு உரிமையாளரின் பெயர்</translation> <translation id="1806541873155184440">சேர்த்தது: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">தேர்ந்தெடுத்த உருப்படிகளை அகற்றுக</translation> <translation id="277133753123645258">ஷிப்பிங் முறை</translation> <translation id="277499241957683684">சாதனப் பதிவு இல்லை</translation> +<translation id="2781030394888168909">MacOSஐப் பதிவிறக்கு</translation> <translation id="2784949926578158345">இணைப்பு மீட்டமைக்கப்பட்டது.</translation> <translation id="2788784517760473862">ஏற்கப்படும் கிரெடிட் கார்டுகள்</translation> <translation id="2794233252405721443">தளம் தடுக்கப்பட்டது</translation> @@ -459,6 +460,7 @@ <translation id="4171400957073367226">தவறான சரிபார்ப்பு கையொப்பம்</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{மேலும் <ph name="ITEM_COUNT" /> உருப்படி}other{மேலும் <ph name="ITEM_COUNT" /> உருப்படிகள்}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">பிற தளங்களில் உங்கள் <ph name="ORG_NAME" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கும்.</translation> <translation id="4196861286325780578">&நகர்த்தலை மீண்டும் செய்</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ஃபயர்வால் மற்றும் ஆண்டிவைரஸ் உள்ளமைவைச் சரிபார்த்தல்<ph name="END_LINK" /></translation> <translation id="4220128509585149162">செயலிழப்புகள்</translation> @@ -506,6 +508,7 @@ <translation id="4415426530740016218">பிக்அப் முகவரி</translation> <translation id="4424024547088906515">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழை Chrome நம்பவில்லை. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> உங்கள் உள்நுழைவுச் சான்றிதழை ஏற்கவில்லை அல்லது சான்றிதழ் வழங்கப்படாமல் இருக்கக்கூடும்.</translation> +<translation id="4434045419905280838">பாப் அப்கள் & திசைதிருப்புதல்கள்</translation> <translation id="443673843213245140">ப்ராக்ஸி பயன்பாடு முடக்கப்பட்டுள்ளது. ஆனால் வெளிப்படையான ப்ராக்ஸி உள்ளமைவு குறிப்பிடப்பட்டுள்ளது.</translation> <translation id="445100540951337728">ஏற்கப்படும் டெபிட் கார்டுகள்</translation> <translation id="4506176782989081258">சரிபார்ப்புப் பிழை: <ph name="VALIDATION_ERROR" /></translation> @@ -691,13 +694,13 @@ <translation id="5869405914158311789">இந்தத் தளத்தை அணுக முடியவில்லை</translation> <translation id="5869522115854928033">சேமிக்கப்பட்ட கடவுச்சொற்கள்</translation> <translation id="5893752035575986141">கிரெடிட் கார்டுகள் ஏற்கப்படுகின்றன.</translation> +<translation id="5898382028489516745">பிற தளங்களில் உங்கள் <ph name="ORG_NAME" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கும்.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (ஒத்திசைக்கப்பட்டது)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ஒரு குக்கீ பயன்படுத்தப்படுகிறது}other{# குக்கீகள் பயன்படுத்தப்படுகின்றன}}</translation> <translation id="5939518447894949180">மீட்டமை</translation> <translation id="5959728338436674663">ஆபத்தான பயன்பாடுகளையும் தளங்களையும் கண்டறிவதற்கு உதவியாக, சில <ph name="BEGIN_WHITEPAPER_LINK" />சாதனத் தகவலையும் பக்க உள்ளடக்கத்தையும்<ph name="END_WHITEPAPER_LINK" /> Googleக்குத் தானாக அனுப்பு. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">தொடர்புத் தகவலைத் திருத்தவும்</translation> <translation id="5967867314010545767">வரலாற்றிலிருந்து அகற்று</translation> -<translation id="5972020793760134803">தாவலுக்கு மாறு</translation> <translation id="5975083100439434680">சிறிதாக்கு</translation> <translation id="598637245381783098">பேமெண்ட் பயன்பாட்டைத் திறக்க முடியவில்லை</translation> <translation id="5989320800837274978">ப்ராக்ஸி சேவையகம் சரிசெய்யப்படவும் இல்லை .pac ஸ்கிரிப்ட் URL குறிப்பிடப்படவுமில்லை.</translation> @@ -1032,7 +1035,6 @@ <translation id="8553075262323480129">பக்கத்தின் மொழியைத் தீர்மானிக்க முடியாததால் மொழிபெயர்ப்பு தோல்வியடைந்தது.</translation> <translation id="8557066899867184262">உங்கள் கார்டின் பின்புறத்தில் CVC எண் இருக்கும்.</translation> <translation id="8559762987265718583">உங்கள் சாதனத்தின் தேதி மற்றும் நேரம் (<ph name="DATE_AND_TIME" />) தவறாக உள்ளதால் <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> க்கான தனிப்பட்ட இணைப்பை ஏற்படுத்த முடியவில்லை.</translation> -<translation id="8564985650692024650">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கிறது.</translation> <translation id="8571890674111243710"><ph name="LANGUAGE" /> க்கு பக்கத்தை மொழிபெயர்க்கிறது...</translation> <translation id="858637041960032120">தொலைபேசி எண்</translation> <translation id="859285277496340001">இந்த சான்றிதழ் திரும்பப்பெறப்பட்டதா என்பதைச் சரிபார்ப்பதற்கான செயல்முறை இதில் இல்லை.</translation> @@ -1059,7 +1061,6 @@ <translation id="884264119367021077">ஷிப்பிங் முகவரி</translation> <translation id="884923133447025588">திரும்பப்பெறுதல் செயல்முறை காணப்படவில்லை.</translation> <translation id="885730110891505394">Google உடன் பகிர்பவை</translation> -<translation id="8858065207712248076">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கிறது.</translation> <translation id="8866481888320382733">கொள்கை அமைப்புகளை அலசுவதில் பிழை</translation> <translation id="8870413625673593573">சமீபத்தில் மூடியவை</translation> <translation id="8874824191258364635">சரியான கார்டு எண்ணை உள்ளிடவும்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 377a66cb..a44ebbf 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows నెట్వర్క్ సమస్య విశ్లేషణలను అమలు చేయడం ప్రయత్నించండి<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">దయచేసి మీ సమకాలీకరణ పాస్ఫ్రేజ్ను నవీకరించండి.</translation> <translation id="1787142507584202372">మీ తెరవబడిన ట్యాబ్లు ఇక్కడ కనిపిస్తాయి</translation> -<translation id="1789575671122666129">పాప్అప్లు</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">కార్డుదారుని పేరు</translation> <translation id="1806541873155184440">జోడించినది <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">ధృవీకరణ సంతకం చెల్లదు</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{మరో <ph name="ITEM_COUNT" /> అంశం}other{మరో <ph name="ITEM_COUNT" /> అంశాలు}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">మీరు మీ <ph name="ORG_NAME" /> పాస్వర్డ్ని ఇతర సైట్లలో తిరిగి ఉపయోగించి ఉంటే దీనిని రీసెట్ చేయాల్సిందిగా Chrome సిఫార్సు చేస్తోంది.</translation> <translation id="4196861286325780578">&తరలించడాన్ని పునరావృతం చేయి</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ఫైర్వాల్ మరియు యాంటీవైరస్ కాన్ఫిగరేషన్లను తనిఖీ చేయడం<ph name="END_LINK" /></translation> <translation id="4220128509585149162">క్రాష్లు</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">ఈ సైట్ను చేరుకోలేకపోయాము</translation> <translation id="5869522115854928033">సేవ్ చేసిన పాస్వర్డ్లు</translation> <translation id="5893752035575986141">క్రెడిట్ కార్డ్లు ఆమోదించబడతాయి.</translation> +<translation id="5898382028489516745">మీరు మీ <ph name="ORG_NAME" /> పాస్వర్డ్ని ఇతర సైట్లలో తిరిగి ఉపయోగించి ఉంటే దీనిని రీసెట్ చేయాల్సిందిగా Chromium సిఫార్సు చేస్తోంది.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (సమకాలీకరించబడింది)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 వినియోగంలో ఉంది}other{# వినియోగంలో ఉన్నాయి}}</translation> <translation id="5939518447894949180">రీసెట్ చేయి</translation> <translation id="5959728338436674663">హానికరమైన అనువర్తనాలు మరియు సైట్లను గుర్తించడంలో సహాయపడటానికి కొంత <ph name="BEGIN_WHITEPAPER_LINK" />సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్<ph name="END_WHITEPAPER_LINK" />ను Googleకు స్వయంచాలకంగా పంపుతుంది. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">సంప్రదింపు సమాచారాన్ని సవరించండి</translation> <translation id="5967867314010545767">చరిత్ర నుండి తీసివేయి</translation> -<translation id="5972020793760134803">ట్యాబ్కు మారండి</translation> <translation id="5975083100439434680">దూరంగా జూమ్ చెయ్యి</translation> <translation id="598637245381783098">చెల్లింపు ఆప్ని తెరవడం సాధ్యం కాదు</translation> <translation id="5989320800837274978">స్థిర ప్రాక్సీ సర్వర్లు లేదా ఒక .pac స్క్రిప్ట్ URL పేర్కొనబడలేదు.</translation> @@ -1035,7 +1035,6 @@ <translation id="8553075262323480129">పేజీ భాష నిర్థారించలేకపోయినందున అనువాదం విఫలమైంది.</translation> <translation id="8557066899867184262">మీ కార్డు వెనుకవైపు CVC ఉంటుంది.</translation> <translation id="8559762987265718583">మీ పరికరం తేదీ మరియు సమయం (<ph name="DATE_AND_TIME" />) తప్పుగా ఉన్నందున <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />కి ప్రైవేట్ కనెక్షన్ ఏర్పాటు చేయబడదు.</translation> -<translation id="8564985650692024650">మీరు మీ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> పాస్వర్డ్ని ఇతర సైట్లలో తిరిగి ఉపయోగించినట్లయితే దీనిని రీసెట్ చేయాల్సిందిగా Chromium సిఫార్సు చేస్తోంది.</translation> <translation id="8571890674111243710">పేజీని <ph name="LANGUAGE" />కు అనువదిస్తోంది...</translation> <translation id="858637041960032120">ఫోన్ నం. జోడిం. </translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">షిప్పింగ్ చిరునామా</translation> <translation id="884923133447025588">ఏ రద్దు విధానం కనుగొనబడలేదు.</translation> <translation id="885730110891505394">Googleతో భాగస్వామ్యం</translation> -<translation id="8858065207712248076">మీరు మీ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> పాస్వర్డ్ని ఇతర సైట్లలో తిరిగి ఉపయోగించినట్లయితే దీనిని రీసెట్ చేయాల్సిందిగా Chrome సిఫార్సు చేస్తోంది.</translation> <translation id="8866481888320382733">విధాన సెట్టింగ్లను అన్వయించడంలో లోపం</translation> <translation id="8870413625673593573">ఇటీవల మూసివేసినవి</translation> <translation id="8874824191258364635">చెల్లుబాటు అయ్యే కార్డ్ నంబర్ను నమోదు చేయండి</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index 9860f70..7e47cd4 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">เลือกสิทธิ์สำหรับ<ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">บุ๊กมาร์กที่เพิ่งดู</translation> <translation id="1113869188872983271">&เลิกทำการจัดลำดับใหม่</translation> +<translation id="1125573121925420732">อาจเห็นคำเตือนอยู่บ่อยๆ ระหว่างที่เว็บไซต์อัปเดตความปลอดภัย เราจะปรับปรุงเร็วๆ นี้</translation> <translation id="1126551341858583091">ขนาดบนพื้นที่เก็บข้อมูลในเครื่องคือ <ph name="CRASH_SIZE" /></translation> <translation id="112840717907525620">แคชนโยบายใช้ได้</translation> <translation id="1150979032973867961">เซิร์ฟเวอร์นี้ไม่สามารถพิสูจน์ได้ว่าเป็น <ph name="DOMAIN" /> เพราะระบบปฏิบัติการของคอมพิวเตอร์ของคุณไม่เชื่อถือใบรับรองความปลอดภัย โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />ลองเรียกใช้การวินิจฉัยเครือข่ายของ Windows<ph name="END_LINK" /></translation> <translation id="1783075131180517613">โปรดอัปเดตข้อความรหัสผ่านที่ซิงค์ของคุณ</translation> <translation id="1787142507584202372">แท็บที่คุณเปิดไว้จะปรากฏที่นี่</translation> -<translation id="1789575671122666129">ป๊อปอัป</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">ชื่อผู้ถือบัตร</translation> <translation id="1806541873155184440">วันที่เพิ่ม <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">นำรายการที่เลือกออก </translation> <translation id="277133753123645258">วิธีการจัดส่งสินค้า</translation> <translation id="277499241957683684">ไม่มีอุปกรณ์บันทึก</translation> +<translation id="2781030394888168909">ส่งออก MacOS</translation> <translation id="2784949926578158345">การเชื่อมต่อได้รับการรีเซ็ตแล้ว</translation> <translation id="2788784517760473862">บัตรเครดิตที่ยอมรับ</translation> <translation id="2794233252405721443">เว็บไซต์ที่ถูกบล็อก</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">ลายเซ็นยืนยันไม่ถูกต้อง</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{อีก <ph name="ITEM_COUNT" /> รายการ}other{อีก <ph name="ITEM_COUNT" /> รายการ}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome ขอแนะนำให้รีเซ็ตรหัสผ่าน <ph name="ORG_NAME" /> หากคุณใช้รหัสผ่านนี้ซ้ำในเว็บไซต์อื่น</translation> <translation id="4196861286325780578">&ทำซ้ำการย้าย</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ตรวจสอบไฟร์วอลล์และการกำหนดค่าการป้องกันไวรัส<ph name="END_LINK" /></translation> <translation id="4220128509585149162">การขัดข้อง</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">ที่อยู่ในการรับ</translation> <translation id="4424024547088906515">เซิร์ฟเวอร์นี้ไม่สามารถพิสูจน์ได้ว่าเป็น <ph name="DOMAIN" /> เพราะ Chrome ไม่เชื่อถือใบรับรองความปลอดภัย โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> ไม่ยอมรับใบรับรองการเข้าสู่ระบบหรือไม่ได้ให้ใบรับรองไว้</translation> +<translation id="4434045419905280838">ป๊อปอัปและการเปลี่ยนเส้นทาง</translation> <translation id="443673843213245140">การใช้พร็อกซีถูกปิดใช้งาน แต่มีการระบุการกำหนดค่าพร็อกซีอย่างชัดเจน</translation> <translation id="445100540951337728">บัตรเดบิตที่ยอมรับ</translation> <translation id="4506176782989081258">ข้อผิดพลาดในการตรวจสอบ: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">ไม่สามารถเข้าถึงเว็บไซต์นี้</translation> <translation id="5869522115854928033">รหัสผ่านที่บันทึกไว้</translation> <translation id="5893752035575986141">รับบัตรเครดิต</translation> +<translation id="5898382028489516745">Chromium ขอแนะนำให้รีเซ็ตรหัสผ่าน <ph name="ORG_NAME" /> หากคุณใช้รหัสผ่านนี้ซ้ำในเว็บไซต์อื่น</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (ซิงค์แล้ว)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ใช้งานอยู่ 1 รายการ}other{ใช้งานอยู่ # รายการ}}</translation> <translation id="5939518447894949180">รีเซ็ต</translation> <translation id="5959728338436674663">ส่ง<ph name="BEGIN_WHITEPAPER_LINK" />ข้อมูลบางอย่างของระบบและเนื้อหาของหน้าเว็บ<ph name="END_WHITEPAPER_LINK" />ไปยัง Google เพื่อช่วยตรวจหาแอปและเว็บไซต์ที่เป็นอันตรายโดยอัตโนมัติ<ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">แก้ไขข้อมูลติดต่อ</translation> <translation id="5967867314010545767">ลบจากประวัติการเข้าชม</translation> -<translation id="5972020793760134803">เปลี่ยนเป็นแท็บ</translation> <translation id="5975083100439434680">ย่อ</translation> <translation id="598637245381783098">ไม่สามารถเปิดแอปการชำระเงิน</translation> <translation id="5989320800837274978">ไม่มีการระบุทั้งพร็อกซีเซิร์ฟเวอร์แบบคงที่หรือ URL สคริปต์ .pac</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">การแปลล้มเหลวเนื่องจากไม่สามารถระบุภาษาของหน้าเว็บนี้ได้</translation> <translation id="8557066899867184262">CVC จะอยู่ที่ด้านหลังบัตร</translation> <translation id="8559762987265718583">ไม่สามารถเริ่มการเชื่อมต่อส่วนตัวกับ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ได้เนื่องจากวันที่และเวลาของอุปกรณ์ (<ph name="DATE_AND_TIME" />) ไม่ถูกต้อง</translation> -<translation id="8564985650692024650">Chromium ขอแนะนำให้รีเซ็ตรหัสผ่าน <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> หากคุณใช้รหัสผ่านนี้ซ้ำในเว็บไซต์อื่น</translation> <translation id="8571890674111243710">กำลังแปลหน้าเว็บนี้เป็นภาษา<ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">เพิ่มเบอร์โทร </translation> @@ -1064,7 +1066,6 @@ <translation id="884264119367021077">ที่อยู่จัดส่ง</translation> <translation id="884923133447025588">ไม่พบกระบวนการเพิกถอน</translation> <translation id="885730110891505394">การแชร์กับ Google</translation> -<translation id="8858065207712248076">Chrome ขอแนะนำให้รีเซ็ตรหัสผ่าน <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> หากคุณใช้รหัสผ่านนี้ซ้ำในเว็บไซต์อื่น</translation> <translation id="8866481888320382733">ข้อผิดพลาดในการแยกวิเคราะห์การตั้งค่านโยบาย</translation> <translation id="8870413625673593573">เพิ่งปิด</translation> <translation id="8874824191258364635">ป้อนหมายเลขบัตรที่ถูกต้อง</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index e831c4d..132e1f42 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504"><ph name="PERMISSION_NAME" /> için izin seçin</translation> <translation id="1111153019813902504">Son yer işaretleri</translation> <translation id="1113869188872983271">Sıralama değişikliğini &geri al</translation> +<translation id="1125573121925420732">Web siteleri güvenliklerini güncellerken uyarılar yaygın olarak görülebilir. Yakında bu işlev iyileştirilecektir.</translation> <translation id="1126551341858583091">Yerel depolama alanındaki boyut <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Politika önbelleği uygun</translation> <translation id="1150979032973867961">Bu sunucu <ph name="DOMAIN" /> olduğunu kanıtlayamadı. Bilgisayarınızın işletim sistemi, sunucunun güvenlik sertifikasına güvenmiyor. Bu durum, bir yanlış yapılandırmadan veya bağlantıya müdahale eden bir saldırgandan kaynaklanıyor olabilir.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows Ağ Teşhislerini çalıştırmayı deneyin<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Lütfen senkronizasyon parolanızı güncelleyin.</translation> <translation id="1787142507584202372">Açık sekmeleriniz burada görünür</translation> -<translation id="1789575671122666129">Pop-up'lar</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Kart Sahibinin Adı</translation> <translation id="1806541873155184440">Eklenme tarihi: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Seçilen öğeleri kaldır</translation> <translation id="277133753123645258">Gönderim yöntemi</translation> <translation id="277499241957683684">Eksik cihaz kaydı</translation> +<translation id="2781030394888168909">MacOS Biçiminde Dışa Aktar</translation> <translation id="2784949926578158345">Bağlantı sıfırlandı.</translation> <translation id="2788784517760473862">Kabul edilen kredi kartları</translation> <translation id="2794233252405721443">Site engellenmiş</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Geçersiz doğrulama imzası</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> öğe daha}other{<ph name="ITEM_COUNT" /> öğe daha}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome, <ph name="ORG_NAME" /> şifrenizi başka sitelerde kullandıysanız sıfırlamanızı önerir.</translation> <translation id="4196861286325780578">Taşımayı &yeniden yap</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Güvenlik duvarı ve virüsten korunma yapılandırmalarını kontrol etme<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Kilitlenmeler</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Alınacağı Adres</translation> <translation id="4424024547088906515">Bu sunucu <ph name="DOMAIN" /> olduğunu kanıtlayamadı. Chrome, sunucunun güvenlik sertifikasına güvenmiyor. Bu durum, bir yanlış yapılandırmadan veya bağlantıya müdahale eden bir saldırgandan kaynaklanıyor olabilir.</translation> <translation id="4432688616882109544"><ph name="HOST_NAME" /> giriş sertifikanızı kabul etmedi veya giriş sertifikası sağlanmamış olabilir.</translation> +<translation id="4434045419905280838">Pop-up'lar ve yönlendirmeler</translation> <translation id="443673843213245140">Proxy kullanımı devre dışı, ancak açık bir proxy yapılandırması belirtildi.</translation> <translation id="445100540951337728">Kabul edilen banka kartları</translation> <translation id="4506176782989081258">Doğrulama hatası: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Bu siteye ulaşılamıyor</translation> <translation id="5869522115854928033">Kayıtlı şifreler</translation> <translation id="5893752035575986141">Kredi kartları kabul edilir.</translation> +<translation id="5898382028489516745">Chromium, <ph name="ORG_NAME" /> şifrenizi başka sitelerde kullandıysanız sıfırlamanızı önerir.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (senkronize edildi)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 çerez kullanımda}other{# çerez kullanımda}}</translation> <translation id="5939518447894949180">Sıfırla</translation> <translation id="5959728338436674663">Tehlikeli uygulamaların ve sitelerin tespit edilmesine yardımcı olmak için Google'a bazı <ph name="BEGIN_WHITEPAPER_LINK" />sistem bilgilerini ve sayfa içeriklerini<ph name="END_WHITEPAPER_LINK" /> otomatik olarak gönder.<ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">İletişim Bilgilerini Düzenleyin</translation> <translation id="5967867314010545767">Geçmişten kaldır.</translation> -<translation id="5972020793760134803">Sekmeye geç</translation> <translation id="5975083100439434680">Uzaklaştır</translation> <translation id="598637245381783098">Ödeme uygulaması açılamıyor</translation> <translation id="5989320800837274978">Sabit proxy sunucular veya bir .pac komut dosyası URL'si belirtilmedi.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Sayfanın dili belirlenemediğinden çeviri başarısız oldu.</translation> <translation id="8557066899867184262">CVC, kartınızın arkasında bulunur.</translation> <translation id="8559762987265718583">Cihazınızın tarih ve saati (<ph name="DATE_AND_TIME" />) yanlış olduğundan <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> alan adına gizli bir bağlantı kurulamıyor.</translation> -<translation id="8564985650692024650">Chromium, <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> şifrenizi başka sitelerde kullandıysanız sıfırlamanızı önerir.</translation> <translation id="8571890674111243710">Sayfa <ph name="LANGUAGE" /> diline çevriliyor...</translation> <translation id="858637041960032120">Telefon no ekle </translation> @@ -1064,7 +1066,6 @@ <translation id="884264119367021077">Gönderim adresi</translation> <translation id="884923133447025588">İptal mekanizması bulunamadı.</translation> <translation id="885730110891505394">Google ile Paylaşma</translation> -<translation id="8858065207712248076">Chrome, <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> şifrenizi başka sitelerde kullandıysanız sıfırlamanızı önerir.</translation> <translation id="8866481888320382733">Politika ayarlarını ayrıştırma hatası</translation> <translation id="8870413625673593573">Son Kapatılan</translation> <translation id="8874824191258364635">Geçerli bir kart numarası girin</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index 51117e7..ebf0fd5 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -20,6 +20,7 @@ <translation id="1110994991967754504">Виберіть тип для дозволу "<ph name="PERMISSION_NAME" />"</translation> <translation id="1111153019813902504">Останні закладки</translation> <translation id="1113869188872983271">&Відмінити перевпорядкування</translation> +<translation id="1125573121925420732">Можуть з’являтися застереження під час оновлення системи безпеки сайтів. Цю проблему буде незабаром виправлено.</translation> <translation id="1126551341858583091">Обсяг локальної пам’яті – <ph name="CRASH_SIZE" />.</translation> <translation id="112840717907525620">Кеш-пам’ять правила не пошкоджено</translation> <translation id="1150979032973867961">Цей сервер не зміг довести, що він – домен <ph name="DOMAIN" />. Операційна система вашого комп’ютера не вважає його сертифікат безпеки надійним. Імовірні причини: неправильна конфігурація або хтось намагається перехопити ваше з’єднання.</translation> @@ -129,7 +130,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Проведіть діагностику мережі Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Оновіть парольну фразу для синхронізації.</translation> <translation id="1787142507584202372">Тут відображатимуться ваші відкриті вкладки</translation> -<translation id="1789575671122666129">Спливаючі вікна</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Ім’я та прізвище власника картки</translation> <translation id="1806541873155184440">Додано <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -263,6 +263,7 @@ <translation id="2742870351467570537">Видалити вибрані елементи</translation> <translation id="277133753123645258">Спосіб відправлення</translation> <translation id="277499241957683684">Відсутній запис пристрою</translation> +<translation id="2781030394888168909">Експортувати для ОС Mac</translation> <translation id="2784949926578158345">З’єднання було скинуто.</translation> <translation id="2788784517760473862">Прийнятні кредитні картки</translation> <translation id="2794233252405721443">Сайт заблоковано</translation> @@ -462,6 +463,7 @@ <translation id="4171400957073367226">Недійсний підпис для підтвердження</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{ще <ph name="ITEM_COUNT" /> елемент}one{ще <ph name="ITEM_COUNT" /> елемент}few{ще <ph name="ITEM_COUNT" /> елементи}many{ще <ph name="ITEM_COUNT" /> елементів}other{ще <ph name="ITEM_COUNT" /> елемента}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome радить скинути пароль, який приймає <ph name="ORG_NAME" />, якщо ви використовували його на інших сайтах.</translation> <translation id="4196861286325780578">&Повторити переміщення</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />перевірити конфігурацію брандмауера й антивірусної програми<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Збої в роботі</translation> @@ -509,6 +511,7 @@ <translation id="4415426530740016218">Адреса отримання</translation> <translation id="4424024547088906515">Цей сервер не зміг довести, що він – домен <ph name="DOMAIN" />. Chrome не вважає його сертифікат безпеки надійним. Імовірні причини: неправильна конфігурація або хтось намагається перехопити ваше з’єднання.</translation> <translation id="4432688616882109544">Хост <ph name="HOST_NAME" /> не прийняв ваш сертифікат входу або ви не надали цей сертифікат.</translation> +<translation id="4434045419905280838">Спливаючі вікна й переспрямуван.</translation> <translation id="443673843213245140">Використання проксі-сервера вимкнено, але чітко вказано налаштування проксі-сервера.</translation> <translation id="445100540951337728">Прийнятні дебетові картки</translation> <translation id="4506176782989081258">Помилка перевірки: <ph name="VALIDATION_ERROR" /></translation> @@ -694,13 +697,13 @@ <translation id="5869405914158311789">Немає зв’язку із сайтом</translation> <translation id="5869522115854928033">Збережені паролі</translation> <translation id="5893752035575986141">Кредитні картки, які приймаються.</translation> +<translation id="5898382028489516745">Chromium радить скинути пароль, який приймає <ph name="ORG_NAME" />, якщо ви використовували його на інших сайтах.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронізовано)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Використовується 1 файл}one{Використовується # файл}few{Використовуються # файли}many{Використовуються # файлів}other{Використовуються # файлу}}</translation> <translation id="5939518447894949180">Скинути</translation> <translation id="5959728338436674663">Автоматично надсилати в Google деяку <ph name="BEGIN_WHITEPAPER_LINK" />інформацію про систему та вміст сторінок<ph name="END_WHITEPAPER_LINK" />, щоб допомогти виявляти небезпечні додатки й сайти<ph name="PRIVACY_PAGE_LINK" />.</translation> <translation id="5967592137238574583">Змініть контактну інформацію</translation> <translation id="5967867314010545767">Видалити з історії</translation> -<translation id="5972020793760134803">Перейти на вкладку</translation> <translation id="5975083100439434680">Зменшити масштаб</translation> <translation id="598637245381783098">Неможливо відкрити додаток для платежів</translation> <translation id="5989320800837274978">Не вказано ні фіксованих проксі-серверів, ні URL-адрес сценарію .pac.</translation> @@ -1036,7 +1039,6 @@ <translation id="8553075262323480129">Помилка перекладу. Неможливо визначити мову сторінки.</translation> <translation id="8557066899867184262">Код CVC розташований на зворотному боці картки.</translation> <translation id="8559762987265718583">Не вдається встановити конфіденційне з’єднання з <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, оскільки на пристрої встановлено неправильні дату й час (<ph name="DATE_AND_TIME" />).</translation> -<translation id="8564985650692024650">Chromium радить скинути пароль <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, якщо ви застосовували його на інших сайтах.</translation> <translation id="8571890674111243710">Виконується переклад сторінки такою мовою: <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Додати тел.номер </translation> @@ -1064,7 +1066,6 @@ <translation id="884264119367021077">Адреса доставки</translation> <translation id="884923133447025588">Не знайдено механізм відкликання.</translation> <translation id="885730110891505394">Надання інформації службам Google</translation> -<translation id="8858065207712248076">Chrome радить скинути пароль <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, якщо ви застосовували його на інших сайтах.</translation> <translation id="8866481888320382733">Помилка аналізу налаштувань правила</translation> <translation id="8870413625673593573">Нещодавно закриті</translation> <translation id="8874824191258364635">Введіть дійсний номер картки</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index d9c83bb..a0b628b 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Thử chạy Chẩn đoán mạng của Windows<ph name="END_LINK" />.</translation> <translation id="1783075131180517613">Vui lòng cập nhật cụm mật khẩu đồng bộ hóa của bạn.</translation> <translation id="1787142507584202372">Tab đang mở của bạn xuất hiện ở đây</translation> -<translation id="1789575671122666129">Cửa sổ bật lên</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">Tên chủ thẻ</translation> <translation id="1806541873155184440">Ngày thêm: <ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">Chữ ký xác minh không hợp lệ</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> mục khác}other{<ph name="ITEM_COUNT" /> mục khác}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">Chrome khuyên bạn nên đặt lại mật khẩu <ph name="ORG_NAME" /> của mình nếu đã sử dụng lại mật khẩu này trên các trang web khác.</translation> <translation id="4196861286325780578">&Làm lại di chuyển</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />Kiểm tra tường lửa và cấu hình diệt vi-rút<ph name="END_LINK" /></translation> <translation id="4220128509585149162">Sự cố</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">Không thể truy cập trang web này</translation> <translation id="5869522115854928033">Mật khẩu đã lưu</translation> <translation id="5893752035575986141">Thẻ tín dụng được chấp nhận.</translation> +<translation id="5898382028489516745">Chromium khuyên bạn nên đặt lại mật khẩu <ph name="ORG_NAME" /> của mình nếu đã sử dụng lại mật khẩu này trên các trang web khác.</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (được đồng bộ hóa)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Đang sử dụng 1 cookie}other{Đang sử dụng # cookie}}</translation> <translation id="5939518447894949180">Đặt lại</translation> <translation id="5959728338436674663">Tự động gửi một số <ph name="BEGIN_WHITEPAPER_LINK" />thông tin hệ thống và nội dung trang<ph name="END_WHITEPAPER_LINK" /> tới Google để giúp phát hiện các ứng dụng và trang web nguy hiểm. <ph name="PRIVACY_PAGE_LINK" /></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="5972020793760134803">Chuyển tab</translation> <translation id="5975083100439434680">Thu nhỏ</translation> <translation id="598637245381783098">Không thể mở ứng dụng thanh toán</translation> <translation id="5989320800837274978">Cả máy chủ proxy cố định và URL tập lệnh .pac đều chưa được chỉ định.</translation> @@ -717,7 +717,7 @@ <translation id="6047927260846328439">Nội dung này có thể tìm cách đánh lừa bạn cài đặt phần mềm hoặc tiết lộ thông tin cá nhân. <ph name="BEGIN_LINK" />Vẫn hiển thị<ph name="END_LINK" /></translation> <translation id="6051221802930200923">Bạn không thể truy cập vào <ph name="SITE" /> ngay bây giờ do trang web sử dụng tính năng ghim chứng chỉ. Lỗi mạng và các cuộc tấn công mạng thường chỉ là tạm thời nên trang này có thể sẽ hoạt động lại sau.</translation> <translation id="6059925163896151826">Thiết bị USB</translation> -<translation id="6071091556643036997">Loại chính sách không hợp lệ.</translation> +<translation id="6071091556643036997">Loại chính sách là không hợp lệ.</translation> <translation id="6080696365213338172">Bạn đã truy cập nội dung bằng chứng chỉ do quản trị viên cấp. Dữ liệu mà bạn cung cấp cho <ph name="DOMAIN" /> có thể bị quản trị viên của bạn chặn.</translation> <translation id="610911394827799129">Tài khoản Google của bạn có thể có các dạng lịch sử duyệt web khác tại <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Không có}=1{1 mật khẩu (đã đồng bộ hóa)}other{# mật khẩu (đã đồng bộ hóa)}}</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">Dịch thất bại do ngôn ngữ của trang không được xác định.</translation> <translation id="8557066899867184262">CVC nằm ở mặt sau thẻ của bạn.</translation> <translation id="8559762987265718583">Không thể thiết lập kết nối riêng tư với <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> vì ngày và giờ (<ph name="DATE_AND_TIME" />) trên thiết bị của bạn không đúng.</translation> -<translation id="8564985650692024650">Chromium khuyên bạn nên đặt lại mật khẩu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> của mình nếu đã sử dụng lại mật khẩu này trên các trang web khác.</translation> <translation id="8571890674111243710">Đang dịch trang sang <ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">Thêm số đ.thoại </translation> @@ -1064,7 +1063,6 @@ <translation id="884264119367021077">Ðịa chỉ giao hàng</translation> <translation id="884923133447025588">Không tìm thấy cơ chế thu hồi.</translation> <translation id="885730110891505394">Chia sẻ với Google</translation> -<translation id="8858065207712248076">Chrome khuyên bạn nên đặt lại mật khẩu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> của mình nếu đã sử dụng lại mật khẩu này trên các trang web khác.</translation> <translation id="8866481888320382733">Lỗi phân tích cú pháp cài đặt chính sách</translation> <translation id="8870413625673593573">Các tab đã Đóng gần đây</translation> <translation id="8874824191258364635">Nhập số thẻ hợp lệ</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index f28df47..6f659d7c 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />尝试运行 Windows 网络诊断<ph name="END_LINK" />。</translation> <translation id="1783075131180517613">请更新您的同步密码。</translation> <translation id="1787142507584202372">您打开的标签页会显示在此处</translation> -<translation id="1789575671122666129">弹出式窗口</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">持卡人姓名</translation> <translation id="1806541873155184440">添加日期:<ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -459,6 +458,7 @@ <translation id="4171400957073367226">验证签名无效</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{另外 <ph name="ITEM_COUNT" /> 项}other{另外 <ph name="ITEM_COUNT" /> 项}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> - <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">如果您在其他网站上重复使用了您的 <ph name="ORG_NAME" /> 密码,Chrome 建议您重置该密码。</translation> <translation id="4196861286325780578">恢复移动(&R)</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />检查防火墙和防病毒配置<ph name="END_LINK" /></translation> <translation id="4220128509585149162">崩溃</translation> @@ -691,13 +691,13 @@ <translation id="5869405914158311789">无法访问此网站</translation> <translation id="5869522115854928033">已保存的密码</translation> <translation id="5893752035575986141">接受信用卡。</translation> +<translation id="5898382028489516745">如果您在其他网站上重复使用了您的 <ph name="ORG_NAME" /> 密码,Chromium 建议您重置该密码。</translation> <translation id="5908541034548427511"><ph name="TYPE_1" />(已同步)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{正在使用 1 个}other{正在使用 # 个}}</translation> <translation id="5939518447894949180">重置</translation> <translation id="5959728338436674663">自动向 Google 发送一些<ph name="BEGIN_WHITEPAPER_LINK" />系统信息和网页内容<ph name="END_WHITEPAPER_LINK" />,以帮助检测危险应用和网站。<ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">修改联系信息</translation> <translation id="5967867314010545767">从历史记录中移除</translation> -<translation id="5972020793760134803">切换至标签页</translation> <translation id="5975083100439434680">缩小</translation> <translation id="598637245381783098">无法打开付款应用</translation> <translation id="5989320800837274978">固定代理服务器和 .pac 脚本网址均未指定。</translation> @@ -1032,7 +1032,6 @@ <translation id="8553075262323480129">系统无法确定该网页的语言,因此无法进行翻译。</translation> <translation id="8557066899867184262">银行卡验证码 (CVC) 位于银行卡背面。</translation> <translation id="8559762987265718583">您设备的日期和时间(<ph name="DATE_AND_TIME" />)不正确,因此无法与 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 建立私密连接。</translation> -<translation id="8564985650692024650">如果您在其他网站上重复使用了您的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密码,Chromium 建议您重置该密码。</translation> <translation id="8571890674111243710">正在将网页翻译成<ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">添加电话号码 </translation> @@ -1060,7 +1059,6 @@ <translation id="884264119367021077">送货地址</translation> <translation id="884923133447025588">未找到任何吊销机制。</translation> <translation id="885730110891505394">与 Google 分享</translation> -<translation id="8858065207712248076">如果您在其他网站上重复使用了您的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密码,Chrome 建议您重置该密码。</translation> <translation id="8866481888320382733">解析策略设置时出错</translation> <translation id="8870413625673593573">最近关闭的标签页</translation> <translation id="8874824191258364635">请输入有效的信用卡号</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index ee331b0..3ac970a 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -129,7 +129,6 @@ <translation id="1768211456781949159"><ph name="BEGIN_LINK" />嘗試執行 Windows 網路診斷<ph name="END_LINK" />。</translation> <translation id="1783075131180517613">請更新你的同步通關密語。</translation> <translation id="1787142507584202372">這裡會顯示你最近開啟的分頁</translation> -<translation id="1789575671122666129">彈出式視窗</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">持卡人姓名</translation> <translation id="1806541873155184440">新增日期:<ph name="ADDED_TO_AUTOFILL_MONTH" /></translation> @@ -462,6 +461,7 @@ <translation id="4171400957073367226">驗證簽名無效</translation> <translation id="4173827307318847180">{MORE_ITEMS,plural, =1{還有另外 <ph name="ITEM_COUNT" /> 個項目}other{還有另外 <ph name="ITEM_COUNT" /> 個項目}}</translation> <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation> +<translation id="4192549185358213268">如果你在其他網站上重複使用過你的 <ph name="ORG_NAME" /> 密碼,Chrome 建議你重設密碼。</translation> <translation id="4196861286325780578">重做移動(&R)</translation> <translation id="4203896806696719780"><ph name="BEGIN_LINK" />檢查防火牆和防毒軟體設定<ph name="END_LINK" /></translation> <translation id="4220128509585149162">當機</translation> @@ -694,13 +694,13 @@ <translation id="5869405914158311789">無法連上這個網站</translation> <translation id="5869522115854928033">已儲存的密碼</translation> <translation id="5893752035575986141">接受簽帳金融卡。</translation> +<translation id="5898382028489516745">如果你在其他網站上重複使用過你的 <ph name="ORG_NAME" /> 密碼,Chromium 建議你重設密碼。</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (已同步)</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{目前使用 1 個 Cookie}other{目前使用 # 個 Cookie}}</translation> <translation id="5939518447894949180">重設</translation> <translation id="5959728338436674663">自動傳送部分<ph name="BEGIN_WHITEPAPER_LINK" />系統資訊和網頁內容<ph name="END_WHITEPAPER_LINK" />給 Google,協助偵測危險的應用程式和網站。<ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="5967592137238574583">編輯聯絡資訊</translation> <translation id="5967867314010545767">從記錄中移除</translation> -<translation id="5972020793760134803">切換至分頁</translation> <translation id="5975083100439434680">縮小</translation> <translation id="598637245381783098">無法開啟付款應用程式</translation> <translation id="5989320800837274978">沒有指定固定的 Proxy 伺服器和 .pac 指令碼網址。</translation> @@ -1036,7 +1036,6 @@ <translation id="8553075262323480129">無法判定網頁的語言,翻譯作業失敗。</translation> <translation id="8557066899867184262">信用卡安全碼位於信用卡背面。</translation> <translation id="8559762987265718583">你裝置的日期和時間 (<ph name="DATE_AND_TIME" />) 不正確,因此無法與 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 建立私人連線。</translation> -<translation id="8564985650692024650">如果你在其他網站上重複使用過你的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密碼,Chromium 會建議你重設密碼。</translation> <translation id="8571890674111243710">正在將網頁翻譯成<ph name="LANGUAGE" />...</translation> <translation id="858637041960032120">新增電話號碼</translation> <translation id="859285277496340001">憑證未指定負責檢查其本身是否已遭到撤銷的機制。</translation> @@ -1063,7 +1062,6 @@ <translation id="884264119367021077">運送地址</translation> <translation id="884923133447025588">未發現撤銷機制。</translation> <translation id="885730110891505394">與 Google 分享</translation> -<translation id="8858065207712248076">如果你在其他網站上重複使用過你的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密碼,Chrome 會建議你重設密碼。</translation> <translation id="8866481888320382733">解析政策設定時發生錯誤</translation> <translation id="8870413625673593573">最近關閉的分頁</translation> <translation id="8874824191258364635">請輸入有效的信用卡號碼</translation>
diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.cc b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.cc index b43fb8f..4f73a45 100644 --- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.cc +++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_client_request.cc
@@ -13,7 +13,6 @@ #include "base/metrics/histogram_macros.h" #include "base/single_thread_task_runner.h" #include "components/subresource_filter/content/browser/subresource_filter_safe_browsing_client.h" -#include "components/subresource_filter/core/common/time_measurements.h" #include "content/public/browser/browser_thread.h" #include "url/gurl.h" @@ -49,8 +48,6 @@ start_time_ = base::TimeTicks::Now(); bool synchronous_finish = database_manager_->CheckUrlForSubresourceFilter(url, this); - UMA_HISTOGRAM_MICRO_TIMES("SubresourceFilter.SafeBrowsing.CheckDispatchTime", - (base::TimeTicks::Now() - start_time_)); if (synchronous_finish) { request_completed_ = true; SendCheckResultToClient(false /* served_from_network */,
diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresource_filter/tools/BUILD.gn index f34edd6..58f259b 100644 --- a/components/subresource_filter/tools/BUILD.gn +++ b/components/subresource_filter/tools/BUILD.gn
@@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/compiled_action.gni") static_library("tools_lib") { sources = [ @@ -40,7 +40,8 @@ "//url", ] } -if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) { + +if (!is_ios) { executable("subresource_filter_tool") { # Production code should not depend on this. testonly = true @@ -67,13 +68,53 @@ ] } + executable("ruleset_converter") { + sources = [ + "ruleset_converter/main.cc", + ] + deps = [ + "ruleset_converter:support", + "//base", + "//build/config:exe_and_shlib_deps", + "//third_party/protobuf:protobuf_lite", + ] + } + group("subresource_filter_tools") { # Production code should not depend on this. testonly = true deps = [ + ":ruleset_converter", ":subresource_filter_tool", ":subresource_indexing_tool", - "ruleset_converter", + ] + } + + # This action compiles the indexing tool using the host's toolchain, and + # generates an indexed ruleset using the existing unindexed ruleset in the + # source tree. + compiled_action("index_ruleset") { + testonly = true + tool = ":subresource_indexing_tool" + + outputs = [ + "$target_gen_dir/GeneratedRulesetData", + ] + + inputs = [ + # Make sure the inputs are system-absolute, as base::File cannot open files with ".." components. + rebase_path( + "//components/subresource_filter/core/common/perftests/data/UnindexedRules_7.54", + "", + "/"), + ] + deps = [ + ":subresource_indexing_tool", + ] + + args = [ + inputs[0], + rebase_path("$target_gen_dir/GeneratedRulesetData", root_build_dir), ] } }
diff --git a/components/subresource_filter/tools/ruleset_converter/BUILD.gn b/components/subresource_filter/tools/ruleset_converter/BUILD.gn index 4373641..3fb1ca69 100644 --- a/components/subresource_filter/tools/ruleset_converter/BUILD.gn +++ b/components/subresource_filter/tools/ruleset_converter/BUILD.gn
@@ -2,8 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") - source_set("support") { sources = [ "//third_party/protobuf:protobuf_lite", @@ -42,17 +40,3 @@ "//testing/gtest", ] } - -if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) { - executable("ruleset_converter") { - sources = [ - "main.cc", - ] - deps = [ - ":support", - "//base", - "//build/config:exe_and_shlib_deps", - "//third_party/protobuf:protobuf_lite", - ] - } -}
diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc index e7c5d802..07f8693 100644 --- a/components/viz/service/display/gl_renderer.cc +++ b/components/viz/service/display/gl_renderer.cc
@@ -1029,7 +1029,9 @@ static GLuint GetGLTextureIDFromSkImage(const SkImage* image, GrSurfaceOrigin* origin = nullptr) { GrBackendTexture backend_texture = image->getBackendTexture(true, origin); - DCHECK(backend_texture.isValid()); + if (!backend_texture.isValid()) { + return 0; + } GrGLTextureInfo info; bool result = backend_texture.getGLTextureInfo(&info); DCHECK(result); @@ -1076,7 +1078,7 @@ if (params->background_image) { params->background_image_id = GetGLTextureIDFromSkImage(params->background_image.get()); - DCHECK(params->background_image_id); + DCHECK(params->background_image_id || IsContextLost()); } } } @@ -1217,7 +1219,7 @@ GrSurfaceOrigin origin; GLuint filter_image_id = GetGLTextureIDFromSkImage(params->filter_image.get(), &origin); - DCHECK(filter_image_id); + DCHECK(filter_image_id || IsContextLost()); DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); gl_->BindTexture(GL_TEXTURE_2D, filter_image_id); gl_->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc index 4863bbf..00949647 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc
@@ -396,7 +396,7 @@ InitializeWebRtcModule(); #endif - SkFontConfigInterface::SetGlobal(new FontConfigIPC(GetSandboxFD()))->unref(); + SkFontConfigInterface::SetGlobal(sk_make_sp<FontConfigIPC>(GetSandboxFD())); // Set the android SkFontMgr for blink. We need to ensure this is done // before the sandbox is initialized to allow the font manager to access
diff --git a/content/app/strings/translations/content_strings_bn.xtb b/content/app/strings/translations/content_strings_bn.xtb index b3d87cdb..a8a4f99 100644 --- a/content/app/strings/translations/content_strings_bn.xtb +++ b/content/app/strings/translations/content_strings_bn.xtb
@@ -100,7 +100,7 @@ <translation id="5406322316791861025">আকার</translation> <translation id="5453733299334684579">ট্রি আইটেম</translation> <translation id="5466621249238537318">দয়া করে এক বা একাধিক ফাইল নির্বাচন করুন৷</translation> -<translation id="5468998798572797635">পূর্ণ স্ক্রীন বন্ধ করুন</translation> +<translation id="5468998798572797635">পূর্ণ স্ক্রিন বন্ধ করুন</translation> <translation id="5516424706154626233">তারিখ চয়নকারি</translation> <translation id="5537725057119320332">কাস্ট করুন</translation> <translation id="5546461542133609677">সশব্দ</translation> @@ -161,7 +161,7 @@ <translation id="8053789581856978548">অনুসন্ধান পাঠ্য ফিল্ড</translation> <translation id="8115662671911883373">বন্ধ পরিচয়লিপিগুলির প্রদর্শন শুরু করুন</translation> <translation id="8117451130807776954">এই সপ্তাহ</translation> -<translation id="819205353528511139">পূর্ণ স্ক্রীন মোডে চলচ্চিত্র চালান</translation> +<translation id="819205353528511139">পূর্ণ স্ক্রিন মোডে চলচ্চিত্র চালান</translation> <translation id="8199524924445686405">yyyy</translation> <translation id="8284326494547611709">পরিচয়লিপিগুলি</translation> <translation id="835897206747267392">অকার্যকর মান৷</translation>
diff --git a/content/browser/background_fetch/background_fetch.proto b/content/browser/background_fetch/background_fetch.proto index 2feb0bc..ec387edd 100644 --- a/content/browser/background_fetch/background_fetch.proto +++ b/content/browser/background_fetch/background_fetch.proto
@@ -57,32 +57,6 @@ optional uint64 download_total = 3; } -// Serializable version of the ServiceWorkerFetchRequest struct defined in -// https://cs.chromium.org/chromium/src/content/common/service_worker/service_worker_types.h?l=76&rcl=9903bc4a5b9eb1e515d712dcc61e2af01a3086fb -// -// WARNING: Don't add any fields that aren't part of the -// ServiceWorkerFetchRequest constructor. This is just a temporary hack until a -// more canonical solution is implemented. -// -// Next Tag: 6 -message ServiceWorkerFetchRequest { - // Serializable version of the Referrer struct defined in - // https://cs.chromium.org/chromium/src/content/public/common/referrer.h - // - // Next Tag: 3 - message Referrer { - optional string url = 1; - // blink::WebReferrerPolicy enum. - optional int32 policy = 2; - } - - optional string url = 1; - optional string method = 2; - map<string, string> headers = 3; - optional Referrer referrer = 4; - optional bool is_reload = 5; -} - // Stores information about the background fetch that will be persisted // in memory. This information should be everything needed to reconstruct // the state of an interrupted background fetch. @@ -105,7 +79,7 @@ message BackgroundFetchPendingRequest { optional string unique_id = 1; optional int32 request_index = 2; - optional ServiceWorkerFetchRequest request = 3; + optional string serialized_request = 3; } // A background fetch request in the active state. This means that @@ -115,7 +89,7 @@ message BackgroundFetchActiveRequest { optional string unique_id = 1; optional int32 request_index = 2; - optional ServiceWorkerFetchRequest request = 3; + optional string serialized_request = 3; optional string download_guid = 4; } @@ -126,7 +100,7 @@ message BackgroundFetchCompletedRequest { optional string unique_id = 1; optional int32 request_index = 2; - optional ServiceWorkerFetchRequest request = 3; + optional string serialized_request = 3; optional string download_guid = 4; optional bool succeeded = 5; } \ No newline at end of file
diff --git a/content/browser/background_fetch/storage/create_metadata_task.cc b/content/browser/background_fetch/storage/create_metadata_task.cc index 20e744f..c070e9f 100644 --- a/content/browser/background_fetch/storage/create_metadata_task.cc +++ b/content/browser/background_fetch/storage/create_metadata_task.cc
@@ -115,8 +115,7 @@ proto::BackgroundFetchPendingRequest pending_request_proto; pending_request_proto.set_unique_id(registration_id_.unique_id()); pending_request_proto.set_request_index(i); - FillServiceWorkerFetchRequestProto(requests_[i], - pending_request_proto.mutable_request()); + pending_request_proto.set_serialized_request(requests_[i].Serialize()); entries.emplace_back(PendingRequestKey(registration_id_.unique_id(), i), pending_request_proto.SerializeAsString()); }
diff --git a/content/browser/background_fetch/storage/database_helpers.cc b/content/browser/background_fetch/storage/database_helpers.cc index 0315e83..cb8348e 100644 --- a/content/browser/background_fetch/storage/database_helpers.cc +++ b/content/browser/background_fetch/storage/database_helpers.cc
@@ -88,19 +88,6 @@ return DatabaseStatus::kFailed; } -void FillServiceWorkerFetchRequestProto( - const ServiceWorkerFetchRequest& request, - proto::ServiceWorkerFetchRequest* request_proto) { - DCHECK(request_proto); - request_proto->set_url(request.url.spec()); - request_proto->set_method(request.method); - request_proto->mutable_headers()->insert(request.headers.begin(), - request.headers.end()); - request_proto->mutable_referrer()->set_url(request.referrer.url.spec()); - request_proto->mutable_referrer()->set_policy(request.referrer.policy); - request_proto->set_is_reload(request.is_reload); -} - } // namespace background_fetch } // namespace content
diff --git a/content/browser/background_fetch/storage/database_helpers.h b/content/browser/background_fetch/storage/database_helpers.h index fe0550b..c818743 100644 --- a/content/browser/background_fetch/storage/database_helpers.h +++ b/content/browser/background_fetch/storage/database_helpers.h
@@ -7,7 +7,6 @@ #include <string> -#include "content/browser/background_fetch/background_fetch.pb.h" #include "content/common/service_worker/service_worker_status_code.h" #include "content/common/service_worker/service_worker_types.h" @@ -53,10 +52,6 @@ DatabaseStatus ToDatabaseStatus(ServiceWorkerStatusCode status); -void FillServiceWorkerFetchRequestProto( - const ServiceWorkerFetchRequest& request, - proto::ServiceWorkerFetchRequest* request_proto); - } // namespace background_fetch } // namespace content
diff --git a/content/browser/background_fetch/storage/mark_request_complete_task.cc b/content/browser/background_fetch/storage/mark_request_complete_task.cc index ed80fee3..63884ce 100644 --- a/content/browser/background_fetch/storage/mark_request_complete_task.cc +++ b/content/browser/background_fetch/storage/mark_request_complete_task.cc
@@ -48,8 +48,8 @@ void MarkRequestCompleteTask::CreateAndStoreCompletedRequest(bool succeeded) { completed_request_.set_unique_id(registration_id_.unique_id()); completed_request_.set_request_index(request_info_->request_index()); - FillServiceWorkerFetchRequestProto(request_info_->fetch_request(), - completed_request_.mutable_request()); + completed_request_.set_serialized_request( + request_info_->fetch_request().Serialize()); completed_request_.set_download_guid(request_info_->download_guid()); completed_request_.set_succeeded(succeeded);
diff --git a/content/browser/background_fetch/storage/start_next_pending_request_task.cc b/content/browser/background_fetch/storage/start_next_pending_request_task.cc index c0eda96b..107bb160 100644 --- a/content/browser/background_fetch/storage/start_next_pending_request_task.cc +++ b/content/browser/background_fetch/storage/start_next_pending_request_task.cc
@@ -103,7 +103,8 @@ active_request_.set_unique_id(pending_request_.unique_id()); active_request_.set_request_index(pending_request_.request_index()); // Transfer ownership of the request to avoid a potentially expensive copy. - active_request_.set_allocated_request(pending_request_.release_request()); + active_request_.set_allocated_serialized_request( + pending_request_.release_serialized_request()); service_worker_context()->StoreRegistrationUserData( service_worker_registration_id_, GURL(metadata_->origin()), @@ -134,7 +135,8 @@ auto next_request = base::MakeRefCounted<BackgroundFetchRequestInfo>( active_request_.request_index(), - DeserializeFetchRequest(active_request_.request())); + ServiceWorkerFetchRequest::ParseFromString( + active_request_.serialized_request())); next_request->SetDownloadGuid(active_request_.download_guid()); std::move(callback_).Run(next_request); @@ -148,18 +150,6 @@ weak_factory_.GetWeakPtr())); } -ServiceWorkerFetchRequest StartNextPendingRequestTask::DeserializeFetchRequest( - const proto::ServiceWorkerFetchRequest& request) { - return ServiceWorkerFetchRequest( - GURL(request.url()), request.method(), - ServiceWorkerHeaderMap(request.headers().begin(), - request.headers().end()), - Referrer( - GURL(request.referrer().url()), - static_cast<blink::WebReferrerPolicy>(request.referrer().policy())), - request.is_reload()); -} - void StartNextPendingRequestTask::DidDeletePendingRequest( ServiceWorkerStatusCode status) { // TODO(crbug.com/780025): Log failures to UMA.
diff --git a/content/browser/background_fetch/storage/start_next_pending_request_task.h b/content/browser/background_fetch/storage/start_next_pending_request_task.h index 948bcc5e..476db6a 100644 --- a/content/browser/background_fetch/storage/start_next_pending_request_task.h +++ b/content/browser/background_fetch/storage/start_next_pending_request_task.h
@@ -48,9 +48,6 @@ void StartDownload(); - ServiceWorkerFetchRequest DeserializeFetchRequest( - const proto::ServiceWorkerFetchRequest& request); - void DidDeletePendingRequest(ServiceWorkerStatusCode status); int64_t service_worker_registration_id_;
diff --git a/content/browser/devtools/devtools_target_registry.cc b/content/browser/devtools/devtools_target_registry.cc index a426d9e..851f755 100644 --- a/content/browser/devtools/devtools_target_registry.cc +++ b/content/browser/devtools/devtools_target_registry.cc
@@ -149,10 +149,12 @@ void WebContentsDestroyed() override { NOTREACHED() << "DevToolsTarget Registry clients should be destroyed " "before WebContents"; + registry_->UnregisterWebContents(web_contents()); } ~ContentsObserver() override { - registry_->UnregisterWebContents(web_contents()); + if (web_contents()) + registry_->UnregisterWebContents(web_contents()); } DevToolsTargetRegistry* registry_;
diff --git a/content/browser/download/byte_stream_input_stream.cc b/content/browser/download/byte_stream_input_stream.cc index 247821957..d62aefa 100644 --- a/content/browser/download/byte_stream_input_stream.cc +++ b/content/browser/download/byte_stream_input_stream.cc
@@ -4,13 +4,16 @@ #include "content/browser/download/byte_stream_input_stream.h" +#include "components/download/public/common/download_task_runner.h" #include "content/browser/byte_stream.h" namespace content { ByteStreamInputStream::ByteStreamInputStream( std::unique_ptr<ByteStreamReader> stream_reader) - : stream_reader_(std::move(stream_reader)), + : stream_reader_( + stream_reader.release(), + base::OnTaskRunnerDeleter(download::GetDownloadTaskRunner())), completion_status_(download::DOWNLOAD_INTERRUPT_REASON_NONE) {} ByteStreamInputStream::~ByteStreamInputStream() = default;
diff --git a/content/browser/download/byte_stream_input_stream.h b/content/browser/download/byte_stream_input_stream.h index 1deaeb4b..3ec4cbc 100644 --- a/content/browser/download/byte_stream_input_stream.h +++ b/content/browser/download/byte_stream_input_stream.h
@@ -30,7 +30,7 @@ private: // ByteStreamReader to read from. - std::unique_ptr<ByteStreamReader> stream_reader_; + std::unique_ptr<ByteStreamReader, base::OnTaskRunnerDeleter> stream_reader_; // Status when the response completes. download::DownloadInterruptReason completion_status_;
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc index ea9d41b..97fa5b1 100644 --- a/content/browser/download/download_browsertest.cc +++ b/content/browser/download/download_browsertest.cc
@@ -576,6 +576,46 @@ base::Closure completion_closure_; }; +class ErrorStreamCountingObserver : download::DownloadItem::Observer { + public: + ErrorStreamCountingObserver() : item_(nullptr), count_(0){}; + + ~ErrorStreamCountingObserver() override { + if (item_) + item_->RemoveObserver(this); + } + + void OnDownloadUpdated(download::DownloadItem* download) override { + std::unique_ptr<base::HistogramSamples> samples = + histogram_tester_.GetHistogramSamplesSinceCreation( + "Download.ParallelDownloadAddStreamSuccess"); + if (samples->GetCount(0 /* failure */) == count_ && + !completion_closure_.is_null()) + base::ResetAndReturn(&completion_closure_).Run(); + } + + void OnDownloadDestroyed(download::DownloadItem* download) override { + item_ = nullptr; + } + + void WaitForFinished(download::DownloadItem* item, int count) { + item_ = item; + count_ = count; + if (item_) { + item_->AddObserver(this); + base::RunLoop run_loop; + completion_closure_ = run_loop.QuitClosure(); + run_loop.Run(); + } + } + + private: + base::HistogramTester histogram_tester_; + download::DownloadItem* item_; + int count_; + base::Closure completion_closure_; +}; + bool IsDownloadInState(download::DownloadItem::DownloadState state, download::DownloadItem* item) { return item->GetState() == state; @@ -974,7 +1014,8 @@ void RunResumptionTest( const download::DownloadItem::ReceivedSlices& received_slices, int64_t total_length, - size_t expected_request_count) { + size_t expected_request_count, + bool support_partial_response) { EXPECT_TRUE( base::FeatureList::IsEnabled(download::features::kParallelDownloading)); GURL url = TestDownloadHttpResponse::GetNextURLForDownload(); @@ -983,6 +1024,7 @@ parameters.etag = "ABC"; parameters.size = total_length; parameters.last_modified = std::string(); + parameters.support_partial_response = support_partial_response; // Needed to specify HTTP connection type to create parallel download. parameters.connection_type = net::HttpResponseInfo::CONNECTION_INFO_HTTP1_1; TestDownloadHttpResponse::StartServing(parameters, server_url); @@ -999,12 +1041,17 @@ // Resume the parallel download with sparse file and received slices data. download->Resume(); WaitForCompletion(download); - test_response_handler()->WaitUntilCompletion(expected_request_count); + // TODO(qinmin): count the failed partial responses in DownloadJob when + // support_partial_response is false. EmbeddedTestServer doesn't know + // whether completing or canceling the response will come first. + if (support_partial_response) { + test_response_handler()->WaitUntilCompletion(expected_request_count); - // Verify number of requests sent to the server. - const TestDownloadResponseHandler::CompletedRequests& completed_requests = - test_response_handler()->completed_requests(); - EXPECT_EQ(expected_request_count, completed_requests.size()); + // Verify number of requests sent to the server. + const TestDownloadResponseHandler::CompletedRequests& completed_requests = + test_response_handler()->completed_requests(); + EXPECT_EQ(expected_request_count, completed_requests.size()); + } // Verify download content on disk. ReadAndVerifyFileContents(parameters.pattern_generator_seed, @@ -1013,6 +1060,7 @@ // Verifies parallel download completion. void RunCompletionTest(TestDownloadHttpResponse::Parameters& parameters) { + ErrorStreamCountingObserver observer; EXPECT_TRUE( base::FeatureList::IsEnabled(download::features::kParallelDownloading)); @@ -1026,22 +1074,28 @@ parameters.connection_type = net::HttpResponseInfo::CONNECTION_INFO_HTTP1_1; TestRequestPauseHandler request_pause_handler; parameters.on_pause_handler = request_pause_handler.GetOnPauseHandler(); + // Send some data for the first request and pause it so download won't + // complete before other parallel requests are created. parameters.pause_offset = DownloadRequestCore::kDownloadByteStreamSize; TestDownloadHttpResponse::StartServing(parameters, server_url); download::DownloadItem* download = StartDownloadAndReturnItem(shell(), server_url); - // Send some data for the first request and pause it so download won't - // complete before other parallel requests are created. - test_response_handler()->WaitUntilCompletion(2u); + + if (parameters.support_partial_response) + test_response_handler()->WaitUntilCompletion(2u); + else + observer.WaitForFinished(download, 2); // Now resume the first request. request_pause_handler.Resume(); WaitForCompletion(download); - test_response_handler()->WaitUntilCompletion(3u); - const TestDownloadResponseHandler::CompletedRequests& completed_requests = - test_response_handler()->completed_requests(); - EXPECT_EQ(kTestRequestCount, static_cast<int>(completed_requests.size())); + if (parameters.support_partial_response) { + test_response_handler()->WaitUntilCompletion(3u); + const TestDownloadResponseHandler::CompletedRequests& completed_requests = + test_response_handler()->completed_requests(); + EXPECT_EQ(3u, completed_requests.size()); + } ReadAndVerifyFileContents(parameters.pattern_generator_seed, parameters.size, download->GetTargetFilePath()); } @@ -3182,6 +3236,17 @@ RunCompletionTest(parameters); } +// The server will send Accept-Ranges header without partial response. +IN_PROC_BROWSER_TEST_F(ParallelDownloadTest, NoPartialResponse) { + TestDownloadHttpResponse::Parameters parameters; + parameters.etag = "ABC"; + parameters.size = 5097152; + parameters.support_byte_ranges = true; + parameters.support_partial_response = false; + + RunCompletionTest(parameters); +} + // Verify parallel download resumption. IN_PROC_BROWSER_TEST_F(ParallelDownloadTest, Resumption) { // Create the received slices data, the last request is not finished and the @@ -3192,7 +3257,8 @@ download::DownloadItem::ReceivedSlice(2000000, 1000, false /* finished */)}; - RunResumptionTest(received_slices, 3000000, kTestRequestCount); + RunResumptionTest(received_slices, 3000000, kTestRequestCount, + true /* support_partial_response */); } // Verifies that if the last slice is finished, parallel download resumption @@ -3207,7 +3273,8 @@ // The server shouldn't receive an additional request, since the last slice // is marked as finished. - RunResumptionTest(received_slices, 3000000, kTestRequestCount - 1); + RunResumptionTest(received_slices, 3000000, kTestRequestCount - 1, + true /* support_partial_response */); } // Verifies that if the last slice is finished, but the database record is not @@ -3223,7 +3290,23 @@ // Client will send an out of range request where server will send back HTTP // range not satisfied, and download can complete. - RunResumptionTest(received_slices, 3000000, kTestRequestCount); + RunResumptionTest(received_slices, 3000000, kTestRequestCount, + true /* support_partial_response */); +} + +// Verify that if server doesn't support partial response, resuming a parallel +// download should complete the download. +IN_PROC_BROWSER_TEST_F(ParallelDownloadTest, ResumptionNoPartialResponse) { + // Create the received slices data, the last request is not finished and the + // server will send more data to finish the last slice. + std::vector<download::DownloadItem::ReceivedSlice> received_slices = { + download::DownloadItem::ReceivedSlice(0, 1000), + download::DownloadItem::ReceivedSlice(1000000, 1000), + download::DownloadItem::ReceivedSlice(2000000, 1000, + false /* finished */)}; + + RunResumptionTest(received_slices, 3000000, kTestRequestCount, + false /* support_partial_response */); } // Test to verify that the browser-side enforcement of X-Frame-Options does
diff --git a/content/browser/frame_host/navigation_handle_impl.cc b/content/browser/frame_host/navigation_handle_impl.cc index df35ab90..b2369801 100644 --- a/content/browser/frame_host/navigation_handle_impl.cc +++ b/content/browser/frame_host/navigation_handle_impl.cc
@@ -380,12 +380,14 @@ } RenderFrameHostImpl* NavigationHandleImpl::GetRenderFrameHost() { - // TODO(mkwst): Change this to check against 'READY_TO_COMMIT' once - // ReadyToCommitNavigation is available whether or not PlzNavigate is - // enabled. https://crbug.com/621856 - CHECK_GE(state_, WILL_PROCESS_RESPONSE) - << "This accessor should only be called after a response has been " - "delivered for processing."; + // Only allow the RenderFrameHost to be retrieved once it has been set for + // this navigation. This will happens either at WillProcessResponse time for + // regular navigations or at WillFailRequest time for error pages. + CHECK_GE(state_, WILL_FAIL_REQUEST) + << "This accessor should only be called after a RenderFrameHost has been " + "picked for this navigation."; + static_assert(WILL_FAIL_REQUEST < WILL_PROCESS_RESPONSE, + "WillFailRequest state should come before WillProcessResponse"); return render_frame_host_; } @@ -493,9 +495,11 @@ NavigationThrottle::ThrottleCheckResult NavigationHandleImpl::CallWillFailRequestForTesting( + RenderFrameHost* render_frame_host, base::Optional<net::SSLInfo> ssl_info) { NavigationThrottle::ThrottleCheckResult result = NavigationThrottle::DEFER; - WillFailRequest(ssl_info, base::Bind(&UpdateThrottleCheckResult, &result)); + WillFailRequest(static_cast<RenderFrameHostImpl*>(render_frame_host), + ssl_info, base::Bind(&UpdateThrottleCheckResult, &result)); // Reset the callback to ensure it will not be called later. complete_callback_.Reset(); @@ -504,7 +508,7 @@ NavigationThrottle::ThrottleCheckResult NavigationHandleImpl::CallWillProcessResponseForTesting( - content::RenderFrameHost* render_frame_host, + RenderFrameHost* render_frame_host, const std::string& raw_response_headers) { scoped_refptr<net::HttpResponseHeaders> headers = new net::HttpResponseHeaders(raw_response_headers); @@ -725,6 +729,7 @@ } void NavigationHandleImpl::WillFailRequest( + RenderFrameHostImpl* render_frame_host, base::Optional<net::SSLInfo> ssl_info, const ThrottleChecksFinishedCallback& callback) { TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationHandle", this, @@ -732,6 +737,7 @@ if (ssl_info.has_value()) ssl_info_ = ssl_info.value(); + render_frame_host_ = render_frame_host; complete_callback_ = callback; state_ = WILL_FAIL_REQUEST; @@ -800,6 +806,18 @@ TRACE_EVENT_ASYNC_STEP_INTO0("navigation", "NavigationHandle", this, "ReadyToCommitNavigation"); + // If the NavigationHandle already has a RenderFrameHost set at + // WillProcessResponse time, we should not be changing it. One exception is + // errors originating from WillProcessResponse throttles, which might commit + // in a different RenderFrameHost. For example, a throttle might return + // CANCEL with an error code from WillProcessResponse, which will cancel the + // navigation and get here to commit the error page, with |render_frame_host| + // recomputed for the error page. + DCHECK(!render_frame_host_ || is_error || + render_frame_host_ == render_frame_host) + << "Unsupported RenderFrameHost change from " << render_frame_host_ + << " to " << render_frame_host << " with is_error=" << is_error; + render_frame_host_ = render_frame_host; state_ = READY_TO_COMMIT; ready_to_commit_time_ = base::TimeTicks::Now(); @@ -817,6 +835,17 @@ base::TimeDelta delta = ready_to_commit_time_ - navigation_start_; LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit", transition_, delta, base::TimeDelta::FromSeconds(10)); + + if (IsInMainFrame()) { + LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.MainFrame", + transition_, delta, + base::TimeDelta::FromSeconds(10)); + } else { + LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.Subframe", + transition_, delta, + base::TimeDelta::FromSeconds(10)); + } + if (is_same_process_) { LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.SameProcess", transition_, delta,
diff --git a/content/browser/frame_host/navigation_handle_impl.h b/content/browser/frame_host/navigation_handle_impl.h index 3e7d25f4..f11fe8d 100644 --- a/content/browser/frame_host/navigation_handle_impl.h +++ b/content/browser/frame_host/navigation_handle_impl.h
@@ -143,6 +143,7 @@ const GURL& new_referrer_url, bool new_is_external_protocol) override; NavigationThrottle::ThrottleCheckResult CallWillFailRequestForTesting( + RenderFrameHost* render_frame_host, base::Optional<net::SSLInfo> ssl_info) override; NavigationThrottle::ThrottleCheckResult CallWillProcessResponseForTesting( RenderFrameHost* render_frame_host, @@ -269,11 +270,13 @@ RenderProcessHost* post_redirect_process, const ThrottleChecksFinishedCallback& callback); - // Called when the URLRequest will fail. |callback| will be called when all - // throttles check have completed. This will allow the caller to explicitly - // cancel the navigation (with a custom error code and/or custom error page - // HTML) or let the failure proceed as normal. - void WillFailRequest(base::Optional<net::SSLInfo> ssl_info, + // Called when the URLRequest will fail. |render_frame_host| corresponds to + // the RenderFrameHost in which the error page will load. |callback| will be + // called when all throttles check have completed. This will allow the caller + // to explicitly cancel the navigation (with a custom error code and/or + // custom error page HTML) or let the failure proceed as normal. + void WillFailRequest(RenderFrameHostImpl* render_frame_host, + base::Optional<net::SSLInfo> ssl_info, const ThrottleChecksFinishedCallback& callback); // Called when the URLRequest has delivered response headers and metadata.
diff --git a/content/browser/frame_host/navigation_handle_impl_browsertest.cc b/content/browser/frame_host/navigation_handle_impl_browsertest.cc index b2256821..fd806c76 100644 --- a/content/browser/frame_host/navigation_handle_impl_browsertest.cc +++ b/content/browser/frame_host/navigation_handle_impl_browsertest.cc
@@ -2197,8 +2197,8 @@ } } -// Verify that the SameProcess vs CrossProcess version of the -// TimeToReadyToCommit metric is correctly logged. +// Verify that the TimeToReadyToCommit metrics are correctly logged for +// SameProcess vs CrossProcess as well as MainFrame vs Subframe cases. IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, TimeToReadyToCommitMetrics) { EXPECT_TRUE( @@ -2211,6 +2211,8 @@ EXPECT_TRUE(NavigateToURL(shell(), url)); base::HistogramTester::CountsMap expected_counts = { + {"Navigation.TimeToReadyToCommit.MainFrame", 1}, + {"Navigation.TimeToReadyToCommit.MainFrame.NewNavigation", 1}, {"Navigation.TimeToReadyToCommit.NewNavigation", 1}, {"Navigation.TimeToReadyToCommit.SameProcess", 1}, {"Navigation.TimeToReadyToCommit.SameProcess.NewNavigation", 1}}; @@ -2226,6 +2228,8 @@ EXPECT_TRUE(NavigateToURL(shell(), url)); base::HistogramTester::CountsMap expected_counts = { + {"Navigation.TimeToReadyToCommit.MainFrame", 1}, + {"Navigation.TimeToReadyToCommit.MainFrame.NewNavigation", 1}, {"Navigation.TimeToReadyToCommit.NewNavigation", 1}, {"Navigation.TimeToReadyToCommit.CrossProcess", 1}, {"Navigation.TimeToReadyToCommit.CrossProcess.NewNavigation", 1}}; @@ -2233,6 +2237,36 @@ histograms.GetTotalCountsForPrefix("Navigation.TimeToReadyToCommit."), testing::ContainerEq(expected_counts)); } + + // Add a new subframe. + FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents()) + ->GetFrameTree() + ->root(); + EXPECT_TRUE(ExecuteScript( + root, "document.body.appendChild(document.createElement('iframe'));")); + + // Navigate subframe cross-site and ensure Subframe metrics are logged. + { + base::HistogramTester histograms; + GURL url(embedded_test_server()->GetURL("b.com", "/title3.html")); + NavigateFrameToURL(root->child_at(0), url); + + std::string navigation_type = + AreAllSitesIsolatedForTesting() ? "CrossProcess" : "SameProcess"; + base::HistogramTester::CountsMap expected_counts = { + {"Navigation.TimeToReadyToCommit.Subframe", 1}, + {"Navigation.TimeToReadyToCommit.Subframe.NewNavigation", 1}, + {"Navigation.TimeToReadyToCommit.NewNavigation", 1}, + {base::StringPrintf("Navigation.TimeToReadyToCommit.%s", + navigation_type.c_str()), + 1}, + {base::StringPrintf("Navigation.TimeToReadyToCommit.%s.NewNavigation", + navigation_type.c_str()), + 1}}; + EXPECT_THAT( + histograms.GetTotalCountsForPrefix("Navigation.TimeToReadyToCommit."), + testing::ContainerEq(expected_counts)); + } } IN_PROC_BROWSER_TEST_F(NavigationHandleImplDownloadBrowserTest, IsDownload) {
diff --git a/content/browser/frame_host/navigation_handle_impl_unittest.cc b/content/browser/frame_host/navigation_handle_impl_unittest.cc index e63fa54..b09f5c25 100644 --- a/content/browser/frame_host/navigation_handle_impl_unittest.cc +++ b/content/browser/frame_host/navigation_handle_impl_unittest.cc
@@ -146,7 +146,7 @@ // It's safe to use base::Unretained since the NavigationHandle is owned by // the NavigationHandleImplTest. test_handle_->WillFailRequest( - ssl_info, + main_test_rfh(), ssl_info, base::Bind(&NavigationHandleImplTest::UpdateThrottleCheckResult, base::Unretained(this))); } @@ -1135,4 +1135,42 @@ EXPECT_EQ(connection_status, test_handle()->GetSSLInfo().connection_status); } +// Helper throttle which checks that it can access NavigationHandle's +// RenderFrameHost in WillFailRequest() and then defers the failure. +class GetRenderFrameHostOnFailureNavigationThrottle + : public NavigationThrottle { + public: + GetRenderFrameHostOnFailureNavigationThrottle(NavigationHandle* handle) + : NavigationThrottle(handle) {} + ~GetRenderFrameHostOnFailureNavigationThrottle() override {} + + NavigationThrottle::ThrottleCheckResult WillFailRequest() override { + EXPECT_TRUE(navigation_handle()->GetRenderFrameHost()); + return NavigationThrottle::DEFER; + } + + const char* GetNameForLogging() override { + return "GetRenderFrameHostOnFailureNavigationThrottle"; + } + + private: + DISALLOW_COPY_AND_ASSIGN(GetRenderFrameHostOnFailureNavigationThrottle); +}; + +// Verify that the NavigationHandle::GetRenderFrameHost() can be retrieved by a +// throttle in WillFailRequest(), as well as after deferring the failure. This +// is allowed, since at that point the final RenderFrameHost will have already +// been chosen. See https://crbug.com/817881. +TEST_F(NavigationHandleImplTest, WillFailRequestCanAccessRenderFrameHost) { + test_handle()->RegisterThrottleForTesting( + std::make_unique<GetRenderFrameHostOnFailureNavigationThrottle>( + test_handle())); + SimulateWillStartRequest(); + SimulateWillFailRequest(net::ERR_CERT_DATE_INVALID); + EXPECT_EQ(NavigationHandleImpl::DEFERRING_FAILURE, state()); + EXPECT_TRUE(test_handle()->GetRenderFrameHost()); + Resume(); + EXPECT_TRUE(test_handle()->GetRenderFrameHost()); +} + } // namespace content
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc index daf6a72..5ba16fe 100644 --- a/content/browser/frame_host/navigation_request.cc +++ b/content/browser/frame_host/navigation_request.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "base/metrics/field_trial_params.h" #include "base/optional.h" #include "base/strings/string_util.h" #include "build/build_config.h" @@ -152,7 +153,8 @@ if (!url.SchemeIsHTTPOrHTTPS()) return; - if (!base::FeatureList::IsEnabled(features::kDataSaverHoldback)) { + if (!base::GetFieldTrialParamByFeatureAsBool(features::kDataSaverHoldback, + "holdback_web", false)) { bool is_reload = navigation_type == FrameMsg_Navigate_Type::RELOAD || navigation_type == FrameMsg_Navigate_Type::RELOAD_BYPASSING_CACHE || @@ -1054,23 +1056,7 @@ render_frame_host = frame_tree_node_->render_manager()->GetFrameHostForNavigation(*this); } else { - // Decide whether to leave the error page in the original process. - // * If this was a renderer-initiated navigation, and the request is blocked - // because the initiating document wasn't allowed to make the request, - // commit the error in the existing process. This is a strategy to to - // avoid creating a process for the destination, which may belong to an - // origin with a higher privilege level. - // * Error pages resulting from errors like network outage, no network, or - // DNS error can reasonably expect that a reload at a later point in time - // would work. These should be allowed to transfer away from the current - // process: they do belong to whichever process that will host the - // destination URL, as a reload will end up committing in that process - // anyway. - // * Error pages that arise during browser-initiated navigations to blocked - // URLs should be allowed to transfer away from the current process, which - // didn't request the navigation and may have a higher privilege level - // than the blocked destination. - if (net_error == net::ERR_BLOCKED_BY_CLIENT && !browser_initiated()) { + if (ShouldKeepErrorPageInCurrentProcess(net_error)) { render_frame_host = frame_tree_node_->current_frame_host(); } else { render_frame_host = @@ -1097,11 +1083,32 @@ } else { // Check if the navigation should be allowed to proceed. navigation_handle_->WillFailRequest( - ssl_info, base::Bind(&NavigationRequest::OnFailureChecksComplete, - base::Unretained(this), render_frame_host)); + render_frame_host, ssl_info, + base::Bind(&NavigationRequest::OnFailureChecksComplete, + base::Unretained(this), render_frame_host)); } } +bool NavigationRequest::ShouldKeepErrorPageInCurrentProcess(int net_error) { + // Decide whether to leave the error page in the original process. + // * If this was a renderer-initiated navigation, and the request is blocked + // because the initiating document wasn't allowed to make the request, + // commit the error in the existing process. This is a strategy to to + // avoid creating a process for the destination, which may belong to an + // origin with a higher privilege level. + // * Error pages resulting from errors like network outage, no network, or + // DNS error can reasonably expect that a reload at a later point in time + // would work. These should be allowed to transfer away from the current + // process: they do belong to whichever process that will host the + // destination URL, as a reload will end up committing in that process + // anyway. + // * Error pages that arise during browser-initiated navigations to blocked + // URLs should be allowed to transfer away from the current process, which + // didn't request the navigation and may have a higher privilege level + // than the blocked destination. + return net_error == net::ERR_BLOCKED_BY_CLIENT && !browser_initiated(); +} + void NavigationRequest::OnRequestStarted(base::TimeTicks timestamp) { if (frame_tree_node_->IsMainFrame()) { TRACE_EVENT_ASYNC_END_WITH_TIMESTAMP0( @@ -1307,15 +1314,33 @@ NavigationThrottle::ThrottleCheckResult result) { DCHECK(result.action() != NavigationThrottle::DEFER); + int old_net_error = net_error_; net_error_ = result.net_error_code(); navigation_handle_->set_net_error_code(static_cast<net::Error>(net_error_)); - // TODO(crbug.com/774663): We may want to take result.action() into account.. - if (net::ERR_ABORTED == net_error_) { + // TODO(crbug.com/774663): We may want to take result.action() into account. + if (net::ERR_ABORTED == result.net_error_code()) { frame_tree_node_->ResetNavigationRequest(false, true); return; } + // Ensure that WillFailRequest() isn't changing the error code in a way that + // switches the destination process for the error page - see + // https://crbug.com/817881. This is not a concern with error page + // isolation, where all errors will go into one process. + if (!SiteIsolationPolicy::IsErrorPageIsolationEnabled( + frame_tree_node_->IsMainFrame())) { + CHECK_EQ(ShouldKeepErrorPageInCurrentProcess(old_net_error), + ShouldKeepErrorPageInCurrentProcess(net_error_)) + << " Unsupported error code change in WillFailRequest(): from " + << net_error_ << " to " << result.net_error_code(); + } + + // Sanity check that we haven't changed the RenderFrameHost picked for the + // error page in OnRequestFailedInternal when running the WillFailRequest + // checks. + CHECK_EQ(navigation_handle_->GetRenderFrameHost(), render_frame_host); + CommitErrorPage(render_frame_host, result.error_page_content()); // DO NOT ADD CODE after this. The previous call to CommitErrorPage caused // the destruction of the NavigationRequest.
diff --git a/content/browser/frame_host/navigation_request.h b/content/browser/frame_host/navigation_request.h index 263ec5b7..e11c8e6 100644 --- a/content/browser/frame_host/navigation_request.h +++ b/content/browser/frame_host/navigation_request.h
@@ -255,6 +255,10 @@ bool skip_throttles, const base::Optional<std::string>& error_page_content); + // Helper to determine whether an error page for the provided error code + // should stay in the current process. + bool ShouldKeepErrorPageInCurrentProcess(int net_error); + // Called when the NavigationThrottles have been checked by the // NavigationHandle. void OnStartChecksComplete(NavigationThrottle::ThrottleCheckResult result);
diff --git a/content/browser/frame_host/render_frame_host_feature_policy_unittest.cc b/content/browser/frame_host/render_frame_host_feature_policy_unittest.cc index e4a6d38..687bd02 100644 --- a/content/browser/frame_host/render_frame_host_feature_policy_unittest.cc +++ b/content/browser/frame_host/render_frame_host_feature_policy_unittest.cc
@@ -30,7 +30,7 @@ static constexpr const char* kOrigin4 = "https://test.com"; static const blink::mojom::FeaturePolicyFeature kDefaultEnabledFeature = - blink::mojom::FeaturePolicyFeature::kDocumentWrite; + blink::mojom::FeaturePolicyFeature::kDocumentStreamInsertion; static const blink::mojom::FeaturePolicyFeature kDefaultSelfFeature = blink::mojom::FeaturePolicyFeature::kGeolocation;
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 5d49059..7ce4cc3 100644 --- a/content/browser/frame_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
@@ -1242,8 +1242,8 @@ const GURL kUrl3(embedded_test_server()->GetURL("/title3.html")); const GURL kUrl4(embedded_test_server()->GetURL("/empty.html")); - // The 31-bit hash of the string "content::mojom::BrowserTarget". - const int32_t kHashOfContentMojomBrowserTarget = 0x1CA01D37; + // The 31-bit hash of the string "content.mojom:BrowserTarget". + const int32_t kHashOfContentMojomBrowserTarget = 0x1730feb8; // Client ends of the fake interface provider requests injected for the first // and second navigations. @@ -1275,9 +1275,9 @@ // Simulate two interface requests corresponding to the first navigation // arrived after the second navigation was committed, hence were dropped. - interface_provider_1->GetInterface("content::mojom::BrowserTarget", + interface_provider_1->GetInterface("content.mojom.BrowserTarget", CreateDisconnectedMessagePipeHandle()); - interface_provider_1->GetInterface("content::mojom::BrowserTarget", + interface_provider_1->GetInterface("content.mojom.BrowserTarget", CreateDisconnectedMessagePipeHandle()); // RFHI destroys the DroppedInterfaceRequestLogger from navigation `n` on @@ -1295,7 +1295,7 @@ } // Simulate one interface request dropped for the second URL. - interface_provider_2->GetInterface("content::mojom::BrowserTarget", + interface_provider_2->GetInterface("content.mojom.BrowserTarget", CreateDisconnectedMessagePipeHandle()); // A final navigation should record the sample from the second URL. @@ -1311,9 +1311,9 @@ // Both the DroppedInterfaceRequestLogger for the first and second URLs are // destroyed -- even more interfacerequests should not cause any crashes. - interface_provider_1->GetInterface("content::mojom::BrowserTarget", + interface_provider_1->GetInterface("content.mojom.BrowserTarget", CreateDisconnectedMessagePipeHandle()); - interface_provider_2->GetInterface("content::mojom::BrowserTarget", + interface_provider_2->GetInterface("content.mojom.BrowserTarget", CreateDisconnectedMessagePipeHandle()); // The interface connections should be broken.
diff --git a/content/browser/keyboard_lock/keyboard_lock_service_impl.cc b/content/browser/keyboard_lock/keyboard_lock_service_impl.cc index fcf1c88..76b490a 100644 --- a/content/browser/keyboard_lock/keyboard_lock_service_impl.cc +++ b/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
@@ -113,18 +113,9 @@ void KeyboardLockServiceImpl::GetKeyboardLayoutMap( GetKeyboardLayoutMapCallback callback) { auto response = GetKeyboardLayoutMapResult::New(); - response->status = blink::mojom::GetKeyboardLayoutMapStatus::kSuccess; - - // TODO(garykac): Call platform specific APIs to populate the layout map - // correctly. - // E.g., render_frame_host_->GetRenderWidgetHost()->GetKeyboardLayoutMap() - response->layout_map.emplace("KeyC", "c"); - response->layout_map.emplace("KeyH", "h"); - response->layout_map.emplace("KeyR", "r"); - response->layout_map.emplace("KeyO", "o"); - response->layout_map.emplace("KeyM", "m"); - response->layout_map.emplace("KeyE", "e"); + response->layout_map = + render_frame_host_->GetRenderWidgetHost()->GetKeyboardLayoutMap(); std::move(callback).Run(std::move(response)); }
diff --git a/content/browser/media/forwarding_audio_stream_factory.cc b/content/browser/media/forwarding_audio_stream_factory.cc index 63c426ab..2868b67 100644 --- a/content/browser/media/forwarding_audio_stream_factory.cc +++ b/content/browser/media/forwarding_audio_stream_factory.cc
@@ -93,12 +93,18 @@ void ForwardingAudioStreamFactory::CreateLoopbackStream( RenderFrameHost* frame, - WebContents* source_contents, + RenderFrameHost* frame_of_source_web_contents, const media::AudioParameters& params, uint32_t shared_memory_count, bool mute_source, mojom::RendererAudioInputStreamFactoryClientPtr renderer_factory_client) { DCHECK_CURRENTLY_ON(BrowserThread::UI); + DCHECK(frame); + DCHECK(frame_of_source_web_contents); + WebContents* source_contents = + WebContents::FromRenderFrameHost(frame_of_source_web_contents); + if (!source_contents) + return; const int process_id = frame->GetProcess()->GetID(); const int frame_id = frame->GetRoutingID();
diff --git a/content/browser/media/forwarding_audio_stream_factory.h b/content/browser/media/forwarding_audio_stream_factory.h index 12667079..c245c8e 100644 --- a/content/browser/media/forwarding_audio_stream_factory.h +++ b/content/browser/media/forwarding_audio_stream_factory.h
@@ -71,7 +71,7 @@ void CreateLoopbackStream( RenderFrameHost* frame, - WebContents* source_contents, + RenderFrameHost* frame_of_source_web_contents, const media::AudioParameters& params, uint32_t shared_memory_count, bool mute_source,
diff --git a/content/browser/media/forwarding_audio_stream_factory_unittest.cc b/content/browser/media/forwarding_audio_stream_factory_unittest.cc index d3c1e688..e076494 100644 --- a/content/browser/media/forwarding_audio_stream_factory_unittest.cc +++ b/content/browser/media/forwarding_audio_stream_factory_unittest.cc
@@ -272,8 +272,8 @@ EXPECT_CALL(*broker, CreateStream(NotNull())); mojo::MakeRequest(&client); - factory.CreateLoopbackStream(main_rfh(), source_contents.get(), kParams, - kSharedMemoryCount, kMuteSource, + factory.CreateLoopbackStream(main_rfh(), source_contents->GetMainFrame(), + kParams, kSharedMemoryCount, kMuteSource, std::move(client)); } @@ -340,16 +340,16 @@ { EXPECT_CALL(*main_rfh_broker, CreateStream(NotNull())); mojo::MakeRequest(&client); - factory.CreateLoopbackStream(main_rfh(), source_contents.get(), kParams, - kSharedMemoryCount, kMuteSource, + factory.CreateLoopbackStream(main_rfh(), source_contents->GetMainFrame(), + kParams, kSharedMemoryCount, kMuteSource, std::move(client)); testing::Mock::VerifyAndClear(&*main_rfh_broker); } { EXPECT_CALL(*other_rfh_broker, CreateStream(NotNull())); mojo::MakeRequest(&client); - factory.CreateLoopbackStream(other_rfh(), source_contents.get(), kParams, - kSharedMemoryCount, kMuteSource, + factory.CreateLoopbackStream(other_rfh(), source_contents->GetMainFrame(), + kParams, kSharedMemoryCount, kMuteSource, std::move(client)); testing::Mock::VerifyAndClear(&*other_rfh_broker); } @@ -435,16 +435,16 @@ { EXPECT_CALL(*main_rfh_loopback_broker, CreateStream(NotNull())); mojo::MakeRequest(&input_client); - factory.CreateLoopbackStream(main_rfh(), source_contents.get(), kParams, - kSharedMemoryCount, kMuteSource, + factory.CreateLoopbackStream(main_rfh(), source_contents->GetMainFrame(), + kParams, kSharedMemoryCount, kMuteSource, std::move(input_client)); testing::Mock::VerifyAndClear(&*main_rfh_loopback_broker); } { EXPECT_CALL(*other_rfh_loopback_broker, CreateStream(NotNull())); mojo::MakeRequest(&input_client); - factory.CreateLoopbackStream(other_rfh(), source_contents.get(), kParams, - kSharedMemoryCount, kMuteSource, + factory.CreateLoopbackStream(other_rfh(), source_contents->GetMainFrame(), + kParams, kSharedMemoryCount, kMuteSource, std::move(input_client)); testing::Mock::VerifyAndClear(&*other_rfh_loopback_broker); }
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc index e307684..e1365f2c 100644 --- a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc +++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
@@ -249,6 +249,14 @@ // UMA histograms. EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollBegin." + "TimeToScrollUpdateSwapBegin", + 1)); + EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollUpdate." + "TimeToScrollUpdateSwapBegin", + 0)); + EXPECT_TRUE( HistogramSizeEq("Event.Latency.ScrollBegin.Wheel." "TimeToScrollUpdateSwapBegin2", 1)); @@ -345,6 +353,14 @@ // UMA histograms. EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollBegin." + "TimeToScrollUpdateSwapBegin", + 0)); + EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollUpdate." + "TimeToScrollUpdateSwapBegin", + 1)); + EXPECT_TRUE( HistogramSizeEq("Event.Latency.ScrollBegin.Wheel." "TimeToScrollUpdateSwapBegin2", 0)); @@ -463,6 +479,14 @@ total_ukm_entry_count); // UMA histograms. + EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollBegin." + "TimeToScrollUpdateSwapBegin", + 1)); + EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollUpdate." + "TimeToScrollUpdateSwapBegin", + 0)); EXPECT_TRUE(HistogramSizeEq( "Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2", 1)); @@ -565,6 +589,14 @@ total_ukm_entry_count); // UMA histograms. + EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollBegin." + "TimeToScrollUpdateSwapBegin", + 0)); + EXPECT_TRUE( + HistogramSizeEq("Event.Latency.ScrollUpdate." + "TimeToScrollUpdateSwapBegin", + 1)); EXPECT_TRUE(HistogramSizeEq( "Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2", 0)); EXPECT_TRUE(HistogramSizeEq(
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc b/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc index ae28faf..906d166 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc +++ b/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc
@@ -98,6 +98,30 @@ return; } +void SyntheticGestureTargetAura::DispatchWebGestureEventToPlatform( + const blink::WebGestureEvent& web_gesture, + const ui::LatencyInfo& latency_info) { + DCHECK(blink::WebInputEvent::IsPinchGestureEventType(web_gesture.GetType())); + ui::EventType event_type = ui::WebEventTypeToEventType(web_gesture.GetType()); + int flags = ui::WebEventModifiersToEventFlags(web_gesture.GetModifiers()); + + ui::GestureEventDetails pinch_details(event_type); + pinch_details.set_device_type(ui::GestureDeviceType::DEVICE_TOUCHPAD); + if (event_type == ui::ET_GESTURE_PINCH_UPDATE) + pinch_details.set_scale(web_gesture.data.pinch_update.scale); + + ui::GestureEvent pinch_event( + web_gesture.PositionInWidget().x * device_scale_factor_, + web_gesture.PositionInWidget().y * device_scale_factor_, flags, + ui::EventTimeForNow(), pinch_details); + + aura::Window* window = GetWindow(); + pinch_event.ConvertLocationToTarget(window, window->GetRootWindow()); + + aura::EventInjector injector; + injector.Inject(window->GetHost(), &pinch_event); +} + void SyntheticGestureTargetAura::DispatchWebMouseEventToPlatform( const blink::WebMouseEvent& web_mouse_event, const ui::LatencyInfo& latency_info) {
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_aura.h b/content/browser/renderer_host/input/synthetic_gesture_target_aura.h index fc5429e..0ed97d6 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_aura.h +++ b/content/browser/renderer_host/input/synthetic_gesture_target_aura.h
@@ -28,6 +28,9 @@ void DispatchWebMouseWheelEventToPlatform( const blink::WebMouseWheelEvent& web_wheel, const ui::LatencyInfo& latency_info) override; + void DispatchWebGestureEventToPlatform( + const blink::WebGestureEvent& web_gesture, + const ui::LatencyInfo& latency_info) override; void DispatchWebMouseEventToPlatform( const blink::WebMouseEvent& web_mouse, const ui::LatencyInfo& latency_info) override;
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc index 3691e3f5..c81710a 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc +++ b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc
@@ -18,6 +18,7 @@ using blink::WebTouchPoint; using blink::WebMouseEvent; using blink::WebMouseWheelEvent; +using blink::WebGestureEvent; namespace content { namespace { @@ -85,6 +86,19 @@ return; } DispatchWebMouseEventToPlatform(web_mouse, latency_info); + } else if (WebInputEvent::IsPinchGestureEventType(event.GetType())) { + const WebGestureEvent& web_pinch = + static_cast<const WebGestureEvent&>(event); + // Touchscreen pinches should be injected as touch events. + DCHECK_EQ(blink::kWebGestureDeviceTouchpad, web_pinch.SourceDevice()); + if (event.GetType() == WebInputEvent::kGesturePinchBegin && + !PointIsWithinContents(web_pinch.PositionInWidget().x, + web_pinch.PositionInWidget().y)) { + LOG(WARNING) + << "Pinch coordinates are not within content bounds on PinchBegin."; + return; + } + DispatchWebGestureEventToPlatform(web_pinch, latency_info); } else { NOTREACHED(); } @@ -105,6 +119,12 @@ host_->ForwardWheelEventWithLatencyInfo(web_wheel, latency_info); } +void SyntheticGestureTargetBase::DispatchWebGestureEventToPlatform( + const blink::WebGestureEvent& web_gesture, + const ui::LatencyInfo& latency_info) { + host_->ForwardGestureEventWithLatencyInfo(web_gesture, latency_info); +} + void SyntheticGestureTargetBase::DispatchWebMouseEventToPlatform( const blink::WebMouseEvent& web_mouse, const ui::LatencyInfo& latency_info) {
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_base.h b/content/browser/renderer_host/input/synthetic_gesture_target_base.h index 223644c74..81619f2 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_base.h +++ b/content/browser/renderer_host/input/synthetic_gesture_target_base.h
@@ -17,6 +17,7 @@ class WebTouchEvent; class WebMouseEvent; class WebMouseWheelEvent; +class WebGestureEvent; } namespace content { @@ -36,6 +37,10 @@ const blink::WebMouseWheelEvent& web_wheel, const ui::LatencyInfo& latency_info); + virtual void DispatchWebGestureEventToPlatform( + const blink::WebGestureEvent& web_gesture, + const ui::LatencyInfo& latency_info); + virtual void DispatchWebMouseEventToPlatform( const blink::WebMouseEvent& web_mouse, const ui::LatencyInfo& latency_info);
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_mac.h b/content/browser/renderer_host/input/synthetic_gesture_target_mac.h index 1074c50..ea9ec3e 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_mac.h +++ b/content/browser/renderer_host/input/synthetic_gesture_target_mac.h
@@ -18,11 +18,13 @@ SyntheticGestureTargetMac(RenderWidgetHostImpl* host, RenderWidgetHostViewCocoa* cocoa_view); - // SyntheticGestureTarget: - void DispatchInputEventToPlatform(const blink::WebInputEvent& event) override; + // SyntheticGestureTargetBase: void DispatchWebTouchEventToPlatform( const blink::WebTouchEvent& event, const ui::LatencyInfo& latency_info) override; + void DispatchWebGestureEventToPlatform( + const blink::WebGestureEvent& web_gesture, + const ui::LatencyInfo& latency_info) override; private: RenderWidgetHostViewCocoa* cocoa_view_;
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm b/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm index 3ea4f8c..08d8639 100644 --- a/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm +++ b/content/browser/renderer_host/input/synthetic_gesture_target_mac.mm
@@ -81,54 +81,48 @@ RenderWidgetHostViewCocoa* cocoa_view) : SyntheticGestureTargetBase(host), cocoa_view_(cocoa_view) {} -void SyntheticGestureTargetMac::DispatchInputEventToPlatform( - const WebInputEvent& event) { - if (WebInputEvent::IsGestureEventType(event.GetType())) { - // Create an autorelease pool so that we clean up any synthetic events we - // generate. - base::mac::ScopedNSAutoreleasePool pool; +void SyntheticGestureTargetMac::DispatchWebGestureEventToPlatform( + const WebGestureEvent& web_gesture, + const ui::LatencyInfo& latency_info) { + // Create an autorelease pool so that we clean up any synthetic events we + // generate. + base::mac::ScopedNSAutoreleasePool pool; - const WebGestureEvent* gesture_event = - static_cast<const WebGestureEvent*>(&event); + NSPoint content_local = NSMakePoint( + web_gesture.PositionInWidget().x, + [cocoa_view_ frame].size.height - web_gesture.PositionInWidget().y); + NSPoint location_in_window = + [cocoa_view_ convertPoint:content_local toView:nil]; - switch (event.GetType()) { - case WebInputEvent::kGesturePinchBegin: { - id cocoa_event = [SyntheticPinchEvent - eventWithMagnification:0.0f - locationInWindow:NSMakePoint( - gesture_event->PositionInWidget().x, - gesture_event->PositionInWidget().y) - phase:NSEventPhaseBegan]; - [cocoa_view_ handleBeginGestureWithEvent:cocoa_event]; - return; - } - case WebInputEvent::kGesturePinchEnd: { - id cocoa_event = [SyntheticPinchEvent - eventWithMagnification:0.0f - locationInWindow:NSMakePoint( - gesture_event->PositionInWidget().x, - gesture_event->PositionInWidget().y) - phase:NSEventPhaseEnded]; - [cocoa_view_ handleEndGestureWithEvent:cocoa_event]; - return; - } - case WebInputEvent::kGesturePinchUpdate: { - id cocoa_event = [SyntheticPinchEvent - eventWithMagnification:gesture_event->data.pinch_update.scale - 1.0f - locationInWindow:NSMakePoint( - gesture_event->PositionInWidget().x, - gesture_event->PositionInWidget().y) - phase:NSEventPhaseChanged]; - [cocoa_view_ magnifyWithEvent:cocoa_event]; - return; - } - default: - break; + switch (web_gesture.GetType()) { + case WebInputEvent::kGesturePinchBegin: { + id cocoa_event = + [SyntheticPinchEvent eventWithMagnification:0.0f + locationInWindow:location_in_window + phase:NSEventPhaseBegan]; + [cocoa_view_ handleBeginGestureWithEvent:cocoa_event + isSyntheticallyInjected:YES]; + return; } + case WebInputEvent::kGesturePinchEnd: { + id cocoa_event = + [SyntheticPinchEvent eventWithMagnification:0.0f + locationInWindow:location_in_window + phase:NSEventPhaseEnded]; + [cocoa_view_ handleEndGestureWithEvent:cocoa_event]; + return; + } + case WebInputEvent::kGesturePinchUpdate: { + id cocoa_event = [SyntheticPinchEvent + eventWithMagnification:web_gesture.data.pinch_update.scale - 1.0f + locationInWindow:location_in_window + phase:NSEventPhaseChanged]; + [cocoa_view_ magnifyWithEvent:cocoa_event]; + return; + } + default: + NOTREACHED(); } - - // This event wasn't handled yet, forward to the base class. - SyntheticGestureTargetBase::DispatchInputEventToPlatform(event); } void SyntheticGestureTargetMac::DispatchWebTouchEventToPlatform(
diff --git a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc index 2d71490..52c53ce 100644 --- a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc +++ b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc
@@ -81,8 +81,25 @@ if (!factory) return; - if (WebContentsMediaCaptureId::Parse(device.id, nullptr)) { - CHECK(false) << "TODO(https://crbug.com/824019) not implemented."; + WebContentsMediaCaptureId capture_id; + if (WebContentsMediaCaptureId::Parse(device.id, &capture_id)) { + // For MEDIA_DESKTOP_AUDIO_CAPTURE, the source is selected from picker + // window, we do not mute the source audio. + // For MEDIA_TAB_AUDIO_CAPTURE, the probable use case is Cast, we mute + // the source audio. + // TODO(qiangchen): Analyze audio constraints to make a duplicating or + // diverting decision. It would give web developer more flexibility. + + RenderFrameHost* source_host = RenderFrameHost::FromID( + capture_id.render_process_id, capture_id.main_render_frame_id); + if (!source_host) { + // The source of the capture has already been destroyed, so fail early. + return; + } + + factory->CreateLoopbackStream( + render_frame_host_, source_host, audio_params, shared_memory_count, + capture_id.disable_local_echo, std::move(client)); if (device.type == MEDIA_DESKTOP_AUDIO_CAPTURE) IncrementDesktopCaptureCounter(SYSTEM_LOOPBACK_AUDIO_CAPTURER_CREATED);
diff --git a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.h b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.h index a677ad1..69c216b 100644 --- a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.h +++ b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.h
@@ -12,6 +12,7 @@ #include "content/browser/renderer_host/media/audio_input_device_manager.h" #include "content/common/content_export.h" #include "content/common/media/renderer_audio_input_stream_factory.mojom.h" +#include "content/public/browser/render_frame_host.h" #include "content/public/common/media_stream_request.h" #include "mojo/public/cpp/bindings/binding.h"
diff --git a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc index ee59c21..57de3a7 100644 --- a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc +++ b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc
@@ -15,7 +15,10 @@ #include "content/browser/media/forwarding_audio_stream_factory.h" #include "content/browser/renderer_host/media/media_stream_manager.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" +#include "content/public/browser/web_contents.h" +#include "content/public/browser/web_contents_media_capture_id.h" #include "content/public/test/mock_render_process_host.h" #include "content/public/test/test_browser_context.h" #include "content/public/test/test_renderer_host.h" @@ -101,7 +104,19 @@ last_created_callback = std::move(created_callback); } + void CreateLoopbackStream( + media::mojom::AudioInputStreamRequest stream_request, + media::mojom::AudioInputStreamClientPtr client, + media::mojom::AudioInputStreamObserverPtr observer, + const media::AudioParameters& params, + uint32_t shared_memory_count, + const base::UnguessableToken& group_id, + CreateLoopbackStreamCallback created_callback) override { + last_created_loopback_callback = std::move(created_callback); + } + CreateInputStreamCallback last_created_callback; + CreateLoopbackStreamCallback last_created_loopback_callback; mojo::Binding<audio::mojom::StreamFactory> binding_; }; @@ -190,6 +205,57 @@ } TEST_F(RenderFrameAudioInputStreamFactoryTest, + CreateWebContentsCapture_ForwardsCall) { + std::unique_ptr<WebContents> source_contents = CreateTestWebContents(); + mojom::RendererAudioInputStreamFactoryPtr factory_ptr; + RenderFrameAudioInputStreamFactory factory(mojo::MakeRequest(&factory_ptr), + audio_input_device_manager(), + main_rfh()); + + RenderFrameHost* main_frame = source_contents->GetMainFrame(); + WebContentsMediaCaptureId capture_id(main_frame->GetProcess()->GetID(), + main_frame->GetRoutingID()); + int session_id = audio_input_device_manager()->Open(MediaStreamDevice( + MEDIA_TAB_AUDIO_CAPTURE, capture_id.ToString(), kDeviceName)); + base::RunLoop().RunUntilIdle(); + + mojom::RendererAudioInputStreamFactoryClientPtr client; + mojo::MakeRequest(&client); + factory_ptr->CreateStream(std::move(client), session_id, kParams, kAGC, + kSharedMemoryCount); + + base::RunLoop().RunUntilIdle(); + + EXPECT_TRUE(!!audio_service_stream_factory_.last_created_loopback_callback); +} + +TEST_F(RenderFrameAudioInputStreamFactoryTest, + CreateWebContentsCaptureAfterCaptureSourceDestructed_Fails) { + std::unique_ptr<WebContents> source_contents = CreateTestWebContents(); + mojom::RendererAudioInputStreamFactoryPtr factory_ptr; + RenderFrameAudioInputStreamFactory factory(mojo::MakeRequest(&factory_ptr), + audio_input_device_manager(), + main_rfh()); + + RenderFrameHost* main_frame = source_contents->GetMainFrame(); + WebContentsMediaCaptureId capture_id(main_frame->GetProcess()->GetID(), + main_frame->GetRoutingID()); + int session_id = audio_input_device_manager()->Open(MediaStreamDevice( + MEDIA_TAB_AUDIO_CAPTURE, capture_id.ToString(), kDeviceName)); + base::RunLoop().RunUntilIdle(); + + source_contents.reset(); + mojom::RendererAudioInputStreamFactoryClientPtr client; + mojo::MakeRequest(&client); + factory_ptr->CreateStream(std::move(client), session_id, kParams, kAGC, + kSharedMemoryCount); + + base::RunLoop().RunUntilIdle(); + + EXPECT_FALSE(!!audio_service_stream_factory_.last_created_loopback_callback); +} + +TEST_F(RenderFrameAudioInputStreamFactoryTest, CreateStreamWithoutValidSessionId_Fails) { mojom::RendererAudioInputStreamFactoryPtr factory_ptr; RenderFrameAudioInputStreamFactory factory(mojo::MakeRequest(&factory_ptr),
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 4d478e7..43b7501 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2355,6 +2355,13 @@ keyboard_keys_to_lock_.reset(); } +base::flat_map<std::string, std::string> +RenderWidgetHostImpl::GetKeyboardLayoutMap() { + if (!view_) + return {}; + return view_->GetKeyboardLayoutMap(); +} + void RenderWidgetHostImpl::OnShowDisambiguationPopup( const gfx::Rect& rect_pixels, const gfx::Size& size,
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 5d311aa5..563382b 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -703,6 +703,9 @@ // Indicates whether keyboard lock is active. bool IsKeyboardLocked() const; + // Returns the keyboard layout mapping. + base::flat_map<std::string, std::string> GetKeyboardLayoutMap(); + void DidStopFlinging() override; void GetContentRenderingTimeoutFrom(RenderWidgetHostImpl* other);
diff --git a/content/browser/renderer_host/render_widget_host_ns_view_client.h b/content/browser/renderer_host/render_widget_host_ns_view_client.h index 25c1451..c199bdb 100644 --- a/content/browser/renderer_host/render_widget_host_ns_view_client.h +++ b/content/browser/renderer_host/render_widget_host_ns_view_client.h
@@ -109,7 +109,8 @@ const blink::WebMouseWheelEvent& web_event) = 0; // Handling pinch gesture events. - virtual void OnNSViewGestureBegin(blink::WebGestureEvent begin_event) = 0; + virtual void OnNSViewGestureBegin(blink::WebGestureEvent begin_event, + bool is_synthetically_injected) = 0; virtual void OnNSViewGestureUpdate(blink::WebGestureEvent update_event) = 0; virtual void OnNSViewGestureEnd(blink::WebGestureEvent end_event) = 0; virtual void OnNSViewSmartMagnify(
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 95f60d73d..64cf9df8 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -1157,6 +1157,14 @@ return event_handler_->IsKeyboardLocked(); } +base::flat_map<std::string, std::string> +RenderWidgetHostViewAura::GetKeyboardLayoutMap() { + aura::WindowTreeHost* host = window_->GetHost(); + if (host) + return host->GetKeyboardLayoutMap(); + return {}; +} + //////////////////////////////////////////////////////////////////////////////// // RenderWidgetHostViewAura, ui::TextInputClient implementation: void RenderWidgetHostViewAura::SetCompositionText(
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 775967b8..9a95142 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -169,6 +169,7 @@ bool LockKeyboard(base::Optional<base::flat_set<ui::DomCode>> codes) override; void UnlockKeyboard() override; bool IsKeyboardLocked() override; + base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override; void DidCreateNewRendererCompositorFrameSink( viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) override;
diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.h b/content/browser/renderer_host/render_widget_host_view_cocoa.h index 3aee3ce6..b709073 100644 --- a/content/browser/renderer_host/render_widget_host_view_cocoa.h +++ b/content/browser/renderer_host/render_widget_host_view_cocoa.h
@@ -179,7 +179,8 @@ // |magnifyWithEvent:| when the given event's phase is NSEventPhaseBegin. // - On 10.10 and earlier, or when linking with an earlier SDK, it is called // by |beginGestureWithEvent:| when a gesture begins. -- (void)handleBeginGestureWithEvent:(NSEvent*)event; +- (void)handleBeginGestureWithEvent:(NSEvent*)event + isSyntheticallyInjected:(BOOL)isSyntheticallyInjected; // Common code path for handling end gesture events. This helper method is // called via different codepaths based on OS version and SDK:
diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.mm b/content/browser/renderer_host/render_widget_host_view_cocoa.mm index d52927fb..337e924 100644 --- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm +++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
@@ -82,7 +82,8 @@ const blink::WebMouseEvent& web_event) override {} void OnNSViewForwardWheelEvent( const blink::WebMouseWheelEvent& web_event) override {} - void OnNSViewGestureBegin(blink::WebGestureEvent begin_event) override {} + void OnNSViewGestureBegin(blink::WebGestureEvent begin_event, + bool is_synthetically_injected) override {} void OnNSViewGestureUpdate(blink::WebGestureEvent update_event) override {} void OnNSViewGestureEnd(blink::WebGestureEvent end_event) override {} void OnNSViewSmartMagnify( @@ -895,12 +896,13 @@ } } -- (void)handleBeginGestureWithEvent:(NSEvent*)event { +- (void)handleBeginGestureWithEvent:(NSEvent*)event + isSyntheticallyInjected:(BOOL)isSyntheticallyInjected { [responderDelegate_ beginGestureWithEvent:event]; WebGestureEvent gestureBeginEvent(WebGestureEventBuilder::Build(event, self)); - client_->OnNSViewGestureBegin(gestureBeginEvent); + client_->OnNSViewGestureBegin(gestureBeginEvent, isSyntheticallyInjected); } - (void)handleEndGestureWithEvent:(NSEvent*)event { @@ -931,7 +933,7 @@ #endif if (shouldHandle) { - [self handleBeginGestureWithEvent:event]; + [self handleBeginGestureWithEvent:event isSyntheticallyInjected:NO]; } } @@ -1015,7 +1017,7 @@ // "end" phases. if (base::mac::IsAtLeastOS10_11()) { if (event.phase == NSEventPhaseBegan) { - [self handleBeginGestureWithEvent:event]; + [self handleBeginGestureWithEvent:event isSyntheticallyInjected:NO]; } if (event.phase == NSEventPhaseEnded || @@ -1064,7 +1066,7 @@ // "end" phases. if (base::mac::IsAtLeastOS10_11()) { if (event.phase == NSEventPhaseBegan) { - [self handleBeginGestureWithEvent:event]; + [self handleBeginGestureWithEvent:event isSyntheticallyInjected:NO]; return; }
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h index 990f211..44d35ac 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -321,7 +321,8 @@ const blink::WebMouseEvent& web_event) override; void OnNSViewForwardWheelEvent( const blink::WebMouseWheelEvent& web_event) override; - void OnNSViewGestureBegin(blink::WebGestureEvent begin_event) override; + void OnNSViewGestureBegin(blink::WebGestureEvent begin_event, + bool is_synthetically_injected) override; void OnNSViewGestureUpdate(blink::WebGestureEvent update_event) override; void OnNSViewGestureEnd(blink::WebGestureEvent end_event) override; void OnNSViewSmartMagnify(
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index f506308..79fef57 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1457,13 +1457,15 @@ } void RenderWidgetHostViewMac::OnNSViewGestureBegin( - blink::WebGestureEvent begin_event) { + blink::WebGestureEvent begin_event, + bool is_synthetically_injected) { gesture_begin_event_.reset(new WebGestureEvent(begin_event)); // If the page is at the minimum zoom level, require a threshold be reached - // before the pinch has an effect. + // before the pinch has an effect. Synthetic pinches are not subject to this + // threshold. if (page_at_minimum_scale_) { - pinch_has_reached_zoom_threshold_ = false; + pinch_has_reached_zoom_threshold_ = is_synthetically_injected; pinch_unused_amount_ = 1; } }
diff --git a/content/browser/site_per_process_hit_test_browsertest.cc b/content/browser/site_per_process_hit_test_browsertest.cc index 0b3965a..088fa05 100644 --- a/content/browser/site_per_process_hit_test_browsertest.cc +++ b/content/browser/site_per_process_hit_test_browsertest.cc
@@ -485,6 +485,8 @@ } else if (std::get<0>(GetParam()) == 2) { feature_list_.InitAndEnableFeature( features::kEnableVizHitTestSurfaceLayer); + } else { + feature_list_.InitAndDisableFeature(features::kEnableVizHitTestDrawQuad); } }
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc index d4d2761c..89b36fb8 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -141,15 +141,12 @@ } #if defined(OS_MACOSX) - bool enable_canvas_2d_image_chromium = command_line.HasSwitch( - switches::kEnableGpuMemoryBufferCompositorResources) && + const bool enable_canvas_2d_image_chromium = + command_line.HasSwitch( + switches::kEnableGpuMemoryBufferCompositorResources) && !command_line.HasSwitch(switches::kDisable2dCanvasImageChromium) && - !command_line.HasSwitch(switches::kDisableGpu); - - if (enable_canvas_2d_image_chromium) { - enable_canvas_2d_image_chromium = - base::FeatureList::IsEnabled(features::kCanvas2DImageChromium); - } + !command_line.HasSwitch(switches::kDisableGpu) && + base::FeatureList::IsEnabled(features::kCanvas2DImageChromium); #else bool enable_canvas_2d_image_chromium = false; #endif
diff --git a/content/common/cache_storage/cache_storage_mojom_traits.cc b/content/common/cache_storage/cache_storage_mojom_traits.cc index 0face78..94234a73 100644 --- a/content/common/cache_storage/cache_storage_mojom_traits.cc +++ b/content/common/cache_storage/cache_storage_mojom_traits.cc
@@ -61,14 +61,20 @@ content::CacheStorageBatchOperation>:: Read(blink::mojom::BatchOperationDataView data, content::CacheStorageBatchOperation* out) { - if (!data.ReadRequest(&out->request)) - return false; - if (!data.ReadResponse(&out->response)) - return false; - if (!data.ReadMatchParams(&out->match_params)) - return false; + base::Optional<content::ServiceWorkerResponse> response; + base::Optional<content::CacheStorageCacheQueryParams> match_params; if (!data.ReadOperationType(&out->operation_type)) return false; + if (!data.ReadRequest(&out->request)) + return false; + if (!data.ReadResponse(&response)) + return false; + if (!data.ReadMatchParams(&match_params)) + return false; + if (response) + out->response = *response; + if (match_params) + out->match_params = *match_params; return true; }
diff --git a/content/common/render_frame_metadata.mojom b/content/common/render_frame_metadata.mojom index 3558eae..28573c16 100644 --- a/content/common/render_frame_metadata.mojom +++ b/content/common/render_frame_metadata.mojom
@@ -42,6 +42,16 @@ // The last viz::LocalSurfaceId used to submit a CompositorFrame. viz.mojom.LocalSurfaceId? local_surface_id; + + // Used to position the Android location top bar and page content, whose + // precise position is computed by the renderer compositor. + float top_controls_height; + float top_controls_shown_ratio; + + // Used to position Android bottom bar, whose position is computed by the + // renderer compositor. + float bottom_controls_height; + float bottom_controls_shown_ratio; }; // This interface is provided by the renderer. It can optionally enable
diff --git a/content/common/render_frame_metadata_struct_traits.cc b/content/common/render_frame_metadata_struct_traits.cc index 00b3b1cf..f17bfdf 100644 --- a/content/common/render_frame_metadata_struct_traits.cc +++ b/content/common/render_frame_metadata_struct_traits.cc
@@ -19,6 +19,10 @@ out->is_scroll_offset_at_top = data.is_scroll_offset_at_top(); out->is_mobile_optimized = data.is_mobile_optimized(); out->device_scale_factor = data.device_scale_factor(); + out->top_controls_height = data.top_controls_height(); + out->top_controls_shown_ratio = data.top_controls_shown_ratio(); + out->bottom_controls_height = data.bottom_controls_height(); + out->bottom_controls_shown_ratio = data.bottom_controls_shown_ratio(); return data.ReadRootScrollOffset(&out->root_scroll_offset) && data.ReadSelection(&out->selection) && data.ReadViewportSizeInPixels(&out->viewport_size_in_pixels) &&
diff --git a/content/common/render_frame_metadata_struct_traits.h b/content/common/render_frame_metadata_struct_traits.h index 06d5181..fbf17ed 100644 --- a/content/common/render_frame_metadata_struct_traits.h +++ b/content/common/render_frame_metadata_struct_traits.h
@@ -52,6 +52,24 @@ return metadata.local_surface_id; } + static float top_controls_height(const cc::RenderFrameMetadata& metadata) { + return metadata.top_controls_height; + } + + static float top_controls_shown_ratio( + const cc::RenderFrameMetadata& metadata) { + return metadata.top_controls_shown_ratio; + } + + static float bottom_controls_height(const cc::RenderFrameMetadata& metadata) { + return metadata.bottom_controls_height; + } + + static float bottom_controls_shown_ratio( + const cc::RenderFrameMetadata& metadata) { + return metadata.bottom_controls_shown_ratio; + } + static bool Read(content::mojom::RenderFrameMetadataDataView data, cc::RenderFrameMetadata* out); };
diff --git a/content/common/service_worker/service_worker_fetch_request_mojom_traits.cc b/content/common/service_worker/service_worker_fetch_request_mojom_traits.cc index 28378ab..a6b3557 100644 --- a/content/common/service_worker/service_worker_fetch_request_mojom_traits.cc +++ b/content/common/service_worker/service_worker_fetch_request_mojom_traits.cc
@@ -207,10 +207,12 @@ Read(blink::mojom::FetchAPIRequestDataView data, content::ServiceWorkerFetchRequest* out) { std::unordered_map<std::string, std::string> headers; + blink::mojom::SerializedBlobPtr serialized_blob_ptr; if (!data.ReadMode(&out->mode) || !data.ReadRequestContextType(&out->request_context_type) || !data.ReadFrameType(&out->frame_type) || !data.ReadUrl(&out->url) || !data.ReadMethod(&out->method) || !data.ReadHeaders(&headers) || + !data.ReadBlob(&serialized_blob_ptr) || !data.ReadReferrer(&out->referrer) || !data.ReadCredentialsMode(&out->credentials_mode) || !data.ReadRedirectMode(&out->redirect_mode) || @@ -220,11 +222,7 @@ } // content::ServiceWorkerFetchRequest doesn't support request body. - base::Optional<std::string> blob_uuid; - if (data.ReadBlobUuid(&blob_uuid) && blob_uuid && !blob_uuid->empty()) - return false; - blink::mojom::BlobPtr blob = data.TakeBlob<blink::mojom::BlobPtr>(); - if (blob) + if (serialized_blob_ptr) return false; out->is_main_resource_load = data.is_main_resource_load();
diff --git a/content/common/service_worker/service_worker_fetch_request_mojom_traits.h b/content/common/service_worker/service_worker_fetch_request_mojom_traits.h index 55862700..fe8cc4e2 100644 --- a/content/common/service_worker/service_worker_fetch_request_mojom_traits.h +++ b/content/common/service_worker/service_worker_fetch_request_mojom_traits.h
@@ -63,18 +63,7 @@ } // content::ServiceWorkerFetchRequest does not support the request body. - static const std::string& blob_uuid( - const content::ServiceWorkerFetchRequest& request) { - return base::EmptyString(); - } - - // content::ServiceWorkerFetchRequest does not support the request body. - static uint64_t blob_size(const content::ServiceWorkerFetchRequest& request) { - return 0; - } - - // content::ServiceWorkerFetchRequest does not support the request body. - static blink::mojom::BlobPtr blob( + static blink::mojom::SerializedBlobPtr blob( const content::ServiceWorkerFetchRequest& request) { return nullptr; }
diff --git a/content/common/service_worker/service_worker_fetch_response_mojom_traits.cc b/content/common/service_worker/service_worker_fetch_response_mojom_traits.cc index 5c423cb..64a9ed1b 100644 --- a/content/common/service_worker/service_worker_fetch_response_mojom_traits.cc +++ b/content/common/service_worker/service_worker_fetch_response_mojom_traits.cc
@@ -23,32 +23,38 @@ content::ServiceWorkerResponse>:: Read(blink::mojom::FetchAPIResponseDataView data, content::ServiceWorkerResponse* out) { + blink::mojom::SerializedBlobPtr serialized_blob_ptr; + blink::mojom::SerializedBlobPtr serialized_side_data_blob_ptr; if (!data.ReadUrlList(&out->url_list) || !data.ReadStatusText(&out->status_text) || !data.ReadResponseType(&out->response_type) || - !data.ReadHeaders(&out->headers) || !data.ReadBlobUuid(&out->blob_uuid) || - !data.ReadError(&out->error) || + !data.ReadHeaders(&out->headers) || + !data.ReadBlob(&serialized_blob_ptr) || !data.ReadError(&out->error) || !data.ReadResponseTime(&out->response_time) || !data.ReadCacheStorageCacheName(&out->cache_storage_cache_name) || - !data.ReadCorsExposedHeaderNames(&out->cors_exposed_header_names)) { + !data.ReadCorsExposedHeaderNames(&out->cors_exposed_header_names) || + !data.ReadSideDataBlob(&serialized_side_data_blob_ptr)) { return false; } out->status_code = data.status_code(); - out->blob_size = data.blob_size(); out->is_in_cache_storage = data.is_in_cache_storage(); - if (!out->blob_uuid.empty()) { - blink::mojom::BlobPtr blob = data.TakeBlob<blink::mojom::BlobPtr>(); - out->blob = base::MakeRefCounted<storage::BlobHandle>(std::move(blob)); + if (serialized_blob_ptr) { + out->blob_uuid = serialized_blob_ptr->uuid; + out->blob_size = serialized_blob_ptr->size; + blink::mojom::BlobPtr blob_ptr; + blob_ptr.Bind(std::move(serialized_blob_ptr->blob)); + out->blob = base::MakeRefCounted<storage::BlobHandle>(std::move(blob_ptr)); } - out->side_data_blob_size = data.side_data_blob_size(); - if (!out->side_data_blob_uuid.empty()) { - blink::mojom::BlobPtr side_data_blob = - data.TakeSideDataBlob<blink::mojom::BlobPtr>(); + if (serialized_side_data_blob_ptr) { + out->side_data_blob_uuid = serialized_side_data_blob_ptr->uuid; + out->side_data_blob_size = serialized_side_data_blob_ptr->size; + blink::mojom::BlobPtr blob_ptr; + blob_ptr.Bind(std::move(serialized_side_data_blob_ptr->blob)); out->side_data_blob = - base::MakeRefCounted<storage::BlobHandle>(std::move(side_data_blob)); + base::MakeRefCounted<storage::BlobHandle>(std::move(blob_ptr)); } return true;
diff --git a/content/common/service_worker/service_worker_fetch_response_mojom_traits.h b/content/common/service_worker/service_worker_fetch_response_mojom_traits.h index bbd5258..287ac17 100644 --- a/content/common/service_worker/service_worker_fetch_response_mojom_traits.h +++ b/content/common/service_worker/service_worker_fetch_response_mojom_traits.h
@@ -30,10 +30,15 @@ const content::ServiceWorkerResponse& response) { return response.is_in_cache_storage; } - static blink::mojom::BlobPtr blob( + static blink::mojom::SerializedBlobPtr blob( const content::ServiceWorkerResponse& response) { if (response.blob) { - return response.blob->Clone(); + blink::mojom::SerializedBlobPtr serialized_blob_ptr = + blink::mojom::SerializedBlob::New(); + serialized_blob_ptr->uuid = response.blob_uuid; + serialized_blob_ptr->size = response.blob_size; + serialized_blob_ptr->blob = response.blob->Clone().PassInterface(); + return serialized_blob_ptr; } return nullptr; } @@ -51,12 +56,6 @@ headers(const content::ServiceWorkerResponse& response) { return response.headers; } - static std::string blob_uuid(const content::ServiceWorkerResponse& response) { - return response.blob_uuid; - } - static uint64_t blob_size(const content::ServiceWorkerResponse& response) { - return response.blob_size; - } static blink::mojom::ServiceWorkerResponseError error( const content::ServiceWorkerResponse& response) { return response.error; @@ -73,18 +72,16 @@ const content::ServiceWorkerResponse& response) { return response.cors_exposed_header_names; } - static std::string side_data_blob_uuid( - const content::ServiceWorkerResponse& response) { - return response.side_data_blob_uuid; - } - static uint64_t side_data_blob_size( - const content::ServiceWorkerResponse& response) { - return response.side_data_blob_size; - } - static blink::mojom::BlobPtr side_data_blob( + static blink::mojom::SerializedBlobPtr side_data_blob( const content::ServiceWorkerResponse& response) { if (response.side_data_blob) { - return response.side_data_blob->Clone(); + blink::mojom::SerializedBlobPtr serialized_blob_ptr = + blink::mojom::SerializedBlob::New(); + serialized_blob_ptr->uuid = response.side_data_blob_uuid; + serialized_blob_ptr->size = response.side_data_blob_size; + serialized_blob_ptr->blob = + response.side_data_blob->Clone().PassInterface(); + return serialized_blob_ptr; } return nullptr; }
diff --git a/content/common/service_worker/service_worker_types.cc b/content/common/service_worker/service_worker_types.cc index 687235e..97f52380 100644 --- a/content/common/service_worker/service_worker_types.cc +++ b/content/common/service_worker/service_worker_types.cc
@@ -56,7 +56,7 @@ ServiceWorkerFetchRequest::~ServiceWorkerFetchRequest() {} -std::string ServiceWorkerFetchRequest::Serialize() { +std::string ServiceWorkerFetchRequest::Serialize() const { proto::internal::ServiceWorkerFetchRequest request_proto; request_proto.set_url(url.spec());
diff --git a/content/common/service_worker/service_worker_types.h b/content/common/service_worker/service_worker_types.h index d84d525..15b8315 100644 --- a/content/common/service_worker/service_worker_types.h +++ b/content/common/service_worker/service_worker_types.h
@@ -90,7 +90,7 @@ ServiceWorkerFetchRequest& operator=(const ServiceWorkerFetchRequest& other); ~ServiceWorkerFetchRequest(); size_t EstimatedStructSize(); - std::string Serialize(); + std::string Serialize() const; static blink::mojom::FetchCacheMode GetCacheModeFromLoadFlags(int load_flags); static ServiceWorkerFetchRequest ParseFromString(
diff --git a/content/common/service_worker/service_worker_types_unittest.cc b/content/common/service_worker/service_worker_types_unittest.cc index 17a0818..8a077d53 100644 --- a/content/common/service_worker/service_worker_types_unittest.cc +++ b/content/common/service_worker/service_worker_types_unittest.cc
@@ -59,12 +59,10 @@ std::pair<std::string, std::string>("header1", "value1")); input.headers.insert( std::pair<std::string, std::string>("header2", "value2")); - input.blob_size = 123; input.error = blink::mojom::ServiceWorkerResponseError::kUnknown; input.response_time = base::Time::Now(); input.is_in_cache_storage = true; input.cache_storage_cache_name = "cache_name"; - input.side_data_blob_size = 456; mojo::test::SerializeAndDeserialize<blink::mojom::FetchAPIResponse>(&input, &output); @@ -74,16 +72,12 @@ EXPECT_EQ(input.status_text, output.status_text); EXPECT_EQ(input.response_type, output.response_type); EXPECT_EQ(input.headers, output.headers); - EXPECT_EQ(input.blob_uuid, output.blob_uuid); - EXPECT_EQ(input.blob_size, output.blob_size); EXPECT_EQ(input.blob, output.blob); EXPECT_EQ(input.error, output.error); EXPECT_EQ(input.response_time, output.response_time); EXPECT_EQ(input.is_in_cache_storage, output.is_in_cache_storage); EXPECT_EQ(input.cache_storage_cache_name, output.cache_storage_cache_name); EXPECT_EQ(input.cors_exposed_header_names, output.cors_exposed_header_names); - EXPECT_EQ(input.side_data_blob_uuid, output.side_data_blob_uuid); - EXPECT_EQ(input.side_data_blob_size, output.side_data_blob_size); EXPECT_EQ(input.side_data_blob, output.side_data_blob); }
diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc index 8c079255..53e9f25 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc
@@ -343,8 +343,7 @@ SkGraphics::Init(); #if defined(OS_LINUX) // Set up the font IPC so that the GPU process can create typefaces. - SkFontConfigInterface::SetGlobal(new FontConfigIPC(GetSandboxFD())) - ->unref(); + SkFontConfigInterface::SetGlobal(sk_make_sp<FontConfigIPC>(GetSandboxFD())); #endif }
diff --git a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java index 97b68cf..85c3fc0 100644 --- a/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java +++ b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java
@@ -44,16 +44,12 @@ * This provides the interface to the callbacks for successful or failed startup */ public interface StartupCallback { - void onSuccess(boolean alreadyStarted); + void onSuccess(); void onFailure(); } private static final String TAG = "cr.BrowserStartup"; - // Helper constants for {@link StartupCallback#onSuccess}. - private static final boolean ALREADY_STARTED = true; - private static final boolean NOT_ALREADY_STARTED = false; - // Helper constants for {@link #executeEnqueuedCallbacks(int, boolean)}. @VisibleForTesting static final int STARTUP_SUCCESS = -1; @@ -72,7 +68,7 @@ @CalledByNative static void browserStartupComplete(int result) { if (sInstance != null) { - sInstance.executeEnqueuedCallbacks(result, NOT_ALREADY_STARTED); + sInstance.executeEnqueuedCallbacks(result); } } @@ -113,7 +109,7 @@ public void run() { addStartupCompletedObserver(new StartupCallback() { @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { assert mTracingController == null; Context context = ContextUtils.getApplicationContext(); mTracingController = new TracingControllerAndroid(context); @@ -191,7 +187,7 @@ if (mHasCalledContentStart) return; if (contentStart() > 0) { // Failed. The callbacks may not have run, so run them. - enqueueCallbackExecution(STARTUP_FAILURE, NOT_ALREADY_STARTED); + enqueueCallbackExecution(STARTUP_FAILURE); } } }); @@ -220,7 +216,7 @@ if (!mHasCalledContentStart) { if (contentStart() > 0) { // Failed. The callbacks may not have run, so run them. - enqueueCallbackExecution(STARTUP_FAILURE, NOT_ALREADY_STARTED); + enqueueCallbackExecution(STARTUP_FAILURE); startedSuccessfully = false; } } @@ -268,13 +264,13 @@ } } - private void executeEnqueuedCallbacks(int startupResult, boolean alreadyStarted) { + private void executeEnqueuedCallbacks(int startupResult) { assert ThreadUtils.runningOnUiThread() : "Callback from browser startup from wrong thread."; mStartupDone = true; mStartupSuccess = (startupResult <= 0); for (StartupCallback asyncStartupCallback : mAsyncStartupCallbacks) { if (mStartupSuccess) { - asyncStartupCallback.onSuccess(alreadyStarted); + asyncStartupCallback.onSuccess(); } else { asyncStartupCallback.onFailure(); } @@ -285,11 +281,11 @@ // Queue the callbacks to run. Since running the callbacks clears the list it is safe to call // this more than once. - private void enqueueCallbackExecution(final int startupFailure, final boolean alreadyStarted) { + private void enqueueCallbackExecution(final int startupFailure) { new Handler().post(new Runnable() { @Override public void run() { - executeEnqueuedCallbacks(startupFailure, alreadyStarted); + executeEnqueuedCallbacks(startupFailure); } }); } @@ -299,7 +295,7 @@ @Override public void run() { if (mStartupSuccess) { - callback.onSuccess(ALREADY_STARTED); + callback.onSuccess(); } else { callback.onFailure(); }
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java index dbb7011..9cab343 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java
@@ -77,13 +77,11 @@ private boolean mWasSuccess; private boolean mWasFailure; private boolean mHasStartupResult; - private boolean mAlreadyStarted; @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { assert !mHasStartupResult; mWasSuccess = true; - mAlreadyStarted = alreadyStarted; mHasStartupResult = true; } @@ -131,9 +129,6 @@ Assert.assertTrue("Callback should have been executed.", callback.mHasStartupResult); Assert.assertTrue("Callback should have been a success.", callback.mWasSuccess); - Assert.assertFalse( - "Callback should be told that the browser process was not already started.", - callback.mAlreadyStarted); } @Test @@ -185,11 +180,6 @@ Assert.assertTrue("Callback 2 should have been a success.", callback2.mWasSuccess); Assert.assertTrue("Callback 3 should have been executed.", callback3.mHasStartupResult); Assert.assertTrue("Callback 3 should have been a success.", callback3.mWasSuccess); - // Some startup tasks might have been enqueued after the browser process was started, but - // not the first one which kicked of the startup. - Assert.assertFalse( - "Callback 1 should be told that the browser process was not already started.", - callback1.mAlreadyStarted); } @Test @@ -255,12 +245,8 @@ Assert.assertTrue("Callback 3 should have been executed.", callback3.mHasStartupResult); Assert.assertTrue("Callback 3 should have been a success.", callback3.mWasSuccess); - Assert.assertTrue("Callback 3 should be told that the browser process was already started.", - callback3.mAlreadyStarted); Assert.assertTrue("Callback 4 should have been executed.", callback4.mHasStartupResult); Assert.assertTrue("Callback 4 should have been a success.", callback4.mWasSuccess); - Assert.assertTrue("Callback 4 should be told that the browser process was already started.", - callback4.mAlreadyStarted); } @Test @@ -412,9 +398,6 @@ Assert.assertTrue("Callback should have been executed.", callback.mHasStartupResult); Assert.assertTrue("Callback should have been a success.", callback.mWasSuccess); - Assert.assertFalse( - "Callback should be told that the browser process was not already started.", - callback.mAlreadyStarted); } @Test @@ -459,8 +442,6 @@ Assert.assertTrue("Callback should have been executed.", callback.mHasStartupResult); Assert.assertTrue("Callback should have been a success.", callback.mWasSuccess); - Assert.assertTrue("Callback should be told that the browser process was already started.", - callback.mAlreadyStarted); } @Test
diff --git a/content/public/app/mojo/content_browser_manifest.json b/content/public/app/mojo/content_browser_manifest.json index b8b3c922e..959dec6f 100644 --- a/content/public/app/mojo/content_browser_manifest.json +++ b/content/public/app/mojo/content_browser_manifest.json
@@ -6,70 +6,70 @@ "provides": { // Interfaces needed by a generic client of content browser. "app": [ - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "memory_instrumentation::mojom::Coordinator" + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "memory_instrumentation.mojom.Coordinator" ], "dwrite_font_proxy": [ - "content::mojom::DWriteFontProxy" + "content.mojom.DWriteFontProxy" ], "field_trials": [ - "content::mojom::FieldTrialRecorder" + "content.mojom.FieldTrialRecorder" ], "font_cache": [ - "content::mojom::FontCacheWin" + "content.mojom.FontCacheWin" ], "font_loader": [ - "content::mojom::FontLoaderMac" + "content.mojom.FontLoaderMac" ], "gpu": [ - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "media::mojom::AndroidOverlayProvider" + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "media.mojom.AndroidOverlayProvider" ], "plugin": [ - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "ui::mojom::Gpu" + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "ui.mojom.Gpu" ], "renderer": [ - "blink::mojom::BackgroundSyncService", - "blink::mojom::BlobRegistry", - "blink::mojom::BroadcastChannelProvider", - "blink::mojom::ClipboardHost", - "blink::mojom::EmbeddedFrameSinkProvider", - "blink::mojom::FileUtilitiesHost", - "blink::mojom::LockManager", - "blink::mojom::Hyphenation", - "blink::mojom::MimeRegistry", - "blink::mojom::ReportingServiceProxy", - "blink::mojom::WebDatabaseHost", - "content::mojom::AppCacheBackend", - "content::mojom::ClipboardHost", - "content::mojom::FieldTrialRecorder", - "content::mojom::FrameSinkProvider", - "content::mojom::MediaStreamTrackMetricsHost", - "content::mojom::MemoryCoordinatorHandle", - "content::mojom::PeerConnectionTrackerHost", - "content::mojom::PushMessaging", - "content::mojom::RendererHost", - "content::mojom::ReportingServiceProxy", - "content::mojom::ServiceWorkerDispatcherHost", - "content::mojom::StoragePartitionService", - "content::mojom::WorkerURLLoaderFactoryProvider", - "device::mojom::BatteryMonitor", - "device::mojom::GamepadHapticsManager", - "device::mojom::GamepadMonitor", - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "media::mojom::KeySystemSupport", - "media::mojom::VideoCaptureHost", - "media::mojom::VideoDecodePerfHistory", - "memory_coordinator::mojom::MemoryCoordinatorHandle", - "metrics::mojom::SingleSampleMetricsProvider", - "network::mojom::URLLoaderFactory", - "resource_coordinator::mojom::ProcessCoordinationUnit", - "ui::mojom::Gpu", - "viz::mojom::CompositingModeReporter" + "blink.mojom.BackgroundSyncService", + "blink.mojom.BlobRegistry", + "blink.mojom.BroadcastChannelProvider", + "blink.mojom.ClipboardHost", + "blink.mojom.EmbeddedFrameSinkProvider", + "blink.mojom.FileUtilitiesHost", + "blink.mojom.LockManager", + "blink.mojom.Hyphenation", + "blink.mojom.MimeRegistry", + "blink.mojom.ReportingServiceProxy", + "blink.mojom.WebDatabaseHost", + "content.mojom.AppCacheBackend", + "content.mojom.ClipboardHost", + "content.mojom.FieldTrialRecorder", + "content.mojom.FrameSinkProvider", + "content.mojom.MediaStreamTrackMetricsHost", + "content.mojom.MemoryCoordinatorHandle", + "content.mojom.PeerConnectionTrackerHost", + "content.mojom.PushMessaging", + "content.mojom.RendererHost", + "content.mojom.ReportingServiceProxy", + "content.mojom.ServiceWorkerDispatcherHost", + "content.mojom.StoragePartitionService", + "content.mojom.WorkerURLLoaderFactoryProvider", + "device.mojom.BatteryMonitor", + "device.mojom.GamepadHapticsManager", + "device.mojom.GamepadMonitor", + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "media.mojom.KeySystemSupport", + "media.mojom.VideoCaptureHost", + "media.mojom.VideoDecodePerfHistory", + "memory_coordinator.mojom.MemoryCoordinatorHandle", + "metrics.mojom.SingleSampleMetricsProvider", + "network.mojom.URLLoaderFactory", + "resource_coordinator.mojom.ProcessCoordinationUnit", + "ui.mojom.Gpu", + "viz.mojom.CompositingModeReporter" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": { @@ -138,67 +138,67 @@ // TODO(beng): these belong in //chrome's overlay, but there are some // issues with mash browser_tests's manifest config that make this // impossible this week. Remove once sky/ken fix this. - "autofill::mojom::AutofillDriver", - "autofill::mojom::PasswordManagerDriver", - "blink::mojom::BackgroundFetchService", - "blink::mojom::BudgetService", - "blink::mojom::CacheStorage", - "blink::mojom::ColorChooserFactory", - "blink::mojom::DedicatedWorkerFactory", - "blink::mojom::LockManager", - "blink::mojom::GeolocationService", - "blink::mojom::InsecureInputService", - "blink::mojom::KeyboardLockService", - "blink::mojom::MediaDevicesDispatcherHost", - "blink::mojom::MediaSessionService", - "blink::mojom::NotificationService", - "blink::mojom::PermissionService", - "blink::mojom::PrefetchURLLoaderService", - "blink::mojom::PresentationService", - "blink::mojom::QuotaDispatcherHost", - "blink::mojom::TextSuggestionHost", - "blink::mojom::UnhandledTapNotifier", - "blink::mojom::WebBluetoothService", + "autofill.mojom.AutofillDriver", + "autofill.mojom.PasswordManagerDriver", + "blink.mojom.BackgroundFetchService", + "blink.mojom.BudgetService", + "blink.mojom.CacheStorage", + "blink.mojom.ColorChooserFactory", + "blink.mojom.DedicatedWorkerFactory", + "blink.mojom.LockManager", + "blink.mojom.GeolocationService", + "blink.mojom.InsecureInputService", + "blink.mojom.KeyboardLockService", + "blink.mojom.MediaDevicesDispatcherHost", + "blink.mojom.MediaSessionService", + "blink.mojom.NotificationService", + "blink.mojom.PermissionService", + "blink.mojom.PrefetchURLLoaderService", + "blink.mojom.PresentationService", + "blink.mojom.QuotaDispatcherHost", + "blink.mojom.TextSuggestionHost", + "blink.mojom.UnhandledTapNotifier", + "blink.mojom.WebBluetoothService", // TODO(beng): figure out how to overlay test interfaces like this. - "content::mojom::BrowserTarget", + "content.mojom.BrowserTarget", // InputInjector is only exposed when gpu benchmarking is enabled. - "content::mojom::InputInjector", + "content.mojom.InputInjector", - "content::mojom::MediaStreamDispatcherHost", - "content::mojom::RendererAudioInputStreamFactory", - "content::mojom::RendererAudioOutputStreamFactory", - "content::mojom::SharedWorkerConnector", - "content::mojom::SpeechRecognizer", - "device::mojom::Geolocation", - "device::mojom::NFC", - "device::mojom::SensorProvider", - "device::mojom::UsbChooserService", - "device::mojom::UsbDeviceManager", - "device::mojom::VibrationManager", - "device::mojom::UsbDeviceManager", - "device::mojom::VRService", - "device::mojom::VRService", - "device::mojom::WakeLock", - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "media::mojom::ImageCapture", - "media::mojom::InterfaceFactory", - "media::mojom::MediaMetricsProvider", - "media::mojom::RemoterFactory", - "media::mojom::Renderer", - "network::mojom::RestrictedCookieManager", - "network::mojom::WebSocket", - "password_manager::mojom::CredentialManager", - "payments::mojom::PaymentManager", - "payments::mojom::PaymentRequest", - "resource_coordinator::mojom::FrameCoordinationUnit", - "shape_detection::mojom::BarcodeDetection", - "shape_detection::mojom::FaceDetectionProvider", - "shape_detection::mojom::TextDetection", - "ui::mojom::Gpu", - "webauth::mojom::Authenticator", - "webauth::test::mojom::VirtualAuthenticatorManager" + "content.mojom.MediaStreamDispatcherHost", + "content.mojom.RendererAudioInputStreamFactory", + "content.mojom.RendererAudioOutputStreamFactory", + "content.mojom.SharedWorkerConnector", + "content.mojom.SpeechRecognizer", + "device.mojom.Geolocation", + "device.mojom.NFC", + "device.mojom.SensorProvider", + "device.mojom.UsbChooserService", + "device.mojom.UsbDeviceManager", + "device.mojom.VibrationManager", + "device.mojom.UsbDeviceManager", + "device.mojom.VRService", + "device.mojom.VRService", + "device.mojom.WakeLock", + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "media.mojom.ImageCapture", + "media.mojom.InterfaceFactory", + "media.mojom.MediaMetricsProvider", + "media.mojom.RemoterFactory", + "media.mojom.Renderer", + "network.mojom.RestrictedCookieManager", + "network.mojom.WebSocket", + "password_manager.mojom.CredentialManager", + "payments.mojom.PaymentManager", + "payments.mojom.PaymentRequest", + "resource_coordinator.mojom.FrameCoordinationUnit", + "shape_detection.mojom.BarcodeDetection", + "shape_detection.mojom.FaceDetectionProvider", + "shape_detection.mojom.TextDetection", + "ui.mojom.Gpu", + "webauth.mojom.Authenticator", + "webauth.test.mojom.VirtualAuthenticatorManager" ] }, "requires": { @@ -208,54 +208,54 @@ "navigation:dedicated_worker": { "provides": { "renderer": [ - "blink::mojom::BudgetService", - "blink::mojom::CacheStorage", - "blink::mojom::LockManager", - "blink::mojom::NotificationService", - "blink::mojom::PermissionService", - "blink::mojom::QuotaDispatcherHost", - "network::mojom::WebSocket", - "payments::mojom::PaymentManager", - "shape_detection::mojom::BarcodeDetection", - "shape_detection::mojom::FaceDetectionProvider", - "shape_detection::mojom::TextDetection" + "blink.mojom.BudgetService", + "blink.mojom.CacheStorage", + "blink.mojom.LockManager", + "blink.mojom.NotificationService", + "blink.mojom.PermissionService", + "blink.mojom.QuotaDispatcherHost", + "network.mojom.WebSocket", + "payments.mojom.PaymentManager", + "shape_detection.mojom.BarcodeDetection", + "shape_detection.mojom.FaceDetectionProvider", + "shape_detection.mojom.TextDetection" ] } }, "navigation:service_worker": { "provides": { "renderer": [ - "blink::mojom::BackgroundFetchService", - "blink::mojom::BudgetService", - "blink::mojom::CacheStorage", - "blink::mojom::CookieStore", - "blink::mojom::LockManager", - "blink::mojom::NotificationService", - "blink::mojom::PermissionService", - "blink::mojom::QuotaDispatcherHost", - "network::mojom::RestrictedCookieManager", - "network::mojom::WebSocket", - "payments::mojom::PaymentManager", - "shape_detection::mojom::BarcodeDetection", - "shape_detection::mojom::FaceDetectionProvider", - "shape_detection::mojom::TextDetection" + "blink.mojom.BackgroundFetchService", + "blink.mojom.BudgetService", + "blink.mojom.CacheStorage", + "blink.mojom.CookieStore", + "blink.mojom.LockManager", + "blink.mojom.NotificationService", + "blink.mojom.PermissionService", + "blink.mojom.QuotaDispatcherHost", + "network.mojom.RestrictedCookieManager", + "network.mojom.WebSocket", + "payments.mojom.PaymentManager", + "shape_detection.mojom.BarcodeDetection", + "shape_detection.mojom.FaceDetectionProvider", + "shape_detection.mojom.TextDetection" ] } }, "navigation:shared_worker": { "provides": { "renderer": [ - "blink::mojom::BudgetService", - "blink::mojom::CacheStorage", - "blink::mojom::LockManager", - "blink::mojom::NotificationService", - "blink::mojom::PermissionService", - "blink::mojom::QuotaDispatcherHost", - "network::mojom::WebSocket", - "payments::mojom::PaymentManager", - "shape_detection::mojom::BarcodeDetection", - "shape_detection::mojom::FaceDetectionProvider", - "shape_detection::mojom::TextDetection" + "blink.mojom.BudgetService", + "blink.mojom.CacheStorage", + "blink.mojom.LockManager", + "blink.mojom.NotificationService", + "blink.mojom.PermissionService", + "blink.mojom.QuotaDispatcherHost", + "network.mojom.WebSocket", + "payments.mojom.PaymentManager", + "shape_detection.mojom.BarcodeDetection", + "shape_detection.mojom.FaceDetectionProvider", + "shape_detection.mojom.TextDetection" ] } }
diff --git a/content/public/app/mojo/content_gpu_manifest.json b/content/public/app/mojo/content_gpu_manifest.json index b55e602..1335cff 100644 --- a/content/public/app/mojo/content_gpu_manifest.json +++ b/content/public/app/mojo/content_gpu_manifest.json
@@ -5,20 +5,20 @@ "service_manager:connector": { "provides": { "browser": [ - "content::mojom::Child", - "content::mojom::ChildControl", - "content::mojom::ChildHistogramFetcher", - "content::mojom::ChildHistogramFetcherFactory", - "content::mojom::ResourceUsageReporter", - "IPC::mojom::ChannelBootstrap", - "service_manager::mojom::ServiceFactory", - "ui::ozone::mojom::DeviceCursor", - "ui::ozone::mojom::DrmDevice", - "viz::mojom::CompositingModeReporter", - "viz::mojom::VizMain" + "content.mojom.Child", + "content.mojom.ChildControl", + "content.mojom.ChildHistogramFetcher", + "content.mojom.ChildHistogramFetcherFactory", + "content.mojom.ResourceUsageReporter", + "IPC.mojom.ChannelBootstrap", + "service_manager.mojom.ServiceFactory", + "ui.ozone.mojom.DeviceCursor", + "ui.ozone.mojom.DrmDevice", + "viz.mojom.CompositingModeReporter", + "viz.mojom.VizMain" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/content/public/app/mojo/content_packaged_services_manifest.json b/content/public/app/mojo/content_packaged_services_manifest.json index 358bd19..7bee376 100644 --- a/content/public/app/mojo/content_packaged_services_manifest.json +++ b/content/public/app/mojo/content_packaged_services_manifest.json
@@ -12,7 +12,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/content/public/app/mojo/content_plugin_manifest.json b/content/public/app/mojo/content_plugin_manifest.json index 91cb6ec4..44c6d2ba 100644 --- a/content/public/app/mojo/content_plugin_manifest.json +++ b/content/public/app/mojo/content_plugin_manifest.json
@@ -5,15 +5,15 @@ "service_manager:connector": { "provides": { "browser": [ - "content::mojom::Child", - "content::mojom::ChildControl", - "content::mojom::ChildHistogramFetcher", - "content::mojom::ChildHistogramFetcherFactory", - "content::mojom::ResourceUsageReporter", - "IPC::mojom::ChannelBootstrap" + "content.mojom.Child", + "content.mojom.ChildControl", + "content.mojom.ChildHistogramFetcher", + "content.mojom.ChildHistogramFetcherFactory", + "content.mojom.ResourceUsageReporter", + "IPC.mojom.ChannelBootstrap" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/content/public/app/mojo/content_renderer_manifest.json b/content/public/app/mojo/content_renderer_manifest.json index d01d4ac..71bc81d 100644 --- a/content/public/app/mojo/content_renderer_manifest.json +++ b/content/public/app/mojo/content_renderer_manifest.json
@@ -5,24 +5,24 @@ "service_manager:connector": { "provides": { "browser": [ - "blink::mojom::LeakDetector", - "blink::mojom::OomIntervention", - "blink::mojom::WebDatabase", - "content::mojom::AppCacheFrontend", - "content::mojom::Child", - "content::mojom::ChildControl", - "content::mojom::ChildHistogramFetcher", - "content::mojom::ChildHistogramFetcherFactory", - "content::mojom::FrameFactory", - "content::mojom::RenderWidgetWindowTreeClientFactory", - "content::mojom::ResourceUsageReporter", - "content::mojom::SharedWorkerFactory", - "IPC::mojom::ChannelBootstrap", - "visitedlink::mojom::VisitedLinkNotificationSink", - "web_cache::mojom::WebCache" + "blink.mojom.LeakDetector", + "blink.mojom.OomIntervention", + "blink.mojom.WebDatabase", + "content.mojom.AppCacheFrontend", + "content.mojom.Child", + "content.mojom.ChildControl", + "content.mojom.ChildHistogramFetcher", + "content.mojom.ChildHistogramFetcherFactory", + "content.mojom.FrameFactory", + "content.mojom.RenderWidgetWindowTreeClientFactory", + "content.mojom.ResourceUsageReporter", + "content.mojom.SharedWorkerFactory", + "IPC.mojom.ChannelBootstrap", + "visitedlink.mojom.VisitedLinkNotificationSink", + "web_cache.mojom.WebCache" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": { @@ -48,18 +48,18 @@ "navigation:frame": { "provides": { "browser": [ - "blink::mojom::AppBannerController", - "blink::mojom::EngagementClient", - "blink::mojom::InstallationService", - "blink::mojom::ManifestManager", - "blink::mojom::MediaDevicesListener", - "blink::mojom::TextSuggestionBackend", - "content::mojom::ImageDownloader", - "content::mojom::FrameInputHandler", - "content::mojom::FullscreenVideoElementHandler", - "content::mojom::MediaStreamDeviceObserver", - "content::mojom::Widget", - "viz::mojom::InputTargetClient" + "blink.mojom.AppBannerController", + "blink.mojom.EngagementClient", + "blink.mojom.InstallationService", + "blink.mojom.ManifestManager", + "blink.mojom.MediaDevicesListener", + "blink.mojom.TextSuggestionBackend", + "content.mojom.ImageDownloader", + "content.mojom.FrameInputHandler", + "content.mojom.FullscreenVideoElementHandler", + "content.mojom.MediaStreamDeviceObserver", + "content.mojom.Widget", + "viz.mojom.InputTargetClient" ] }, "requires": {
diff --git a/content/public/app/mojo/content_utility_manifest.json b/content/public/app/mojo/content_utility_manifest.json index e5cc53c9..563c885 100644 --- a/content/public/app/mojo/content_utility_manifest.json +++ b/content/public/app/mojo/content_utility_manifest.json
@@ -5,18 +5,18 @@ "service_manager:connector": { "provides": { "browser": [ - "content::mojom::Child", - "content::mojom::ChildControl", - "content::mojom::ChildHistogramFetcher", - "content::mojom::ChildHistogramFetcherFactory", - "content::mojom::ResourceUsageReporter", - "IPC::mojom::ChannelBootstrap", - "printing::mojom::PdfToEmfConverterFactory", - "printing::mojom::PdfToPwgRasterConverter", - "service_manager::mojom::ServiceFactory" + "content.mojom.Child", + "content.mojom.ChildControl", + "content.mojom.ChildHistogramFetcher", + "content.mojom.ChildHistogramFetcherFactory", + "content.mojom.ResourceUsageReporter", + "IPC.mojom.ChannelBootstrap", + "printing.mojom.PdfToEmfConverterFactory", + "printing.mojom.PdfToPwgRasterConverter", + "service_manager.mojom.ServiceFactory" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/content/public/browser/navigation_handle.h b/content/public/browser/navigation_handle.h index fbcb339..0ee6b89 100644 --- a/content/public/browser/navigation_handle.h +++ b/content/public/browser/navigation_handle.h
@@ -161,13 +161,10 @@ // be net::OK. virtual net::Error GetNetErrorCode() = 0; - // Returns the RenderFrameHost this navigation is taking place in. This can - // only be accessed after a response has been delivered for processing. - // - // If PlzNavigate is active, the RenderFrameHost returned will be the final - // host for the navigation. If PlzNavigate is inactive, the navigation may - // transfer to a new host up until the point that DidFinishNavigation is - // called. + // Returns the RenderFrameHost this navigation is committing in. The + // RenderFrameHost returned will be the final host for the navigation. This + // can only be accessed after a response has been delivered for processing, + // or after the navigation fails with an error page. virtual RenderFrameHost* GetRenderFrameHost() = 0; // Whether the navigation happened without changing document. Examples of @@ -299,6 +296,7 @@ // Simulates the network request failing. virtual NavigationThrottle::ThrottleCheckResult CallWillFailRequestForTesting( + RenderFrameHost* render_frame_host, base::Optional<net::SSLInfo> ssl_info) = 0; // Simulates the reception of the network response.
diff --git a/content/public/common/common_param_traits_macros.h b/content/public/common/common_param_traits_macros.h index b297eae0..c241d7b5 100644 --- a/content/public/common/common_param_traits_macros.h +++ b/content/public/common/common_param_traits_macros.h
@@ -125,6 +125,8 @@ IPC_STRUCT_TRAITS_MEMBER(xss_auditor_enabled) IPC_STRUCT_TRAITS_MEMBER(dns_prefetching_enabled) IPC_STRUCT_TRAITS_MEMBER(data_saver_enabled) + IPC_STRUCT_TRAITS_MEMBER(data_saver_holdback_web_api_enabled) + IPC_STRUCT_TRAITS_MEMBER(data_saver_holdback_media_api_enabled) IPC_STRUCT_TRAITS_MEMBER(local_storage_enabled) IPC_STRUCT_TRAITS_MEMBER(databases_enabled) IPC_STRUCT_TRAITS_MEMBER(application_cache_enabled)
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc index 7e56b72..7451a58 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -172,7 +172,7 @@ // Enables an API which allows websites to capture reserved keys in fullscreen. // Defined by w3c here: https://w3c.github.io/keyboard-lock/ const base::Feature kKeyboardLockAPI{"KeyboardLockAPI", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kLayeredAPI{"LayeredAPI", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/content/public/common/web_preferences.cc b/content/public/common/web_preferences.cc index 53bc2c0..a288caad 100644 --- a/content/public/common/web_preferences.cc +++ b/content/public/common/web_preferences.cc
@@ -90,6 +90,8 @@ xss_auditor_enabled(true), dns_prefetching_enabled(true), data_saver_enabled(false), + data_saver_holdback_web_api_enabled(false), + data_saver_holdback_media_api_enabled(false), local_storage_enabled(false), databases_enabled(false), application_cache_enabled(false),
diff --git a/content/public/common/web_preferences.h b/content/public/common/web_preferences.h index e4fc39c6..a1e9fba 100644 --- a/content/public/common/web_preferences.h +++ b/content/public/common/web_preferences.h
@@ -118,6 +118,14 @@ // Preference to save data. When enabled, requests will contain the header // 'Save-Data: on'. bool data_saver_enabled; + // Whether data saver holdback for Web APIs is enabled. If enabled, data saver + // appears as disabled to the web consumers even if it has been actually + // enabled by the user. + bool data_saver_holdback_web_api_enabled; + // Whether data saver holdback is enabled when queried by the media APIs + // within Blink. If enabled, data saver appears as disabled to the media APIs + // even if it has been actually enabled by the user. + bool data_saver_holdback_media_api_enabled; bool local_storage_enabled; bool databases_enabled; bool application_cache_enabled;
diff --git a/content/public/test/test_download_http_response.cc b/content/public/test/test_download_http_response.cc index 1cd615a..ca4d194 100644 --- a/content/public/test/test_download_http_response.cc +++ b/content/public/test/test_download_http_response.cc
@@ -121,6 +121,7 @@ size(102400), pattern_generator_seed(1), support_byte_ranges(true), + support_partial_response(true), connection_type( net::HttpResponseInfo::ConnectionInfo::CONNECTION_INFO_UNKNOWN) {} @@ -136,6 +137,7 @@ size(that.size), pattern_generator_seed(that.pattern_generator_seed), support_byte_ranges(that.support_byte_ranges), + support_partial_response(that.support_partial_response), connection_type(that.connection_type), static_response(std::move(that.static_response)), injected_errors(std::move(that.injected_errors)), @@ -146,11 +148,12 @@ TestDownloadHttpResponse::Parameters& TestDownloadHttpResponse::Parameters:: operator=(Parameters&& that) { etag = std::move(that.etag); - last_modified = std::move(that.etag); + last_modified = std::move(that.last_modified); content_type = std::move(that.content_type); size = that.size; pattern_generator_seed = that.pattern_generator_seed; support_byte_ranges = that.support_byte_ranges; + support_partial_response = that.support_partial_response; static_response = std::move(that.static_response); injected_errors = std::move(that.injected_errors); inject_error_cb = that.inject_error_cb; @@ -297,7 +300,8 @@ // Adjust the response range according to request range. The first byte offset // of the request may be larger than entity body size. request_range_ = ranges[0]; - range_.set_first_byte_position(request_range_.first_byte_position()); + if (parameters_.support_partial_response) + range_.set_first_byte_position(request_range_.first_byte_position()); range_.ComputeBounds(parameters_.size); response_sent_offset_ = range_.first_byte_position(); @@ -325,7 +329,7 @@ std::string TestDownloadHttpResponse::GetDefaultResponseHeaders() { std::string headers; // Send partial response. - if (parameters_.support_byte_ranges && + if (parameters_.support_partial_response && parameters_.support_byte_ranges && request_.headers.find(net::HttpRequestHeaders::kIfRange) != request_.headers.end() && request_.headers.at(net::HttpRequestHeaders::kIfRange) == @@ -335,7 +339,7 @@ } // Send precondition failed for "If-Match" request header. - if (parameters_.support_byte_ranges && + if (parameters_.support_partial_response && parameters_.support_byte_ranges && request_.headers.find(net::HttpRequestHeaders::kIfMatch) != request_.headers.end()) { if (request_.headers.at(net::HttpRequestHeaders::kIfMatch) != @@ -461,6 +465,9 @@ return false; int64_t pause_offset = parameters_.pause_offset.value(); + if (pause_offset < request_range_.first_byte_position()) + return false; + if (pause_offset > buffer_range.last_byte_position() || pause_offset < buffer_range.first_byte_position()) { return false;
diff --git a/content/public/test/test_download_http_response.h b/content/public/test/test_download_http_response.h index 6fb801d8..0ab178d 100644 --- a/content/public/test/test_download_http_response.h +++ b/content/public/test/test_download_http_response.h
@@ -108,6 +108,12 @@ // response, or contains 'Content-Range' header for HTTP 206 response. bool support_byte_ranges; + // Whether the server supports partial range responses. A server can claim + // it support byte ranges, but actually doesn't send partial responses. In + // that case, Set |support_byte_ranges| to true and this variable to false + // to simulate the case. + bool support_partial_response; + // The connection type in the response. net::HttpResponseInfo::ConnectionInfo connection_type;
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index 8429552e..b40c082d 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -64,8 +64,6 @@ "browser_plugin/browser_plugin.h", "browser_plugin/browser_plugin_manager.cc", "browser_plugin/browser_plugin_manager.h", - "cache_storage/webserviceworkercachestorage_impl.cc", - "cache_storage/webserviceworkercachestorage_impl.h", "categorized_worker_pool.cc", "categorized_worker_pool.h", "child_frame_compositing_helper.cc", @@ -408,8 +406,6 @@ "media/webrtc/rtc_peer_connection_handler.h", "media/webrtc/rtc_rtp_contributing_source.cc", "media/webrtc/rtc_rtp_contributing_source.h", - "media/webrtc/rtc_rtp_parameters.cc", - "media/webrtc/rtc_rtp_parameters.h", "media/webrtc/rtc_rtp_receiver.cc", "media/webrtc/rtc_rtp_receiver.h", "media/webrtc/rtc_rtp_sender.cc",
diff --git a/content/renderer/cache_storage/OWNERS b/content/renderer/cache_storage/OWNERS deleted file mode 100644 index f802dd1..0000000 --- a/content/renderer/cache_storage/OWNERS +++ /dev/null
@@ -1,6 +0,0 @@ -nhiroki@chromium.org -jkarlin@chromium.org -jsbell@chromium.org - -# TEAM: storage-dev@chromium.org -# COMPONENT: Blink>Storage>CacheStorage
diff --git a/content/renderer/cache_storage/webserviceworkercachestorage_impl.cc b/content/renderer/cache_storage/webserviceworkercachestorage_impl.cc deleted file mode 100644 index d6d31794..0000000 --- a/content/renderer/cache_storage/webserviceworkercachestorage_impl.cc +++ /dev/null
@@ -1,481 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/cache_storage/webserviceworkercachestorage_impl.h" - -#include <algorithm> -#include <map> -#include <memory> -#include <string> -#include <utility> - -#include "base/logging.h" -#include "base/metrics/histogram_macros.h" -#include "base/strings/utf_string_conversions.h" -#include "base/threading/thread_local.h" -#include "content/child/child_thread_impl.h" -#include "content/child/thread_safe_sender.h" -#include "content/public/common/content_features.h" -#include "content/public/common/referrer.h" -#include "content/public/common/service_names.mojom.h" -#include "content/public/renderer/render_thread.h" -#include "content/renderer/service_worker/service_worker_type_util.h" -#include "mojo/public/cpp/bindings/callback_helpers.h" -#include "services/service_manager/public/cpp/connector.h" -#include "services/service_manager/public/cpp/interface_provider.h" -#include "storage/common/blob_storage/blob_handle.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_response.h" -#include "third_party/blink/public/platform/web_string.h" - -namespace content { - -using base::TimeTicks; -using blink::mojom::CacheStorageError; -using blink::WebServiceWorkerRequest; -using blink::WebString; - -namespace { - -ServiceWorkerFetchRequest FetchRequestFromWebRequest( - const WebServiceWorkerRequest& web_request) { - ServiceWorkerHeaderMap headers; - GetServiceWorkerHeaderMapFromWebRequest(web_request, &headers); - - return ServiceWorkerFetchRequest( - web_request.Url(), web_request.Method().Ascii(), headers, - Referrer(web_request.ReferrerUrl(), web_request.GetReferrerPolicy()), - web_request.IsReload()); -} - -void PopulateWebRequestFromFetchRequest( - const ServiceWorkerFetchRequest& request, - WebServiceWorkerRequest* web_request) { - web_request->SetURL(request.url); - web_request->SetMethod(WebString::FromASCII(request.method)); - for (const auto& header : request.headers) { - web_request->SetHeader(WebString::FromASCII(header.first), - WebString::FromASCII(header.second)); - } - web_request->SetReferrer(WebString::FromASCII(request.referrer.url.spec()), - request.referrer.policy); - web_request->SetIsReload(request.is_reload); -} - -blink::WebVector<WebServiceWorkerRequest> WebRequestsFromRequests( - const std::vector<ServiceWorkerFetchRequest>& requests) { - blink::WebVector<WebServiceWorkerRequest> web_requests(requests.size()); - for (size_t i = 0; i < requests.size(); ++i) - PopulateWebRequestFromFetchRequest(requests[i], &(web_requests[i])); - return web_requests; -} - -CacheStorageCacheQueryParams QueryParamsFromWebQueryParams( - const blink::WebServiceWorkerCache::QueryParams& web_query_params) { - CacheStorageCacheQueryParams query_params; - query_params.ignore_search = web_query_params.ignore_search; - query_params.ignore_method = web_query_params.ignore_method; - query_params.ignore_vary = web_query_params.ignore_vary; - query_params.cache_name = - WebString::ToNullableString16(web_query_params.cache_name); - return query_params; -} - -CacheStorageCacheOperationType CacheOperationTypeFromWebCacheOperationType( - blink::WebServiceWorkerCache::OperationType operation_type) { - switch (operation_type) { - case blink::WebServiceWorkerCache::kOperationTypePut: - return CACHE_STORAGE_CACHE_OPERATION_TYPE_PUT; - case blink::WebServiceWorkerCache::kOperationTypeDelete: - return CACHE_STORAGE_CACHE_OPERATION_TYPE_DELETE; - default: - return CACHE_STORAGE_CACHE_OPERATION_TYPE_UNDEFINED; - } -} - -CacheStorageBatchOperation BatchOperationFromWebBatchOperation( - const blink::WebServiceWorkerCache::BatchOperation& web_operation) { - CacheStorageBatchOperation operation; - operation.operation_type = - CacheOperationTypeFromWebCacheOperationType(web_operation.operation_type); - operation.request = FetchRequestFromWebRequest(web_operation.request); - operation.response = - GetServiceWorkerResponseFromWebResponse(web_operation.response); - operation.match_params = - QueryParamsFromWebQueryParams(web_operation.match_params); - return operation; -} - -} // namespace - -// Class to outlive WebCache, we need to keep the ref (and callbacks) around -// even after WebCache is dropped as some consumers like -// InspectorCacheStorageAgent expects to be called back without holding a -// reference to it. CacheRef is ref-counted and the callback holds a reference -// to it to keep it alive until the callback is called. -class WebServiceWorkerCacheStorageImpl::CacheRef - : public base::RefCounted<CacheRef> { - public: - using CacheBatchCallbacks = blink::WebServiceWorkerCache::CacheBatchCallbacks; - using CacheMatchCallbacks = blink::WebServiceWorkerCache::CacheMatchCallbacks; - using CacheWithResponsesCallbacks = - blink::WebServiceWorkerCache::CacheWithResponsesCallbacks; - using CacheWithRequestsCallbacks = - blink::WebServiceWorkerCache::CacheWithRequestsCallbacks; - - CacheRef(base::WeakPtr<WebServiceWorkerCacheStorageImpl> dispatcher, - blink::mojom::CacheStorageCacheAssociatedPtrInfo cache_ptr_info) - : dispatcher_(std::move(dispatcher)) { - cache_ptr_.Bind(std::move(cache_ptr_info)); - } - - void DispatchMatch( - std::unique_ptr<CacheMatchCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const blink::WebServiceWorkerCache::QueryParams& query_params) { - cache_ptr_->Match(FetchRequestFromWebRequest(request), - QueryParamsFromWebQueryParams(query_params), - base::BindOnce(&CacheRef::CacheMatchCallback, this, - std::move(callbacks), TimeTicks::Now())); - } - - void DispatchMatchAll( - std::unique_ptr<CacheWithResponsesCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const blink::WebServiceWorkerCache::QueryParams& query_params) { - cache_ptr_->MatchAll( - FetchRequestFromWebRequest(request), - QueryParamsFromWebQueryParams(query_params), - base::BindOnce(&CacheRef::CacheMatchAllCallback, this, - std::move(callbacks), TimeTicks::Now())); - } - - void DispatchKeys( - std::unique_ptr<CacheWithRequestsCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const blink::WebServiceWorkerCache::QueryParams& query_params) { - cache_ptr_->Keys(FetchRequestFromWebRequest(request), - QueryParamsFromWebQueryParams(query_params), - base::BindOnce(&CacheRef::CacheKeysCallback, this, - std::move(callbacks))); - } - - void DispatchBatch( - std::unique_ptr<CacheBatchCallbacks> callbacks, - const blink::WebVector<blink::WebServiceWorkerCache::BatchOperation>& - batch_operations) { - std::vector<CacheStorageBatchOperation> operations; - operations.reserve(batch_operations.size()); - for (size_t i = 0; i < batch_operations.size(); ++i) { - operations.push_back( - BatchOperationFromWebBatchOperation(batch_operations[i])); - } - cache_ptr_->Batch(operations, - base::BindOnce(&CacheRef::BatchCallback, this, - std::move(callbacks), TimeTicks::Now())); - } - - private: - friend class base::RefCounted<CacheRef>; - - ~CacheRef() = default; - - void CacheMatchCallback(std::unique_ptr<CacheMatchCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::MatchResultPtr result) { - if (result->is_status() && - result->get_status() != CacheStorageError::kSuccess) { - callbacks->OnError(result->get_status()); - } else if (!dispatcher_) { - callbacks->OnError(CacheStorageError::kErrorNotFound); - } else { - blink::WebServiceWorkerResponse web_response; - dispatcher_->PopulateWebResponseFromResponse(result->get_response(), - &web_response); - - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.Match", - TimeTicks::Now() - start_time); - callbacks->OnSuccess(web_response); - } - } - - void CacheMatchAllCallback( - std::unique_ptr<CacheWithResponsesCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::MatchAllResultPtr result) { - if (result->is_status() && - result->get_status() != CacheStorageError::kSuccess) { - callbacks->OnError(result->get_status()); - } else if (!dispatcher_) { - callbacks->OnError(CacheStorageError::kErrorNotFound); - } else { - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.MatchAll", - TimeTicks::Now() - start_time); - callbacks->OnSuccess( - dispatcher_->WebResponsesFromResponses(result->get_responses())); - } - } - - void CacheKeysCallback(std::unique_ptr<CacheWithRequestsCallbacks> callbacks, - blink::mojom::CacheKeysResultPtr result) { - if (result->is_status() && - result->get_status() != CacheStorageError::kSuccess) { - callbacks->OnError(result->get_status()); - } else { - callbacks->OnSuccess(WebRequestsFromRequests(result->get_keys())); - } - } - - void BatchCallback(std::unique_ptr<CacheBatchCallbacks> callbacks, - base::TimeTicks start_time, - CacheStorageError error) { - if (error == CacheStorageError::kSuccess) { - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.Batch", - TimeTicks::Now() - start_time); - callbacks->OnSuccess(); - } else { - callbacks->OnError(error); - } - } - - blink::mojom::CacheStorageCacheAssociatedPtr cache_ptr_; - base::WeakPtr<WebServiceWorkerCacheStorageImpl> dispatcher_; -}; - -// The WebCache object is the Chromium side implementation of the Blink -// WebServiceWorkerCache API. It only delegates the client calls to CacheRef -// object, which have a lifetime longer than the WebCache. WebCache is owned by -// the script-facing caller. CacheRef outlives WebCache to guarantee callback -// responses are invoked, regardless of script-facing keeping WebCache instance -// alive. -class WebServiceWorkerCacheStorageImpl::WebCache - : public blink::WebServiceWorkerCache { - public: - WebCache(scoped_refptr<CacheRef> cache_ref) - : cache_ref_(std::move(cache_ref)) {} - - ~WebCache() override = default; - - // From blink::WebServiceWorkerCache: - void DispatchMatch(std::unique_ptr<CacheMatchCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const QueryParams& query_params) override { - cache_ref_->DispatchMatch(std::move(callbacks), std::move(request), - std::move(query_params)); - } - - void DispatchMatchAll(std::unique_ptr<CacheWithResponsesCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const QueryParams& query_params) override { - cache_ref_->DispatchMatchAll(std::move(callbacks), std::move(request), - std::move(query_params)); - } - - void DispatchKeys(std::unique_ptr<CacheWithRequestsCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const QueryParams& query_params) override { - cache_ref_->DispatchKeys(std::move(callbacks), std::move(request), - std::move(query_params)); - } - - void DispatchBatch( - std::unique_ptr<CacheBatchCallbacks> callbacks, - const blink::WebVector<blink::WebServiceWorkerCache::BatchOperation>& - batch_operations) override { - cache_ref_->DispatchBatch(std::move(callbacks), - std::move(batch_operations)); - } - - private: - scoped_refptr<CacheRef> cache_ref_; - - DISALLOW_COPY_AND_ASSIGN(WebCache); -}; - -WebServiceWorkerCacheStorageImpl::WebServiceWorkerCacheStorageImpl( - service_manager::InterfaceProvider* provider) - : weak_factory_(this) { - // Sets up the Mojo InterfacePtr to send IPCs to browser process. - provider->GetInterface(mojo::MakeRequest(&cache_storage_ptr_)); -} - -WebServiceWorkerCacheStorageImpl::~WebServiceWorkerCacheStorageImpl() = default; - -void WebServiceWorkerCacheStorageImpl::DispatchHas( - std::unique_ptr<CacheStorageCallbacks> callbacks, - const WebString& cacheName) { - GetCacheStorage().Has( - cacheName.Utf16(), - base::BindOnce( - &WebServiceWorkerCacheStorageImpl::OnCacheStorageHasCallback, - weak_factory_.GetWeakPtr(), std::move(callbacks), - base::TimeTicks::Now())); -} - -void WebServiceWorkerCacheStorageImpl::OnCacheStorageHasCallback( - std::unique_ptr<CacheStorageCallbacks> callbacks, - base::TimeTicks start_time, - CacheStorageError result) { - if (result == CacheStorageError::kSuccess) { - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Has", - TimeTicks::Now() - start_time); - callbacks->OnSuccess(); - } else { - callbacks->OnError(result); - } -} - -void WebServiceWorkerCacheStorageImpl::DispatchOpen( - std::unique_ptr<CacheStorageWithCacheCallbacks> callbacks, - const WebString& cacheName) { - GetCacheStorage().Open( - cacheName.Utf16(), - base::BindOnce( - &WebServiceWorkerCacheStorageImpl::OnCacheStorageOpenCallback, - weak_factory_.GetWeakPtr(), std::move(callbacks), - base::TimeTicks::Now())); -} - -void WebServiceWorkerCacheStorageImpl::OnCacheStorageOpenCallback( - std::unique_ptr<CacheStorageWithCacheCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::OpenResultPtr result) { - if (result->is_status() && - result->get_status() != CacheStorageError::kSuccess) { - callbacks->OnError(result->get_status()); - } else { - std::unique_ptr<WebCache> web_cache = - std::make_unique<WebCache>(base::MakeRefCounted<CacheRef>( - weak_factory_.GetWeakPtr(), std::move(result->get_cache()))); - - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Open", - TimeTicks::Now() - start_time); - callbacks->OnSuccess(std::move(web_cache)); - } -} - -void WebServiceWorkerCacheStorageImpl::DispatchDelete( - std::unique_ptr<CacheStorageCallbacks> callbacks, - const WebString& cacheName) { - GetCacheStorage().Delete( - cacheName.Utf16(), - base::BindOnce( - &WebServiceWorkerCacheStorageImpl::CacheStorageDeleteCallback, - weak_factory_.GetWeakPtr(), std::move(callbacks), - base::TimeTicks::Now())); -} - -void WebServiceWorkerCacheStorageImpl::CacheStorageDeleteCallback( - std::unique_ptr<CacheStorageCallbacks> callbacks, - base::TimeTicks start_time, - CacheStorageError result) { - if (result == CacheStorageError::kSuccess) { - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Delete", - TimeTicks::Now() - start_time); - callbacks->OnSuccess(); - } else { - callbacks->OnError(result); - } -} - -void WebServiceWorkerCacheStorageImpl::DispatchKeys( - std::unique_ptr<CacheStorageKeysCallbacks> callbacks) { - GetCacheStorage().Keys( - base::BindOnce(&WebServiceWorkerCacheStorageImpl::KeysCallback, - weak_factory_.GetWeakPtr(), std::move(callbacks), - base::TimeTicks::Now())); -} - -void WebServiceWorkerCacheStorageImpl::KeysCallback( - std::unique_ptr<CacheStorageKeysCallbacks> callbacks, - base::TimeTicks start_time, - const std::vector<base::string16>& keys) { - blink::WebVector<WebString> web_keys(keys.size()); - std::transform( - keys.begin(), keys.end(), web_keys.begin(), - [](const base::string16& s) { return WebString::FromUTF16(s); }); - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Keys", - TimeTicks::Now() - start_time); - callbacks->OnSuccess(web_keys); -} - -void WebServiceWorkerCacheStorageImpl::DispatchMatch( - std::unique_ptr<CacheStorageMatchCallbacks> callbacks, - const WebServiceWorkerRequest& request, - const blink::WebServiceWorkerCache::QueryParams& query_params) { - GetCacheStorage().Match( - FetchRequestFromWebRequest(request), - QueryParamsFromWebQueryParams(query_params), - base::BindOnce( - &WebServiceWorkerCacheStorageImpl::OnCacheStorageMatchCallback, - weak_factory_.GetWeakPtr(), std::move(callbacks), - base::TimeTicks::Now())); -} - -void WebServiceWorkerCacheStorageImpl::OnCacheStorageMatchCallback( - std::unique_ptr<CacheStorageMatchCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::MatchResultPtr result) { - if (result->is_status() && - result->get_status() != CacheStorageError::kSuccess) { - callbacks->OnError(result->get_status()); - } else { - UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Match", - TimeTicks::Now() - start_time); - blink::WebServiceWorkerResponse web_response; - PopulateWebResponseFromResponse(result->get_response(), &web_response); - - callbacks->OnSuccess(web_response); - } -} - -blink::mojom::CacheStorage& -WebServiceWorkerCacheStorageImpl::GetCacheStorage() { - return *cache_storage_ptr_; -} - -void WebServiceWorkerCacheStorageImpl::PopulateWebResponseFromResponse( - const ServiceWorkerResponse& response, - blink::WebServiceWorkerResponse* web_response) { - web_response->SetURLList(response.url_list); - web_response->SetStatus(response.status_code); - web_response->SetStatusText(WebString::FromASCII(response.status_text)); - web_response->SetResponseType(response.response_type); - web_response->SetResponseTime(response.response_time); - web_response->SetCacheStorageCacheName( - response.is_in_cache_storage - ? WebString::FromUTF8(response.cache_storage_cache_name) - : WebString()); - blink::WebVector<WebString> headers( - response.cors_exposed_header_names.size()); - std::transform(response.cors_exposed_header_names.begin(), - response.cors_exposed_header_names.end(), headers.begin(), - [](const std::string& s) { return WebString::FromLatin1(s); }); - web_response->SetCorsExposedHeaderNames(headers); - - for (const auto& i : response.headers) { - web_response->SetHeader(WebString::FromASCII(i.first), - WebString::FromASCII(i.second)); - } - - if (!response.blob_uuid.empty()) { - DCHECK(response.blob); - web_response->SetBlob(WebString::FromUTF8(response.blob_uuid), - response.blob_size, - response.blob->Clone().PassInterface().PassHandle()); - } -} - -blink::WebVector<blink::WebServiceWorkerResponse> -WebServiceWorkerCacheStorageImpl::WebResponsesFromResponses( - const std::vector<ServiceWorkerResponse>& responses) { - blink::WebVector<blink::WebServiceWorkerResponse> web_responses( - responses.size()); - for (size_t i = 0; i < responses.size(); ++i) - PopulateWebResponseFromResponse(responses[i], &(web_responses[i])); - return web_responses; -} - -} // namespace content
diff --git a/content/renderer/cache_storage/webserviceworkercachestorage_impl.h b/content/renderer/cache_storage/webserviceworkercachestorage_impl.h deleted file mode 100644 index de4bc01..0000000 --- a/content/renderer/cache_storage/webserviceworkercachestorage_impl.h +++ /dev/null
@@ -1,103 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_RENDERER_SERVICE_WORKER_WEB_SERVICE_WORKER_CACHE_STORAGE_IMPL_H_ -#define CONTENT_RENDERER_SERVICE_WORKER_WEB_SERVICE_WORKER_CACHE_STORAGE_IMPL_H_ - -#include <stdint.h> - -#include <memory> -#include <vector> - -#include "base/containers/id_map.h" -#include "base/macros.h" -#include "base/memory/weak_ptr.h" -#include "base/strings/string16.h" -#include "base/time/time.h" -#include "services/service_manager/public/cpp/interface_provider.h" -#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h" -#include "third_party/blink/public/platform/web_string.h" - -namespace content { -struct ServiceWorkerResponse; - -// This corresponds to an instance of the script-facing CacheStorage object. -// One exists per script execution context (window, worker) and has an origin -// which provides a namespace for the caches. Script calls to the CacheStorage -// object are routed through here via Mojo interface then on to the browser, -// with the origin managed at binding time on browser side. Cache instances -// returned by open() calls return a WebCache to script-facing caller which can -// dispatch calls to browser via CacheRef. WebCache is owned by script-facing -// caller and CacheRef is owned by WebServiceWorkerCacheStorageImpl. CacheRef is -// destroyed once WebCache has been destroyed and there are no pending -// callbacks. -class WebServiceWorkerCacheStorageImpl - : public blink::WebServiceWorkerCacheStorage { - public: - explicit WebServiceWorkerCacheStorageImpl( - service_manager::InterfaceProvider* provider); - - ~WebServiceWorkerCacheStorageImpl() override; - - // From WebServiceWorkerCacheStorage interface to script-facing: - void DispatchHas(std::unique_ptr<CacheStorageCallbacks> callbacks, - const blink::WebString& cacheName) override; - void DispatchOpen(std::unique_ptr<CacheStorageWithCacheCallbacks> callbacks, - const blink::WebString& cacheName) override; - void DispatchDelete(std::unique_ptr<CacheStorageCallbacks> callbacks, - const blink::WebString& cacheName) override; - void DispatchKeys( - std::unique_ptr<CacheStorageKeysCallbacks> callbacks) override; - void DispatchMatch( - std::unique_ptr<CacheStorageMatchCallbacks> callbacks, - const blink::WebServiceWorkerRequest& request, - const blink::WebServiceWorkerCache::QueryParams& query_params) override; - - // Message handlers for CacheStorage messages from the browser process. - // And callbacks called by Mojo implementation on browser process. - void OnCacheStorageHasCallback( - std::unique_ptr<CacheStorageCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::CacheStorageError result); - void OnCacheStorageOpenCallback( - std::unique_ptr<CacheStorageWithCacheCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::OpenResultPtr result); - void CacheStorageDeleteCallback( - std::unique_ptr<CacheStorageCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::CacheStorageError result); - void KeysCallback(std::unique_ptr<CacheStorageKeysCallbacks> callbacks, - base::TimeTicks start_time, - const std::vector<base::string16>& keys); - void OnCacheStorageMatchCallback( - std::unique_ptr<CacheStorageMatchCallbacks> callbacks, - base::TimeTicks start_time, - blink::mojom::MatchResultPtr result); - - private: - class WebCache; - class CacheRef; - - void PopulateWebResponseFromResponse( - const ServiceWorkerResponse& response, - blink::WebServiceWorkerResponse* web_response); - - blink::WebVector<blink::WebServiceWorkerResponse> WebResponsesFromResponses( - const std::vector<ServiceWorkerResponse>& responses); - - blink::mojom::CacheStorage& GetCacheStorage(); - - blink::mojom::CacheStoragePtr cache_storage_ptr_; - - base::WeakPtrFactory<WebServiceWorkerCacheStorageImpl> weak_factory_; - - DISALLOW_COPY_AND_ASSIGN(WebServiceWorkerCacheStorageImpl); -}; - -} // namespace content - -#endif // CONTENT_RENDERER_SERVICE_WORKER_WEB_SERVICE_WORKER_CACHE_STORAGE_IMPL_H_
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc index 2fe11a1..64ad4dc 100644 --- a/content/renderer/gpu/gpu_benchmarking_extension.cc +++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
@@ -803,12 +803,12 @@ float anchor_y; v8::Local<v8::Function> callback; float relative_pointer_speed_in_pixels_s = 800; + int gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; - if (!GetArg(args, &scale_factor) || - !GetArg(args, &anchor_x) || - !GetArg(args, &anchor_y) || - !GetOptionalArg(args, &callback) || - !GetOptionalArg(args, &relative_pointer_speed_in_pixels_s)) { + if (!GetArg(args, &scale_factor) || !GetArg(args, &anchor_x) || + !GetArg(args, &anchor_y) || !GetOptionalArg(args, &callback) || + !GetOptionalArg(args, &relative_pointer_speed_in_pixels_s) || + !GetOptionalArg(args, &gesture_source_type)) { return false; } @@ -826,6 +826,27 @@ gesture_params.relative_pointer_speed_in_pixels_s = relative_pointer_speed_in_pixels_s; + if (gesture_source_type < 0 || + gesture_source_type > SyntheticGestureParams::GESTURE_SOURCE_TYPE_MAX) { + args->ThrowTypeError("Unknown gesture source type"); + return false; + } + + gesture_params.gesture_source_type = + static_cast<SyntheticGestureParams::GestureSourceType>( + gesture_source_type); + + switch (gesture_params.gesture_source_type) { + case SyntheticGestureParams::DEFAULT_INPUT: + case SyntheticGestureParams::TOUCH_INPUT: + case SyntheticGestureParams::MOUSE_INPUT: + break; + case SyntheticGestureParams::PEN_INPUT: + args->ThrowTypeError( + "Gesture is not implemented for the given source type"); + return false; + } + scoped_refptr<CallbackAndContext> callback_and_context = new CallbackAndContext(args->isolate(), callback, context.web_frame()->MainWorldScriptContext());
diff --git a/content/renderer/input/widget_input_handler_manager.cc b/content/renderer/input/widget_input_handler_manager.cc index 30656d1..fa74edacb 100644 --- a/content/renderer/input/widget_input_handler_manager.cc +++ b/content/renderer/input/widget_input_handler_manager.cc
@@ -469,6 +469,7 @@ ack_state == INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING_DUE_TO_FLING || ack_state == INPUT_EVENT_ACK_STATE_NOT_CONSUMED) { DCHECK(!overscroll_params); + DCHECK(!latency_info.coalesced()); InputEventDispatchType dispatch_type = callback.is_null() ? DISPATCH_TYPE_NON_BLOCKING : DISPATCH_TYPE_BLOCKING;
diff --git a/content/renderer/media/stream/webmediaplayer_ms.cc b/content/renderer/media/stream/webmediaplayer_ms.cc index f2a1233..57fef04 100644 --- a/content/renderer/media/stream/webmediaplayer_ms.cc +++ b/content/renderer/media/stream/webmediaplayer_ms.cc
@@ -1005,11 +1005,17 @@ DCHECK(thread_checker_.CalledOnValidThread()); video_rotation_ = video_rotation; - video_layer_ = cc::VideoLayer::Create(compositor_.get(), video_rotation); - video_layer_->SetContentsOpaque(is_opaque); + // Keep the old |video_layer_| and |video_weblayer_| alive until SetWebLayer + // is called with a new pointer, as it may use the pointer from the last call. + auto new_video_layer = + cc::VideoLayer::Create(compositor_.get(), video_rotation); + new_video_layer->SetContentsOpaque(is_opaque); - video_weblayer_ = std::make_unique<blink::WebLayer>(video_layer_.get()); - get_client()->SetWebLayer(video_weblayer_.get()); + auto new_weblayer = std::make_unique<blink::WebLayer>(new_video_layer.get()); + get_client()->SetWebLayer(new_weblayer.get()); + + video_layer_ = std::move(new_video_layer); + video_weblayer_ = std::move(new_weblayer); } void WebMediaPlayerMS::RepaintInternal() {
diff --git a/content/renderer/media/webrtc/rtc_rtp_parameters.cc b/content/renderer/media/webrtc/rtc_rtp_parameters.cc deleted file mode 100644 index b4eb8fcb..0000000 --- a/content/renderer/media/webrtc/rtc_rtp_parameters.cc +++ /dev/null
@@ -1,251 +0,0 @@ -// Copyright (c) 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/media/webrtc/rtc_rtp_parameters.h" - -#include <utility> - -#include "base/numerics/safe_conversions.h" - -namespace { - -// Relative weights for each priority as defined in RTCWEB-DATA -// https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel -const double kPriorityWeightVeryLow = 0.5; -const double kPriorityWeightLow = 1; -const double kPriorityWeightMedium = 2; -const double kPriorityWeightHigh = 4; - -template <typename T, typename F> -base::Optional<T> ToBaseOptional(const rtc::Optional<F>& from) { - if (from) - return from.value(); - return base::nullopt; -} - -template <typename T, typename F> -rtc::Optional<T> ToRtcOptional(const base::Optional<F>& from) { - // TODO(orphis): Remove saturated_cast. https://crbug.com/webrtc/9143 - if (from) - return base::saturated_cast<T>(from.value()); - return rtc::nullopt; -} - -blink::WebRTCPriorityType PriorityFromDouble(double priority) { - // Find the middle point between 2 priority weights to match them to a - // WebRTC priority - const double very_low_upper_bound = - (kPriorityWeightVeryLow + kPriorityWeightLow) / 2; - const double low_upper_bound = - (kPriorityWeightLow + kPriorityWeightMedium) / 2; - const double medium_upper_bound = - (kPriorityWeightMedium + kPriorityWeightHigh) / 2; - - if (priority < webrtc::kDefaultBitratePriority * very_low_upper_bound) { - return blink::WebRTCPriorityType::VeryLow; - } - if (priority < webrtc::kDefaultBitratePriority * low_upper_bound) { - return blink::WebRTCPriorityType::Low; - } - if (priority < webrtc::kDefaultBitratePriority * medium_upper_bound) { - return blink::WebRTCPriorityType::Medium; - } - return blink::WebRTCPriorityType::High; -} - -double PriorityToDouble(blink::WebRTCPriorityType priority) { - double result = 1; - - switch (priority) { - case blink::WebRTCPriorityType::VeryLow: - result = webrtc::kDefaultBitratePriority * kPriorityWeightVeryLow; - break; - case blink::WebRTCPriorityType::Low: - result = webrtc::kDefaultBitratePriority * kPriorityWeightLow; - break; - case blink::WebRTCPriorityType::Medium: - result = webrtc::kDefaultBitratePriority * kPriorityWeightMedium; - break; - case blink::WebRTCPriorityType::High: - result = webrtc::kDefaultBitratePriority * kPriorityWeightHigh; - break; - default: - NOTREACHED(); - } - return result; -} - -base::Optional<blink::WebRTCDtxStatus> FromRTCDtxStatus( - rtc::Optional<webrtc::DtxStatus> status) { - if (!status) - return base::nullopt; - - blink::WebRTCDtxStatus result; - switch (status.value()) { - case webrtc::DtxStatus::DISABLED: - result = blink::WebRTCDtxStatus::Disabled; - break; - case webrtc::DtxStatus::ENABLED: - result = blink::WebRTCDtxStatus::Enabled; - break; - default: - NOTREACHED(); - } - return result; -} - -rtc::Optional<webrtc::DtxStatus> ToRTCDtxStatus( - base::Optional<blink::WebRTCDtxStatus> status) { - if (!status) - return rtc::nullopt; - - webrtc::DtxStatus result; - switch (status.value()) { - case blink::WebRTCDtxStatus::Disabled: - result = webrtc::DtxStatus::DISABLED; - break; - case blink::WebRTCDtxStatus::Enabled: - result = webrtc::DtxStatus::ENABLED; - break; - default: - NOTREACHED(); - } - return result; -} - -base::Optional<blink::WebRTCDegradationPreference> FromRTCDegradationPreference( - rtc::Optional<webrtc::DegradationPreference> degradation_preference) { - if (!degradation_preference) - return base::nullopt; - - blink::WebRTCDegradationPreference result; - switch (degradation_preference.value()) { - case webrtc::DegradationPreference::MAINTAIN_FRAMERATE: - result = blink::WebRTCDegradationPreference::MaintainFramerate; - break; - case webrtc::DegradationPreference::MAINTAIN_RESOLUTION: - result = blink::WebRTCDegradationPreference::MaintainResolution; - break; - case webrtc::DegradationPreference::BALANCED: - result = blink::WebRTCDegradationPreference::Balanced; - break; - default: - NOTREACHED(); - } - return result; -} - -} // namespace - -namespace content { - -webrtc::DegradationPreference ToDegradationPreference( - blink::WebRTCDegradationPreference degradation_preference) { - webrtc::DegradationPreference result = - webrtc::DegradationPreference::BALANCED; - switch (degradation_preference) { - case blink::WebRTCDegradationPreference::MaintainFramerate: - result = webrtc::DegradationPreference::MAINTAIN_FRAMERATE; - break; - case blink::WebRTCDegradationPreference::MaintainResolution: - result = webrtc::DegradationPreference::MAINTAIN_RESOLUTION; - break; - case blink::WebRTCDegradationPreference::Balanced: - result = webrtc::DegradationPreference::BALANCED; - break; - default: - NOTREACHED(); - } - return result; -} - -blink::WebRTCRtpParameters GetWebRTCRtpParameters( - const webrtc::RtpParameters& parameters) { - blink::WebVector<blink::WebRTCRtpEncodingParameters> encodings; - encodings.reserve(parameters.encodings.size()); - for (const auto& encoding_parameter : parameters.encodings) { - encodings.emplace_back(GetWebRTCRtpEncodingParameters(encoding_parameter)); - } - - blink::WebVector<blink::WebRTCRtpHeaderExtensionParameters> header_extensions; - header_extensions.reserve(parameters.header_extensions.size()); - for (const auto& extension_parameter : parameters.header_extensions) { - header_extensions.emplace_back( - GetWebRTCRtpHeaderExtensionParameters(extension_parameter)); - } - - blink::WebVector<blink::WebRTCRtpCodecParameters> codec_parameters; - codec_parameters.reserve(parameters.codecs.size()); - for (const auto& codec_parameter : parameters.codecs) { - codec_parameters.emplace_back(GetWebRTCRtpCodecParameters(codec_parameter)); - } - - return blink::WebRTCRtpParameters( - blink::WebString::FromASCII(parameters.transaction_id), - blink::WebRTCRtcpParameters(), std::move(encodings), header_extensions, - codec_parameters, - FromRTCDegradationPreference(parameters.degradation_preference)); -} - -blink::WebRTCRtpEncodingParameters GetWebRTCRtpEncodingParameters( - const webrtc::RtpEncodingParameters& encoding_parameters) { - return blink::WebRTCRtpEncodingParameters( - ToBaseOptional<uint8_t>(encoding_parameters.codec_payload_type), - FromRTCDtxStatus(encoding_parameters.dtx), encoding_parameters.active, - PriorityFromDouble(encoding_parameters.bitrate_priority), - ToBaseOptional<uint32_t>(encoding_parameters.ptime), - ToBaseOptional<uint32_t>(encoding_parameters.max_bitrate_bps), - ToBaseOptional<uint32_t>(encoding_parameters.max_framerate), - encoding_parameters.scale_framerate_down_by, - blink::WebString::FromASCII(encoding_parameters.rid)); -} - -webrtc::RtpEncodingParameters FromWebRTCRtpEncodingParameters( - const blink::WebRTCRtpEncodingParameters& web_encoding_parameter) { - webrtc::RtpEncodingParameters encoding_parameter; - encoding_parameter.codec_payload_type = - ToRtcOptional<int>(web_encoding_parameter.CodecPayloadType()); - encoding_parameter.dtx = ToRTCDtxStatus(web_encoding_parameter.Dtx()); - encoding_parameter.active = web_encoding_parameter.Active(); - encoding_parameter.bitrate_priority = - PriorityToDouble(web_encoding_parameter.Priority()); - encoding_parameter.ptime = ToRtcOptional<int>(web_encoding_parameter.Ptime()); - encoding_parameter.max_bitrate_bps = - ToRtcOptional<int>(web_encoding_parameter.MaxBitrate()); - encoding_parameter.max_framerate = - ToRtcOptional<int>(web_encoding_parameter.MaxFramerate()); - if (web_encoding_parameter.ScaleResolutionDownBy()) - encoding_parameter.scale_resolution_down_by = - web_encoding_parameter.ScaleResolutionDownBy().value(); - if (web_encoding_parameter.Rid()) - encoding_parameter.rid = web_encoding_parameter.Rid().value().Ascii(); - return encoding_parameter; -} - -blink::WebRTCRtpHeaderExtensionParameters GetWebRTCRtpHeaderExtensionParameters( - const webrtc::RtpHeaderExtensionParameters& header_extension_parameters) { - return blink::WebRTCRtpHeaderExtensionParameters( - blink::WebString::FromASCII(header_extension_parameters.uri), - header_extension_parameters.id, header_extension_parameters.encrypt); -} - -// TODO(orphis): Copy the RTCP information -// https://crbug.com/webrtc/7580 -blink::WebRTCRtcpParameters GetWebRTCRtcpParameters() { - return blink::WebRTCRtcpParameters(); -} - -blink::WebRTCRtpCodecParameters GetWebRTCRtpCodecParameters( - const webrtc::RtpCodecParameters& codec_parameters) { - return blink::WebRTCRtpCodecParameters( - codec_parameters.payload_type, - blink::WebString::FromASCII(codec_parameters.mime_type()), - ToBaseOptional<uint32_t>(codec_parameters.clock_rate), - ToBaseOptional<uint16_t>(codec_parameters.num_channels), - // TODO(orphis): Convert the parameters field to sdpFmtpLine - // https://crbug.com/webrtc/7580 - blink::WebString()); -} - -} // namespace content
diff --git a/content/renderer/media/webrtc/rtc_rtp_parameters.h b/content/renderer/media/webrtc/rtc_rtp_parameters.h deleted file mode 100644 index 99891087..0000000 --- a/content/renderer/media/webrtc/rtc_rtp_parameters.h +++ /dev/null
@@ -1,39 +0,0 @@ -// Copyright (c) 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_RTC_RTP_PARAMETERS_H_ -#define CONTENT_RENDERER_MEDIA_WEBRTC_RTC_RTP_PARAMETERS_H_ - -#include "base/memory/ref_counted.h" -#include "content/common/content_export.h" -#include "third_party/blink/public/platform/web_rtc_rtp_parameters.h" -#include "third_party/webrtc/api/rtpparameters.h" - -namespace content { - -CONTENT_EXPORT blink::WebRTCRtpEncodingParameters -GetWebRTCRtpEncodingParameters( - const webrtc::RtpEncodingParameters& encoding_parameters); - -CONTENT_EXPORT webrtc::RtpEncodingParameters FromWebRTCRtpEncodingParameters( - const blink::WebRTCRtpEncodingParameters& encoding_parameters); - -CONTENT_EXPORT blink::WebRTCRtpHeaderExtensionParameters -GetWebRTCRtpHeaderExtensionParameters( - const webrtc::RtpHeaderExtensionParameters& header_extension_parameters); - -CONTENT_EXPORT blink::WebRTCRtcpParameters GetWebRTCRtcpParameters(); - -CONTENT_EXPORT blink::WebRTCRtpCodecParameters GetWebRTCRtpCodecParameters( - const webrtc::RtpCodecParameters& codec_parameters); - -CONTENT_EXPORT blink::WebRTCRtpParameters GetWebRTCRtpParameters( - const webrtc::RtpParameters& parameters); - -CONTENT_EXPORT webrtc::DegradationPreference ToDegradationPreference( - blink::WebRTCDegradationPreference degradation_preference); - -} // namespace content - -#endif // CONTENT_RENDERER_MEDIA_WEBRTC_RTC_RTP_PARAMETERS_H_
diff --git a/content/renderer/media/webrtc/rtc_rtp_parameters_unittest.cc b/content/renderer/media/webrtc/rtc_rtp_parameters_unittest.cc deleted file mode 100644 index 22a47f2d..0000000 --- a/content/renderer/media/webrtc/rtc_rtp_parameters_unittest.cc +++ /dev/null
@@ -1,183 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/media/webrtc/rtc_rtp_parameters.h" - -#include "testing/gtest/include/gtest/gtest.h" - -namespace content { - -TEST(RTCRtpParametersTest, Read) { - webrtc::RtpParameters webrtc_parameters; - webrtc_parameters.transaction_id = "transaction_id"; - webrtc_parameters.degradation_preference = - webrtc::DegradationPreference::BALANCED; - - webrtc_parameters.encodings.emplace_back(); - webrtc::RtpEncodingParameters& webrtc_encoding = - webrtc_parameters.encodings.front(); - webrtc_encoding.codec_payload_type = 42; - webrtc_encoding.dtx = webrtc::DtxStatus::ENABLED; - webrtc_encoding.active = true; - webrtc_encoding.bitrate_priority = webrtc::kDefaultBitratePriority; - webrtc_encoding.ptime = 1337; - webrtc_encoding.max_bitrate_bps = 1337000; - webrtc_encoding.max_framerate = 60; - webrtc_encoding.scale_resolution_down_by = 1.; - webrtc_encoding.rid = "rid"; - - webrtc_parameters.header_extensions.emplace_back(); - webrtc::RtpHeaderExtensionParameters& webrtc_header_extension = - webrtc_parameters.header_extensions.front(); - webrtc_header_extension.uri = "uri"; - webrtc_header_extension.id = 33; - webrtc_header_extension.encrypt = true; - - webrtc_parameters.codecs.emplace_back(); - webrtc::RtpCodecParameters& webrtc_codec_parameter = - webrtc_parameters.codecs.front(); - webrtc_codec_parameter.payload_type = 42; - webrtc_codec_parameter.clock_rate = 1234; - webrtc_codec_parameter.num_channels = 2; - - blink::WebRTCRtpParameters parameters = - GetWebRTCRtpParameters(webrtc_parameters); - EXPECT_EQ(parameters.TransactionId(), "transaction_id"); - EXPECT_EQ(parameters.DegradationPreference(), - blink::WebRTCDegradationPreference::Balanced); - - ASSERT_EQ(parameters.Encodings().size(), 1u); - for (const auto& encoding : parameters.Encodings()) { - EXPECT_EQ(encoding.CodecPayloadType(), 42); - EXPECT_EQ(encoding.Dtx(), blink::WebRTCDtxStatus::Enabled); - EXPECT_EQ(encoding.Active(), true); - EXPECT_EQ(encoding.Priority(), blink::WebRTCPriorityType::Low); - EXPECT_EQ(encoding.Ptime(), 1337u); - EXPECT_EQ(encoding.MaxBitrate(), 1337000u); - EXPECT_EQ(encoding.MaxFramerate(), 60u); - EXPECT_EQ(encoding.ScaleResolutionDownBy(), 1.); - EXPECT_EQ(encoding.Rid(), "rid"); - } - - ASSERT_EQ(parameters.HeaderExtensions().size(), 1u); - for (const auto& header_extension : parameters.HeaderExtensions()) { - EXPECT_EQ(header_extension.URI(), "uri"); - EXPECT_EQ(header_extension.Id(), 33); - EXPECT_EQ(header_extension.Encrypted(), true); - } - - ASSERT_EQ(parameters.Codecs().size(), 1u); - for (const auto& codec : parameters.Codecs()) { - EXPECT_EQ(codec.PayloadType(), 42); - EXPECT_EQ(codec.ClockRate(), 1234u); - EXPECT_EQ(codec.Channels(), 2u); - } -} - -TEST(RTCRtpParametersTest, WriteEncodingParameters) { - blink::WebRTCRtpEncodingParameters web_encoding_parameters( - 42, blink::WebRTCDtxStatus::Enabled, true, - blink::WebRTCPriorityType::High, 1337, 50000, 60, 0.5, "rid"); - webrtc::RtpEncodingParameters encoding_parameters = - content::FromWebRTCRtpEncodingParameters(web_encoding_parameters); - - EXPECT_EQ(encoding_parameters.codec_payload_type, 42); - EXPECT_EQ(encoding_parameters.dtx, webrtc::DtxStatus::ENABLED); - EXPECT_EQ(encoding_parameters.active, true); - EXPECT_EQ(encoding_parameters.bitrate_priority, 4.0); - EXPECT_EQ(encoding_parameters.ptime, 1337); - EXPECT_EQ(encoding_parameters.max_bitrate_bps, 50000); - EXPECT_EQ(encoding_parameters.max_framerate, 60); - EXPECT_EQ(encoding_parameters.scale_resolution_down_by, 0.5); - EXPECT_EQ(encoding_parameters.rid, "rid"); -} - -TEST(RTCRtpParametersTest, CheckDtxStatusEnum) { - webrtc::RtpEncodingParameters webrtc_encoding_parameters; - - { - webrtc_encoding_parameters.dtx = webrtc::DtxStatus::DISABLED; - blink::WebRTCRtpEncodingParameters encoding_parameters = - GetWebRTCRtpEncodingParameters(webrtc_encoding_parameters); - EXPECT_EQ(encoding_parameters.Dtx(), blink::WebRTCDtxStatus::Disabled); - } - - { - webrtc_encoding_parameters.dtx = webrtc::DtxStatus::ENABLED; - blink::WebRTCRtpEncodingParameters encoding_parameters = - GetWebRTCRtpEncodingParameters(webrtc_encoding_parameters); - EXPECT_EQ(encoding_parameters.Dtx(), blink::WebRTCDtxStatus::Enabled); - } -} - -TEST(RTCRtpParametersTest, CheckDegradationPreferenceEnum) { - webrtc::RtpParameters webrtc_parameters; - - { - webrtc_parameters.degradation_preference = - webrtc::DegradationPreference::MAINTAIN_FRAMERATE; - blink::WebRTCRtpParameters parameters = - GetWebRTCRtpParameters(webrtc_parameters); - EXPECT_EQ(parameters.DegradationPreference(), - blink::WebRTCDegradationPreference::MaintainFramerate); - } - - { - webrtc_parameters.degradation_preference = - webrtc::DegradationPreference::MAINTAIN_RESOLUTION; - blink::WebRTCRtpParameters parameters = - GetWebRTCRtpParameters(webrtc_parameters); - EXPECT_EQ(parameters.DegradationPreference(), - blink::WebRTCDegradationPreference::MaintainResolution); - } - - { - webrtc_parameters.degradation_preference = - webrtc::DegradationPreference::BALANCED; - blink::WebRTCRtpParameters parameters = - GetWebRTCRtpParameters(webrtc_parameters); - EXPECT_EQ(parameters.DegradationPreference(), - blink::WebRTCDegradationPreference::Balanced); - } -} - -TEST(RTCRtpParametersTest, CheckPriorityEnum) { - webrtc::RtpEncodingParameters webrtc_encoding_parameters; - - { - webrtc_encoding_parameters.bitrate_priority = - webrtc::kDefaultBitratePriority / 2; - blink::WebRTCRtpEncodingParameters encoding_parameters = - GetWebRTCRtpEncodingParameters(webrtc_encoding_parameters); - EXPECT_EQ(encoding_parameters.Priority(), - blink::WebRTCPriorityType::VeryLow); - } - - { - webrtc_encoding_parameters.bitrate_priority = - webrtc::kDefaultBitratePriority; - blink::WebRTCRtpEncodingParameters encoding_parameters = - GetWebRTCRtpEncodingParameters(webrtc_encoding_parameters); - EXPECT_EQ(encoding_parameters.Priority(), blink::WebRTCPriorityType::Low); - } - - { - webrtc_encoding_parameters.bitrate_priority = - webrtc::kDefaultBitratePriority * 2; - blink::WebRTCRtpEncodingParameters encoding_parameters = - GetWebRTCRtpEncodingParameters(webrtc_encoding_parameters); - EXPECT_EQ(encoding_parameters.Priority(), - blink::WebRTCPriorityType::Medium); - } - - { - webrtc_encoding_parameters.bitrate_priority = - webrtc::kDefaultBitratePriority * 4; - blink::WebRTCRtpEncodingParameters encoding_parameters = - GetWebRTCRtpEncodingParameters(webrtc_encoding_parameters); - EXPECT_EQ(encoding_parameters.Priority(), blink::WebRTCPriorityType::High); - } -} - -} // namespace content
diff --git a/content/renderer/media/webrtc/rtc_rtp_sender.cc b/content/renderer/media/webrtc/rtc_rtp_sender.cc index c699f53..528c8d2 100644 --- a/content/renderer/media/webrtc/rtc_rtp_sender.cc +++ b/content/renderer/media/webrtc/rtc_rtp_sender.cc
@@ -4,11 +4,11 @@ #include "content/renderer/media/webrtc/rtc_rtp_sender.h" +#include <memory> #include <utility> #include "base/logging.h" #include "content/renderer/media/webrtc/rtc_dtmf_sender_handler.h" -#include "content/renderer/media/webrtc/rtc_rtp_parameters.h" #include "content/renderer/media/webrtc/rtc_stats.h" namespace content { @@ -138,29 +138,26 @@ return std::make_unique<RtcDtmfSenderHandler>(dtmf_sender); } - std::unique_ptr<blink::WebRTCRtpParameters> GetParameters() { + std::unique_ptr<webrtc::RtpParameters> GetParameters() { parameters_ = webrtc_sender_->GetParameters(); - return std::make_unique<blink::WebRTCRtpParameters>( - GetWebRTCRtpParameters(parameters_)); + return std::make_unique<webrtc::RtpParameters>(parameters_); } - void SetParameters( - blink::WebVector<blink::WebRTCRtpEncodingParameters> encodings, - blink::WebRTCDegradationPreference degradation_preference, - base::OnceCallback<void(webrtc::RTCError)> callback) { + void SetParameters(blink::WebVector<webrtc::RtpEncodingParameters> encodings, + webrtc::DegradationPreference degradation_preference, + base::OnceCallback<void(webrtc::RTCError)> callback) { DCHECK(main_thread_->BelongsToCurrentThread()); webrtc::RtpParameters new_parameters = parameters_; - new_parameters.degradation_preference = - ToDegradationPreference(degradation_preference); + new_parameters.degradation_preference = degradation_preference; for (std::size_t i = 0; i < new_parameters.encodings.size(); ++i) { // Encodings have other parameters in the native layer that aren't exposed // to the blink layer. So instead of copying the new struct over the old // one, we copy the members one by one over the old struct, effectively // patching the changes done by the user. - auto encoding = FromWebRTCRtpEncodingParameters(encodings[i]); + const auto& encoding = encodings[i]; new_parameters.encodings[i].codec_payload_type = encoding.codec_payload_type; new_parameters.encodings[i].dtx = encoding.dtx; @@ -366,14 +363,13 @@ return internal_->GetDtmfSender(); } -std::unique_ptr<blink::WebRTCRtpParameters> RTCRtpSender::GetParameters() - const { +std::unique_ptr<webrtc::RtpParameters> RTCRtpSender::GetParameters() const { return internal_->GetParameters(); } void RTCRtpSender::SetParameters( - blink::WebVector<blink::WebRTCRtpEncodingParameters> encodings, - blink::WebRTCDegradationPreference degradation_preference, + blink::WebVector<webrtc::RtpEncodingParameters> encodings, + webrtc::DegradationPreference degradation_preference, blink::WebRTCVoidRequest request) { internal_->SetParameters( std::move(encodings), degradation_preference,
diff --git a/content/renderer/media/webrtc/rtc_rtp_sender.h b/content/renderer/media/webrtc/rtc_rtp_sender.h index e5e6953..990b21f 100644 --- a/content/renderer/media/webrtc/rtc_rtp_sender.h +++ b/content/renderer/media/webrtc/rtc_rtp_sender.h
@@ -63,9 +63,9 @@ blink::WebRTCVoidRequest request) override; std::unique_ptr<blink::WebRTCDTMFSenderHandler> GetDtmfSender() const override; - std::unique_ptr<blink::WebRTCRtpParameters> GetParameters() const override; - void SetParameters(blink::WebVector<blink::WebRTCRtpEncodingParameters>, - blink::WebRTCDegradationPreference, + std::unique_ptr<webrtc::RtpParameters> GetParameters() const override; + void SetParameters(blink::WebVector<webrtc::RtpEncodingParameters>, + webrtc::DegradationPreference, blink::WebRTCVoidRequest) override; void GetStats(std::unique_ptr<blink::WebRTCStatsReportCallback>) override;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 3b2c819..f17c11ec 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -722,9 +722,7 @@ WebRuntimeFeatures::EnableXSLT(prefs.xslt_enabled); settings->SetXSSAuditorEnabled(prefs.xss_auditor_enabled); settings->SetDNSPrefetchingEnabled(prefs.dns_prefetching_enabled); - blink::WebNetworkStateNotifier::SetSaveDataEnabled( - prefs.data_saver_enabled && - !base::FeatureList::IsEnabled(features::kDataSaverHoldback)); + blink::WebNetworkStateNotifier::SetSaveDataEnabled(prefs.data_saver_enabled); settings->SetLocalStorageEnabled(prefs.local_storage_enabled); settings->SetSyncXHRInDocumentsEnabled(prefs.sync_xhr_in_documents_enabled); WebRuntimeFeatures::EnableDatabase(prefs.databases_enabled); @@ -975,6 +973,11 @@ settings->SetPictureInPictureEnabled(prefs.picture_in_picture_enabled); } + settings->SetDataSaverHoldbackWebApi( + prefs.data_saver_holdback_web_api_enabled); + settings->SetDataSaverHoldbackMediaApi( + prefs.data_saver_holdback_media_api_enabled); + #if defined(OS_MACOSX) settings->SetDoubleTapToZoomEnabled(true); web_view->SetMaximumLegibleScale(prefs.default_maximum_page_scale_factor);
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc index 8d9d125..14d17e4 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -42,7 +42,6 @@ #include "content/public/renderer/media_stream_utils.h" #include "content/public/renderer/render_frame.h" #include "content/renderer/blob_storage/webblobregistry_impl.h" -#include "content/renderer/cache_storage/webserviceworkercachestorage_impl.h" #include "content/renderer/device_sensors/device_motion_event_pump.h" #include "content/renderer/device_sensors/device_orientation_event_pump.h" #include "content/renderer/dom_storage/local_storage_cached_areas.h" @@ -562,16 +561,6 @@ //------------------------------------------------------------------------------ -std::unique_ptr<blink::WebServiceWorkerCacheStorage> -RendererBlinkPlatformImpl::CreateCacheStorage( - service_manager::InterfaceProvider* mojo_provider) { - // Requires the Interface Provider from ExecutionContext, because it can be - // different of RendererBlinkPlatformImpl::GetInterfaceProvider() - return std::make_unique<WebServiceWorkerCacheStorageImpl>(mojo_provider); -} - -//------------------------------------------------------------------------------ - WebFileSystem* RendererBlinkPlatformImpl::FileSystem() { return WebFileSystemImpl::ThreadSpecificInstance(default_task_runner_); }
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h index 90c30ac3..325f038 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h
@@ -44,7 +44,6 @@ class WebMediaRecorderHandler; class WebMediaStream; class WebSecurityOrigin; -class WebServiceWorkerCacheStorage; } // namespace blink namespace device { @@ -126,8 +125,6 @@ blink::WebPublicSuffixList* PublicSuffixList() override; blink::WebScrollbarBehavior* ScrollbarBehavior() override; blink::WebIDBFactory* IdbFactory() override; - std::unique_ptr<blink::WebServiceWorkerCacheStorage> CreateCacheStorage( - service_manager::InterfaceProvider* mojo_provider) override; blink::WebFileSystem* FileSystem() override; blink::WebString FileSystemCreateOriginIdentifier( const blink::WebSecurityOrigin& origin) override;
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc index 035a0f9c2..de4f2d9 100644 --- a/content/renderer/renderer_main.cc +++ b/content/renderer/renderer_main.cc
@@ -132,8 +132,7 @@ // This call could already have been made from zygote_main_linux.cc. However // we need to do it here if Zygote is disabled. if (process_command_line.HasSwitch(switches::kNoZygote)) { - SkFontConfigInterface::SetGlobal(new FontConfigIPC(GetSandboxFD())) - ->unref(); + SkFontConfigInterface::SetGlobal(sk_make_sp<FontConfigIPC>(GetSandboxFD())); } #endif
diff --git a/content/shell/android/linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java b/content/shell/android/linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java index 69e1e44e..90d90f46 100644 --- a/content/shell/android/linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java +++ b/content/shell/android/linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java
@@ -106,10 +106,9 @@ try { BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER) .startBrowserProcessesAsync( - true, - new BrowserStartupController.StartupCallback() { + true, new BrowserStartupController.StartupCallback() { @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { finishInitialization(savedInstanceState); }
diff --git a/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java b/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java index 762f149..ff6b1fc 100644 --- a/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java +++ b/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java
@@ -95,10 +95,9 @@ try { BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER) .startBrowserProcessesAsync( - true, - new BrowserStartupController.StartupCallback() { + true, new BrowserStartupController.StartupCallback() { @Override - public void onSuccess(boolean alreadyStarted) { + public void onSuccess() { finishInitialization(savedInstanceState); }
diff --git a/content/shell/browser/content_shell_browser_manifest_overlay.json b/content/shell/browser/content_shell_browser_manifest_overlay.json index e11cab2c4..62419ba 100644 --- a/content/shell/browser/content_shell_browser_manifest_overlay.json +++ b/content/shell/browser/content_shell_browser_manifest_overlay.json
@@ -4,11 +4,11 @@ "service_manager:connector": { "provides": { "renderer": [ - "content::mojom::LayoutTestBluetoothFakeAdapterSetter", - "content::mojom::MojoLayoutTestHelper", - "content::mojom::FakeBluetoothChooser", - "bluetooth::mojom::FakeBluetooth", - "blink::test::mojom::WebPackageInternals" + "content.mojom.LayoutTestBluetoothFakeAdapterSetter", + "content.mojom.MojoLayoutTestHelper", + "content.mojom.FakeBluetoothChooser", + "bluetooth.mojom.FakeBluetooth", + "blink.test.mojom.WebPackageInternals" ] }, "requires": { @@ -21,7 +21,7 @@ "navigation:frame": { "provides": { "renderer": [ - "content::mojom::MojoLayoutTestHelper" + "content.mojom.MojoLayoutTestHelper" ] } }
diff --git a/content/shell/browser/content_shell_gpu_manifest_overlay.json b/content/shell/browser/content_shell_gpu_manifest_overlay.json index f032a68..b3ce24a 100644 --- a/content/shell/browser/content_shell_gpu_manifest_overlay.json +++ b/content/shell/browser/content_shell_gpu_manifest_overlay.json
@@ -4,7 +4,7 @@ "service_manager:connector": { "provides": { "browser": [ - "content::mojom::PowerMonitorTest" + "content.mojom.PowerMonitorTest" ] } }
diff --git a/content/shell/browser/content_shell_renderer_manifest_overlay.json b/content/shell/browser/content_shell_renderer_manifest_overlay.json index d6f4126..720a15af 100644 --- a/content/shell/browser/content_shell_renderer_manifest_overlay.json +++ b/content/shell/browser/content_shell_renderer_manifest_overlay.json
@@ -4,15 +4,15 @@ "service_manager:connector": { "provides": { "browser": [ - "content::mojom::PowerMonitorTest", - "content::mojom::TestService" + "content.mojom.PowerMonitorTest", + "content.mojom.TestService" ] } }, "navigation:frame": { "provides": { "browser": [ - "content::mojom::LayoutTestControl" + "content.mojom.LayoutTestControl" ] } }
diff --git a/content/shell/browser/content_shell_utility_manifest_overlay.json b/content/shell/browser/content_shell_utility_manifest_overlay.json index 5ca52ab..1beaf4e 100644 --- a/content/shell/browser/content_shell_utility_manifest_overlay.json +++ b/content/shell/browser/content_shell_utility_manifest_overlay.json
@@ -4,8 +4,8 @@ "service_manager:connector": { "provides": { "browser": [ - "content::mojom::PowerMonitorTest", - "content::mojom::TestService" + "content.mojom.PowerMonitorTest", + "content.mojom.TestService" ] } }
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index d7cb4ae6..3d98569 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1659,7 +1659,6 @@ "../renderer/media/webrtc/peer_connection_tracker_unittest.cc", "../renderer/media/webrtc/rtc_data_channel_handler_unittest.cc", "../renderer/media/webrtc/rtc_peer_connection_handler_unittest.cc", - "../renderer/media/webrtc/rtc_rtp_parameters_unittest.cc", "../renderer/media/webrtc/rtc_rtp_receiver_unittest.cc", "../renderer/media/webrtc/rtc_rtp_sender_unittest.cc", "../renderer/media/webrtc/rtc_stats_unittest.cc",
diff --git a/content/test/gpu/gpu_tests/pixel_expectations.py b/content/test/gpu/gpu_tests/pixel_expectations.py index f4e82ad..9612201 100644 --- a/content/test/gpu/gpu_tests/pixel_expectations.py +++ b/content/test/gpu/gpu_tests/pixel_expectations.py
@@ -94,8 +94,9 @@ self.Fail('Pixel_CSS3DBlueBox_NoGpuProcess', ['linux', 'mac', 'win'], bug=744658) - # TODO(rjkroege): temporarily suppress this test. + # TODO(fserb): temporarily suppress this test. self.Flaky('Pixel_OffscreenCanvas2DResizeOnWorker', ['mac'], bug=840394) + self.Flaky('Pixel_WorkerRAF_OOPD', ['android', 'nvidia'], bug=840394) # TODO(kbr): temporary suppression for new test. self.Flaky('Pixel_WebGLSadCanvas', ['mac'], bug=575305)
diff --git a/content/test/unittests_manifest.json b/content/test/unittests_manifest.json index 94cb81e..2d3ad43c 100644 --- a/content/test/unittests_manifest.json +++ b/content/test/unittests_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/device/BUILD.gn b/device/BUILD.gn index 68be0c8..a5d97242 100644 --- a/device/BUILD.gn +++ b/device/BUILD.gn
@@ -246,6 +246,7 @@ deps += [ "//chromecast/device/bluetooth:util", "//chromecast/device/bluetooth/le", + "//chromecast/device/bluetooth/le:test_support", "//chromecast/device/bluetooth/shlib:mock_shlib", ] } else {
diff --git a/device/bluetooth/DEPS b/device/bluetooth/DEPS index d098881..1eab793 100644 --- a/device/bluetooth/DEPS +++ b/device/bluetooth/DEPS
@@ -1,5 +1,6 @@ include_rules = [ "+chromecast/device/bluetooth", + "+chromecast/public/bluetooth", "+chromeos/dbus", "+crypto", "+dbus",
diff --git a/device/bluetooth/cast/bluetooth_adapter_cast.cc b/device/bluetooth/cast/bluetooth_adapter_cast.cc index 8bf86ddf..af5df4c 100644 --- a/device/bluetooth/cast/bluetooth_adapter_cast.cc +++ b/device/bluetooth/cast/bluetooth_adapter_cast.cc
@@ -300,24 +300,6 @@ << " mtu: " << mtu; } -void BluetoothAdapterCast::OnServicesUpdated( - scoped_refptr<chromecast::bluetooth::RemoteDevice> device, - std::vector<scoped_refptr<chromecast::bluetooth::RemoteService>> services) { - DVLOG(1) << __func__; - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - - std::string address = GetCanonicalBluetoothAddress(device->addr()); - BluetoothDeviceCast* cast_device = GetCastDevice(address); - if (!cast_device) - return; - - if (!cast_device->UpdateServices(services)) - LOG(WARNING) << "The services were not updated. Alerting anyway."; - - cast_device->SetGattServicesDiscoveryComplete(true); - NotifyGattServicesDiscovered(cast_device); -} - void BluetoothAdapterCast::OnCharacteristicNotification( scoped_refptr<chromecast::bluetooth::RemoteDevice> device, scoped_refptr<chromecast::bluetooth::RemoteCharacteristic> characteristic, @@ -347,17 +329,19 @@ // to send an async request to |gatt_client_manager_| for a handle to the // device. if (devices_.find(address) == devices_.end()) { + bool first_time_seen = + pending_scan_results_.find(address) == pending_scan_results_.end(); + // These results will be used to construct the BluetoothDeviceCast. + pending_scan_results_[address].push_back(result); + // Only send a request if this is the first time we've seen this |address| // in a scan. This may happen if we pick up additional GAP advertisements // while the first request is in-flight. - if (pending_scan_results_.find(address) == pending_scan_results_.end()) { + if (first_time_seen) { gatt_client_manager_->GetDevice( result.addr, base::BindOnce(&BluetoothAdapterCast::OnGetDevice, weak_factory_.GetWeakPtr())); } - - // These results will be used to construct the BluetoothDeviceCast. - pending_scan_results_[address].push_back(result); return; }
diff --git a/device/bluetooth/cast/bluetooth_adapter_cast.h b/device/bluetooth/cast/bluetooth_adapter_cast.h index a25ee07..7dca466 100644 --- a/device/bluetooth/cast/bluetooth_adapter_cast.h +++ b/device/bluetooth/cast/bluetooth_adapter_cast.h
@@ -137,10 +137,6 @@ bool connected) override; void OnMtuChanged(scoped_refptr<chromecast::bluetooth::RemoteDevice> device, int mtu) override; - void OnServicesUpdated( - scoped_refptr<chromecast::bluetooth::RemoteDevice> device, - std::vector<scoped_refptr<chromecast::bluetooth::RemoteService>> services) - override; void OnCharacteristicNotification( scoped_refptr<chromecast::bluetooth::RemoteDevice> device, scoped_refptr<chromecast::bluetooth::RemoteCharacteristic> characteristic,
diff --git a/device/bluetooth/cast/bluetooth_device_cast.cc b/device/bluetooth/cast/bluetooth_device_cast.cc index e92f3530..32ccb2a 100644 --- a/device/bluetooth/cast/bluetooth_device_cast.cc +++ b/device/bluetooth/cast/bluetooth_device_cast.cc
@@ -14,6 +14,7 @@ #include "chromecast/device/bluetooth/bluetooth_util.h" #include "chromecast/device/bluetooth/le/remote_characteristic.h" #include "chromecast/device/bluetooth/le/remote_service.h" +#include "device/bluetooth/bluetooth_adapter.h" #include "device/bluetooth/cast/bluetooth_remote_gatt_characteristic_cast.h" #include "device/bluetooth/cast/bluetooth_remote_gatt_service_cast.h" #include "device/bluetooth/cast/bluetooth_utils.h" @@ -60,7 +61,12 @@ connected_(device->IsConnected()), remote_device_(std::move(device)), address_(GetCanonicalBluetoothAddress(remote_device_->addr())), - weak_factory_(this) {} + weak_factory_(this) { + if (connected_) { + remote_device_->GetServices(base::BindOnce( + &BluetoothDeviceCast::OnGetServices, weak_factory_.GetWeakPtr())); + } +} BluetoothDeviceCast::~BluetoothDeviceCast() {} @@ -286,6 +292,8 @@ // fired. if (!was_connected && connected) { DidConnectGatt(); + remote_device_->GetServices(base::BindOnce( + &BluetoothDeviceCast::OnGetServices, weak_factory_.GetWeakPtr())); } else if (was_connected && !connected) { DidDisconnectGatt(); } @@ -294,43 +302,23 @@ return was_connected != connected; } -bool BluetoothDeviceCast::UpdateServices( +void BluetoothDeviceCast::OnGetServices( std::vector<scoped_refptr<chromecast::bluetooth::RemoteService>> services) { DVLOG(2) << __func__; - bool changed = false; - - // Create a look-up for the updated list of services. - std::unordered_set<std::string> new_service_uuids; - for (const auto& service : services) - new_service_uuids.insert(GetCanonicalBluetoothUuid(service->uuid())); - - // Remove any services in |gatt_services_| that are not present in |services|. - for (auto it = gatt_services_.cbegin(); it != gatt_services_.cend();) { - if (new_service_uuids.find(it->first) == new_service_uuids.end()) { - gatt_services_.erase(it++); - changed = true; - } else { - ++it; - } - } + gatt_services_.clear(); // Add new services. for (auto& service : services) { auto key = GetCanonicalBluetoothUuid(service->uuid()); - - if (gatt_services_.find(key) != gatt_services_.end()) - continue; - auto cast_service = std::make_unique<BluetoothRemoteGattServiceCast>( this, std::move(service)); DCHECK_EQ(key, cast_service->GetIdentifier()); gatt_services_[key] = std::move(cast_service); - changed = true; } - if (changed) - device_uuids_.ReplaceServiceUUIDs(gatt_services_); - return changed; + device_uuids_.ReplaceServiceUUIDs(gatt_services_); + SetGattServicesDiscoveryComplete(true); + adapter_->NotifyGattServicesDiscovered(this); } bool BluetoothDeviceCast::UpdateCharacteristicValue( @@ -375,18 +363,14 @@ void BluetoothDeviceCast::OnConnect(bool success) { DVLOG(2) << __func__ << " success:" << success; pending_connect_ = false; - if (success) - SetConnected(true); - else + if (!success) DidFailToConnectGatt(ERROR_FAILED); } void BluetoothDeviceCast::OnDisconnect(bool success) { DVLOG(2) << __func__ << " success:" << success; pending_disconnect_ = false; - if (success) - SetConnected(false); - else + if (!success) LOG(ERROR) << "Request to DisconnectGatt() failed!"; }
diff --git a/device/bluetooth/cast/bluetooth_device_cast.h b/device/bluetooth/cast/bluetooth_device_cast.h index 68ad822..0f212b1 100644 --- a/device/bluetooth/cast/bluetooth_device_cast.h +++ b/device/bluetooth/cast/bluetooth_device_cast.h
@@ -95,13 +95,6 @@ // connection state changed as a result. bool SetConnected(bool connected); - // Called by BluetoothAdapterCast when the GATT services for this device are - // updated. Updates the services in this devices to reflect |services|. - // Returns true if a service was added or removed. - bool UpdateServices( - std::vector<scoped_refptr<chromecast::bluetooth::RemoteService>> - services); - // Called by BluetoothAdapterCast when the value of a characteristic in one of // this device's services has changed, resulting in a notification to the // device. Locate the characteristc and update the underluing value. If the @@ -132,6 +125,11 @@ // Called back from disconnect requests. void OnDisconnect(bool success); + // Called in response to GetServices + void OnGetServices( + std::vector<scoped_refptr<chromecast::bluetooth::RemoteService>> + services); + bool connected_; bool pending_connect_ = false; bool pending_disconnect_ = false;
diff --git a/device/bluetooth/test/bluetooth_test_cast.cc b/device/bluetooth/test/bluetooth_test_cast.cc index 31728ba..a5d9f01 100644 --- a/device/bluetooth/test/bluetooth_test_cast.cc +++ b/device/bluetooth/test/bluetooth_test_cast.cc
@@ -7,52 +7,46 @@ #include "base/bind_helpers.h" #include "base/task_scheduler/post_task.h" #include "chromecast/device/bluetooth/bluetooth_util.h" -#include "chromecast/device/bluetooth/le/gatt_client_manager_impl.h" +#include "chromecast/device/bluetooth/le/mock_gatt_client_manager.h" #include "chromecast/device/bluetooth/le/remote_device.h" #include "device/bluetooth/cast/bluetooth_adapter_cast.h" -#include "device/bluetooth/test/bluetooth_test_cast.h" + +using ::testing::Return; namespace device { -class BluetoothTestCast::FakeLeScanManager - : public chromecast::bluetooth::LeScanManager { +class BluetoothTestCast::GattClientManager + : public chromecast::bluetooth::MockGattClientManager { public: - FakeLeScanManager() = default; - ~FakeLeScanManager() override = default; + GattClientManager() = default; + ~GattClientManager() override = default; - void AddObserver(Observer* o) override { - DCHECK(!observer_); - observer_ = o; - } - void RemoveObserver(Observer* o) override { - DCHECK_EQ(observer_, o); - observer_ = nullptr; - } - void SetScanEnable(bool enable, SetScanEnableCallback cb) override { - std::move(cb).Run(true); - } - void GetScanResults(GetScanResultsCallback cb, - base::Optional<chromecast::bluetooth::ScanFilter> - scan_filter = base::nullopt) override {} - void ClearScanResults() override {} + // chromecast::bluetooth::GattClientManager implementation: + void GetDevice( + const chromecast::bluetooth_v2_shlib::Addr& addr, + base::OnceCallback<void( + scoped_refptr<chromecast::bluetooth::RemoteDevice>)> cb) override { + auto it = addr_to_remote_device_.find(addr); + if (it != addr_to_remote_device_.end()) { + std::move(cb).Run(it->second); + return; + } - Observer* observer() { - DCHECK(observer_); - return observer_; + auto device = + base::MakeRefCounted<chromecast::bluetooth::MockRemoteDevice>(addr); + addr_to_remote_device_.emplace(addr, device); + std::move(cb).Run(device); } private: - Observer* observer_ = nullptr; + std::map<chromecast::bluetooth_v2_shlib::Addr, + scoped_refptr<chromecast::bluetooth::MockRemoteDevice>> + addr_to_remote_device_; }; BluetoothTestCast::BluetoothTestCast() - : io_task_runner_(base::CreateSingleThreadTaskRunnerWithTraits( - {base::MayBlock(), base::TaskPriority::BACKGROUND})), - gatt_client_manager_( - new chromecast::bluetooth::GattClientManagerImpl(&mock_gatt_client_)), - fake_le_scan_manager_(new FakeLeScanManager()) { - gatt_client_manager_->Initialize(io_task_runner_); - mock_gatt_client_.SetDelegate(gatt_client_manager_.get()); + : gatt_client_manager_(std::make_unique<GattClientManager>()) { + ON_CALL(le_scan_manager_, SetScanEnable).WillByDefault(Return(true)); } BluetoothTestCast::~BluetoothTestCast() { @@ -62,12 +56,11 @@ // Tear down adapter, which relies on members in the subclass. adapter_ = nullptr; - gatt_client_manager_->Finalize(); } void BluetoothTestCast::InitWithFakeAdapter() { - adapter_ = new BluetoothAdapterCast(gatt_client_manager_.get(), - fake_le_scan_manager_.get()); + adapter_ = + new BluetoothAdapterCast(gatt_client_manager_.get(), &le_scan_manager_); adapter_->SetPowered(true, base::DoNothing(), base::DoNothing()); } @@ -124,7 +117,7 @@ const std::vector<std::string>& service_uuids, const std::map<std::string, std::vector<uint8_t>>& service_data, const std::map<uint16_t, std::vector<uint8_t>>& manufacturer_data) { - // Create a scan result with the desired address and name. + // Create a scan result with the desired values. chromecast::bluetooth::LeScanResult result; ASSERT_TRUE(chromecast::bluetooth::util::ParseAddr(address, &result.addr)); if (name) { @@ -132,6 +125,18 @@ .push_back(std::vector<uint8_t>(name->begin(), name->end())); } + // Add service_uuids. + std::vector<uint8_t> data; + for (const auto& uuid_str : service_uuids) { + chromecast::bluetooth_v2_shlib::Uuid uuid; + ASSERT_TRUE(chromecast::bluetooth::util::ParseUuid(uuid_str, &uuid)); + data.insert(data.end(), uuid.rbegin(), uuid.rend()); + } + result + .type_to_data + [chromecast::bluetooth::LeScanResult::kGapComplete128BitServiceUuids] + .push_back(std::move(data)); + // Add service data. for (const auto& it : service_data) { chromecast::bluetooth_v2_shlib::Uuid uuid; @@ -154,17 +159,7 @@ } // Update the adapter with the ScanResult. - fake_le_scan_manager_->observer()->OnNewScanResult(result); - scoped_task_environment_.RunUntilIdle(); - - // Add the services. - std::vector<chromecast::bluetooth_v2_shlib::Gatt::Service> services; - for (const auto& uuid : service_uuids) { - chromecast::bluetooth_v2_shlib::Gatt::Service service; - ASSERT_TRUE(chromecast::bluetooth::util::ParseUuid(uuid, &service.uuid)); - services.push_back(service); - } - mock_gatt_client_.delegate()->OnServicesAdded(result.addr, services); + le_scan_manager_.observer_->OnNewScanResult(result); scoped_task_environment_.RunUntilIdle(); }
diff --git a/device/bluetooth/test/bluetooth_test_cast.h b/device/bluetooth/test/bluetooth_test_cast.h index fb414dc..a77c10a 100644 --- a/device/bluetooth/test/bluetooth_test_cast.h +++ b/device/bluetooth/test/bluetooth_test_cast.h
@@ -6,23 +6,20 @@ #define DEVICE_BLUETOOTH_TEST_BLUETOOTH_TEST_CAST_H_ #include <cstdint> +#include <map> +#include <string> #include <vector> #include "base/callback_forward.h" #include "base/macros.h" #include "base/optional.h" -#include "chromecast/device/bluetooth/shlib/mock_gatt_client.h" +#include "chromecast/device/bluetooth/le/mock_le_scan_manager.h" +#include "chromecast/public/bluetooth/bluetooth_types.h" #include "device/bluetooth/bluetooth_device.h" #include "device/bluetooth/bluetooth_local_gatt_characteristic.h" #include "device/bluetooth/bluetooth_local_gatt_descriptor.h" #include "device/bluetooth/test/bluetooth_test.h" -namespace chromecast { -namespace bluetooth { -class GattClientManagerImpl; -} -} // namespace chromecast - namespace device { // Cast implementation of BluetoothTestBase. @@ -37,8 +34,7 @@ BluetoothDevice* SimulateLowEnergyDevice(int device_ordinal) override; private: - class FakeGattClientManager; - class FakeLeScanManager; + class GattClientManager; void UpdateAdapter( const std::string& address, @@ -47,11 +43,8 @@ const std::map<std::string, std::vector<uint8_t>>& service_data, const std::map<uint16_t, std::vector<uint8_t>>& manufacturer_data); - scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; - chromecast::bluetooth_v2_shlib::MockGattClient mock_gatt_client_; - std::unique_ptr<chromecast::bluetooth::GattClientManagerImpl> - gatt_client_manager_; - std::unique_ptr<FakeLeScanManager> fake_le_scan_manager_; + const std::unique_ptr<GattClientManager> gatt_client_manager_; + ::chromecast::bluetooth::MockLeScanManager le_scan_manager_; DISALLOW_COPY_AND_ASSIGN(BluetoothTestCast); };
diff --git a/docs/code_coverage.md b/docs/code_coverage.md index 50eb72ae..565afc43 100644 --- a/docs/code_coverage.md +++ b/docs/code_coverage.md
@@ -1,6 +1,9 @@ -# Code coverage in Chromium +# Code Coverage in Chromium + +### Coverage Dashboard: [https://chromium-coverage.appspot.com/] Table of contents: + - [Coverage Script](#coverage-script) - [Workflow](#workflow) * [Step 0 Download Tooling](#step-0-download-tooling) @@ -199,17 +202,71 @@ For more information, please see [crbug.com/834781]. +### Why do we see significantly different coverage reported on different revisions? + +There can be two possible scenarios: + +* It can be a one time flakiness due to a broken build or failing tests. +* It can be caused by extension of the test suite used for generating code +coverage reports. When we add new tests to the suite, the aggregate coverage +reported usually grows after that. + +### How can I improve [coverage dashboard]? + +Source code of the dashboard is not open sourced at the moment, but if you are a +Googler, you should have access to the code-coverage repository. There is a +documentation and scripts for running it locally. To get access and report +issues, ping chrome-code-coverage@ list. + +### Why is coverage for X not reported or unreasonably low, even though there is a test for X? + +There are several reasons why coverage reports can be incomplete or incorrect: + +* A particular test is not used for code coverage report generation. Please +check the [test suite], and if the test is missing, upload a CL to add it. +* A test may have a build failure or a runtime crash. Please check [the logs] +for that particular test target (rightmost column on the [coverage dashboard]). +If there is any failure, please upload a CL with the fix. If you can't fix it, +feel free to [file a bug]. +* A particular test may not be available on a particular platform. As of now, +only reports generated on Linux are available on the [coverage dashboard]. + +### Why is coverage for X_fuzzer.cc file not reported, even though there are no errors in the log? + +There was an issue with merging coverage data for multiple definitions of the +same symbol ([crbug.com/821617]). Given that every fuzz target defines its own +`LLVMFuzzerTestOneInput` function, most of those functions are not presented in +the report as of now. Please note that this issue does not affect coverage of +the functions that are called from a fuzz target, i.e. the code that is actually +being fuzzed. We have landed the fix upstream. In Chromium the issue will get +resolved after the next [clang roll]. + +### Is coverage reported for the code executed inside the sandbox? + +Not at the moment until [crbug.com/842424] is resolved. We do not disable the +sandbox when running the tests. However, if there are any other non-sandbox'ed +tests for the same code, the coverage should be reported from those. For more +information, see [crbug.com/842424]. + [chrome-code-coverage group]: https://groups.google.com/a/google.com/forum/#!forum/chrome-code-coverage +[code-coverage repository]: https://chrome-internal.googlesource.com/chrome/tools/code-coverage +[coverage dashboard]: https://chromium-coverage.appspot.com/ [coverage script]: https://cs.chromium.org/chromium/src/tools/code_coverage/coverage.py [code coverage report directory view]: images/code_coverage_directory_view.png [code coverage report component view]: images/code_coverage_component_view.png [code coverage source view]: images/code_coverage_source_view.png +[crbug.com/821617]: https://crbug.com/821617 [crbug.com/831939]: https://crbug.com/831939 [crbug.com/834781]: https://crbug.com/834781 +[crbug.com/842424]: https://crbug.com/842424 +[clang roll]: https://crbug.com/841908 [documentation]: https://clang.llvm.org/docs/SourceBasedCodeCoverage.html [file a bug]: https://bugs.chromium.org/p/chromium/issues/entry?components=Tools%3ECodeCoverage [file a new issue]: https://bugs.chromium.org/p/chromium/issues/entry?components=Tools%3ECodeCoverage [guide]: http://llvm.org/docs/CommandGuide/llvm-cov.html +[https://chromium-coverage.appspot.com/]: https://chromium-coverage.appspot.com/ [known issues]: https://bugs.chromium.org/p/chromium/issues/list?q=component:Tools%3ECodeCoverage [link]: https://storage.googleapis.com/chromium-browser-clang-staging/ +[test suite]: https://cs.chromium.org/chromium/src/tools/code_coverage/test_suite.txt +[the logs]: https://chromium-coverage.appspot.com/reports/latest/linux/metadata/index.html
diff --git a/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md b/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md new file mode 100644 index 0000000..d74b5b8 --- /dev/null +++ b/docs/speed/bot_health_sheriffing/how_to_follow_up_on_an_alert.md
@@ -0,0 +1,41 @@ +# How to follow up on an alert + +[TOC] + +Skim the bug to understand where the last sheriff left things and where you should pick up. + +Generally, there are two reasons you might see an alert that a previous sheriff already addressed: + +1. The sheriff attempted to fix the alert, but the fix was unsuccessful. + +2. The sheriff was unable to fix the alert, but wanted a future sheriff to follow up with it. + +Several common scenarios for each, along with suggested responses, are listed below. + +## Playbook for common scenarios + +### Infra Labs took some action to fix a problem (e.g. restarting the device), but it didn't work. + +* Ping the bug and let them know that the device is still having issues. Usually, Infra>Labs knows the obvious next step. For example, if the previous solution was to restart the device, the next step may be to replace the device. + +* If neither you nor Infra > Labs knows what to do, escalate the issue [on chat](https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3). + +### A previous sheriff identified that a problem was due to an infrastructure outage (e.g. the perf dashboard API is temporarily down) and expected the outage to be over by the time that the snooze expired, but it wasn't. + +* Escalate the issue to the team by adding the Speed > Benchmarking component and asking about the issue [on chat]((https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3). Get an estimate of when the issue will be fixed and snooze the alert for that amount of time. + +### The bot health sheriff was waiting for a response or action from someone, but it never came. + +Escalate by (in increasing order of seriousness): + +* Disabling the failing benchmark or story if possible (i.e. it's a non-infra failure) + +* Pinging the tracking bug again. + +* Pinging the person offline. + +* Escalate by asking [on chat](https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3) for help (likely from a Speed Ops manager). + +### Other + +Escalate by asking [on chat](https://hangouts.google.com/group/gbJlAqcAxqfbHbXH3) for help.
diff --git a/docs/threading_and_tasks.md b/docs/threading_and_tasks.md index e1ff6147..e47be02 100644 --- a/docs/threading_and_tasks.md +++ b/docs/threading_and_tasks.md
@@ -217,15 +217,15 @@ A a; scoped_refptr<SequencedTaskRunner> task_runner_for_a = ...; -task_runner->PostTask(FROM_HERE, - base::BindOnce(&A::AddValue, base::Unretained(&a))); -task_runner->PostTask(FROM_HERE, - base::BindOnce(&A::AddValue, base::Unretained(&a))); +task_runner_for_a->PostTask(FROM_HERE, + base::BindOnce(&A::AddValue, base::Unretained(&a), 42)); +task_runner_for_a->PostTask(FROM_HERE, + base::BindOnce(&A::AddValue, base::Unretained(&a), 27)); // Access from a different sequence causes a DCHECK failure. scoped_refptr<SequencedTaskRunner> other_task_runner = ...; other_task_runner->PostTask(FROM_HERE, - base::BindOnce(&A::AddValue, base::Unretained(&a))); + base::BindOnce(&A::AddValue, base::Unretained(&a), 1)); ``` Locks should only be used to swap in a shared data structure that can be
diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc index 8a11ac1..7fb278f3 100644 --- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc +++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
@@ -146,11 +146,9 @@ // The default for WebUI is not having special access, but we can change that // if needed. - bool allowed_everywhere = false; - if (extension && - extensions::PermissionsData::CanExecuteScriptEverywhere(extension)) - allowed_everywhere = true; - + bool allowed_everywhere = + extension && extensions::PermissionsData::CanExecuteScriptEverywhere( + extension->id(), extension->location()); for (const std::string& match : script_value.matches) { URLPattern pattern(UserScript::ValidUserScriptSchemes(allowed_everywhere)); if (pattern.Parse(match) != URLPattern::PARSE_SUCCESS) {
diff --git a/extensions/common/manifest_handlers/content_scripts_handler.cc b/extensions/common/manifest_handlers/content_scripts_handler.cc index a353fd9..ad8ffe7b 100644 --- a/extensions/common/manifest_handlers/content_scripts_handler.cc +++ b/extensions/common/manifest_handlers/content_scripts_handler.cc
@@ -137,6 +137,13 @@ errors::kInvalidMatchCount, base::IntToString(definition_index)); return nullptr; } + + const bool can_execute_script_everywhere = + PermissionsData::CanExecuteScriptEverywhere(extension->id(), + extension->location()); + const int valid_schemes = + UserScript::ValidUserScriptSchemes(can_execute_script_everywhere); + for (size_t j = 0; j < matches->GetSize(); ++j) { std::string match_str; if (!matches->GetString(j, &match_str)) { @@ -146,8 +153,7 @@ return nullptr; } - URLPattern pattern(UserScript::ValidUserScriptSchemes( - PermissionsData::CanExecuteScriptEverywhere(extension))); + URLPattern pattern(valid_schemes); URLPattern::ParseResult parse_result = pattern.Parse(match_str); if (parse_result != URLPattern::PARSE_SUCCESS) { @@ -159,7 +165,7 @@ } // TODO(aboxhall): check for webstore - if (!PermissionsData::CanExecuteScriptEverywhere(extension) && + if (!can_execute_script_everywhere && pattern.scheme() != content::kChromeUIScheme) { // Exclude SCHEME_CHROMEUI unless it's been explicitly requested. // If the --extensions-on-chrome-urls flag has not been passed, requesting @@ -170,7 +176,7 @@ } if (pattern.MatchesScheme(url::kFileScheme) && - !PermissionsData::CanExecuteScriptEverywhere(extension)) { + !can_execute_script_everywhere) { extension->set_wants_file_access(true); if (!(extension->creation_flags() & Extension::ALLOW_FILE_ACCESS)) { pattern.SetValidSchemes(pattern.valid_schemes() & @@ -199,8 +205,6 @@ return nullptr; } - int valid_schemes = UserScript::ValidUserScriptSchemes( - PermissionsData::CanExecuteScriptEverywhere(extension)); URLPattern pattern(valid_schemes); URLPattern::ParseResult parse_result = pattern.Parse(match_str);
diff --git a/extensions/common/manifest_handlers/permissions_parser.cc b/extensions/common/manifest_handlers/permissions_parser.cc index dfbd066..7e049e1 100644 --- a/extensions/common/manifest_handlers/permissions_parser.cc +++ b/extensions/common/manifest_handlers/permissions_parser.cc
@@ -61,8 +61,10 @@ return true; // Component extensions can have access to all of chrome://*. - if (PermissionsData::CanExecuteScriptEverywhere(extension)) + if (PermissionsData::CanExecuteScriptEverywhere(extension->id(), + extension->location())) { return true; + } if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kExtensionsOnChromeURLs)) { @@ -157,11 +159,14 @@ api_permissions->erase(*iter); } + bool can_execute_script_everywhere = + PermissionsData::CanExecuteScriptEverywhere(extension->id(), + extension->location()); + // Parse host pattern permissions. - const int kAllowedSchemes = - PermissionsData::CanExecuteScriptEverywhere(extension) - ? URLPattern::SCHEME_ALL - : Extension::kValidHostPermissionSchemes; + const int kAllowedSchemes = can_execute_script_everywhere + ? URLPattern::SCHEME_ALL + : Extension::kValidHostPermissionSchemes; for (std::vector<std::string>::const_iterator iter = host_data.begin(); iter != host_data.end(); @@ -177,16 +182,16 @@ pattern.SetPath("/*"); int valid_schemes = pattern.valid_schemes(); if (pattern.MatchesScheme(url::kFileScheme) && - !PermissionsData::CanExecuteScriptEverywhere(extension)) { + !can_execute_script_everywhere) { extension->set_wants_file_access(true); if (!(extension->creation_flags() & Extension::ALLOW_FILE_ACCESS)) valid_schemes &= ~URLPattern::SCHEME_FILE; } if (pattern.scheme() != content::kChromeUIScheme && - !PermissionsData::CanExecuteScriptEverywhere(extension)) { + !can_execute_script_everywhere) { // Keep chrome:// in allowed schemes only if it's explicitly requested - // or CanExecuteScriptEverywhere is true. If the + // or can_execute_script_everywhere is true. If the // extensions_on_chrome_urls flag is not set, CanSpecifyHostPermission // will fail, so don't check the flag here. valid_schemes &= ~URLPattern::SCHEME_CHROMEUI;
diff --git a/extensions/common/permissions/api_permission.h b/extensions/common/permissions/api_permission.h index 7bd3403..76591e7 100644 --- a/extensions/common/permissions/api_permission.h +++ b/extensions/common/permissions/api_permission.h
@@ -101,7 +101,6 @@ kEmbeddedExtensionOptions, kEnterprisePlatformKeys, kEnterprisePlatformKeysPrivate, - kEnterpriseReportingPrivate, kDeleted_ExperienceSamplingPrivate, kExperimental, kExtensionView, @@ -252,6 +251,7 @@ kDeclarativeNetRequest, kLockWindowFullscreenPrivate, kWebrtcLoggingPrivateAudioDebug, + kEnterpriseReportingPrivate, kCecPrivate, // Last entry: Add new entries above and ensure to update the // "ExtensionPermission3" enum in tools/metrics/histograms/histograms.xml
diff --git a/extensions/common/permissions/permissions_data.cc b/extensions/common/permissions/permissions_data.cc index e3d04ac..313ee3f 100644 --- a/extensions/common/permissions/permissions_data.cc +++ b/extensions/common/permissions/permissions_data.cc
@@ -77,14 +77,16 @@ } // static -bool PermissionsData::CanExecuteScriptEverywhere(const Extension* extension) { - if (extension->location() == Manifest::COMPONENT) +bool PermissionsData::CanExecuteScriptEverywhere( + const ExtensionId& extension_id, + Manifest::Location location) { + if (location == Manifest::COMPONENT) return true; const ExtensionsClient::ScriptingWhitelist& whitelist = ExtensionsClient::Get()->GetScriptingWhitelist(); - return base::ContainsValue(whitelist, extension->id()); + return base::ContainsValue(whitelist, extension_id); } // static @@ -98,8 +100,10 @@ bool PermissionsData::IsRestrictedUrl(const GURL& document_url, const Extension* extension, std::string* error) { - if (extension && CanExecuteScriptEverywhere(extension)) + if (extension && + CanExecuteScriptEverywhere(extension->id(), extension->location())) { return false; + } if (g_policy_delegate && g_policy_delegate->IsRestrictedUrl(document_url, error)) {
diff --git a/extensions/common/permissions/permissions_data.h b/extensions/common/permissions/permissions_data.h index 02a6a0e..b8b7aaf7 100644 --- a/extensions/common/permissions/permissions_data.h +++ b/extensions/common/permissions/permissions_data.h
@@ -15,6 +15,7 @@ #include "base/strings/string16.h" #include "base/synchronization/lock.h" #include "base/threading/thread_checker.h" +#include "extensions/common/extension_id.h" #include "extensions/common/manifest.h" #include "extensions/common/permissions/api_permission.h" #include "extensions/common/permissions/permission_message.h" @@ -71,7 +72,10 @@ // Returns true if the extension is a COMPONENT extension or is on the // whitelist of extensions that can script all pages. - static bool CanExecuteScriptEverywhere(const Extension* extension); + // NOTE: This is static because it is used during extension initialization, + // before the extension has an associated PermissionsData object. + static bool CanExecuteScriptEverywhere(const ExtensionId& extension_id, + Manifest::Location location); // Returns true if we should skip the permissions warning for the extension // with the given |extension_id|.
diff --git a/extensions/renderer/extension_injection_host.cc b/extensions/renderer/extension_injection_host.cc index 1ea2e17..0d1b397 100644 --- a/extensions/renderer/extension_injection_host.cc +++ b/extensions/renderer/extension_injection_host.cc
@@ -55,8 +55,10 @@ // Only whitelisted extensions may run scripts on another extension's page. if (top_frame_security_origin.Protocol().Utf8() == kExtensionScheme && top_frame_security_origin.Host().Utf8() != extension_->id() && - !PermissionsData::CanExecuteScriptEverywhere(extension_)) + !PermissionsData::CanExecuteScriptEverywhere(extension_->id(), + extension_->location())) { return PermissionsData::PageAccess::kDenied; + } // Declarative user scripts use "page access" (from "permissions" section in // manifest) whereas non-declarative user scripts use custom
diff --git a/extensions/renderer/user_script_set.cc b/extensions/renderer/user_script_set.cc index 3a069fd..6d34525 100644 --- a/extensions/renderer/user_script_set.cc +++ b/extensions/renderer/user_script_set.cc
@@ -160,8 +160,8 @@ const Extension* extension = RendererExtensionRegistry::Get()->GetByID(script->extension_id()); if (whitelisted_only && - (!extension || - !PermissionsData::CanExecuteScriptEverywhere(extension))) { + (!extension || !PermissionsData::CanExecuteScriptEverywhere( + extension->id(), extension->location()))) { continue; }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index f1245433..8577b37 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -12374,8 +12374,8 @@ if (!surface_->ScheduleOverlayPlane( c.plane_z_order, transform, image, gfx::Rect(c.bounds_x, c.bounds_y, c.bounds_width, c.bounds_height), - gfx::RectF(c.uv_x, c.uv_y, c.uv_width, c.uv_height), - c.enable_blend)) { + gfx::RectF(c.uv_x, c.uv_y, c.uv_width, c.uv_height), c.enable_blend, + nullptr)) { LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glScheduleOverlayPlaneCHROMIUM", "failed to schedule overlay");
diff --git a/gpu/ipc/service/image_transport_surface_mac.mm b/gpu/ipc/service/image_transport_surface_mac.mm index 2369396a..ccd0633 100644 --- a/gpu/ipc/service/image_transport_surface_mac.mm +++ b/gpu/ipc/service/image_transport_surface_mac.mm
@@ -5,6 +5,7 @@ #include "gpu/ipc/service/image_transport_surface.h" #include "base/macros.h" +#include "base/threading/thread_task_runner_handle.h" #include "gpu/ipc/service/image_transport_surface_overlay_mac.h" #include "gpu/ipc/service/pass_through_image_transport_surface.h" #include "ui/gfx/native_widget_types.h" @@ -27,6 +28,7 @@ // Implement a subset of GLSurface. gfx::SwapResult SwapBuffers(const PresentationCallback& callback) override; + bool SupportsPresentationCallback() override; private: ~DRTSurfaceOSMesa() override {} @@ -35,9 +37,17 @@ gfx::SwapResult DRTSurfaceOSMesa::SwapBuffers( const PresentationCallback& callback) { + gfx::PresentationFeedback feedback(base::TimeTicks::Now(), base::TimeDelta(), + 0 /* flags */); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(callback, std::move(feedback))); return gfx::SwapResult::SWAP_ACK; } +bool DRTSurfaceOSMesa::SupportsPresentationCallback() { + return true; +} + bool g_allow_os_mesa = false; } // namespace
diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.h b/gpu/ipc/service/image_transport_surface_overlay_mac.h index 472acb6..fac7604 100644 --- a/gpu/ipc/service/image_transport_surface_overlay_mac.h +++ b/gpu/ipc/service/image_transport_surface_overlay_mac.h
@@ -59,11 +59,13 @@ gl::GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) override; + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) override; bool ScheduleCALayer(const ui::CARendererLayerParams& params) override; void ScheduleCALayerInUseQuery( std::vector<CALayerInUseQuery> queries) override; bool IsSurfaceless() const override; + bool SupportsPresentationCallback() override; // ui::GpuSwitchingObserver implementation. void OnGpuSwitched() override; @@ -74,7 +76,8 @@ void SetSnapshotRequested(); bool GetAndResetSnapshotRequested(); - gfx::SwapResult SwapBuffersInternal(const gfx::Rect& pixel_damage_rect); + gfx::SwapResult SwapBuffersInternal(const gfx::Rect& pixel_damage_rect, + const PresentationCallback& callback); void ApplyBackpressure(base::TimeTicks* before_flush_time, base::TimeTicks* after_flush_before_commit_time);
diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.mm b/gpu/ipc/service/image_transport_surface_overlay_mac.mm index 0ce5e61..4d13755f 100644 --- a/gpu/ipc/service/image_transport_surface_overlay_mac.mm +++ b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
@@ -183,7 +183,8 @@ } gfx::SwapResult ImageTransportSurfaceOverlayMac::SwapBuffersInternal( - const gfx::Rect& pixel_damage_rect) { + const gfx::Rect& pixel_damage_rect, + const PresentationCallback& callback) { TRACE_EVENT0("gpu", "ImageTransportSurfaceOverlayMac::SwapBuffersInternal"); // Do a GL fence for flush to apply back-pressure before drawing. @@ -242,16 +243,21 @@ // Send the swap parameters to the browser. delegate_->DidSwapBuffersComplete(std::move(params)); - + constexpr int64_t kRefreshIntervalInMicroseconds = + base::Time::kMicrosecondsPerSecond / 60; + gfx::PresentationFeedback feedback( + base::TimeTicks::Now(), + base::TimeDelta::FromMicroseconds(kRefreshIntervalInMicroseconds), + 0 /* flags */); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(callback, std::move(feedback))); return gfx::SwapResult::SWAP_ACK; } gfx::SwapResult ImageTransportSurfaceOverlayMac::SwapBuffers( const PresentationCallback& callback) { - // TODO(penghuang): Provide useful presentation feedback. - // https://crbug.com/776877 return SwapBuffersInternal( - gfx::Rect(0, 0, pixel_size_.width(), pixel_size_.height())); + gfx::Rect(0, 0, pixel_size_.width(), pixel_size_.height()), callback); } gfx::SwapResult ImageTransportSurfaceOverlayMac::PostSubBuffer( @@ -260,9 +266,7 @@ int width, int height, const PresentationCallback& callback) { - // TODO(penghuang): Provide useful presentation feedback. - // https://crbug.com/776877 - return SwapBuffersInternal(gfx::Rect(x, y, width, height)); + return SwapBuffersInternal(gfx::Rect(x, y, width, height), callback); } bool ImageTransportSurfaceOverlayMac::SupportsPostSubBuffer() { @@ -295,7 +299,8 @@ gl::GLImage* image, const gfx::Rect& pixel_frame_rect, const gfx::RectF& crop_rect, - bool enable_blend) { + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) { if (transform != gfx::OVERLAY_TRANSFORM_NONE) { DLOG(ERROR) << "Invalid overlay plane transform."; return false; @@ -348,6 +353,10 @@ return true; } +bool ImageTransportSurfaceOverlayMac::SupportsPresentationCallback() { + return true; +} + bool ImageTransportSurfaceOverlayMac::Resize(const gfx::Size& pixel_size, float scale_factor, ColorSpace color_space,
diff --git a/gpu/vulkan/vulkan_implementation.cc b/gpu/vulkan/vulkan_implementation.cc index 731842bb..b90ff1c2 100644 --- a/gpu/vulkan/vulkan_implementation.cc +++ b/gpu/vulkan/vulkan_implementation.cc
@@ -110,7 +110,11 @@ } std::unordered_set<std::string> desired_layers({ +#if !defined(VK_USE_PLATFORM_XLIB_KHR) + // TODO(crbug.com/843346): Make validation work in combination with + // VK_KHR_xlib_surface or switch to VK_KHR_xcb_surface. "VK_LAYER_LUNARG_standard_validation", +#endif }); for (const VkLayerProperties& layer_property : instance_layers) {
diff --git a/headless/lib/browser/headless_window_tree_host.cc b/headless/lib/browser/headless_window_tree_host.cc index a0c0346..cacfe84d 100644 --- a/headless/lib/browser/headless_window_tree_host.cc +++ b/headless/lib/browser/headless_window_tree_host.cc
@@ -90,6 +90,12 @@ return false; } +base::flat_map<std::string, std::string> +HeadlessWindowTreeHost::GetKeyboardLayoutMap() { + NOTIMPLEMENTED(); + return {}; +} + void HeadlessWindowTreeHost::SetCursorNative(gfx::NativeCursor cursor_type) {} void HeadlessWindowTreeHost::MoveCursorToScreenLocationInPixels(
diff --git a/headless/lib/browser/headless_window_tree_host.h b/headless/lib/browser/headless_window_tree_host.h index 0b086ebe6..8d9b4bd 100644 --- a/headless/lib/browser/headless_window_tree_host.h +++ b/headless/lib/browser/headless_window_tree_host.h
@@ -55,6 +55,7 @@ base::Optional<base::flat_set<ui::DomCode>> codes) override; void ReleaseSystemKeyEventCapture() override; bool IsKeyLocked(ui::DomCode dom_code) override; + base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override; void SetCursorNative(gfx::NativeCursor cursor_type) override; void MoveCursorToScreenLocationInPixels(const gfx::Point& location) override; void OnCursorVisibilityChangedNative(bool show) override;
diff --git a/headless/lib/renderer/headless_renderer_manifest_overlay.json b/headless/lib/renderer/headless_renderer_manifest_overlay.json index 28fefc2..9479ab9 100644 --- a/headless/lib/renderer/headless_renderer_manifest_overlay.json +++ b/headless/lib/renderer/headless_renderer_manifest_overlay.json
@@ -4,7 +4,7 @@ "navigation:frame": { "provides": { "browser": [ - "headless::HeadlessRenderFrameController" + "headless.HeadlessRenderFrameController" ] } }
diff --git a/infra/config/branch/cq.cfg b/infra/config/branch/cq.cfg index 96dcb9a5..f36601d 100644 --- a/infra/config/branch/cq.cfg +++ b/infra/config/branch/cq.cfg
@@ -55,7 +55,7 @@ name: "master.tryserver.chromium.android" builders { name: "android_clang_dbg_recipe" - equivalent_to { bucket: "luci.chromium.try" percentage: 10 } + equivalent_to { bucket: "luci.chromium.try" percentage: 100 } } builders { name: "android_compile_dbg"
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg index 9c90ef05..b4d80cf 100644 --- a/infra/config/global/cr-buildbucket.cfg +++ b/infra/config/global/cr-buildbucket.cfg
@@ -1527,6 +1527,7 @@ # TODO(crbug.com/836626): delete dimensions: "cores:" when bug is fixed. builders { mixins: "ios-try" dimensions: "cores:" name: "ios-simulator" } builders { mixins: "ios-try" name: "ios-simulator-cronet" } + builders { mixins: "ios-try" name: "ios-simulator-full-configs" } builders { mixins: "ios-try" name: "ios-simulator-eg" } builders { mixins: "ios-try" name: "ios-simulator-xcode-clang" } builders { mixins: "mac-angle-try" name: "mac_angle_compile_dbg_ng" }
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg index 08f8d5a1..ade4854 100644 --- a/infra/config/global/luci-milo.cfg +++ b/infra/config/global/luci-milo.cfg
@@ -418,6 +418,7 @@ } builders { name: "buildbot/chromium.mac/ios-device" + name: "buildbucket/luci.chromium.ci/ios-device" category: "chromium.mac|ios" short_name: "dev" } @@ -428,16 +429,19 @@ } builders { name: "buildbot/chromium.mac/ios-simulator-full-configs" + name: "buildbucket/luci.chromium.ci/ios-simulator-full-configs" category: "chromium.mac|ios" short_name: "ful" } builders { name: "buildbot/chromium.mac/ios-device-xcode-clang" + name: "buildbucket/luci.chromium.ci/ios-device-xcode-clang" category: "chromium.mac|ios|xcode" short_name: "dev" } builders { name: "buildbot/chromium.mac/ios-simulator-xcode-clang" + name: "buildbucket/luci.chromium.ci/ios-simulator-xcode-clang" category: "chromium.mac|ios|xcode" short_name: "sim" } @@ -895,7 +899,6 @@ short_name: "sim" } builders { - name: "buildbot/chromium.mac/ios-simulator" name: "buildbucket/luci.chromium.ci/ios-simulator" } } @@ -1011,7 +1014,6 @@ short_name: "ful" } builders { - name: "buildbot/chromium.chromiumos/linux-chromeos-rel" name: "buildbucket/luci.chromium.ci/linux-chromeos-rel" category: "default" short_name: "rel" @@ -1023,13 +1025,11 @@ short_name: "dbg" } builders { - name: "buildbot/chromium.chromiumos/chromeos-amd64-generic-rel" name: "buildbucket/luci.chromium.ci/chromeos-amd64-generic-rel" category: "simple" short_name: "x64" } builders { - name: "buildbot/chromium.chromiumos/chromeos-daisy-rel" name: "buildbucket/luci.chromium.ci/chromeos-daisy-rel" category: "simple" short_name: "dsy" @@ -1561,6 +1561,7 @@ consoles { header_id: "chromium" + include_experimental_builds: true id: "migration-side-by-side" name: "LUCI CI Migration Comparison Console" repo_url: "https://chromium.googlesource.com/chromium/src" @@ -1686,7 +1687,66 @@ category: "gpu|android|release" short_name: "bb" } - include_experimental_builds: true + builders { + name: "buildbot/chromium.mac/ios-device" + category: "ios|ios-device" + short_name: "bb" + } + builders { + name: "buildbucket/luci.chromium.ci/ios-device" + category: "ios|ios-device" + short_name: "ci" + } + builders { + name: "buildbot/chromium.mac/ios-simulator-full-configs" + category: "ios|ios-simulator-full-configs" + short_name: "bb" + } + builders { + name: "buildbucket/luci.chromium.ci/ios-simulator-full-configs" + category: "ios|ios-simulator-full-configs" + short_name: "ci" + } + builders { + name: "buildbot/chromium.mac/ios-device-xcode-clang" + category: "ios|ios-device-xcode-clang" + short_name: "bb" + } + builders { + name: "buildbucket/luci.chromium.ci/ios-device-xcode-clang" + category: "ios|ios-device-xcode-clang" + short_name: "ci" + } + builders { + name: "buildbot/chromium.mac/ios-simulator-xcode-clang" + category: "ios|ios-simulator-xcode-clang" + short_name: "bb" + } + builders { + name: "buildbucket/luci.chromium.ci/ios-simulator-xcode-clang" + category: "ios|ios-simulator-xcode-clang" + short_name: "ci" + } + builders { + name: "buildbucket/luci.chromium.ci/Cast Android (dbg)" + category: "android|cast" + short_name: "ci" + } + builders { + name: "buildbot/chromium.android/Cast Android (dbg)" + category: "android|cast" + short_name: "bb" + } + builders { + name: "buildbucket/luci.chromium.try/cast_shell_android" + category: "android|cast" + short_name: "ci" + } + builders { + name: "buildbot/tryserver.chromium.android/cast_shell_android" + category: "android|cast" + short_name: "bb" + } } consoles { @@ -4024,6 +4084,7 @@ } builders { name: "buildbot/tryserver.chromium.android/cast_shell_android" + name: "buildbucket/luci.chromium.try/cast_shell_android" } builders { name: "buildbot/tryserver.chromium.android/linux_android_dbg_ng" @@ -4207,21 +4268,23 @@ manifest_name: "REVISION" builders { name: "buildbot/tryserver.chromium.mac/ios-device" + name: "buildbucket/luci.chromium.try/ios-device" } builders { name: "buildbot/tryserver.chromium.mac/ios-device-xcode-clang" - } - builders { - name: "buildbot/tryserver.chromium.mac/ios-simulator" + name: "buildbucket/luci.chromium.try/ios-device-xcode-clang" } builders { name: "buildbot/tryserver.chromium.mac/ios-simulator-cronet" + name: "buildbucket/luci.chromium.try/ios-simulator-cronet" } builders { name: "buildbot/tryserver.chromium.mac/ios-simulator-full-configs" + name: "buildbucket/luci.chromium.try/ios-simulator-full-configs" } builders { name: "buildbot/tryserver.chromium.mac/ios-simulator-xcode-clang" + name: "buildbucket/luci.chromium.try/ios-simulator-xcode-clang" } builders { name: "buildbot/tryserver.chromium.mac/mac_chromium_10.10"
diff --git a/infra/config/global/luci-scheduler.cfg b/infra/config/global/luci-scheduler.cfg index 28221dd..e4f10c0e 100644 --- a/infra/config/global/luci-scheduler.cfg +++ b/infra/config/global/luci-scheduler.cfg
@@ -83,7 +83,11 @@ triggers: "linux-chromeos-rel" # iOS. Sorted alphabetically. + triggers: "ios-device" + triggers: "ios-device-xcode-clang" triggers: "ios-simulator" + triggers: "ios-simulator-full-configs" + triggers: "ios-simulator-xcode-clang" # Linux. Sorted alphabetically. triggers: "Cast Audio Linux" @@ -631,6 +635,26 @@ ################################################################################ job { + id: "ios-device" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "ios-device" + } +} + +job { + id: "ios-device-xcode-clang" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "ios-device-xcode-clang" + } +} + +job { id: "ios-simulator" acl_sets: "default" buildbucket: { @@ -640,6 +664,26 @@ } } +job { + id: "ios-simulator-full-configs" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "ios-simulator-full-configs" + } +} + +job { + id: "ios-simulator-xcode-clang" + acl_sets: "default" + buildbucket: { + server: "cr-buildbucket.appspot.com" + bucket: "luci.chromium.ci" + builder: "ios-simulator-xcode-clang" + } +} + ################################################################################ # Linux Builders. Sorted alphabetically except builder-Testers must follow their # builder-Builders.
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb index 3c0e3b8..adc3cfc 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
@@ -28,7 +28,7 @@ <translation id="5231355151045086930">Chromium मधून साइन आउट करा</translation> <translation id="5416919929805616771">Chromium चा आनंद घेत आहात? <ph name="BEGIN_LINK" />या अॅपला रेट करा<ph name="END_LINK" /></translation> <translation id="5862307444128926510">Chromium वर आपले स्वागत आहे</translation> -<translation id="5945387852661427312"><ph name="DOMAIN" /> द्वारे व्यवस्थापित केलेल्या खात्यासह आपण साइन इन करीत आहात आणि त्याच्या प्रशासकास आपल्या Chromium डेटाचे नियंत्रण देत आहात. आपला डेटा कायमचा या खात्यामध्ये असेल. Chromium मधून साइन आउट केल्याने आपला डेटा या डिव्हाइस वरून हटविला जाईल परंतु तो आपल्या Google खात्यामध्ये संचयित केलेला असेल.</translation> +<translation id="5945387852661427312"><ph name="DOMAIN" /> द्वारे व्यवस्थापित केलेल्या खात्यासह आपण साइन इन करीत आहात आणि त्याच्या प्रशासकास आपल्या Chromium डेटाचे नियंत्रण देत आहात. आपला डेटा कायमचा या खात्यामध्ये असेल. Chromium मधून साइन आउट केल्याने आपला डेटा या डिव्हाइस वरून हटवला जाईल परंतु तो आपल्या Google खात्यामध्ये संचयित केलेला असेल.</translation> <translation id="6068866989048414399">Chromium सेवा अटी</translation> <translation id="6268381023930128611">Chromium मधून साइन आउट करायचे?</translation> <translation id="6424492062988593837">Chrome आता सर्वोत्तम झाले आहे! नवीन आवृत्ती उपलब्ध आहे.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb index 106e429..8b7caabf 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
@@ -36,7 +36,7 @@ <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation> <translation id="6573431926118603307">आपल्या अन्य डिव्हाइसेसवर आपण Chrome मध्ये उघडलेले टॅब येथे दिसतील.</translation> <translation id="6600954340915313787">Chrome वर कॉपी केले</translation> -<translation id="6648150602980899529"><ph name="DOMAIN" /> द्वारे व्यवस्थापित केलेल्या खात्यासह आपण साइन इन करीत आहात आणि त्याच्या प्रशासकास आपल्या Chrome डेटाचे नियंत्रण देत आहात. आपला डेटा कायमचा या खात्यामध्ये असेल. Chrome मधून साइन आउट केल्याने आपला डेटा या डिव्हाइस वरून हटविला जाईल परंतु तो आपल्या Google खात्यामध्ये संचयित केलेला असेल.</translation> +<translation id="6648150602980899529"><ph name="DOMAIN" /> द्वारे व्यवस्थापित केलेल्या खात्यासह आपण साइन इन करीत आहात आणि त्याच्या प्रशासकास आपल्या Chrome डेटाचे नियंत्रण देत आहात. आपला डेटा कायमचा या खात्यामध्ये असेल. Chrome मधून साइन आउट केल्याने आपला डेटा या डिव्हाइस वरून हटवला जाईल परंतु तो आपल्या Google खात्यामध्ये संचयित केलेला असेल.</translation> <translation id="690638524486313356">Google Chrome सेवा अटी</translation> <translation id="7165736900384873061">Google Chrome QR स्कॅनर वापरणे आरंभ करा</translation> <translation id="7172660552945675509">टीप: <ph name="BEGIN_LINK" />Chrome आपल्या डॉकमध्ये हलवा<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index aae4c9c8d..fd214a4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">প্রাথমিক বিষয়াদি</translation> <translation id="2386793615875593361">১টি নির্বাচিত</translation> <translation id="2435457462613246316">পাসওয়ার্ড দেখান</translation> +<translation id="2481538920734869610">অ্যাকাউন্ট যোগ করুন</translation> <translation id="2523363575747517183">এই ওয়েবসাইটটি ক্রমাগত অন্য অ্যাপ্লিকেশন খোলার চেষ্টা করছে।</translation> <translation id="2529021024822217800">সবকটি খুলুন</translation> <translation id="2572712655377361602">একটি ডিভাইস নীতি আপনার ফটোতে অ্যাক্সেস অবরুদ্ধ করেছে</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">আবার উত্তরগুলি বলে</translation> <translation id="722055596168483966">Google পরিষেবাগুলিকে ব্যক্তিগত করুন</translation> <translation id="7272437679830969316">আপনার পরিচয় যাচাই করা যাবে না। পাসওয়ার্ড কপি করা হয়নি।</translation> +<translation id="7285236536143823449">হ্যাঁ, আমি রাজি</translation> <translation id="7291368939935408496">পাসওয়ার্ড তৈরি করা হচ্ছে...</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> শতাংশ ডাউনলোড হয়েছে</translation> <translation id="7346909386216857016">ঠিক আছে, বুঝেছি</translation> @@ -351,7 +353,7 @@ <translation id="7425346204213733349">আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংসে করা পরিবর্তন আর আপনার Google অ্যাকাউন্টের সাথে সিঙ্ক করা হবে না। অবশ্য, আপনার বিদ্যমান ডেটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে।</translation> <translation id="744343212394640790"><ph name="EMAIL" /> না</translation> <translation id="7454057999980797137">রাজ্য / দেশ</translation> -<translation id="7456847797759667638">অবস্থান খুলুন...</translation> +<translation id="7456847797759667638">লোকেশন খুলুন...</translation> <translation id="7464701184726199289">এটি সব ডিভাইস থেকে সিঙ্ক হওয়া ডেটা সাফ করবে। সংরক্ষিত সাইটের সেটিংস মোছা হবে না এবং আপনার ব্রাউজিং অভ্যাস প্রতিফলিত হতে পারে। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation> <translation id="7472734401283673885">কোম্পানির নাম:</translation> <translation id="7481312909269577407">ফরওয়ার্ড</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index 2ceb5d7..4c9f384d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">मूलभूत बातें</translation> <translation id="2386793615875593361">1 चयनित</translation> <translation id="2435457462613246316">पासवर्ड दिखाएं</translation> +<translation id="2481538920734869610">खाता जोड़ें</translation> <translation id="2523363575747517183">यह वेबसाइट बार-बार किसी दूसरे ऐप्लिकेशन को खोलने की कोशिश कर रही है.</translation> <translation id="2529021024822217800">सभी खोलें</translation> <translation id="2572712655377361602">एक डिवाइस नीति ने आपकी फ़ोटो का एक्सेस अवरुद्ध कर दिया है</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">उत्तर फिर से बोलें</translation> <translation id="722055596168483966">Google सेवाओं को वैयक्तिकृत करें</translation> <translation id="7272437679830969316">आपकी पहचान की पुष्टि नहीं हो पा रही है. पासवर्ड कॉपी नहीं हुआ.</translation> +<translation id="7285236536143823449">हां, मैं तैयार हूं</translation> <translation id="7291368939935408496">पासवर्ड तैयार हो रहे हैं...</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> प्रतिशत डाउनलोड हो गई</translation> <translation id="7346909386216857016">ठीक है, समझ लिया</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index b3a3789..2265842 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">ಪ್ರಾಥಮಿಕ ಸಂಗತಿಗಳು</translation> <translation id="2386793615875593361">1 ಆಯ್ಕೆಮಾಡಿದೆ</translation> <translation id="2435457462613246316">ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ತೋರಿಸಿ</translation> +<translation id="2481538920734869610">ಖಾತೆ ಸೇರಿಸಿ</translation> <translation id="2523363575747517183">ಈ ವೆಬ್ಸೈಟ್ ಪದೇ ಪದೇ ಇನ್ನೊಂದು ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation> <translation id="2529021024822217800">ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ</translation> <translation id="2572712655377361602">ಸಾಧನದ ನೀತಿಯೊಂದು ನಿಮ್ಮ ಫೋಟೋಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">ಉತ್ತರಗಳನ್ನು ಮತ್ತೆ ಮಾತನಾಡಿ</translation> <translation id="722055596168483966">Google ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಿ</translation> <translation id="7272437679830969316">ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿಲ್ಲ.</translation> +<translation id="7285236536143823449">ಹೌದು, ನಾನು ಸಮ್ಮತಿಸುತ್ತೇನೆ</translation> <translation id="7291368939935408496">ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ಪ್ರತಿಶತ ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="7346909386216857016">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index ccf6dfc74..c970689 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -81,6 +81,7 @@ <translation id="2381405137052800939">അടിസ്ഥാനങ്ങൾ</translation> <translation id="2386793615875593361">1 തിരഞ്ഞെടുത്തു</translation> <translation id="2435457462613246316">പാസ്വേഡ് കാണിക്കുക</translation> +<translation id="2481538920734869610">അക്കൗണ്ട് ചേർക്കുക</translation> <translation id="2523363575747517183">മറ്റൊരു അപ്ലിക്കേഷൻ തുറക്കാൻ ഈ വെബ്സൈറ്റ് ആവർത്തിച്ച് ശ്രമിക്കുന്നു.</translation> <translation id="2529021024822217800">എല്ലാം തുറക്കുക</translation> <translation id="2572712655377361602">ഒരു ഉപകരണ നയം, നിങ്ങളുടെ ഫോട്ടോകളിലേക്കുള്ള ആക്സസ്സ് ബ്ലോക്കുചെയ്തിരിക്കുന്നു</translation> @@ -344,6 +345,7 @@ <translation id="7203585745079012652">മറുപടിയായി ഉത്തരങ്ങൾ പറയുക</translation> <translation id="722055596168483966">Google സേവനങ്ങൾ വ്യക്തിപരമാക്കുക</translation> <translation id="7272437679830969316">നിങ്ങളുടെ ഐഡന്റിറ്റി പരിശോധിക്കാനാകില്ല. പാസ്വേഡ് പകർത്തിയില്ല.</translation> +<translation id="7285236536143823449">അതെ, ഞാൻ തയ്യാറാണ്</translation> <translation id="7291368939935408496">പാസ്വേഡുകൾ തയ്യാറാക്കുന്നു...</translation> <translation id="7336264872878993241"><ph name="PERCENT" /> ശതമാനം ഡൗൺലോഡുചെയ്തു</translation> <translation id="7346909386216857016">മനസ്സിലായി!</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb index e8e1d90..0cdc13f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -173,7 +173,7 @@ <translation id="4084682180776658562">बुकमार्क</translation> <translation id="411254640334432676">डाउनलोड अयशस्वी.</translation> <translation id="4121993058175073134">निव्वळ-निर्यात डेटा पाठविण्यासाठी, कृपया सेटिंग्ज अॅप मध्ये आपले ईमेल खाते कॉन्फिगर करा.</translation> -<translation id="4124987746317609294">वेळ श्रेणी</translation> +<translation id="4124987746317609294">वेळ वर्गवारी</translation> <translation id="4172051516777682613">नेहमी दर्शवा</translation> <translation id="418156467088430727">नवीन टॅबमध्ये ऑफलाइन आवृत्ती पहा</translation> <translation id="4237682350741091554">Chrome सिंक आणि पर्सनलायझेशन <ph name="BEGIN_LINK" />सेटिंग्ज<ph name="END_LINK" /> मधून व्यवस्थापित करा.</translation> @@ -398,7 +398,7 @@ <translation id="842017693807136194">यासह साइन इन केले</translation> <translation id="8428045167754449968">शहर / नगर</translation> <translation id="8428213095426709021">सेटिंग्ज</translation> -<translation id="8458397775385147834">1 आयटम हटविला</translation> +<translation id="8458397775385147834">1 आयटम हटवला</translation> <translation id="8487700953926739672">ऑफलाइन उपलब्ध</translation> <translation id="8503813439785031346">वापरकर्तानाव</translation> <translation id="850600235656508448">गुप्त प्रकारात उघडा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index 58c60beb..78aae11f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -345,7 +345,7 @@ <translation id="7203585745079012652">Изговарај одговоре</translation> <translation id="722055596168483966">Персонализујте Google услуге</translation> <translation id="7272437679830969316">Верификација идентитета није успела. Лозинка није копирана.</translation> -<translation id="7285236536143823449">ДА, ОМОГУЋИ</translation> +<translation id="7285236536143823449">ДА, СЛАЖЕМ СЕ</translation> <translation id="7291368939935408496">Припремају се лозинке...</translation> <translation id="7336264872878993241">Проценат преузимања: <ph name="PERCENT" /></translation> <translation id="7346909386216857016">Важи</translation>
diff --git a/ios/chrome/browser/autofill/form_structure_browsertest.mm b/ios/chrome/browser/autofill/form_structure_browsertest.mm index 674dd99..f6918ab 100644 --- a/ios/chrome/browser/autofill/form_structure_browsertest.mm +++ b/ios/chrome/browser/autofill/form_structure_browsertest.mm
@@ -181,7 +181,7 @@ // to have a behavior similar to other platforms. name = ""; } - std::string section = field->section(); + std::string section = field->section; if (base::StartsWith(section, "gChrome~field~", base::CompareCase::SENSITIVE)) { // The name has been generated by iOS JavaScript. Output an empty name
diff --git a/ios/chrome/browser/download/download_manager_tab_helper.mm b/ios/chrome/browser/download/download_manager_tab_helper.mm index a4e3995..6e7aaf0 100644 --- a/ios/chrome/browser/download/download_manager_tab_helper.mm +++ b/ios/chrome/browser/download/download_manager_tab_helper.mm
@@ -49,10 +49,13 @@ } // Another download is already in progress. Ask the user if current download - // should be replaced if new download was initiated by a link click. Otherwise - // silently drop the download to prevent web pages from spamming the user. - if (!ui::PageTransitionTypeIncludingQualifiersIs( - block_task->GetTransitionType(), ui::PAGE_TRANSITION_LINK)) { + // should be replaced if new download was initiated by a link click or typed + // into the omnibox. Otherwise silently drop the download to prevent web pages + // from spamming the user. + ui::PageTransition transition = block_task->GetTransitionType(); + if (!(transition & ui::PAGE_TRANSITION_FROM_ADDRESS_BAR) && + !ui::PageTransitionTypeIncludingQualifiersIs(transition, + ui::PAGE_TRANSITION_LINK)) { return; } @@ -118,6 +121,8 @@ void DownloadManagerTabHelper::DidCreateDownload( std::unique_ptr<web::DownloadTask> task) { if (task_) { + [[NetworkActivityIndicatorManager sharedInstance] + clearNetworkTasksForGroup:GetNetworkActivityKey()]; task_->RemoveObserver(this); } task_ = std::move(task);
diff --git a/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm b/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm index 5dc7876..ae275e2 100644 --- a/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm +++ b/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm
@@ -54,7 +54,7 @@ // Tests creating the second download while the first download is still in // progress. Second download should be rejected because its transition type is -// not ui::PAGE_TRANSITION_LINK. +// not ui::PAGE_TRANSITION_LINK or ui::PAGE_TRANSITION_FROM_ADDRESS_BAR. TEST_F(DownloadManagerTabHelperTest, DownloadRejection) { web_state_->WasShown(); ASSERT_FALSE(delegate_.state); @@ -107,7 +107,7 @@ auto task2 = std::make_unique<web::FakeDownloadTask>(GURL(kUrl), kMimeType); const web::FakeDownloadTask* task2_ptr = task2.get(); - task2->SetTransitionType(ui::PAGE_TRANSITION_LINK); + task2->SetTransitionType(ui::PAGE_TRANSITION_FROM_ADDRESS_BAR); tab_helper()->Download(std::move(task2)); ASSERT_TRUE(delegate_.state); @@ -189,6 +189,36 @@ } // Tests showing network activity indicator when download is started and hiding +// when the download task is replaced. +TEST_F(DownloadManagerTabHelperTest, NetworkActivityIndicatorOnReplacement) { + ASSERT_FALSE(delegate_.state); + auto task = std::make_unique<web::FakeDownloadTask>(GURL(kUrl), kMimeType); + + web::FakeDownloadTask* task_ptr = task.get(); + tab_helper()->Download(std::move(task)); + ASSERT_EQ(0U, [[NetworkActivityIndicatorManager sharedInstance] + numTotalNetworkTasks]); + task_ptr->Start(std::make_unique<net::URLFetcherStringWriter>()); + EXPECT_EQ(1U, [[NetworkActivityIndicatorManager sharedInstance] + numTotalNetworkTasks]); + + // Replace the download task. + auto task2 = std::make_unique<web::FakeDownloadTask>(GURL(kUrl), kMimeType); + const web::FakeDownloadTask* task2_ptr = task2.get(); + task2->SetTransitionType(ui::PAGE_TRANSITION_LINK); + tab_helper()->Download(std::move(task2)); + + EXPECT_EQ(task2_ptr, delegate_.decidingPolicyForDownload); + // Ask the delegate to replace the new download. + BOOL replaced = [delegate_ decidePolicy:kNewDownloadPolicyReplace]; + ASSERT_TRUE(replaced); + + // Now network activity indicator is hidden. + EXPECT_EQ(0U, [[NetworkActivityIndicatorManager sharedInstance] + numTotalNetworkTasks]); +} + +// Tests showing network activity indicator when download is started and hiding // when tab helper is destroyed. TEST_F(DownloadManagerTabHelperTest, NetworkActivityIndicatorOnDestruction) { ASSERT_FALSE(delegate_.state);
diff --git a/ios/chrome/browser/experimental_flags.h b/ios/chrome/browser/experimental_flags.h index 18ceb526..b4ff3fb 100644 --- a/ios/chrome/browser/experimental_flags.h +++ b/ios/chrome/browser/experimental_flags.h
@@ -63,6 +63,9 @@ // Whether RecentTabs UI Reboot is enabled. bool IsRecentTabsUIRebootEnabled(); +// Whether the Bookmarks UI Reboot is enabled. +bool IsBookmarksUIRebootEnabled(); + // Whether the Collections UI Reboot is enabled. bool IsCollectionsUIRebootEnabled();
diff --git a/ios/chrome/browser/experimental_flags.mm b/ios/chrome/browser/experimental_flags.mm index 877cd97..96e26e5 100644 --- a/ios/chrome/browser/experimental_flags.mm +++ b/ios/chrome/browser/experimental_flags.mm
@@ -139,6 +139,10 @@ return base::FeatureList::IsEnabled(kUIRefreshPhase1); } +bool IsBookmarksUIRebootEnabled() { + return base::FeatureList::IsEnabled(kCollectionsUIReboot); +} + bool IsCollectionsUIRebootEnabled() { return base::FeatureList::IsEnabled(kCollectionsUIReboot); }
diff --git a/ios/chrome/browser/net/BUILD.gn b/ios/chrome/browser/net/BUILD.gn index f979ff7..4049fc0 100644 --- a/ios/chrome/browser/net/BUILD.gn +++ b/ios/chrome/browser/net/BUILD.gn
@@ -66,6 +66,9 @@ ":net", "//base", "//base/test:test_support", + "//ios/net", + "//ios/net:test_support", + "//ios/testing:ios_test_support", "//ios/web/public/test", "//net", "//net:test_support",
diff --git a/ios/chrome/browser/net/cookie_util.mm b/ios/chrome/browser/net/cookie_util.mm index 46e5674b5..c9f4ed4 100644 --- a/ios/chrome/browser/net/cookie_util.mm +++ b/ios/chrome/browser/net/cookie_util.mm
@@ -16,6 +16,7 @@ #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #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_thread.h" #include "net/cookies/cookie_monster.h" #include "net/cookies/cookie_store.h" @@ -88,6 +89,17 @@ if (config.cookie_store_type == CookieStoreConfig::COOKIE_MONSTER) return CreateCookieMonster(config); + // On iOS 11, there is no need to use PersistentCookieStore or CookieMonster + // because there is a way to access cookies in WKHTTPCookieStore. This will + // allow URLFetcher and anyother users of net:CookieStore to in iOS to set + // and get cookies directly in WKHTTPCookieStore. + if (@available(iOS 11, *)) { + if (base::FeatureList::IsEnabled(web::features::kWKHTTPSystemCookieStore)) { + return std::make_unique<net::CookieStoreIOS>( + std::move(system_cookie_store)); + } + } + scoped_refptr<net::SQLitePersistentCookieStore> persistent_store = nullptr; if (config.session_cookie_mode == CookieStoreConfig::RESTORED_SESSION_COOKIES) {
diff --git a/ios/chrome/browser/net/cookie_util_unittest.mm b/ios/chrome/browser/net/cookie_util_unittest.mm index 42a2bd9..0e4c28ae 100644 --- a/ios/chrome/browser/net/cookie_util_unittest.mm +++ b/ios/chrome/browser/net/cookie_util_unittest.mm
@@ -6,23 +6,48 @@ #import <Foundation/Foundation.h> +#import "base/mac/bind_objc_block.h" +#include "base/run_loop.h" +#include "base/strings/sys_string_conversions.h" +#include "base/test/scoped_feature_list.h" +#include "ios/net/cookies/cookie_store_ios_test_util.h" +#import "ios/net/cookies/ns_http_system_cookie_store.h" +#import "ios/net/cookies/system_cookie_store.h" +#import "ios/testing/wait_util.h" +#include "ios/web/public/features.h" +#include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/test/web_test.h" #include "testing/gtest/include/gtest/gtest.h" +#include "testing/gtest_mac.h" #include "testing/platform_test.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif +using testing::WaitUntilConditionOrTimeout; +using testing::kWaitForCookiesTimeout; + namespace { // Date of the last cookie deletion. NSString* const kLastCookieDeletionDate = @"LastCookieDeletionDate"; -} // namespace +class CookieUtilTest : public PlatformTest { + public: + CookieUtilTest() + : ns_http_cookie_store_([NSHTTPCookieStorage sharedHTTPCookieStorage]) {} -using CookieUtil = PlatformTest; + ~CookieUtilTest() override { + // Make sure NSHTTPCookieStorage is empty. + [ns_http_cookie_store_ removeCookiesSinceDate:[NSDate distantPast]]; + } -TEST_F(CookieUtil, ShouldClearSessionCookies) { + protected: + NSHTTPCookieStorage* ns_http_cookie_store_; +}; + +TEST_F(CookieUtilTest, ShouldClearSessionCookies) { time_t start_test_time; time(&start_test_time); NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; @@ -44,3 +69,73 @@ EXPECT_TRUE(cookie_util::ShouldClearSessionCookies()); EXPECT_LE(now, [defaults integerForKey:kLastCookieDeletionDate]); } + +// Tests that CreateCookieStore returns the correct type of net::CookieStore +// based on the given parameters and the iOS version. +TEST_F(CookieUtilTest, CreateCookieStoreInIOS11) { + web::TestWebThreadBundle thread_bundle; + net::ScopedTestingCookieStoreIOSClient scoped_cookie_store_ios_client( + std::make_unique<net::TestCookieStoreIOSClient>()); + + // Testing while WKHTTPSystemCookieStore feature is enabled. + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + web::features::kWKHTTPSystemCookieStore); + + GURL test_url("http://foo.google.com/bar"); + NSString* cookie_name = @"cookie_name"; + NSString* cookie_value = @"cookie_value"; + std::unique_ptr<net::SystemCookieStore> system_cookie_store = + std::make_unique<net::NSHTTPSystemCookieStore>(ns_http_cookie_store_); + net::SystemCookieStore* ns_cookie_store = system_cookie_store.get(); + cookie_util::CookieStoreConfig config( + base::FilePath(), + cookie_util::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES, + cookie_util::CookieStoreConfig::CookieStoreType::COOKIE_STORE_IOS, + nullptr); + std::unique_ptr<net::CookieStore> cookie_store = + cookie_util::CreateCookieStore(config, std::move(system_cookie_store)); + + net::CookieOptions options; + options.set_include_httponly(); + std::string cookie_line = base::SysNSStringToUTF8(cookie_name) + "=" + + base::SysNSStringToUTF8(cookie_value); + cookie_store->SetCookieWithOptionsAsync( + test_url, cookie_line, options, net::CookieStore::SetCookiesCallback()); + + __block NSArray<NSHTTPCookie*>* result_cookies = nil; + __block bool callback_called = false; + ns_cookie_store->GetCookiesForURLAsync( + test_url, base::BindBlockArc(^(NSArray<NSHTTPCookie*>* cookies) { + callback_called = true; + result_cookies = [cookies copy]; + })); + EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForCookiesTimeout, ^bool { + base::RunLoop().RunUntilIdle(); + return callback_called; + })); + + if (@available(iOS 11, *)) { + // When WKHTTPSystemCookieStore feature is enabled and the iOS version is + // 11+ the cookie should be set directly in the backing SystemCookieStore. + EXPECT_EQ(1U, result_cookies.count); + EXPECT_NSEQ(cookie_name, result_cookies[0].name); + EXPECT_NSEQ(cookie_value, result_cookies[0].value); + } else { + // Before iOS 11, cookies are not set in the backing SystemCookieStore + // instead they are found on CookieMonster. + EXPECT_EQ(0U, result_cookies.count); + } + + // Clear cookies that was set in the test. + __block bool cookies_cleared = false; + cookie_store->DeleteAllAsync(base::BindBlockArc(^(unsigned int) { + cookies_cleared = true; + })); + EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForCookiesTimeout, ^bool { + base::RunLoop().RunUntilIdle(); + return cookies_cleared; + })); +} + +} // namespace
diff --git a/ios/chrome/browser/ui/bookmarks/BUILD.gn b/ios/chrome/browser/ui/bookmarks/BUILD.gn index b07dfa1..b571870 100644 --- a/ios/chrome/browser/ui/bookmarks/BUILD.gn +++ b/ios/chrome/browser/ui/bookmarks/BUILD.gn
@@ -34,6 +34,8 @@ "bookmark_path_cache.mm", "bookmark_promo_controller.h", "bookmark_promo_controller.mm", + "bookmark_transitioning_delegate.h", + "bookmark_transitioning_delegate.mm", "bookmark_utils_ios.h", "bookmark_utils_ios.mm", "undo_manager_bridge_observer.h", @@ -105,6 +107,7 @@ "//ios/chrome/browser/ui/ntp", "//ios/chrome/browser/ui/signin_interaction/public", "//ios/chrome/browser/ui/table_view", + "//ios/chrome/browser/ui/table_view:presentation", "//ios/chrome/browser/ui/table_view:styler", "//ios/chrome/browser/ui/util", "//ios/chrome/browser/undo",
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.mm b/ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.mm index db93d6f..e045b36 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.mm
@@ -16,6 +16,7 @@ #include "components/bookmarks/browser/bookmark_utils.h" #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/experimental_flags.h" #import "ios/chrome/browser/metrics/new_tab_page_uma.h" #import "ios/chrome/browser/tabs/tab.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_edit_view_controller.h" @@ -23,8 +24,10 @@ #import "ios/chrome/browser/ui/bookmarks/bookmark_mediator.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_navigation_controller.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_path_cache.h" +#import "ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.h" #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" #import "ios/chrome/browser/ui/commands/application_commands.h" +#import "ios/chrome/browser/ui/table_view/table_view_navigation_controller.h" #include "ios/chrome/browser/ui/uikit_ui_util.h" #include "ios/chrome/browser/ui/url_loader.h" #import "ios/chrome/browser/ui/util/form_sheet_navigation_controller.h" @@ -70,6 +73,9 @@ @property(nonatomic, readonly, weak) id<ApplicationCommands> dispatcher; +@property(nonatomic, strong) + BookmarkTransitioningDelegate* bookmarkTransitioningDelegate; + // Builds a controller and brings it on screen. - (void)presentBookmarkForBookmarkedTab:(Tab*)tab; @@ -89,6 +95,7 @@ @synthesize bookmarkBrowser = _bookmarkBrowser; @synthesize bookmarkEditor = _bookmarkEditor; @synthesize bookmarkModel = _bookmarkModel; +@synthesize bookmarkTransitioningDelegate = _bookmarkTransitioningDelegate; @synthesize mediator = _mediator; @synthesize dispatcher = _dispatcher; @@ -196,13 +203,28 @@ scrollPosition:&unusedScrollPosition]) { self.bookmarkBrowser.isReconstructingFromCache = YES; } - FormSheetNavigationController* navController = - [[FormSheetNavigationController alloc] - initWithRootViewController:self.bookmarkBrowser]; - [navController setModalPresentationStyle:UIModalPresentationFormSheet]; - [_parentController presentViewController:navController - animated:YES - completion:nil]; + + if (experimental_flags::IsBookmarksUIRebootEnabled()) { + TableViewNavigationController* navController = + [[TableViewNavigationController alloc] + initWithTable:self.bookmarkBrowser]; + navController.toolbarHidden = YES; + self.bookmarkTransitioningDelegate = + [[BookmarkTransitioningDelegate alloc] init]; + navController.transitioningDelegate = self.bookmarkTransitioningDelegate; + [navController setModalPresentationStyle:UIModalPresentationCustom]; + [_parentController presentViewController:navController + animated:YES + completion:nil]; + } else { + FormSheetNavigationController* navController = + [[FormSheetNavigationController alloc] + initWithRootViewController:self.bookmarkBrowser]; + [navController setModalPresentationStyle:UIModalPresentationFormSheet]; + [_parentController presentViewController:navController + animated:YES + completion:nil]; + } } - (void)dismissBookmarkBrowserAnimated:(BOOL)animated @@ -234,6 +256,7 @@ completion:^{ self.bookmarkBrowser.homeDelegate = nil; self.bookmarkBrowser = nil; + self.bookmarkTransitioningDelegate = nil; if (!openUrlsAfterDismissal) { return;
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.h b/ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.h new file mode 100644 index 0000000..f751591 --- /dev/null +++ b/ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.h
@@ -0,0 +1,15 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_TRANSITIONING_DELEGATE_H_ +#define IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_TRANSITIONING_DELEGATE_H_ + +#import <UIKit/UIKit.h> + +@interface BookmarkTransitioningDelegate + : NSObject<UIViewControllerTransitioningDelegate> + +@end + +#endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_BOOKMARK_TRANSITIONING_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.mm b/ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.mm new file mode 100644 index 0000000..3d2aefa1 --- /dev/null +++ b/ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.mm
@@ -0,0 +1,55 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/ui/bookmarks/bookmark_transitioning_delegate.h" + +#import "ios/chrome/browser/ui/table_view/table_view_animator.h" +#import "ios/chrome/browser/ui/table_view/table_view_presentation_controller.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +@implementation BookmarkTransitioningDelegate + +- (UIPresentationController*) +presentationControllerForPresentedViewController:(UIViewController*)presented + presentingViewController:(UIViewController*)presenting + sourceViewController:(UIViewController*)source { + return [[TableViewPresentationController alloc] + initWithPresentedViewController:presented + presentingViewController:presenting]; +} + +- (id<UIViewControllerAnimatedTransitioning>) +animationControllerForPresentedController:(UIViewController*)presented + presentingController:(UIViewController*)presenting + sourceController:(UIViewController*)source { + UITraitCollection* traitCollection = presenting.traitCollection; + if (traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact && + traitCollection.verticalSizeClass != UIUserInterfaceSizeClassCompact) { + // Use the default animator for fullscreen presentations. + return nil; + } + + TableViewAnimator* animator = [[TableViewAnimator alloc] init]; + animator.presenting = YES; + return animator; +} + +- (id<UIViewControllerAnimatedTransitioning>) +animationControllerForDismissedController:(UIViewController*)dismissed { + UITraitCollection* traitCollection = dismissed.traitCollection; + if (traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact && + traitCollection.verticalSizeClass != UIUserInterfaceSizeClassCompact) { + // Use the default animator for fullscreen presentations. + return nil; + } + + TableViewAnimator* animator = [[TableViewAnimator alloc] init]; + animator.presenting = NO; + return animator; +} + +@end
diff --git a/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm b/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm index 525f29e..0808331 100644 --- a/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm +++ b/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
@@ -32,6 +32,7 @@ #include "ios/chrome/browser/ui/ntp/recent_tabs/synced_sessions.h" #import "ios/chrome/browser/ui/settings/sync_utils/sync_presenter.h" #import "ios/chrome/browser/ui/signin_interaction/public/signin_presenter.h" +#import "ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_activity_indicator_header_footer_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_disclosure_header_footer_item.h" @@ -201,10 +202,10 @@ [self addRecentlyClosedTabItems]; // Add show full history item last. - TableViewURLItem* historyItem = - [[TableViewURLItem alloc] initWithType:ItemTypeShowFullHistory]; + TableViewAccessoryItem* historyItem = + [[TableViewAccessoryItem alloc] initWithType:ItemTypeShowFullHistory]; historyItem.title = l10n_util::GetNSString(IDS_HISTORY_SHOWFULLHISTORY_LINK); - historyItem.favicon = [UIImage imageNamed:@"show_history"]; + // historyItem.image = [UIImage imageNamed:@"show_history"]; [model addItem:historyItem toSectionWithIdentifier:SectionIdentifierRecentlyClosedTabs]; }
diff --git a/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm b/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm index c35eebf..352eb3b 100644 --- a/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm +++ b/ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.mm
@@ -4,6 +4,7 @@ #import "ios/chrome/browser/ui/settings/table_cell_catalog_view_controller.h" +#import "ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_text_header_footer_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_text_item.h" #import "ios/chrome/browser/ui/table_view/cells/table_view_url_item.h" @@ -25,6 +26,8 @@ ItemTypeTextHeader, ItemTypeTextFooter, ItemTypeURLNoMetadata, + ItemTypeTextAccessoryImage, + ItemTypeTextAccessoryNoImage, ItemTypeURLWithTimestamp, ItemTypeURLWithSize, }; @@ -72,6 +75,19 @@ textItem.textColor = TextItemColorBlack; [model addItem:textItem toSectionWithIdentifier:SectionIdentifierText]; + TableViewAccessoryItem* textAccessoryItem = + [[TableViewAccessoryItem alloc] initWithType:ItemTypeTextAccessoryImage]; + textAccessoryItem.title = @"Text Accessory with History Image"; + textAccessoryItem.image = [UIImage imageNamed:@"show_history"]; + [model addItem:textAccessoryItem + toSectionWithIdentifier:SectionIdentifierText]; + + textAccessoryItem = [[TableViewAccessoryItem alloc] + initWithType:ItemTypeTextAccessoryNoImage]; + textAccessoryItem.title = @"Text Accessory No Image"; + [model addItem:textAccessoryItem + toSectionWithIdentifier:SectionIdentifierText]; + TableViewTextItem* textItemDefault = [[TableViewTextItem alloc] initWithType:ItemTypeText]; textItemDefault.text = @"Simple Text Cell with Defaults";
diff --git a/ios/chrome/browser/ui/table_view/cells/BUILD.gn b/ios/chrome/browser/ui/table_view/cells/BUILD.gn index 6eec56a..68085d27 100644 --- a/ios/chrome/browser/ui/table_view/cells/BUILD.gn +++ b/ios/chrome/browser/ui/table_view/cells/BUILD.gn
@@ -4,6 +4,8 @@ source_set("cells") { sources = [ + "table_view_accessory_item.h", + "table_view_accessory_item.mm", "table_view_activity_indicator_header_footer_item.h", "table_view_activity_indicator_header_footer_item.mm", "table_view_cells_constants.h", @@ -42,6 +44,7 @@ source_set("unit_tests") { testonly = true sources = [ + "table_view_accessory_item_unittest.mm", "table_view_header_footer_item_unittest.mm", "table_view_item_unittest.mm", "table_view_text_header_footer_item_unittest.mm",
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h b/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h new file mode 100644 index 0000000..a2a6be3c --- /dev/null +++ b/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h
@@ -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. + +#ifndef IOS_CHROME_BROWSER_UI_TABLE_VIEW_CELLS_TABLE_VIEW_ACCESSORY_ITEM_H_ +#define IOS_CHROME_BROWSER_UI_TABLE_VIEW_CELLS_TABLE_VIEW_ACCESSORY_ITEM_H_ + +#import <UIKit/UIKit.h> + +#import "ios/chrome/browser/ui/table_view/cells/table_view_item.h" + +// TableViewAccessoryItem contains the model data for a TableViewAccessoryCell. +@interface TableViewAccessoryItem : TableViewItem + +// The image in the cell. If nil, won't be added to the view hierarchy. +@property(nonatomic, readwrite, strong) UIImage* image; +// The title label in the cell. +@property(nonatomic, readwrite, copy) NSString* title; + +@end + +// TableViewAccessoryCell contains a favicon, a title, and an accessory. +@interface TableViewAccessoryCell : UITableViewCell + +// The cell favicon imageView. +@property(nonatomic, readonly, strong) UIImageView* imageView; + +// The cell title. +@property(nonatomic, readonly, strong) UILabel* titleLabel; + +@end + +#endif // IOS_CHROME_BROWSER_UI_TABLE_VIEW_CELLS_TABLE_VIEW_ACCESSORY_ITEM_H_
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.mm new file mode 100644 index 0000000..dcc0dc62 --- /dev/null +++ b/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.mm
@@ -0,0 +1,116 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h" + +#include "base/mac/foundation_util.h" +#import "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h" +#import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { +// The width and height of the ImageView. +const float kImageWidth = 28.0f; +} + +@implementation TableViewAccessoryItem + +@synthesize image = _image; +@synthesize title = _title; + +- (instancetype)initWithType:(NSInteger)type { + self = [super initWithType:type]; + if (self) { + self.cellClass = [TableViewAccessoryCell class]; + } + return self; +} + +- (void)configureCell:(UITableViewCell*)tableCell + withStyler:(ChromeTableViewStyler*)styler { + [super configureCell:tableCell withStyler:styler]; + + TableViewAccessoryCell* cell = + base::mac::ObjCCastStrict<TableViewAccessoryCell>(tableCell); + if (self.image) { + cell.imageView.hidden = NO; + cell.imageView.image = self.image; + } else { + // No image. Hide imageView. + cell.imageView.hidden = YES; + } + + cell.titleLabel.text = self.title; + + cell.imageView.backgroundColor = styler.tableViewBackgroundColor; + cell.titleLabel.backgroundColor = styler.tableViewBackgroundColor; +} + +@end + +@implementation TableViewAccessoryCell +@synthesize imageView = _imageView; +@synthesize titleLabel = _titleLabel; + +- (instancetype)initWithStyle:(UITableViewCellStyle)style + reuseIdentifier:(NSString*)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + _imageView = [[UIImageView alloc] init]; + _titleLabel = [[UILabel alloc] init]; + + // The favicon image is smaller than its UIImageView's bounds, so center + // it. + _imageView.contentMode = UIViewContentModeCenter; + + // Set font size using dynamic type. + _titleLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; + _titleLabel.adjustsFontForContentSizeCategory = YES; + + // Disclosure ImageView. + UIImageView* disclosureImageView = [[UIImageView alloc] + initWithImage:[UIImage imageNamed:@"table_view_cell_chevron"]]; + [disclosureImageView + setContentHuggingPriority:UILayoutPriorityDefaultHigh + forAxis:UILayoutConstraintAxisHorizontal]; + + // Horizontal stack view holds favicon, title, and disclosureView. + UIStackView* horizontalStack = + [[UIStackView alloc] initWithArrangedSubviews:@[ + _imageView, _titleLabel, disclosureImageView + ]]; + horizontalStack.axis = UILayoutConstraintAxisHorizontal; + horizontalStack.spacing = kTableViewSubViewHorizontalSpacing; + horizontalStack.distribution = UIStackViewDistributionFill; + horizontalStack.alignment = UIStackViewAlignmentCenter; + horizontalStack.translatesAutoresizingMaskIntoConstraints = NO; + + [self.contentView addSubview:horizontalStack]; + + [NSLayoutConstraint activateConstraints:@[ + // The favicon view is a fixed size. + [_imageView.heightAnchor constraintEqualToConstant:kImageWidth], + [_imageView.widthAnchor constraintEqualToConstant:kImageWidth], + // Horizontal Stack constraints. + [horizontalStack.leadingAnchor + constraintEqualToAnchor:self.contentView.leadingAnchor + constant:kTableViewHorizontalSpacing], + [horizontalStack.trailingAnchor + constraintEqualToAnchor:self.contentView.trailingAnchor + constant:-kTableViewHorizontalSpacing], + [horizontalStack.topAnchor + constraintEqualToAnchor:self.contentView.topAnchor + constant:kTableViewVerticalSpacing], + [horizontalStack.bottomAnchor + constraintEqualToAnchor:self.contentView.bottomAnchor + constant:-kTableViewVerticalSpacing], + ]]; + } + return self; +} + +@end
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item_unittest.mm b/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item_unittest.mm new file mode 100644 index 0000000..4674b13 --- /dev/null +++ b/ios/chrome/browser/ui/table_view/cells/table_view_accessory_item_unittest.mm
@@ -0,0 +1,61 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/ui/table_view/cells/table_view_accessory_item.h" + +#include "base/mac/foundation_util.h" +#import "ios/chrome/browser/ui/table_view/chrome_table_view_styler.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/gtest_mac.h" +#include "testing/platform_test.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { +using TableViewAccessoryItemTest = PlatformTest; +} + +// Tests that the UILabel is set properly after a call to +// |configureCell:| and the image is visible. +TEST_F(TableViewAccessoryItemTest, ItemProperties) { + NSString* text = @"Cell text"; + + TableViewAccessoryItem* item = + [[TableViewAccessoryItem alloc] initWithType:0]; + item.title = text; + item.image = [[UIImage alloc] init]; + + id cell = [[[item cellClass] alloc] init]; + ASSERT_TRUE([cell isMemberOfClass:[TableViewAccessoryCell class]]); + + TableViewAccessoryCell* accessoryCell = + base::mac::ObjCCastStrict<TableViewAccessoryCell>(cell); + EXPECT_FALSE(accessoryCell.textLabel.text); + EXPECT_FALSE(accessoryCell.imageView.image); + + [item configureCell:cell withStyler:[[ChromeTableViewStyler alloc] init]]; + EXPECT_NSEQ(text, accessoryCell.titleLabel.text); + EXPECT_FALSE(accessoryCell.imageView.isHidden); +} + +// Tests that the imageView is not visible if no image is set. +TEST_F(TableViewAccessoryItemTest, ItemImageViewHidden) { + NSString* text = @"Cell text"; + + TableViewAccessoryItem* item = + [[TableViewAccessoryItem alloc] initWithType:0]; + item.title = text; + + id cell = [[[item cellClass] alloc] init]; + ASSERT_TRUE([cell isMemberOfClass:[TableViewAccessoryCell class]]); + + TableViewAccessoryCell* accessoryCell = + base::mac::ObjCCastStrict<TableViewAccessoryCell>(cell); + EXPECT_FALSE(item.image); + [item configureCell:cell withStyler:[[ChromeTableViewStyler alloc] init]]; + EXPECT_FALSE(item.image); + EXPECT_TRUE(accessoryCell.imageView.isHidden); +}
diff --git a/ios/testing/embedded_test_server_handlers.cc b/ios/testing/embedded_test_server_handlers.cc index 9d799bb..06170c98 100644 --- a/ios/testing/embedded_test_server_handlers.cc +++ b/ios/testing/embedded_test_server_handlers.cc
@@ -12,24 +12,31 @@ #include "net/test/embedded_test_server/http_response.h" #include "url/gurl.h" +namespace { +// Extracts and escapes url spec from the query. +std::string ExtractUlrSpecFromQuery( + const net::test_server::HttpRequest& request) { + GURL request_url = request.GetURL(); + std::string spec = net::UnescapeBinaryURLComponent(request_url.query()); + + // Escape the URL spec. + GURL url(spec); + return url.is_valid() ? net::EscapeForHTML(url.spec()) : spec; +} +} // namespace + namespace testing { +const char kTestFormPage[] = "ios.testing.HandleForm"; +const char kTestFormFieldValue[] = "test-value"; + std::unique_ptr<net::test_server::HttpResponse> HandleIFrame( const net::test_server::HttpRequest& request) { - GURL request_url = request.GetURL(); - std::string iframe_src = net::UnescapeBinaryURLComponent(request_url.query()); - - // Escape iframe src. - GURL iframe_url(iframe_src); - if (iframe_url.is_valid()) { - iframe_src = net::EscapeForHTML(iframe_url.spec()); - } - auto http_response = std::make_unique<net::test_server::BasicHttpResponse>(); http_response->set_content_type("text/html"); http_response->set_content(base::StringPrintf( "<html><head></head><body><iframe src='%s'></iframe></body></html>", - iframe_src.c_str())); + ExtractUlrSpecFromQuery(request).c_str())); return std::move(http_response); } @@ -46,4 +53,19 @@ return std::move(response); } +std::unique_ptr<net::test_server::HttpResponse> HandleForm( + const net::test_server::HttpRequest& request) { + std::string form_action = ExtractUlrSpecFromQuery(request); + auto response = std::make_unique<net::test_server::BasicHttpResponse>(); + response->set_content_type("text/html"); + response->set_content(base::StringPrintf( + "<form method='post' id='form' action='%s'>" + " <input type='text' name='test-name' value='%s'>" + "</form>" + "%s", + form_action.c_str(), kTestFormFieldValue, kTestFormPage)); + + return std::move(response); +} + } // namespace testing
diff --git a/ios/testing/embedded_test_server_handlers.h b/ios/testing/embedded_test_server_handlers.h index 8c23ca25..1047cb3b 100644 --- a/ios/testing/embedded_test_server_handlers.h +++ b/ios/testing/embedded_test_server_handlers.h
@@ -16,6 +16,11 @@ namespace testing { +// Text returned from HandleForm handler. +extern const char kTestFormPage[]; +// Field value for form returned from HandleForm handler. +extern const char kTestFormFieldValue[]; + // Returns a page with iframe which uses URL from the query as src. std::unique_ptr<net::test_server::HttpResponse> HandleIFrame( const net::test_server::HttpRequest& request); @@ -27,6 +32,11 @@ const bool& responds_with_content, const net::test_server::HttpRequest& request); +// Returns a page with html form and kTestFormPage text. The form contains one +// text field with kTestFormFieldValue value. +std::unique_ptr<net::test_server::HttpResponse> HandleForm( + const net::test_server::HttpRequest& request); + } // namespace testing #endif // IOS_TESTING_EMBEDDED_TEST_SERVER_HANDLERS_H_
diff --git a/ios/web/features.mm b/ios/web/features.mm index 08891901..6f87c26a 100644 --- a/ios/web/features.mm +++ b/ios/web/features.mm
@@ -22,5 +22,8 @@ const base::Feature kWKHTTPSystemCookieStore{"WKHTTPSystemCookieStore", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kCrashOnUnexpectedURLChange{ + "CrashOnUnexpectedURLChange", base::FEATURE_ENABLED_BY_DEFAULT}; + } // namespace features } // namespace web
diff --git a/ios/web/public/app/mojo/web_browser_manifest.json b/ios/web/public/app/mojo/web_browser_manifest.json index 7ee9a78..2662373 100644 --- a/ios/web/public/app/mojo/web_browser_manifest.json +++ b/ios/web/public/app/mojo/web_browser_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/ios/web/public/app/mojo/web_packaged_services_manifest.json b/ios/web/public/app/mojo/web_packaged_services_manifest.json index 1f0f496a..eaf3be9 100644 --- a/ios/web/public/app/mojo/web_packaged_services_manifest.json +++ b/ios/web/public/app/mojo/web_packaged_services_manifest.json
@@ -12,7 +12,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/ios/web/public/features.h b/ios/web/public/features.h index e3606fa..ad30200 100644 --- a/ios/web/public/features.h +++ b/ios/web/public/features.h
@@ -25,6 +25,10 @@ // Used to enable using WKHTTPSystemCookieStore in main context URL requests. extern const base::Feature kWKHTTPSystemCookieStore; +// Used to crash the browser if unexpected URL change is detected. +// https://crbug.com/841105. +extern const base::Feature kCrashOnUnexpectedURLChange; + } // namespace features } // namespace web
diff --git a/ios/web/web_state/navigation_and_load_callbacks_inttest.mm b/ios/web/web_state/navigation_and_load_callbacks_inttest.mm index f0de8d4..6453b23f 100644 --- a/ios/web/web_state/navigation_and_load_callbacks_inttest.mm +++ b/ios/web/web_state/navigation_and_load_callbacks_inttest.mm
@@ -7,6 +7,7 @@ #include "base/scoped_observer.h" #include "base/strings/stringprintf.h" +#include "ios/testing/embedded_test_server_handlers.h" #import "ios/testing/wait_util.h" #import "ios/web/public/navigation_item.h" #import "ios/web/public/navigation_manager.h" @@ -28,6 +29,7 @@ #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/test/embedded_test_server/request_handler_util.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #import "testing/gtest_mac.h" @@ -43,7 +45,6 @@ namespace { -const char kTestFormValue[] = "inttestvalue"; const char kTestPageText[] = "landing!"; const char kExpectedMimeType[] = "text/html"; @@ -473,24 +474,6 @@ MOCK_METHOD2(ShouldAllowResponse, bool(NSURLResponse*, bool for_main_frame)); }; -// Responds with a page that contains an html form. -std::unique_ptr<net::test_server::HttpResponse> HandleFormPage( - const net::test_server::HttpRequest& request) { - if (request.GetURL().path() == "/form") { - auto result = std::make_unique<net::test_server::BasicHttpResponse>(); - result->set_content_type("text/html"); - result->set_content(base::StringPrintf( - "<form method='post' id='form' action='echo'>" - " <input type=''text' name='inttestname' value='%s'>" - "</form>" - "%s", - kTestFormValue, kTestPageText)); - - return std::move(result); - } - return nullptr; -} - // Responds with a download. std::unique_ptr<net::test_server::HttpResponse> HandleDownloadPage( const net::test_server::HttpRequest& request) { @@ -532,7 +515,9 @@ web_state_impl->GetWebController().nativeProvider = provider_; test_server_ = std::make_unique<net::test_server::EmbeddedTestServer>(); - test_server_->RegisterDefaultHandler(base::BindRepeating(&HandleFormPage)); + test_server_->RegisterRequestHandler( + base::BindRepeating(&net::test_server::HandlePrefixedRequest, "/form", + base::BindRepeating(&testing::HandleForm))); test_server_->RegisterDefaultHandler( base::BindRepeating(&HandleDownloadPage)); RegisterDefaultHandlers(test_server_.get()); @@ -986,7 +971,7 @@ // Tests successful navigation to a new page with post HTTP method. TEST_F(NavigationAndLoadCallbacksTest, RendererInitiatedPostNavigation) { - const GURL url = test_server_->GetURL("/form"); + const GURL url = test_server_->GetURL("/form?echo"); const GURL action = test_server_->GetURL("/echo"); // Perform new page navigation. @@ -1001,7 +986,8 @@ EXPECT_CALL(observer_, PageLoaded(web_state(), PageLoadCompletionStatus::SUCCESS)); ASSERT_TRUE(LoadUrl(url)); - ASSERT_TRUE(WaitForWebViewContainingText(web_state(), kTestPageText)); + ASSERT_TRUE( + WaitForWebViewContainingText(web_state(), testing::kTestFormPage)); // Submit the form using JavaScript. NavigationContext* context = nullptr; @@ -1025,12 +1011,13 @@ EXPECT_CALL(observer_, PageLoaded(web_state(), PageLoadCompletionStatus::SUCCESS)); ExecuteJavaScript(@"document.getElementById('form').submit();"); - ASSERT_TRUE(WaitForWebViewContainingText(web_state(), kTestFormValue)); + ASSERT_TRUE( + WaitForWebViewContainingText(web_state(), testing::kTestFormFieldValue)); } // Tests successful reload of a page returned for post request. TEST_F(NavigationAndLoadCallbacksTest, ReloadPostNavigation) { - const GURL url = test_server_->GetURL("/form"); + const GURL url = test_server_->GetURL("/form?echo"); const GURL action = test_server_->GetURL("/echo"); // Perform new page navigation. @@ -1045,7 +1032,8 @@ EXPECT_CALL(observer_, PageLoaded(web_state(), PageLoadCompletionStatus::SUCCESS)); ASSERT_TRUE(LoadUrl(url)); - ASSERT_TRUE(WaitForWebViewContainingText(web_state(), kTestPageText)); + ASSERT_TRUE( + WaitForWebViewContainingText(web_state(), testing::kTestFormPage)); // Submit the form using JavaScript. EXPECT_CALL(*decider_, ShouldAllowRequest(_, _, /*from_main_frame=*/true)) @@ -1062,7 +1050,8 @@ EXPECT_CALL(observer_, PageLoaded(web_state(), PageLoadCompletionStatus::SUCCESS)); ExecuteJavaScript(@"window.document.getElementById('form').submit();"); - ASSERT_TRUE(WaitForWebViewContainingText(web_state(), kTestFormValue)); + ASSERT_TRUE( + WaitForWebViewContainingText(web_state(), testing::kTestFormFieldValue)); // Reload the page. NavigationContext* context = nullptr; @@ -1108,7 +1097,7 @@ // Tests going forward to a page rendered from post response. TEST_F(NavigationAndLoadCallbacksTest, ForwardPostNavigation) { - const GURL url = test_server_->GetURL("/form"); + const GURL url = test_server_->GetURL("/form?echo"); const GURL action = test_server_->GetURL("/echo"); // Perform new page navigation. @@ -1123,7 +1112,8 @@ EXPECT_CALL(observer_, PageLoaded(web_state(), PageLoadCompletionStatus::SUCCESS)); ASSERT_TRUE(LoadUrl(url)); - ASSERT_TRUE(WaitForWebViewContainingText(web_state(), kTestPageText)); + ASSERT_TRUE( + WaitForWebViewContainingText(web_state(), testing::kTestFormPage)); // Submit the form using JavaScript. EXPECT_CALL(*decider_, ShouldAllowRequest(_, _, /*from_main_frame=*/true)) @@ -1140,7 +1130,8 @@ EXPECT_CALL(observer_, PageLoaded(web_state(), PageLoadCompletionStatus::SUCCESS)); ExecuteJavaScript(@"window.document.getElementById('form').submit();"); - ASSERT_TRUE(WaitForWebViewContainingText(web_state(), kTestFormValue)); + ASSERT_TRUE( + WaitForWebViewContainingText(web_state(), testing::kTestFormFieldValue)); // Go Back. if (web::GetWebClient()->IsSlimNavigationManagerEnabled()) {
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm index 700df1f..a55b797 100644 --- a/ios/web/web_state/ui/crw_web_controller.mm +++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -5203,6 +5203,17 @@ - (void)URLDidChangeWithoutDocumentChange:(const GURL&)newURL { DCHECK(newURL == net::GURLWithNSURL([_webView URL])); + + if (base::FeatureList::IsEnabled( + web::features::kCrashOnUnexpectedURLChange)) { + if (_documentURL.GetOrigin() != newURL.GetOrigin()) { + if (newURL.username().find(_documentURL.host()) != std::string::npos || + newURL.password().find(_documentURL.host()) != std::string::npos) { + CHECK(false); + } + } + } + DCHECK_EQ(_documentURL.host(), newURL.host()); DCHECK(_documentURL != newURL);
diff --git a/ios/web/webui/mojo_facade_unittest.mm b/ios/web/webui/mojo_facade_unittest.mm index 9f3f8d6..2deadc8 100644 --- a/ios/web/webui/mojo_facade_unittest.mm +++ b/ios/web/webui/mojo_facade_unittest.mm
@@ -110,7 +110,7 @@ NSDictionary* connect = @{ @"name" : @"Mojo.bindInterface", @"args" : @{ - @"interfaceName" : @"::TestUIHandlerMojo", + @"interfaceName" : @".TestUIHandlerMojo", @"requestHandle" : @(handle0), }, };
diff --git a/ios/web_view/BUILD.gn b/ios/web_view/BUILD.gn index ba0de9d..470b293 100644 --- a/ios/web_view/BUILD.gn +++ b/ios/web_view/BUILD.gn
@@ -317,6 +317,7 @@ testonly = true sources = [ "internal/autofill/cwv_autofill_controller_unittest.mm", + "internal/autofill/cwv_autofill_profile_unittest.mm", "internal/autofill/cwv_autofill_suggestion_unittest.mm", "internal/cwv_html_element_unittest.mm", "internal/cwv_preferences_unittest.mm",
diff --git a/ios/web_view/internal/autofill/cwv_autofill_profile_unittest.mm b/ios/web_view/internal/autofill/cwv_autofill_profile_unittest.mm new file mode 100644 index 0000000..b4cd85e --- /dev/null +++ b/ios/web_view/internal/autofill/cwv_autofill_profile_unittest.mm
@@ -0,0 +1,127 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/web_view/internal/autofill/cwv_autofill_profile_internal.h" + +#import <Foundation/Foundation.h> +#include <string> + +#include "base/strings/sys_string_conversions.h" +#include "components/autofill/core/browser/autofill_profile.h" +#include "components/autofill/core/browser/autofill_type.h" +#include "testing/gtest/include/gtest/gtest.h" +#import "testing/gtest_mac.h" +#include "testing/platform_test.h" +#include "ui/base/resource/resource_bundle.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace ios_web_view { + +namespace { +NSString* const kLocale = @"en"; +NSString* const kGuid = @"12345"; +NSString* const kOrigin = @"www.chromium.org"; +NSString* const kName = @"Homer Simpson"; +NSString* const kCompany = @"Chromium"; +NSString* const kAddress1 = @"123 Main Street"; +NSString* const kAddress2 = @"Apt 1337"; +NSString* const kCity = @"Springfield"; +NSString* const kState = @"Illinois"; +NSString* const kZipcode = @"55123"; +NSString* const kCountry = @"United States"; +NSString* const kPhone = @"3103106000"; +NSString* const kEmail = @"hjs@aol.com"; +} + +class CWVAutofillProfileTest : public PlatformTest { + protected: + CWVAutofillProfileTest() { + ui::ResourceBundle::InitSharedInstanceWithLocale( + base::SysNSStringToUTF8(kLocale), /*delegate=*/nullptr, + ui::ResourceBundle::DO_NOT_LOAD_COMMON_RESOURCES); + } + + ~CWVAutofillProfileTest() override { + ui::ResourceBundle::CleanupSharedInstance(); + } +}; + +// Tests CWVAutofillProfile initialization. +TEST_F(CWVAutofillProfileTest, Initialization) { + autofill::AutofillProfile profile(base::SysNSStringToUTF8(kGuid), + base::SysNSStringToUTF8(kOrigin)); + profile.SetInfo(autofill::NAME_FULL, base::SysNSStringToUTF16(kName), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::COMPANY_NAME, base::SysNSStringToUTF16(kCompany), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::ADDRESS_HOME_LINE1, + base::SysNSStringToUTF16(kAddress1), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::ADDRESS_HOME_LINE2, + base::SysNSStringToUTF16(kAddress2), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::ADDRESS_HOME_CITY, base::SysNSStringToUTF16(kCity), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::ADDRESS_HOME_STATE, + base::SysNSStringToUTF16(kState), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::ADDRESS_HOME_ZIP, + base::SysNSStringToUTF16(kZipcode), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::ADDRESS_HOME_COUNTRY, + base::SysNSStringToUTF16(kCountry), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::PHONE_HOME_WHOLE_NUMBER, + base::SysNSStringToUTF16(kPhone), + base::SysNSStringToUTF8(kLocale)); + profile.SetInfo(autofill::EMAIL_ADDRESS, base::SysNSStringToUTF16(kEmail), + base::SysNSStringToUTF8(kLocale)); + CWVAutofillProfile* cwv_profile = + [[CWVAutofillProfile alloc] initWithProfile:profile]; + + EXPECT_NSEQ(kName, cwv_profile.name); + EXPECT_NSEQ(kCompany, cwv_profile.company); + EXPECT_NSEQ(kAddress1, cwv_profile.address1); + EXPECT_NSEQ(kAddress2, cwv_profile.address2); + EXPECT_NSEQ(kCity, cwv_profile.city); + EXPECT_NSEQ(kState, cwv_profile.state); + EXPECT_NSEQ(kZipcode, cwv_profile.zipcode); + EXPECT_NSEQ(kCountry, cwv_profile.country); + EXPECT_NSEQ(kPhone, cwv_profile.phone); + EXPECT_NSEQ(kEmail, cwv_profile.email); +} + +// Tests CWVAutofillProfile updates properties. +TEST_F(CWVAutofillProfileTest, ModifyProperties) { + autofill::AutofillProfile profile(base::SysNSStringToUTF8(kGuid), + base::SysNSStringToUTF8(kOrigin)); + CWVAutofillProfile* cwv_profile = + [[CWVAutofillProfile alloc] initWithProfile:profile]; + cwv_profile.name = kName; + cwv_profile.company = kCompany; + cwv_profile.address1 = kAddress1; + cwv_profile.address2 = kAddress2; + cwv_profile.city = kCity; + cwv_profile.state = kState; + cwv_profile.zipcode = kZipcode; + cwv_profile.country = kCountry; + cwv_profile.phone = kPhone; + cwv_profile.email = kEmail; + + EXPECT_NSEQ(kName, cwv_profile.name); + EXPECT_NSEQ(kCompany, cwv_profile.company); + EXPECT_NSEQ(kAddress1, cwv_profile.address1); + EXPECT_NSEQ(kAddress2, cwv_profile.address2); + EXPECT_NSEQ(kCity, cwv_profile.city); + EXPECT_NSEQ(kState, cwv_profile.state); + EXPECT_NSEQ(kZipcode, cwv_profile.zipcode); + EXPECT_NSEQ(kCountry, cwv_profile.country); + EXPECT_NSEQ(kPhone, cwv_profile.phone); + EXPECT_NSEQ(kEmail, cwv_profile.email); +} + +} // namespace ios_web_view
diff --git a/ios/web_view/internal/autofill/cwv_credit_card.mm b/ios/web_view/internal/autofill/cwv_credit_card.mm index 38a67d2..75c30f6 100644 --- a/ios/web_view/internal/autofill/cwv_credit_card.mm +++ b/ios/web_view/internal/autofill/cwv_credit_card.mm
@@ -7,6 +7,7 @@ #include "base/strings/sys_string_conversions.h" #include "components/autofill/core/browser/credit_card.h" #include "ios/web_view/internal/app/application_context.h" +#include "ui/base/resource/resource_bundle.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." @@ -55,6 +56,14 @@ return [self valueForType:autofill::CREDIT_CARD_TYPE]; } +- (UIImage*)networkIcon { + int resourceID = + autofill::CreditCard::IconResourceId(_internalCard.network()); + return ui::ResourceBundle::GetSharedInstance() + .GetNativeImageNamed(resourceID) + .ToUIImage(); +} + - (NSString*)expirationMonth { return [self valueForType:autofill::CREDIT_CARD_EXP_MONTH]; }
diff --git a/ios/web_view/internal/web_view_web_main_parts.h b/ios/web_view/internal/web_view_web_main_parts.h index 31bb1bb4..658f428e 100644 --- a/ios/web_view/internal/web_view_web_main_parts.h +++ b/ios/web_view/internal/web_view_web_main_parts.h
@@ -26,6 +26,11 @@ void PostMainMessageLoopRun() override; void PostDestroyThreads() override; + // Loads resources that are not scaled. f.e. javascript files. + void LoadNonScalableResources(); + // Loads resources that can be scaled. f.e. png images for @1x, @2x, and @3x. + void LoadScalableResources(); + DISALLOW_COPY_AND_ASSIGN(WebViewWebMainParts); };
diff --git a/ios/web_view/internal/web_view_web_main_parts.mm b/ios/web_view/internal/web_view_web_main_parts.mm index 89116f3..ea40e74 100644 --- a/ios/web_view/internal/web_view_web_main_parts.mm +++ b/ios/web_view/internal/web_view_web_main_parts.mm
@@ -28,12 +28,8 @@ l10n_util::OverrideLocaleWithCocoaLocale(); ui::ResourceBundle::InitSharedInstanceWithLocale( std::string(), nullptr, ui::ResourceBundle::DO_NOT_LOAD_COMMON_RESOURCES); - - base::FilePath pak_file; - base::PathService::Get(base::DIR_MODULE, &pak_file); - pak_file = pak_file.Append(FILE_PATH_LITERAL("web_view_resources.pak")); - ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath( - pak_file, ui::SCALE_FACTOR_NONE); + LoadNonScalableResources(); + LoadScalableResources(); } void WebViewWebMainParts::PreCreateThreads() { @@ -63,4 +59,39 @@ ApplicationContext::GetInstance()->PostDestroyThreads(); } +void WebViewWebMainParts::LoadNonScalableResources() { + base::FilePath pak_file; + base::PathService::Get(base::DIR_MODULE, &pak_file); + pak_file = pak_file.Append(FILE_PATH_LITERAL("web_view_resources.pak")); + ui::ResourceBundle& resource_bundle = ui::ResourceBundle::GetSharedInstance(); + resource_bundle.AddDataPackFromPath(pak_file, ui::SCALE_FACTOR_NONE); +} + +void WebViewWebMainParts::LoadScalableResources() { + ui::ResourceBundle& resource_bundle = ui::ResourceBundle::GetSharedInstance(); + if (ui::ResourceBundle::IsScaleFactorSupported(ui::SCALE_FACTOR_100P)) { + base::FilePath pak_file_100; + base::PathService::Get(base::DIR_MODULE, &pak_file_100); + pak_file_100 = + pak_file_100.Append(FILE_PATH_LITERAL("web_view_100_percent.pak")); + resource_bundle.AddDataPackFromPath(pak_file_100, ui::SCALE_FACTOR_100P); + } + + if (ui::ResourceBundle::IsScaleFactorSupported(ui::SCALE_FACTOR_200P)) { + base::FilePath pak_file_200; + base::PathService::Get(base::DIR_MODULE, &pak_file_200); + pak_file_200 = + pak_file_200.Append(FILE_PATH_LITERAL("web_view_200_percent.pak")); + resource_bundle.AddDataPackFromPath(pak_file_200, ui::SCALE_FACTOR_200P); + } + + if (ui::ResourceBundle::IsScaleFactorSupported(ui::SCALE_FACTOR_300P)) { + base::FilePath pak_file_300; + base::PathService::Get(base::DIR_MODULE, &pak_file_300); + pak_file_300 = + pak_file_300.Append(FILE_PATH_LITERAL("web_view_300_percent.pak")); + resource_bundle.AddDataPackFromPath(pak_file_300, ui::SCALE_FACTOR_300P); + } +} + } // namespace ios_web_view
diff --git a/ios/web_view/public/cwv_credit_card.h b/ios/web_view/public/cwv_credit_card.h index ed8509f..e47040999 100644 --- a/ios/web_view/public/cwv_credit_card.h +++ b/ios/web_view/public/cwv_credit_card.h
@@ -5,7 +5,7 @@ #ifndef IOS_WEB_VIEW_PUBLIC_CWV_CREDIT_CARD_H_ #define IOS_WEB_VIEW_PUBLIC_CWV_CREDIT_CARD_H_ -#import <Foundation/Foundation.h> +#import <UIKit/UIKit.h> #import "cwv_export.h" @@ -22,6 +22,8 @@ // The network this card belongs to. e.g. "Visa", "Amex", "MasterCard". // Inferred from |cardNumber|. @property(nonatomic, copy, nullable, readonly) NSString* networkName; +// The image that represents the |networkName|. +@property(nonatomic, readonly) UIImage* networkIcon; // The month this card expires on. e.g. "08". @property(nonatomic, copy, nullable) NSString* expirationMonth; // The year this card expires on. e.g. "2020".
diff --git a/ipc/ipc_mojo_bootstrap.cc b/ipc/ipc_mojo_bootstrap.cc index 0e9457e..27ad4adf 100644 --- a/ipc/ipc_mojo_bootstrap.cc +++ b/ipc/ipc_mojo_bootstrap.cc
@@ -28,6 +28,7 @@ #include "base/trace_event/memory_allocator_dump.h" #include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/memory_dump_provider.h" +#include "ipc/ipc_channel.h" #include "mojo/public/cpp/bindings/associated_group.h" #include "mojo/public/cpp/bindings/associated_group_controller.h" #include "mojo/public/cpp/bindings/connector.h" @@ -649,6 +650,10 @@ } return connector_->Accept(message); } else { + // Do a message size check here so we don't lose valuable stack + // information to the task scheduler. + CHECK_LE(message->data_num_bytes(), Channel::kMaximumMessageSize); + // We always post tasks to the master endpoint thread when called from // other threads in order to simulate IPC::ChannelProxy::Send behavior. task_runner_->PostTask(
diff --git a/mash/catalog_viewer/manifest.json b/mash/catalog_viewer/manifest.json index 10f55798..d97d70b 100644 --- a/mash/catalog_viewer/manifest.json +++ b/mash/catalog_viewer/manifest.json
@@ -3,7 +3,7 @@ "display_name": "Catalog Viewer", "interface_provider_specs": { "service_manager:connector": { - "provides": { "mash:launchable": [ "mash::mojom::Launchable" ] }, + "provides": { "mash:launchable": [ "mash.mojom.Launchable" ] }, "requires": { "*": [ "app" ], "catalog": [ "catalog:catalog" ]
diff --git a/mash/example/views_examples/manifest.json b/mash/example/views_examples/manifest.json index 16175e73..f57c446 100644 --- a/mash/example/views_examples/manifest.json +++ b/mash/example/views_examples/manifest.json
@@ -3,7 +3,7 @@ "display_name": "Views Examples", "interface_provider_specs": { "service_manager:connector": { - "provides": { "mash:launchable": [ "mash::mojom::Launchable" ] }, + "provides": { "mash:launchable": [ "mash.mojom.Launchable" ] }, "requires": { "*": [ "app" ] } } }
diff --git a/mash/example/window_type_launcher/manifest.json b/mash/example/window_type_launcher/manifest.json index 2b47401..fdc3694 100644 --- a/mash/example/window_type_launcher/manifest.json +++ b/mash/example/window_type_launcher/manifest.json
@@ -3,7 +3,7 @@ "display_name": "Window Type Launcher", "interface_provider_specs": { "service_manager:connector": { - "provides": { "mash:launchable": [ "mash::mojom::Launchable" ] }, + "provides": { "mash:launchable": [ "mash.mojom.Launchable" ] }, "requires": { "*": [ "app" ] }
diff --git a/mash/task_viewer/manifest.json b/mash/task_viewer/manifest.json index 5ed94fd7..992b549c 100644 --- a/mash/task_viewer/manifest.json +++ b/mash/task_viewer/manifest.json
@@ -3,7 +3,7 @@ "display_name": "Task Viewer", "interface_provider_specs": { "service_manager:connector": { - "provides": { "mash:launchable": [ "mash::mojom::Launchable" ] }, + "provides": { "mash:launchable": [ "mash.mojom.Launchable" ] }, "requires": { "*": [ "app" ], "catalog": [ "catalog:catalog" ],
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index 2c6b11d..27f51643 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -260,6 +260,11 @@ #endif }; +// Enable The D3D11 Video decoder. Must also enable MojoVideoDecoder for +// this to have any effect. +const base::Feature kD3D11VideoDecoder{"D3D11VideoDecoder", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Manage and report MSE buffered ranges by PTS intervals, not DTS intervals. const base::Feature kMseBufferByPts{"MseBufferByPts", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/media/base/media_switches.h b/media/base/media_switches.h index 12515dbb..7fbec13 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -106,6 +106,7 @@ MEDIA_EXPORT extern const base::Feature kAv1Decoder; MEDIA_EXPORT extern const base::Feature kBackgroundVideoPauseOptimization; MEDIA_EXPORT extern const base::Feature kBackgroundVideoTrackOptimization; +MEDIA_EXPORT extern const base::Feature kD3D11VideoDecoder; MEDIA_EXPORT extern const base::Feature kExternalClearKeyForTesting; MEDIA_EXPORT extern const base::Feature kLowDelayVideoRenderingOnLiveStream; MEDIA_EXPORT extern const base::Feature kMediaCastOverlayButton;
diff --git a/media/blink/BUILD.gn b/media/blink/BUILD.gn index 35248d6..ce6a539 100644 --- a/media/blink/BUILD.gn +++ b/media/blink/BUILD.gn
@@ -168,5 +168,8 @@ } else { deps += [ "//v8:v8_external_startup_data_assets" ] } + + # KeySystemConfigSelectorTest fails on Android (crbug.com/608541). + sources -= [ "key_system_config_selector_unittest.cc" ] } }
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc index 01b28a2b..6d16e6f 100644 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc
@@ -33,6 +33,7 @@ #include "media/audio/null_audio_sink.h" #include "media/base/bind_to_current_loop.h" #include "media/base/cdm_context.h" +#include "media/base/encryption_scheme.h" #include "media/base/limits.h" #include "media/base/media_content_type.h" #include "media/base/media_log.h" @@ -168,6 +169,21 @@ return blink::WebLocalizedString::kMediaRemotingStopNoText; } +// These values are persisted to UMA. Entries should not be renumbered and +// numeric values should never be reused. +// TODO(crbug.com/825041): This should use EncryptionMode when kUnencrypted +// removed. +enum class EncryptionSchemeUMA { kCenc = 0, kCbcs = 1, kCount }; + +EncryptionSchemeUMA DetermineEncryptionSchemeUMAValue( + const EncryptionScheme& encryption_scheme) { + if (encryption_scheme.mode() == EncryptionScheme::CIPHER_MODE_AES_CBC) + return EncryptionSchemeUMA::kCbcs; + + DCHECK_EQ(encryption_scheme.mode(), EncryptionScheme::CIPHER_MODE_AES_CTR); + return EncryptionSchemeUMA::kCenc; +} + } // namespace class BufferedDataSourceHostImpl; @@ -1595,7 +1611,15 @@ metadata.video_decoder_config.video_rotation(), VIDEO_ROTATION_MAX + 1); + if (HasAudio()) { + RecordEncryptionScheme("Audio", + metadata.audio_decoder_config.encryption_scheme()); + } + if (HasVideo()) { + RecordEncryptionScheme("Video", + metadata.video_decoder_config.encryption_scheme()); + if (overlay_enabled_) { // SurfaceView doesn't support rotated video, so transition back if // the video is now rotated. If |always_enable_overlays_|, we keep the @@ -3187,4 +3211,19 @@ base::UmaHistogramMediumTimes(key + ".EME", elapsed); } +void WebMediaPlayerImpl::RecordEncryptionScheme( + const std::string& stream_name, + const EncryptionScheme& encryption_scheme) { + DCHECK(stream_name == "Audio" || stream_name == "Video"); + + // If the stream is not encrypted, don't record it. + if (encryption_scheme.mode() == EncryptionScheme::CIPHER_MODE_UNENCRYPTED) + return; + + base::UmaHistogramEnumeration( + "Media.EME.EncryptionScheme.Initial." + stream_name, + DetermineEncryptionSchemeUMAValue(encryption_scheme), + EncryptionSchemeUMA::kCount); +} + } // namespace media
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h index 7c1ff98..8b63d4f4 100644 --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h
@@ -77,6 +77,7 @@ namespace media { class CdmContextRef; class ChunkDemuxer; +class EncryptionScheme; class VideoDecodeStatsReporter; class MediaLog; class UrlIndex; @@ -574,6 +575,11 @@ // of |chunk_demuxer_|, while the EME one is only recorded if |is_encrypted_|. void RecordTimingUMA(const std::string& key, base::TimeDelta elapsed); + // Records the encryption scheme used by the stream |stream_name|. This is + // only recorded when metadata is available. + void RecordEncryptionScheme(const std::string& stream_name, + const EncryptionScheme& encryption_scheme); + blink::WebLocalFrame* const frame_; // The playback state last reported to |delegate_|, to avoid setting duplicate
diff --git a/media/capture/video/mock_gpu_memory_buffer_manager.cc b/media/capture/video/mock_gpu_memory_buffer_manager.cc index e69e1150..6962978 100644 --- a/media/capture/video/mock_gpu_memory_buffer_manager.cc +++ b/media/capture/video/mock_gpu_memory_buffer_manager.cc
@@ -43,11 +43,13 @@ uv_plane_size)); // For faking a valid JPEG blob buffer. - Camera3JpegBlob* header = reinterpret_cast<Camera3JpegBlob*>( - reinterpret_cast<uintptr_t>(data_.data()) + size_.width() - - sizeof(Camera3JpegBlob)); - header->jpeg_blob_id = kCamera3JpegBlobId; - header->jpeg_size = size_.width(); + if (base::checked_cast<size_t>(size_.width()) >= sizeof(Camera3JpegBlob)) { + Camera3JpegBlob* header = reinterpret_cast<Camera3JpegBlob*>( + reinterpret_cast<uintptr_t>(data_.data()) + size_.width() - + sizeof(Camera3JpegBlob)); + header->jpeg_blob_id = kCamera3JpegBlobId; + header->jpeg_size = size_.width(); + } #endif }
diff --git a/media/capture/video/video_capture_device_client.cc b/media/capture/video/video_capture_device_client.cc index e301e41..1a1bc93 100644 --- a/media/capture/video/video_capture_device_client.cc +++ b/media/capture/video/video_capture_device_client.cc
@@ -333,6 +333,10 @@ auto output_buffer = ReserveOutputBuffer(dimensions, PIXEL_FORMAT_I420, frame_feedback_id); + // Failed to reserve I420 output buffer, so drop the frame. + if (!output_buffer.is_valid()) + return; + uint8_t* y_plane_data; uint8_t* u_plane_data; uint8_t* v_plane_data;
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn index d9b6a76..e4481417 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn
@@ -140,6 +140,7 @@ "CoreFoundation.framework", "CoreMedia.framework", "Foundation.framework", + "IOSurface.framework", "QuartzCore.framework", "VideoToolbox.framework", ]
diff --git a/media/gpu/android/android_video_decode_accelerator.cc b/media/gpu/android/android_video_decode_accelerator.cc index 21b3e2a..20ab600a 100644 --- a/media/gpu/android/android_video_decode_accelerator.cc +++ b/media/gpu/android/android_video_decode_accelerator.cc
@@ -42,6 +42,7 @@ #include "media/gpu/android/device_info.h" #include "media/gpu/android/promotion_hint_aggregator_impl.h" #include "media/gpu/shared_memory_region.h" +#include "media/media_buildflags.h" #include "media/mojo/buildflags.h" #include "media/video/picture.h" #include "services/service_manager/public/cpp/service_context_ref.h" @@ -73,6 +74,7 @@ // support others. Advertise support for all H264 profiles and let the // MediaCodec fail when decoding if it's not actually supported. It's assumed // that consumers won't have software fallback for H264 on Android anyway. +#if BUILDFLAG(USE_PROPRIETARY_CODECS) constexpr VideoCodecProfile kSupportedH264Profiles[] = { H264PROFILE_BASELINE, H264PROFILE_MAIN, @@ -90,6 +92,7 @@ constexpr VideoCodecProfile kSupportedHevcProfiles[] = {HEVCPROFILE_MAIN, HEVCPROFILE_MAIN10}; #endif +#endif // Because MediaCodec is thread-hostile (must be poked on a single thread) and // has no callback mechanism (b/11990118), we must drive it by polling for @@ -304,23 +307,29 @@ codec_config_->initial_expected_coded_size = config.initial_expected_coded_size; - if (codec_config_->codec != kCodecVP8 && codec_config_->codec != kCodecVP9 && + switch (codec_config_->codec) { + case kCodecVP8: + case kCodecVP9: + break; + +#if BUILDFLAG(USE_PROPRIETARY_CODECS) + case kCodecH264: + codec_config_->csd0 = config.sps; + codec_config_->csd1 = config.pps; + break; #if BUILDFLAG(ENABLE_HEVC_DEMUXING) - codec_config_->codec != kCodecHEVC && + case kCodecHEVC: + break; #endif - codec_config_->codec != kCodecH264) { - DLOG(ERROR) << "Unsupported profile: " << GetProfileName(config.profile); - return false; +#endif + default: + DLOG(ERROR) << "Unsupported profile: " << GetProfileName(config.profile); + return false; } codec_config_->software_codec_forbidden = IsMediaCodecSoftwareDecodingForbidden(); - if (codec_config_->codec == kCodecH264) { - codec_config_->csd0 = config.sps; - codec_config_->csd1 = config.pps; - } - codec_config_->container_color_space = config.container_color_space; codec_config_->hdr_metadata = config.hdr_metadata; @@ -1689,6 +1698,7 @@ } } +#if BUILDFLAG(USE_PROPRIETARY_CODECS) for (const auto& supported_profile : kSupportedH264Profiles) { SupportedProfile profile; profile.profile = supported_profile; @@ -1700,6 +1710,17 @@ profiles.push_back(profile); } +#if BUILDFLAG(ENABLE_HEVC_DEMUXING) + for (const auto& supported_profile : kSupportedHevcProfiles) { + SupportedProfile profile; + profile.profile = supported_profile; + profile.min_resolution.SetSize(0, 0); + profile.max_resolution.SetSize(3840, 2160); + profiles.push_back(profile); + } +#endif +#endif + capabilities.flags = Capabilities::SUPPORTS_DEFERRED_INITIALIZATION | Capabilities::NEEDS_ALL_PICTURE_BUFFERS_TO_DECODE | Capabilities::SUPPORTS_ENCRYPTED_STREAMS; @@ -1715,16 +1736,6 @@ capabilities.flags |= Capabilities::SUPPORTS_SET_EXTERNAL_OUTPUT_SURFACE; } -#if BUILDFLAG(ENABLE_HEVC_DEMUXING) - for (const auto& supported_profile : kSupportedHevcProfiles) { - SupportedProfile profile; - profile.profile = supported_profile; - profile.min_resolution.SetSize(0, 0); - profile.max_resolution.SetSize(3840, 2160); - profiles.push_back(profile); - } -#endif - return capabilities; }
diff --git a/media/gpu/android/media_codec_video_decoder.cc b/media/gpu/android/media_codec_video_decoder.cc index 70e58ff..019ca40 100644 --- a/media/gpu/android/media_codec_video_decoder.cc +++ b/media/gpu/android/media_codec_video_decoder.cc
@@ -24,6 +24,7 @@ #include "media/base/video_util.h" #include "media/gpu/android/android_video_surface_chooser.h" #include "media/gpu/android/avda_codec_allocator.h" +#include "media/media_buildflags.h" #if BUILDFLAG(USE_PROPRIETARY_CODECS) #include "media/base/android/extract_sps_and_pps.h" @@ -75,12 +76,14 @@ return true; } +#if BUILDFLAG(USE_PROPRIETARY_CODECS) case kCodecH264: return true; #if BUILDFLAG(ENABLE_HEVC_DEMUXING) case kCodecHEVC: return true; #endif +#endif default: return false; }
diff --git a/media/gpu/vt_video_decode_accelerator_mac.cc b/media/gpu/vt_video_decode_accelerator_mac.cc index 1483979..db78ad5 100644 --- a/media/gpu/vt_video_decode_accelerator_mac.cc +++ b/media/gpu/vt_video_decode_accelerator_mac.cc
@@ -23,7 +23,9 @@ #include "base/sys_byteorder.h" #include "base/sys_info.h" #include "base/threading/thread_task_runner_handle.h" +#include "base/trace_event/memory_allocator_dump.h" #include "base/trace_event/memory_dump_manager.h" +#include "base/trace_event/process_memory_dump.h" #include "base/version.h" #include "media/base/limits.h" #include "media/gpu/shared_memory_region.h" @@ -68,11 +70,24 @@ // Size to use for NALU length headers in AVC format (can be 1, 2, or 4). const int kNALUHeaderLength = 4; -// We request 8 picture buffers from the client, each of which has a texture ID -// that we can bind decoded frames to. We need enough to satisfy preroll and -// to avoid unnecessary stalling. The resource requirements are low, as we don't -// need the textures to be backed by storage. -const int kNumPictureBuffers = limits::kMaxVideoFrames * 2; +// We request 16 picture buffers from the client, each of which has a texture ID +// that we can bind decoded frames to. The resource requirements are low, as we +// don't need the textures to be backed by storage. +// +// The lower limit is |limits::kMaxVideoFrames + 1|, enough to have one +// composited frame plus |limits::kMaxVideoFrames| frames to satisfy preroll. +// +// However, there can be pathological behavior where VideoRendererImpl will +// continue to call Decode() as long as it is willing to queue more output +// frames, which is variable but starts at |limits::kMaxVideoFrames + +// GetMaxDecodeRequests()|. If we don't have enough picture buffers, it will +// continue to call Decode() until we stop calling NotifyEndOfBistreamBuffer(), +// which for VTVDA is when the reorder queue is full. In testing this results in +// ~20 extra frames held by VTVDA. +// +// Allocating more picture buffers than VideoRendererImpl is willing to queue +// counterintuitively reduces memory usage in this case. +const int kNumPictureBuffers = limits::kMaxVideoFrames * 4; // Maximum number of frames to queue for reordering. (Also controls the maximum // number of in-flight frames, since NotifyEndOfBitstreamBuffer() is called when @@ -82,6 +97,16 @@ // minimum safe (static) size of the reorder queue. const int kMaxReorderQueueSize = 17; +// Returns reference to the underlying container of a container adapter. +// Works for std::stack, std::queue and std::priority_queue. +template <class A> +const typename A::container_type& GetUnderlyingContainer(const A& adapter) { + struct ExposedAdapter : A { + using A::c; + }; + return adapter.*&ExposedAdapter::c; +} + // Build an |image_config| dictionary for VideoToolbox initialization. base::ScopedCFTypeRef<CFMutableDictionaryRef> BuildImageConfig( CMVideoDimensions coded_dimensions) { @@ -404,7 +429,8 @@ VTVideoDecodeAccelerator::PictureInfo::PictureInfo(uint32_t client_texture_id, uint32_t service_texture_id) - : client_texture_id(client_texture_id), + : bitstream_id(0), + client_texture_id(client_texture_id), service_texture_id(service_texture_id) {} VTVideoDecodeAccelerator::PictureInfo::~PictureInfo() {} @@ -450,16 +476,70 @@ bool VTVideoDecodeAccelerator::OnMemoryDump( const base::trace_event::MemoryDumpArgs& args, base::trace_event::ProcessMemoryDump* pmd) { + DCHECK(gpu_task_runner_->BelongsToCurrentThread()); + + // Dump output pictures (decoded frames for which PictureReady() has been + // called already). for (const auto& it : picture_info_map_) { - int32_t picture_id = it.first; PictureInfo* picture_info = it.second.get(); if (picture_info->gl_image) { std::string dump_name = base::StringPrintf("media/vt_video_decode_accelerator_%d/picture_%d", - memory_dump_id_, picture_id); + memory_dump_id_, picture_info->bitstream_id); picture_info->gl_image->OnMemoryDump(pmd, 0, dump_name); } } + + // Dump the output queue (decoded frames for which + // NotifyEndOfBitstreamBuffer() has not been called yet). + { + uint64_t total_count = 0; + uint64_t total_size = 0; + for (const auto& it : GetUnderlyingContainer(task_queue_)) { + if (it.frame.get() && it.frame->image) { + IOSurfaceRef io_surface = CVPixelBufferGetIOSurface(it.frame->image); + if (io_surface) { + ++total_count; + total_size += IOSurfaceGetAllocSize(io_surface); + } + } + } + base::trace_event::MemoryAllocatorDump* dump = pmd->CreateAllocatorDump( + base::StringPrintf("media/vt_video_decode_accelerator_%d/output_queue", + memory_dump_id_)); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount, + base::trace_event::MemoryAllocatorDump::kUnitsObjects, + total_count); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, + base::trace_event::MemoryAllocatorDump::kUnitsBytes, + total_size); + } + + // Dump the reorder queue (decoded frames for which + // NotifyEndOfBitstreamBuffer() has been called already). + { + uint64_t total_count = 0; + uint64_t total_size = 0; + for (const auto& it : GetUnderlyingContainer(reorder_queue_)) { + if (it.get() && it->image) { + IOSurfaceRef io_surface = CVPixelBufferGetIOSurface(it->image); + if (io_surface) { + ++total_count; + total_size += IOSurfaceGetAllocSize(io_surface); + } + } + } + base::trace_event::MemoryAllocatorDump* dump = pmd->CreateAllocatorDump( + base::StringPrintf("media/vt_video_decode_accelerator_%d/reorder_queue", + memory_dump_id_)); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount, + base::trace_event::MemoryAllocatorDump::kUnitsObjects, + total_count); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, + base::trace_event::MemoryAllocatorDump::kUnitsBytes, + total_size); + } + return true; } @@ -1058,20 +1138,24 @@ DVLOG(2) << __func__ << "(" << picture_id << ")"; DCHECK(gpu_task_runner_->BelongsToCurrentThread()); - auto it = picture_info_map_.find(picture_id); - if (it != picture_info_map_.end()) { - PictureInfo* picture_info = it->second.get(); - picture_info->cv_image.reset(); - picture_info->gl_image = nullptr; - } - // It's possible there was a ReusePictureBuffer() request in flight when we // called DismissPictureBuffer(), in which case we won't find it. In that case // we should just drop the ReusePictureBuffer() request. - if (assigned_picture_ids_.count(picture_id)) { - available_picture_ids_.push_back(picture_id); - ProcessWorkQueues(); - } + auto it = picture_info_map_.find(picture_id); + if (it == picture_info_map_.end()) + return; + + // Drop references to allow the underlying buffer to be released. + PictureInfo* picture_info = it->second.get(); + bind_image_cb_.Run(picture_info->client_texture_id, GL_TEXTURE_RECTANGLE_ARB, + nullptr, false); + picture_info->gl_image = nullptr; + picture_info->bitstream_id = 0; + + // Mark the picture as available and try to complete pending output work. + DCHECK(assigned_picture_ids_.count(picture_id)); + available_picture_ids_.push_back(picture_id); + ProcessWorkQueues(); } void VTVideoDecodeAccelerator::ProcessWorkQueues() { @@ -1212,6 +1296,7 @@ client_->DismissPictureBuffer(picture_id); } assigned_picture_ids_.clear(); + picture_info_map_.clear(); available_picture_ids_.clear(); // Request new pictures. @@ -1243,7 +1328,6 @@ auto it = picture_info_map_.find(picture_id); DCHECK(it != picture_info_map_.end()); PictureInfo* picture_info = it->second.get(); - DCHECK(!picture_info->cv_image); DCHECK(!picture_info->gl_image); scoped_refptr<gl::GLImageIOSurface> gl_image( @@ -1255,6 +1339,8 @@ NOTIFY_STATUS("Failed to initialize GLImageIOSurface", PLATFORM_FAILURE, SFT_PLATFORM_ERROR); } + gfx::ColorSpace color_space = GetImageBufferColorSpace(frame.image); + gl_image->SetColorSpaceForYUVToRGBConversion(color_space); if (!bind_image_cb_.Run(picture_info->client_texture_id, GL_TEXTURE_RECTANGLE_ARB, gl_image, false)) { @@ -1262,12 +1348,8 @@ NotifyError(PLATFORM_FAILURE, SFT_PLATFORM_ERROR); return false; } - gfx::ColorSpace color_space = GetImageBufferColorSpace(frame.image); - gl_image->SetColorSpaceForYUVToRGBConversion(color_space); - - // Assign the new image(s) to the the picture info. picture_info->gl_image = gl_image; - picture_info->cv_image = frame.image; + picture_info->bitstream_id = frame.bitstream_id; available_picture_ids_.pop_back(); DVLOG(3) << "PictureReady(picture_id=" << picture_id << ", "
diff --git a/media/gpu/vt_video_decode_accelerator_mac.h b/media/gpu/vt_video_decode_accelerator_mac.h index de17dba..aa3953b 100644 --- a/media/gpu/vt_video_decode_accelerator_mac.h +++ b/media/gpu/vt_video_decode_accelerator_mac.h
@@ -132,13 +132,9 @@ PictureInfo(uint32_t client_texture_id, uint32_t service_texture_id); ~PictureInfo(); - // Image buffer, kept alive while they are bound to pictures. - base::ScopedCFTypeRef<CVImageBufferRef> cv_image; - - // The GLImage representation of |cv_image|. This is kept around to ensure - // that Destroy is called on it before it hits its destructor (there is a - // DCHECK that requires this). + // Information about the currently bound image, for OnMemoryDump(). scoped_refptr<gl::GLImageIOSurface> gl_image; + int32_t bitstream_id; // Texture IDs for the image buffer. const uint32_t client_texture_id;
diff --git a/media/mojo/services/cdm_manifest.json b/media/mojo/services/cdm_manifest.json index 96a06dd6..78ea3fcc 100644 --- a/media/mojo/services/cdm_manifest.json +++ b/media/mojo/services/cdm_manifest.json
@@ -5,7 +5,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "media:cdm": [ "media::mojom::CdmService" ] + "media:cdm": [ "media.mojom.CdmService" ] }, "requires": { "*": [ "app" ]
diff --git a/media/mojo/services/cdm_service_unittest_manifest.json b/media/mojo/services/cdm_service_unittest_manifest.json index 1d35efbb..9440910 100644 --- a/media/mojo/services/cdm_service_unittest_manifest.json +++ b/media/mojo/services/cdm_service_unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc index 5df3d6fd..dd6d7ba0 100644 --- a/media/mojo/services/gpu_mojo_media_client.cc +++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -7,10 +7,12 @@ #include <utility> #include "base/bind.h" +#include "base/feature_list.h" #include "build/build_config.h" #include "gpu/ipc/service/gpu_channel.h" #include "media/base/audio_decoder.h" #include "media/base/cdm_factory.h" +#include "media/base/media_switches.h" #include "media/base/video_decoder.h" #include "media/gpu/buildflags.h" #include "media/gpu/ipc/service/media_gpu_channel_manager.h" @@ -130,19 +132,22 @@ android_overlay_factory_cb_, std::move(request_overlay_info_cb), std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_, std::move(get_stub_cb))); -#elif defined(OS_MACOSX) +#elif defined(OS_MACOSX) || defined(OS_WIN) +#if defined(OS_WIN) + if (base::FeatureList::IsEnabled(kD3D11VideoDecoder)) { + return D3D11VideoDecoder::Create( + gpu_task_runner_, gpu_preferences_, gpu_workarounds_, + base::BindRepeating(&GetCommandBufferStub, media_gpu_channel_manager_, + command_buffer_id->channel_token, + command_buffer_id->route_id)); + } +#endif // defined(OS_WIN) return VdaVideoDecoder::Create( task_runner, gpu_task_runner_, media_log, target_color_space, gpu_preferences_, gpu_workarounds_, base::BindRepeating(&GetCommandBufferStub, media_gpu_channel_manager_, command_buffer_id->channel_token, command_buffer_id->route_id)); -#elif defined(OS_WIN) - return D3D11VideoDecoder::Create( - gpu_task_runner_, gpu_preferences_, gpu_workarounds_, - base::BindRepeating(&GetCommandBufferStub, media_gpu_channel_manager_, - command_buffer_id->channel_token, - command_buffer_id->route_id)); #else return nullptr; #endif // defined(OS_ANDROID)
diff --git a/media/mojo/services/media_manifest.json b/media/mojo/services/media_manifest.json index 64c6194d..ca7971e 100644 --- a/media/mojo/services/media_manifest.json +++ b/media/mojo/services/media_manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "media:media": [ "media::mojom::MediaService" ] + "media:media": [ "media.mojom.MediaService" ] }, "requires": { "*": [ "app" ]
diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java index c90b5a81..f422f94 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java
@@ -229,7 +229,7 @@ @Test @SmallTest public void testName() { - Assert.assertEquals("sample::NamedObject", NamedObject.MANAGER.getName()); + Assert.assertEquals("sample.NamedObject", NamedObject.MANAGER.getName()); } @Test
diff --git a/mojo/public/cpp/bindings/tests/constant_unittest.cc b/mojo/public/cpp/bindings/tests/constant_unittest.cc index caa6464..12a8615 100644 --- a/mojo/public/cpp/bindings/tests/constant_unittest.cc +++ b/mojo/public/cpp/bindings/tests/constant_unittest.cc
@@ -53,7 +53,7 @@ EXPECT_EQ(base::StringPiece(InterfaceWithConstants::kStringValue), "interface test string contents"); EXPECT_EQ(base::StringPiece(InterfaceWithConstants::Name_), - "mojo::test::InterfaceWithConstants"); + "mojo.test.InterfaceWithConstants"); } } // namespace test
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl index a4eda9a1..f0ea917 100644 --- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl +++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
@@ -31,7 +31,7 @@ {%- endmacro %} {#--- Begin #} -const char {{class_name}}::Name_[] = "{{namespace_as_string}}::{{class_name}}"; +const char {{class_name}}::Name_[] = "{{namespace}}.{{class_name}}"; {#--- Constants #} {%- for constant in interface.constants %}
diff --git a/mojo/public/tools/bindings/generators/java_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/java_templates/interface_definition.tmpl index b61256c..27e9a3a0 100644 --- a/mojo/public/tools/bindings/generators/java_templates/interface_definition.tmpl +++ b/mojo/public/tools/bindings/generators/java_templates/interface_definition.tmpl
@@ -60,7 +60,7 @@ @Override public String getName() { - return "{{namespace|replace(".","::")}}::{{interface.name}}"; + return "{{namespace}}.{{interface.name}}"; } @Override
diff --git a/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl index 356fc5bb..d6b29007 100644 --- a/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl +++ b/mojo/public/tools/bindings/generators/js_templates/interface_definition.tmpl
@@ -215,7 +215,7 @@ } var {{interface.name}} = { - name: '{{module.mojom_namespace|replace(".","::")}}::{{interface.mojom_name}}', + name: '{{module.mojom_namespace}}.{{interface.mojom_name}}', kVersion: {{interface.version}}, ptrClass: {{interface.name}}Ptr, proxyClass: {{interface.name}}Proxy,
diff --git a/net/http/http_stream_factory_job.cc b/net/http/http_stream_factory_job.cc index aa6cc75f..bfbf6aec 100644 --- a/net/http/http_stream_factory_job.cc +++ b/net/http/http_stream_factory_job.cc
@@ -1224,8 +1224,7 @@ // WebSocket over HTTP/2 is only allowed to use existing HTTP/2 connections. // Therefore |using_spdy_| could not have been set unless a connection had // already been found. - // TODO(bnc): Change to DCHECK once https://crbug.com/819101 is fixed. - CHECK(!try_websocket_over_http2_); + DCHECK(!try_websocket_over_http2_); session_->spdy_session_pool()->push_promise_index()->ClaimPushedStream( spdy_session_key_, origin_url_, request_info_, &existing_spdy_session_,
diff --git a/net/ntlm/ntlm_buffer_reader.cc b/net/ntlm/ntlm_buffer_reader.cc index 930d8136..a5d1a27 100644 --- a/net/ntlm/ntlm_buffer_reader.cc +++ b/net/ntlm/ntlm_buffer_reader.cc
@@ -54,6 +54,9 @@ if (!CanRead(buffer.size())) return false; + if (buffer.empty()) + return true; + memcpy(buffer.data(), GetBufferAtCursor(), buffer.size()); AdvanceCursor(buffer.size()); @@ -65,6 +68,9 @@ if (!CanReadFrom(sec_buf) || buffer.size() < sec_buf.length) return false; + if (buffer.empty()) + return true; + memcpy(buffer.data(), GetBufferPtr() + sec_buf.offset, sec_buf.length); return true;
diff --git a/net/ntlm/ntlm_buffer_reader_unittest.cc b/net/ntlm/ntlm_buffer_reader_unittest.cc index dcb334d..ba25da9 100644 --- a/net/ntlm/ntlm_buffer_reader_unittest.cc +++ b/net/ntlm/ntlm_buffer_reader_unittest.cc
@@ -41,6 +41,24 @@ ASSERT_TRUE(reader.CanRead(0)); ASSERT_FALSE(reader.CanRead(1)); ASSERT_TRUE(reader.IsEndOfBuffer()); + + // A read from an empty (zero-byte) source into an empty (zero-byte) + // destination buffer should succeed as a no-op. + std::vector<uint8_t> dest; + ASSERT_TRUE(reader.ReadBytes(dest)); + + // A read from a non-empty source into an empty (zero-byte) destination + // buffer should succeed as a no-op. + std::vector<uint8_t> b2{0x01}; + NtlmBufferReader reader2(b2); + ASSERT_EQ(0u, reader2.GetCursor()); + ASSERT_EQ(1u, reader2.GetLength()); + + ASSERT_TRUE(reader2.CanRead(0)); + ASSERT_TRUE(reader2.ReadBytes(dest)); + + ASSERT_EQ(0u, reader2.GetCursor()); + ASSERT_EQ(1u, reader2.GetLength()); } TEST(NtlmBufferReaderTest, NullBuffer) { @@ -51,6 +69,11 @@ ASSERT_TRUE(reader.CanRead(0)); ASSERT_FALSE(reader.CanRead(1)); ASSERT_TRUE(reader.IsEndOfBuffer()); + + // A read from a null source into an empty (zero-byte) destination buffer + // should succeed as a no-op. + std::vector<uint8_t> dest; + ASSERT_TRUE(reader.ReadBytes(dest)); } TEST(NtlmBufferReaderTest, Read16) {
diff --git a/net/ntlm/ntlm_buffer_writer.cc b/net/ntlm/ntlm_buffer_writer.cc index 3151d20..0a1a80353 100644 --- a/net/ntlm/ntlm_buffer_writer.cc +++ b/net/ntlm/ntlm_buffer_writer.cc
@@ -6,12 +6,12 @@ #include <string.h> +#include <limits> + #include "base/logging.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" -template class std::basic_string<uint8_t>; - namespace net { namespace ntlm { @@ -21,14 +21,14 @@ NtlmBufferWriter::~NtlmBufferWriter() = default; bool NtlmBufferWriter::CanWrite(size_t len) const { + if (len == 0) + return true; + if (!GetBufferPtr()) return false; DCHECK_LE(GetCursor(), GetLength()); - if (len == 0) - return true; - return (len <= GetLength()) && (GetCursor() <= GetLength() - len); } @@ -49,6 +49,9 @@ } bool NtlmBufferWriter::WriteBytes(base::span<const uint8_t> bytes) { + if (bytes.size() == 0) + return true; + if (!CanWrite(bytes.size())) return false; @@ -58,6 +61,9 @@ } bool NtlmBufferWriter::WriteZeros(size_t count) { + if (count == 0) + return true; + if (!CanWrite(count)) return false; @@ -113,7 +119,13 @@ } bool NtlmBufferWriter::WriteUtf16String(const base::string16& str) { + if (str.size() > std::numeric_limits<size_t>::max() / 2) + return false; + size_t num_bytes = str.size() * 2; + if (num_bytes == 0) + return true; + if (!CanWrite(num_bytes)) return false;
diff --git a/net/ntlm/ntlm_buffer_writer_unittest.cc b/net/ntlm/ntlm_buffer_writer_unittest.cc index 1c6e2b65..813c6b6 100644 --- a/net/ntlm/ntlm_buffer_writer_unittest.cc +++ b/net/ntlm/ntlm_buffer_writer_unittest.cc
@@ -37,6 +37,42 @@ ASSERT_FALSE(writer.CanWrite(2)); } +TEST(NtlmBufferWriterTest, EmptyWrite) { + NtlmBufferWriter writer(0); + + ASSERT_EQ(0u, writer.GetLength()); + ASSERT_EQ(0u, writer.GetBuffer().size()); + ASSERT_EQ(0u, writer.GetCursor()); + ASSERT_EQ(nullptr, GetBufferPtr(writer)); + + // An empty (zero-byte) write into a zero-byte writer should succeed as a + // no-op. + std::vector<uint8_t> b; + ASSERT_TRUE(writer.CanWrite(0)); + ASSERT_TRUE(writer.WriteBytes(b)); + + ASSERT_EQ(0u, writer.GetLength()); + ASSERT_EQ(0u, writer.GetBuffer().size()); + ASSERT_EQ(0u, writer.GetCursor()); + ASSERT_EQ(nullptr, GetBufferPtr(writer)); + + // An empty (zero-byte) write into a non-zero-byte writer should succeed as + // a no-op. + NtlmBufferWriter writer2(1); + ASSERT_EQ(1u, writer2.GetLength()); + ASSERT_EQ(1u, writer2.GetBuffer().size()); + ASSERT_EQ(0u, writer2.GetCursor()); + ASSERT_NE(nullptr, GetBufferPtr(writer2)); + + ASSERT_TRUE(writer2.CanWrite(0)); + ASSERT_TRUE(writer2.WriteBytes(b)); + + ASSERT_EQ(1u, writer2.GetLength()); + ASSERT_EQ(1u, writer2.GetBuffer().size()); + ASSERT_EQ(0u, writer2.GetCursor()); + ASSERT_NE(nullptr, GetBufferPtr(writer2)); +} + TEST(NtlmBufferWriterTest, Write16) { uint8_t expected[2] = {0x22, 0x11}; const uint16_t value = 0x1122;
diff --git a/net/third_party/quic/core/quic_flags_list.h b/net/third_party/quic/core/quic_flags_list.h index 2fed914..281102457 100644 --- a/net/third_party/quic/core/quic_flags_list.h +++ b/net/third_party/quic/core/quic_flags_list.h
@@ -179,7 +179,7 @@ QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_no_mspc, true) // If true, simplify pacing sender logic. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_simplify_pacing_sender, true) +QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_simplify_pacing_sender, false) // Number of packets that the pacing sender allows in bursts during pacing. QUIC_FLAG(int32_t, FLAGS_quic_lumpy_pacing_size, 1) @@ -192,23 +192,23 @@ QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_respect_ietf_header, true) // If true, detect losses from last largest lost packet number. - -// If true, enable fast path in QuicStreamSendBuffer::FreeMemSlices. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_incremental_loss_detection, - true); + false) + +// If true, enable fast path in QuicStreamSendBuffer::FreeMemSlices. QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fast_free_mem_slice, true) // Default enables QUIC ack decimation and adds a connection option to disable // it. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_ack_decimation, true) +QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_ack_decimation, false) // If true, declare in flight packets lost via early retransmit, even though it // has no retransmittable frames. QUIC_FLAG( bool, FLAGS_quic_reloadable_flag_quic_early_retransmit_detects_in_flight_packet_lost, - true) + false) // Enables the 1RTO connection option which only sends one packet on QUIC // retransmission timeout, instead of 2.
diff --git a/net/tools/cert_verify_tool/cert_verify_tool.cc b/net/tools/cert_verify_tool/cert_verify_tool.cc index 5be75021..1d912d7 100644 --- a/net/tools/cert_verify_tool/cert_verify_tool.cc +++ b/net/tools/cert_verify_tool/cert_verify_tool.cc
@@ -116,9 +116,15 @@ return true; // "skipping" is considered a successful return. } + base::FilePath dump_path; + if (!dump_prefix_path.empty()) { + dump_path = dump_prefix_path.AddExtension(FILE_PATH_LITERAL(".pem")) + .InsertBeforeExtensionASCII("." + GetName()); + } + return VerifyUsingCertVerifyProc(proc_.get(), target_der_cert, hostname, intermediate_der_certs, root_der_certs, - crl_set, dump_prefix_path); + crl_set, dump_path); } private:
diff --git a/net/tools/cert_verify_tool/verify_using_cert_verify_proc.cc b/net/tools/cert_verify_tool/verify_using_cert_verify_proc.cc index a858091..d4086554 100644 --- a/net/tools/cert_verify_tool/verify_using_cert_verify_proc.cc +++ b/net/tools/cert_verify_tool/verify_using_cert_verify_proc.cc
@@ -115,7 +115,7 @@ const std::vector<CertInput>& intermediate_der_certs, const std::vector<CertInput>& root_der_certs, net::CRLSet* crl_set, - const base::FilePath& dump_prefix_path) { + const base::FilePath& dump_path) { std::cout << "NOTE: CertVerifyProc always uses OS trust settings (--roots are in " "addition).\n"; @@ -165,10 +165,8 @@ std::cout << "CertVerifyProc result: " << net::ErrorToShortString(rv) << "\n"; PrintCertVerifyResult(result); - if (!dump_prefix_path.empty() && result.verified_cert) { - if (!DumpX509CertificateChain(dump_prefix_path.AddExtension( - FILE_PATH_LITERAL(".CertVerifyProc.pem")), - result.verified_cert.get())) { + if (!dump_path.empty() && result.verified_cert) { + if (!DumpX509CertificateChain(dump_path, result.verified_cert.get())) { return false; } }
diff --git a/net/tools/cert_verify_tool/verify_using_cert_verify_proc.h b/net/tools/cert_verify_tool/verify_using_cert_verify_proc.h index 2d9f3284..f00c943 100644 --- a/net/tools/cert_verify_tool/verify_using_cert_verify_proc.h +++ b/net/tools/cert_verify_tool/verify_using_cert_verify_proc.h
@@ -30,6 +30,6 @@ const std::vector<CertInput>& intermediate_der_certs, const std::vector<CertInput>& root_der_certs, net::CRLSet* crl_set, - const base::FilePath& dump_prefix_path); + const base::FilePath& dump_path); #endif // NET_TOOLS_CERT_VERIFY_TOOL_VERIFY_USING_CERT_VERIFY_PROC_H_
diff --git a/printing/print_settings_initializer_win.cc b/printing/print_settings_initializer_win.cc index fd243fe..88b4eb0 100644 --- a/printing/print_settings_initializer_win.cc +++ b/printing/print_settings_initializer_win.cc
@@ -6,6 +6,7 @@ #include <windows.h> +#include "printing/backend/win_helper.h" #include "printing/print_settings.h" namespace printing { @@ -142,6 +143,8 @@ printable_area_device_units, false); + print_settings->set_color(IsDevModeWithColor(&dev_mode) ? COLOR : GRAY); + // Check for postscript first so that we can change the mode with the // first command. int level;
diff --git a/printing/printing_context_win_unittest.cc b/printing/printing_context_win_unittest.cc index 0763474b..00e9ada 100644 --- a/printing/printing_context_win_unittest.cc +++ b/printing/printing_context_win_unittest.cc
@@ -142,20 +142,35 @@ }; TEST_F(PrintingContextTest, PrintAll) { - base::MessageLoop message_loop; if (IsTestCaseDisabled()) return; + base::MessageLoop message_loop; MockPrintingContextWin context(this); context.AskUserForSettings( 123, false, false, base::BindOnce(&PrintingContextTest::PrintSettingsCallback, base::Unretained(this))); EXPECT_EQ(PrintingContext::OK, result()); - PrintSettings settings = context.settings(); + const PrintSettings& settings = context.settings(); EXPECT_EQ(0u, settings.ranges().size()); } +TEST_F(PrintingContextTest, Color) { + if (IsTestCaseDisabled()) + return; + + base::MessageLoop message_loop; + MockPrintingContextWin context(this); + context.AskUserForSettings( + 123, false, false, + base::BindOnce(&PrintingContextTest::PrintSettingsCallback, + base::Unretained(this))); + EXPECT_EQ(PrintingContext::OK, result()); + const PrintSettings& settings = context.settings(); + EXPECT_NE(settings.color(), UNKNOWN_COLOR_MODEL); +} + TEST_F(PrintingContextTest, Base) { if (IsTestCaseDisabled()) return;
diff --git a/remoting/resources/remoting_strings_bn.xtb b/remoting/resources/remoting_strings_bn.xtb index 408fdbc6..839119c6 100644 --- a/remoting/resources/remoting_strings_bn.xtb +++ b/remoting/resources/remoting_strings_bn.xtb
@@ -139,7 +139,7 @@ <translation id="409800995205263688">দ্রষ্টব্য: নীতি সেটিং কেবলমাত্র আপনার নেটওয়ার্কে থাকা কম্পিউটারের মধ্যে সংযোগের অনুমতি দেয়৷</translation> <translation id="4145029455188493639"><ph name="EMAIL_ADDRESS" /> হিসেবে সাইন-ইন করেছেন।</translation> <translation id="4155497795971509630">প্রয়োজনীয় কিছু উপাদান অনুপস্থিত আছে৷ আপনি অতিসাম্প্রতিক সংস্করণটি ইনস্টল করেছেন কিনা দয়া করে তা নিশ্চিত করুন এবং আবার চেষ্টা করুন৷</translation> -<translation id="4156740505453712750">এই কম্পিউটারে অ্যাক্সেস রক্ষা করতে, দয়া করে <ph name="BOLD_START" />অন্তত ছয় সংখ্যার<ph name="BOLD_END" /> একটি পিন বেছে নিন৷ অন্য কোনো অবস্থান থেকে সংযুক্ত হতে এই পিন এর প্রয়োজন হবে৷</translation> +<translation id="4156740505453712750">এই কম্পিউটারে অ্যাক্সেস রক্ষা করতে, দয়া করে <ph name="BOLD_START" />অন্তত ছয় সংখ্যার<ph name="BOLD_END" /> একটি পিন বেছে নিন৷ অন্য কোনো লোকেশন থেকে সংযুক্ত হতে এই পিন এর প্রয়োজন হবে৷</translation> <translation id="4169432154993690151">প্রোফাইল ছবি বেছে নিতে Chrome রিমোট ডেস্কটপকে ক্যামেরায় অ্যাক্সেস দিন</translation> <translation id="4176825807642096119">অ্যাক্সেস কোড</translation> <translation id="4207623512727273241">অব্যাহত রাখার আগে ইনস্টলার চালনা করুন৷</translation> @@ -300,7 +300,7 @@ <translation id="7869445566579231750">এই অ্যাপ্লিকেশান চালানোর মতো অনুমতি আপনার নেই।</translation> <translation id="7895403300744144251">দূরবর্তী কম্পিউটারের নিরাপত্তা নীতিগুলি আপনার অ্যাকাউন্ট থেকে সংযোগ স্থাপন করার মঞ্জুরি দেয় না।</translation> <translation id="7936528439960309876">ডক ডান দিকে করুন</translation> -<translation id="7948001860594368197">স্ক্রীন বিকল্পগুলি</translation> +<translation id="7948001860594368197">স্ক্রিন বিকল্পগুলি</translation> <translation id="7970576581263377361">প্রমাণীকরণ ব্যর্থ হয়েছে৷ অনুগ্রহ করে আবার Chromium এ প্রবেশ করুন৷</translation> <translation id="7981525049612125370">দূরবর্তী অধিবেশনের মেয়াদ শেষ হয়ে গেছে।</translation> <translation id="8041089156583427627">প্রতিক্রিয়া পাঠান</translation> @@ -312,7 +312,7 @@ <translation id="809687642899217504">আমার কম্পিউটারগুলি</translation> <translation id="811307782653349804">যে কোনো জায়গা থেকে আপনার নিজের কম্পিউটারে অ্যাক্সেস করুন৷</translation> <translation id="8116630183974937060">একটি নেটওয়ার্ক ত্রুটি ঘটেছে৷ আপনার ডিভাইস অন-লাইনে আছে কিনা তা পরীক্ষা করে আবার চেষ্টা করুন৷</translation> -<translation id="8178433417677596899">ব্যবহারকারী-থেকে-ব্যবহারকারীতে স্ক্রীন শেয়ার করা, দূরবর্তী প্রযুক্তিগত সহায়তার জন্য উপযুক্ত৷</translation> +<translation id="8178433417677596899">ব্যবহারকারী-থেকে-ব্যবহারকারীতে স্ক্রিন শেয়ার করা, দূরবর্তী প্রযুক্তিগত সহায়তার জন্য উপযুক্ত৷</translation> <translation id="8187079423890319756">কপিরাইট ২০১৩ Chromium রচয়িতা৷ সর্বস্বত্ত্ব সংরক্ষিত৷</translation> <translation id="8196755618196986400">পরবর্তী তথ্যের জন্য আমাদেরকে আপনার সঙ্গে যোগাযোগ করার অনুমতি দিতে, আপনি কোনো প্রতিক্রিয়া জমা দিলে তার সঙ্গে আপনার ইমেল ঠিকানা যোগ করা হবে।</translation> <translation id="8244400547700556338">জানুন কিভাবে৷</translation>
diff --git a/remoting/resources/remoting_strings_hi.xtb b/remoting/resources/remoting_strings_hi.xtb index 3a97b0ec..214270c 100644 --- a/remoting/resources/remoting_strings_hi.xtb +++ b/remoting/resources/remoting_strings_hi.xtb
@@ -39,7 +39,7 @@ <translation id="2009755455353575666">कनेक्शन विफल रहा</translation> <translation id="2013884659108657024">Chrome, Chrome दूरस्थ डेस्कटॉप होस्ट इंस्टॉलर को डाउनलोड कर रहा है. डाउनलोड पूर्ण हो जाने पर, कृपया आगे बढने से पहले इंस्टॉलर चलाएं.</translation> <translation id="2013996867038862849">सभी युग्मित क्लाइंट हटा दिए गए हैं.</translation> -<translation id="2038229918502634450">खाते में नीतिगत बदलाव करने के लिए, होस्ट पुन: प्रारंभ हो रहा है.</translation> +<translation id="2038229918502634450">खाते में नीतिगत बदलाव करने के लिए, होस्ट फिर चालू हो रहा है.</translation> <translation id="2046651113449445291">निम्न क्लाइंट इस कंप्यूटर से युग्मित कर दिए गए हैं और वे PIN प्रदान किए बिना कनेक्ट कर सकते हैं. आप किसी भी समय, अलग-अलग या सभी क्लाइंट के लिए इस अनुमति को निरस्त कर सकते हैं.</translation> <translation id="2078880767960296260">होस्ट प्रोसेस</translation> <translation id="20876857123010370">ट्रैकपैड मोड</translation>
diff --git a/rlz/chromeos/lib/rlz_value_store_chromeos.cc b/rlz/chromeos/lib/rlz_value_store_chromeos.cc index 04a6a0d..6d52572 100644 --- a/rlz/chromeos/lib/rlz_value_store_chromeos.cc +++ b/rlz/chromeos/lib/rlz_value_store_chromeos.cc
@@ -84,38 +84,6 @@ return key + "." + GetProductName(product) + "." + brand; } -// Returns true if the |rlz_embargo_end_date| present in VPD has passed -// compared to the current time. -bool HasRlzEmbargoEndDatePassed() { - chromeos::system::StatisticsProvider* stats = - chromeos::system::StatisticsProvider::GetInstance(); - - std::string rlz_embargo_end_date; - if (!stats->GetMachineStatistic(chromeos::system::kRlzEmbargoEndDateKey, - &rlz_embargo_end_date)) { - // |rlz_embargo_end_date| only exists on new devices that have not yet - // launched. When the field doesn't exist, returns true so it's a no-op. - return true; - } - base::Time parsed_time; - if (!base::Time::FromUTCString(rlz_embargo_end_date.c_str(), &parsed_time)) { - LOG(ERROR) << "|rlz_embargo_end_date| exists but cannot be parsed."; - return true; - } - - if (parsed_time - base::Time::Now() >= - base::TimeDelta::FromDays( - RlzValueStoreChromeOS::kRlzEmbargoEndDateGarbageDateThresholdDays)) { - // If |rlz_embargo_end_date| is more than this many days in the future, - // ignore it. Because it indicates that the device is not connected to an - // ntp server in the factory, and its internal clock could be off when the - // date is written. - return true; - } - - return base::Time::Now() > parsed_time; -} - } // namespace const int RlzValueStoreChromeOS::kRlzEmbargoEndDateGarbageDateThresholdDays = @@ -323,6 +291,45 @@ NOTIMPLEMENTED(); } +// static +RlzValueStoreChromeOS::EmbargoState +RlzValueStoreChromeOS::GetRlzEmbargoState() { + chromeos::system::StatisticsProvider* stats = + chromeos::system::StatisticsProvider::GetInstance(); + + std::string rlz_embargo_end_date; + if (!stats->GetMachineStatistic(chromeos::system::kRlzEmbargoEndDateKey, + &rlz_embargo_end_date)) { + // |rlz_embargo_end_date| only exists on new devices that have not yet + // launched. + return EmbargoState::kMissingOrMalformed; + } + base::Time parsed_time; + if (!base::Time::FromUTCString(rlz_embargo_end_date.c_str(), &parsed_time)) { + LOG(ERROR) << "|rlz_embargo_end_date| exists but cannot be parsed."; + return EmbargoState::kMissingOrMalformed; + } + + if (parsed_time - base::Time::Now() >= + base::TimeDelta::FromDays( + RlzValueStoreChromeOS::kRlzEmbargoEndDateGarbageDateThresholdDays)) { + // If |rlz_embargo_end_date| is more than this many days in the future, + // ignore it. Because it indicates that the device is not connected to an + // ntp server in the factory, and its internal clock could be off when the + // date is written. + // TODO(pmarko): UMA stat for how often this happens. + return EmbargoState::kInvalid; + } + + return base::Time::Now() > parsed_time ? EmbargoState::kPassed + : EmbargoState::kNotPassed; +} + +// static +bool RlzValueStoreChromeOS::HasRlzEmbargoEndDatePassed() { + return GetRlzEmbargoState() != EmbargoState::kNotPassed; +} + void RlzValueStoreChromeOS::ReadStore() { int error_code = 0; std::string error_msg;
diff --git a/rlz/chromeos/lib/rlz_value_store_chromeos.h b/rlz/chromeos/lib/rlz_value_store_chromeos.h index 75d9feb..ea42fac 100644 --- a/rlz/chromeos/lib/rlz_value_store_chromeos.h +++ b/rlz/chromeos/lib/rlz_value_store_chromeos.h
@@ -63,7 +63,20 @@ void CollectGarbage() override; + enum class EmbargoState { + kMissingOrMalformed, + kInvalid, + kNotPassed, + kPassed + }; + + static EmbargoState GetRlzEmbargoState(); + private: + // Returns true if the |rlz_embargo_end_date| present in VPD has passed + // compared to the current time. + static bool HasRlzEmbargoEndDatePassed(); + // Reads RLZ store from file. void ReadStore();
diff --git a/sandbox/linux/syscall_broker/broker_simple_message.h b/sandbox/linux/syscall_broker/broker_simple_message.h index 598b65b..d9185b4 100644 --- a/sandbox/linux/syscall_broker/broker_simple_message.h +++ b/sandbox/linux/syscall_broker/broker_simple_message.h
@@ -77,7 +77,7 @@ private: friend class BrokerSimpleMessageTestHelper; - enum class EntryType { DATA = 0xBDBDBD80, INT = 0xBDBDBD81 }; + enum class EntryType : uint32_t { DATA = 0xBDBDBD80, INT = 0xBDBDBD81 }; // Returns whether or not the next available entry matches the expected entry // type.
diff --git a/services/audio/manifest.json b/services/audio/manifest.json index beb981b..647e1ccf 100644 --- a/services/audio/manifest.json +++ b/services/audio/manifest.json
@@ -5,10 +5,10 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "info": [ "audio::mojom::SystemInfo" ], - "debug_recording": [ "audio::mojom::DebugRecording" ], - "stream_factory": [ "audio::mojom::StreamFactory" ], - "device_notifier": [ "audio::mojom::DeviceNotifier" ] + "info": [ "audio.mojom.SystemInfo" ], + "debug_recording": [ "audio.mojom.DebugRecording" ], + "stream_factory": [ "audio.mojom.StreamFactory" ], + "device_notifier": [ "audio.mojom.DeviceNotifier" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/audio/snooper_node_unittest.cc b/services/audio/snooper_node_unittest.cc index 21b3a815..7700837 100644 --- a/services/audio/snooper_node_unittest.cc +++ b/services/audio/snooper_node_unittest.cc
@@ -202,6 +202,8 @@ // Performance of this test on debug builds is abysmal. So, only run it on // optimized builds. +// TODO(crbug.com/842428): Analyze why only Windows debug test runs have this +// problem and re-enable test. #ifdef NDEBUG #define MAYBE_ContinuousAudioFlowAdaptsToSkew ContinuousAudioFlowAdaptsToSkew #else @@ -268,7 +270,16 @@ } } -TEST_P(SnooperNodeTest, HandlesMissingInput) { +// Performance of this test on debug builds is abysmal. So, only run it on +// optimized builds. +// TODO(crbug.com/842428): Analyze why only Windows debug test runs have this +// problem and re-enable test. +#ifdef NDEBUG +#define MAYBE_HandlesMissingInput HandlesMissingInput +#else +#define MAYBE_HandlesMissingInput DISABLED_HandlesMissingInput +#endif +TEST_P(SnooperNodeTest, MAYBE_HandlesMissingInput) { // Compute drops to occur once per second for 1/4 second duration. Each drop // position must be aligned to input_params().frames_per_buffer() for the // heuristics in ScheduleInputTasks() to process these drop positions
diff --git a/services/audio/test/service_unittest_manifest.json b/services/audio/test/service_unittest_manifest.json index 02d0a40..ec96704 100644 --- a/services/audio/test/service_unittest_manifest.json +++ b/services/audio/test/service_unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/services/catalog/manifest.json b/services/catalog/manifest.json index 4b31651..03839e1 100644 --- a/services/catalog/manifest.json +++ b/services/catalog/manifest.json
@@ -9,8 +9,8 @@ // build time or something. Same with service:service_manager. "service_manager:connector": { "provides": { - "directory": [ "filesystem::mojom::Directory" ], - "control": [ "catalog::mojom::CatalogControl" ] + "directory": [ "filesystem.mojom.Directory" ], + "control": [ "catalog.mojom.CatalogControl" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/data_decoder/manifest.json b/services/data_decoder/manifest.json index 5917062b..836a4e7 100644 --- a/services/data_decoder/manifest.json +++ b/services/data_decoder/manifest.json
@@ -4,9 +4,9 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "image_decoder": [ "data_decoder::mojom::ImageDecoder" ], - "json_parser": [ "data_decoder::mojom::JsonParser" ], - "xml_parser": [ "data_decoder::mojom::XmlParser" ] + "image_decoder": [ "data_decoder.mojom.ImageDecoder" ], + "json_parser": [ "data_decoder.mojom.JsonParser" ], + "xml_parser": [ "data_decoder.mojom.XmlParser" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/device/manifest.json b/services/device/manifest.json index ee35be5..82b414d5 100644 --- a/services/device/manifest.json +++ b/services/device/manifest.json
@@ -4,26 +4,26 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "device:battery_monitor": [ "device::mojom::BatteryMonitor" ], - "device:fingerprint": [ "device::mojom::Fingerprint" ], - "device:generic_sensor": [ "device::mojom::SensorProvider" ], - "device:geolocation": [ "device::mojom::GeolocationContext" ], - "device:geolocation_config": [ "device::mojom::GeolocationConfig" ], - "device:geolocation_control": [ "device::mojom::GeolocationControl" ], - "device:hid": [ "device::mojom::HidManager" ], - "device:input_service": [ "device::mojom::InputDeviceManager" ], - "device:ip_geolocator": [ "device::mojom::PublicIpAddressGeolocationProvider" ], - "device:mtp": [ "device::mojom::MtpManager" ], - "device:nfc": [ "device::mojom::NFCProvider" ], - "device:power_monitor": [ "device::mojom::PowerMonitor" ], - "device:screen_orientation": [ "device::mojom::ScreenOrientationListener" ], + "device:battery_monitor": [ "device.mojom.BatteryMonitor" ], + "device:fingerprint": [ "device.mojom.Fingerprint" ], + "device:generic_sensor": [ "device.mojom.SensorProvider" ], + "device:geolocation": [ "device.mojom.GeolocationContext" ], + "device:geolocation_config": [ "device.mojom.GeolocationConfig" ], + "device:geolocation_control": [ "device.mojom.GeolocationControl" ], + "device:hid": [ "device.mojom.HidManager" ], + "device:input_service": [ "device.mojom.InputDeviceManager" ], + "device:ip_geolocator": [ "device.mojom.PublicIpAddressGeolocationProvider" ], + "device:mtp": [ "device.mojom.MtpManager" ], + "device:nfc": [ "device.mojom.NFCProvider" ], + "device:power_monitor": [ "device.mojom.PowerMonitor" ], + "device:screen_orientation": [ "device.mojom.ScreenOrientationListener" ], "device:serial": [ - "device::mojom::SerialDeviceEnumerator", - "device::mojom::SerialIoHandler" + "device.mojom.SerialDeviceEnumerator", + "device.mojom.SerialIoHandler" ], - "device:time_zone_monitor": [ "device::mojom::TimeZoneMonitor" ], - "device:vibration": [ "device::mojom::VibrationManager" ], - "device:wake_lock": [ "device::mojom::WakeLockProvider" ] + "device:time_zone_monitor": [ "device.mojom.TimeZoneMonitor" ], + "device:vibration": [ "device.mojom.VibrationManager" ], + "device:wake_lock": [ "device.mojom.WakeLockProvider" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/device/unittest_manifest.json b/services/device/unittest_manifest.json index 6ead6a6..b6889ea 100644 --- a/services/device/unittest_manifest.json +++ b/services/device/unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/services/file/manifest.json b/services/file/manifest.json index 362e86c..a02f9d6 100644 --- a/services/file/manifest.json +++ b/services/file/manifest.json
@@ -4,8 +4,8 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "file:filesystem": [ "file::mojom::FileSystem" ], - "file:leveldb": [ "leveldb::mojom::LevelDBService" ] + "file:filesystem": [ "file.mojom.FileSystem" ], + "file:leveldb": [ "leveldb.mojom.LevelDBService" ] }, "requires": { "*": [ "app" ]
diff --git a/services/identity/manifest.json b/services/identity/manifest.json index 0ebd6f8..3e600a4f 100644 --- a/services/identity/manifest.json +++ b/services/identity/manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "identity_manager" : [ "identity::mojom::IdentityManager" ] + "identity_manager" : [ "identity.mojom.IdentityManager" ] } } }
diff --git a/services/identity/unittest_manifest.json b/services/identity/unittest_manifest.json index fb0c1fe..4f89a798 100644 --- a/services/identity/unittest_manifest.json +++ b/services/identity/unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/services/metrics/manifest.json b/services/metrics/manifest.json index 2e08346..b2ace81 100644 --- a/services/metrics/manifest.json +++ b/services/metrics/manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "url_keyed_metrics": [ - "ukm::mojom::UkmRecorderInterface" + "ukm.mojom.UkmRecorderInterface" ] }, "requires": {
diff --git a/services/network/manifest.json b/services/network/manifest.json index d14542c1..268798a 100644 --- a/services/network/manifest.json +++ b/services/network/manifest.json
@@ -6,13 +6,13 @@ "service_manager:connector": { "provides": { "network_service": [ - "network::mojom::NetworkService" + "network.mojom.NetworkService" ], "test": [ - "network::mojom::NetworkServiceTest" + "network.mojom.NetworkServiceTest" ], "url_loader": [ - "network::mojom::URLLoaderFactory" + "network.mojom.URLLoaderFactory" ] }, "requires": {
diff --git a/services/network/test/service_unittest_manifest.json b/services/network/test/service_unittest_manifest.json index 5ce5e98c..288f027 100644 --- a/services/network/test/service_unittest_manifest.json +++ b/services/network/test/service_unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/services/network/url_request_context_builder_mojo.cc b/services/network/url_request_context_builder_mojo.cc index 94187adb..a64473f1 100644 --- a/services/network/url_request_context_builder_mojo.cc +++ b/services/network/url_request_context_builder_mojo.cc
@@ -9,6 +9,7 @@ #include "net/proxy_resolution/pac_file_fetcher_impl.h" #include "net/proxy_resolution/proxy_config_service.h" #include "services/network/network_context.h" +#include "services/network/public/cpp/features.h" #if !defined(OS_IOS) #include "services/network/proxy_service_mojo.h" @@ -59,8 +60,16 @@ if (mojo_proxy_resolver_factory_) { std::unique_ptr<net::DhcpPacFileFetcher> dhcp_pac_file_fetcher = dhcp_fetcher_factory_->Create(url_request_context); - auto pac_file_fetcher = - net::PacFileFetcherImpl::CreateWithFileUrlSupport(url_request_context); + std::unique_ptr<net::PacFileFetcherImpl> pac_file_fetcher; + // https://crbug.com/839566 PAC file support is deprecated and disabled when + // the network service is enabled. It will eventually be disabled in all + // cases. + if (base::FeatureList::IsEnabled(network::features::kNetworkService)) { + pac_file_fetcher = net::PacFileFetcherImpl::Create(url_request_context); + } else { + pac_file_fetcher = net::PacFileFetcherImpl::CreateWithFileUrlSupport( + url_request_context); + } return CreateProxyResolutionServiceUsingMojoFactory( std::move(mojo_proxy_resolver_factory_), std::move(proxy_config_service), std::move(pac_file_fetcher),
diff --git a/services/preferences/local_state_manifest.json b/services/preferences/local_state_manifest.json index f3c2468..be096d5 100644 --- a/services/preferences/local_state_manifest.json +++ b/services/preferences/local_state_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "pref_client": [ - "prefs::mojom::PrefStoreConnector" + "prefs.mojom.PrefStoreConnector" ] }, "requires": {
diff --git a/services/preferences/manifest.json b/services/preferences/manifest.json index 047409d..2e38bb0 100644 --- a/services/preferences/manifest.json +++ b/services/preferences/manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "pref_client": [ - "prefs::mojom::PrefStoreConnector" + "prefs.mojom.PrefStoreConnector" ] }, "requires": {
diff --git a/services/preferences/unittest_manifest.json b/services/preferences/unittest_manifest.json index 5354cb8..c13a088 100644 --- a/services/preferences/unittest_manifest.json +++ b/services/preferences/unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/services/proxy_resolver/manifest.json b/services/proxy_resolver/manifest.json index 2e6b555..ab72750 100644 --- a/services/proxy_resolver/manifest.json +++ b/services/proxy_resolver/manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "factory": [ "proxy_resolver::mojom::ProxyResolverFactory" ] + "factory": [ "proxy_resolver.mojom.ProxyResolverFactory" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/resource_coordinator/manifest.json b/services/resource_coordinator/manifest.json index a9d4f28..11976ee0 100644 --- a/services/resource_coordinator/manifest.json +++ b/services/resource_coordinator/manifest.json
@@ -5,14 +5,14 @@ "service_manager:connector": { "provides": { "app": [ - "memory_instrumentation::mojom::Coordinator" + "memory_instrumentation.mojom.Coordinator" ], "coordination_unit_introspector": [ - "resource_coordinator::mojom::CoordinationUnitIntrospector" + "resource_coordinator.mojom.CoordinationUnitIntrospector" ], - "coordination_unit": [ "resource_coordinator::mojom::CoordinationUnitProvider" ], - "heap_profiler_helper": [ "memory_instrumentation::mojom::HeapProfilerHelper" ], - "page_signal": [ "resource_coordinator::mojom::PageSignalGenerator" ], + "coordination_unit": [ "resource_coordinator.mojom.CoordinationUnitProvider" ], + "heap_profiler_helper": [ "memory_instrumentation.mojom.HeapProfilerHelper" ], + "page_signal": [ "resource_coordinator.mojom.PageSignalGenerator" ], "tests": [ "*" ] }, "requires": {
diff --git a/services/service_manager/background/tests/test_service_manifest.json b/services/service_manager/background/tests/test_service_manifest.json index 02a177d..fbe5fc4 100644 --- a/services/service_manager/background/tests/test_service_manifest.json +++ b/services/service_manager/background/tests/test_service_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "background_service_manager_unittest:test_service": [ - "service_manager::mojom::TestService" + "service_manager.mojom.TestService" ] } }
diff --git a/services/service_manager/manifest.json b/services/service_manager/manifest.json index 44ad8445..6156cb86 100644 --- a/services/service_manager/manifest.json +++ b/services/service_manager/manifest.json
@@ -25,7 +25,7 @@ "service_manager:block_wildcard": [ ], "service_manager:service_manager": [ - "service_manager::mojom::ServiceManager" + "service_manager.mojom.ServiceManager" ] }, "requires": {
diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc index 755dadf..cc243a0b 100644 --- a/services/service_manager/service_manager.cc +++ b/services/service_manager/service_manager.cc
@@ -876,7 +876,7 @@ weak_ptr_factory_(this) { InterfaceProviderSpec spec; spec.provides[kCapability_ServiceManager].insert( - "service_manager::mojom::ServiceManager"); + "service_manager.mojom.ServiceManager"); spec.requires["*"].insert("service_manager:service_factory"); InterfaceProviderSpecMap specs; specs[mojom::kServiceManager_ConnectorSpec] = std::move(spec); @@ -1107,9 +1107,9 @@ // TODO(beng): It'd be great to build this from the manifest, however there's // a bit of a chicken-and-egg problem. InterfaceProviderSpec spec; - spec.provides["directory"].insert("filesystem::mojom::Directory"); - spec.provides["catalog:catalog"].insert("catalog::mojom::Catalog"); - spec.provides["control"].insert("catalog::mojom::CatalogControl"); + spec.provides["directory"].insert("filesystem.mojom.Directory"); + spec.provides["catalog:catalog"].insert("catalog.mojom.Catalog"); + spec.provides["control"].insert("catalog.mojom.CatalogControl"); InterfaceProviderSpecMap specs; specs[mojom::kServiceManager_ConnectorSpec] = std::move(spec);
diff --git a/services/service_manager/tests/connect/connect_test_app_a_manifest.json b/services/service_manager/tests/connect/connect_test_app_a_manifest.json index ee74b5a..f0c7c9ed 100644 --- a/services/service_manager/tests/connect/connect_test_app_a_manifest.json +++ b/services/service_manager/tests/connect/connect_test_app_a_manifest.json
@@ -5,12 +5,12 @@ "service_manager:connector": { "provides": { "connect_unittests:connect_test_service": [ - "service_manager::test::mojom::ConnectTestService" + "service_manager.test.mojom.ConnectTestService" ], "connect_unittests:standalone_app": [ - "service_manager::test::mojom::StandaloneApp" + "service_manager.test.mojom.StandaloneApp" ], - "connect_unittests:user_id_test": [ "service_manager::test::mojom::UserIdTest" ] + "connect_unittests:user_id_test": [ "service_manager.test.mojom.UserIdTest" ] }, "requires": { "connect_unittests": [ "connect_unittests:exposed_interface" ],
diff --git a/services/service_manager/tests/connect/connect_test_app_manifest.json b/services/service_manager/tests/connect/connect_test_app_manifest.json index 6b8a92c..23b68c4 100644 --- a/services/service_manager/tests/connect/connect_test_app_manifest.json +++ b/services/service_manager/tests/connect/connect_test_app_manifest.json
@@ -5,12 +5,12 @@ "service_manager:connector": { "provides": { "connect_unittests:connect_test_service": [ - "service_manager::test::mojom::ConnectTestService" + "service_manager.test.mojom.ConnectTestService" ], "connect_unittests:standalone_app": [ - "service_manager::test::mojom::StandaloneApp" + "service_manager.test.mojom.StandaloneApp" ], - "connect_unittests:user_id_test": [ "service_manager::test::mojom::UserIdTest" ] + "connect_unittests:user_id_test": [ "service_manager.test.mojom.UserIdTest" ] }, "requires": { "connect_unittests": [ "connect_unittests:exposed_interface" ],
diff --git a/services/service_manager/tests/connect/connect_test_class_app_manifest.json b/services/service_manager/tests/connect/connect_test_class_app_manifest.json index aaddd90d..f0be8b4 100644 --- a/services/service_manager/tests/connect/connect_test_class_app_manifest.json +++ b/services/service_manager/tests/connect/connect_test_class_app_manifest.json
@@ -4,9 +4,9 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "connect_unittests:class": [ "service_manager::test::mojom::ClassInterface" ], + "connect_unittests:class": [ "service_manager.test.mojom.ClassInterface" ], "connect_unittests:connect_test_service": [ - "service_manager::test::mojom::ConnectTestService" + "service_manager.test.mojom.ConnectTestService" ] } }
diff --git a/services/service_manager/tests/connect/connect_test_package_manifest.json b/services/service_manager/tests/connect/connect_test_package_manifest.json index 7c36707..646ad07 100644 --- a/services/service_manager/tests/connect/connect_test_package_manifest.json +++ b/services/service_manager/tests/connect/connect_test_package_manifest.json
@@ -5,10 +5,10 @@ "service_manager:connector": { "provides": { "connect_unittests:connect_test_service": [ - "service_manager::test::mojom::ConnectTestService" + "service_manager.test.mojom.ConnectTestService" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] } }
diff --git a/services/service_manager/tests/connect/connect_unittests_manifest.json b/services/service_manager/tests/connect/connect_unittests_manifest.json index 5a1e368..736c570 100644 --- a/services/service_manager/tests/connect/connect_unittests_manifest.json +++ b/services/service_manager/tests/connect/connect_unittests_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "connect_unittests:exposed_interface": [ - "service_manager::test::mojom::ExposedInterface" + "service_manager.test.mojom.ExposedInterface" ] }, "requires": {
diff --git a/services/service_manager/tests/lifecycle/app_manifest.json b/services/service_manager/tests/lifecycle/app_manifest.json index 3d56854f..469ed46 100644 --- a/services/service_manager/tests/lifecycle/app_manifest.json +++ b/services/service_manager/tests/lifecycle/app_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "lifecycle_unittest:lifecycle_control": [ - "service_manager::test::mojom::LifecycleControl" + "service_manager.test.mojom.LifecycleControl" ] } }
diff --git a/services/service_manager/tests/lifecycle/exe_manifest.json b/services/service_manager/tests/lifecycle/exe_manifest.json index ba3d729..7d2dfe6 100644 --- a/services/service_manager/tests/lifecycle/exe_manifest.json +++ b/services/service_manager/tests/lifecycle/exe_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "lifecycle_unittest:lifecycle_control": [ - "service_manager::test::mojom::LifecycleControl" + "service_manager.test.mojom.LifecycleControl" ] } }
diff --git a/services/service_manager/tests/lifecycle/package_app_a_manifest.json b/services/service_manager/tests/lifecycle/package_app_a_manifest.json index fb9e87ad..2826d92d 100644 --- a/services/service_manager/tests/lifecycle/package_app_a_manifest.json +++ b/services/service_manager/tests/lifecycle/package_app_a_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "lifecycle_unittest:lifecycle_control": [ - "service_manager::test::mojom::LifecycleControl" + "service_manager.test.mojom.LifecycleControl" ] } }
diff --git a/services/service_manager/tests/lifecycle/package_app_b_manifest.json b/services/service_manager/tests/lifecycle/package_app_b_manifest.json index fd62242..8c5e3ff9 100644 --- a/services/service_manager/tests/lifecycle/package_app_b_manifest.json +++ b/services/service_manager/tests/lifecycle/package_app_b_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "lifecycle_unittest:lifecycle_control": [ - "service_manager::test::mojom::LifecycleControl" + "service_manager.test.mojom.LifecycleControl" ] } }
diff --git a/services/service_manager/tests/lifecycle/package_manifest.json b/services/service_manager/tests/lifecycle/package_manifest.json index fce077b..e48efa0 100644 --- a/services/service_manager/tests/lifecycle/package_manifest.json +++ b/services/service_manager/tests/lifecycle/package_manifest.json
@@ -5,10 +5,10 @@ "service_manager:connector": { "provides": { "lifecycle_unittest:lifecycle_control": [ - "service_manager::test::mojom::LifecycleControl" + "service_manager.test.mojom.LifecycleControl" ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] } }
diff --git a/services/service_manager/tests/lifecycle/parent_manifest.json b/services/service_manager/tests/lifecycle/parent_manifest.json index 0b0e418..1b5ffa0b 100644 --- a/services/service_manager/tests/lifecycle/parent_manifest.json +++ b/services/service_manager/tests/lifecycle/parent_manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "lifecycle_unittest:parent": [ "service_manager::test::mojom::Parent" ] + "lifecycle_unittest:parent": [ "service_manager.test.mojom.Parent" ] }, "requires": { "lifecycle_unittest_app": [
diff --git a/services/service_manager/tests/service_manager/embedder_manifest.json b/services/service_manager/tests/service_manager/embedder_manifest.json index 491da5ddd..3f02ce23 100644 --- a/services/service_manager/tests/service_manager/embedder_manifest.json +++ b/services/service_manager/tests/service_manager/embedder_manifest.json
@@ -6,7 +6,7 @@ "provides": { "service_manager_unittest:embedder": [ ], "service_manager:service_factory": [ - "service_manager::mojom::ServiceFactory" + "service_manager.mojom.ServiceFactory" ] }, "requires": {
diff --git a/services/service_manager/tests/service_manager/service_manager_unittest_manifest.json b/services/service_manager/tests/service_manager/service_manager_unittest_manifest.json index ccbd8337..51665e2 100644 --- a/services/service_manager/tests/service_manager/service_manager_unittest_manifest.json +++ b/services/service_manager/tests/service_manager/service_manager_unittest_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "service_manager_unittest:create_instance_test": [ - "service_manager::test::mojom::CreateInstanceTest" + "service_manager.test.mojom.CreateInstanceTest" ] }, "requires": {
diff --git a/services/service_manager/tests/shutdown/shutdown_client_manifest.json b/services/service_manager/tests/shutdown/shutdown_client_manifest.json index 3de560b3..57101e73 100644 --- a/services/service_manager/tests/shutdown/shutdown_client_manifest.json +++ b/services/service_manager/tests/shutdown/shutdown_client_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "shutdown_unittest:shutdown_test_client_controller": [ - "service_manager::mojom::ShutdownTestClientController" + "service_manager.mojom.ShutdownTestClientController" ] }, "requires": {
diff --git a/services/service_manager/tests/shutdown/shutdown_service_manifest.json b/services/service_manager/tests/shutdown/shutdown_service_manifest.json index 41b2e46e..dcb69bb 100644 --- a/services/service_manager/tests/shutdown/shutdown_service_manifest.json +++ b/services/service_manager/tests/shutdown/shutdown_service_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "shutdown_unittest:shutdown_test_service": [ - "service_manager::mojom::ShutdownTestService" + "service_manager.mojom.ShutdownTestService" ] }, "requires": {
diff --git a/services/shape_detection/manifest.json b/services/shape_detection/manifest.json index 542148e..1f67f8dd 100644 --- a/services/shape_detection/manifest.json +++ b/services/shape_detection/manifest.json
@@ -4,9 +4,9 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "face_detection": [ "shape_detection::mojom::FaceDetectionProvider" ], - "barcode_detection": [ "shape_detection::mojom::BarcodeDetection" ], - "text_detection": [ "shape_detection::mojom::TextDetection" ] + "face_detection": [ "shape_detection.mojom.FaceDetectionProvider" ], + "barcode_detection": [ "shape_detection.mojom.BarcodeDetection" ], + "text_detection": [ "shape_detection.mojom.TextDetection" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/test/echo/manifest.json b/services/test/echo/manifest.json index 904809a7..e82550d 100644 --- a/services/test/echo/manifest.json +++ b/services/test/echo/manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "echo" : [ "echo::mojom::Echo" ] + "echo" : [ "echo.mojom.Echo" ] }, "requires": { "service_manager": [ "service_manager:all_users" ]
diff --git a/services/test/user_id/manifest.json b/services/test/user_id/manifest.json index a8708dd..3e5ad06b 100644 --- a/services/test/user_id/manifest.json +++ b/services/test/user_id/manifest.json
@@ -4,7 +4,7 @@ "interface_provider_specs": { "service_manager:connector": { "provides": { - "user_id" : [ "user_id::mojom::UserId" ] + "user_id" : [ "user_id.mojom.UserId" ] } } }
diff --git a/services/tracing/manifest.json b/services/tracing/manifest.json index c1347a95..25080d8 100644 --- a/services/tracing/manifest.json +++ b/services/tracing/manifest.json
@@ -5,10 +5,10 @@ "service_manager:connector": { "provides": { "app": [ - "tracing::mojom::AgentRegistry", - "tracing::mojom::PerfettoService" + "tracing.mojom.AgentRegistry", + "tracing.mojom.PerfettoService" ], - "tracing": [ "tracing::mojom::Coordinator" ], + "tracing": [ "tracing.mojom.Coordinator" ], "tests": [ "*" ] }, "requires": {
diff --git a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc index 02de2dc..b18bb61 100644 --- a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc +++ b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc
@@ -25,39 +25,57 @@ class MockProducerClient : public ProducerClient { public: MockProducerClient() - : delegate_(perfetto::base::kPageSize), stream_(&delegate_) {} + : delegate_(perfetto::base::kPageSize), stream_(&delegate_) { + trace_packet_.Reset(&stream_); + } std::unique_ptr<perfetto::TraceWriter> CreateTraceWriter( perfetto::BufferID target_buffer) override; - perfetto::protos::pbzero::TracePacket* NewTracePacket() { - trace_packet_.Reset(&stream_); - return &trace_packet_; - } - - std::unique_ptr<perfetto::protos::TracePacket> GetPreviousPacket() { - uint32_t message_size = trace_packet_.Finalize(); + void FlushPacketIfPossible() { // GetNewBuffer() in ScatteredStreamWriterNullDelegate doesn't // actually return a new buffer, but rather lets us access the buffer // buffer already used by protozero to write the TracePacket into. protozero::ContiguousMemoryRange buffer = delegate_.GetNewBuffer(); - EXPECT_GE(buffer.size(), message_size); - auto proto = std::make_unique<perfetto::protos::TracePacket>(); - EXPECT_TRUE(proto->ParseFromArray(buffer.begin, message_size)); + uint32_t message_size = trace_packet_.Finalize(); + if (message_size) { + EXPECT_GE(buffer.size(), message_size); - return proto; + auto proto = std::make_unique<perfetto::protos::TracePacket>(); + EXPECT_TRUE(proto->ParseFromArray(buffer.begin, message_size)); + if (proto->has_chrome_events()) { + finalized_packets_.push_back(std::move(proto)); + } + } + + stream_.Reset(buffer); + trace_packet_.Reset(&stream_); + } + + perfetto::protos::pbzero::TracePacket* NewTracePacket() { + FlushPacketIfPossible(); + + return &trace_packet_; + } + + size_t GetFinalizedPacketCount() { + FlushPacketIfPossible(); + return finalized_packets_.size(); } const google::protobuf::RepeatedPtrField<perfetto::protos::ChromeTraceEvent> - GetChromeTraceEvents() { - auto proto = GetPreviousPacket(); + GetChromeTraceEvents(size_t packet_index = 0) { + FlushPacketIfPossible(); + EXPECT_GT(finalized_packets_.size(), packet_index); - auto event_bundle = proto->chrome_events(); + auto event_bundle = finalized_packets_[packet_index]->chrome_events(); return event_bundle.trace_events(); } private: + std::vector<std::unique_ptr<perfetto::protos::TracePacket>> + finalized_packets_; perfetto::protos::pbzero::TracePacket trace_packet_; protozero::ScatteredStreamWriterNullDelegate delegate_; protozero::ScatteredStreamWriter stream_; @@ -276,6 +294,52 @@ EXPECT_EQ(static_cast<uintptr_t>(0xF00D), trace_args[1].pointer_value()); } +TEST_F(TraceEventDataSourceTest, CompleteTraceEventsIntoSeparateBeginAndEnd) { + static const char kCategoryGroup[] = "foo"; + static const char kEventName[] = "bar"; + + CreateTraceEventDataSource(); + + auto* category_group_enabled = + TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(kCategoryGroup); + + trace_event_internal::TraceID trace_event_trace_id = + trace_event_internal::kNoId; + + auto handle = trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( + TRACE_EVENT_PHASE_COMPLETE, category_group_enabled, kEventName, + trace_event_trace_id.scope(), trace_event_trace_id.raw_id(), + 1 /* thread_id */, + base::TimeTicks() + base::TimeDelta::FromMicroseconds(10), + trace_event_trace_id.id_flags() | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, + trace_event_internal::kNoId); + + base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDurationExplicit( + category_group_enabled, kEventName, handle, + base::TimeTicks() + base::TimeDelta::FromMicroseconds(20), + base::ThreadTicks() + base::TimeDelta::FromMicroseconds(50)); + + // TRACE_EVENT_PHASE_COMPLETE events should internally emit a + // TRACE_EVENT_PHASE_BEGIN event first, and then a TRACE_EVENT_PHASE_END event + // when the duration is attempted set on the first event. + EXPECT_EQ(2u, producer_client()->GetFinalizedPacketCount()); + + auto events_from_first_packet = producer_client()->GetChromeTraceEvents(0); + EXPECT_EQ(events_from_first_packet.size(), 1); + + auto begin_trace_event = events_from_first_packet[0]; + EXPECT_EQ(TRACE_EVENT_PHASE_BEGIN, begin_trace_event.phase()); + EXPECT_EQ(10, begin_trace_event.timestamp()); + + auto events_from_second_packet = producer_client()->GetChromeTraceEvents(1); + EXPECT_EQ(events_from_second_packet.size(), 1); + + auto end_trace_event = events_from_second_packet[0]; + EXPECT_EQ(TRACE_EVENT_PHASE_END, end_trace_event.phase()); + EXPECT_EQ(20, end_trace_event.timestamp()); + EXPECT_EQ(50, end_trace_event.thread_timestamp()); +} + } // namespace } // namespace tracing
diff --git a/services/ui/manifest.json b/services/ui/manifest.json index 8b1395c..0e086f7 100644 --- a/services/ui/manifest.json +++ b/services/ui/manifest.json
@@ -10,72 +10,72 @@ // NOTE: when adding a new interface chances are you will want to add it // to window_manager as well. "app": [ - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "ui::mojom::Clipboard", - "ui::mojom::Gpu", - "ui::mojom::IMEDriver", - "ui::mojom::InputDeviceServer", - "ui::mojom::ScreenProvider", - "ui::mojom::WindowTreeFactory" + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "ui.mojom.Clipboard", + "ui.mojom.Gpu", + "ui.mojom.IMEDriver", + "ui.mojom.InputDeviceServer", + "ui.mojom.ScreenProvider", + "ui.mojom.WindowTreeFactory" ], "arc_manager" : [ - "ui::mojom::Arc" + "ui.mojom.Arc" ], "video_detector": [ - "ui::mojom::VideoDetector" + "ui.mojom.VideoDetector" ], // Interfaces provided by mus-gpu for mus-ws. "ozone": [ - "ui::ozone::mojom::DeviceCursor", - "ui::ozone::mojom::DrmDevice" + "ui.ozone.mojom.DeviceCursor", + "ui.ozone.mojom.DrmDevice" ], "test": [ - "ui::mojom::EventInjector", - "ui::mojom::WindowServerTest" + "ui.mojom.EventInjector", + "ui.mojom.WindowServerTest" ], "discardable_memory": [ - "discardable_memory::mojom::DiscardableSharedMemoryManager" + "discardable_memory.mojom.DiscardableSharedMemoryManager" ], "display_controller": [ - "display::mojom::DisplayController" + "display.mojom.DisplayController" ], "display_output_protection": [ - "display::mojom::OutputProtection" + "display.mojom.OutputProtection" ], "display_dev": [ - "display::mojom::DevDisplayController" + "display.mojom.DevDisplayController" ], "gpu_client": [ - "ui::mojom::Gpu" + "ui.mojom.Gpu" ], "ime_registrar": [ - "ui::mojom::IMERegistrar" + "ui.mojom.IMERegistrar" ], "input_device_controller": [ - "ui::mojom::InputDeviceController" + "ui.mojom.InputDeviceController" ], "privileged": [ // Injecting events is security-sensitive. - "ui::mojom::EventInjector" + "ui.mojom.EventInjector" ], "window_manager": [ - "discardable_memory::mojom::DiscardableSharedMemoryManager", - "display::mojom::DisplayController", - "display::mojom::NativeDisplayDelegate", - "ui::mojom::AccessibilityManager", - "ui::mojom::Clipboard", - "ui::mojom::EventInjector", - "ui::mojom::Gpu", - "ui::mojom::IMEDriver", - "ui::mojom::InputDeviceController", - "ui::mojom::InputDeviceServer", - "ui::mojom::ScreenProvider", - "ui::mojom::TouchDeviceServer", - "ui::mojom::UserActivityMonitor", - "ui::mojom::WindowManagerWindowTreeFactory" + "discardable_memory.mojom.DiscardableSharedMemoryManager", + "display.mojom.DisplayController", + "display.mojom.NativeDisplayDelegate", + "ui.mojom.AccessibilityManager", + "ui.mojom.Clipboard", + "ui.mojom.EventInjector", + "ui.mojom.Gpu", + "ui.mojom.IMEDriver", + "ui.mojom.InputDeviceController", + "ui.mojom.InputDeviceServer", + "ui.mojom.ScreenProvider", + "ui.mojom.TouchDeviceServer", + "ui.mojom.UserActivityMonitor", + "ui.mojom.WindowManagerWindowTreeFactory" ], "window_tree_host_factory": [ - "ui::mojom::WindowTreeHostFactory" + "ui.mojom.WindowTreeHostFactory" ] }, "requires": {
diff --git a/services/ui/test_ws/manifest.json b/services/ui/test_ws/manifest.json index 666b7be..24882180 100644 --- a/services/ui/test_ws/manifest.json +++ b/services/ui/test_ws/manifest.json
@@ -6,10 +6,10 @@ "service_manager:connector": { "provides": { "app": [ - "ui::mojom::WindowTreeFactory" + "ui.mojom.WindowTreeFactory" ], "window_tree_host_factory": [ - "ui::mojom::WindowTreeHostFactory" + "ui.mojom.WindowTreeHostFactory" ] } }
diff --git a/services/ui/ws/test_manifest.json b/services/ui/ws/test_manifest.json index 71ffecb..ae155484 100644 --- a/services/ui/ws/test_manifest.json +++ b/services/ui/ws/test_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "ui:window_tree_client": [ - "ui::mojom::WindowTreeClient" + "ui.mojom.WindowTreeClient" ] }, "requires": {
diff --git a/services/ui/ws2/client_window.cc b/services/ui/ws2/client_window.cc index c605ab2..a00884f1 100644 --- a/services/ui/ws2/client_window.cc +++ b/services/ui/ws2/client_window.cc
@@ -6,9 +6,12 @@ #include "components/viz/host/host_frame_sink_manager.h" #include "services/ui/ws2/window_host_frame_sink_client.h" +#include "services/ui/ws2/window_service_client.h" #include "ui/aura/env.h" #include "ui/aura/window.h" +#include "ui/aura/window_targeter.h" #include "ui/compositor/compositor.h" +#include "ui/events/event_handler.h" DEFINE_UI_CLASS_PROPERTY_TYPE(ui::ws2::ClientWindow*); @@ -18,6 +21,186 @@ DEFINE_OWNED_UI_CLASS_PROPERTY_KEY(ui::ws2::ClientWindow, kClientWindowKey, nullptr); + +// Returns true if |location| is in the non-client area (or outside the bounds +// of the window). A return value of false means the location is in the client +// area. +bool IsLocationInNonClientArea(const aura::Window* window, + const gfx::Point& location) { + const ClientWindow* client_window = ClientWindow::GetMayBeNull(window); + if (!client_window || !client_window->IsTopLevel()) + return false; + + // Locations outside the bounds, assume it's in extended hit test area, which + // is non-client area. + if (!gfx::Rect(window->bounds().size()).Contains(location)) + return true; + + gfx::Rect client_area(window->bounds().size()); + client_area.Inset(client_window->client_area()); + if (client_area.Contains(location)) + return false; + + for (const auto& rect : client_window->additional_client_areas()) { + if (rect.Contains(location)) + return false; + } + return true; +} + +// WindowTargeter used for ClientWindows. This is used for two purposes: +// . If the location is in the non-client area, then child Windows are not +// considered. This is done to ensure the delegate of the window (which is +// local) sees the event. +// . To ensure |WindowServiceClient::intercepts_events_| is honored. +class ClientWindowTargeter : public aura::WindowTargeter { + public: + explicit ClientWindowTargeter(ClientWindow* client_window) + : client_window_(client_window) {} + ~ClientWindowTargeter() override = default; + + // aura::WindowTargeter: + ui::EventTarget* FindTargetForEvent(ui::EventTarget* event_target, + ui::Event* event) override { + aura::Window* window = static_cast<aura::Window*>(event_target); + DCHECK_EQ(window, client_window_->window()); + if (client_window_->embedded_window_service_client() && + client_window_->owning_window_service_client() && + client_window_->owning_window_service_client()->intercepts_events()) { + return event_target->CanAcceptEvent(*event) ? window : nullptr; + } + return aura::WindowTargeter::FindTargetForEvent(event_target, event); + } + + private: + ClientWindow* const client_window_; + + DISALLOW_COPY_AND_ASSIGN(ClientWindowTargeter); +}; + +// ClientWindowEventHandler is used to forward events to the client. +// ClientWindowEventHandler adds itself to the pre-phase to ensure it's +// considered before the Window's delegate (or other EventHandlers). +class ClientWindowEventHandler : public ui::EventHandler { + public: + explicit ClientWindowEventHandler(ClientWindow* client_window) + : client_window_(client_window) { + client_window->window()->AddPreTargetHandler( + this, ui::EventTarget::Priority::kSystem); + } + ~ClientWindowEventHandler() override { + client_window_->window()->RemovePreTargetHandler(this); + } + + ClientWindow* client_window() { return client_window_; } + + // ui::EventHandler: + void OnEvent(ui::Event* event) override { + // Because we StopPropagation() in the pre-phase an event should never be + // received for other phases. + DCHECK_EQ(event->phase(), EP_PRETARGET); + // Events typically target the embedded client. Exceptions include the + // embedder intercepts events, or the window is a top-level and the event is + // in the non-client area. + WindowServiceClient* client = + client_window_->owning_window_service_client() && + client_window_->owning_window_service_client() + ->intercepts_events() + ? client_window_->owning_window_service_client() + : client_window_->embedded_window_service_client(); + DCHECK(client); + client->SendEventToClient(client_window_->window(), *event); + + // The event was forwarded to the remote client. We don't want it handled + // locally too. + event->StopPropagation(); + } + + private: + ClientWindow* const client_window_; + + DISALLOW_COPY_AND_ASSIGN(ClientWindowEventHandler); +}; + +// ui::EventHandler used for top-levels. Some events that target the non-client +// area are not sent to the client, instead are handled locally. For example, +// if a press occurs in the non-client area, then the event is not sent to +// the client, it's handled locally. +class TopLevelEventHandler : public ClientWindowEventHandler { + public: + explicit TopLevelEventHandler(ClientWindow* client_window) + : ClientWindowEventHandler(client_window) { + // Top-levels should always have an owning_window_service_client(). + // OnEvent() assumes this. + DCHECK(client_window->owning_window_service_client()); + } + + ~TopLevelEventHandler() override = default; + + // ClientWindowEventHandler: + void OnEvent(ui::Event* event) override { + if (event->phase() != EP_PRETARGET) { + // All work is done in the pre-phase. If this branch is hit, it means + // event propagation was not stopped, and normal processing should + // continue. Early out to avoid sending the event to the client again. + return; + } + + if (!event->IsLocatedEvent()) { + ClientWindowEventHandler::OnEvent(event); + return; + } + + // This code does has two specific behaviors. It's used to ensure events + // go to the right target (either local, or the remote client). + // . a press-release sequence targets only one. If in non-client area then + // local, otherwise remote client. + // . mouse-moves (not drags) go to both targets. + // TODO(sky): handle touch events too. + // TODO(sky): this also needs to handle capture changed and if the window + // (or any ancestors) change visibility. + bool stop_propagation = false; + if (client_window()->HasNonClientArea() && event->IsMouseEvent()) { + if (!mouse_down_state_) { + if (event->type() == ui::ET_MOUSE_PRESSED) { + mouse_down_state_ = std::make_unique<MouseDownState>(); + mouse_down_state_->in_non_client_area = IsLocationInNonClientArea( + client_window()->window(), event->AsLocatedEvent()->location()); + if (mouse_down_state_->in_non_client_area) + return; // Don't send presses to client. + stop_propagation = true; + } + } else { + // Else case, in a press-release. + const bool was_press_in_non_client_area = + mouse_down_state_->in_non_client_area; + if (event->type() == ui::ET_MOUSE_RELEASED && + event->AsMouseEvent()->button_flags() == + event->AsMouseEvent()->changed_button_flags()) { + mouse_down_state_.reset(); + } + if (was_press_in_non_client_area) + return; // Don't send release to client since press didn't go there. + stop_propagation = true; + } + } + client_window()->owning_window_service_client()->SendEventToClient( + client_window()->window(), *event); + if (stop_propagation) + event->StopPropagation(); + } + + private: + struct MouseDownState { + bool in_non_client_area = false; + }; + + // Non-null while in a mouse press-drag-release cycle. + std::unique_ptr<MouseDownState> mouse_down_state_; + + DISALLOW_COPY_AND_ASSIGN(TopLevelEventHandler); +}; + } // namespace ClientWindow::~ClientWindow() = default; @@ -25,17 +208,19 @@ // static ClientWindow* ClientWindow::Create(aura::Window* window, WindowServiceClient* client, - const viz::FrameSinkId& frame_sink_id) { + const viz::FrameSinkId& frame_sink_id, + bool is_top_level) { DCHECK(!GetMayBeNull(window)); // Owned by |window|. - ClientWindow* client_window = new ClientWindow(window, client, frame_sink_id); + ClientWindow* client_window = + new ClientWindow(window, client, frame_sink_id, is_top_level); window->SetProperty(kClientWindowKey, client_window); return client_window; } // static const ClientWindow* ClientWindow::GetMayBeNull(const aura::Window* window) { - return window->GetProperty(kClientWindowKey); + return window ? window->GetProperty(kClientWindowKey) : nullptr; } void ClientWindow::SetFrameSinkId(const viz::FrameSinkId& frame_sink_id) { @@ -61,6 +246,32 @@ window_host_frame_sink_client_->OnFrameSinkIdChanged(); } +void ClientWindow::SetClientArea( + const gfx::Insets& insets, + const std::vector<gfx::Rect>& additional_client_areas) { + if (client_area_ == insets && + additional_client_areas == additional_client_areas_) { + return; + } + + additional_client_areas_ = additional_client_areas; + client_area_ = insets; + + // TODO(sky): update cursor if over this window. + NOTIMPLEMENTED_LOG_ONCE(); +} + +bool ClientWindow::HasNonClientArea() const { + return owning_window_service_client_ && + owning_window_service_client_->IsTopLevel(window_) && + (!client_area_.IsEmpty() || !additional_client_areas_.empty()); +} + +bool ClientWindow::IsTopLevel() const { + return owning_window_service_client_ && + owning_window_service_client_->IsTopLevel(window_); +} + void ClientWindow::AttachCompositorFrameSink( viz::mojom::CompositorFrameSinkRequest compositor_frame_sink, viz::mojom::CompositorFrameSinkClientPtr client) { @@ -74,10 +285,24 @@ ClientWindow::ClientWindow(aura::Window* window, WindowServiceClient* client, - const viz::FrameSinkId& frame_sink_id) + const viz::FrameSinkId& frame_sink_id, + bool is_top_level) : window_(window), owning_window_service_client_(client), - frame_sink_id_(frame_sink_id) {} + frame_sink_id_(frame_sink_id) { + if (is_top_level) + event_handler_ = std::make_unique<TopLevelEventHandler>(this); + else + event_handler_ = std::make_unique<ClientWindowEventHandler>(this); + window_->SetEventTargeter(std::make_unique<ClientWindowTargeter>(this)); + // In order for a window to receive events it must have a target_handler() + // (see Window::CanAcceptEvent()). Normally the delegate is the TargetHandler, + // but if the delegate is null, then so is the target_handler(). Set + // |event_handler_| as the target_handler() to force the Window to accept + // events. + if (!window_->delegate()) + window_->SetTargetHandler(event_handler_.get()); +} } // namespace ws2 } // namespace ui
diff --git a/services/ui/ws2/client_window.h b/services/ui/ws2/client_window.h index e2996ac..01e5be9 100644 --- a/services/ui/ws2/client_window.h +++ b/services/ui/ws2/client_window.h
@@ -5,17 +5,24 @@ #ifndef SERVICES_UI_WS2_CLIENT_WINDOW_H_ #define SERVICES_UI_WS2_CLIENT_WINDOW_H_ +#include <vector> + #include "base/component_export.h" #include "base/macros.h" #include "components/viz/common/surfaces/frame_sink_id.h" #include "services/ui/ws2/ids.h" #include "services/viz/public/interfaces/compositing/compositor_frame_sink.mojom.h" +#include "ui/gfx/geometry/insets.h" +#include "ui/gfx/geometry/rect.h" namespace aura { class Window; } namespace ui { + +class EventHandler; + namespace ws2 { class WindowHostFrameSinkClient; @@ -30,9 +37,13 @@ // Creates a new ClientWindow. The lifetime of the ClientWindow is tied to // that of the Window (the Window ends up owning the ClientWindow). + // |is_top_level| is true if the window represents a top-level window. static ClientWindow* Create(aura::Window* window, WindowServiceClient* client, - const viz::FrameSinkId& frame_sink_id); + const viz::FrameSinkId& frame_sink_id, + bool is_top_level); + + aura::Window* window() { return window_; } // Returns the ClientWindow associated with a window, null if not created yet. static ClientWindow* GetMayBeNull(aura::Window* window) { @@ -61,6 +72,19 @@ void SetFrameSinkId(const viz::FrameSinkId& frame_sink_id); const viz::FrameSinkId& frame_sink_id() const { return frame_sink_id_; } + const std::vector<gfx::Rect>& additional_client_areas() const { + return additional_client_areas_; + } + const gfx::Insets& client_area() const { return client_area_; } + void SetClientArea(const gfx::Insets& insets, + const std::vector<gfx::Rect>& additional_client_areas); + + // Returns true if the window is a top-level window and there is at least some + // non-client area. + bool HasNonClientArea() const; + + bool IsTopLevel() const; + void AttachCompositorFrameSink( viz::mojom::CompositorFrameSinkRequest compositor_frame_sink, viz::mojom::CompositorFrameSinkClientPtr client); @@ -68,7 +92,8 @@ private: ClientWindow(aura::Window*, WindowServiceClient* client, - const viz::FrameSinkId& frame_sink_id); + const viz::FrameSinkId& frame_sink_id, + bool is_top_level); aura::Window* window_; @@ -99,6 +124,13 @@ // window. std::unique_ptr<WindowHostFrameSinkClient> window_host_frame_sink_client_; + // Together |client_area_| and |additional_client_areas_| are used to specify + // the client area. See SetClientArea() in mojom for details. + gfx::Insets client_area_; + std::vector<gfx::Rect> additional_client_areas_; + + std::unique_ptr<ui::EventHandler> event_handler_; + DISALLOW_COPY_AND_ASSIGN(ClientWindow); };
diff --git a/services/ui/ws2/pointer_watcher.cc b/services/ui/ws2/pointer_watcher.cc index a177197..a49d523 100644 --- a/services/ui/ws2/pointer_watcher.cc +++ b/services/ui/ws2/pointer_watcher.cc
@@ -14,6 +14,17 @@ namespace ui { namespace ws2 { +// static +std::unique_ptr<Event> PointerWatcher::CreateEventForClient( + const Event& event) { + // Client code expects to get PointerEvents. + if (event.IsMouseEvent()) + return std::make_unique<ui::PointerEvent>(*event.AsMouseEvent()); + if (event.IsTouchEvent()) + return std::make_unique<ui::PointerEvent>(*event.AsTouchEvent()); + return Event::Clone(event); +} + PointerWatcher::PointerWatcher(WindowServiceClient* client) : client_(client) { aura::Env::GetInstance()->AddWindowEventDispatcherObserver(this); } @@ -51,15 +62,8 @@ // only send pointer events if an event wasn't also sent to the client. // Part of https://crbug.com/837692 std::unique_ptr<ui::Event> event_to_send; - // Client code expects to get PointerEvents. - if (event.IsMouseEvent()) - event_to_send = std::make_unique<ui::PointerEvent>(*event.AsMouseEvent()); - else if (event.IsTouchEvent()) - event_to_send = std::make_unique<ui::PointerEvent>(*event.AsTouchEvent()); - else - NOTREACHED(); client_->SendPointerWatcherEventToClient(dispatcher->host()->GetDisplayId(), - std::move(event_to_send)); + CreateEventForClient(event)); } } // namespace ws2
diff --git a/services/ui/ws2/pointer_watcher.h b/services/ui/ws2/pointer_watcher.h index 80b3925..956636b 100644 --- a/services/ui/ws2/pointer_watcher.h +++ b/services/ui/ws2/pointer_watcher.h
@@ -5,10 +5,15 @@ #ifndef SERVICES_UI_WS2_POINTER_WATCHER_H_ #define SERVICES_UI_WS2_POINTER_WATCHER_H_ +#include <memory> + #include "base/macros.h" #include "ui/aura/window_event_dispatcher_observer.h" namespace ui { + +class Event; + namespace ws2 { class WindowServiceClient; @@ -33,6 +38,10 @@ explicit PointerWatcher(WindowServiceClient* client); ~PointerWatcher() override; + // Applies any necessary transformations on the event before sending to the + // client. + static std::unique_ptr<Event> CreateEventForClient(const Event& event); + void set_types_to_watch(TypesToWatch types) { types_to_watch_ = types; } private:
diff --git a/services/ui/ws2/test_manifest.json b/services/ui/ws2/test_manifest.json index ae3bbba..c0090dc 100644 --- a/services/ui/ws2/test_manifest.json +++ b/services/ui/ws2/test_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "ui:window_tree_client": [ - "ui::mojom::WindowTreeClient" + "ui.mojom.WindowTreeClient" ] }, "requires": {
diff --git a/services/ui/ws2/test_window_service_delegate.cc b/services/ui/ws2/test_window_service_delegate.cc index 8e99ec501..e3e36d6 100644 --- a/services/ui/ws2/test_window_service_delegate.cc +++ b/services/ui/ws2/test_window_service_delegate.cc
@@ -20,7 +20,8 @@ aura::PropertyConverter* property_converter, const base::flat_map<std::string, std::vector<uint8_t>>& properties) { std::unique_ptr<aura::Window> window = - std::make_unique<aura::Window>(nullptr); + std::make_unique<aura::Window>(delegate_for_next_top_level_); + delegate_for_next_top_level_ = nullptr; window->Init(LAYER_NOT_DRAWN); if (top_level_parent_) top_level_parent_->AddChild(window.get());
diff --git a/services/ui/ws2/test_window_service_delegate.h b/services/ui/ws2/test_window_service_delegate.h index 9121b3e..7af0840 100644 --- a/services/ui/ws2/test_window_service_delegate.h +++ b/services/ui/ws2/test_window_service_delegate.h
@@ -8,6 +8,10 @@ #include "base/macros.h" #include "services/ui/ws2/window_service_delegate.h" +namespace aura { +class WindowDelegate; +} + namespace ui { namespace ws2 { @@ -22,6 +26,10 @@ top_level_parent_ = parent; } + void set_delegate_for_next_top_level(aura::WindowDelegate* delegate) { + delegate_for_next_top_level_ = delegate; + } + // WindowServiceDelegate: std::unique_ptr<aura::Window> NewTopLevel( aura::PropertyConverter* property_converter, @@ -30,6 +38,7 @@ private: aura::Window* top_level_parent_; + aura::WindowDelegate* delegate_for_next_top_level_ = nullptr; DISALLOW_COPY_AND_ASSIGN(TestWindowServiceDelegate); };
diff --git a/services/ui/ws2/test_window_tree_client.cc b/services/ui/ws2/test_window_tree_client.cc index 97ba2ac..991d395 100644 --- a/services/ui/ws2/test_window_tree_client.cc +++ b/services/ui/ws2/test_window_tree_client.cc
@@ -12,6 +12,12 @@ namespace ui { namespace ws2 { +TestWindowTreeClient::InputEvent::InputEvent() = default; + +TestWindowTreeClient::InputEvent::InputEvent(InputEvent&& other) = default; + +TestWindowTreeClient::InputEvent::~InputEvent() = default; + TestWindowTreeClient::ObservedPointerEvent::ObservedPointerEvent() = default; TestWindowTreeClient::ObservedPointerEvent::ObservedPointerEvent( @@ -25,6 +31,15 @@ TestWindowTreeClient::~TestWindowTreeClient() = default; +TestWindowTreeClient::InputEvent TestWindowTreeClient::PopInputEvent() { + if (input_events_.empty()) + return InputEvent(); + + InputEvent event = std::move(input_events_.front()); + input_events_.pop(); + return event; +} + TestWindowTreeClient::ObservedPointerEvent TestWindowTreeClient::PopObservedPointerEvent() { if (observed_pointer_events_.empty()) @@ -159,7 +174,20 @@ const gfx::PointF& event_location_in_screen_pixel_layout, std::unique_ptr<ui::Event> event, bool matches_pointer_watcher) { - tree_->OnWindowInputEventAck(event_id, mojom::EventResult::HANDLED); + tracker_.OnWindowInputEvent(window_id, *event, display_id, + event_location_in_screen_pixel_layout, + matches_pointer_watcher); + + InputEvent input_event; + input_event.event_id = event_id; + input_event.window_id = window_id; + input_event.display_id = display_id; + input_event.event = std::move(event); + input_event.matches_pointer_watcher = matches_pointer_watcher; + input_events_.push(std::move(input_event)); + + if (tree_) + tree_->OnWindowInputEventAck(event_id, mojom::EventResult::HANDLED); } void TestWindowTreeClient::OnPointerEventObserved(
diff --git a/services/ui/ws2/test_window_tree_client.h b/services/ui/ws2/test_window_tree_client.h index 0813840..d1bf5a3 100644 --- a/services/ui/ws2/test_window_tree_client.h +++ b/services/ui/ws2/test_window_tree_client.h
@@ -21,6 +21,19 @@ class TestWindowTreeClient : public mojom::WindowTreeClient, public TestChangeTracker::Delegate { public: + // Created every time OnWindowInputEvent() is called. + struct InputEvent { + InputEvent(); + InputEvent(InputEvent&& other); + ~InputEvent(); + + uint32_t event_id; + Id window_id; + int64_t display_id; + std::unique_ptr<ui::Event> event; + bool matches_pointer_watcher; + }; + // An ObservedPointerEvent is created for each call to // OnPointerEventObserved() struct ObservedPointerEvent { @@ -36,6 +49,13 @@ TestWindowTreeClient(); ~TestWindowTreeClient() override; + std::queue<InputEvent>& input_events() { return input_events_; } + + // Returns the oldest InputEvent that was received by way of + // OnWindowInputEvent(). If no events have been observed, |event| in the + // returned object is null. + InputEvent PopInputEvent(); + std::queue<ObservedPointerEvent>& observed_pointer_events() { return observed_pointer_events_; } @@ -163,6 +183,7 @@ mojom::WindowTreePtr tree_; Id root_window_id_ = 0; bool track_root_bounds_changes_ = false; + std::queue<InputEvent> input_events_; std::queue<ObservedPointerEvent> observed_pointer_events_; DISALLOW_COPY_AND_ASSIGN(TestWindowTreeClient);
diff --git a/services/ui/ws2/window_service.cc b/services/ui/ws2/window_service.cc index fbf5f8a..68e6dfc9 100644 --- a/services/ui/ws2/window_service.cc +++ b/services/ui/ws2/window_service.cc
@@ -38,7 +38,8 @@ const viz::FrameSinkId frame_sink_id = ClientWindowId(kWindowServerClientId, next_window_id_++); CHECK_NE(0u, next_window_id_); - return ClientWindow::Create(window, nullptr, frame_sink_id); + const bool is_top_level = false; + return ClientWindow::Create(window, nullptr, frame_sink_id, is_top_level); } std::unique_ptr<WindowServiceClient> WindowService::CreateWindowServiceClient(
diff --git a/services/ui/ws2/window_service_client.cc b/services/ui/ws2/window_service_client.cc index c789b2b..1b4dba9 100644 --- a/services/ui/ws2/window_service_client.cc +++ b/services/ui/ws2/window_service_client.cc
@@ -77,6 +77,20 @@ } } +void WindowServiceClient::SendEventToClient(aura::Window* window, + const Event& event) { + // TODO(sky): remove event_id. + const uint32_t event_id = 1; + // Events should only come to windows connected to displays. + DCHECK(window->GetHost()); + const int64_t display_id = window->GetHost()->GetDisplayId(); + // TODO(sky): wire up |matches_pointer_watcher|. + const bool matches_pointer_watcher = false; + window_tree_client_->OnWindowInputEvent( + event_id, TransportIdForWindow(window), display_id, 0u, gfx::PointF(), + PointerWatcher::CreateEventForClient(event), matches_pointer_watcher); +} + void WindowServiceClient::SendPointerWatcherEventToClient( int64_t display_id, std::unique_ptr<ui::Event> event) { @@ -84,6 +98,11 @@ kInvalidTransportId, display_id); } +bool WindowServiceClient::IsTopLevel(aura::Window* window) { + auto iter = FindClientRootWithRoot(window); + return iter != client_roots_.end() && (*iter)->is_top_level(); +} + ClientRoot* WindowServiceClient::CreateClientRoot( aura::Window* window, mojom::WindowTreePtr window_tree) { @@ -206,13 +225,10 @@ return window && FindClientRootWithRoot(window) != client_roots_.end(); } -bool WindowServiceClient::IsTopLevel(aura::Window* window) { - auto iter = FindClientRootWithRoot(window); - return iter != client_roots_.end() && (*iter)->is_top_level(); -} - WindowServiceClient::ClientRoots::iterator WindowServiceClient::FindClientRootWithRoot(aura::Window* window) { + if (!window) + return client_roots_.end(); for (auto iter = client_roots_.begin(); iter != client_roots_.end(); ++iter) { if (iter->get()->window() == window) return iter; @@ -234,10 +250,11 @@ aura::Window* WindowServiceClient::AddClientCreatedWindow( const ClientWindowId& id, + bool is_top_level, std::unique_ptr<aura::Window> window_ptr) { aura::Window* window = window_ptr.get(); client_created_windows_.insert(std::move(window_ptr)); - ClientWindow::Create(window, this, id); + ClientWindow::Create(window, this, id, is_top_level); AddWindowToKnownWindows(window, id); return window; } @@ -374,8 +391,9 @@ DVLOG(1) << "NewWindow failed (id is not valid for client)"; return false; } + const bool is_top_level = false; aura::Window* window = AddClientCreatedWindow( - client_window_id, std::make_unique<aura::Window>(nullptr)); + client_window_id, is_top_level, std::make_unique<aura::Window>(nullptr)); SetWindowType(window, aura::GetWindowTypeFromProperties(properties)); for (auto& pair : properties) { @@ -585,10 +603,11 @@ mojom::WindowTreeClientPtr window_tree_client, uint32_t flags) { DVLOG(3) << "Embed window_id=" << window_id; - if (flags & mojom::kEmbedFlagEmbedderInterceptsEvents) { - // TODO: add support for this. - NOTIMPLEMENTED(); - } + + // mojom::kEmbedFlagEmbedderInterceptsEvents is inherited, otherwise an + // embedder could effectively circumvent it by embedding itself. + if (intercepts_events_) + flags = mojom::kEmbedFlagEmbedderInterceptsEvents; aura::Window* window = GetWindowByClientId(window_id); if (!window) { @@ -600,13 +619,10 @@ return false; } - // mojom::kEmbedFlagEmbedderInterceptsEvents is inherited, otherwise an - // embedder could effectively circumvent it by embedding itself. - const bool intercepts_events = intercepts_events_; - auto new_client_binding = std::make_unique<WindowServiceClientBinding>(); new_client_binding->InitForEmbed( - window_service_, std::move(window_tree_client), intercepts_events, window, + window_service_, std::move(window_tree_client), + flags & mojom::kEmbedFlagEmbedderInterceptsEvents, window, base::BindOnce(&WindowServiceClient::OnChildBindingConnectionLost, base::Unretained(this), new_client_binding.get())); @@ -714,8 +730,9 @@ return; } top_level_ptr->set_owned_by_parent(false); - aura::Window* top_level = - AddClientCreatedWindow(client_window_id, std::move(top_level_ptr)); + const bool is_top_level = true; + aura::Window* top_level = AddClientCreatedWindow( + client_window_id, is_top_level, std::move(top_level_ptr)); ClientWindow::GetMayBeNull(top_level)->SetFrameSinkId(client_window_id); const int64_t display_id = display::Screen::GetScreen()->GetDisplayNearestWindow(top_level).id(); @@ -773,10 +790,26 @@ } void WindowServiceClient::SetClientArea( - Id window_id, + Id transport_window_id, const gfx::Insets& insets, const base::Optional<std::vector<gfx::Rect>>& additional_client_areas) { - NOTIMPLEMENTED(); + const ClientWindowId window_id = MakeClientWindowId(transport_window_id); + aura::Window* window = GetWindowByClientId(window_id); + DVLOG(3) << "SetClientArea client window_id=" << window_id.ToString() + << " insets=" << insets.ToString(); + if (!window) { + DVLOG(1) << "SetClientArea failed (invalid window id)"; + return; + } + if (!IsClientRootWindow(window) || !IsTopLevel(window)) { + DVLOG(1) << "SetClientArea failed (access denied)"; + return; + } + + ClientWindow* client_window = ClientWindow::GetMayBeNull(window); + DCHECK(client_window); // Must exist because of preceeding conditionals. + client_window->SetClientArea( + insets, additional_client_areas.value_or(std::vector<gfx::Rect>())); } void WindowServiceClient::SetHitTestMask( @@ -957,10 +990,9 @@ window->SetEventTargetingPolicy(policy); } -void WindowServiceClient::OnWindowInputEventAck( - uint32_t event_id, - ::ui::mojom::EventResult result) { - NOTIMPLEMENTED(); +void WindowServiceClient::OnWindowInputEventAck(uint32_t event_id, + mojom::EventResult result) { + // TODO(sky): this is no longer needed, remove. } void WindowServiceClient::DeactivateWindow(Id window_id) {
diff --git a/services/ui/ws2/window_service_client.h b/services/ui/ws2/window_service_client.h index 3fd951f0..2d4b268 100644 --- a/services/ui/ws2/window_service_client.h +++ b/services/ui/ws2/window_service_client.h
@@ -68,11 +68,20 @@ void InitForEmbed(aura::Window* root, mojom::WindowTreePtr window_tree_ptr); void InitFromFactory(); + bool intercepts_events() const { return intercepts_events_; } + + // Notifies the client than an event has been received. + void SendEventToClient(aura::Window* window, const ui::Event& event); + // Notifies the client that an event matching a pointer watcher has been // received. void SendPointerWatcherEventToClient(int64_t display_id, std::unique_ptr<Event> event); + // Returns true if |window| was created by the client calling + // NewTopLevelWindow(). + bool IsTopLevel(aura::Window* window); + WindowService* window_service() { return window_service_; } private: @@ -119,9 +128,6 @@ bool IsClientCreatedWindow(aura::Window* window); bool IsClientRootWindow(aura::Window* window); - // Returns true if |window| was created by the client calling - // NewTopLevelWindow(). - bool IsTopLevel(aura::Window* window); ClientRoots::iterator FindClientRootWithRoot(aura::Window* window); // Returns true if |window| has been exposed to this client. A client @@ -133,6 +139,7 @@ // Called for windows created by the client (including top-levels). aura::Window* AddClientCreatedWindow( const ClientWindowId& id, + bool is_top_level, std::unique_ptr<aura::Window> window_ptr); // Adds/removes a Window from the set of windows known to the client. This @@ -230,7 +237,7 @@ void SetWindowTransform(uint32_t change_id, Id window_id, const gfx::Transform& transform) override; - void SetClientArea(Id window_id, + void SetClientArea(Id transport_window_id, const gfx::Insets& insets, const base::Optional<std::vector<gfx::Rect>>& additional_client_areas) override; @@ -329,11 +336,13 @@ mojom::WindowTreeClient* window_tree_client_; - // If true the client sees all the decendants of windows with embeddings - // in them that were created by this client, and additionally any events - // normally targeted at a descendant are targeted at the first ancestor Window - // created by this client. This is done to allow a client to intercept events - // normally targeted at descendants and dispatch them using some other means. + // If true, all events that would normally target another client embedded by + // this client are sent to this client. For example, consider the Window + // hierarchy A->B->C where client 1 created A and B, client 1 embedded + // client 2 in window B, and client 2 created C. If an event occurs that would + // normally target C, then the event is instead sent to client 1 with a target + // of B. If true, any clients embedded by this client never get normal events + // (they can still observer pointer events). const bool intercepts_events_; // Controls whether the client can change the visibility of the roots.
diff --git a/services/ui/ws2/window_service_client_test_helper.cc b/services/ui/ws2/window_service_client_test_helper.cc index 3c5cd0e..0b4ed09 100644 --- a/services/ui/ws2/window_service_client_test_helper.cc +++ b/services/ui/ws2/window_service_client_test_helper.cc
@@ -52,6 +52,15 @@ local_surface_id); } +void WindowServiceClientTestHelper::SetClientArea( + aura::Window* window, + const gfx::Insets& insets, + base::Optional<std::vector<gfx::Rect>> additional_client_areas) { + window_service_client_->SetClientArea( + window_service_client_->TransportIdForWindow(window), insets, + additional_client_areas); +} + void WindowServiceClientTestHelper::SetWindowProperty( aura::Window* window, const std::string& name,
diff --git a/services/ui/ws2/window_service_client_test_helper.h b/services/ui/ws2/window_service_client_test_helper.h index b465c264..b7f0790 100644 --- a/services/ui/ws2/window_service_client_test_helper.h +++ b/services/ui/ws2/window_service_client_test_helper.h
@@ -10,15 +10,17 @@ #include "base/containers/flat_map.h" #include "base/macros.h" +#include "base/optional.h" #include "services/ui/public/interfaces/window_tree_constants.mojom.h" #include "services/ui/ws2/ids.h" +#include "ui/gfx/geometry/rect.h" namespace aura { class Window; } namespace gfx { -class Rect; +class Insets; } namespace ui { @@ -53,6 +55,11 @@ void SetWindowBounds(aura::Window* window, const gfx::Rect& bounds, uint32_t change_id = 1); + void SetClientArea( + aura::Window* window, + const gfx::Insets& insets, + base::Optional<std::vector<gfx::Rect>> additional_client_areas = + base::Optional<std::vector<gfx::Rect>>()); void SetWindowProperty(aura::Window* window, const std::string& name, const std::vector<uint8_t>& value,
diff --git a/services/ui/ws2/window_service_client_unittest.cc b/services/ui/ws2/window_service_client_unittest.cc index 0e0518b..084f2ef3 100644 --- a/services/ui/ws2/window_service_client_unittest.cc +++ b/services/ui/ws2/window_service_client_unittest.cc
@@ -248,6 +248,198 @@ data->properties[ui::mojom::WindowManager::kAlwaysOnTop_Property])); } +TEST(WindowServiceClientTest, MovePressDragRelease) { + WindowServiceTestHelper helper; + TestWindowTreeClient* window_tree_client = helper.window_tree_client(); + aura::Window* top_level = helper.helper()->NewTopLevelWindow(1); + ASSERT_TRUE(top_level); + + top_level->Show(); + top_level->SetBounds(gfx::Rect(10, 10, 100, 100)); + + test::EventGenerator event_generator(helper.root()); + { + event_generator.MoveMouseTo(50, 50); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_ENTERED, event->type()); + EXPECT_EQ(gfx::Point(40, 40), event->AsLocatedEvent()->location()); + event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_MOVED, event->type()); + EXPECT_EQ(gfx::Point(40, 40), event->AsLocatedEvent()->location()); + } + + { + event_generator.PressLeftButton(); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_DOWN, event->type()); + EXPECT_EQ(gfx::Point(40, 40), event->AsLocatedEvent()->location()); + } + + { + event_generator.MoveMouseTo(0, 0); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_MOVED, event->type()); + EXPECT_EQ(gfx::Point(-10, -10), event->AsLocatedEvent()->location()); + } + + { + event_generator.ReleaseLeftButton(); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_UP, event->type()); + EXPECT_EQ(gfx::Point(-10, -10), event->AsLocatedEvent()->location()); + } +} + +class EventRecordingWindowDelegate : public aura::test::TestWindowDelegate { + public: + EventRecordingWindowDelegate() = default; + ~EventRecordingWindowDelegate() override = default; + + std::queue<std::unique_ptr<ui::Event>>& events() { return events_; } + + std::unique_ptr<Event> PopEvent() { + if (events_.empty()) + return nullptr; + auto event = std::move(events_.front()); + events_.pop(); + return event; + } + + void ClearEvents() { + std::queue<std::unique_ptr<ui::Event>> events; + std::swap(events_, events); + } + + // aura::test::TestWindowDelegate: + void OnEvent(ui::Event* event) override { + events_.push(ui::Event::Clone(*event)); + } + + private: + std::queue<std::unique_ptr<ui::Event>> events_; + + DISALLOW_COPY_AND_ASSIGN(EventRecordingWindowDelegate); +}; + +TEST(WindowServiceClientTest, MoveFromClientToNonClient) { + EventRecordingWindowDelegate window_delegate; + WindowServiceTestHelper helper; + TestWindowTreeClient* window_tree_client = helper.window_tree_client(); + helper.delegate()->set_delegate_for_next_top_level(&window_delegate); + aura::Window* top_level = helper.helper()->NewTopLevelWindow(1); + ASSERT_TRUE(top_level); + + top_level->Show(); + top_level->SetBounds(gfx::Rect(10, 10, 100, 100)); + helper.helper()->SetClientArea(top_level, gfx::Insets(10, 0, 0, 0)); + + window_delegate.ClearEvents(); + + test::EventGenerator event_generator(helper.root()); + { + event_generator.MoveMouseTo(50, 50); + // Move generates both an enter and move. + std::unique_ptr<Event> enter_event = + window_tree_client->PopInputEvent().event; + ASSERT_TRUE(enter_event); + EXPECT_EQ(ET_POINTER_ENTERED, enter_event->type()); + EXPECT_EQ(gfx::Point(40, 40), enter_event->AsLocatedEvent()->location()); + std::unique_ptr<Event> move_event = + window_tree_client->PopInputEvent().event; + ASSERT_TRUE(move_event); + EXPECT_EQ(ET_POINTER_MOVED, move_event->type()); + EXPECT_EQ(gfx::Point(40, 40), move_event->AsLocatedEvent()->location()); + + // The delegate should see the same events. + ASSERT_EQ(2u, window_delegate.events().size()); + enter_event = window_delegate.PopEvent(); + EXPECT_EQ(ET_MOUSE_ENTERED, enter_event->type()); + EXPECT_EQ(gfx::Point(40, 40), enter_event->AsLocatedEvent()->location()); + move_event = window_delegate.PopEvent(); + EXPECT_EQ(ET_MOUSE_MOVED, move_event->type()); + EXPECT_EQ(gfx::Point(40, 40), move_event->AsLocatedEvent()->location()); + } + + // Move the mouse over the non-client area. + // The event is still sent to the client, and the delegate. + { + event_generator.MoveMouseTo(15, 16); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_MOVED, event->type()); + EXPECT_EQ(gfx::Point(5, 6), event->AsLocatedEvent()->location()); + + // Delegate should also get the events. + event = window_delegate.PopEvent(); + EXPECT_EQ(ET_MOUSE_MOVED, event->type()); + EXPECT_EQ(gfx::Point(5, 6), event->AsLocatedEvent()->location()); + } + + // Only the delegate should get the press in this case. + { + event_generator.PressLeftButton(); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_FALSE(event); + + event = window_delegate.PopEvent(); + EXPECT_EQ(ET_MOUSE_PRESSED, event->type()); + EXPECT_EQ(gfx::Point(5, 6), event->AsLocatedEvent()->location()); + } + + // Move mouse into client area, only the delegate should get the move (drag). + { + event_generator.MoveMouseTo(35, 51); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_FALSE(event); + + event = window_delegate.PopEvent(); + ASSERT_TRUE(event); + EXPECT_EQ(ET_MOUSE_DRAGGED, event->type()); + EXPECT_EQ(gfx::Point(25, 41), event->AsLocatedEvent()->location()); + } + + // Release over client area, again only delegate should get it. + { + event_generator.ReleaseLeftButton(); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_FALSE(event); + + event = window_delegate.PopEvent(); + ASSERT_TRUE(event); + EXPECT_EQ(ET_MOUSE_RELEASED, event->type()); + } + + { + event_generator.MoveMouseTo(26, 50); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_MOVED, event->type()); + EXPECT_EQ(gfx::Point(16, 40), event->AsLocatedEvent()->location()); + + // Delegate should also get the events. + event = window_delegate.PopEvent(); + EXPECT_EQ(ET_MOUSE_MOVED, event->type()); + EXPECT_EQ(gfx::Point(16, 40), event->AsLocatedEvent()->location()); + } + + // Press in client area. Only the client should get the event. + { + event_generator.PressLeftButton(); + std::unique_ptr<Event> event = window_tree_client->PopInputEvent().event; + ASSERT_TRUE(event); + EXPECT_EQ(ET_POINTER_DOWN, event->type()); + EXPECT_EQ(gfx::Point(16, 40), event->AsLocatedEvent()->location()); + + event = window_delegate.PopEvent(); + ASSERT_FALSE(event); + } +} + TEST(WindowServiceClientTest, PointerWatcher) { WindowServiceTestHelper helper; TestWindowTreeClient* window_tree_client = helper.window_tree_client();
diff --git a/services/video_capture/service_manifest.json b/services/video_capture/service_manifest.json index 7955ef3c8..245b98f 100644 --- a/services/video_capture/service_manifest.json +++ b/services/video_capture/service_manifest.json
@@ -5,10 +5,10 @@ "interface_provider_specs": { "service_manager:connector": { "provides" : { - "capture" : ["video_capture::mojom::DeviceFactoryProvider"], + "capture" : ["video_capture.mojom.DeviceFactoryProvider"], "tests" : [ - "video_capture::mojom::DeviceFactoryProvider", - "video_capture::mojom::TestingControls" + "video_capture.mojom.DeviceFactoryProvider", + "video_capture.mojom.TestingControls" ] }, "requires" : {
diff --git a/services/viz/manifest.json b/services/viz/manifest.json index a2d462d..5b2dfc85 100644 --- a/services/viz/manifest.json +++ b/services/viz/manifest.json
@@ -12,7 +12,7 @@ "service_manager:connector": { "provides": { "viz_host": [ - "viz::mojom::VizMain" + "viz.mojom.VizMain" ] }, "requires": {
diff --git a/services/viz/test_manifest.json b/services/viz/test_manifest.json index b7b772e..66d8277 100644 --- a/services/viz/test_manifest.json +++ b/services/viz/test_manifest.json
@@ -5,7 +5,7 @@ "service_manager:connector": { "provides": { "viz_host": [ - "viz::mojom::VizMain" + "viz.mojom.VizMain" ] }, "requires": {
diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h index 085b7fd..e3163f80 100644 --- a/skia/config/SkUserConfig.h +++ b/skia/config/SkUserConfig.h
@@ -220,11 +220,6 @@ #define SK_SUPPORT_LEGACY_SVG_ARC_TO #endif -// Remove after M66 branch to use new read/writePixels implementations -#ifndef SK_LEGACY_GPU_PIXEL_OPS -#define SK_LEGACY_GPU_PIXEL_OPS -#endif - #ifndef SK_SUPPORT_LEGACY_YUV_COLORSPACE #define SK_SUPPORT_LEGACY_YUV_COLORSPACE #endif
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json index db89817..24d8ae7 100644 --- a/testing/buildbot/chromium.android.fyi.json +++ b/testing/buildbot/chromium.android.fyi.json
@@ -723,6 +723,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "media_blink_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "media_service_unittests" }, { @@ -912,6 +918,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "media_blink_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "media_service_unittests" }, { @@ -1514,6 +1526,32 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_os": "LMY47W", + "device_type": "sprout" + } + ], + "expiration": 14400 + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -2776,6 +2814,50 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "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": "NRD91N", + "device_type": "bullhead" + } + ], + "expiration": 10800, + "hard_timeout": 960, + "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" + } + ] + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -3546,6 +3628,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "media_blink_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "media_service_unittests" }, { @@ -3746,6 +3834,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "media_blink_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "media_service_unittests" }, { @@ -4490,6 +4584,30 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_type": "coho" + } + ] + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -5383,6 +5501,30 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_type": "gce_x86" + } + ] + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index ec0e943..a8f1b11 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -1466,6 +1466,48 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "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": "KTU84P", + "device_type": "hammerhead" + } + ], + "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" + } + ] + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -3064,6 +3106,48 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "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": "KTU84P", + "device_type": "hammerhead" + } + ], + "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" + } + ] + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -4618,6 +4702,49 @@ "--bucket", "chromium-result-details", "--test-name", + "media_blink_unittests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "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": "KTU84Z", + "device_type": "flo" + } + ], + "expiration": 10800, + "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" + } + ] + }, + "test": "media_blink_unittests" + }, + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", "media_service_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -14282,48 +14409,6 @@ "--bucket", "chromium-result-details", "--test-name", - "gin_unittests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "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": "KTU84P", - "device_type": "hammerhead" - } - ], - "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" - } - ] - }, - "test": "gin_unittests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "gl_tests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -15045,48 +15130,6 @@ "--bucket", "chromium-result-details", "--test-name", - "service_manager_unittests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "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": "KTU84P", - "device_type": "hammerhead" - } - ], - "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" - } - ] - }, - "test": "service_manager_unittests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "services_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json index e109446..544f8241 100644 --- a/testing/buildbot/chromium.clang.json +++ b/testing/buildbot/chromium.clang.json
@@ -326,6 +326,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -715,6 +721,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -912,6 +924,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -1034,6 +1052,12 @@ }, { "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "service_manager_unittests" + }, + { + "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ { @@ -1226,6 +1250,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -1348,6 +1378,12 @@ }, { "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "service_manager_unittests" + }, + { + "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ { @@ -1533,6 +1569,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -1649,6 +1691,12 @@ }, { "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "service_manager_unittests" + }, + { + "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ { @@ -1853,6 +1901,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -1977,6 +2031,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -2203,6 +2263,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -2327,6 +2393,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -2553,6 +2625,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -2677,6 +2755,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -2903,6 +2987,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -3027,6 +3117,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -4053,48 +4149,6 @@ "--bucket", "chromium-result-details", "--test-name", - "gin_unittests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "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": "KTU84P", - "device_type": "hammerhead" - } - ], - "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" - } - ] - }, - "test": "gin_unittests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "gl_tests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -4816,48 +4870,6 @@ "--bucket", "chromium-result-details", "--test-name", - "service_manager_unittests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "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": "KTU84P", - "device_type": "hammerhead" - } - ], - "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" - } - ] - }, - "test": "service_manager_unittests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "services_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -5406,48 +5418,6 @@ "--bucket", "chromium-result-details", "--test-name", - "webview_instrumentation_test_apk" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "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": "KTU84P", - "device_type": "hammerhead" - } - ], - "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" - } - ] - }, - "test": "webview_instrumentation_test_apk" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "wtf_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -6466,6 +6436,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -6804,6 +6780,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -7134,6 +7116,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -7495,6 +7483,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "skia_unittests" }, { @@ -7827,6 +7821,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -8037,6 +8037,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -8139,6 +8145,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -8396,6 +8408,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -8492,6 +8510,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -8695,6 +8719,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -8819,6 +8849,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -9045,6 +9081,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -9169,6 +9211,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -9395,6 +9443,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -9519,6 +9573,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -9745,6 +9805,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -9869,6 +9935,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -10095,6 +10167,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -10219,6 +10297,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -10445,6 +10529,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -10569,6 +10659,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -10795,6 +10891,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -10919,6 +11021,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -11145,6 +11253,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -11269,6 +11383,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -11495,6 +11615,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -11619,6 +11745,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -11845,6 +11977,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -11969,6 +12107,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -12326,6 +12470,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -12644,6 +12794,17 @@ } ] }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "os": "Windows-10" + } + ] + }, "test": "google_apis_unittests" }, { @@ -12866,6 +13027,17 @@ } ] }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "os": "Windows-10" + } + ] + }, "test": "services_unittests" }, {
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index ec9071d..97ec789 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -648,6 +648,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -1037,6 +1043,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -1307,6 +1319,16 @@ "test": "interactive_ui_tests" }, { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": false + }, + "test": "interactive_ui_tests" + }, + { "swarming": { "can_use_on_swarming_builders": false }, @@ -1394,6 +1416,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "skia_unittests" }, { @@ -1709,6 +1737,16 @@ "test": "interactive_ui_tests" }, { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": false + }, + "test": "interactive_ui_tests" + }, + { "swarming": { "can_use_on_swarming_builders": false }, @@ -1796,6 +1834,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "skia_unittests" }, { @@ -2066,6 +2110,16 @@ "test": "interactive_ui_tests" }, { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "interactive_ui_tests" + }, + { "swarming": { "can_use_on_swarming_builders": true }, @@ -2153,6 +2207,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -3351,6 +3411,16 @@ "can_use_on_swarming_builders": true }, "test": "content_unittests" + }, + { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "interactive_ui_tests" } ], "isolated_scripts": [ @@ -5083,6 +5153,16 @@ "test": "content_unittests" }, { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "interactive_ui_tests" + }, + { "swarming": { "can_use_on_swarming_builders": true }, @@ -5328,6 +5408,16 @@ "test": "interactive_ui_tests" }, { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "interactive_ui_tests" + }, + { "swarming": { "can_use_on_swarming_builders": true }, @@ -5667,6 +5757,17 @@ } ] }, + "test": "media_blink_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_type": "coho" + } + ] + }, "test": "media_service_unittests" }, { @@ -6143,6 +6244,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -6431,6 +6538,16 @@ "test": "interactive_ui_tests" }, { + "args": [ + "--enable-features=VizDisplayCompositor" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "interactive_ui_tests" + }, + { "swarming": { "can_use_on_swarming_builders": true }, @@ -6518,6 +6635,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -6763,6 +6886,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -6881,6 +7010,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -7486,6 +7621,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "skia_unittests" }, { @@ -7775,6 +7916,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "google_apis_unittests" }, { @@ -7895,6 +8042,12 @@ "swarming": { "can_use_on_swarming_builders": false }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": false + }, "test": "setup_unittests" }, { @@ -9592,6 +9745,16 @@ }, { "args": [ + "--enable-features=VizDisplayCompositor,ViewsBrowserWindows" + ], + "name": "viz_interactive_ui_tests", + "swarming": { + "can_use_on_swarming_builders": true + }, + "test": "interactive_ui_tests" + }, + { + "args": [ "--enable-features=ViewsBrowserWindows" ], "swarming": { @@ -9723,6 +9886,15 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "args": [ + "--enable-features=ViewsBrowserWindows" + ], + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, {
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index d35774e..f17ddaf 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -1115,6 +1115,16 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "args": [ + "--test-launcher-batch-limit=1", + "--test-launcher-print-test-stdio=always" + ], + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -1607,6 +1617,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -1880,6 +1896,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -2008,6 +2030,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -2298,6 +2326,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -2431,6 +2465,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -2820,6 +2860,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "skia_unittests" }, { @@ -3186,6 +3232,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, { @@ -3397,6 +3449,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "gin_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "google_apis_unittests" }, { @@ -3494,6 +3552,12 @@ "swarming": { "can_use_on_swarming_builders": true }, + "test": "service_manager_unittests" + }, + { + "swarming": { + "can_use_on_swarming_builders": true + }, "test": "services_unittests" }, {
diff --git a/testing/buildbot/chromium.perf.fyi.json b/testing/buildbot/chromium.perf.fyi.json index 8b8389c0..3cb9967fa 100644 --- a/testing/buildbot/chromium.perf.fyi.json +++ b/testing/buildbot/chromium.perf.fyi.json
@@ -6,7 +6,8 @@ "-v", "--browser=android-chromium", "--upload-results", - "--run-ref-build" + "--run-ref-build", + "--test-shard-map-filename=benchmark_android_bot_map.json" ], "isolate_name": "performance_test_suite", "merge": { @@ -496,7 +497,8 @@ "-v", "--browser=release", "--upload-results", - "--run-ref-build" + "--run-ref-build", + "--test-shard-map-filename=benchmark_desktop_bot_map.json" ], "isolate_name": "performance_test_suite", "merge": { @@ -657,9 +659,9 @@ "-v", "--browser=reference", "--upload-results", - "--testing=true", "--xvfb", - "--run-ref-build" + "--run-ref-build", + "--test-shard-map-filename=benchmark_bot_map.json" ], "isolate_name": "telemetry_perf_tests_without_chrome", "merge": { @@ -706,7 +708,8 @@ "-v", "--browser=android-chromium", "--upload-results", - "--run-ref-build" + "--run-ref-build", + "--test-shard-map-filename=benchmark_android_bot_map.json" ], "isolate_name": "performance_test_suite", "merge": { @@ -754,7 +757,8 @@ "-v", "--browser=android-webview", "--upload-results", - "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" + "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk", + "--test-shard-map-filename=benchmark_android_bot_map.json" ], "isolate_name": "performance_webview_test_suite", "merge": {
diff --git a/testing/buildbot/chromium.perf.json b/testing/buildbot/chromium.perf.json index 794b8fe..9843e12 100644 --- a/testing/buildbot/chromium.perf.json +++ b/testing/buildbot/chromium.perf.json
@@ -3795,7 +3795,7 @@ "-v", "--upload-results", "--browser=android-chromium", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_mobile", @@ -3824,7 +3824,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -3855,7 +3855,7 @@ "-v", "--upload-results", "--browser=android-chromium", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_mobile", @@ -3884,7 +3884,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -8548,7 +8548,7 @@ "-v", "--upload-results", "--browser=android-chromium", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_mobile", @@ -8577,7 +8577,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -8608,7 +8608,7 @@ "-v", "--upload-results", "--browser=android-chromium", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_mobile", @@ -8637,7 +8637,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -11271,7 +11271,7 @@ "-v", "--upload-results", "--browser=android-webview", - "--output-format=chartjson", + "--output-format=histograms", "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" ], "isolate_name": "telemetry_perf_webview_tests", @@ -11301,7 +11301,7 @@ "-v", "--upload-results", "--browser=android-webview", - "--output-format=chartjson", + "--output-format=histograms", "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" ], "isolate_name": "telemetry_perf_webview_tests", @@ -11331,7 +11331,7 @@ "-v", "--upload-results", "--browser=android-webview", - "--output-format=chartjson", + "--output-format=histograms", "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" ], "isolate_name": "telemetry_perf_webview_tests", @@ -13555,7 +13555,7 @@ "-v", "--upload-results", "--browser=android-webview", - "--output-format=chartjson", + "--output-format=histograms", "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" ], "isolate_name": "telemetry_perf_webview_tests", @@ -13585,7 +13585,7 @@ "-v", "--upload-results", "--browser=android-webview", - "--output-format=chartjson", + "--output-format=histograms", "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" ], "isolate_name": "telemetry_perf_webview_tests", @@ -13615,7 +13615,7 @@ "-v", "--upload-results", "--browser=android-webview", - "--output-format=chartjson", + "--output-format=histograms", "--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk" ], "isolate_name": "telemetry_perf_webview_tests", @@ -17787,7 +17787,7 @@ "-v", "--upload-results", "--browser=android-chromium", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_mobile", @@ -17816,7 +17816,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -17847,7 +17847,7 @@ "-v", "--upload-results", "--browser=android-chromium", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_mobile", @@ -17876,7 +17876,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -22118,7 +22118,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -22148,7 +22148,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -22180,7 +22180,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -22210,7 +22210,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -26160,7 +26160,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -26190,7 +26190,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -26222,7 +26222,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -26252,7 +26252,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -30186,7 +30186,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -30216,7 +30216,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -30248,7 +30248,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -30278,7 +30278,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -34062,7 +34062,7 @@ "-v", "--upload-results", "--browser=release_x64", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -34092,7 +34092,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -34124,7 +34124,7 @@ "-v", "--upload-results", "--browser=release_x64", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -34154,7 +34154,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -37980,7 +37980,7 @@ "-v", "--upload-results", "--browser=release_x64", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -38010,7 +38010,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -38042,7 +38042,7 @@ "-v", "--upload-results", "--browser=release_x64", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -38072,7 +38072,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -41964,7 +41964,7 @@ "-v", "--upload-results", "--browser=release_x64", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -41994,7 +41994,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -42026,7 +42026,7 @@ "-v", "--upload-results", "--browser=release_x64", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -42056,7 +42056,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -45927,7 +45927,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.common_desktop", @@ -45957,7 +45957,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -45989,7 +45989,7 @@ "-v", "--upload-results", "--browser=release", - "--output-format=chartjson" + "--output-format=histograms" ], "isolate_name": "telemetry_perf_tests", "name": "system_health.memory_desktop", @@ -46019,7 +46019,7 @@ "-v", "--upload-results", "--browser=reference", - "--output-format=chartjson", + "--output-format=histograms", "--max-failures=5", "--output-trace-tag=_ref" ], @@ -46719,7 +46719,8 @@ "-v", "--browser=release", "--upload-results", - "--run-ref-build" + "--run-ref-build", + "--test-shard-map-filename=benchmark_desktop_bot_map.json" ], "isolate_name": "performance_test_suite", "merge": { @@ -46854,7 +46855,8 @@ "-v", "--browser=release", "--upload-results", - "--run-ref-build" + "--run-ref-build", + "--test-shard-map-filename=benchmark_desktop_bot_map.json" ], "isolate_name": "performance_test_suite", "merge": {
diff --git a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter b/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter index 4a34fc0..8a51e4f 100644 --- a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter +++ b/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter
@@ -6,8 +6,6 @@ # See https://crbug.com/769401 # Uncategorized timeouts or test failures. --BackgroundXhrTest.HttpAuth --BackgroundXhrTest.TlsClientAuth -ChromeSecurityExploitBrowserTest.CreateFilesystemURLInExtensionOrigin -DisabledSignInIsolationBrowserTest.SyntheticTrial -DomainReliabilityBrowserTest.Upload @@ -146,6 +144,9 @@ -ExtensionWebRequestApiTest.WebRequestClientsGoogleComProtection # Note WebRequestUnloadImmediately is disabled on Linux -ExtensionWebRequestApiTest.WebRequestUnloadImmediately +# http://crbug.com/841827 +-BackgroundXhrTest.HttpAuth +-BackgroundXhrTest.TlsClientAuth # https://crbug.com/721400 # WebSocket with the network service
diff --git a/testing/buildbot/filters/viz.browser_tests.filter b/testing/buildbot/filters/viz.browser_tests.filter index 9341403..15bf268 100644 --- a/testing/buildbot/filters/viz.browser_tests.filter +++ b/testing/buildbot/filters/viz.browser_tests.filter
@@ -36,18 +36,6 @@ # Incorrect Focus State crbug.com/818205 -WebViewFocusBrowserPluginSpecificTest.TouchFocusesEmbedder -# Windows timeouts. https://crbug.com/821029 --BrowserNavigatorTest.Disposition_NewPopupFromAppPopup --ExtensionApiCaptureTest.CaptureNullWindow --ManifestVerifierBrowserTest.* --OmniboxPopupContentsViewTest.ThemeIntegration/* --PDFIsolatedExtensionTest.MultipleDomains --PrefHashBrowserTest* --StartupBrowserCreatorTest.ProfilesWithoutPagesNotLaunched --UserInitiatedRunsDisabled* --UserInitiatedRunsEnabled* --WithVaryingSeeds/ChromeCleanerPromptUserTest.* - # Mac # Shutdown error. https://crbug.com/823276 -PluginPowerSaverBrowserTest.SmallerThanPlayIcon
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 0ba65895..6c76198 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1435,23 +1435,6 @@ }, 'gin_unittests': { 'remove_from': [ - # On chromium.android, unclear why these aren't run. - 'KitKat Phone Tester (dbg)', - 'KitKat Phone Tester (rel)', - 'KitKat Tablet Tester', - 'Lollipop Phone Tester', - 'Lollipop Tablet Tester', - 'Marshmallow 64 bit Tester', - 'Marshmallow Phone Tester (rel)', - 'Marshmallow Tablet Tester', - 'Nougat Phone Tester', - # chromium.android.fyi - 'Jelly Bean Tester', - 'Lollipop Consumer Tester', - 'Lollipop Low-end Tester', - 'Unswarmed N5 Tests Dummy Builder', - 'Unswarmed N5X Tests Dummy Builder', - 'x86 Cloud Tester', # chromium.chromiumos 'Linux ChromiumOS Tests (dbg)(1)', 'linux-chromeos-dbg', @@ -2005,25 +1988,6 @@ ], }, 'media_blink_unittests': { - 'remove_from': [ - # On chromium.android, unclear why these aren't run on all bots. - 'KitKat Phone Tester (dbg)', - 'KitKat Phone Tester (rel)', - 'KitKat Tablet Tester', - 'Nougat Phone Tester', - # chromium.android.fyi - 'Jelly Bean Tester', - 'Lollipop Consumer Tester', - 'Lollipop Low-end Tester', - 'Unswarmed N5 Tests Dummy Builder', - 'Unswarmed N5X Tests Dummy Builder', - 'x64 Device Tester', - 'x86 Cloud Tester', - # chromium.clang - 'ToTAndroid x64', - # chromium.fyi - 'Out of Process Profiling Android', - ], 'modifications': { 'Lollipop Tablet Tester': { 'swarming': { @@ -2479,24 +2443,6 @@ }, 'service_manager_unittests': { 'remove_from': [ - # On chromium.android, unclear why these aren't run. - 'KitKat Phone Tester (dbg)', - 'KitKat Phone Tester (rel)', - 'KitKat Tablet Tester', - 'Lollipop Phone Tester', - 'Lollipop Tablet Tester', - 'Marshmallow 64 bit Tester', - 'Marshmallow Phone Tester (rel)', - 'Marshmallow Tablet Tester', - 'Nougat Phone Tester', - # chromium.android.fyi - 'Jelly Bean Tester', - 'Lollipop Consumer Tester', - 'Lollipop Low-end Tester', - 'Unswarmed N5 Tests Dummy Builder', - 'Unswarmed N5X Tests Dummy Builder', - 'x64 Device Tester', - 'x86 Cloud Tester', # chromium.chromiumos 'Linux ChromiumOS Tests (dbg)(1)', 'linux-chromeos-dbg', @@ -3619,8 +3565,9 @@ # chromium.android.fyi 'Android Tests with Tracing', 'Jelly Bean Tester', - # chromium.clang + # chromium.clang; matching chromium.android, the test fails on these. 'ToTAndroid x64', + 'ToTAndroid', # On chromium.swarm, this should possibly be being run (or removed # from Android N5X Swarm). 'Android N5 Swarm',
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index dc83b7d..fe9e00a 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -1310,10 +1310,12 @@ }, }, 'extensions_unittests': {}, + 'gin_unittests': {}, # crbug.com/843124 'native_theme_unittests': {}, 'pdf_unittests': {}, 'ppapi_unittests': {}, 'printing_unittests': {}, + 'service_manager_unittests': {}, # crbug.com/843134 'views_unittests': {}, }, @@ -1378,12 +1380,6 @@ 'boringssl_crypto_tests': {}, 'boringssl_ssl_tests': {}, 'libjingle_xmpp_unittests': {}, - 'service_manager_unittests': {}, - }, - - 'non_clang_android_mac_win_chromium_gtests': { - # TODO(kbr): merge back into chromium_gtests. - 'gin_unittests': {}, }, 'non_clang_mac_win_chromium_gtests': { @@ -1680,7 +1676,13 @@ '--test-launcher-filter-file=../../testing/buildbot/filters/viz.content_unittests.filter', ], 'test': 'content_unittests', - } + }, + 'viz_interactive_ui_tests': { + 'args': [ + '--enable-features=VizDisplayCompositor', + ], + 'test': 'interactive_ui_tests', + }, }, 'viz_gtests': { @@ -1842,7 +1844,6 @@ 'chromium_gtests_for_non_clang_and_fyi_mac_win_devices_with_graphical_output', 'chromium_gtests_for_non_clang_win_devices_with_graphical_output', 'linux_flavor_specific_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', @@ -1866,7 +1867,6 @@ 'cast_audio_specific_chromium_gtests', 'chromium_gtests', 'linux_flavor_specific_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', @@ -1877,7 +1877,6 @@ 'cast_video_specific_chromium_gtests', 'chromium_gtests', 'linux_flavor_specific_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', @@ -1900,7 +1899,6 @@ 'non_android_and_cast_and_chromeos_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', 'non_mac_non_clang_win_chromium_gtests', @@ -1924,7 +1922,6 @@ 'non_android_and_cast_and_chromeos_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', 'non_mac_non_clang_win_chromium_gtests', @@ -1953,7 +1950,6 @@ 'non_android_and_clang_linux_win_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', @@ -2065,7 +2061,6 @@ 'non_android_and_clang_linux_win_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', 'non_linux_chromium_gtests', @@ -2089,7 +2084,6 @@ 'non_android_and_clang_linux_win_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', @@ -2133,7 +2127,6 @@ 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', 'non_android_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', 'non_mac_non_clang_win_chromium_gtests', @@ -2199,7 +2192,6 @@ 'non_android_and_clang_linux_win_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests', @@ -2226,7 +2218,6 @@ 'non_android_and_clang_linux_win_chromium_gtests', 'non_android_and_clang_mac_win_chromium_gtests', 'non_android_and_clang_win_chromium_gtests', - 'non_clang_android_mac_win_chromium_gtests', 'non_clang_and_mac_fyi_chromium_gtests', 'non_clang_mac_win_chromium_gtests', 'non_clang_win_chromium_gtests',
diff --git a/testing/scripts/run_performance_tests.py b/testing/scripts/run_performance_tests.py index e6032f6..6e05ce389 100755 --- a/testing/scripts/run_performance_tests.py +++ b/testing/scripts/run_performance_tests.py
@@ -72,33 +72,18 @@ 'blink_perf.parser', 'blink_perf.shadow_dom', 'blink_perf.svg', - 'memory.top_10_mobile' + 'memory.top_10_mobile', + 'system_health.common_desktop', + 'system_health.common_mobile', + 'system_health.memory_desktop', + 'system_health.memory_mobile', + 'system_health.webview_startup', ] -# We currently have two different sharding schemes for android -# vs desktop. When we are running at capacity we will have 26 -# desktop shards and 39 android. -CURRENT_DESKTOP_NUM_SHARDS = 26 -CURRENT_ANDROID_NUM_SHARDS = 39 - -def get_sharding_map_path(total_shards, testing): - # Determine if we want to do a test run of the benchmarks or run the - # full suite. - if not testing: - # Note: <= for testing purposes until we have all shards running - if int(total_shards) <= CURRENT_DESKTOP_NUM_SHARDS: - return os.path.join( - os.path.dirname(__file__), '..', '..', 'tools', 'perf', 'core', - 'benchmark_desktop_bot_map.json') - else: - return os.path.join( - os.path.dirname(__file__), '..', '..', 'tools', 'perf', 'core', - 'benchmark_android_bot_map.json') - else: - return os.path.join( +def get_sharding_map_path(args): + return os.path.join( os.path.dirname(__file__), '..', '..', 'tools', 'perf', 'core', - 'benchmark_bot_map.json') - + args.test_shard_map_filename) def write_results( perf_test_name, perf_results, json_test_results, isolated_out_dir, encoded): @@ -124,7 +109,7 @@ is_histograms = append_output_format(benchmark, args, rest_args) # Insert benchmark name as first argument to run_benchmark call # which is the first argument in the rest_args. Also need to append - # output format. + # output format and smoke test mode. per_benchmark_args = (rest_args[:1] + [benchmark] + rest_args[1:]) benchmark_name = benchmark if is_reference: @@ -195,12 +180,13 @@ parser.add_argument('--xvfb', help='Start xvfb.', action='store_true') parser.add_argument('--non-telemetry', help='Type of perf test', type=bool, default=False) - parser.add_argument('--testing', help='Test run, execute subset of tests', - type=bool, default=False) parser.add_argument('--benchmarks', help='Comma separated list of benchmark names' ' to run in lieu of indexing into our benchmark bot maps', required=False) + # Some executions may have a different sharding scheme and/or set of tests. + # These files must live in src/tools/perf/core/ + parser.add_argument('--test-shard-map-filename', type=str, required=False) parser.add_argument('--output-format', action='append') parser.add_argument('--run-ref-build', help='Run test on reference browser', action='store_true') @@ -239,8 +225,7 @@ if not (total_shards or shard_index): raise Exception('Shard indicators must be present for perf tests') - sharding_map_path = get_sharding_map_path( - total_shards, args.testing or False) + sharding_map_path = get_sharding_map_path(args) with open(sharding_map_path) as f: sharding_map = json.load(f) sharding = None
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 7f7defe..88bd100 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -19,26 +19,6 @@ ] } ], - "AlternateComponentUrls": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "win" - ], - "experiments": [ - { - "name": "AlternateComponentUrls", - "enable_features": [ - "AlternateComponentUrls" - ] - } - ] - } - ], "AmpBackgroundTab": [ { "platforms": [ @@ -394,26 +374,6 @@ ] } ], - "AutofillProfileCleanup": [ - { - "platforms": [ - "android", - "chromeos", - "ios", - "linux", - "mac", - "win" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "AutofillProfileCleanup" - ] - } - ] - } - ], "AutofillProfileOrderByFrecency": [ { "platforms": [
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG index be47b65..6367ef2d 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -15,7 +15,7 @@ crbug.com/591099 fast/text/apply-start-width-after-skipped-text.html [ Skip ] # Slow when run with LayoutNG -crbug.com/591099 external/wpt/css/css-color/color-resolving-hsl.html [ Timeout ] +crbug.com/591099 external/wpt/css/css-color/color-resolving-hsl.html [ Pass Timeout ] # TODO(skobes): rebaseline crbug.com/811429 fast/text/font-format-support-cbdt-sbix-cff2-vertical.html [ Failure ] @@ -102,9 +102,9 @@ crbug.com/591099 accessibility/table-with-presentation-role.html [ Failure ] crbug.com/591099 animations/animation-ready-reject-script-forbidden.html [ Timeout ] crbug.com/591099 animations/cross-fade-list-style-image.html [ Failure ] -crbug.com/591099 animations/interpolation/backdrop-filter-interpolation.html [ Timeout ] +crbug.com/591099 animations/interpolation/backdrop-filter-interpolation.html [ Pass Timeout ] crbug.com/591099 animations/interpolation/line-height-interpolation.html [ Timeout ] -crbug.com/591099 animations/interpolation/svg-stroke-dasharray-interpolation.html [ Timeout ] +crbug.com/591099 animations/interpolation/svg-stroke-dasharray-interpolation.html [ Pass Timeout ] crbug.com/591099 animations/interpolation/webkit-clip-path-interpolation.html [ Timeout ] crbug.com/591099 animations/rotate-transform-equivalent.html [ Failure ] crbug.com/714962 compositing/background-color/view-blending-base-background.html [ Failure ] @@ -122,10 +122,10 @@ crbug.com/591099 compositing/self-painting-layers.html [ Failure ] crbug.com/591099 compositing/squashing/add-remove-squashed-layers.html [ Failure ] crbug.com/591099 compositing/squashing/selection-repaint-with-gaps.html [ Failure ] -crbug.com/591099 crypto/subtle/hkdf/cloneKey.html [ Timeout ] +crbug.com/591099 crypto/subtle/hkdf/cloneKey.html [ Pass Timeout ] crbug.com/591099 crypto/subtle/hmac/cloneKey.html [ Timeout ] -crbug.com/591099 crypto/subtle/pbkdf2/cloneKey.html [ Timeout ] -crbug.com/591099 crypto/subtle/rsassa-pkcs1-v1_5/cloneKey.html [ Timeout ] +crbug.com/591099 crypto/subtle/pbkdf2/cloneKey.html [ Pass Timeout ] +crbug.com/591099 crypto/subtle/rsassa-pkcs1-v1_5/cloneKey.html [ Pass Timeout ] crbug.com/591099 css1/box_properties/float_on_text_elements.html [ Failure ] crbug.com/591099 css1/classification/list_style_image.html [ Failure ] crbug.com/591099 css2.1/20110323/margin-applies-to-008.htm [ Failure ] @@ -223,7 +223,7 @@ crbug.com/591099 external/wpt/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.html [ Timeout ] crbug.com/591099 external/wpt/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.html [ Timeout ] crbug.com/591099 external/wpt/WebCryptoAPI/generateKey/successes.worker.html [ Timeout ] -crbug.com/591099 external/wpt/WebCryptoAPI/import_export/rsa_importKey.https.worker.html [ Timeout ] +crbug.com/591099 external/wpt/WebCryptoAPI/import_export/rsa_importKey.https.worker.html [ Pass Timeout ] crbug.com/591099 external/wpt/WebCryptoAPI/import_export/rsa_importKey.worker.html [ Timeout ] crbug.com/709227 external/wpt/WebCryptoAPI/import_export/symmetric_importKey.worker.html [ Failure ] crbug.com/714962 external/wpt/WebCryptoAPI/import_export/test_rsa_importKey.https.html [ Pass Timeout ] @@ -256,7 +256,7 @@ crbug.com/591099 external/wpt/css/css-fonts/matching/fixed-stretch-style-over-weight.html [ Pass ] crbug.com/591099 external/wpt/css/css-fonts/matching/stretch-distance-over-weight-distance.html [ Pass ] crbug.com/591099 external/wpt/css/css-fonts/matching/style-ranges-over-weight-direction.html [ Pass ] -crbug.com/591099 external/wpt/css/css-fonts/test_font_family_parsing.html [ Timeout ] +crbug.com/591099 external/wpt/css/css-fonts/test_font_family_parsing.html [ Pass Timeout ] crbug.com/591099 external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-009.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-010.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-011.html [ Failure ] @@ -595,51 +595,51 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/ib-split/split-inner-inline-2.html [ Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-break-inside-001.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-007.html [ Failure ] -crbug.com/591099 external/wpt/dom/nodes/Element-classlist.html [ Timeout ] -crbug.com/591099 external/wpt/dom/nodes/Element-matches.html [ Timeout ] -crbug.com/591099 external/wpt/dom/nodes/Element-webkitMatchesSelector.html [ Timeout ] -crbug.com/591099 external/wpt/dom/nodes/Node-compareDocumentPosition.html [ Timeout ] -crbug.com/591099 external/wpt/dom/nodes/Node-contains.html [ Timeout ] -crbug.com/591099 external/wpt/dom/nodes/ParentNode-querySelector-All-xht.xht [ Timeout ] -crbug.com/591099 external/wpt/dom/nodes/ParentNode-querySelector-All.html [ Timeout ] +crbug.com/591099 external/wpt/dom/nodes/Element-classlist.html [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/nodes/Element-matches.html [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/nodes/Element-webkitMatchesSelector.html [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/nodes/Node-compareDocumentPosition.html [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/nodes/Node-contains.html [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/nodes/ParentNode-querySelector-All-xht.xht [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/nodes/ParentNode-querySelector-All.html [ Pass Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-compareBoundaryPoints.html [ Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-comparePoint.html [ Timeout ] -crbug.com/591099 external/wpt/dom/ranges/Range-insertNode.html [ Timeout ] -crbug.com/591099 external/wpt/dom/ranges/Range-intersectsNode.html [ Timeout ] +crbug.com/591099 external/wpt/dom/ranges/Range-insertNode.html [ Pass Timeout ] +crbug.com/591099 external/wpt/dom/ranges/Range-intersectsNode.html [ Pass Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-isPointInRange.html [ Timeout ] -crbug.com/591099 external/wpt/dom/ranges/Range-mutations-dataChange.html [ Timeout ] +crbug.com/591099 external/wpt/dom/ranges/Range-mutations-dataChange.html [ Pass Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-set.html [ Timeout ] -crbug.com/591099 external/wpt/dom/ranges/Range-surroundContents.html [ Timeout ] +crbug.com/591099 external/wpt/dom/ranges/Range-surroundContents.html [ Pass Timeout ] crbug.com/591099 external/wpt/domxpath/xml_xpath_runner.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/backcolor.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/bold.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/fontname.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/fontsize.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/forecolor.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/fontname.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/fontsize.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/forecolor.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/formatblock.html [ Timeout ] crbug.com/591099 external/wpt/editing/run/forwarddelete.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/hilitecolor.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/indent.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/inserthorizontalrule.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/inserthtml.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/insertlinebreak.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/insertorderedlist.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/hilitecolor.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/indent.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/inserthorizontalrule.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/inserthtml.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/insertlinebreak.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/insertorderedlist.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/insertparagraph.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/inserttext.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/insertunorderedlist.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/italic.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/inserttext.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/insertunorderedlist.html [ Pass Timeout ] +crbug.com/591099 external/wpt/editing/run/italic.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/justifycenter.html [ Timeout ] crbug.com/591099 external/wpt/editing/run/justifyfull.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/justifyleft.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/justifyleft.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/justifyright.html [ Timeout ] crbug.com/591099 external/wpt/editing/run/multitest.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/outdent.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/outdent.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/removeformat.html [ Timeout ] -crbug.com/591099 external/wpt/editing/run/strikethrough.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/strikethrough.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/subscript.html [ Pass Timeout ] crbug.com/591099 external/wpt/editing/run/superscript.html [ Pass Timeout ] -crbug.com/591099 external/wpt/editing/run/underline.html [ Timeout ] -crbug.com/591099 external/wpt/encoding/api-invalid-label.html [ Timeout ] +crbug.com/591099 external/wpt/editing/run/underline.html [ Pass Timeout ] +crbug.com/591099 external/wpt/encoding/api-invalid-label.html [ Pass Timeout ] crbug.com/591099 external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html [ Timeout ] crbug.com/591099 external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html [ Timeout ] crbug.com/591099 external/wpt/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html [ Timeout ] @@ -749,25 +749,25 @@ crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-fieldset-element-0/legend-block-formatting-context.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-auto.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-percentage.html [ Failure ] -crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-inline-sizing/svg-inline.html [ Timeout ] +crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-inline-sizing/svg-inline.html [ Failure Timeout ] crbug.com/591099 external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/interactive-elements/the-dialog-element/centering.html [ Crash ] -crbug.com/591099 external/wpt/html/syntax/parsing/named-character-references.html [ Timeout ] +crbug.com/591099 external/wpt/html/syntax/parsing/named-character-references.html [ Pass Timeout ] crbug.com/591099 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm [ Pass Timeout ] crbug.com/591099 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm [ Pass Timeout ] crbug.com/591099 external/wpt/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm [ Pass Timeout ] crbug.com/591099 external/wpt/longtask-timing/longtask-in-sibling-iframe.html [ Pass Timeout ] crbug.com/591099 external/wpt/media-source/mediasource-getvideoplaybackquality.html [ Timeout ] -crbug.com/591099 external/wpt/mimesniff/mime-types/parsing.any.html [ Timeout ] -crbug.com/591099 external/wpt/mimesniff/mime-types/parsing.any.worker.html [ Timeout ] +crbug.com/591099 external/wpt/mimesniff/mime-types/parsing.any.html [ Pass Timeout ] +crbug.com/591099 external/wpt/mimesniff/mime-types/parsing.any.worker.html [ Pass Timeout ] crbug.com/591099 external/wpt/offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.nocontext.worker.html [ Crash ] crbug.com/591099 external/wpt/offscreen-canvas/the-offscreen-canvas/offscreencanvas.getcontext.worker.html [ Pass ] crbug.com/591099 external/wpt/payment-request/payment-allowed-by-feature-policy.https.sub.html [ Pass ] crbug.com/591099 external/wpt/payment-request/payment-disabled-by-feature-policy.https.sub.html [ Pass ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html [ Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html [ Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_click_during_capture-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_pen-manual.html [ Failure ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-span-test_touch-manual.html [ Failure ] @@ -780,28 +780,28 @@ crbug.com/591099 external/wpt/requestidlecallback/callback-invoked.html [ Pass ] crbug.com/591099 external/wpt/requestidlecallback/cancel-invoked.html [ Pass ] crbug.com/591099 external/wpt/requestidlecallback/idlharness.html [ Pass ] -crbug.com/591099 external/wpt/selection/addRange-00.html [ Timeout ] -crbug.com/591099 external/wpt/selection/addRange-04.html [ Timeout ] +crbug.com/591099 external/wpt/selection/addRange-00.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/addRange-04.html [ Pass Timeout ] crbug.com/591099 external/wpt/selection/addRange-12.html [ Pass Timeout ] -crbug.com/591099 external/wpt/selection/addRange-16.html [ Timeout ] +crbug.com/591099 external/wpt/selection/addRange-16.html [ Pass Timeout ] crbug.com/591099 external/wpt/selection/addRange-24.html [ Pass Timeout ] -crbug.com/591099 external/wpt/selection/addRange-28.html [ Timeout ] -crbug.com/591099 external/wpt/selection/addRange-32.html [ Timeout ] -crbug.com/591099 external/wpt/selection/addRange-36.html [ Timeout ] -crbug.com/591099 external/wpt/selection/collapse-00.html [ Timeout ] -crbug.com/591099 external/wpt/selection/collapse-15.html [ Timeout ] +crbug.com/591099 external/wpt/selection/addRange-28.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/addRange-32.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/addRange-36.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/collapse-00.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/collapse-15.html [ Pass Timeout ] crbug.com/591099 external/wpt/selection/collapse-30.html [ Timeout ] -crbug.com/591099 external/wpt/selection/collapse-45.html [ Timeout ] -crbug.com/591099 external/wpt/selection/extend-00.html [ Timeout ] -crbug.com/591099 external/wpt/selection/extend-20.html [ Timeout ] -crbug.com/591099 external/wpt/selection/selectAllChildren.html [ Timeout ] +crbug.com/591099 external/wpt/selection/collapse-45.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/extend-00.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/extend-20.html [ Pass Timeout ] +crbug.com/591099 external/wpt/selection/selectAllChildren.html [ Pass Timeout ] crbug.com/591099 external/wpt/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html [ Failure ] -crbug.com/591099 external/wpt/svg/interfaces.html [ Timeout ] +crbug.com/591099 external/wpt/svg/interfaces.html [ Pass Timeout ] crbug.com/591099 external/wpt/svg/linking/reftests/href-filter-element.html [ Failure ] crbug.com/591099 external/wpt/url/url-setters.html [ Pass Timeout ] crbug.com/591099 external/wpt/wasm/wasm_local_iframe_test.html [ Failure ] -crbug.com/591099 external/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html [ Timeout ] -crbug.com/591099 external/wpt/webaudio/idlharness.https.html [ Timeout ] +crbug.com/591099 external/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html [ Pass Timeout ] +crbug.com/591099 external/wpt/webaudio/idlharness.https.html [ Pass Timeout ] crbug.com/591099 external/wpt/webmessaging/broadcastchannel/sandbox.html [ Failure ] crbug.com/591099 external/wpt/webrtc/interfaces.html [ Pass Timeout ] crbug.com/591099 external/wpt/webrtc/protocol/video-codecs.html [ Failure ] @@ -830,8 +830,6 @@ crbug.com/591099 external/wpt/xhr/send-authentication-prompt-2-manual.htm [ Failure ] crbug.com/591099 fast/backgrounds/background-clip-text.html [ Failure ] crbug.com/591099 fast/backgrounds/background-leakage-transforms.html [ Failure ] -crbug.com/591099 fast/backgrounds/border-radius-split-background-image.html [ Failure ] -crbug.com/591099 fast/backgrounds/border-radius-split-background.html [ Failure ] crbug.com/591099 fast/backgrounds/quirks-mode-line-box-backgrounds.html [ Failure ] crbug.com/591099 fast/backgrounds/selection-background-color-of-image-list-style.html [ Failure ] crbug.com/591099 fast/backgrounds/selection-background-color-of-list-style.html [ Failure ] @@ -868,18 +866,14 @@ crbug.com/591099 fast/borders/bidi-002.html [ Failure ] crbug.com/591099 fast/borders/bidi-012.html [ Failure ] crbug.com/591099 fast/borders/border-image-border-radius.html [ Failure ] -crbug.com/714962 fast/borders/border-image-outset-split-inline.html [ Failure ] crbug.com/714962 fast/borders/border-inner-bleed.html [ Failure ] crbug.com/591099 fast/borders/border-radius-mask-canvas-all.html [ Failure ] crbug.com/591099 fast/borders/border-radius-mask-canvas-with-mask.html [ Failure ] crbug.com/591099 fast/borders/border-radius-mask-canvas-with-shadow.html [ Failure ] -crbug.com/714962 fast/borders/border-styles-split.html [ Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image-outset-vertical-rl.html [ Failure ] crbug.com/591099 fast/box-decoration-break/box-decoration-break-rendering.html [ Failure ] crbug.com/591099 fast/box-shadow/basic-shadows.html [ Failure ] crbug.com/591099 fast/box-shadow/box-shadow.html [ Failure ] -crbug.com/591099 fast/box-shadow/inset-subpixel.html [ Failure ] -crbug.com/591099 fast/box-shadow/inset.html [ Failure ] crbug.com/591099 fast/box-sizing/replaced.html [ Failure Pass ] crbug.com/591099 fast/css-generated-content/015.html [ Failure ] crbug.com/805301 fast/css-generated-content/crash-selection-editing-removes-pseudo.html [ Failure ] @@ -890,8 +884,8 @@ crbug.com/591099 fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-align-baseline-vertical.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-columns-rows-get-set-multiple.html [ Pass Timeout ] -crbug.com/591099 fast/css-grid-layout/grid-columns-rows-get-set.html [ Timeout ] -crbug.com/591099 fast/css-grid-layout/grid-item-column-row-get-set.html [ Timeout ] +crbug.com/591099 fast/css-grid-layout/grid-columns-rows-get-set.html [ Pass Timeout ] +crbug.com/591099 fast/css-grid-layout/grid-item-column-row-get-set.html [ Pass Timeout ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-01.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-02-b.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-02.html [ Failure ] @@ -915,7 +909,7 @@ crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-07.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-shorthand-get-set.html [ Timeout ] crbug.com/591099 fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html [ Timeout ] -crbug.com/591099 fast/css-grid-layout/grid-template-shorthand-get-set.html [ Timeout ] +crbug.com/591099 fast/css-grid-layout/grid-template-shorthand-get-set.html [ Pass Timeout ] crbug.com/591099 fast/css-grid-layout/maximize-tracks-definite-indefinite-width.html [ Failure ] crbug.com/591099 fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html [ Failure ] crbug.com/591099 fast/css-grid-layout/percent-track-breadths-regarding-container-size.html [ Failure ] @@ -996,9 +990,9 @@ crbug.com/591099 fast/dom/HTMLAreaElement/area-download.html [ Failure ] crbug.com/714962 fast/dom/Range/getBoundingClientRect-linebreak-character.html [ Failure ] crbug.com/591099 fast/dom/Window/property-access-on-cached-window-after-frame-navigated.html [ Pass Timeout ] -crbug.com/591099 fast/dom/Window/window-lookup-precedence.html [ Timeout ] +crbug.com/591099 fast/dom/Window/window-lookup-precedence.html [ Failure Timeout ] crbug.com/591099 fast/dom/Window/window-postmessage-clone-deep-array.html [ Failure ] -crbug.com/591099 fast/dom/domstring-attribute-reflection.html [ Timeout ] +crbug.com/591099 fast/dom/domstring-attribute-reflection.html [ Pass Timeout ] crbug.com/591099 fast/dom/element-attribute-js-null.html [ Timeout ] crbug.com/714962 fast/dom/elementFromPoint-relative-to-viewport.html [ Failure ] crbug.com/714962 fast/dom/elementsFromPoint/elementsFromPoint-inline.html [ Failure ] @@ -1013,7 +1007,7 @@ crbug.com/714962 fast/dom/nodesFromRect/nodesFromRect-links-and-text.html [ Failure ] crbug.com/714962 fast/dom/shadow/scrollbar.html [ Crash ] crbug.com/591099 fast/dom/shadow/selections-in-shadow.html [ Pass Timeout ] -crbug.com/591099 fast/dom/wrapper-classes.html [ Timeout ] +crbug.com/591099 fast/dom/wrapper-classes.html [ Pass Timeout ] crbug.com/591099 fast/dynamic/first-letter-after-list-marker.html [ Failure ] crbug.com/591099 fast/dynamic/selection-highlight-adjust.html [ Failure ] crbug.com/591099 fast/dynamic/text-combine.html [ Failure ] @@ -1021,16 +1015,16 @@ crbug.com/591099 fast/encoding/utf-16-little-endian.html [ Failure ] crbug.com/714962 fast/events/drag-in-frames.html [ Failure ] crbug.com/714962 fast/events/event-on-culled_inline.html [ Failure ] -crbug.com/591099 fast/events/keyboardevent-getModifierState.html [ Timeout ] +crbug.com/591099 fast/events/keyboardevent-getModifierState.html [ Pass Timeout ] crbug.com/714962 fast/events/middleClickAutoscroll-latching.html [ Pass Timeout ] crbug.com/714962 fast/events/mouse-down-on-pseudo-element-remove-crash.html [ Failure ] crbug.com/591099 fast/events/mouse-relative-position.html [ Failure ] -crbug.com/591099 fast/events/mouseevent-getModifierState.html [ Timeout ] +crbug.com/591099 fast/events/mouseevent-getModifierState.html [ Pass Timeout ] crbug.com/591099 fast/events/onclick-list-marker.html [ Failure ] -crbug.com/591099 fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Timeout ] +crbug.com/591099 fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Pass Timeout ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-event-properties.html [ Timeout ] crbug.com/591099 fast/events/pointerevents/touch-capture.html [ Timeout ] -crbug.com/591099 fast/events/select-element.html [ Timeout ] +crbug.com/591099 fast/events/select-element.html [ Failure Timeout ] crbug.com/591099 fast/events/sequential-focus-navigation-starting-point.html [ Failure ] crbug.com/591099 fast/events/touch/compositor-touch-hit-rects.html [ Failure ] crbug.com/591099 fast/events/wheel/mainthread-touchpad-fling-latching.html [ Pass ] @@ -1048,13 +1042,13 @@ crbug.com/591099 fast/forms/search/search-appearance-basic.html [ Failure ] crbug.com/591099 fast/forms/select/select-initial-position.html [ Failure ] crbug.com/591099 fast/forms/select/select-style.html [ Failure ] -crbug.com/591099 fast/forms/selection-direction.html [ Timeout ] +crbug.com/591099 fast/forms/selection-direction.html [ Pass Timeout ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom125.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom200.html [ Failure ] crbug.com/591099 fast/forms/text-control-intrinsic-widths.html [ Pass Timeout ] crbug.com/591099 fast/forms/textarea/textarea-align.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-metrics.html [ Timeout ] -crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html [ Timeout ] +crbug.com/591099 fast/forms/textarea/textarea-metrics.html [ Pass Timeout ] +crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html [ Pass Timeout ] crbug.com/591099 fast/forms/validation-bubble-appearance-rtl-ui.html [ Failure ] crbug.com/591099 fast/frames/iframe-with-frameborder.html [ Failure ] crbug.com/591099 fast/gradients/list-item-gradient.html [ Failure ] @@ -1079,9 +1073,9 @@ crbug.com/591099 fast/inline/outline-continuations.html [ Failure ] crbug.com/714962 fast/inline/outline-offset.html [ Failure ] crbug.com/591099 fast/inline/styledEmptyInlinesWithBRs.html [ Failure ] -crbug.com/591099 fast/js/dfg-arguments-alias-activation.html [ Timeout ] -crbug.com/591099 fast/js/dfg-byte-array-put.html [ Timeout ] -crbug.com/591099 fast/js/document-all-triggers-masquerades-watchpoint.html [ Timeout ] +crbug.com/591099 fast/js/dfg-arguments-alias-activation.html [ Pass Timeout ] +crbug.com/591099 fast/js/dfg-byte-array-put.html [ Pass Timeout ] +crbug.com/591099 fast/js/document-all-triggers-masquerades-watchpoint.html [ Pass Timeout ] crbug.com/591099 fast/lists/001-vertical.html [ Failure ] crbug.com/591099 fast/lists/001.html [ Failure ] crbug.com/591099 fast/lists/002-vertical.html [ Failure ] @@ -1363,7 +1357,7 @@ crbug.com/591099 fast/text/international/rtl-white-space-pre-wrap.html [ Failure ] crbug.com/796943 fast/text/international/shape-across-elements-simple.html [ Pass ] crbug.com/591099 fast/text/international/text-combine-image-test.html [ Failure ] -crbug.com/591099 fast/text/large-text-composed-char.html [ Timeout ] +crbug.com/591099 fast/text/large-text-composed-char.html [ Pass Timeout ] crbug.com/591099 fast/text/place-ellipsis-in-inline-block-adjacent-float-2.html [ Failure ] crbug.com/591099 fast/text/place-ellipsis-in-inline-block-adjacent-float.html [ Failure ] crbug.com/591099 fast/text/place-ellipsis-in-inline-blocks-2.html [ Failure ] @@ -1406,14 +1400,10 @@ crbug.com/591099 fast/text/zero-width-characters.html [ Failure ] crbug.com/591099 fast/writing-mode/Kusa-Makura-background-canvas.html [ Failure ] crbug.com/591099 fast/writing-mode/auto-sizing-orthogonal-flows.html [ Failure ] -crbug.com/714962 fast/writing-mode/background-vertical-lr.html [ Failure ] crbug.com/591099 fast/writing-mode/background-vertical-rl.html [ Failure ] crbug.com/591099 fast/writing-mode/basic-vertical-line.html [ Failure ] crbug.com/591099 fast/writing-mode/border-image-vertical-lr.html [ Failure ] -crbug.com/714962 fast/writing-mode/border-image-vertical-rl.html [ Failure ] crbug.com/591099 fast/writing-mode/border-radius-clipping-vertical-lr.html [ Failure ] -crbug.com/714962 fast/writing-mode/border-styles-vertical-lr.html [ Failure ] -crbug.com/714962 fast/writing-mode/border-styles-vertical-rl.html [ Failure ] crbug.com/591099 fast/writing-mode/english-rl-text.html [ Failure ] crbug.com/591099 fast/writing-mode/fieldsets.html [ Failure ] crbug.com/714962 fast/writing-mode/flipped-blocks-hit-test-line-edges.html [ Failure ] @@ -1515,7 +1505,7 @@ crbug.com/591099 http/tests/security/shape-image-cors-data-url.html [ Failure ] crbug.com/591099 http/tests/security/shape-image-cors-same-origin.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/block-does-not-leak-location.html [ Failure ] -crbug.com/591099 http/tests/serviceworker/webexposed/global-interface-listing-service-worker.html [ Timeout ] +crbug.com/591099 http/tests/serviceworker/webexposed/global-interface-listing-service-worker.html [ Pass Timeout ] crbug.com/591099 http/tests/shapes/shape-outside-image-shape-margin.html [ Failure ] crbug.com/591099 http/tests/shapes/shape-outside-svg-image-shape-margin.html [ Failure ] crbug.com/591099 http/tests/text-autosizing/narrow-iframe.html [ Failure ] @@ -1534,7 +1524,7 @@ crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-labelledby.js [ Failure ] crbug.com/714962 inspector-protocol/css/css-get-platform-fonts.js [ Failure ] crbug.com/714962 inspector-protocol/dom-snapshot/dom-snapshot-getSnapshot-viewport.js [ Failure ] -crbug.com/591099 inspector-protocol/dom-snapshot/dom-snapshot-getSnapshot.js [ Timeout ] +crbug.com/591099 inspector-protocol/dom-snapshot/dom-snapshot-getSnapshot.js [ Failure Timeout ] crbug.com/714962 inspector-protocol/layout-fonts/languages-emoji-rare-glyphs.js [ Failure ] crbug.com/591099 inspector-protocol/timeline/page-frames.js [ Pass ] crbug.com/714962 intersection-observer/text-target.html [ Failure ] @@ -1796,12 +1786,12 @@ crbug.com/591099 payments/payment-request-in-iframe-nested-not-allowed.html [ Failure ] crbug.com/591099 payments/payment-request-in-iframe.html [ Failure ] crbug.com/824918 printing/absolute-position-headers-and-footers.html [ Failure ] -crbug.com/824918 printing/single-line-must-not-be-split-into-two-pages.html [ Timeout ] +crbug.com/824918 printing/single-line-must-not-be-split-into-two-pages.html [ Failure Timeout ] crbug.com/591099 scrollbars/auto-scrollbar-fit-content.html [ Failure ] crbug.com/591099 scrollbars/scrollbar-miss-mousemove-disabled.html [ Failure ] crbug.com/591099 shapedetection/detection-HTMLVideoElement.html [ Pass ] crbug.com/591099 storage/indexeddb/cursor-continue-validity.html [ Timeout ] -crbug.com/591099 storage/indexeddb/cursor-key-order.html [ Timeout ] +crbug.com/591099 storage/indexeddb/cursor-key-order.html [ Pass Timeout ] crbug.com/591099 storage/indexeddb/deleted-objects.html [ Pass Timeout ] crbug.com/591099 storage/indexeddb/exceptions.html [ Pass Timeout ] crbug.com/591099 storage/indexeddb/index-cursor.html [ Timeout ] @@ -1809,7 +1799,7 @@ crbug.com/591099 storage/indexeddb/mozilla/cursors.html [ Timeout ] crbug.com/591099 storage/indexeddb/mozilla/indexes.html [ Timeout ] crbug.com/591099 storage/indexeddb/mozilla/test_objectStore_openKeyCursor.html [ Timeout ] -crbug.com/591099 storage/indexeddb/objectstore-cursor.html [ Timeout ] +crbug.com/591099 storage/indexeddb/objectstore-cursor.html [ Pass Timeout ] crbug.com/591099 storage/indexeddb/objectstore-keycursor.html [ Timeout ] crbug.com/591099 storage/indexeddb/structured-clone.html [ Pass Timeout ] crbug.com/714962 svg/as-background-image/svg-as-background-body.html [ Failure ] @@ -1823,12 +1813,12 @@ crbug.com/591099 svg/custom/use-event-retargeting.html [ Failure ] crbug.com/591099 svg/dom/svgangle-units.html [ Pass Timeout ] crbug.com/591099 svg/filters/feTurbulence-bad-seeds.html [ Failure ] -crbug.com/591099 svg/in-html/sizing/svg-inline.html [ Timeout ] +crbug.com/591099 svg/in-html/sizing/svg-inline.html [ Failure Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-1.html [ Pass Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-2.html [ Pass Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-3.html [ Pass Timeout ] crbug.com/591099 svg/parser/whitespace-length-invalid-4.html [ Pass Timeout ] -crbug.com/591099 svg/parser/whitespace-number.html [ Timeout ] +crbug.com/591099 svg/parser/whitespace-number.html [ Pass Timeout ] crbug.com/591099 svg/text/foreignObject-text-clipping-bug.xml [ Failure ] crbug.com/714962 svg/text/tspan-multiple-outline.svg [ Failure ] crbug.com/591099 svg/transforms/text-with-pattern-inside-transformed-html.xhtml [ Failure ] @@ -1873,7 +1863,7 @@ crbug.com/591099 tables/mozilla/core/table_heights.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-16.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug7113.html [ Failure ] -crbug.com/591099 transforms/2d/transform-2d.html [ Timeout ] +crbug.com/591099 transforms/2d/transform-2d.html [ Pass Timeout ] crbug.com/591099 transforms/3d/general/perspective-non-layer.html [ Failure ] crbug.com/591099 transforms/3d/hit-testing/backface-hit-test.html [ Failure ] crbug.com/591099 transforms/3d/hit-testing/backface-no-transform-hit-test.html [ Failure ] @@ -1899,14 +1889,14 @@ crbug.com/714962 virtual/mouseevent_fractional/fast/events/drag-in-frames.html [ Failure ] crbug.com/714962 virtual/mouseevent_fractional/fast/events/event-on-culled_inline.html [ Failure ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/hr-timestamp/input-events.html [ Failure Pass ] -crbug.com/591099 virtual/mouseevent_fractional/fast/events/keyboardevent-getModifierState.html [ Timeout ] +crbug.com/591099 virtual/mouseevent_fractional/fast/events/keyboardevent-getModifierState.html [ Pass Timeout ] crbug.com/714962 virtual/mouseevent_fractional/fast/events/mouse-down-on-pseudo-element-remove-crash.html [ Failure ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/mouse-relative-position.html [ Failure ] -crbug.com/591099 virtual/mouseevent_fractional/fast/events/mouseevent-getModifierState.html [ Timeout ] +crbug.com/591099 virtual/mouseevent_fractional/fast/events/mouseevent-getModifierState.html [ Pass Timeout ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/onclick-list-marker.html [ Failure ] -crbug.com/591099 virtual/mouseevent_fractional/fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Timeout ] +crbug.com/591099 virtual/mouseevent_fractional/fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Pass Timeout ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/pointerevents/touch-capture.html [ Pass Timeout ] -crbug.com/591099 virtual/mouseevent_fractional/fast/events/select-element.html [ Timeout ] +crbug.com/591099 virtual/mouseevent_fractional/fast/events/select-element.html [ Failure Timeout ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/sequential-focus-navigation-starting-point.html [ Failure ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/compositor-touch-hit-rects.html [ Failure ] crbug.com/591099 virtual/mouseevent_fractional/fast/events/wheel/mainthread-touchpad-fling-latching.html [ Pass ] @@ -1938,7 +1928,7 @@ crbug.com/591099 virtual/video-surface-layer/media/video-zoom.html [ Failure ] crbug.com/591099 virtual/wheelscrolllatching/ [ Skip ] crbug.com/591099 webaudio/BiquadFilter/tail-time-lowpass.html [ Timeout ] -crbug.com/591099 webexposed/element-instance-property-listing.html [ Timeout ] -crbug.com/591099 webexposed/global-interface-listing-dedicated-worker.html [ Timeout ] -crbug.com/591099 webexposed/global-interface-listing-shared-worker.html [ Timeout ] +crbug.com/591099 webexposed/element-instance-property-listing.html [ Pass Timeout ] +crbug.com/591099 webexposed/global-interface-listing-dedicated-worker.html [ Pass Timeout ] +crbug.com/591099 webexposed/global-interface-listing-shared-worker.html [ Pass Timeout ] crbug.com/591099 webexposed/global-interface-listing.html [ Timeout ]
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 cdcb3e92..1621509b 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
@@ -204,8 +204,10 @@ crbug.com/840017 virtual/threaded/fast/scrolling/same-page-navigate.html [ Crash Failure Pass ] crbug.com/840017 virtual/threaded/fast/scrolling/scroll-without-document-element.html [ Crash Failure Pass ] crbug.com/840017 virtual/threaded/fast/scrolling/scroll-without-document-element-renderer.html [ Crash Failure Pass ] -crbug.com/840017 fast/events/gesture-pinch-zoom-scroll-bubble.html [ Crash ] -crbug.com/840017 fast/events/gesture-pinch-zoom.html [ Crash ] +crbug.com/840017 fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html [ Crash ] +crbug.com/840017 fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html [ Crash ] +crbug.com/840017 virtual/threaded/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html [ Crash ] +crbug.com/840017 virtual/threaded/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html [ Crash Failure ] crbug.com/840017 fast/events/menu-key-context-menu-document-pinch-zoom.html [ Crash ] crbug.com/840017 fast/events/page-scaled-mouse-click-iframe.html [ Crash ] crbug.com/840017 fast/events/page-scaled-mouse-click.html [ Crash ] @@ -216,7 +218,8 @@ crbug.com/840017 fast/events/scale-and-scroll-iframe-window.html [ Crash ] crbug.com/840017 fast/events/scale-and-scroll-window.html [ Crash ] crbug.com/840017 fast/events/scroll-in-scaled-page-with-overflow-hidden.html [ Crash ] -crbug.com/840017 fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Crash ] +crbug.com/840017 fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Crash ] +crbug.com/840017 virtual/threaded/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Crash ] crbug.com/840017 fast/events/touch/page-scaled-touch-gesture-click.html [ Crash ] crbug.com/840017 fast/events/touch/touch-scaled-scrolled.html [ Crash ] crbug.com/840017 fast/events/touch/gesture/touch-gesture-fling-with-page-scale.html [ Crash ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 index def8b8a..f7ecb4b7 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
@@ -470,7 +470,7 @@ Bug(none) fast/dom/focus-contenteditable.html [ Failure ] Bug(none) fast/dynamic/anchor-lock.html [ Failure ] crbug.com/667946 fast/events/autoscroll-disabled-in-fix.html [ Skip ] -Bug(none) fast/events/gesture-pinch-zoom-scroll-bubble.html [ Failure Crash ] +Bug(none) fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html [ Failure Crash ] Bug(none) fast/events/keyboard-scroll-by-page.html [ Failure ] Bug(none) fast/events/platform-wheelevent-in-scrolling-div.html [ Failure ] Bug(none) fast/events/platform-wheelevent-paging-x-in-scrolling-page.html [ Failure ] @@ -1030,6 +1030,9 @@ # virtual/threaded variants of sub-directories and tests already skipped or marked as failing above. Bug(none) virtual/threaded/http/tests/devtools/ [ Skip ] +Bug(none) virtual/threaded/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html [ Failure Crash ] +Bug(none) virtual/threaded/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html [ Crash ] +Bug(none) virtual/threaded/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Pass Failure ] Bug(none) virtual/threaded/fast/scroll-behavior/ [ Skip ] Bug(none) virtual/threaded/compositing/visibility/layer-visible-content.html [ Failure ] Bug(none) virtual/threaded/compositing/visibility/overlays.html [ Failure Crash ] @@ -1039,6 +1042,7 @@ Bug(none) virtual/threaded/compositing/webgl/webgl-reflection.html [ Failure Crash ] Bug(none) virtual/threaded/compositing/webgl/webgl-with-accelerated-background-color.html [ Failure Pass ] Bug(none) virtual/threaded/printing/ [ Skip ] +Bug(none) virtual/threaded/synthetic_gestures/ [ Failure Crash ] # Tests that fail after changes to border dash painting, due to antialiasing differences # and minor border radius clipping differences. Some SPv2 change is being ticked by the border @@ -1348,13 +1352,13 @@ Bug(none) fast/dom/viewport/viewport-dimensions-under-browser-zoom.html [ Crash ] Bug(none) fast/dom/viewport/viewport-scale-inert.html [ Crash ] Bug(none) fast/dom/viewport/viewport-scrolling-element-inert.html [ Crash ] -Bug(none) fast/events/gesture-pinch-zoom.html [ Crash ] +Bug(none) fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html [ Crash ] Bug(none) fast/events/menu-key-context-menu-document-pinch-zoom.html [ Crash ] Bug(none) fast/events/page-scaled-mouse-click-iframe.html [ Crash ] Bug(none) fast/events/page-scaled-mouse-click.html [ Crash ] Bug(none) fast/events/resize-events.html [ Crash ] Bug(none) fast/events/scale-and-scroll-div.html [ Crash ] -Bug(none) fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Crash ] +Bug(none) fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Crash ] Bug(none) fast/events/touch/page-scaled-touch-gesture-click.html [ Crash ] Bug(none) fast/events/touch/touch-scaled-scrolled.html [ Crash ] Bug(none) fast/events/touch/gesture/touch-gesture-fling-with-page-scale.html [ Crash ] @@ -1386,7 +1390,7 @@ Bug(none) images/server-side-imagemap.html [ Crash ] Bug(none) paint/invalidation/position/fixed-right-in-page-scale.html [ Crash ] Bug(none) svg/as-image/image-respects-pageScaleFactor-change.html [ Crash ] -Bug(none) synthetic_gestures/synthetic-pinch-zoom-gesture.html [ Crash ] +Bug(none) synthetic_gestures/ [ Failure Crash ] Bug(none) compositing/fixed-background-composited-html.html [ Failure ] Bug(none) compositing/fixed-background-negative-z-index-fixed.html [ Failure ] Bug(none) compositing/layer-creation/iframe-background-attachment-fixed.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/LeakExpectations b/third_party/WebKit/LayoutTests/LeakExpectations index c0b60ede..d159dfa 100644 --- a/third_party/WebKit/LayoutTests/LeakExpectations +++ b/third_party/WebKit/LayoutTests/LeakExpectations
@@ -44,7 +44,6 @@ # Flakily leaks # ----------------------------------------------------------------- crbug.com/780386 external/wpt/html/dom/reflection-grouping.html [ Leak Pass ] -crbug.com/796944 [ Linux ] synthetic_gestures/synthetic-pinch-zoom-gesture.html [ Leak Pass ] crbug.com/667560 [ Linux ] http/tests/devtools/console/console-search.js [ Leak Pass ] crbug.com/835943 [ Linux ] http/tests/appcache/non-html.xhtml [ Leak Pass ]
diff --git a/third_party/WebKit/LayoutTests/SlowTests b/third_party/WebKit/LayoutTests/SlowTests index 3af4c32..db79330d 100644 --- a/third_party/WebKit/LayoutTests/SlowTests +++ b/third_party/WebKit/LayoutTests/SlowTests
@@ -515,3 +515,5 @@ # This test does a lot of IPC because it tests limits on IPC allocations, # and is therefore slow. crbug.com/826957 fast/peerconnection/RTCPeerConnection-manyCandidates.html [ Slow ] + +crbug.com/842995 external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/078.html [ Slow ]
diff --git a/third_party/WebKit/LayoutTests/SmokeTests b/third_party/WebKit/LayoutTests/SmokeTests index f44cbf2..1ef037ea 100644 --- a/third_party/WebKit/LayoutTests/SmokeTests +++ b/third_party/WebKit/LayoutTests/SmokeTests
@@ -897,7 +897,9 @@ storage/indexeddb/transaction-crash-in-tasks.html storage/quota/storageinfo-no-callbacks.html storage/quota/storagequota-query-usage.html -synthetic_gestures/synthetic-pinch-zoom-gesture.html +synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html +synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html +synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html svg/animations/animate-stroke-crash.html svg/animations/animate-update-crash.xhtml svg/animations/dynamic-modify-transform-without-baseval.html @@ -995,6 +997,9 @@ virtual/stable/webexposed/internal-properties-should-not-be-exposed.html virtual/threaded/animations/stability/pseudo-element-animation-with-marker-crash.html virtual/threaded/printing/page-and-element-geometry-match.html +virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html +virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html +virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html virtual/without-smil/svg/animations/exposed/effect.html wake_lock/wakelock-api.html wake_lock/wakelock-in-nested-frame.html
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 4e60ca3..26151a58 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -1903,8 +1903,20 @@ crbug.com/841922 [ Mac10.12 Mac10.13 Win7 ] virtual/video-surface-layer/media/video-controls-focus-movement-on-hide.html [ Failure Pass ] -# gpuBenchmarking.pinchBy is busted on desktops -crbug.com/787615 [ Mac Win Linux Fuchsia ] synthetic_gestures/synthetic-pinch-zoom-gesture.html [ Failure Pass ] +# gpuBenchmarking.pinchBy is busted on desktops for touchscreen pinch +crbug.com/787615 [ Win Linux Fuchsia ] synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html [ Failure Pass ] +crbug.com/787615 [ Win Linux Fuchsia ] synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html [ Failure Pass ] +crbug.com/787615 [ Win Linux Fuchsia ] synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html [ Failure Pass ] +crbug.com/787615 [ Win Linux Fuchsia ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html [ Failure Pass ] +crbug.com/787615 [ Win Linux Fuchsia ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html [ Failure Pass ] +crbug.com/787615 [ Win Linux Fuchsia ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html [ Failure Pass ] +# gpuBenchmarking.pinchBy is not implemented on Mac for touchscreen pinch +crbug.com/613672 [ Mac ] synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html [ Skip ] +crbug.com/613672 [ Mac ] synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html [ Skip ] +crbug.com/613672 [ Mac ] synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html [ Skip ] +crbug.com/613672 [ Mac ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html [ Skip ] +crbug.com/613672 [ Mac ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html [ Skip ] +crbug.com/613672 [ Mac ] virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html [ Skip ] crbug.com/522648 fast/events/touch/compositor-touch-hit-rects-iframes.html [ Crash Failure Pass ] crbug.com/522648 virtual/mouseevent_fractional/fast/events/touch/compositor-touch-hit-rects-iframes.html [ Crash Failure Pass ] @@ -2367,7 +2379,8 @@ crbug.com/807152 vr/VRDisplay_rAF_fires_with_window_rAF.html [ Pass Failure ] crbug.com/813697 vr/getFrameData_oneframeupdate.html [ Pass Failure ] -crbug.com/806357 [ Win Debug ] fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Pass Failure ] +crbug.com/806357 [ Win Debug ] fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Pass Failure ] +crbug.com/806357 [ Win Debug ] virtual/threaded/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Pass Failure ] crbug.com/839038 [ Mac ] external/wpt/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html [ Skip ] # These tests are skipped as there is no touch support on Mac. @@ -2381,8 +2394,9 @@ crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/multi-pointer-event-in-slop-region.html [ Skip ] crbug.com/613672 [ Mac ] fast/events/pointerevents/pointer-event-in-slop-region.html [ Skip ] crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pointer-event-in-slop-region.html [ Skip ] -crbug.com/613672 [ Mac ] fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ] -crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ] +crbug.com/613672 [ Mac ] fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ] +crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ] +crbug.com/613672 [ Mac ] virtual/threaded/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ] crbug.com/613672 [ Mac ] external/wpt/pointerevents/compat/pointerevent_touch-action_two-finger_interaction-manual.html [ Skip ] crbug.com/802067 [ Mac ] external/wpt/pointerlock/movementX_Y_basic-manual.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/VirtualTestSuites b/third_party/WebKit/LayoutTests/VirtualTestSuites index 97710c7a..97a2069 100644 --- a/third_party/WebKit/LayoutTests/VirtualTestSuites +++ b/third_party/WebKit/LayoutTests/VirtualTestSuites
@@ -78,6 +78,21 @@ "--enable-prefer-compositing-to-lcd-text"] }, { + "prefix": "threaded", + "base": "fast/events/pinch", + "args": ["--enable-threaded-compositing"] + }, + { + "prefix": "threaded", + "base": "fast/events/pointerevents/pinch", + "args": ["--enable-threaded-compositing"] + }, + { + "prefix": "threaded", + "base": "synthetic_gestures", + "args": ["--enable-threaded-compositing"] + }, + { "prefix": "gpu-rasterization", "base": "images", "args": ["--force-gpu-rasterization"]
diff --git a/third_party/WebKit/LayoutTests/compositing/squashing/dont-squash-into-videos-expected.txt b/third_party/WebKit/LayoutTests/compositing/squashing/dont-squash-into-videos-expected.txt index 6f47e5b..bd7b6df5 100644 --- a/third_party/WebKit/LayoutTests/compositing/squashing/dont-squash-into-videos-expected.txt +++ b/third_party/WebKit/LayoutTests/compositing/squashing/dont-squash-into-videos-expected.txt
@@ -24,7 +24,7 @@ "backgroundColor": "#ADD8E6" }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-pre-ready state-no-source'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-pre-ready state-no-source sizing-tiny'", "bounds": [100, 100] }, {
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json index 169d4010..40923c2 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -156718,6 +156718,11 @@ {} ] ], + "infrastructure/server/wpt-server-http.sub-expected.txt": [ + [ + {} + ] + ], "infrastructure/testdriver/send_keys-expected.txt": [ [ {} @@ -260617,7 +260622,7 @@ "support" ], "acid/acid3/reference.sub.html": [ - "764c07c1072c831cb69719372aca734fa49d827a", + "43768481bea5dc6c30343d60f218d895cf624a61", "support" ], "acid/acid3/support-a.png": [ @@ -262209,7 +262214,7 @@ "testharness" ], "content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html": [ - "7dd8bccbd166c7ac938699c406bc2209a7f5677f", + "a8c074a65a874df3f2a0f7f994c2094f4c8647b9", "testharness" ], "content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html.sub.headers": [ @@ -361476,8 +361481,12 @@ "6f246bdc6d67a92a6518870542c20d2f8b2b5f5d", "testharness" ], + "infrastructure/server/wpt-server-http.sub-expected.txt": [ + "f43e81e2a389b59723ff9787014c6d96a030e13b", + "support" + ], "infrastructure/server/wpt-server-http.sub.html": [ - "c39602efd7574944e8495e9ed0d98c6811f9e2e7", + "2a400478de23a6aecf31bdc08b187784c36be629", "testharness" ], "infrastructure/server/wpt-server-websocket.sub.html": [ @@ -390221,7 +390230,7 @@ "support" ], "webrtc/RTCPeerConnection-getIdentityAssertion.html": [ - "91b55a4f1d9a10cda7cb0e11ba42243bf94a0dfa", + "e87f8367bcd63ed4407e256b6fea42f9f66ecd40", "testharness" ], "webrtc/RTCPeerConnection-getStats.https-expected.txt": [ @@ -390629,7 +390638,7 @@ "testharness" ], "webrtc/identity-helper.js": [ - "c7639c627cceaad0e122d83ccde429d044c0773d", + "7e12bca67dadbdcec5cbba31817dbec3f01da57c", "support" ], "webrtc/interfaces.https-expected.txt": [ @@ -396777,11 +396786,11 @@ "support" ], "xhr/event-error-order.sub.html": [ - "5d0328ace02c4e7075bcc310392940bb67bd627d", + "684305e60b6b116cf191992df94d46d98c077ea6", "testharness" ], "xhr/event-error.sub.html": [ - "040207a85f39b12755bfb909afc3c31b0d823698", + "0504023101398c690fd231b7c301ce973aae8967", "testharness" ], "xhr/event-load.htm": [ @@ -397837,11 +397846,11 @@ "testharness" ], "xhr/send-network-error-async-events.sub.htm": [ - "85d0484051e19077c1dd0fde8845761fdca45b5a", + "7bf76749e25cfcd6472e45673fccedb121cc58f4", "testharness" ], "xhr/send-network-error-sync-events.sub.htm": [ - "8dd189e5d654c1fc46808dbd860ed0b055851227", + "fdc6135b6834556c49943cc9a4d1fa8e75983e65", "testharness" ], "xhr/send-no-response-event-loadend.htm": [
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/conformance-requirements/2d.voidreturn-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/conformance-requirements/2d.voidreturn-expected.txt deleted file mode 100644 index 4860831..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/conformance-requirements/2d.voidreturn-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL void methods return undefined Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 0 present. -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/transformations/2d.transformation.setTransform.multiple-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/2dcontext/transformations/2d.transformation.setTransform.multiple-expected.txt deleted file mode 100644 index f77ef0f3..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/2dcontext/transformations/2d.transformation.setTransform.multiple-expected.txt +++ /dev/null
@@ -1,4 +0,0 @@ -This is a testharness.js-based test. -FAIL Canvas test: 2d.transformation.setTransform.multiple Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 0 present. -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/acid/acid3/reference.sub.html b/third_party/WebKit/LayoutTests/external/wpt/acid/acid3/reference.sub.html index 31096136..974bee1 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/acid/acid3/reference.sub.html +++ b/third_party/WebKit/LayoutTests/external/wpt/acid/acid3/reference.sub.html
@@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <title>The Acid3 Test (Reference Rendering)</title> - <link rel="icon" href="http://nonexistent-origin.{{host}}"> + <link rel="icon" href="http://nonexistent.{{host}}"> <style type="text/css"> html { margin: 0; padding: 0; } body { background: #c0c0c0 url(reference.png) top left no-repeat; margin: 0; padding: 0; }
diff --git a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html index 6f59016..6a0f0a1e 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html +++ b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html
@@ -5,7 +5,7 @@ <script src='/resources/testharness.js'></script> <script src='/resources/testharnessreport.js'></script> <!-- if base is used for resolving the URL to report to then we will not get a report --> - <base href="http://nonexistent-origin.web-platform.test"> + <base href="http://nonexistent.web-platform.test"> </head> <body> <script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt index fe1a7ebc4..3ec2a2d 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/css/geometry/DOMMatrix2DInit-validate-fixup-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 184 tests; 12 PASS, 172 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 184 tests; 93 PASS, 91 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS setTransform({a: 1, m11: 2}) (invalid) PASS addPath({a: 1, m11: 2}) (invalid) PASS setTransform({b: 0, m12: -1}) (invalid) @@ -12,177 +12,177 @@ PASS addPath({e: 1, m41: 1.00000001}) (invalid) PASS setTransform({f: 0, m42: 5e-324}) (invalid) PASS addPath({f: 0, m42: 5e-324}) (invalid) -FAIL setTransform (Sanity check without dictionary) ctx.getTransform is not a function -FAIL addPath (Sanity check without second parameter) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m13: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m13: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m14: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m14: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m23: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m23: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m24: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m24: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m31: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m31: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m32: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m32: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: -1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: -1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m34: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m34: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m43: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m43: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m44: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m44: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({is2D: undefined}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({is2D: undefined}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({a: 1, m11: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({a: 1, m11: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({b: 0, m12: undefined}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({b: 0, m12: undefined}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({c: 0, m21: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({c: 0, m21: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({c: 0, m21: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({c: 0, m21: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({c: -0, m21: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({c: -0, m21: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({c: -0, m21: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({c: -0, m21: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({d: Infinity, m22: Infinity}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({d: Infinity, m22: Infinity}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({e: -Infinity, m41: -Infinity}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({e: -Infinity, m41: -Infinity}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({f: NaN, m42: NaN}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({f: NaN, m42: NaN}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({f: NaN, m42: NaN, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({f: NaN, m42: NaN, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({f: 0, m42: null}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({f: 0, m42: null}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({f: -0, m42: null}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({f: -0, m42: null}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({a: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({a: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({b: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({b: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({c: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({c: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({d: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({d: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({e: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({e: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({f: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({f: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m11: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m11: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m12: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m12: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m21: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m21: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m22: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m22: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m41: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m41: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m42: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m42: 2}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m13: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m13: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m13: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m13: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m14: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m14: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m14: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m14: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m23: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m23: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m23: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m23: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m24: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m24: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m24: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m24: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m31: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m31: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m31: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m31: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m32: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m32: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m32: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m32: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m34: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m34: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m34: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m34: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m43: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m43: 0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m43: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m43: -0, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m44: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m44: 1, is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({is2D: true}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m13: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m13: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m14: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m14: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m23: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m23: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m24: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m24: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m31: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m31: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m32: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m32: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: 0, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: 0, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: -0, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: -0, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: -1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: -1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m34: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m34: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m43: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m43: 1, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m44: 0, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m44: 0, is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m13: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m13: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m14: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m14: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m23: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m23: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m24: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m24: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m31: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m31: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m32: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m32: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m33: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m33: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m34: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m34: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m43: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m43: 1}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({m44: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({m44: 0}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({is2D: false}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL setTransform({is2D: null}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. -FAIL addPath({is2D: null}) Failed to execute 'setTransform' on 'CanvasRenderingContext2D': 6 arguments required, but only 1 present. +PASS setTransform (Sanity check without dictionary) +PASS addPath (Sanity check without second parameter) +PASS setTransform({m13: 1, is2D: true}) +FAIL addPath({m13: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m14: 1, is2D: true}) +FAIL addPath({m14: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m23: 1, is2D: true}) +FAIL addPath({m23: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m24: 1, is2D: true}) +FAIL addPath({m24: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m31: 1, is2D: true}) +FAIL addPath({m31: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m32: 1, is2D: true}) +FAIL addPath({m32: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: 0, is2D: true}) +FAIL addPath({m33: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: -0, is2D: true}) +FAIL addPath({m33: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: -1, is2D: true}) +FAIL addPath({m33: -1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m34: 1, is2D: true}) +FAIL addPath({m34: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m43: 1, is2D: true}) +FAIL addPath({m43: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m44: 0, is2D: true}) +FAIL addPath({m44: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({}) +FAIL addPath({}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({is2D: undefined}) +FAIL addPath({is2D: undefined}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({a: 1, m11: 1}) +FAIL addPath({a: 1, m11: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({b: 0, m12: undefined}) +FAIL addPath({b: 0, m12: undefined}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({c: 0, m21: 0}) +FAIL addPath({c: 0, m21: 0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +FAIL setTransform({c: 0, m21: -0}) assert_equals: m21 expected -0 but got 0 +FAIL addPath({c: 0, m21: -0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({c: -0, m21: 0}) +FAIL addPath({c: -0, m21: 0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +FAIL setTransform({c: -0, m21: -0}) assert_equals: m21 expected -0 but got 0 +FAIL addPath({c: -0, m21: -0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({d: Infinity, m22: Infinity}) +FAIL addPath({d: Infinity, m22: Infinity}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({e: -Infinity, m41: -Infinity}) +FAIL addPath({e: -Infinity, m41: -Infinity}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({f: NaN, m42: NaN}) +FAIL addPath({f: NaN, m42: NaN}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({f: NaN, m42: NaN, is2D: true}) +FAIL addPath({f: NaN, m42: NaN, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({f: 0, m42: null}) +FAIL addPath({f: 0, m42: null}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({f: -0, m42: null}) +FAIL addPath({f: -0, m42: null}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({a: 2}) +FAIL addPath({a: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({b: 2}) +FAIL addPath({b: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({c: 2}) +FAIL addPath({c: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({d: 2}) +FAIL addPath({d: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({e: 2}) +FAIL addPath({e: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({f: 2}) +FAIL addPath({f: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +FAIL setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) assert_equals: m41 expected -0 but got 0 +FAIL addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +FAIL setTransform({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) assert_equals: m41 expected -0 but got 0 +FAIL addPath({a: -0, b: -0, c: -0, d: -0, e: -0, f: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m11: 2}) +FAIL addPath({m11: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m12: 2}) +FAIL addPath({m12: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m21: 2}) +FAIL addPath({m21: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m22: 2}) +FAIL addPath({m22: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m41: 2}) +FAIL addPath({m41: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m42: 2}) +FAIL addPath({m42: 2}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +FAIL setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) assert_equals: m41 expected -0 but got 0 +FAIL addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +FAIL setTransform({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) assert_equals: m41 expected -0 but got 0 +FAIL addPath({m11: -0, m12: -0, m21: -0, m22: -0, m41: -0, m42: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m13: 0, is2D: true}) +FAIL addPath({m13: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m13: -0, is2D: true}) +FAIL addPath({m13: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m14: 0, is2D: true}) +FAIL addPath({m14: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m14: -0, is2D: true}) +FAIL addPath({m14: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m23: 0, is2D: true}) +FAIL addPath({m23: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m23: -0, is2D: true}) +FAIL addPath({m23: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m24: 0, is2D: true}) +FAIL addPath({m24: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m24: -0, is2D: true}) +FAIL addPath({m24: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m31: 0, is2D: true}) +FAIL addPath({m31: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m31: -0, is2D: true}) +FAIL addPath({m31: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m32: 0, is2D: true}) +FAIL addPath({m32: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m32: -0, is2D: true}) +FAIL addPath({m32: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: 1, is2D: true}) +FAIL addPath({m33: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m34: 0, is2D: true}) +FAIL addPath({m34: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m34: -0, is2D: true}) +FAIL addPath({m34: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m43: 0, is2D: true}) +FAIL addPath({m43: 0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m43: -0, is2D: true}) +FAIL addPath({m43: -0, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m44: 1, is2D: true}) +FAIL addPath({m44: 1, is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({is2D: true}) +FAIL addPath({is2D: true}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m13: 1, is2D: false}) +FAIL addPath({m13: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m14: 1, is2D: false}) +FAIL addPath({m14: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m23: 1, is2D: false}) +FAIL addPath({m23: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m24: 1, is2D: false}) +FAIL addPath({m24: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m31: 1, is2D: false}) +FAIL addPath({m31: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m32: 1, is2D: false}) +FAIL addPath({m32: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: 0, is2D: false}) +FAIL addPath({m33: 0, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: -0, is2D: false}) +FAIL addPath({m33: -0, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: -1, is2D: false}) +FAIL addPath({m33: -1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m34: 1, is2D: false}) +FAIL addPath({m34: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m43: 1, is2D: false}) +FAIL addPath({m43: 1, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m44: 0, is2D: false}) +FAIL addPath({m44: 0, is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m13: 1}) +FAIL addPath({m13: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m14: 1}) +FAIL addPath({m14: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m23: 1}) +FAIL addPath({m23: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m24: 1}) +FAIL addPath({m24: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m31: 1}) +FAIL addPath({m31: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m32: 1}) +FAIL addPath({m32: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m33: 0}) +FAIL addPath({m33: 0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m34: 1}) +FAIL addPath({m34: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m43: 1}) +FAIL addPath({m43: 1}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({m44: 0}) +FAIL addPath({m44: 0}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({is2D: false}) +FAIL addPath({is2D: false}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. +PASS setTransform({is2D: null}) +FAIL addPath({is2D: null}) Failed to execute 'addPath' on 'Path2D': parameter 2 is not of type 'SVGMatrix'. Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces.https-expected.txt index f421685..b2bdfa7 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces.https-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces.https-expected.txt
@@ -4929,11 +4929,11 @@ PASS Unscopable handled correctly for translate(unrestricted double, unrestricted double) on CanvasRenderingContext2D PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) PASS Unscopable handled correctly for transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D -FAIL CanvasRenderingContext2D interface: operation getTransform() assert_own_property: interface prototype object missing non-static operation expected property "getTransform" missing +PASS CanvasRenderingContext2D interface: operation getTransform() PASS Unscopable handled correctly for getTransform() on CanvasRenderingContext2D -FAIL CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) assert_equals: property has wrong .length expected 0 but got 6 +PASS CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) PASS Unscopable handled correctly for setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on CanvasRenderingContext2D -FAIL CanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) assert_equals: property has wrong .length expected 0 but got 6 +PASS CanvasRenderingContext2D interface: operation setTransform(DOMMatrix2DInit) PASS Unscopable handled correctly for setTransform(DOMMatrix2DInit) on CanvasRenderingContext2D PASS CanvasRenderingContext2D interface: operation resetTransform() PASS Unscopable handled correctly for resetTransform() on CanvasRenderingContext2D @@ -5078,7 +5078,7 @@ PASS CanvasRenderingContext2D interface: calling translate(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type PASS CanvasRenderingContext2D interface: calling transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError -FAIL CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type assert_inherits: property "getTransform" not found in prototype chain +PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type PASS CanvasRenderingContext2D interface: calling setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(DOMMatrix2DInit)" with the proper type
diff --git a/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub-expected.txt new file mode 100644 index 0000000..776d0af5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub-expected.txt
@@ -0,0 +1,25 @@ +This is a testharness.js-based test. +PASS HTTP protocol, no subdomain, port #1 +PASS HTTP protocol, no subdomain, port #2 +PASS HTTP protocol, www subdomain #1, port #1 +PASS HTTP protocol, www subdomain #1, port #2 +PASS HTTP protocol, www subdomain #2, port #1 +PASS HTTP protocol, www subdomain #2, port #2 +PASS HTTP protocol, www subdomain #3, port #1 +PASS HTTP protocol, www subdomain #3, port #2 +PASS HTTP protocol, punycode subdomain #1, port #1 +PASS HTTP protocol, punycode subdomain #1, port #2 +PASS HTTP protocol, punycode subdomain #2, port #1 +PASS HTTP protocol, punycode subdomain #2, port #2 +FAIL HTTP protocol, non-existent domain, port #1 assert_false: expected false got true +FAIL HTTP protocol, non-existent domain, port #2 assert_false: expected false got true +PASS HTTPS protocol, no subdomain +PASS HTTPS protocol, www subdomain #1 +PASS HTTPS protocol, www subdomain #2 +PASS HTTPS protocol, www subdomain #3 +PASS HTTPS protocol, punycode subdomain #1 +PASS HTTPS protocol, punycode subdomain #2 +PASS HTTPS protocol, non-existent domain, port #1 +PASS HTTPS protocol, non-existent domain, port #2 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub.html b/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub.html index 438a6e65..8099b9d9 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub.html +++ b/third_party/WebKit/LayoutTests/external/wpt/infrastructure/server/wpt-server-http.sub.html
@@ -121,6 +121,22 @@ }, 'HTTP protocol, punycode subdomain #2, port #2'); async_test(function(t) { + check('http', 'nonexistent.{{domains[]}}', {{ports[http][0]}}, t.step_func(function(result) { + assert_false(result); + + t.done(); + })); +}, 'HTTP protocol, non-existent domain, port #1'); + +async_test(function(t) { + check('http', 'nonexistent.{{domains[]}}', {{ports[http][1]}}, t.step_func(function(result) { + assert_false(result); + + t.done(); + })); +}, 'HTTP protocol, non-existent domain, port #2'); + +async_test(function(t) { check('https', '{{browser_host}}', {{ports[https][0]}}, t.step_func(function(result) { assert_true(result); @@ -167,6 +183,22 @@ t.done(); })); }, 'HTTPS protocol, punycode subdomain #2'); + +async_test(function(t) { + check('https', 'nonexistent.{{domains[]}}', {{ports[http][0]}}, t.step_func(function(result) { + assert_false(result); + + t.done(); + })); +}, 'HTTPS protocol, non-existent domain, port #1'); + +async_test(function(t) { + check('https', 'nonexistent.{{domains[]}}', {{ports[http][1]}}, t.step_func(function(result) { + assert_false(result); + + t.done(); + })); +}, 'HTTPS protocol, non-existent domain, port #2'); </script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/chooser_service.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/chooser_service.mojom.js index aee5d87..fd344e7 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/chooser_service.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/chooser_service.mojom.js
@@ -257,7 +257,7 @@ } var UsbChooserService = { - name: 'device::mojom::UsbChooserService', + name: 'device.mojom.UsbChooserService', kVersion: 0, ptrClass: UsbChooserServicePtr, proxyClass: UsbChooserServiceProxy, @@ -270,4 +270,4 @@ exports.UsbChooserService = UsbChooserService; exports.UsbChooserServicePtr = UsbChooserServicePtr; exports.UsbChooserServiceAssociatedPtr = UsbChooserServiceAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device.mojom.js index 86c93dd..435fc1fc 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device.mojom.js
@@ -3395,7 +3395,7 @@ } var UsbDevice = { - name: 'device::mojom::UsbDevice', + name: 'device.mojom.UsbDevice', kVersion: 0, ptrClass: UsbDevicePtr, proxyClass: UsbDeviceProxy, @@ -3421,4 +3421,4 @@ exports.UsbDevice = UsbDevice; exports.UsbDevicePtr = UsbDevicePtr; exports.UsbDeviceAssociatedPtr = UsbDeviceAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device_manager.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device_manager.mojom.js index 2e1b3016..2d76263 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device_manager.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/device_manager.mojom.js
@@ -702,7 +702,7 @@ } var UsbDeviceManager = { - name: 'device::mojom::UsbDeviceManager', + name: 'device.mojom.UsbDeviceManager', kVersion: 0, ptrClass: UsbDeviceManagerPtr, proxyClass: UsbDeviceManagerProxy, @@ -822,7 +822,7 @@ } var UsbDeviceManagerClient = { - name: 'device::mojom::UsbDeviceManagerClient', + name: 'device.mojom.UsbDeviceManagerClient', kVersion: 0, ptrClass: UsbDeviceManagerClientPtr, proxyClass: UsbDeviceManagerClientProxy, @@ -840,4 +840,4 @@ exports.UsbDeviceManagerClient = UsbDeviceManagerClient; exports.UsbDeviceManagerClientPtr = UsbDeviceManagerClientPtr; exports.UsbDeviceManagerClientAssociatedPtr = UsbDeviceManagerClientAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth.mojom.js index a8d79556..da44336 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth.mojom.js
@@ -4061,7 +4061,7 @@ } var FakeBluetooth = { - name: 'bluetooth::mojom::FakeBluetooth', + name: 'bluetooth.mojom.FakeBluetooth', kVersion: 0, ptrClass: FakeBluetoothPtr, proxyClass: FakeBluetoothProxy, @@ -5293,7 +5293,7 @@ } var FakeCentral = { - name: 'bluetooth::mojom::FakeCentral', + name: 'bluetooth.mojom.FakeCentral', kVersion: 0, ptrClass: FakeCentralPtr, proxyClass: FakeCentralProxy, @@ -5320,4 +5320,4 @@ exports.FakeCentral = FakeCentral; exports.FakeCentralPtr = FakeCentralPtr; exports.FakeCentralAssociatedPtr = FakeCentralAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth_chooser.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth_chooser.mojom.js index 535a90a..4273939 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth_chooser.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/fake_bluetooth_chooser.mojom.js
@@ -804,7 +804,7 @@ } var FakeBluetoothChooser = { - name: 'content::mojom::FakeBluetoothChooser', + name: 'content.mojom.FakeBluetoothChooser', kVersion: 0, ptrClass: FakeBluetoothChooserPtr, proxyClass: FakeBluetoothChooserProxy, @@ -819,4 +819,4 @@ exports.FakeBluetoothChooser = FakeBluetoothChooser; exports.FakeBluetoothChooserPtr = FakeBluetoothChooserPtr; exports.FakeBluetoothChooserAssociatedPtr = FakeBluetoothChooserAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/mojo_layouttest_test.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/mojo_layouttest_test.mojom.js index 839d42a0f..babaeda 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/mojo_layouttest_test.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/mojo_layouttest_test.mojom.js
@@ -248,7 +248,7 @@ } var MojoLayoutTestHelper = { - name: 'content::mojom::MojoLayoutTestHelper', + name: 'content.mojom.MojoLayoutTestHelper', kVersion: 0, ptrClass: MojoLayoutTestHelperPtr, proxyClass: MojoLayoutTestHelperProxy, @@ -261,4 +261,4 @@ exports.MojoLayoutTestHelper = MojoLayoutTestHelper; exports.MojoLayoutTestHelperPtr = MojoLayoutTestHelperPtr; exports.MojoLayoutTestHelperAssociatedPtr = MojoLayoutTestHelperAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor.mojom.js index 9e75aed..daa9921 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor.mojom.js
@@ -932,7 +932,7 @@ } var Sensor = { - name: 'device::mojom::Sensor', + name: 'device.mojom.Sensor', kVersion: 0, ptrClass: SensorPtr, proxyClass: SensorProxy, @@ -1050,7 +1050,7 @@ } var SensorClient = { - name: 'device::mojom::SensorClient', + name: 'device.mojom.SensorClient', kVersion: 0, ptrClass: SensorClientPtr, proxyClass: SensorClientProxy, @@ -1069,4 +1069,4 @@ exports.SensorClient = SensorClient; exports.SensorClientPtr = SensorClientPtr; exports.SensorClientAssociatedPtr = SensorClientAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor_provider.mojom.js b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor_provider.mojom.js index 2fac8b5..d74ad97 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor_provider.mojom.js +++ b/third_party/WebKit/LayoutTests/external/wpt/resources/chromium/sensor_provider.mojom.js
@@ -411,7 +411,7 @@ } var SensorProvider = { - name: 'device::mojom::SensorProvider', + name: 'device.mojom.SensorProvider', kVersion: 0, ptrClass: SensorProviderPtr, proxyClass: SensorProviderProxy, @@ -426,4 +426,4 @@ exports.SensorProvider = SensorProvider; exports.SensorProviderPtr = SensorProviderPtr; exports.SensorProviderAssociatedPtr = SensorProviderAssociatedPtr; -})(); \ No newline at end of file +})();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getIdentityAssertion.html b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getIdentityAssertion.html index 776d547bc..d600816 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getIdentityAssertion.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-getIdentityAssertion.html
@@ -217,7 +217,7 @@ promise_test(t => { const pc = new RTCPeerConnection(); - pc.setIdentityProvider('nonexistent-origin.web-platform.test', { + pc.setIdentityProvider('nonexistent.web-platform.test', { protocol: `non-existent`, usernameHint: `alice@example.org`, });
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/identity-helper.js b/third_party/WebKit/LayoutTests/external/wpt/webrtc/identity-helper.js index bd35d0f..16e5d35 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/identity-helper.js +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/identity-helper.js
@@ -8,7 +8,7 @@ 127.0.0.1 www2.web-platform.test 127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test 127.0.0.1 xn--lve-6lad.web-platform.test - 0.0.0.0 nonexistent-origin.web-platform.test + 0.0.0.0 nonexistent.web-platform.test */ /*
diff --git a/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error-order.sub.html b/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error-order.sub.html index 9be8b4a..252a90b 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error-order.sub.html +++ b/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error-order.sub.html
@@ -27,7 +27,7 @@ }); }); - xhr.open("POST", "http://nonexistent-origin.{{host}}:{{ports[http][0]}}", true); + xhr.open("POST", "http://nonexistent.{{host}}:{{ports[http][0]}}", true); xhr.send("Test Message"); }); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error.sub.html b/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error.sub.html index 3171c49..5f27560 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error.sub.html +++ b/third_party/WebKit/LayoutTests/external/wpt/xhr/event-error.sub.html
@@ -18,7 +18,7 @@ t.done(); }); - client.open("GET", "http://nonexistent-origin.{{host}}:{{ports[http][0]}}"); + client.open("GET", "http://nonexistent.{{host}}:{{ports[http][0]}}"); client.send("null"); }, document.title);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-async-events.sub.htm b/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-async-events.sub.htm index c803efa..c51a05c 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-async-events.sub.htm +++ b/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-async-events.sub.htm
@@ -39,7 +39,7 @@ xhr.upload.onloadend = test.step_func(e => { actual.push("upload." + e.type); }) xhr.upload.onerror = test.step_func(e => { actual.push("upload." + e.type); }) - xhr.open("POST", "http://nonexistent-origin.{{host}}:{{ports[http][0]}}", true); + xhr.open("POST", "http://nonexistent.{{host}}:{{ports[http][0]}}", true); xhr.send("Test Message"); }); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-sync-events.sub.htm b/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-sync-events.sub.htm index b899580..b9f4fdf 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-sync-events.sub.htm +++ b/third_party/WebKit/LayoutTests/external/wpt/xhr/send-network-error-sync-events.sub.htm
@@ -17,7 +17,7 @@ { var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://nonexistent-origin.{{host}}:{{ports[http][0]}}", false); + xhr.open("POST", "http://nonexistent.{{host}}:{{ports[http][0]}}", false); assert_throws("NetworkError", function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js b/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js index 7216010..267fbfec 100644 --- a/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js +++ b/third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js
@@ -16,6 +16,16 @@ window.scrollTo(targetRect.left, targetRect.top); } +function waitForCompositorCommit() { + return new Promise((resolve) => { + // For now, we just rAF twice. It would be nice to have a proper mechanism + // for this. + window.requestAnimationFrame(() => { + window.requestAnimationFrame(resolve); + }); + }); +} + // Mouse inputs. function mouseMoveToDocument() { return new Promise(function(resolve, reject) { @@ -340,15 +350,19 @@ throw("drag direction '" + direction + "' is not expected, direction should be 'down', 'up', 'left' or 'right'"); } - chrome.gpuBenchmarking.pointerActionSequence( [ - {source: pointerType, - actions: [ - { name: 'pointerDown', x: xPosition1, y: yPosition1 }, - { name: 'pointerMove', x: xPosition2, y: yPosition2 }, - { name: 'pointerMove', x: xPosition3, y: yPosition3 }, - { name: 'pause', duration: 0.1 }, - { name: 'pointerUp' } - ]}], resolve); + // Ensure the compositor is aware of any scrolling done in + // |scrollPageIfNeeded| before sending the input events. + waitForCompositorCommit().then(() => { + chrome.gpuBenchmarking.pointerActionSequence( [ + {source: pointerType, + actions: [ + { name: 'pointerDown', x: xPosition1, y: yPosition1 }, + { name: 'pointerMove', x: xPosition2, y: yPosition2 }, + { name: 'pointerMove', x: xPosition3, y: yPosition3 }, + { name: 'pause', duration: 0.1 }, + { name: 'pointerUp' } + ]}], resolve); + }); } else { reject(); } @@ -399,7 +413,11 @@ } pointerAction1.actions.push({name: 'pointerUp'}); pointerAction2.actions.push({name: 'pointerUp'}); - chrome.gpuBenchmarking.pointerActionSequence(pointerActions, resolve); + // Ensure the compositor is aware of any scrolling done in + // |scrollPageIfNeeded| before sending the input events. + waitForCompositorCommit().then(() => { + chrome.gpuBenchmarking.pointerActionSequence(pointerActions, resolve); + }); } else { reject(); }
diff --git a/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt index b48d365..97907ea 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/StyleSheet/gc-rule-children-wrappers-expected.txt
@@ -4,23 +4,23 @@ PASS document.styleSheets[0].cssRules[0].type is CSSRule.IMPORT_RULE -FAIL document.styleSheets[0].cssRules[0].media.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[0].media.foo is 'bar' PASS document.styleSheets[0].cssRules[0].type is CSSRule.IMPORT_RULE -FAIL document.styleSheets[0].cssRules[0].styleSheet.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[0].styleSheet.foo is 'bar' PASS document.styleSheets[0].cssRules[1].type is CSSRule.STYLE_RULE -FAIL document.styleSheets[0].cssRules[1].style.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[1].style.foo is 'bar' PASS document.styleSheets[0].cssRules[2].type is CSSRule.FONT_FACE_RULE -FAIL document.styleSheets[0].cssRules[2].style.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[2].style.foo is 'bar' PASS document.styleSheets[0].cssRules[3].type is CSSRule.MEDIA_RULE -FAIL document.styleSheets[0].cssRules[3].cssRules.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[3].cssRules.foo is 'bar' PASS document.styleSheets[0].cssRules[3].type is CSSRule.MEDIA_RULE -FAIL document.styleSheets[0].cssRules[3].media.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[3].media.foo is 'bar' PASS document.styleSheets[0].cssRules[4].type is CSSRule.KEYFRAMES_RULE -FAIL document.styleSheets[0].cssRules[4].cssRules.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[4].cssRules.foo is 'bar' PASS document.styleSheets[0].cssRules[4].cssRules[0].type is CSSRule.KEYFRAME_RULE FAIL document.styleSheets[0].cssRules[4].cssRules[0].style.foo should be bar (of type string). Was undefined (of type undefined). PASS document.styleSheets[0].cssRules[5].type is CSSRule.PAGE_RULE -FAIL document.styleSheets[0].cssRules[5].style.foo should be bar (of type string). Was undefined (of type undefined). +PASS document.styleSheets[0].cssRules[5].style.foo is 'bar' PASS successfullyParsed is true TEST COMPLETE
diff --git a/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt index d4e77ed..e2dd366 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/gc-9-expected.txt
@@ -87,7 +87,7 @@ PASS: document.styleSheets.myCustomProperty should be 1 and is. PASS: document.styleSheets[0].myCustomProperty should be 1 and is. PASS: document.styleSheets[0].cssRules.myCustomProperty should be 1 and is. -FAIL: document.styleSheets[0].cssRules[0].myCustomProperty should be 1 but instead is undefined. +PASS: document.styleSheets[0].cssRules[0].myCustomProperty should be 1 and is. PASS: document.getElementsByTagName('style')[0].sheet.myCustomProperty should be 1 and is. PASS: document.getElementsByTagName('svg')[0].firstChild.sheet.myCustomProperty should be 1 and is. PASS: new XPathEvaluator().myCustomProperty should be undefined and is.
diff --git a/third_party/WebKit/LayoutTests/fast/dom/gc-stylesheet-rule-property.html b/third_party/WebKit/LayoutTests/fast/dom/gc-stylesheet-rule-property.html new file mode 100644 index 0000000..8deeb0e --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/dom/gc-stylesheet-rule-property.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<head> +<style> +.doesntexit { display: none } +</style> +<script> + +test(() => { + document.styleSheets[0].cssRules[0].custom_property = 'persist'; + gc(); + assert_equals( + "persist", + document.styleSheets[0].cssRules[0].custom_property, + "Should not loose property on GC.") +}, 'Tests properties on style sheet rules are not lost. See http://crbug.com/830910.'); + +</script> +</head> +<body> +</body> +</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel-expected.txt b/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel-expected.txt deleted file mode 100644 index e339898..0000000 --- a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel-expected.txt +++ /dev/null
@@ -1,11 +0,0 @@ -PASS gotWheelEvent is false -PASS event.ctrlKey is true -PASS event.deltaX is within 0.001 of 0 -PASS event.deltaY is within 0.001 of 69.31471805599453 -PASS event.x is within 0.001 of 40 -PASS event.y is within 0.001 of 70 -PASS gotWheelEvent is true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel.html b/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel.html deleted file mode 100644 index 65d8f8f..0000000 --- a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-fake-mouse-wheel.html +++ /dev/null
@@ -1,29 +0,0 @@ -<!DOCTYPE html> -<script src="../../resources/js-test.js"></script> -<div onwheel="wheel(event)" style="margin: 0px 0; width: 100px; height: 100px; background-color: blue;"></div> -<script> -var gotWheelEvent = false; -var testX = 40; -var testY = 70; -var testScale = 0.5; -var tolerance = 0.001; - -function wheel(event) -{ - shouldBeFalse('gotWheelEvent'); - gotWheelEvent = true; - shouldBeTrue('event.ctrlKey'); - shouldBeCloseTo('event.deltaX', 0, tolerance); - shouldBeCloseTo('event.deltaY', 100 * Math.log(1 / testScale), tolerance); - shouldBeCloseTo('event.x', testX, tolerance); - shouldBeCloseTo('event.y', testY, tolerance); -} - -if (window.eventSender) { - // Ensure that a touchpad pinch generates a synthetic event - eventSender.gesturePinchBegin('touchpad', testX, testY); - eventSender.gesturePinchUpdate('touchpad', testX, testY, testScale); - eventSender.gesturePinchEnd('touchpad', testX, testY); - shouldBeTrue('gotWheelEvent'); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-expected.txt b/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-expected.txt deleted file mode 100644 index f3185c8..0000000 --- a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-expected.txt +++ /dev/null
@@ -1,22 +0,0 @@ -PASS window.innerWidth is 800 -PASS window.innerHeight is 600 -PASS gotWheelEvent is false -PASS event.ctrlKey is true -PASS event.deltaX is within 0.001 of 0 -PASS event.deltaY is within 0.001 of -40.54651081081644 -PASS event.x is within 0.001 of 50 -PASS event.y is within 0.001 of 40 -PASS window.innerWidth is 800 -PASS window.innerHeight is 600 -PASS window.scrollX is 0 -PASS window.scrollY is 0 -PASS gotWheelEvent is true -PASS gotWheelEvent is false -PASS internals.visualViewportWidth() is 400 -PASS internals.visualViewportHeight() is 300 -PASS internals.visualViewportScrollX() is 75 -PASS internals.visualViewportScrollY() is 50 -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble-expected.txt b/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble-expected.txt deleted file mode 100644 index fb03ece..0000000 --- a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble-expected.txt +++ /dev/null
@@ -1,11 +0,0 @@ -PASS internals.visualViewportWidth() is 400 -PASS internals.visualViewportHeight() is 300 -PASS internals.visualViewportScrollX() is 200 -PASS internals.visualViewportScrollY() is 300 -PASS internals.visualViewportScrollX() == 200 && internals.visualViewportScrollY() == 301 became true -PASS internals.visualViewportScrollX() == 201 && internals.visualViewportScrollY() == 301 became true -PASS internals.visualViewportScrollX() == 199 && internals.visualViewportScrollY() == 299 became true -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble.html b/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble.html deleted file mode 100644 index 28f2429..0000000 --- a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom-scroll-bubble.html +++ /dev/null
@@ -1,49 +0,0 @@ -<!DOCTYPE html> -<script src="../../resources/js-test.js"></script> -<div style="margin: 0px 0; width: 100px; height: 1000px; background-color: blue;"></div> -<script> -window.jsTestIsAsync = true; - -function testVerticalScroll() { - // Do a purely vertical scroll. This will scroll contents only. - eventSender.continuousMouseScrollBy(0, -2); - shouldBecomeEqual('internals.visualViewportScrollX() == 200 && ' + - 'internals.visualViewportScrollY() == 301', 'true', testHorizontalScroll); -} - -function testHorizontalScroll() { - // Do a purely horizontal scroll. This will change the visual viewport offset - // only. - eventSender.continuousMouseScrollBy(-2, 0); - shouldBecomeEqual('internals.visualViewportScrollX() == 201 && ' + - 'internals.visualViewportScrollY() == 301', 'true', testDiagonalScroll); -} - -function testDiagonalScroll() { - // Do a diagonal scroll. This will scroll the contents, and then bubble the - // result up to the visual viewport, where it will change the pinch - // virtual viewport offset. - eventSender.continuousMouseScrollBy(4, 4); - shouldBecomeEqual('internals.visualViewportScrollX() == 199 && ' + - 'internals.visualViewportScrollY() == 299', 'true', finishJSTest); -} - -// TODO: This test just verifies that scrollX and scrollY end up with the right -// values after a scroll. It does not verify whether these values are coming -// from content scroll or from viewport moving. This should be added. -if (window.eventSender && window.internals) { - // Do a pinch at the bottom of the page. - eventSender.gesturePinchBegin('touchpad', 400, 600); - eventSender.gesturePinchUpdate('touchpad', 400, 600, 2.0); - eventSender.gesturePinchEnd('touchpad', 400, 600); - shouldBe('internals.visualViewportWidth()', '400'); - shouldBe('internals.visualViewportHeight()', '300'); - shouldBe('internals.visualViewportScrollX()', '200'); - shouldBe('internals.visualViewportScrollY()', '300'); - - testVerticalScroll(); -} else { - testFailed("This test requires the event sender and internals"); - finishJSTest(); -} -</script>
diff --git a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom.html b/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom.html deleted file mode 100644 index a9c3e55..0000000 --- a/third_party/WebKit/LayoutTests/fast/events/gesture-pinch-zoom.html +++ /dev/null
@@ -1,51 +0,0 @@ -<!DOCTYPE html> -<script src="../../resources/js-test.js"></script> -<div onwheel="wheel(event)" style="margin: 0px 0; width: 100px; height: 100px; background-color: blue;"></div> -<script> -var gotWheelEvent = false; -var testX = 50; -var testY = 40; -var testScale = 1.5; -var tolerance = 0.001; - -function wheel(event) -{ - shouldBeFalse('gotWheelEvent'); - gotWheelEvent = true; - shouldBeTrue('event.ctrlKey'); - shouldBeCloseTo('event.deltaX', 0, tolerance); - shouldBeCloseTo('event.deltaY', 100 * Math.log(1 / testScale), tolerance); - shouldBeCloseTo('event.x', testX, tolerance); - shouldBeCloseTo('event.y', testY, tolerance); - event.preventDefault() -} - -if (window.eventSender) { - // Do a pinch in a region that prevents the event from propagating up to - // do a zoom. - shouldBe('window.innerWidth', '800'); - shouldBe('window.innerHeight', '600'); - eventSender.gesturePinchBegin('touchpad', testX, testY); - eventSender.gesturePinchUpdate('touchpad', testX, testY, testScale); - eventSender.gesturePinchEnd('touchpad', testX, testY); - shouldBe('window.innerWidth', '800'); - shouldBe('window.innerHeight', '600'); - shouldBe('window.scrollX', '0'); - shouldBe('window.scrollY', '0'); - shouldBeTrue('gotWheelEvent'); - gotWheelEvent = false; - - // Do a pinch outside of this region and ensure that a zoom occurs, and - // that it occurs around the pinch area. - eventSender.gesturePinchBegin('touchpad', 150, 100); - eventSender.gesturePinchUpdate('touchpad', 150, 100, 2.0); - eventSender.gesturePinchEnd('touchpad', 150, 100); - shouldBeFalse('gotWheelEvent'); - if (window.internals) { - shouldBe('internals.visualViewportWidth()', '400'); - shouldBe('internals.visualViewportHeight()', '300'); - shouldBe('internals.visualViewportScrollX()', '75'); - shouldBe('internals.visualViewportScrollY()', '50'); - } -} -</script>
diff --git a/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-fake-mouse-wheel.html b/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-fake-mouse-wheel.html new file mode 100644 index 0000000..5e1cf58 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-fake-mouse-wheel.html
@@ -0,0 +1,54 @@ +<!DOCTYPE html> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> +<script src="../../../resources/wait-for-compositor-commit.js"></script> +<div id="testdiv" style="margin: 0px; width: 100px; height: 100px; background-color: blue;"></div> +<script> + +var TEST_X = 40; +var TEST_Y = 70; +var TEST_SCALE = 0.5; +var TOLERANCE = 0.001; +var MOUSE_INPUT = 2; // Gesture source type from synthetic_gesture_params.h + +var t = async_test("Touchpad pinch offers synthetic wheel events"); + +var numWheelEventsSeen = 0; +var totalScaleChange = 1.0; + +function wheelHandler(event) { + numWheelEventsSeen++; + + assert_true(event.ctrlKey); + assert_approx_equals(event.deltaX, 0, TOLERANCE); + assert_approx_equals(event.x, TEST_X, TOLERANCE); + assert_approx_equals(event.y, TEST_Y, TOLERANCE); + + var scaleChange = Math.exp(-event.deltaY / 100); + totalScaleChange *= scaleChange; +} + +document.getElementById('testdiv').addEventListener( + 'wheel', t.step_func(wheelHandler)); + +if (window.chrome && chrome.gpuBenchmarking) { + window.onload = t.step_func(function() { + // Ensure the compositor is made aware of the handler before we send the + // pinch. + waitForCompositorCommit().then(t.step_func(function() { + // Ensure that a touchpad pinch generates synthetic wheel event(s). + chrome.gpuBenchmarking.pinchBy( + TEST_SCALE, TEST_X, TEST_Y, t.step_func_done(function() { + assert_greater_than(numWheelEventsSeen, 0); + assert_approx_equals(totalScaleChange, TEST_SCALE, TOLERANCE); + }), undefined /* speed */, MOUSE_INPUT); + })); + }); +} else { + t.step(function() { + assert_unreached('This test requires chrome.gpuBenchmarking.pinchBy'); + }); + t.done(); +} + +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html b/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html new file mode 100644 index 0000000..2ab5bc83 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html
@@ -0,0 +1,78 @@ +<!DOCTYPE html> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> +<script src="../../../resources/wait-for-compositor-commit.js"></script> +<div id="testdiv" style="margin: 0px; width: 100px; height: 100px; background-color: blue;"></div> +<script> + +// For the pinch inside the div. +var X_INSIDE = 50; +var Y_INSIDE = 40; +var SCALE_INSIDE = 1.5; +// For the pinch outside the div. +var X_OUTSIDE = 150; +var Y_OUTSIDE = 100; +var SCALE_OUTSIDE = 2.0; + +var TOLERANCE = 0.001; +var MOUSE_INPUT = 2; // Gesture source type from synthetic_gesture_params.h + +var t = async_test("Touchpad pinch can be prevented by wheel handlers"); + +var numWheelEventsSeen = 0; +var totalScaleChange = 1.0; + +function wheelHandler(event) { + numWheelEventsSeen++; + + var scaleChange = Math.exp(-event.deltaY / 100); + totalScaleChange *= scaleChange; + + assert_true(event.cancelable); + event.preventDefault(); +} + +document.getElementById('testdiv').addEventListener( + 'wheel', t.step_func(wheelHandler), {passive: false}); + +if (window.chrome && chrome.gpuBenchmarking) { + window.onload = t.step_func(function() { + assert_approx_equals( + window.visualViewport.scale, 1.0, TOLERANCE); + + // Ensure the compositor is made aware of the handler before we send the + // pinch. + waitForCompositorCommit().then(t.step_func(function() { + // Do a pinch in a region that prevents the event(s) from performing a + // zoom. + chrome.gpuBenchmarking.pinchBy( + SCALE_INSIDE, X_INSIDE, Y_INSIDE, t.step_func(function() { + assert_approx_equals( + window.visualViewport.scale, 1.0, TOLERANCE); + assert_greater_than(numWheelEventsSeen, 0); + assert_approx_equals(totalScaleChange, SCALE_INSIDE, TOLERANCE); + + numWheelEventsSeen = 0; + totalScaleChange = 1.0; + + // Do a pinch outside of this region and ensure that a zoom occurs, and + // that it occurs around the pinch area. + chrome.gpuBenchmarking.pinchBy( + SCALE_OUTSIDE, X_OUTSIDE, Y_OUTSIDE, t.step_func_done(function() { + assert_approx_equals( + window.visualViewport.scale, SCALE_OUTSIDE, TOLERANCE); + assert_approx_equals(window.visualViewport.offsetLeft, 75, TOLERANCE); + assert_approx_equals(window.visualViewport.offsetTop, 50, TOLERANCE); + assert_equals(numWheelEventsSeen, 0); + }), undefined /* speed */, MOUSE_INPUT); + }), undefined /* speed */, MOUSE_INPUT); + })); + }); +} else { + t.step(function() { + assert_unreached('This test requires chrome.gpuBenchmarking.pinchBy'); + }); + t.done(); +} + +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html b/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html new file mode 100644 index 0000000..22528cb --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/events/pinch/gesture-pinch-zoom-scroll-bubble.html
@@ -0,0 +1,110 @@ +<!DOCTYPE html> +<script src="../../../resources/testharness.js"></script> +<script src="../../../resources/testharnessreport.js"></script> +<script src="../../../resources/wait-for-compositor-commit.js"></script> +<div style="margin: 0px 0; width: 100px; height: 1000px; background-color: blue;"></div> +<script> + +var EPSILON = 0.001; +var MOUSE_INPUT = 2; // Gesture source type from synthetic_gesture_params.h + +var t = async_test("Scrolling with a scaled visual viewport"); + +function waitForVisualViewportOffset(x, y) { + return new Promise(function(resolve, reject) { + function pollForOffset(frames) { + if (Math.abs(window.visualViewport.offsetLeft - x) <= EPSILON && + Math.abs(window.visualViewport.offsetTop - y) <= EPSILON) { + resolve(); + } else if (frames > 500) { + reject(); + } else { + window.requestAnimationFrame(pollForOffset.bind(this, frames + 1)); + } + } + pollForOffset(0); + }); +} + +function testVerticalScroll() { + // Do a purely vertical scroll. This will scroll contents only. + chrome.gpuBenchmarking.smoothScrollBy( + 2, + t.step_func(function () { + waitForVisualViewportOffset(200, 251).then( + t.step_func(testHorizontalScroll), + t.step_func_done(function() { + assert_unreached('Timeout waiting for vertical scroll'); + })); + }), + undefined /* start_x */, + undefined /* start_y */, + MOUSE_INPUT, + 'down', + undefined /* speed */); +} + +function testHorizontalScroll() { + // Do a purely horizontal scroll. This will change the visual viewport offset + // only. + chrome.gpuBenchmarking.smoothScrollBy( + 2, + t.step_func(function () { + waitForVisualViewportOffset(201, 251).then( + t.step_func(testDiagonalScroll), + t.step_func_done(function() { + assert_unreached('Timeout waiting for horizontal scroll'); + })); + }), + undefined /* start_x */, + undefined /* start_y */, + MOUSE_INPUT, + 'right', + undefined /* speed */); +} + +function testDiagonalScroll() { + // Do a diagonal scroll. This will scroll the contents, and then bubble the + // result up to the visual viewport, where it will change the pinch + // virtual viewport offset. + chrome.gpuBenchmarking.smoothScrollBy( + 4, + t.step_func(function () { + waitForVisualViewportOffset(199, 249).then( + t.done.bind(t), + t.step_func_done(function() { + assert_unreached('Timeout waiting for diagonal scroll'); + })); + }), + undefined /* start_x */, + undefined /* start_y */, + MOUSE_INPUT, + 'upleft', + undefined /* speed */); +} + +// TODO: This test just verifies that scrollX and scrollY end up with the right +// values after a scroll. It does not verify whether these values are coming +// from content scroll or from viewport moving. This should be added. +if (window.chrome && chrome.gpuBenchmarking && window.internals) { + window.onload = t.step_func(function() { + chrome.gpuBenchmarking.pinchBy(2.0, 400, 500, t.step_func(function() { + assert_approx_equals( + window.visualViewport.scale, 2.0, EPSILON); + assert_approx_equals(window.visualViewport.offsetLeft, 200, EPSILON); + assert_approx_equals(window.visualViewport.offsetTop, 250, EPSILON); + // We're already within |EPSILON| of the desired offset, but we'll set it + // here to avoid rounding issues later in the test. + window.internals.setVisualViewportOffset(200, 250); + waitForCompositorCommit().then(testVerticalScroll); + }), undefined /* speed */, MOUSE_INPUT); + }); +} else { + t.step(function() { + assert_unreached( + 'This test requires chrome.gpuBenchmarking.pinchBy and internals'); + }); + t.done(); +} + +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html similarity index 80% rename from third_party/WebKit/LayoutTests/fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html rename to third_party/WebKit/LayoutTests/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html index 67ed494d..eb544dbc 100644 --- a/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html +++ b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pinch/pointerevent_touch-action-pinch_zoom_touch.html
@@ -7,10 +7,10 @@ <title>touch-action: pinch-zoom</title> <meta name="assert" content="TA15.4 - With `touch-action: pinch-zoom` on a swiped or click/dragged element, only pinch zoom and two finger pan should be possible."> <meta name="viewport" content="width=device-width"> - <link rel="stylesheet" type="text/css" href="../../../external/wpt/pointerevents/pointerevent_styles.css"> - <script src="../../../resources/testharness.js"></script> - <script src="../../../resources/testharnessreport.js"></script> - <script src="../../../external/wpt/pointerevents/pointerevent_support.js"></script> + <link rel="stylesheet" type="text/css" href="../../../../external/wpt/pointerevents/pointerevent_styles.css"> + <script src="../../../../resources/testharness.js"></script> + <script src="../../../../resources/testharnessreport.js"></script> + <script src="../../../../external/wpt/pointerevents/pointerevent_support.js"></script> <style> #target0 { width: 700px; @@ -87,9 +87,14 @@ var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var scrollListenerExecuted = false; target0.addEventListener("scroll", function(event) { - scrollListenerExecuted = true; + // Ignore spurious scroll events. + if (target0.scrollLeft == 0 && target0.scrollTop == 0) + return; + + test_touchaction.step(function() { + assert_unreached('scroll listener'); + }); }); // Check if "touch-action: pinch-zoom" attribute works properly @@ -97,7 +102,6 @@ on_event(btnComplete, 'click', function(event) { detected_pointertypes[event.pointerType] = true; test_touchaction.step(function() { - assert_true(scrollListenerExecuted, "scroll listener should not have been executed by the end of the test"); assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test"); assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test"); assert_greater_than(window.visualViewport.scale, 1, "scale should be greater than 1 in the end of the test"); @@ -115,13 +119,21 @@ <script> function inject_input() { - return touchScrollInTarget('#target0', 'down').then(function() { - return pinchZoomInTarget('#target0', 3.0); - }).then(function() { - document.getElementById("btnComplete").click(); + return new Promise(function(resolve) { + window.addEventListener('load', function() { + window.requestAnimationFrame(function() { + touchScrollInTarget('#target0', 'down').then(function() { + window.requestAnimationFrame(function() { + pinchZoomInTarget('#target0', 3.0).then(resolve); + }); + }); + }); }); + }).then(function() { + document.getElementById("btnComplete").click(); + }); } </script> - <script src='../../../external/wpt_automation/pointerevents/pointerevent_common_input.js'></script> + <script src='../../../../external/wpt_automation/pointerevents/pointerevent_common_input.js'></script> </body> </html>
diff --git a/third_party/WebKit/LayoutTests/fast/frames/abspos-display-none-frameset-crash.html b/third_party/WebKit/LayoutTests/fast/frames/abspos-display-none-frameset-crash.html new file mode 100644 index 0000000..96111d6b8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/frames/abspos-display-none-frameset-crash.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> +<style> + frameset { display:none; position:absolute; } + frame { float:right; } +</style> +<div id="container"></div> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<script> + var frameset = document.createElement("frameset") + var frame = document.createElement("frame"); + var container = document.getElementById("container"); + frameset.appendChild(frame); + container.appendChild(frameset); + test(() => { }, "No crash or DCHECK failure."); +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/multicol/abspos-display-none-frameset-crash.html b/third_party/WebKit/LayoutTests/fast/multicol/abspos-display-none-frameset-crash.html new file mode 100644 index 0000000..b5bf222 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/multicol/abspos-display-none-frameset-crash.html
@@ -0,0 +1,19 @@ +<!DOCTYPE html> +<style> + frameset { display:none; position:absolute; } + frame { float:right; } +</style> +<div id="multicol" style="columns:1;"> + <div></div> +</div> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<script> + var frameset = document.createElement("frameset") + var frame = document.createElement("frame"); + frameset.appendChild(frame); + multicol.appendChild(frameset); + document.body.offsetTop; + multicol.style.display = "none"; + test(() => { }, "No crash or DCHECK failure."); +</script>
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/backgrounds/border-radius-split-background-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/backgrounds/border-radius-split-background-expected.txt new file mode 100644 index 0000000..b8a8da4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/backgrounds/border-radius-split-background-expected.txt
@@ -0,0 +1,30 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x600 + LayoutNGBlockFlow {HTML} at (0,0) size 800x600 + LayoutNGBlockFlow {BODY} at (8,8) size 784x584 + LayoutNGBlockFlow {DIV} at (0,0) size 179x452 [border: (1px solid #000000)] + LayoutInline {SPAN} at (0,0) size 177x418 [bgcolor=#808080] [border: (2px solid #000000)] + LayoutText {#text} at (3,19) size 50x114 + text run at (3,19) width 50: " " + LayoutBR {BR} at (53,19) size 0x0 + LayoutText {#text} at (1,169) size 125x114 + text run at (1,169) width 125: " " + LayoutBR {BR} at (126,169) size 0x0 + LayoutText {#text} at (1,319) size 175x114 + text run at (1,319) width 175: " " + LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (179,394) size 4x19 + text run at (179,394) width 4: " " + LayoutNGBlockFlow {DIV} at (183,230) size 452x179 [border: (1px solid #000000)] + LayoutInline {SPAN} at (0,0) size 418x177 [bgcolor=#808080] [border: (2px solid #000000)] + LayoutText {#text} at (319,3) size 114x50 + text run at (319,3) width 50: " " + LayoutBR {BR} at (319,53) size 0x0 + LayoutText {#text} at (169,1) size 114x125 + text run at (169,1) width 125: " " + LayoutBR {BR} at (169,126) size 0x0 + LayoutText {#text} at (19,1) size 114x175 + text run at (19,1) width 175: " " + LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/backgrounds/border-radius-split-background-image-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/backgrounds/border-radius-split-background-image-expected.txt new file mode 100644 index 0000000..ba9281f --- /dev/null +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/backgrounds/border-radius-split-background-image-expected.txt
@@ -0,0 +1,30 @@ +layer at (0,0) size 800x600 + LayoutView at (0,0) size 800x600 +layer at (0,0) size 800x600 + LayoutNGBlockFlow {HTML} at (0,0) size 800x600 + LayoutNGBlockFlow {BODY} at (8,8) size 784x584 + LayoutNGBlockFlow {DIV} at (0,0) size 179x452 [border: (1px solid #000000)] + LayoutInline {SPAN} at (0,0) size 177x418 [bgcolor=#C0C0C0] [border: (2px solid #000000)] + LayoutText {#text} at (3,19) size 50x114 + text run at (3,19) width 50: " " + LayoutBR {BR} at (53,19) size 0x0 + LayoutText {#text} at (1,169) size 125x114 + text run at (1,169) width 125: " " + LayoutBR {BR} at (126,169) size 0x0 + LayoutText {#text} at (1,319) size 175x114 + text run at (1,319) width 175: " " + LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (179,394) size 4x19 + text run at (179,394) width 4: " " + LayoutNGBlockFlow {DIV} at (183,230) size 452x179 [border: (1px solid #000000)] + LayoutInline {SPAN} at (0,0) size 418x177 [bgcolor=#C0C0C0] [border: (2px solid #000000)] + LayoutText {#text} at (319,3) size 114x50 + text run at (319,3) width 50: " " + LayoutBR {BR} at (319,53) size 0x0 + LayoutText {#text} at (169,1) size 114x125 + text run at (169,1) width 125: " " + LayoutBR {BR} at (169,126) size 0x0 + LayoutText {#text} at (19,1) size 114x175 + text run at (19,1) width 175: " " + LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (0,0) size 0x0
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/transforms/svg-css-transforms-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/transforms/svg-css-transforms-expected.txt index 739e0c6..ec877bf7 100644 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/transforms/svg-css-transforms-expected.txt +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/transforms/svg-css-transforms-expected.txt
@@ -24,9 +24,9 @@ LayoutNGBlockFlow (relative positioned) {div} at (10,66.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,352) size 200x200
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/transforms/svg-vs-css-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/transforms/svg-vs-css-expected.txt index 4769d7a..ec949727 100644 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/transforms/svg-vs-css-expected.txt +++ b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/transforms/svg-vs-css-expected.txt
@@ -33,9 +33,9 @@ LayoutNGBlockFlow (relative positioned) {div} at (10,66.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,352) size 200x200
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/editor/text-editor-mark-clean.js b/third_party/WebKit/LayoutTests/http/tests/devtools/editor/text-editor-mark-clean.js index 7ae2bfb..b25ea15 100644 --- a/third_party/WebKit/LayoutTests/http/tests/devtools/editor/text-editor-mark-clean.js +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/editor/text-editor-mark-clean.js
@@ -9,55 +9,56 @@ var textEditor = SourcesTestRunner.createTestEditor(); textEditor.setText('1\n2\n3\n4'); + let changeGeneration = 0; TestRunner.runTestSuite([ function testMarkiningInitialStateAsClean(next) { - TestRunner.addResult('Initial state: clean=' + textEditor.isClean()); - textEditor.markClean(); - TestRunner.addResult('After marking clean: clean=' + textEditor.isClean()); + TestRunner.addResult('Initial state: clean=' + textEditor.isClean(changeGeneration)); + changeGeneration = textEditor.markClean(); + TestRunner.addResult('After marking clean: clean=' + textEditor.isClean(changeGeneration)); textEditor.editRange(TextUtils.TextRange.createFromLocation(0, 0), 'newText'); - TestRunner.addResult('EDIT; clean=' + textEditor.isClean()); + TestRunner.addResult('EDIT; clean=' + textEditor.isClean(changeGeneration)); textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); textEditor.redo(); - TestRunner.addResult('REDO; clean=' + textEditor.isClean()); + TestRunner.addResult('REDO; clean=' + textEditor.isClean(changeGeneration)); textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); textEditor.editRange(TextUtils.TextRange.createFromLocation(1, 0), 'newText2'); - TestRunner.addResult('EDIT; clean=' + textEditor.isClean()); + TestRunner.addResult('EDIT; clean=' + textEditor.isClean(changeGeneration)); textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); next(); }, function testMiddleStateAsClean(next) { - TestRunner.addResult('Initial state: clean=' + textEditor.isClean()); + TestRunner.addResult('Initial state: clean=' + textEditor.isClean(changeGeneration)); for (var i = 0; i < 3; ++i) { textEditor.editRange(TextUtils.TextRange.createFromLocation(i, 0), 'newText' + i); - TestRunner.addResult('EDIT; clean=' + textEditor.isClean()); + TestRunner.addResult('EDIT; clean=' + textEditor.isClean(changeGeneration)); } - textEditor.markClean(); - TestRunner.addResult('After marking clean: clean=' + textEditor.isClean()); + changeGeneration = textEditor.markClean(); + TestRunner.addResult('After marking clean: clean=' + textEditor.isClean(changeGeneration)); textEditor.editRange(TextUtils.TextRange.createFromLocation(3, 0), 'newText' + 3); - TestRunner.addResult('EDIT; clean=' + textEditor.isClean()); + TestRunner.addResult('EDIT; clean=' + textEditor.isClean(changeGeneration)); for (var i = 0; i < 4; ++i) { textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); } for (var i = 0; i < 4; ++i) { textEditor.redo(); - TestRunner.addResult('REDO; clean=' + textEditor.isClean()); + TestRunner.addResult('REDO; clean=' + textEditor.isClean(changeGeneration)); } for (var i = 0; i < 2; ++i) { textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); } textEditor.editRange(TextUtils.TextRange.createFromLocation(1, 0), 'foo'); - TestRunner.addResult('EDIT; clean=' + textEditor.isClean()); + TestRunner.addResult('EDIT; clean=' + textEditor.isClean(changeGeneration)); textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); textEditor.undo(); - TestRunner.addResult('UNDO; clean=' + textEditor.isClean()); + TestRunner.addResult('UNDO; clean=' + textEditor.isClean(changeGeneration)); next(); }, ]);
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/resources/ugly-function.js b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/resources/ugly-function.js new file mode 100644 index 0000000..4255c5a --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/resources/ugly-function.js
@@ -0,0 +1 @@ +function uglyFunction() {console.log('ugly function');} \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sources-pretty-print-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sources-pretty-print-expected.txt new file mode 100644 index 0000000..fd1e18b --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sources-pretty-print-expected.txt
@@ -0,0 +1,41 @@ +Verifies that editing a pretty printed resource works properly. + +* Initial state * +pretty print button: off +text: function uglyFunction() {console.log('ugly function');} +isDirty: false +workingCopy: function uglyFunction() {console.log('ugly function');} + +* Toggle pretty print on * +pretty print button: on +text: function uglyFunction() { + console.log('ugly function'); +} +isDirty: false +workingCopy: function uglyFunction() {console.log('ugly function');} + +* Type in "X" * +pretty print button: off disabled +text: Xfunction uglyFunction() { + console.log('ugly function'); +} +isDirty: true +workingCopy: Xfunction uglyFunction() { + console.log('ugly function'); +} + +* Undo * +pretty print button: on +text: function uglyFunction() { + console.log('ugly function'); +} +isDirty: false +workingCopy: function uglyFunction() {console.log('ugly function');} + +* Toggle pretty print off * +pretty print button: off +text: function uglyFunction() {console.log('ugly function');} +isDirty: false +workingCopy: function uglyFunction() {console.log('ugly function');} + +
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sources-pretty-print.js b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sources-pretty-print.js new file mode 100644 index 0000000..b317b987 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sources-pretty-print.js
@@ -0,0 +1,49 @@ +// 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(`Verifies that editing a pretty printed resource works properly.\n`); + + Runtime.experiments.enableForTest('sourcesPrettyPrint'); + await TestRunner.loadModule('sources_test_runner'); + await TestRunner.showPanel('sources'); + + await TestRunner.addScriptTag('resources/ugly-function.js'); + + const sourceFrame = await SourcesTestRunner.showScriptSourcePromise('ugly-function.js'); + dumpState('Initial state'); + + await sourceFrame._setPretty(true); + dumpState('Toggle pretty print on'); + + await new Promise(x => SourcesTestRunner.typeIn(sourceFrame.textEditor, 'X', x)); + dumpState('Type in "X"'); + + sourceFrame.textEditor.codeMirror().execCommand('undo'); + dumpState('Undo'); + + await sourceFrame._setPretty(false); + dumpState('Toggle pretty print off'); + + TestRunner.completeTest(); + + function dumpState(info) { + const uiSourceCode = sourceFrame.uiSourceCode(); + const button = sourceFrame._prettyToggle; + let buttonState = 'invisible'; + button.element.disabled + if (button.visible()) { + buttonState = button.toggled() ? 'on' : 'off'; + if (button.element.disabled) + buttonState += ' disabled'; + } + + TestRunner.addResult(`* ${info} *`); + TestRunner.addResult(`pretty print button: ${buttonState}`); + TestRunner.addResult(`text: ${sourceFrame.textEditor.text().trim()}`); + TestRunner.addResult(`isDirty: ${uiSourceCode.isDirty()}`); + TestRunner.addResult(`workingCopy: ${uiSourceCode.workingCopy().trim()}`); + TestRunner.addResult(''); + } +})();
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source-buffer.html b/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source-buffer.html index d9109aa..8ec4ead 100644 --- a/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source-buffer.html +++ b/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source-buffer.html
@@ -9,10 +9,10 @@ <script> async_test(t => { const video = document.querySelector('video'); - checkControlsClassName(video, "phase-pre-ready state-no-source use-default-poster"); + checkControlsDoesNotHaveClass(video, "state-buffering"); video.onstalled = t.step_func_done(() => { - checkControlsClassName(video, "phase-ready state-buffering"); + checkControlsHasClass(video, "state-buffering"); }); const mediaFile = "../../../media/" + "content/test.ogv";
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source.html b/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source.html index bfb7dea..2e5a8358 100644 --- a/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source.html +++ b/third_party/WebKit/LayoutTests/http/tests/media/controls/toggle-class-with-state-source.html
@@ -10,16 +10,17 @@ const video = document.querySelector('video'); let was_paused = false; - checkControlsClassName(video, "phase-pre-ready state-no-source use-default-poster"); + checkControlsHasClasses(video, ["phase-pre-ready", "state-no-source", "use-default-poster"]); video.onstalled = t.step_func(() => { - checkControlsClassName(video, "state-loading-metadata"); + checkControlsHasClass(video, "state-loading-metadata"); }); video.onloadeddata = t.step_func(() => { - const currentClass = internals.shadowRoot(video).firstChild.className; - assert_true(currentClass == "phase-ready state-buffering" - || currentClass == "phase-ready state-playing"); + const currentClasses = internals.shadowRoot(video).firstChild.classList; + assert_true(currentClasses.contains("phase-ready") && + (currentClasses.contains("state-buffering") || currentClasses.contains("state-playing")), + "Controls should have 'phase-ready' class and either 'state-buffering' or 'state-playing' classes."); }); video.onplaying = t.step_func(() => { @@ -32,7 +33,7 @@ }); video.onpause = t.step_func(() => { - checkControlsClassName(video, "phase-ready state-stopped"); + checkControlsHasClasses(video, ["phase-ready", "state-stopped"]); video.play(); });
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html b/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html index 62f25f6..d4a6006e 100644 --- a/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html +++ b/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html
@@ -10,6 +10,7 @@ dataSaver: false, cellular: false, lowEndDevice: false, + dataSaverMediaApiHoldback: false, }, expectations: { default: 'metadata', @@ -22,6 +23,7 @@ dataSaver: false, cellular: true, lowEndDevice: false, + dataSaverMediaApiHoldback: false, }, expectations: { default: 'metadata', @@ -34,6 +36,7 @@ dataSaver: true, cellular: true, lowEndDevice: false, + dataSaverMediaApiHoldback: false, }, expectations: { default: 'none', @@ -46,6 +49,7 @@ dataSaver: true, cellular: false, lowEndDevice: false, + dataSaverMediaApiHoldback: false, }, expectations: { default: 'none', @@ -53,11 +57,25 @@ } }, { + name: 'Data Saver with holdback', + conditions: { + dataSaver: true, + cellular: false, + lowEndDevice: false, + dataSaverMediaApiHoldback: true, + }, + expectations: { + default: 'metadata', + allowed: [ 'none', 'metadata', 'auto' ] + } + }, + { name: 'low end device', conditions: { dataSaver: false, cellular: false, lowEndDevice: true, + dataSaverMediaApiHoldback: false, }, expectations: { default: 'none', @@ -98,6 +116,7 @@ assert_true('dataSaver' in test.conditions); assert_true('cellular' in test.conditions); assert_true('lowEndDevice' in test.conditions); + assert_true('dataSaverMediaApiHoldback' in test.conditions); internals.setSaveDataEnabled(test.conditions.dataSaver); if (test.conditions.cellular) @@ -105,11 +124,13 @@ else internals.setNetworkConnectionInfoOverride(true, 'wifi', '4g', 100, 2.0); internals.settings.setForcePreloadNoneForMediaElements(test.conditions.lowEndDevice); + internals.settings.setDataSaverHoldbackMediaApi(test.conditions.dataSaverMediaApiHoldback); t.add_cleanup(() => { internals.setSaveDataEnabled(false); internals.clearNetworkConnectionInfoOverride(); internals.settings.setForcePreloadNoneForMediaElements(false); + internals.settings.setDataSaverHoldbackMediaApi(false); }); var media = document.createElement('video');
diff --git a/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js b/third_party/WebKit/LayoutTests/http/tests/resources/sensor-helpers.js similarity index 100% rename from third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js rename to third_party/WebKit/LayoutTests/http/tests/resources/sensor-helpers.js
diff --git a/third_party/WebKit/LayoutTests/media/autoplay-muted-datasaver-on-holdback-on.html b/third_party/WebKit/LayoutTests/media/autoplay-muted-datasaver-on-holdback-on.html new file mode 100644 index 0000000..4b0d882 --- /dev/null +++ b/third_party/WebKit/LayoutTests/media/autoplay-muted-datasaver-on-holdback-on.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> + <title>Test muted autoplay videos interaction with data saver on and data saver holdback on</title> + <script src="../resources/testharness.js"></script> + <script src="../resources/testharnessreport.js"></script> +</head> +<body> +<script> + window.internals.settings.setAutoplayPolicy('user-gesture-required'); + window.internals.runtimeFlags.autoplayMutedVideosEnabled = true; + internals.setSaveDataEnabled(true); + internals.settings.setDataSaverHoldbackMediaApi(true); + + promise_test(function(t) + { + var video = document.createElement('video'); + video.src = 'content/test.ogv'; + video.muted = true; + return video.play(); + }); +</script> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-stops-when-controls-hidden.html b/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-stops-when-controls-hidden.html index 4a416c0..b2e48e7 100644 --- a/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-stops-when-controls-hidden.html +++ b/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-stops-when-controls-hidden.html
@@ -72,11 +72,11 @@ } function expectScrubbing() { - checkControlsClassName(video, 'phase-ready state-scrubbing'); + checkControlsHasClass(video, 'state-scrubbing'); } function expectNotScrubbing() { - checkControlsClassName(video, 'phase-ready state-stopped'); + checkControlsDoesNotHaveClass(video, 'state-scrubbing'); } }); </script>
diff --git a/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-touch.html b/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-touch.html index a40b4d88..fa95d18 100644 --- a/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-touch.html +++ b/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing-touch.html
@@ -29,7 +29,7 @@ } // Check the scrubbing UI is shown with the correct time. - checkControlsClassName(video, 'phase-ready state-scrubbing'); + checkControlsHasClass(video, 'state-scrubbing'); // Check the scrubbing message is shown. assert_true(isControlVisible(scrubbingMessage)); @@ -39,7 +39,7 @@ // Add an event listener for when we start playing again after seeking. video.addEventListener('playing', t.step_func_done(() => { - checkControlsClassName(video, 'phase-ready state-playing'); + checkControlsDoesNotHaveClass(video, 'state-scrubbing'); // Check the scrubbing message is no longer shown. assert_false(isControlVisible(scrubbingMessage));
diff --git a/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing.html b/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing.html index 8c8f084..51e655f 100644 --- a/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing.html +++ b/third_party/WebKit/LayoutTests/media/controls/modern/scrubbing.html
@@ -22,7 +22,7 @@ // Add an event listener for when we start playing again after seeking. video.addEventListener('playing', t.step_func_done(() => { assert_true(seeked); - checkControlsClassName(video, 'phase-ready state-playing'); + checkControlsDoesNotHaveClass(video, 'state-scrubbing'); // Check the scrubbing message not shown. assert_false(isControlVisible(scrubbingMessage)); @@ -44,7 +44,7 @@ }), { once: true }); video.addEventListener('seeking', t.step_func(() => { - checkControlsClassName(video, 'phase-ready state-scrubbing'); + checkControlsHasClass(video, 'state-scrubbing'); // Check the scrubbing message is not shown since we're scrubbing with the mouse. assert_false(isControlVisible(scrubbingMessage));
diff --git a/third_party/WebKit/LayoutTests/media/controls/resizing-changes-css-class.html b/third_party/WebKit/LayoutTests/media/controls/resizing-changes-css-class.html new file mode 100644 index 0000000..f0c5d9f --- /dev/null +++ b/third_party/WebKit/LayoutTests/media/controls/resizing-changes-css-class.html
@@ -0,0 +1,61 @@ +<!DOCTYPE html> +<html> +<title>Test that sizing changes are reflected in CSS classes.</title> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<script src="../media-controls.js"></script> +<video controls width=200 preload=none></video> +<script> +async_test(t => { + const video = document.querySelector('video'); + const testCases = [ + { width: 500, expect: expectSmall }, + { width: 1441, expect: expectLarge }, + { width: 800, expect: expectMedium }, + { width: 2000, expect: expectLarge }, + { width: 0, expect: expectTiny }, + { width: 641, expect: expectMedium }, + { width: 308, expect: expectSmall }, + { width: 150, expect: expectTiny }, + ]; + + expectTiny(); + + runTestCase(0); + + function runTestCase(index) { + let test = testCases[index]; + video.width = test.width; + testRunner.layoutAndPaintAsyncThen(t.step_func(() => { + test.expect(); + let nextIndex = index + 1; + if (nextIndex === testCases.length) { + t.done(); + return; + } + runTestCase(nextIndex); + })); + } + + function expectTiny() { + checkControlsHasClass(video, 'sizing-tiny'); + checkControlsDoesNotHaveClasses(video, ['sizing-small', 'sizing-medium', 'sizing-large']); + } + + function expectSmall() { + checkControlsHasClass(video, 'sizing-small'); + checkControlsDoesNotHaveClasses(video, ['sizing-tiny', 'sizing-medium', 'sizing-large']); + } + + function expectMedium() { + checkControlsHasClass(video, 'sizing-medium'); + checkControlsDoesNotHaveClasses(video, ['sizing-tiny', 'sizing-small', 'sizing-large']); + } + + function expectLarge() { + checkControlsHasClass(video, 'sizing-large'); + checkControlsDoesNotHaveClasses(video, ['sizing-tiny', 'sizing-small', 'sizing-medium']); + } +}); +</script> +</html>
diff --git a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-frame.html b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-frame.html index daa8dec..3ccc34cc 100644 --- a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-frame.html +++ b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-frame.html
@@ -9,10 +9,10 @@ async_test(t => { const video = document.querySelector('video'); - checkControlsClassName(video, 'phase-pre-ready state-no-source use-default-poster'); + checkControlsHasClass(video, 'use-default-poster'); video.oncanplay = t.step_func_done(() => { - checkControlsClassName(video, 'phase-ready state-stopped'); + checkControlsDoesNotHaveClass(video, 'use-default-poster'); }); video.src = '../content/counting.ogv';
diff --git a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-image.html b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-image.html index a9bba34..a1f38f28 100644 --- a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-image.html +++ b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-poster-image.html
@@ -9,10 +9,10 @@ async_test(t => { const video = document.querySelector('video'); - checkControlsClassName(video, 'phase-pre-ready state-no-source'); + checkControlsDoesNotHaveClass(video, 'use-default-poster'); video.oncanplay = t.step_func_done(() => { - checkControlsClassName(video, 'phase-ready state-stopped'); + checkControlsDoesNotHaveClass(video, 'use-default-poster'); }); video.src = '../content/counting.ogv';
diff --git a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-metadata.html b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-metadata.html index d240cf8..828d704 100644 --- a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-metadata.html +++ b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-metadata.html
@@ -8,12 +8,11 @@ <script> async_test(t => { const video = document.querySelector('video'); - let count = 0; - checkControlsClassName(video, 'phase-pre-ready state-no-source use-default-poster'); + checkControlsHasClasses(video, ['phase-pre-ready', 'state-no-source', 'use-default-poster']); video.onloadedmetadata = t.step_func_done(() => { - checkControlsClassName(video, 'phase-ready state-stopped'); + checkControlsHasClasses(video, ['phase-ready', 'state-stopped']); }); video.src = '../content/counting.ogv';
diff --git a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-none.html b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-none.html index cb73e15..ebd4d486 100644 --- a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-none.html +++ b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-preload-none.html
@@ -9,12 +9,11 @@ <script> async_test(t => { const video = document.querySelector('video'); - let count = 0; - checkControlsClassName(video, 'phase-pre-ready state-no-source use-default-poster'); + checkControlsHasClasses(video, ['phase-pre-ready', 'state-no-source', 'use-default-poster']); window.onload = t.step_func_done(() => { - checkControlsClassName(video, 'phase-pre-ready state-no-metadata use-default-poster'); + checkControlsHasClasses(video, ['phase-pre-ready', 'state-no-metadata', 'use-default-poster']); }); video.src = '../content/counting.ogv';
diff --git a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-error.html b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-error.html index 578001e..52573cac 100644 --- a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-error.html +++ b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-error.html
@@ -8,10 +8,10 @@ <script> async_test(t => { const video = document.querySelector('video'); - checkControlsClassName(video, "phase-pre-ready state-no-source use-default-poster"); + checkControlsHasClasses(video, ['phase-pre-ready', 'state-no-source', 'use-default-poster']); video.onerror = t.step_func_done(() => { - checkControlsClassName(video, "phase-pre-ready state-no-source use-default-poster"); + checkControlsHasClasses(video, ['phase-pre-ready', 'state-no-source', 'use-default-poster']); }); video.src = "../content/missing.ogv";
diff --git a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-reset.html b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-reset.html index f43fa5a..ccb60e2b 100644 --- a/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-reset.html +++ b/third_party/WebKit/LayoutTests/media/controls/toggle-class-with-state-source-reset.html
@@ -10,10 +10,10 @@ const video = document.querySelector('video'); let count = 0; - checkControlsClassName(video, "phase-pre-ready state-no-source use-default-poster"); + checkControlsHasClasses(video, ['phase-pre-ready', 'state-no-source', 'use-default-poster']); video.onplaying = t.step_func(() => { - checkControlsClassName(video, "phase-ready state-playing"); + checkControlsHasClasses(video, ['phase-ready', 'state-playing']); count++; if (count == 2) @@ -23,7 +23,7 @@ }); video.onpause = t.step_func(() => { - checkControlsClassName(video, "phase-ready state-stopped"); + checkControlsHasClasses(video, ['phase-ready', 'state-stopped']); video.src = "../content/test.ogv"; video.play(); });
diff --git a/third_party/WebKit/LayoutTests/media/media-controls.js b/third_party/WebKit/LayoutTests/media/media-controls.js index 52ba91f..b6d3e2ed 100644 --- a/third_party/WebKit/LayoutTests/media/media-controls.js +++ b/third_party/WebKit/LayoutTests/media/media-controls.js
@@ -379,6 +379,28 @@ assert_equals(internals.shadowRoot(videoElement).firstChild.className, className); } +function checkControlsHasClass(videoElement, className) { + assert_true(mediaControls(videoElement).classList.contains(className), + 'Controls should have class: ' + className); +} + +function checkControlsDoesNotHaveClass(videoElement, className) { + assert_false(mediaControls(videoElement).classList.contains(className), + 'Controls should not have class: ' + className); +} + +function checkControlsHasClasses(videoElement, classes) { + classes.forEach(className => { + checkControlsHasClass(videoElement, className); + }); +} + +function checkControlsDoesNotHaveClasses(videoElement, classes) { + classes.forEach(className => { + checkControlsDoesNotHaveClass(videoElement, className); + }); +} + function mediaControlsOverlayPlayButton(videoElement) { return mediaControlsButton(videoElement, 'overlay-play-button'); }
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/video-paint-invalidation-expected.txt b/third_party/WebKit/LayoutTests/paint/invalidation/video-paint-invalidation-expected.txt index 3982d2c..e6d59bae 100644 --- a/third_party/WebKit/LayoutTests/paint/invalidation/video-paint-invalidation-expected.txt +++ b/third_party/WebKit/LayoutTests/paint/invalidation/video-paint-invalidation-expected.txt
@@ -28,7 +28,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped test-mode'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='test-mode phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [320, 240] },
diff --git a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt index 3ec8f5d..fe8f0c14 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -246,7 +246,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='sizing-tiny phase-ready state-stopped'", "position": [15, 859], "bounds": [150, 60] }
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt index ff3e810..e915af9 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt
@@ -13,7 +13,7 @@ LayoutSVGInlineText {#text} at (140,-57) size 15x34 chunk 1 text run 1 at (140.00,-30.00) startOffset 0 endOffset 1 width 15.00: "4" LayoutSVGContainer {g} at (-150,0) size 300x0 - LayoutSVGPath {polyline} at (-150,0) size 300x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-150 0 0 0 150 0"] + LayoutSVGPath {polyline} at (-150,0) size 300x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-150 0 0 0 150 0"] LayoutSVGContainer {g} at (-170,-20) size 340x40 LayoutSVGEllipse {circle} at (-170,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-150.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-20,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=0.00] [cy=0.00] [r=20.00] @@ -33,8 +33,8 @@ LayoutSVGInlineText {#text} at (140,-57) size 15x34 chunk 1 text run 1 at (140.00,-30.00) startOffset 0 endOffset 1 width 15.00: "4" LayoutSVGContainer {g} at (-150,0) size 300x0 - LayoutSVGPath {polyline} at (-150,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-150 0 -90 0"] - LayoutSVGPath {polyline} at (90,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="90 0 150 0"] + LayoutSVGPath {polyline} at (-150,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-150 0 -90 0"] + LayoutSVGPath {polyline} at (90,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="90 0 150 0"] LayoutSVGContainer {g} at (-170,-20) size 340x40 LayoutSVGEllipse {circle} at (-170,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-150.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-110,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-90.00] [cy=0.00] [r=20.00] @@ -61,7 +61,7 @@ LayoutSVGInlineText {#text} at (40,-7) size 38x34 chunk 1 text run 1 at (40.00,20.00) startOffset 0 endOffset 3 width 38.00: "1.4" LayoutSVGContainer {g} at (-105,-60) size 210x60 - LayoutSVGPath {polyline} at (-105,-60) size 210x60 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-105 0 -25 -60 25 -60 105 0"] + LayoutSVGPath {polyline} at (-105,-60) size 210x60 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-105 0 -25 -60 25 -60 105 0"] LayoutSVGContainer {g} at (-125,-50) size 250x70 LayoutSVGEllipse {circle} at (-125,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-105.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-85,-50) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-65.00] [cy=-30.00] [r=20.00] @@ -88,7 +88,7 @@ LayoutSVGInlineText {#text} at (50,23) size 38x34 chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 3 width 38.00: "1.4" LayoutSVGContainer {g} at (-125,0) size 250x0 - LayoutSVGPath {polyline} at (-125,0) size 250x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-125 0 125 0"] + LayoutSVGPath {polyline} at (-125,0) size 250x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-125 0 125 0"] LayoutSVGContainer {g} at (-145,-20) size 290x40 LayoutSVGEllipse {circle} at (-145,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-125.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-95,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-75.00] [cy=0.00] [r=20.00]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt index 0bacd84..1ab503ef 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt
@@ -216,25 +216,25 @@ LayoutSVGContainer {g} at (0,0) size 285x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-5.00,145.00)}] LayoutSVGHiddenContainer {defs} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {a} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (10,0) size 228x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}] LayoutSVGHiddenContainer {defs} at (10,0) size 8x8 LayoutSVGContainer {g} at (10,0) size 8x8
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt index d5567a5..fdc3b1a 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt
@@ -213,25 +213,25 @@ LayoutSVGContainer {g} at (0,0) size 285x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-5.00,145.00)}] LayoutSVGHiddenContainer {defs} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (40,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {a} at (40,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (10,0) size 258x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}] LayoutSVGHiddenContainer {defs} at (10,0) size 38x8 LayoutSVGContainer {g} at (10,0) size 38x8
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt index ea0551d7..8655bd3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt
@@ -6,8 +6,8 @@ LayoutSVGText {text} at (10,27.59) size 472.80x40.19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (10,27.59) size 472.80x40.19 chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 31 width 472.80: "Basic paint: stroke properties." - LayoutSVGPath {path} at (50,120) size 380x0 [stroke={[type=SOLID] [color=#FF0000] [stroke width=25.00] [dash array={10.00, 10.00}]}] [data="M 50 120 L 430 120"] - LayoutSVGPath {path} at (50,140) size 380x0 [stroke={[type=SOLID] [color=#000000] [stroke width=25.00] [dash offset=10.00] [dash array={10.00, 10.00}]}] [data="M 50 140 L 430 140"] + LayoutSVGPath {path} at (50,120) size 380x0 [stroke={[type=SOLID] [color=#FF0000] [stroke width=25.00] [dash array=[10.00, 10.00]]}] [data="M 50 120 L 430 120"] + LayoutSVGPath {path} at (50,140) size 380x0 [stroke={[type=SOLID] [color=#000000] [stroke width=25.00] [dash offset=10.00] [dash array=[10.00, 10.00]]}] [data="M 50 140 L 430 140"] LayoutSVGText {text} at (65,182.39) size 349.80x34.19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (65,182.39) size 349.80x34.19 chunk 1 text run 1 at (65.00,210.00) startOffset 0 endOffset 25 width 349.80: "stroke-dasharray=\"10, 10\""
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt index b8924d8..8b92d7e 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt
@@ -174,9 +174,9 @@ LayoutSVGContainer {g} at (3,10) size 16x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(88.00,0.00)}] LayoutSVGRect {rect} at (3,10) size 16x32 [stroke={[type=SOLID] [color=#00FF00]}] [x=3.00] [y=10.00] [width=16.00] [height=32.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(132.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,10) size 0x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(154.00,0.00)}] LayoutSVGPath {line} at (11,10) size 0x30 [stroke={[type=SOLID] [color=#00FF00] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=10.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (3,10) size 16x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(176.00,0.00)}] @@ -218,9 +218,9 @@ LayoutSVGContainer {g} at (3,10) size 16x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(88.00,0.00)}] LayoutSVGRect {rect} at (3,10) size 16x32 [stroke={[type=SOLID] [color=#00FF00]}] [x=3.00] [y=10.00] [width=16.00] [height=32.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(132.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,10) size 0x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(154.00,0.00)}] LayoutSVGPath {line} at (11,10) size 0x30 [stroke={[type=SOLID] [color=#00FF00] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=10.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (3,10) size 16x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(176.00,0.00)}]
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt index f269d4b..c56b659b 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt
@@ -9,7 +9,7 @@ LayoutSVGContainer {use} at (370,15) size 20x20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGContainer {g} at (370,15) size 20x20 LayoutSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] - LayoutSVGEllipse {circle} at (370,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array={4.00}]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] + LayoutSVGEllipse {circle} at (370,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array=[4.00]]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] LayoutSVGText {text} at (100.19,258.39) size 279.59x27 contains 1 chunk(s) LayoutSVGInlineText {#text} at (100.19,258.39) size 279.59x27 chunk 1 (middle anchor) text run 1 at (100.20,280.00) startOffset 0 endOffset 28 width 279.60: "This text should be visible."
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt index 22545194f..9fd27fd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt
@@ -7,7 +7,7 @@ LayoutSVGContainer {g} at (90,15) size 300x45 LayoutSVGContainer {use} at (90,15) size 20x20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGContainer {g} at (90,15) size 20x20 - LayoutSVGEllipse {circle} at (90,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array={4.00}]}] [fill={[type=SOLID] [color=#FF7F00]}] [cx=100.00] [cy=25.00] [r=10.00] + LayoutSVGEllipse {circle} at (90,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array=[4.00]]}] [fill={[type=SOLID] [color=#FF7F00]}] [cx=100.00] [cy=25.00] [r=10.00] LayoutSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGEllipse {circle} at (370,15) size 20x20 [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] LayoutSVGText {text} at (100.19,258.39) size 279.59x27 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/svg-css-transforms-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/svg-css-transforms-expected.txt index aaae3373c7..98e1847 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/svg-css-transforms-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/svg/transforms/svg-css-transforms-expected.txt
@@ -24,9 +24,9 @@ LayoutBlockFlow (relative positioned) {div} at (10,66.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,352) size 200x200
diff --git a/third_party/WebKit/LayoutTests/platform/linux/transforms/svg-vs-css-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/transforms/svg-vs-css-expected.txt index bbc11d94..28bfe03 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/transforms/svg-vs-css-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/transforms/svg-vs-css-expected.txt
@@ -33,9 +33,9 @@ LayoutBlockFlow (relative positioned) {div} at (10,66.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,352) size 200x200
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt index 6f47e5b..bd7b6df5 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt
@@ -24,7 +24,7 @@ "backgroundColor": "#ADD8E6" }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-pre-ready state-no-source'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-pre-ready state-no-source sizing-tiny'", "bounds": [100, 100] }, {
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/video/video-poster-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/video/video-poster-expected.txt index f2a28f3f..43df8bd 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/video/video-poster-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/compositing/video/video-poster-expected.txt
@@ -76,7 +76,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [352, 288] }
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt index df44eae2..186cc4b6 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -246,7 +246,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='sizing-tiny phase-ready state-stopped'", "position": [15, 859], "bounds": [150, 60] }
diff --git a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt index 3982d2c..e6d59bae 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt
@@ -28,7 +28,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped test-mode'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='test-mode phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [320, 240] },
diff --git a/third_party/WebKit/LayoutTests/platform/mac/compositing/video/video-poster-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/compositing/video/video-poster-expected.txt index 148e820..02423707 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/compositing/video/video-poster-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/compositing/video/video-poster-expected.txt
@@ -76,7 +76,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [352, 288] }
diff --git a/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt index ffb302de..6d8fdd64 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -246,7 +246,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='sizing-tiny phase-ready state-stopped'", "position": [15, 854], "bounds": [150, 60] }
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt index 1975524a9..17cb53f 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt
@@ -13,7 +13,7 @@ LayoutSVGInlineText {#text} at (140,-58) size 15x36 chunk 1 text run 1 at (140.00,-30.00) startOffset 0 endOffset 1 width 15.00: "4" LayoutSVGContainer {g} at (-150,0) size 300x0 - LayoutSVGPath {polyline} at (-150,0) size 300x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-150 0 0 0 150 0"] + LayoutSVGPath {polyline} at (-150,0) size 300x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-150 0 0 0 150 0"] LayoutSVGContainer {g} at (-170,-20) size 340x40 LayoutSVGEllipse {circle} at (-170,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-150.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-20,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=0.00] [cy=0.00] [r=20.00] @@ -33,8 +33,8 @@ LayoutSVGInlineText {#text} at (140,-58) size 15x36 chunk 1 text run 1 at (140.00,-30.00) startOffset 0 endOffset 1 width 15.00: "4" LayoutSVGContainer {g} at (-150,0) size 300x0 - LayoutSVGPath {polyline} at (-150,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-150 0 -90 0"] - LayoutSVGPath {polyline} at (90,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="90 0 150 0"] + LayoutSVGPath {polyline} at (-150,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-150 0 -90 0"] + LayoutSVGPath {polyline} at (90,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="90 0 150 0"] LayoutSVGContainer {g} at (-170,-20) size 340x40 LayoutSVGEllipse {circle} at (-170,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-150.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-110,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-90.00] [cy=0.00] [r=20.00] @@ -61,7 +61,7 @@ LayoutSVGInlineText {#text} at (40,-8) size 37.50x36 chunk 1 text run 1 at (40.00,20.00) startOffset 0 endOffset 3 width 37.50: "1.4" LayoutSVGContainer {g} at (-105,-60) size 210x60 - LayoutSVGPath {polyline} at (-105,-60) size 210x60 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-105 0 -25 -60 25 -60 105 0"] + LayoutSVGPath {polyline} at (-105,-60) size 210x60 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-105 0 -25 -60 25 -60 105 0"] LayoutSVGContainer {g} at (-125,-50) size 250x70 LayoutSVGEllipse {circle} at (-125,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-105.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-85,-50) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-65.00] [cy=-30.00] [r=20.00] @@ -88,7 +88,7 @@ LayoutSVGInlineText {#text} at (50,22) size 37.50x36 chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 3 width 37.50: "1.4" LayoutSVGContainer {g} at (-125,0) size 250x0 - LayoutSVGPath {polyline} at (-125,0) size 250x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-125 0 125 0"] + LayoutSVGPath {polyline} at (-125,0) size 250x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-125 0 125 0"] LayoutSVGContainer {g} at (-145,-20) size 290x40 LayoutSVGEllipse {circle} at (-145,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-125.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-95,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-75.00] [cy=0.00] [r=20.00]
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt index 1d47e0c..e5cbad8e 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt
@@ -216,25 +216,25 @@ LayoutSVGContainer {g} at (0,0) size 285x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-5.00,145.00)}] LayoutSVGHiddenContainer {defs} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {a} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (10,0) size 228x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}] LayoutSVGHiddenContainer {defs} at (10,0) size 8x8 LayoutSVGContainer {g} at (10,0) size 8x8
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt index c8440ad..99988b2 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt
@@ -213,25 +213,25 @@ LayoutSVGContainer {g} at (0,0) size 285x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-5.00,145.00)}] LayoutSVGHiddenContainer {defs} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (40,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {a} at (40,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (10,0) size 258x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}] LayoutSVGHiddenContainer {defs} at (10,0) size 38x8 LayoutSVGContainer {g} at (10,0) size 38x8
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt index 451cde2..0f8fe582 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt
@@ -6,8 +6,8 @@ LayoutSVGText {text} at (10,27.59) size 474.22x40.19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (10,27.59) size 474.22x40.19 chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 31 width 474.22: "Basic paint: stroke properties." - LayoutSVGPath {path} at (50,120) size 380x0 [stroke={[type=SOLID] [color=#FF0000] [stroke width=25.00] [dash array={10.00, 10.00}]}] [data="M 50 120 L 430 120"] - LayoutSVGPath {path} at (50,140) size 380x0 [stroke={[type=SOLID] [color=#000000] [stroke width=25.00] [dash offset=10.00] [dash array={10.00, 10.00}]}] [data="M 50 140 L 430 140"] + LayoutSVGPath {path} at (50,120) size 380x0 [stroke={[type=SOLID] [color=#FF0000] [stroke width=25.00] [dash array=[10.00, 10.00]]}] [data="M 50 120 L 430 120"] + LayoutSVGPath {path} at (50,140) size 380x0 [stroke={[type=SOLID] [color=#000000] [stroke width=25.00] [dash offset=10.00] [dash array=[10.00, 10.00]]}] [data="M 50 140 L 430 140"] LayoutSVGText {text} at (65,183) size 347.31x33.59 contains 1 chunk(s) LayoutSVGInlineText {#text} at (65,183) size 347.31x33.59 chunk 1 text run 1 at (65.00,210.00) startOffset 0 endOffset 25 width 347.31: "stroke-dasharray=\"10, 10\""
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt index f7e75a0..c398f90 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt
@@ -174,9 +174,9 @@ LayoutSVGContainer {g} at (3,10) size 16x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(88.00,0.00)}] LayoutSVGRect {rect} at (3,10) size 16x32 [stroke={[type=SOLID] [color=#00FF00]}] [x=3.00] [y=10.00] [width=16.00] [height=32.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(132.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,10) size 0x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(154.00,0.00)}] LayoutSVGPath {line} at (11,10) size 0x30 [stroke={[type=SOLID] [color=#00FF00] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=10.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (3,10) size 16x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(176.00,0.00)}] @@ -218,9 +218,9 @@ LayoutSVGContainer {g} at (3,10) size 16x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(88.00,0.00)}] LayoutSVGRect {rect} at (3,10) size 16x32 [stroke={[type=SOLID] [color=#00FF00]}] [x=3.00] [y=10.00] [width=16.00] [height=32.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(132.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,10) size 0x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(154.00,0.00)}] LayoutSVGPath {line} at (11,10) size 0x30 [stroke={[type=SOLID] [color=#00FF00] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=10.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (3,10) size 16x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(176.00,0.00)}]
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt index a26e0fcb..4b75907d 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt
@@ -9,7 +9,7 @@ LayoutSVGContainer {use} at (370,15) size 20x20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGContainer {g} at (370,15) size 20x20 LayoutSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] - LayoutSVGEllipse {circle} at (370,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array={4.00}]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] + LayoutSVGEllipse {circle} at (370,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array=[4.00]]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] LayoutSVGText {text} at (99.25,257.80) size 281.47x27.59 contains 1 chunk(s) LayoutSVGInlineText {#text} at (99.25,257.80) size 281.47x27.59 chunk 1 (middle anchor) text run 1 at (99.26,280.00) startOffset 0 endOffset 28 width 281.47: "This text should be visible."
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt index b68eddb0..ec9d4ac 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt
@@ -7,7 +7,7 @@ LayoutSVGContainer {g} at (90,15) size 300x45 LayoutSVGContainer {use} at (90,15) size 20x20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGContainer {g} at (90,15) size 20x20 - LayoutSVGEllipse {circle} at (90,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array={4.00}]}] [fill={[type=SOLID] [color=#FF7F00]}] [cx=100.00] [cy=25.00] [r=10.00] + LayoutSVGEllipse {circle} at (90,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array=[4.00]]}] [fill={[type=SOLID] [color=#FF7F00]}] [cx=100.00] [cy=25.00] [r=10.00] LayoutSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGEllipse {circle} at (370,15) size 20x20 [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] LayoutSVGText {text} at (99.25,257.80) size 281.47x27.59 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/mac/svg/transforms/svg-css-transforms-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/svg/transforms/svg-css-transforms-expected.txt index 3989f81..d306b58 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/svg/transforms/svg-css-transforms-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/svg/transforms/svg-css-transforms-expected.txt
@@ -24,9 +24,9 @@ LayoutBlockFlow (relative positioned) {div} at (10,67.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,354) size 200x200
diff --git a/third_party/WebKit/LayoutTests/platform/mac/transforms/svg-vs-css-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/transforms/svg-vs-css-expected.txt index 1539464f..438212a 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/transforms/svg-vs-css-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/transforms/svg-vs-css-expected.txt
@@ -33,9 +33,9 @@ LayoutBlockFlow (relative positioned) {div} at (10,67.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,354) size 200x200
diff --git a/third_party/WebKit/LayoutTests/platform/win/compositing/video/video-poster-expected.txt b/third_party/WebKit/LayoutTests/platform/win/compositing/video/video-poster-expected.txt index f2a28f3f..43df8bd 100644 --- a/third_party/WebKit/LayoutTests/platform/win/compositing/video/video-poster-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/compositing/video/video-poster-expected.txt
@@ -76,7 +76,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [352, 288] }
diff --git a/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt index 8ff1b2b..4ab909a 100644 --- a/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -246,7 +246,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='sizing-tiny phase-ready state-stopped'", "position": [15, 859], "bounds": [150, 60] }
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt index 8aee128..156e1c2 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt
@@ -13,7 +13,7 @@ LayoutSVGInlineText {#text} at (140,-57) size 15x34 chunk 1 text run 1 at (140.00,-30.00) startOffset 0 endOffset 1 width 15.00: "4" LayoutSVGContainer {g} at (-150,0) size 300x0 - LayoutSVGPath {polyline} at (-150,0) size 300x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-150 0 0 0 150 0"] + LayoutSVGPath {polyline} at (-150,0) size 300x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-150 0 0 0 150 0"] LayoutSVGContainer {g} at (-170,-20) size 340x40 LayoutSVGEllipse {circle} at (-170,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-150.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-20,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=0.00] [cy=0.00] [r=20.00] @@ -33,8 +33,8 @@ LayoutSVGInlineText {#text} at (140,-57) size 15x34 chunk 1 text run 1 at (140.00,-30.00) startOffset 0 endOffset 1 width 15.00: "4" LayoutSVGContainer {g} at (-150,0) size 300x0 - LayoutSVGPath {polyline} at (-150,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-150 0 -90 0"] - LayoutSVGPath {polyline} at (90,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="90 0 150 0"] + LayoutSVGPath {polyline} at (-150,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-150 0 -90 0"] + LayoutSVGPath {polyline} at (90,0) size 60x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="90 0 150 0"] LayoutSVGContainer {g} at (-170,-20) size 340x40 LayoutSVGEllipse {circle} at (-170,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-150.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-110,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-90.00] [cy=0.00] [r=20.00] @@ -61,7 +61,7 @@ LayoutSVGInlineText {#text} at (40,-7) size 38x34 chunk 1 text run 1 at (40.00,20.00) startOffset 0 endOffset 3 width 38.00: "1.4" LayoutSVGContainer {g} at (-105,-60) size 210x60 - LayoutSVGPath {polyline} at (-105,-60) size 210x60 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-105 0 -25 -60 25 -60 105 0"] + LayoutSVGPath {polyline} at (-105,-60) size 210x60 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-105 0 -25 -60 25 -60 105 0"] LayoutSVGContainer {g} at (-125,-50) size 250x70 LayoutSVGEllipse {circle} at (-125,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-105.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-85,-50) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-65.00] [cy=-30.00] [r=20.00] @@ -88,7 +88,7 @@ LayoutSVGInlineText {#text} at (50,23) size 38x34 chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 3 width 38.00: "1.4" LayoutSVGContainer {g} at (-125,0) size 250x0 - LayoutSVGPath {polyline} at (-125,0) size 250x0 [stroke={[type=SOLID] [color=#888888] [dash array={10.00, 6.00}]}] [points="-125 0 125 0"] + LayoutSVGPath {polyline} at (-125,0) size 250x0 [stroke={[type=SOLID] [color=#888888] [dash array=[10.00, 6.00]]}] [points="-125 0 125 0"] LayoutSVGContainer {g} at (-145,-20) size 290x40 LayoutSVGEllipse {circle} at (-145,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-125.00] [cy=0.00] [r=20.00] LayoutSVGEllipse {circle} at (-95,-20) size 40x40 [stroke={[type=SOLID] [color=#555555]}] [fill={[type=SOLID] [color=#CCCCCC]}] [cx=-75.00] [cy=0.00] [r=20.00]
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt index bd6ef8f..2642e14 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt
@@ -216,25 +216,25 @@ LayoutSVGContainer {g} at (0,0) size 285x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-5.00,145.00)}] LayoutSVGHiddenContainer {defs} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {a} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (10,0) size 228x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}] LayoutSVGHiddenContainer {defs} at (10,0) size 8x8 LayoutSVGContainer {g} at (10,0) size 8x8
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt index b972f50..5bc44c6c 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt
@@ -213,25 +213,25 @@ LayoutSVGContainer {g} at (0,0) size 285x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-5.00,145.00)}] LayoutSVGHiddenContainer {defs} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {use} at (0,0) size 65x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] LayoutSVGContainer {g} at (0,0) size 65x0 - LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CCCCCC] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (40,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {a} at (40,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}] - LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array={3.00, 4.00, 5.00}]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] + LayoutSVGPath {line} at (0,0) size 25x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}] [stroke={[type=SOLID] [color=#CC0066] [stroke width=3.00] [dash offset=5.50] [dash array=[3.00, 4.00, 5.00]]}] [fill={[type=SOLID] [color=#CC0066]}] [x1=0.00] [y1=0.00] [x2=25.00] [y2=0.00] LayoutSVGContainer {g} at (10,0) size 258x8 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}] LayoutSVGHiddenContainer {defs} at (10,0) size 38x8 LayoutSVGContainer {g} at (10,0) size 38x8
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt index 9e5885d..ce492e8c 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt
@@ -6,8 +6,8 @@ LayoutSVGText {text} at (10,27.59) size 473.39x40.19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (10,27.59) size 473.39x40.19 chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 31 width 473.40: "Basic paint: stroke properties." - LayoutSVGPath {path} at (50,120) size 380x0 [stroke={[type=SOLID] [color=#FF0000] [stroke width=25.00] [dash array={10.00, 10.00}]}] [data="M 50 120 L 430 120"] - LayoutSVGPath {path} at (50,140) size 380x0 [stroke={[type=SOLID] [color=#000000] [stroke width=25.00] [dash offset=10.00] [dash array={10.00, 10.00}]}] [data="M 50 140 L 430 140"] + LayoutSVGPath {path} at (50,120) size 380x0 [stroke={[type=SOLID] [color=#FF0000] [stroke width=25.00] [dash array=[10.00, 10.00]]}] [data="M 50 120 L 430 120"] + LayoutSVGPath {path} at (50,140) size 380x0 [stroke={[type=SOLID] [color=#000000] [stroke width=25.00] [dash offset=10.00] [dash array=[10.00, 10.00]]}] [data="M 50 140 L 430 140"] LayoutSVGText {text} at (65,182.39) size 349.80x34.19 contains 1 chunk(s) LayoutSVGInlineText {#text} at (65,182.39) size 349.80x34.19 chunk 1 text run 1 at (65.00,210.00) startOffset 0 endOffset 25 width 349.80: "stroke-dasharray=\"10, 10\""
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt index 8119e5bc..1fcbea7 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt
@@ -174,9 +174,9 @@ LayoutSVGContainer {g} at (3,10) size 16x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(88.00,0.00)}] LayoutSVGRect {rect} at (3,10) size 16x32 [stroke={[type=SOLID] [color=#00FF00]}] [x=3.00] [y=10.00] [width=16.00] [height=32.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(132.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,10) size 0x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(154.00,0.00)}] LayoutSVGPath {line} at (11,10) size 0x30 [stroke={[type=SOLID] [color=#00FF00] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=10.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (3,10) size 16x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(176.00,0.00)}] @@ -218,9 +218,9 @@ LayoutSVGContainer {g} at (3,10) size 16x32 [transform={m=((1.00,0.00)(0.00,1.00)) t=(88.00,0.00)}] LayoutSVGRect {rect} at (3,10) size 16x32 [stroke={[type=SOLID] [color=#00FF00]}] [x=3.00] [y=10.00] [width=16.00] [height=32.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,5) size 0x35 [transform={m=((1.00,0.00)(0.00,1.00)) t=(132.00,0.00)}] - LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array={2.00, 2.00, 5.00, 5.00}]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] + LayoutSVGPath {line} at (11,5) size 0x35 [stroke={[type=SOLID] [color=#00FF00] [stroke width=2.00] [dash offset=4.00] [dash array=[2.00, 2.00, 5.00, 5.00]]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=5.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (11,10) size 0x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(154.00,0.00)}] LayoutSVGPath {line} at (11,10) size 0x30 [stroke={[type=SOLID] [color=#00FF00] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [x1=11.00] [y1=10.00] [x2=11.00] [y2=40.00] LayoutSVGContainer {g} at (3,10) size 16x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(176.00,0.00)}]
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt index b4bb357..fec800c 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt
@@ -9,7 +9,7 @@ LayoutSVGContainer {use} at (370,15) size 20x20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGContainer {g} at (370,15) size 20x20 LayoutSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] - LayoutSVGEllipse {circle} at (370,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array={4.00}]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] + LayoutSVGEllipse {circle} at (370,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array=[4.00]]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] LayoutSVGText {text} at (104.39,258.39) size 271.19x27 contains 1 chunk(s) LayoutSVGInlineText {#text} at (104.39,258.39) size 271.19x27 chunk 1 (middle anchor) text run 1 at (104.40,280.00) startOffset 0 endOffset 28 width 271.20: "This text should be visible."
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt index f1a5d4e..096fe830 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt
@@ -7,7 +7,7 @@ LayoutSVGContainer {g} at (90,15) size 300x45 LayoutSVGContainer {use} at (90,15) size 20x20 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGContainer {g} at (90,15) size 20x20 - LayoutSVGEllipse {circle} at (90,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array={4.00}]}] [fill={[type=SOLID] [color=#FF7F00]}] [cx=100.00] [cy=25.00] [r=10.00] + LayoutSVGEllipse {circle} at (90,15) size 20x20 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00] [line cap=ROUND] [dash array=[4.00]]}] [fill={[type=SOLID] [color=#FF7F00]}] [cx=100.00] [cy=25.00] [r=10.00] LayoutSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}] LayoutSVGEllipse {circle} at (370,15) size 20x20 [fill={[type=SOLID] [color=#FFFF00]}] [cx=380.00] [cy=25.00] [r=10.00] LayoutSVGText {text} at (104.39,258.39) size 271.19x27 contains 1 chunk(s)
diff --git a/third_party/WebKit/LayoutTests/platform/win/svg/transforms/svg-css-transforms-expected.txt b/third_party/WebKit/LayoutTests/platform/win/svg/transforms/svg-css-transforms-expected.txt index 307d537..81454b8 100644 --- a/third_party/WebKit/LayoutTests/platform/win/svg/transforms/svg-css-transforms-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/svg/transforms/svg-css-transforms-expected.txt
@@ -24,9 +24,9 @@ LayoutBlockFlow (relative positioned) {div} at (10,66.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,352) size 200x200
diff --git a/third_party/WebKit/LayoutTests/platform/win/transforms/svg-vs-css-expected.txt b/third_party/WebKit/LayoutTests/platform/win/transforms/svg-vs-css-expected.txt index 82ea4e4..4dc748cc 100644 --- a/third_party/WebKit/LayoutTests/platform/win/transforms/svg-vs-css-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/transforms/svg-vs-css-expected.txt
@@ -33,9 +33,9 @@ LayoutBlockFlow (relative positioned) {div} at (10,66.81) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)] LayoutSVGRoot {svg} at (1,1) size 200x200 LayoutSVGContainer {g} at (-84.85,0) size 204.85x169.71 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGContainer {g} at (-42.43,0) size 102.43x84.85 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] - LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (0,0) size 60x60 [stroke={[type=SOLID] [color=#000000] [dash array=[1.00, 1.00]]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (0,0) size 60x60 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00] LayoutText {#text} at (0,0) size 0x0 layer at (28,352) size 200x200
diff --git a/third_party/WebKit/LayoutTests/resources/wait-for-compositor-commit.js b/third_party/WebKit/LayoutTests/resources/wait-for-compositor-commit.js new file mode 100644 index 0000000..77e44332 --- /dev/null +++ b/third_party/WebKit/LayoutTests/resources/wait-for-compositor-commit.js
@@ -0,0 +1,9 @@ +function waitForCompositorCommit() { + return new Promise((resolve) => { + // For now, we just rAF twice. It would be nice to have a proper mechanism + // for this. + window.requestAnimationFrame(() => { + window.requestAnimationFrame(resolve); + }); + }); +}
diff --git a/third_party/WebKit/LayoutTests/sensor/accelerometer.html b/third_party/WebKit/LayoutTests/sensor/accelerometer.html index c8e07c6..45adcb8 100644 --- a/third_party/WebKit/LayoutTests/sensor/accelerometer.html +++ b/third_party/WebKit/LayoutTests/sensor/accelerometer.html
@@ -1,9 +1,9 @@ <!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> +<script src="../http/tests/resources/sensor-helpers.js"></script> <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="file:///gen/services/device/public/mojom/sensor_provider.mojom.js"></script> -<script src="resources/sensor-helpers.js"></script> <script src="resources/generic-sensor-tests.js"></script> <script>
diff --git a/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html b/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html index fc8d915..e2092c0 100644 --- a/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html +++ b/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html
@@ -1,9 +1,9 @@ <!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> +<script src="../http/tests/resources/sensor-helpers.js"></script> <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="file:///gen/services/device/public/mojom/sensor_provider.mojom.js"></script> -<script src="resources/sensor-helpers.js"></script> <script src="resources/generic-sensor-tests.js"></script> <script>
diff --git a/third_party/WebKit/LayoutTests/sensor/gyroscope.html b/third_party/WebKit/LayoutTests/sensor/gyroscope.html index 4a48f185..8c2cbb3a 100644 --- a/third_party/WebKit/LayoutTests/sensor/gyroscope.html +++ b/third_party/WebKit/LayoutTests/sensor/gyroscope.html
@@ -1,9 +1,9 @@ <!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> +<script src="../http/tests/resources/sensor-helpers.js"></script> <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="file:///gen/services/device/public/mojom/sensor_provider.mojom.js"></script> -<script src="resources/sensor-helpers.js"></script> <script src="resources/generic-sensor-tests.js"></script> <script>
diff --git a/third_party/WebKit/LayoutTests/sensor/magnetometer.html b/third_party/WebKit/LayoutTests/sensor/magnetometer.html index 7ade64e..c53b9713 100644 --- a/third_party/WebKit/LayoutTests/sensor/magnetometer.html +++ b/third_party/WebKit/LayoutTests/sensor/magnetometer.html
@@ -1,9 +1,9 @@ <!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> +<script src="../http/tests/resources/sensor-helpers.js"></script> <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="file:///gen/services/device/public/mojom/sensor_provider.mojom.js"></script> -<script src="resources/sensor-helpers.js"></script> <script src="resources/generic-sensor-tests.js"></script> <script>
diff --git a/third_party/WebKit/LayoutTests/sensor/mock-sensor.html b/third_party/WebKit/LayoutTests/sensor/mock-sensor.html index 340d1ad..7d93327 100644 --- a/third_party/WebKit/LayoutTests/sensor/mock-sensor.html +++ b/third_party/WebKit/LayoutTests/sensor/mock-sensor.html
@@ -1,9 +1,9 @@ <!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> +<script src="../http/tests/resources/sensor-helpers.js"></script> <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="file:///gen/services/device/public/mojom/sensor_provider.mojom.js"></script> -<script src="resources/sensor-helpers.js"></script> <script> 'use strict';
diff --git a/third_party/WebKit/LayoutTests/sensor/orientation-sensor.html b/third_party/WebKit/LayoutTests/sensor/orientation-sensor.html index 6e0d4998..4874e97 100644 --- a/third_party/WebKit/LayoutTests/sensor/orientation-sensor.html +++ b/third_party/WebKit/LayoutTests/sensor/orientation-sensor.html
@@ -1,9 +1,9 @@ <!DOCTYPE html> <script src="../resources/testharness.js"></script> <script src="../resources/testharnessreport.js"></script> +<script src="../http/tests/resources/sensor-helpers.js"></script> <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="file:///gen/services/device/public/mojom/sensor_provider.mojom.js"></script> -<script src="resources/sensor-helpers.js"></script> <script src="resources/generic-sensor-tests.js"></script> <script>
diff --git a/third_party/WebKit/LayoutTests/svg/custom/dasharrayOrigin-expected.txt b/third_party/WebKit/LayoutTests/svg/custom/dasharrayOrigin-expected.txt index ee9fc7c24..aec29c3 100644 --- a/third_party/WebKit/LayoutTests/svg/custom/dasharrayOrigin-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/custom/dasharrayOrigin-expected.txt
@@ -3,8 +3,8 @@ layer at (0,0) size 800x600 LayoutSVGRoot {svg} at (0,0) size 800x600 LayoutSVGRect {rect} at (50,50) size 100x100 [stroke={[type=SOLID] [color=#D3D3D3] [stroke width=15.00]}] [x=50.00] [y=50.00] [width=100.00] [height=100.00] - LayoutSVGRect {rect} at (50,50) size 100x100 [stroke={[type=SOLID] [color=#008000] [stroke width=15.00] [dash array={100.00, 20.00, 20.00, 1000.00}]}] [x=50.00] [y=50.00] [width=100.00] [height=100.00] + LayoutSVGRect {rect} at (50,50) size 100x100 [stroke={[type=SOLID] [color=#008000] [stroke width=15.00] [dash array=[100.00, 20.00, 20.00, 1000.00]]}] [x=50.00] [y=50.00] [width=100.00] [height=100.00] LayoutSVGEllipse {circle} at (50,50) size 100x100 [stroke={[type=SOLID] [color=#808080] [stroke width=5.00]}] [cx=100.00] [cy=100.00] [r=50.00] - LayoutSVGEllipse {circle} at (50,50) size 100x100 [stroke={[type=SOLID] [color=#FF0000] [stroke width=5.00] [dash array={100.00, 20.00, 20.00, 1000.00}]}] [cx=100.00] [cy=100.00] [r=50.00] + LayoutSVGEllipse {circle} at (50,50) size 100x100 [stroke={[type=SOLID] [color=#FF0000] [stroke width=5.00] [dash array=[100.00, 20.00, 20.00, 1000.00]]}] [cx=100.00] [cy=100.00] [r=50.00] LayoutSVGRect {rect} at (30,30) size 140x140 [stroke={[type=SOLID] [color=#D3D3D3] [stroke width=5.00]}] [x=30.00] [y=30.00] [width=140.00] [height=140.00] - LayoutSVGRect {rect} at (30,30) size 140x140 [stroke={[type=SOLID] [color=#0000FF] [stroke width=10.00] [dash array={100.00, 20.00, 20.00, 1000.00}]}] [x=30.00] [y=30.00] [width=140.00] [height=140.00] + LayoutSVGRect {rect} at (30,30) size 140x140 [stroke={[type=SOLID] [color=#0000FF] [stroke width=10.00] [dash array=[100.00, 20.00, 20.00, 1000.00]]}] [x=30.00] [y=30.00] [width=140.00] [height=140.00]
diff --git a/third_party/WebKit/LayoutTests/svg/custom/invalid-dasharray-expected.txt b/third_party/WebKit/LayoutTests/svg/custom/invalid-dasharray-expected.txt index a7a5335..c6675d5 100644 --- a/third_party/WebKit/LayoutTests/svg/custom/invalid-dasharray-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/custom/invalid-dasharray-expected.txt
@@ -2,4 +2,4 @@ LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600 LayoutSVGRoot {svg} at (0,0) size 800x600 - LayoutSVGRect {rect} at (0,0) size 100x100 [stroke={[type=SOLID] [color=#008000] [stroke width=10.00] [dash array={10.00, 10.00}]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00] + LayoutSVGRect {rect} at (0,0) size 100x100 [stroke={[type=SOLID] [color=#008000] [stroke width=10.00] [dash array=[10.00, 10.00]]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]
diff --git a/third_party/WebKit/LayoutTests/svg/custom/use-css-no-effect-on-shadow-tree-expected.txt b/third_party/WebKit/LayoutTests/svg/custom/use-css-no-effect-on-shadow-tree-expected.txt index 64ebfc9..5bdc952 100644 --- a/third_party/WebKit/LayoutTests/svg/custom/use-css-no-effect-on-shadow-tree-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/custom/use-css-no-effect-on-shadow-tree-expected.txt
@@ -3,8 +3,8 @@ layer at (0,0) size 454x113 LayoutSVGRoot {svg} at (0,0) size 453.53x113.38 LayoutSVGHiddenContainer {defs} at (300,50) size 600x200 - LayoutSVGPath {path} at (300,50) size 600x200 [stroke={[type=SOLID] [color=#FF0000] [opacity=0.50] [miter limit=10.00] [line join=BEVEL] [dash array={300.00, 100.00}]}] [fill={[type=SOLID] [color=#000000]}] [data="M 300 50 L 900 50 L 900 250 L 300 250"] + LayoutSVGPath {path} at (300,50) size 600x200 [stroke={[type=SOLID] [color=#FF0000] [opacity=0.50] [miter limit=10.00] [line join=BEVEL] [dash array=[300.00, 100.00]]}] [fill={[type=SOLID] [color=#000000]}] [data="M 300 50 L 900 50 L 900 250 L 300 250"] LayoutSVGRect {rect} at (0,0) size 1200x300 [stroke={[type=SOLID] [color=#0000FF] [stroke width=3.00]}] [x=0.00] [y=0.00] [width=1200.00] [height=300.00] LayoutSVGContainer {g} at (300,50) size 600x200 LayoutSVGContainer {use} at (300,50) size 600x200 - LayoutSVGPath {path} at (300,50) size 600x200 [stroke={[type=SOLID] [color=#FF0000] [opacity=0.50] [stroke width=40.00] [line cap=ROUND] [line join=BEVEL] [dash offset=50.00] [dash array={300.00, 100.00}]}] [fill={[type=SOLID] [color=#0000FF] [opacity=0.50]}] [data="M 300 50 L 900 50 L 900 250 L 300 250"] + LayoutSVGPath {path} at (300,50) size 600x200 [stroke={[type=SOLID] [color=#FF0000] [opacity=0.50] [stroke width=40.00] [line cap=ROUND] [line join=BEVEL] [dash offset=50.00] [dash array=[300.00, 100.00]]}] [fill={[type=SOLID] [color=#0000FF] [opacity=0.50]}] [data="M 300 50 L 900 50 L 900 250 L 300 250"]
diff --git a/third_party/WebKit/LayoutTests/svg/filters/subRegion-one-effect-expected.txt b/third_party/WebKit/LayoutTests/svg/filters/subRegion-one-effect-expected.txt index 7b1b324..3f9efb0a 100644 --- a/third_party/WebKit/LayoutTests/svg/filters/subRegion-one-effect-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/filters/subRegion-one-effect-expected.txt
@@ -46,86 +46,86 @@ [feOffset dx="0.00" dy="0.00"] [SourceGraphic] LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_01"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (12.50,12.50) size 25x37.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=25.00] [height=37.50] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_02"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,25) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_03"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (50,37.50) size 25x12.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=50.00] [y=37.50] [width=25.00] [height=12.50] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_04"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (37.50,37.50) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=37.50] [y=37.50] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_05"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (12.50,12.50) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_06"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (31.25,31.25) size 12.50x12.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=31.25] [y=31.25] [width=12.50] [height=12.50] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_07"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (20,20) size 60x155 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_08"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (12.50,12.50) size 67.50x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 25x37.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=25.00] [height=37.50] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_09"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (20,20) size 60x155 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (25,25) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_10"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (20,20) size 80x155 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (50,50) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=50.00] [y=50.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_11"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (20,20) size 60x155 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (37.50,37.50) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=37.50] [y=37.50] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_12"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (12.50,12.50) size 67.50x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_13"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (12.50,12.50) size 75x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 75x75 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=75.00] [height=75.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_14"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60
diff --git a/third_party/WebKit/LayoutTests/svg/filters/subRegion-two-effects-expected.txt b/third_party/WebKit/LayoutTests/svg/filters/subRegion-two-effects-expected.txt index 3789842..a74475c 100644 --- a/third_party/WebKit/LayoutTests/svg/filters/subRegion-two-effects-expected.txt +++ b/third_party/WebKit/LayoutTests/svg/filters/subRegion-two-effects-expected.txt
@@ -60,99 +60,99 @@ [feOffset dx="0.00" dy="0.00"] [SourceGraphic] LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_01"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 87.50x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (12.50,12.50) size 25x37.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=25.00] [height=37.50] LayoutSVGRect {rect} at (50,50) size 37.50x37.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=50.00] [y=50.00] [width=37.50] [height=37.50] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_02"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_03"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 87.50x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (0,25) size 50x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=0.00] [y=25.00] [width=50.00] [height=25.00] LayoutSVGRect {rect} at (37.50,25) size 50x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=37.50] [y=25.00] [width=50.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_04"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_05"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (0,0) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=0.00] [y=0.00] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_06"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (0,0) size 75x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,10.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (0,0) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (12.50,12.50) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,25) size 37.50x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=25.00] [y=25.00] [width=37.50] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_07"] LayoutSVGResourceFilter {filter} at (0,100) size 50x50 LayoutSVGContainer {g} at (12.50,12.50) size 67.50x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (12.50,12.50) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=12.50] [y=12.50] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_08"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (12.50,12.50) size 67.50x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 25x37.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=25.00] [height=37.50] LayoutSVGRect {rect} at (37.50,37.50) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=37.50] [y=37.50] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_09"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (20,20) size 65x155 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (25,25) size 60x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=25.00] [y=25.00] [width=60.00] [height=25.00] LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_10"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (20,20) size 60x155 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_11"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (12.50,12.50) size 67.50x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (37.50,37.50) size 25x25 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=37.50] [y=37.50] [width=25.00] [height=25.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_12"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (12.50,12.50) size 75x162.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=50.00] [height=50.00] LayoutSVGRect {rect} at (50,50) size 37.50x37.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=50.00] [y=50.00] [width=37.50] [height=37.50] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00] [filter="filter_1effect_13"] LayoutSVGResourceFilter {filter} at (20,120) size 60x60 LayoutSVGContainer {g} at (0,0) size 100x175 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,210.00)}] - LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] - LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] + LayoutSVGRect {rect} at (25,25) size 50x50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[5.00]]}] [fill={[type=SOLID] [color=#96FF96]}] [x=25.00] [y=25.00] [width=50.00] [height=50.00] + LayoutSVGRect {rect} at (20,20) size 60x60 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array=[3.00]]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [x=20.00] [y=20.00] [width=60.00] [height=60.00] LayoutSVGRect {rect} at (12.50,12.50) size 75x75 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [x=12.50] [y=12.50] [width=75.00] [height=75.00] LayoutSVGRect {rect} at (0,0) size 100x100 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00] LayoutSVGRect {rect} at (25,125) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [x=25.00] [y=125.00] [width=50.00] [height=50.00]
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-in-slow.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-in-slow.html new file mode 100644 index 0000000..54a39444 --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-in-slow.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/wait-for-compositor-commit.js"></script> +<link href="synthetic-pinch-zoom-gesture.css" rel="stylesheet"> +<script src="synthetic-pinch-zoom-gesture.js"></script> + +<script> + const MOUSE_INPUT = 2; // Gesture source type from synthetic_gesture_params.h + + const t = async_test( + "This tests that gpuBenchmarking.pinchBy is relatively accurate when zooming in slowly for touchpad pinch."); + const testCases = [ + { startingScale: 1, scale: 3, speed: 100, gestureSource: MOUSE_INPUT, msg: "Zooming in slowly" }, + ]; + addEventListener('load', () => { + runAllTestCases(t, testCases).then(t.done.bind(t)); + }); +</script> +<div></div>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-out-slow.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-out-slow.html new file mode 100644 index 0000000..036c468 --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad-zoom-out-slow.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/wait-for-compositor-commit.js"></script> +<link href="synthetic-pinch-zoom-gesture.css" rel="stylesheet"> +<script src="synthetic-pinch-zoom-gesture.js"></script> + +<script> + const MOUSE_INPUT = 2; // Gesture source type from synthetic_gesture_params.h + + const t = async_test( + "This tests that gpuBenchmarking.pinchBy is relatively accurate when zooming out slowly for touchpad pinch."); + const testCases = [ + { startingScale: 4, scale: 0.5, speed: 100, gestureSource: MOUSE_INPUT, msg: "Zooming out slowly" }, + ]; + addEventListener('load', () => { + runAllTestCases(t, testCases).then(t.done.bind(t)); + }); +</script> +<div></div>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html new file mode 100644 index 0000000..a685dafe --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/wait-for-compositor-commit.js"></script> +<link href="synthetic-pinch-zoom-gesture.css" rel="stylesheet"> +<script src="synthetic-pinch-zoom-gesture.js"></script> + +<script> + const MOUSE_INPUT = 2; // Gesture source type from synthetic_gesture_params.h + + const t = async_test( + "This tests that gpuBenchmarking.pinchBy is relatively accurate for quick touchpad pinch gestures."); + const testCases = [ + { startingScale: 1, scale: 3, speed: 1000, gestureSource: MOUSE_INPUT, msg: "Zooming in quickly" }, + { startingScale: 3, scale: 0.5, speed: 1000, gestureSource: MOUSE_INPUT, msg: "Zooming out quickly" }, + { startingScale: 1, scale: 3, speed: 50000, gestureSource: MOUSE_INPUT, msg: "Zooming in instantly" }, + { startingScale: 4, scale: 0.5, speed: 50000, gestureSource: MOUSE_INPUT, msg: "Zooming out instantly" }, + ]; + addEventListener('load', () => { + runAllTestCases(t, testCases).then(t.done.bind(t)); + }); +</script> +<div></div>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html new file mode 100644 index 0000000..e87571a9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-in-slow.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/wait-for-compositor-commit.js"></script> +<link href="synthetic-pinch-zoom-gesture.css" rel="stylesheet"> +<script src="synthetic-pinch-zoom-gesture.js"></script> + +<script> + const TOUCH_INPUT = 1; // Gesture source type from synthetic_gesture_params.h + + const t = async_test( + "This tests that gpuBenchmarking.pinchBy is relatively accurate when zooming in slowly for touchscreen pinch."); + const testCases = [ + { startingScale: 1, scale: 3, speed: 100, gestureSource: TOUCH_INPUT, msg: "Zooming in slowly" }, + ]; + addEventListener('load', () => { + runAllTestCases(t, testCases).then(t.done.bind(t)); + }); +</script> +<div></div>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html new file mode 100644 index 0000000..66514fb --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen-zoom-out-slow.html
@@ -0,0 +1,20 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/wait-for-compositor-commit.js"></script> +<link href="synthetic-pinch-zoom-gesture.css" rel="stylesheet"> +<script src="synthetic-pinch-zoom-gesture.js"></script> + +<script> + const TOUCH_INPUT = 1; // Gesture source type from synthetic_gesture_params.h + + const t = async_test( + "This tests that gpuBenchmarking.pinchBy is relatively accurate when zooming out slowly for touchscreen pinch."); + const testCases = [ + { startingScale: 4, scale: 0.5, speed: 100, gestureSource: TOUCH_INPUT, msg: "Zooming out slowly" }, + ]; + addEventListener('load', () => { + runAllTestCases(t, testCases).then(t.done.bind(t)); + }); +</script> +<div></div>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html new file mode 100644 index 0000000..6855e12 --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture-touchscreen.html
@@ -0,0 +1,23 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/wait-for-compositor-commit.js"></script> +<link href="synthetic-pinch-zoom-gesture.css" rel="stylesheet"> +<script src="synthetic-pinch-zoom-gesture.js"></script> + +<script> + const TOUCH_INPUT = 1; // Gesture source type from synthetic_gesture_params.h + + const t = async_test( + "This tests that gpuBenchmarking.pinchBy is relatively accurate for quick touchscreen pinch gestures."); + const testCases = [ + { startingScale: 1, scale: 3, speed: 1000, gestureSource: TOUCH_INPUT, msg: "Zooming in quickly" }, + { startingScale: 3, scale: 0.5, speed: 1000, gestureSource: TOUCH_INPUT, msg: "Zooming out quickly" }, + { startingScale: 1, scale: 3, speed: 50000, gestureSource: TOUCH_INPUT, msg: "Zooming in instantly" }, + { startingScale: 4, scale: 0.5, speed: 50000, gestureSource: TOUCH_INPUT, msg: "Zooming out instantly" }, + ]; + addEventListener('load', () => { + runAllTestCases(t, testCases).then(t.done.bind(t)); + }); +</script> +<div></div>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.css b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.css new file mode 100644 index 0000000..83424bc --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.css
@@ -0,0 +1,16 @@ +body, html { + width: 100%; + height: 100%; + margin: 0; +} + +div { + background-color: green; + width: 100px; + height: 100px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -50px; + margin-top: -50px; +}
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.html b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.html deleted file mode 100644 index 73179aa..0000000 --- a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.html +++ /dev/null
@@ -1,87 +0,0 @@ -<!DOCTYPE html> -<script src="../resources/testharness.js"></script> -<script src="../resources/testharnessreport.js"></script> -<style> - body, html { - width: 100%; - height: 100%; - margin: 0; - } - div { - background-color: green; - width: 100px; - height: 100px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -50px; - margin-top: -50px; - } -</style> - -<script> - const kScaleEpsilon = 0.0001; - const kOffsetEpsilon = 1; - - const t = async_test( - "This tests that gpuBenchmarking.pinchBy is relatively accurate."); - - function performZoom(scale, anchorX, anchorY, speed, callback) { - chrome.gpuBenchmarking.pinchBy(scale, anchorX, anchorY, callback, speed); - } - - const centerX = window.innerWidth / 2; - const centerY = window.innerHeight / 2; - - // TODO(bokan): Add more variations (speed, anchor location, etc.) but it's - // difficult right now as pinchBy is badly broken on desktops: - // https://crbug.com/787615. - const tests = [ - { starting_scale: 1, scale: 3, speed: 1000, msg: "Zooming in quickly has correct " }, - { starting_scale: 3, scale: 0.5, speed: 1000, msg: "Zooming out quickly has correct " }, - { starting_scale: 1, scale: 3, speed: 100, msg: "Zooming in slowly has correct " }, - { starting_scale: 4, scale: 0.5, speed: 100, msg: "Zooming out slowly has correct " }, - { starting_scale: 1, scale: 3, speed: 50000, msg: "Zooming in instantly has correct " }, - { starting_scale: 4, scale: 0.5, speed: 50000, msg: "Zooming out instantly has correct " }, - ]; - - function runTest(testCase) { - return new Promise((resolve, reject) => { - internals.setPageScaleFactor(testCase.starting_scale); - internals.setVisualViewportOffset( - window.innerWidth * (1 - (1 / testCase.starting_scale)) / 2, - window.innerHeight * (1 - (1 / testCase.starting_scale)) / 2); - - chrome.gpuBenchmarking.pinchBy(testCase.scale, centerX, centerY, () => { - t.step(() => { - const expectedScale = testCase.starting_scale * testCase.scale; - assert_approx_equals( - window.visualViewport.scale, - expectedScale, - kScaleEpsilon, - testCase.msg + " page scale factor."); - assert_approx_equals( - window.visualViewport.offsetLeft, - window.innerWidth * (1 - (1 / expectedScale)) / 2, - kOffsetEpsilon, - testCase.msg + " visual viewport offsetLeft."); - assert_approx_equals( - window.visualViewport.offsetTop, - window.innerHeight * (1 - (1 / expectedScale)) / 2, - kOffsetEpsilon, - testCase.msg + " visual viewport offsetTop."); - }); - resolve(); - }, testCase.speed); - }); - } - - async function runAllTestCases() { - for (const testCase of tests) { - await runTest(testCase); - } - t.done(); - } - - addEventListener('load', runAllTestCases); -</script>
diff --git a/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.js b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.js new file mode 100644 index 0000000..d2b2379 --- /dev/null +++ b/third_party/WebKit/LayoutTests/synthetic_gestures/synthetic-pinch-zoom-gesture.js
@@ -0,0 +1,47 @@ +const kScaleEpsilon = 0.0001; +const kOffsetEpsilon = 2; + +const centerX = window.innerWidth / 2; +const centerY = window.innerHeight / 2; + +// TODO(bokan): Add more variations (speed, anchor location, etc.) but it's +// difficult right now as pinchBy is badly broken on desktops: +// https://crbug.com/787615. +function runTest(t, testCase) { + return new Promise(t.step_func((resolve, reject) => { + internals.setPageScaleFactor(testCase.startingScale); + internals.setVisualViewportOffset( + window.innerWidth * (1 - (1 / testCase.startingScale)) / 2, + window.innerHeight * (1 - (1 / testCase.startingScale)) / 2); + + // Ensure the compositor knows the starting scale and offset. + waitForCompositorCommit().then(t.step_func(() => { + chrome.gpuBenchmarking.pinchBy( + testCase.scale, centerX, centerY, t.step_func(() => { + const expectedScale = testCase.startingScale * testCase.scale; + assert_approx_equals( + window.visualViewport.scale, + expectedScale, + kScaleEpsilon, + testCase.msg + " has correct page scale factor."); + assert_approx_equals( + window.visualViewport.offsetLeft, + window.innerWidth * (1 - (1 / expectedScale)) / 2, + kOffsetEpsilon, + testCase.msg + " has correct visual viewport offsetLeft."); + assert_approx_equals( + window.visualViewport.offsetTop, + window.innerHeight * (1 - (1 / expectedScale)) / 2, + kOffsetEpsilon, + testCase.msg + " has correct visual viewport offsetTop."); + resolve(); + }), testCase.speed, testCase.gestureSource); + })); + })); +} + +async function runAllTestCases(t, testCases) { + for (const testCase of testCases) { + await runTest(t, testCase); + } +}
diff --git a/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt b/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt index af60141..e57d0526 100644 --- a/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/squashing/dont-squash-into-videos-expected.txt
@@ -24,7 +24,7 @@ "backgroundColor": "#ADD8E6" }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-pre-ready state-no-source'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-pre-ready state-no-source sizing-tiny'", "bounds": [100, 100] }, {
diff --git a/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/video/video-poster-expected.txt b/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/video/video-poster-expected.txt index cf2d152d..f8c6e30f 100644 --- a/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/video/video-poster-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/disable-spv175/compositing/video/video-poster-expected.txt
@@ -80,7 +80,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [352, 288] },
diff --git a/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt b/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt index 79821c7..13af351 100644 --- a/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/image/canvas-composite-repaint-by-all-imagesource-expected.txt
@@ -250,7 +250,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='sizing-tiny phase-ready state-stopped'", "position": [15, 859], "bounds": [150, 60] },
diff --git a/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt b/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt index 880cceac..0145787 100644 --- a/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/disable-spv175/paint/invalidation/video-paint-invalidation-expected.txt
@@ -28,7 +28,7 @@ "drawsContent": false }, { - "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped'", + "name": "LayoutFlexibleBox (relative positioned) DIV class='phase-ready state-stopped sizing-small'", "position": [8, 8], "bounds": [320, 240] },
diff --git a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt index 8c758ffd..3581e59 100644 --- a/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -717,6 +717,7 @@ method fillText method getImageData method getLineDash + method getTransform method isPointInPath method isPointInStroke method lineTo
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/README.txt b/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/README.txt new file mode 100644 index 0000000..25d9bee --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pinch/README.txt
@@ -0,0 +1,2 @@ +# This suite runs the tests in fast/events/pinch with +# --enable-threaded-compositing
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pointerevents/pinch/README.txt b/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pointerevents/pinch/README.txt new file mode 100644 index 0000000..59727eb --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/fast/events/pointerevents/pinch/README.txt
@@ -0,0 +1,2 @@ +# This suite runs the tests in fast/events/pointerevents/pinch with +# --enable-threaded-compositing
diff --git a/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/README.txt b/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/README.txt new file mode 100644 index 0000000..adfd9f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/threaded/synthetic_gestures/README.txt
@@ -0,0 +1,2 @@ +# This suite runs the tests in synthetic_gestures with +# --enable-threaded-compositing
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 2eee9169..a4dfde7b 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -950,6 +950,7 @@ method getContextAttributes method getImageData method getLineDash + method getTransform method isContextLost method isPointInPath method isPointInStroke
diff --git a/third_party/android_crazy_linker/BUILD.gn b/third_party/android_crazy_linker/BUILD.gn index 33fad91..f69e95fc 100644 --- a/third_party/android_crazy_linker/BUILD.gn +++ b/third_party/android_crazy_linker/BUILD.gn
@@ -90,6 +90,8 @@ "src/src/crazy_linker_shared_library.h", "src/src/crazy_linker_system.cpp", "src/src/crazy_linker_system.h", + "src/src/crazy_linker_system_linker.cpp", + "src/src/crazy_linker_system_linker.h", "src/src/crazy_linker_thread.cpp", "src/src/crazy_linker_thread.h", "src/src/crazy_linker_util.cpp",
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_globals.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_globals.cpp index 5d6e4a3..e92c74e 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_globals.cpp +++ b/third_party/android_crazy_linker/src/src/crazy_linker_globals.cpp
@@ -34,13 +34,6 @@ } // namespace Globals::Globals() { - // TODO(digit): Remove the need for a recursive mutex (which is often the - // symptom of something wrong in threaded code). This needs refactoring - // the deferred task management though. - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&lock_, &attr); search_paths_.ResetFromEnv("LD_LIBRARY_PATH"); } @@ -65,4 +58,7 @@ // static int Globals::sdk_build_version = 0; +// static +pthread_mutex_t ScopedLinkMapLocker::s_lock_ = PTHREAD_MUTEX_INITIALIZER; + } // namespace crazy
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_globals.h b/third_party/android_crazy_linker/src/src/crazy_linker_globals.h index 68d02e3..f749112 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_globals.h +++ b/third_party/android_crazy_linker/src/src/crazy_linker_globals.h
@@ -55,7 +55,7 @@ static RDebug* GetRDebug() { return Get()->rdebug(); } private: - pthread_mutex_t lock_; + pthread_mutex_t lock_ = PTHREAD_MUTEX_INITIALIZER; LibraryList libraries_; SearchPathList search_paths_; RDebug rdebug_; @@ -84,6 +84,17 @@ Globals* globals_; }; +// Convenience class used to operate on a mutex used to synchronize access to +// the global _r_debug link map, at least from threads using the crazy linker. +class ScopedLinkMapLocker { + public: + ScopedLinkMapLocker() { pthread_mutex_lock(&s_lock_); } + ~ScopedLinkMapLocker() { pthread_mutex_unlock(&s_lock_); } + + private: + static pthread_mutex_t s_lock_; +}; + } // namespace crazy #endif // CRAZY_LINKER_GLOBALS_H
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_library_list.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_library_list.cpp index 5cbecf3..0711b53 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_library_list.cpp +++ b/third_party/android_crazy_linker/src/src/crazy_linker_library_list.cpp
@@ -6,7 +6,6 @@ #include <assert.h> #include <crazy_linker.h> -#include <dlfcn.h> #include "crazy_linker_debug.h" #include "crazy_linker_globals.h" @@ -15,6 +14,7 @@ #include "crazy_linker_rdebug.h" #include "crazy_linker_shared_library.h" #include "crazy_linker_system.h" +#include "crazy_linker_system_linker.h" #include "crazy_linker_util.h" #include "crazy_linker_zip.h" @@ -349,8 +349,7 @@ // crazily. if (is_dependency_or_preload) { LOG("Loading system library '%s'", lib_name); - ::dlerror(); - void* system_lib = dlopen(lib_name, dlopen_mode); + void* system_lib = SystemLinker::Open(lib_name, dlopen_mode); if (!system_lib) { error->Format("Can't load system library %s: %s", lib_name, ::dlerror()); return NULL;
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_library_view.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_library_view.cpp index b8cd1ac..f56233b 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_library_view.cpp +++ b/third_party/android_crazy_linker/src/src/crazy_linker_library_view.cpp
@@ -4,10 +4,10 @@ #include "crazy_linker_library_view.h" -#include <dlfcn.h> #include "crazy_linker_debug.h" #include "crazy_linker_globals.h" #include "crazy_linker_shared_library.h" +#include "crazy_linker_system_linker.h" namespace crazy { @@ -17,7 +17,7 @@ LibraryView::~LibraryView() { LOG("Destroying %s", name_.c_str()); if (type_ == TYPE_SYSTEM) { - ::dlclose(system_); + SystemLinker::Close(system_); system_ = NULL; } if (type_ == TYPE_CRAZY) { @@ -28,8 +28,9 @@ } void* LibraryView::LookupSymbol(const char* symbol_name) { - if (type_ == TYPE_SYSTEM) - return ::dlsym(system_, symbol_name); + if (type_ == TYPE_SYSTEM) { + return SystemLinker::Resolve(system_, symbol_name); + } if (type_ == TYPE_CRAZY) { LibraryList* lib_list = Globals::Get()->libraries();
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.cpp index 20ce4667..036a5bd8 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.cpp +++ b/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.cpp
@@ -196,6 +196,13 @@ } // namespace +r_debug* RDebug::GetAddress() { + if (!init_) { + Init(); + } + return r_debug_; +} + bool RDebug::Init() { // The address of '_r_debug' is in the DT_DEBUG entry of the current // executable. @@ -410,7 +417,6 @@ } void RDebug::AddEntryImpl(link_map_t* entry) { - ScopedLockedGlobals globals; // TODO(digit): Remove this lock. LOG("Adding: %s", entry->l_name); if (!init_) Init(); @@ -420,6 +426,9 @@ return; } + // Ensure modifications to the global link map are synchronized. + ScopedLinkMapLocker locker; + // IMPORTANT: GDB expects the first entry in the list to correspond // to the executable. So add our new entry just after it. This is ok // because by default, the linker is always the second entry, as in: @@ -468,11 +477,14 @@ } void RDebug::DelEntryImpl(link_map_t* entry) { - ScopedLockedGlobals globals; // TODO(digit): Remove this lock. - LOG("Deleting: %s", entry->l_name); if (!r_debug_) return; + LOG("Deleting: %s", entry->l_name); + + // Ensure modifications to the global link map are synchronized. + ScopedLinkMapLocker locker; + // Tell GDB the list is going to be modified. CallRBrk(RT_DELETE);
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.h b/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.h index 4a82494..347534e 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.h +++ b/third_party/android_crazy_linker/src/src/crazy_linker_rdebug.h
@@ -202,7 +202,9 @@ post_for_later_execution_context_ = context; } - r_debug* GetAddress() { return r_debug_; } + // Return address of current global _r_debug variable, or nullptr if not + // available. + r_debug* GetAddress(); private: // Try to find the address of the global _r_debug variable, even
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_shared_library.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_shared_library.cpp index 7692b5c..99f5c0d 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_shared_library.cpp +++ b/third_party/android_crazy_linker/src/src/crazy_linker_shared_library.cpp
@@ -4,7 +4,6 @@ #include "crazy_linker_shared_library.h" -#include <dlfcn.h> #include <stdlib.h> #include <sys/mman.h> #include <elf.h> @@ -13,10 +12,11 @@ #include "crazy_linker_debug.h" #include "crazy_linker_elf_loader.h" #include "crazy_linker_elf_relocations.h" +#include "crazy_linker_globals.h" #include "crazy_linker_library_list.h" #include "crazy_linker_library_view.h" -#include "crazy_linker_globals.h" #include "crazy_linker_memory_mapping.h" +#include "crazy_linker_system_linker.h" #include "crazy_linker_thread.h" #include "crazy_linker_util.h" #include "crazy_linker_wrappers.h" @@ -96,8 +96,10 @@ LibraryList* lib_list, Vector<LibraryView*>* preloads, Vector<LibraryView*>* dependencies) - : main_program_handle_(::dlopen(NULL, RTLD_NOW)), - lib_(lib), preloads_(preloads), dependencies_(dependencies) {} + : main_program_handle_(SystemLinker::Open(NULL, RTLD_NOW)), + lib_(lib), + preloads_(preloads), + dependencies_(dependencies) {} virtual void* Lookup(const char* symbol_name) { // First, look inside the current library. @@ -132,7 +134,7 @@ } // Then lookup inside the main executable. - address = ::dlsym(main_program_handle_, symbol_name); + address = SystemLinker::Resolve(main_program_handle_, symbol_name); if (address) return address; @@ -153,7 +155,7 @@ private: virtual void* LookupInWrap(const char* symbol_name, LibraryView* wrap) { if (wrap->IsSystem()) { - void* address = ::dlsym(wrap->GetSystem(), symbol_name); + void* address = SystemLinker::Resolve(wrap->GetSystem(), symbol_name); // Android libm.so defines isnanf as weak. This means that its // address cannot be found by dlsym(), which returns NULL for weak // symbols prior to Android 5.0. However, libm.so contains the real @@ -167,7 +169,7 @@ // http://code.google.com/p/chromium/issues/detail?id=376828 if (!address && !strcmp(symbol_name, "isnanf") && !strcmp(wrap->GetName(), "libm.so")) { - address = ::dlsym(wrap->GetSystem(), "__isnanf"); + address = SystemLinker::Resolve(wrap->GetSystem(), "__isnanf"); if (!address) { // __isnanf only exists on Android 21+, so use a local fallback // if that doesn't exist either.
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_system_linker.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_system_linker.cpp new file mode 100644 index 0000000..c2a5a072 --- /dev/null +++ b/third_party/android_crazy_linker/src/src/crazy_linker_system_linker.cpp
@@ -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 "crazy_linker_system_linker.h" + +#include "crazy_linker_globals.h" + +#include <dlfcn.h> + +namespace crazy { + +// static +void* SystemLinker::Open(const char* path, int mode) { + // NOTE: The system linker will likely modify the global _r_debug link map + // so ensure this doesn't conflict with other threads performing delayed + // updates on it. + ScopedLinkMapLocker locker; + return ::dlopen(path, mode); +} + +// static +int SystemLinker::Close(void* handle) { + // Similarly, though unlikely, this operation may modify the global link map. + ScopedLinkMapLocker locker; + return ::dlclose(handle); +} + +// static +void* SystemLinker::Resolve(void* handle, const char* symbol) { + // Just in case the system linker performs lazy symbol resolution + // that would modify the global link map. + ScopedLinkMapLocker locker; + return ::dlsym(handle, symbol); +} + +// static +const char* SystemLinker::Error() { + return ::dlerror(); +} + +int SystemLinker::AddressInfo(void* address, Dl_info* info) { + ::dlerror(); + return ::dladdr(address, info); +} + +} // namespace crazy
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_system_linker.h b/third_party/android_crazy_linker/src/src/crazy_linker_system_linker.h new file mode 100644 index 0000000..50da145 --- /dev/null +++ b/third_party/android_crazy_linker/src/src/crazy_linker_system_linker.h
@@ -0,0 +1,36 @@ +// 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 CRAZY_LINKER_SYSTEM_LINKER_H +#define CRAZY_LINKER_SYSTEM_LINKER_H + +#include <dlfcn.h> + +namespace crazy { + +// Convenience wrapper for the system linker functions. +// Also helps synchronize access to the global link map list. +// +// TODO(digit): Use this in the future to mock different versions/behaviours +// of the Android system linker for unit-testing purposes. +struct SystemLinker { + // Wrapper for dlopen(). + static void* Open(const char* path, int flags); + + // Wrapper for dlclose(). + static int Close(void* handle); + + // Wrapper for dlsym(). + static void* Resolve(void* handle, const char* symbol); + + // Wrapper for dlerror(). + static const char* Error(); + + // Wrapper for dladdr(); + static int AddressInfo(void* addr, Dl_info* info); +}; + +} // namespace crazy + +#endif // CRAZY_LINKER_SYSTEM_LINKER_H
diff --git a/third_party/android_crazy_linker/src/src/crazy_linker_wrappers.cpp b/third_party/android_crazy_linker/src/src/crazy_linker_wrappers.cpp index b1561ab8..9739db19 100644 --- a/third_party/android_crazy_linker/src/src/crazy_linker_wrappers.cpp +++ b/third_party/android_crazy_linker/src/src/crazy_linker_wrappers.cpp
@@ -4,7 +4,6 @@ #include "crazy_linker_wrappers.h" -#include <dlfcn.h> #include <link.h> #include "crazy_linker_debug.h" @@ -12,6 +11,7 @@ #include "crazy_linker_library_list.h" #include "crazy_linker_library_view.h" #include "crazy_linker_shared_library.h" +#include "crazy_linker_system_linker.h" #include "crazy_linker_thread.h" #include "crazy_linker_util.h" @@ -75,7 +75,7 @@ // Used to save the system dlerror() into our thread-specific data. void SaveSystemError() { ThreadData* data = GetThreadData(); - data->SetError(::dlerror()); + data->SetError(SystemLinker::Error()); } char* WrapDlerror() { @@ -105,11 +105,10 @@ } // Try to load the executable with the system dlopen() instead. - ::dlerror(); - void* system_lib = ::dlopen(path, mode); + void* system_lib = SystemLinker::Open(path, mode); if (system_lib == NULL) { SaveSystemError(); - return NULL; + return nullptr; } auto* wrap_lib = new LibraryView(system_lib, path ? path : "<executable>"); @@ -147,7 +146,7 @@ if (!globals->valid_handles()->Has(lib_handle)) { // Note: the handle was not opened with the crazy linker, so fall back // to the system linker. That can happen in rare cases. - void* result = ::dlsym(lib_handle, symbol_name); + void* result = SystemLinker::Resolve(lib_handle, symbol_name); if (!result) { SaveSystemError(); LOG("dlsym: could not find symbol '%s' from foreign library\n", @@ -158,9 +157,7 @@ auto* wrap_lib = reinterpret_cast<LibraryView*>(lib_handle); if (wrap_lib->IsSystem()) { - // Note: the system dlsym() only looks into the target library, - // while the GNU linker performs a breadth-first search. - void* result = ::dlsym(wrap_lib->GetSystem(), symbol_name); + void* result = SystemLinker::Resolve(wrap_lib->GetSystem(), symbol_name); if (!result) { SaveSystemError(); LOG("dlsym:%s: could not find symbol '%s' from system library\n%s", @@ -208,8 +205,7 @@ } } // Otherwise, use system version. - ::dlerror(); - int ret = ::dladdr(address, info); + int ret = SystemLinker::AddressInfo(address, info); if (ret != 0) SaveSystemError(); return ret; @@ -225,7 +221,7 @@ if (!globals->valid_handles()->Remove(lib_handle)) { // This is a foreign handle that was not created by the crazy linker. // Fall-back to the system in this case. - if (::dlclose(lib_handle) != 0) { + if (SystemLinker::Close(lib_handle) != 0) { SaveSystemError(); LOG("dlclose: could not close foreign library handle %p\n%s", lib_handle, GetThreadData()->GetError());
diff --git a/third_party/blink/common/feature_policy/feature_policy.cc b/third_party/blink/common/feature_policy/feature_policy.cc index 6c5b010..25ac3ce 100644 --- a/third_party/blink/common/feature_policy/feature_policy.cc +++ b/third_party/blink/common/feature_policy/feature_policy.cc
@@ -251,61 +251,62 @@ // See third_party/blink/public/common/feature_policy/feature_policy.h for // status of each feature (in spec, implemented, etc). const FeaturePolicy::FeatureList& FeaturePolicy::GetDefaultFeatureList() { - CR_DEFINE_STATIC_LOCAL(FeatureList, default_feature_list, - ({{mojom::FeaturePolicyFeature::kAutoplay, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kCamera, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kEncryptedMedia, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kFullscreen, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kGeolocation, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kMicrophone, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kMidiFeature, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kPayment, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kSpeaker, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kDocumentCookie, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kDocumentDomain, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kDocumentWrite, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kSyncScript, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kSyncXHR, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kUsb, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kAccessibilityEvents, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kWebVr, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kAccelerometer, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kAmbientLightSensor, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kGyroscope, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kMagnetometer, - FeaturePolicy::FeatureDefault::EnableForSelf}, - {mojom::FeaturePolicyFeature::kImageCompression, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kLegacyImageFormats, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kUnsizedMedia, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kAnimations, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kPictureInPicture, - FeaturePolicy::FeatureDefault::EnableForAll}, - {mojom::FeaturePolicyFeature::kVerticalScroll, - FeaturePolicy::FeatureDefault::EnableForAll}})); + CR_DEFINE_STATIC_LOCAL( + FeatureList, default_feature_list, + ({{mojom::FeaturePolicyFeature::kAutoplay, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kCamera, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kEncryptedMedia, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kFullscreen, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kGeolocation, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kMicrophone, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kMidiFeature, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kPayment, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kSpeaker, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kDocumentCookie, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kDocumentDomain, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kSyncScript, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kSyncXHR, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kUsb, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kAccessibilityEvents, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kWebVr, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kAccelerometer, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kAmbientLightSensor, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kGyroscope, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kMagnetometer, + FeaturePolicy::FeatureDefault::EnableForSelf}, + {mojom::FeaturePolicyFeature::kImageCompression, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kLegacyImageFormats, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kUnsizedMedia, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kAnimations, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kPictureInPicture, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kVerticalScroll, + FeaturePolicy::FeatureDefault::EnableForAll}, + {mojom::FeaturePolicyFeature::kDocumentStreamInsertion, + FeaturePolicy::FeatureDefault::EnableForAll}})); return default_feature_list; }
diff --git a/third_party/blink/public/BUILD.gn b/third_party/blink/public/BUILD.gn index 48c0839..ad75ae0 100644 --- a/third_party/blink/public/BUILD.gn +++ b/third_party/blink/public/BUILD.gn
@@ -173,8 +173,6 @@ "platform/modules/screen_orientation/web_screen_orientation_enum_traits.h", "platform/modules/serviceworker/web_navigation_preload_state.h", "platform/modules/serviceworker/web_service_worker.h", - "platform/modules/serviceworker/web_service_worker_cache.h", - "platform/modules/serviceworker/web_service_worker_cache_storage.h", "platform/modules/serviceworker/web_service_worker_client_query_options.h", "platform/modules/serviceworker/web_service_worker_clients_claim_callbacks.h", "platform/modules/serviceworker/web_service_worker_clients_info.h", @@ -375,7 +373,6 @@ "platform/web_screen_info.h", "platform/web_scroll_anchor_data.h", "platform/web_scroll_into_view_params.h", - "platform/web_scrollbar.h", "platform/web_scrollbar_behavior.h", "platform/web_scrollbar_buttons_placement.h", "platform/web_scrollbar_overlay_color_theme.h",
diff --git a/third_party/blink/public/mojom/feature_policy/feature_policy.mojom b/third_party/blink/public/mojom/feature_policy/feature_policy.mojom index 467f4a6..775fd311 100644 --- a/third_party/blink/public/mojom/feature_policy/feature_policy.mojom +++ b/third_party/blink/public/mojom/feature_policy/feature_policy.mojom
@@ -58,8 +58,6 @@ kDocumentCookie, // Contols access to document.domain attribute. kDocumentDomain, - // Controls access to document.write and document.writeln methods. - kDocumentWrite, // Controls whether synchronous script elements will run. kSyncScript, // Controls use of synchronous XMLHTTPRequest API. @@ -90,6 +88,10 @@ kPictureInPicture, // Controls the ability to block and interfere with vertical scrolling. kVerticalScroll, + // Controls the ability of the document to use several dynamic markup API + // which interfere with document's input stream (document.write(), + // document.close(), etc.). + kDocumentStreamInsertion, }; // This struct holds feature policy whitelist data that needs to be replicated
diff --git a/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom b/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom index 470a179..4515c72 100644 --- a/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom +++ b/third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom
@@ -43,8 +43,14 @@ struct BatchOperation { OperationType operation_type; blink.mojom.FetchAPIRequest request; - blink.mojom.FetchAPIResponse response; - QueryParams match_params; + + // If the |operation_type| is kPut, then the |response| must be defined, null + // otherwise. + blink.mojom.FetchAPIResponse? response; + + // If the |operation_type| is kDelete, then the |match_params| must be + // defined, null otherwise. + QueryParams? match_params; }; // Result of Open method. |status| is only set if there is a failure.
diff --git a/third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom b/third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom index b1ccd411..a05967f 100644 --- a/third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom +++ b/third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom
@@ -7,7 +7,7 @@ import "services/network/public/mojom/fetch_api.mojom"; import "services/network/public/mojom/request_context_frame_type.mojom"; import "third_party/blink/public/platform/referrer.mojom"; -import "third_party/blink/public/mojom/blob/blob.mojom"; +import "third_party/blink/public/mojom/blob/serialized_blob.mojom"; import "url/mojom/url.mojom"; // Type of the context associated with a request. @@ -101,11 +101,13 @@ RequestContextType request_context_type; network.mojom.RequestContextFrameType frame_type; url.mojom.Url url; - string method; + // TODO(lfg): |method| shouldn't be nullable. This is allowed in order to + // facilitate type conversions between FetchAPIRequest and + // WebServiceWorkerRequest, but should be made non-nullable once the browser + // process is converted to use the mojo type. + string? method; map<string, string> headers; - string? blob_uuid; - uint64 blob_size; - Blob? blob; + SerializedBlob? blob; Referrer referrer; network.mojom.FetchCredentialsMode credentials_mode; FetchCacheMode cache_mode;
diff --git a/third_party/blink/public/platform/modules/fetch/fetch_api_response.mojom b/third_party/blink/public/platform/modules/fetch/fetch_api_response.mojom index 9e8aed3..21d7ec93 100644 --- a/third_party/blink/public/platform/modules/fetch/fetch_api_response.mojom +++ b/third_party/blink/public/platform/modules/fetch/fetch_api_response.mojom
@@ -6,14 +6,14 @@ import "mojo/public/mojom/base/time.mojom"; import "services/network/public/mojom/fetch_api.mojom"; -import "third_party/blink/public/mojom/blob/blob.mojom"; +import "third_party/blink/public/mojom/blob/serialized_blob.mojom"; import "third_party/blink/public/mojom/service_worker/service_worker_error_type.mojom"; import "url/mojom/url.mojom"; // Represents a response to a fetch operation. ServiceWorker uses this to -// respond to a FetchEvent dispatched by the browser. The plan is for the Cache -// and fetch() API to also use it. It's currently typemapped to -// content::ServiceWorkerResponse. +// respond to a FetchEvent dispatched by the browser. It is currently used by +// the Cache API, and the plan is for the fetch() API to also use it. It's +// currently typemapped to content::ServiceWorkerResponse. struct FetchAPIResponse { // List of URLs that originally generated this response, it includes all URLs // in case of HTTP redirect, first URL on redirect chain is on position 0. @@ -34,15 +34,8 @@ // The response headers. It's case insensitive for header name as key. map<string, string> headers; - // Blob id within Browser, used to notify browser when the blob/payload has - // been consumed. - string blob_uuid; - - // Size of the blob/payload. - uint64 blob_size; - // Mojo interface to read the response payload. - Blob? blob; + SerializedBlob? blob; // Error codes for service worker APIs. This enum is used by ServiceWorkerResponseError error; @@ -52,7 +45,7 @@ mojo_base.mojom.Time response_time; // Name of cache where this response was retrieved, empty otherwise. - string cache_storage_cache_name; + string? cache_storage_cache_name; // In case this is a CORS response fetched by a ServiceWorker, this is the // set of headers that should be exposed. @@ -62,7 +55,5 @@ bool is_in_cache_storage; // Side data is used to pass the metadata of the response (eg. V8 code cache). - string side_data_blob_uuid; - uint64 side_data_blob_size; - Blob? side_data_blob; + SerializedBlob? side_data_blob; };
diff --git a/third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h b/third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h deleted file mode 100644 index 0f0b9ff..0000000 --- a/third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h +++ /dev/null
@@ -1,86 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_SERVICEWORKER_WEB_SERVICE_WORKER_CACHE_H_ -#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_SERVICEWORKER_WEB_SERVICE_WORKER_CACHE_H_ - -#include <memory> -#include <utility> -#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-shared.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_response.h" -#include "third_party/blink/public/platform/web_callbacks.h" -#include "third_party/blink/public/platform/web_common.h" -#include "third_party/blink/public/platform/web_string.h" -#include "third_party/blink/public/platform/web_vector.h" - -namespace blink { - -// The Service Worker Cache API. The embedder provides the implementation of the -// Cache to Blink. Blink uses the interface to operate on entries. This object -// is owned by Blink, and should be destroyed as each Cache instance is no -// longer in use. -class WebServiceWorkerCache { - public: - using CacheMatchCallbacks = WebCallbacks<const WebServiceWorkerResponse&, - blink::mojom::CacheStorageError>; - using CacheWithResponsesCallbacks = - WebCallbacks<const WebVector<WebServiceWorkerResponse>&, - blink::mojom::CacheStorageError>; - using CacheWithRequestsCallbacks = - WebCallbacks<const WebVector<WebServiceWorkerRequest>&, - blink::mojom::CacheStorageError>; - using CacheBatchCallbacks = - WebCallbacks<void, blink::mojom::CacheStorageError>; - - virtual ~WebServiceWorkerCache() = default; - - // Options that affect the scope of searches. - struct QueryParams { - QueryParams() - : ignore_search(false), ignore_method(false), ignore_vary(false) {} - - bool ignore_search; - bool ignore_method; - bool ignore_vary; - WebString cache_name; - }; - - enum OperationType { - kOperationTypeUndefined, - kOperationTypePut, - kOperationTypeDelete, - kOperationTypeLast = kOperationTypeDelete - }; - - struct BatchOperation { - BatchOperation() : operation_type(kOperationTypeUndefined) {} - - OperationType operation_type; - WebServiceWorkerRequest request; - WebServiceWorkerResponse response; - QueryParams match_params; - }; - - WebServiceWorkerCache() = default; - - // Ownership of the Cache*Callbacks methods passes to the - // WebServiceWorkerCache instance, which will delete it after calling - // onSuccess or onFailure. - virtual void DispatchMatch(std::unique_ptr<CacheMatchCallbacks>, - const WebServiceWorkerRequest&, - const QueryParams&) = 0; - virtual void DispatchMatchAll(std::unique_ptr<CacheWithResponsesCallbacks>, - const WebServiceWorkerRequest&, - const QueryParams&) = 0; - virtual void DispatchKeys(std::unique_ptr<CacheWithRequestsCallbacks>, - const WebServiceWorkerRequest&, - const QueryParams&) = 0; - virtual void DispatchBatch(std::unique_ptr<CacheBatchCallbacks>, - const WebVector<BatchOperation>&) = 0; -}; - -} // namespace blink - -#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_SERVICEWORKER_WEB_SERVICE_WORKER_CACHE_H_
diff --git a/third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h b/third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h deleted file mode 100644 index 7a774c7..0000000 --- a/third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h +++ /dev/null
@@ -1,59 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_SERVICEWORKER_WEB_SERVICE_WORKER_CACHE_STORAGE_H_ -#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_SERVICEWORKER_WEB_SERVICE_WORKER_CACHE_STORAGE_H_ - -#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-shared.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" -#include "third_party/blink/public/platform/web_callbacks.h" -#include "third_party/blink/public/platform/web_common.h" -#include "third_party/blink/public/platform/web_string.h" -#include "third_party/blink/public/platform/web_vector.h" - -#include <memory> - -namespace blink { - -// An interface to the CacheStorage API, implemented by the embedder and passed -// in to Blink. Blink's implementation of the ServiceWorker spec will call these -// methods to create/open caches, and expect callbacks from the embedder after -// operations complete. -class WebServiceWorkerCacheStorage { - public: - using CacheStorageCallbacks = - WebCallbacks<void, blink::mojom::CacheStorageError>; - using CacheStorageWithCacheCallbacks = - WebCallbacks<std::unique_ptr<WebServiceWorkerCache>, - blink::mojom::CacheStorageError>; - using CacheStorageKeysCallbacks = - WebCallbacks<const WebVector<WebString>&, - blink::mojom::CacheStorageError>; - using CacheStorageMatchCallbacks = - WebCallbacks<const WebServiceWorkerResponse&, - blink::mojom::CacheStorageError>; - - virtual ~WebServiceWorkerCacheStorage() = default; - - // Ownership of the CacheStorage*Callbacks methods passes to the - // WebServiceWorkerCacheStorage instance, which will delete it after calling - // onSuccess or onFailure. - - // dispatchOpen() can return a WebServiceWorkerCache object. These objects - // are owned by Blink and should be destroyed when they are no longer needed. - virtual void DispatchHas(std::unique_ptr<CacheStorageCallbacks>, - const WebString& cache_name) = 0; - virtual void DispatchOpen(std::unique_ptr<CacheStorageWithCacheCallbacks>, - const WebString& cache_name) = 0; - virtual void DispatchDelete(std::unique_ptr<CacheStorageCallbacks>, - const WebString& cache_name) = 0; - virtual void DispatchKeys(std::unique_ptr<CacheStorageKeysCallbacks>) = 0; - virtual void DispatchMatch(std::unique_ptr<CacheStorageMatchCallbacks>, - const WebServiceWorkerRequest&, - const WebServiceWorkerCache::QueryParams&) = 0; -}; - -} // namespace blink - -#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_SERVICEWORKER_WEB_SERVICE_WORKER_CACHE_STORAGE_H_
diff --git a/third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h b/third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h index 4dea0622..efc2b80 100644 --- a/third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h +++ b/third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h
@@ -107,6 +107,7 @@ #if INSIDE_BLINK const HTTPHeaderMap& Headers() const; + void SetBlobDataHandle(scoped_refptr<BlobDataHandle>); scoped_refptr<BlobDataHandle> GetBlobDataHandle() const; const Referrer& GetReferrer() const; void SetBlob(const WebString& uuid,
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h index e9d446b3..5eac7f13 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h
@@ -123,7 +123,6 @@ class WebSandboxSupport; class WebScrollbarBehavior; class WebSecurityOrigin; -class WebServiceWorkerCacheStorage; class WebSocketHandshakeThrottle; class WebSpeechSynthesizer; class WebSpeechSynthesizerClient; @@ -275,11 +274,6 @@ // Must return non-null. virtual WebIDBFactory* IdbFactory() { return nullptr; } - // Cache Storage ---------------------------------------------------------- - - virtual std::unique_ptr<WebServiceWorkerCacheStorage> CreateCacheStorage( - service_manager::InterfaceProvider* mojo_provider); - // Gamepad ------------------------------------------------------------- virtual void SampleGamepads(device::Gamepads& into) {}
diff --git a/third_party/blink/public/platform/resource_request_blocked_reason.h b/third_party/blink/public/platform/resource_request_blocked_reason.h new file mode 100644 index 0000000..8e80df29 --- /dev/null +++ b/third_party/blink/public/platform/resource_request_blocked_reason.h
@@ -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. + +#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_RESOURCE_REQUEST_BLOCKED_REASON_H_ +#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_RESOURCE_REQUEST_BLOCKED_REASON_H_ + +namespace blink { +// If updating this enum, also update DevTools protocol usages. +// Contact devtools owners for help. +enum class ResourceRequestBlockedReason { + kOther, + kCSP, + kMixedContent, + kOrigin, + kInspector, + kSubresourceFilter, + kContentType, +}; +} // namespace blink + +#endif
diff --git a/third_party/blink/public/platform/web_rtc_rtp_parameters.h b/third_party/blink/public/platform/web_rtc_rtp_parameters.h deleted file mode 100644 index dfbc085..0000000 --- a/third_party/blink/public/platform/web_rtc_rtp_parameters.h +++ /dev/null
@@ -1,190 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_PARAMETERS_H_ -#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_PARAMETERS_H_ - -#include <memory> -#include <string> -#include <vector> - -#include "base/optional.h" -#include "third_party/blink/public/platform/web_common.h" -#include "third_party/blink/public/platform/web_string.h" -#include "third_party/blink/public/platform/web_vector.h" - -namespace blink { - -enum class WebRTCPriorityType { - VeryLow, - Low, - Medium, - High, -}; - -enum class WebRTCDegradationPreference { - MaintainFramerate, - MaintainResolution, - Balanced, -}; - -enum class WebRTCDtxStatus { - Disabled, - Enabled, -}; - -class BLINK_PLATFORM_EXPORT WebRTCRtpEncodingParameters { - public: - WebRTCRtpEncodingParameters(); - WebRTCRtpEncodingParameters( - const base::Optional<uint8_t>& codec_payload_type, - const base::Optional<WebRTCDtxStatus>& dtx, - bool active, - WebRTCPriorityType priority, - const base::Optional<uint32_t>& ptime, - const base::Optional<uint32_t>& max_bitrate, - const base::Optional<uint32_t>& max_framerate, - const base::Optional<double>& scale_resolution_down_by, - const base::Optional<WebString>& rid) - : codec_payload_type_(codec_payload_type), - dtx_(dtx), - active_(active), - priority_(priority), - ptime_(ptime), - max_bitrate_(max_bitrate), - max_framerate_(max_framerate), - scale_resolution_down_by_(scale_resolution_down_by), - rid_(rid) {} - - const base::Optional<uint8_t>& CodecPayloadType() const { - return codec_payload_type_; - } - const base::Optional<WebRTCDtxStatus>& Dtx() const { return dtx_; } - bool Active() const { return active_; } - WebRTCPriorityType Priority() const { return priority_; } - const base::Optional<uint32_t>& Ptime() const { return ptime_; } - const base::Optional<uint32_t>& MaxBitrate() const { return max_bitrate_; } - const base::Optional<uint32_t>& MaxFramerate() const { - return max_framerate_; - } - const base::Optional<double>& ScaleResolutionDownBy() const { - return scale_resolution_down_by_; - } - const base::Optional<WebString> Rid() const { return rid_; } - - private: - base::Optional<uint8_t> codec_payload_type_; - base::Optional<WebRTCDtxStatus> dtx_; - bool active_; - WebRTCPriorityType priority_; - base::Optional<uint32_t> ptime_; - base::Optional<uint32_t> max_bitrate_; - base::Optional<uint32_t> max_framerate_; - base::Optional<double> scale_resolution_down_by_; - base::Optional<WebString> rid_; -}; - -class BLINK_PLATFORM_EXPORT WebRTCRtpHeaderExtensionParameters { - public: - WebRTCRtpHeaderExtensionParameters(); - WebRTCRtpHeaderExtensionParameters(const base::Optional<WebString>& uri, - const base::Optional<uint16_t>& id, - const base::Optional<bool>& encrypted) - : uri_(uri), id_(id), encrypted_(encrypted) {} - - const base::Optional<WebString>& URI() const { return uri_; } - const base::Optional<uint16_t>& Id() const { return id_; } - const base::Optional<bool>& Encrypted() const { return encrypted_; } - - private: - base::Optional<WebString> uri_; - base::Optional<uint16_t> id_; - base::Optional<bool> encrypted_; -}; - -class BLINK_PLATFORM_EXPORT WebRTCRtcpParameters { - public: - const base::Optional<WebString>& Cname() const; - const base::Optional<bool>& ReducedSize() const; - - private: - base::Optional<WebString> cname_; - base::Optional<bool> reduced_size_; -}; - -class BLINK_PLATFORM_EXPORT WebRTCRtpCodecParameters { - public: - WebRTCRtpCodecParameters() = default; - WebRTCRtpCodecParameters(const base::Optional<uint8_t>& payload_type, - const base::Optional<WebString>& mime_type, - const base::Optional<uint32_t>& clock_rate, - const base::Optional<uint16_t>& channels, - const base::Optional<WebString>& sdp_fmtp_line) - : payload_type_(payload_type), - mime_type_(mime_type), - clock_rate_(clock_rate), - channels_(channels), - sdp_fmtp_line_(sdp_fmtp_line) {} - - const base::Optional<uint8_t>& PayloadType() const { return payload_type_; } - const base::Optional<WebString>& MimeType() const { return mime_type_; } - const base::Optional<uint32_t>& ClockRate() const { return clock_rate_; } - const base::Optional<uint16_t>& Channels() const { return channels_; } - const base::Optional<WebString>& SdpFmtpLine() const { - return sdp_fmtp_line_; - } - - private: - base::Optional<uint8_t> payload_type_; - base::Optional<WebString> mime_type_; - base::Optional<uint32_t> clock_rate_; - base::Optional<uint16_t> channels_; - base::Optional<WebString> sdp_fmtp_line_; -}; - -class BLINK_PLATFORM_EXPORT WebRTCRtpParameters { - public: - WebRTCRtpParameters( - const base::Optional<WebString>& transaction_id, - const WebRTCRtcpParameters& rtcp, - const WebVector<WebRTCRtpEncodingParameters>& encodings, - const WebVector<WebRTCRtpHeaderExtensionParameters>& header_extensions, - const WebVector<WebRTCRtpCodecParameters>& codecs, - const base::Optional<WebRTCDegradationPreference>& degradation_preference) - : transaction_id_(transaction_id), - rtcp_(rtcp), - encodings_(encodings), - header_extensions_(header_extensions), - codecs_(codecs), - degradation_preference_(degradation_preference) {} - - const base::Optional<WebString>& TransactionId() const { - return transaction_id_; - } - const WebVector<WebRTCRtpEncodingParameters>& Encodings() const { - return encodings_; - } - const WebVector<WebRTCRtpHeaderExtensionParameters>& HeaderExtensions() - const { - return header_extensions_; - } - const WebRTCRtcpParameters& Rtcp() const { return rtcp_; } - const WebVector<WebRTCRtpCodecParameters>& Codecs() const { return codecs_; } - const base::Optional<WebRTCDegradationPreference>& DegradationPreference() - const { - return degradation_preference_; - } - - private: - base::Optional<WebString> transaction_id_; - WebRTCRtcpParameters rtcp_; - WebVector<WebRTCRtpEncodingParameters> encodings_; - WebVector<WebRTCRtpHeaderExtensionParameters> header_extensions_; - WebVector<WebRTCRtpCodecParameters> codecs_; - base::Optional<WebRTCDegradationPreference> degradation_preference_; -}; - -} // namespace blink - -#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_PARAMETERS_H_
diff --git a/third_party/blink/public/platform/web_rtc_rtp_sender.h b/third_party/blink/public/platform/web_rtc_rtp_sender.h index b31bd1e..a2093e8 100644 --- a/third_party/blink/public/platform/web_rtc_rtp_sender.h +++ b/third_party/blink/public/platform/web_rtc_rtp_sender.h
@@ -6,10 +6,10 @@ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SENDER_H_ #include "third_party/blink/public/platform/web_common.h" -#include "third_party/blink/public/platform/web_rtc_rtp_parameters.h" #include "third_party/blink/public/platform/web_rtc_stats.h" #include "third_party/blink/public/platform/web_rtc_void_request.h" #include "third_party/blink/public/platform/web_string.h" +#include "third_party/webrtc/api/rtpparameters.h" namespace blink { @@ -34,9 +34,9 @@ // https://crbug.com/790007 virtual void ReplaceTrack(WebMediaStreamTrack, WebRTCVoidRequest) = 0; virtual std::unique_ptr<WebRTCDTMFSenderHandler> GetDtmfSender() const = 0; - virtual std::unique_ptr<WebRTCRtpParameters> GetParameters() const = 0; - virtual void SetParameters(WebVector<WebRTCRtpEncodingParameters>, - WebRTCDegradationPreference, + virtual std::unique_ptr<webrtc::RtpParameters> GetParameters() const = 0; + virtual void SetParameters(blink::WebVector<webrtc::RtpEncodingParameters>, + webrtc::DegradationPreference, WebRTCVoidRequest) = 0; virtual void GetStats(std::unique_ptr<blink::WebRTCStatsReportCallback>) = 0; };
diff --git a/third_party/blink/public/platform/web_scrollbar.h b/third_party/blink/public/platform/web_scrollbar.h deleted file mode 100644 index 3b7e541..0000000 --- a/third_party/blink/public/platform/web_scrollbar.h +++ /dev/null
@@ -1,38 +0,0 @@ -/* - * Copyright (C) 2012 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SCROLLBAR_H_ -#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SCROLLBAR_H_ - -namespace blink { - -// TODO(jbroman): Clean up these, which are used elsewhere. -class WebScrollbar { - public: - enum class ScrollingMode { kAuto, kAlwaysOff, kAlwaysOn, kLast = kAlwaysOn }; -}; - -} // namespace blink - -#endif
diff --git a/third_party/blink/public/platform/web_url_error.h b/third_party/blink/public/platform/web_url_error.h index 9c9b0d1..c2a176e56 100644 --- a/third_party/blink/public/platform/web_url_error.h +++ b/third_party/blink/public/platform/web_url_error.h
@@ -37,19 +37,6 @@ #include "third_party/blink/public/platform/web_url.h" namespace blink { -// NOTE: If updating this enum, also update -// BuildResourceRequestReason in inspector_network_agent.cc and -// BlockedReasonEnum in browser_protocol.pdl and -// Network.NetworkRequestNode in NetworkDataGridNode.js. -enum class ResourceRequestBlockedReason { - kOther, - kCSP, - kMixedContent, - kOrigin, - kInspector, - kSubresourceFilter, - kContentType, -}; // TODO(yhirano): Change this to a class. struct WebURLError {
diff --git a/third_party/blink/public/web/web_form_control_element.h b/third_party/blink/public/web/web_form_control_element.h index cfa4125..d949c1d 100644 --- a/third_party/blink/public/web/web_form_control_element.h +++ b/third_party/blink/public/web/web_form_control_element.h
@@ -64,6 +64,11 @@ bool IsAutofilled() const; void SetAutofilled(bool); + // The autofill section to which this element belongs (e.g. billing address, + // shipping address, .. .) + WebString AutofillSection() const; + void SetAutofillSection(const WebString&); + // Returns true if autocomplete attribute of the element is not set as "off". bool AutoComplete() const;
diff --git a/third_party/blink/public/web/web_frame_owner_properties.h b/third_party/blink/public/web/web_frame_owner_properties.h index 7f5aa7c2..fea9346d 100644 --- a/third_party/blink/public/web/web_frame_owner_properties.h +++ b/third_party/blink/public/web/web_frame_owner_properties.h
@@ -5,7 +5,6 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_FRAME_OWNER_PROPERTIES_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_FRAME_OWNER_PROPERTIES_H_ -#include "third_party/blink/public/platform/web_scrollbar.h" #include "third_party/blink/public/platform/web_string.h" #if INSIDE_BLINK @@ -15,7 +14,7 @@ namespace blink { struct WebFrameOwnerProperties { - using ScrollingMode = WebScrollbar::ScrollingMode; + enum class ScrollingMode { kAuto, kAlwaysOff, kAlwaysOn, kLast = kAlwaysOn }; WebString name; // browsing context container's name ScrollingMode scrolling_mode;
diff --git a/third_party/blink/public/web/web_settings.h b/third_party/blink/public/web/web_settings.h index 35189836..00cebb1d 100644 --- a/third_party/blink/public/web/web_settings.h +++ b/third_party/blink/public/web/web_settings.h
@@ -202,6 +202,8 @@ virtual void SetMainFrameResizesAreOrientationChanges(bool) = 0; virtual void SetMaxTouchPoints(int) = 0; virtual void SetPictureInPictureEnabled(bool) = 0; + virtual void SetDataSaverHoldbackWebApi(bool) = 0; + virtual void SetDataSaverHoldbackMediaApi(bool) = 0; virtual void SetMediaPlaybackGestureWhitelistScope(const WebString&) = 0; virtual void SetPresentationRequiresUserGesture(bool) = 0; virtual void SetEmbeddedMediaExperienceEnabled(bool) = 0;
diff --git a/third_party/blink/renderer/core/css/ComputedStyleExtraFields.json5 b/third_party/blink/renderer/core/css/ComputedStyleExtraFields.json5 index 01d9cd1..18e9a38 100644 --- a/third_party/blink/renderer/core/css/ComputedStyleExtraFields.json5 +++ b/third_party/blink/renderer/core/css/ComputedStyleExtraFields.json5
@@ -196,7 +196,7 @@ { name: "PseudoBits", field_template: "primitive", - field_size: 8, + field_size: 7, default_value: "kPseudoIdNone", type_name: "unsigned", custom_copy: true,
diff --git a/third_party/blink/renderer/core/css/css_style_sheet.cc b/third_party/blink/renderer/core/css/css_style_sheet.cc index 946a21e..36aebfdb 100644 --- a/third_party/blink/renderer/core/css/css_style_sheet.cc +++ b/third_party/blink/renderer/core/css/css_style_sheet.cc
@@ -60,6 +60,11 @@ CSSRuleList::Trace(visitor); } + void TraceWrappers(ScriptWrappableVisitor* visitor) const override { + visitor->TraceWrappers(style_sheet_); + CSSRuleList::TraceWrappers(visitor); + } + private: StyleSheetCSSRuleList(CSSStyleSheet* sheet) : style_sheet_(sheet) {} @@ -70,7 +75,7 @@ CSSStyleSheet* GetStyleSheet() const override { return style_sheet_; } - Member<CSSStyleSheet> style_sheet_; + TraceWrapperMember<CSSStyleSheet> style_sheet_; }; #if DCHECK_IS_ON() @@ -577,4 +582,13 @@ StyleSheet::Trace(visitor); } +void CSSStyleSheet::TraceWrappers( + blink::ScriptWrappableVisitor* visitor) const { + for (auto& rule : child_rule_cssom_wrappers_) { + visitor->TraceWrappers(rule); + } + visitor->TraceWrappers(rule_list_cssom_wrapper_); + StyleSheet::TraceWrappers(visitor); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/css/css_style_sheet.h b/third_party/blink/renderer/core/css/css_style_sheet.h index f9e925a..a9cb7a6 100644 --- a/third_party/blink/renderer/core/css/css_style_sheet.h +++ b/third_party/blink/renderer/core/css/css_style_sheet.h
@@ -28,6 +28,7 @@ #include "third_party/blink/renderer/core/css/media_query_evaluator.h" #include "third_party/blink/renderer/core/css/style_sheet.h" #include "third_party/blink/renderer/core/dom/tree_scope.h" +#include "third_party/blink/renderer/platform/bindings/trace_wrapper_member.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/wtf/noncopyable.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h" @@ -182,6 +183,7 @@ bool CanBeActivated(const String& current_preferrable_name) const; void Trace(blink::Visitor*) override; + void TraceWrappers(blink::ScriptWrappableVisitor*) const override; private: CSSStyleSheet(StyleSheetContents*, CSSImportRule* owner_rule); @@ -228,8 +230,8 @@ TextPosition start_position_; Member<MediaList> media_cssom_wrapper_; - mutable HeapVector<Member<CSSRule>> child_rule_cssom_wrappers_; - mutable Member<CSSRuleList> rule_list_cssom_wrapper_; + mutable HeapVector<TraceWrapperMember<CSSRule>> child_rule_cssom_wrappers_; + mutable TraceWrapperMember<CSSRuleList> rule_list_cssom_wrapper_; DISALLOW_COPY_AND_ASSIGN(CSSStyleSheet); };
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 a73abc9..d50e3e3 100644 --- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc +++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -236,9 +236,10 @@ if (IsHTMLFrameElement(element) || IsHTMLFrameSetElement(element)) { // Frames and framesets never honor position:relative or position:absolute. // This is necessary to fix a crash where a site tries to position these - // objects. They also never honor display. + // objects. They also never honor display nor floating. style.SetPosition(EPosition::kStatic); style.SetDisplay(EDisplay::kBlock); + style.SetFloating(EFloat::kNone); return; } @@ -531,7 +532,9 @@ const ComputedStyle& parent_style = *state.ParentStyle(); const ComputedStyle& layout_parent_style = *state.LayoutParentStyle(); - if (style.Display() != EDisplay::kNone && element && + if (element && + (style.Display() != EDisplay::kNone || + element->LayoutObjectIsNeeded(style)) && element->IsHTMLElement()) { AdjustStyleForHTMLElement(style, ToHTMLElement(*element)); }
diff --git a/third_party/blink/renderer/core/dom/layout_tree_builder.cc b/third_party/blink/renderer/core/dom/layout_tree_builder.cc index 9f7cbc20..643edb38 100644 --- a/third_party/blink/renderer/core/dom/layout_tree_builder.cc +++ b/third_party/blink/renderer/core/dom/layout_tree_builder.cc
@@ -100,10 +100,10 @@ } ComputedStyle& LayoutTreeBuilderForElement::Style() const { - if (!style_) - style_ = node_->GetNonAttachedStyle(); - if (!style_) + if (!style_) { + DCHECK(!node_->GetNonAttachedStyle()); style_ = node_->StyleForLayoutObject(); + } return *style_; }
diff --git a/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc b/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc index 26ad10ae..b781941 100644 --- a/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc +++ b/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc
@@ -38,6 +38,7 @@ #include "base/memory/ptr_util.h" #include "base/optional.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/public/platform/resource_request_blocked_reason.h" #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/web_cors.h" #include "third_party/blink/public/platform/web_http_header_visitor.h"
diff --git a/third_party/blink/renderer/core/exported/web_form_control_element.cc b/third_party/blink/renderer/core/exported/web_form_control_element.cc index 7402ee27f..bfb0834 100644 --- a/third_party/blink/renderer/core/exported/web_form_control_element.cc +++ b/third_party/blink/renderer/core/exported/web_form_control_element.cc
@@ -76,6 +76,14 @@ Unwrap<HTMLFormControlElement>()->SetAutofilled(autofilled); } +WebString WebFormControlElement::AutofillSection() const { + return ConstUnwrap<HTMLFormControlElement>()->AutofillSection(); +} + +void WebFormControlElement::SetAutofillSection(const WebString& section) { + Unwrap<HTMLFormControlElement>()->SetAutofillSection(section); +} + WebString WebFormControlElement::NameForAutofill() const { return ConstUnwrap<HTMLFormControlElement>()->NameForAutofill(); }
diff --git a/third_party/blink/renderer/core/exported/web_frame.cc b/third_party/blink/renderer/core/exported/web_frame.cc index 780b7d0..c94a559 100644 --- a/third_party/blink/renderer/core/exported/web_frame.cc +++ b/third_party/blink/renderer/core/exported/web_frame.cc
@@ -25,6 +25,7 @@ #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" +#include "third_party/blink/renderer/platform/wtf/assertions.h" namespace blink { @@ -388,4 +389,11 @@ return nullptr; } +STATIC_ASSERT_ENUM(WebFrameOwnerProperties::ScrollingMode::kAuto, + kScrollbarAuto); +STATIC_ASSERT_ENUM(WebFrameOwnerProperties::ScrollingMode::kAlwaysOff, + kScrollbarAlwaysOff); +STATIC_ASSERT_ENUM(WebFrameOwnerProperties::ScrollingMode::kAlwaysOn, + kScrollbarAlwaysOn); + } // namespace blink
diff --git a/third_party/blink/renderer/core/exported/web_frame_test.cc b/third_party/blink/renderer/core/exported/web_frame_test.cc index e1cc09d8..961f860 100644 --- a/third_party/blink/renderer/core/exported/web_frame_test.cc +++ b/third_party/blink/renderer/core/exported/web_frame_test.cc
@@ -157,7 +157,6 @@ #include "third_party/blink/renderer/platform/scroll/scrollbar_test_suite.h" #include "third_party/blink/renderer/platform/testing/histogram_tester.h" #include "third_party/blink/renderer/platform/testing/paint_test_configurations.h" -#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" #include "third_party/blink/renderer/platform/testing/url_test_helpers.h" #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h" @@ -363,18 +362,7 @@ std::string chrome_url_; }; -typedef bool TestParamRootLayerScrolling; -class ParameterizedWebFrameTest - : public testing::WithParamInterface<TestParamRootLayerScrolling>, - private ScopedRootLayerScrollingForTest, - public WebFrameTest { - public: - ParameterizedWebFrameTest() : ScopedRootLayerScrollingForTest(GetParam()) {} -}; - -INSTANTIATE_TEST_CASE_P(All, ParameterizedWebFrameTest, testing::Bool()); - -TEST_P(ParameterizedWebFrameTest, ContentText) { +TEST_F(WebFrameTest, ContentText) { RegisterMockedHttpURLLoad("iframes_test.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); RegisterMockedHttpURLLoad("invisible_iframe.html"); @@ -394,7 +382,7 @@ EXPECT_EQ(std::string::npos, content.find("iframe with zero size")); } -TEST_P(ParameterizedWebFrameTest, FrameForEnteredContext) { +TEST_F(WebFrameTest, FrameForEnteredContext) { RegisterMockedHttpURLLoad("iframes_test.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); RegisterMockedHttpURLLoad("invisible_iframe.html"); @@ -446,7 +434,7 @@ v8::Local<v8::Context> context_; }; -TEST_P(ParameterizedWebFrameTest, RequestExecuteScript) { +TEST_F(WebFrameTest, RequestExecuteScript) { RegisterMockedHttpURLLoad("foo.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -464,7 +452,7 @@ EXPECT_EQ("hello", callback_helper.StringValue()); } -TEST_P(ParameterizedWebFrameTest, SuspendedRequestExecuteScript) { +TEST_F(WebFrameTest, SuspendedRequestExecuteScript) { RegisterMockedHttpURLLoad("foo.html"); RegisterMockedHttpURLLoad("bar.html"); @@ -496,7 +484,7 @@ EXPECT_EQ(String(), callback_helper.StringValue()); } -TEST_P(ParameterizedWebFrameTest, RequestExecuteV8Function) { +TEST_F(WebFrameTest, RequestExecuteV8Function) { RegisterMockedHttpURLLoad("foo.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -523,7 +511,7 @@ EXPECT_EQ("hello", callback_helper.StringValue()); } -TEST_P(ParameterizedWebFrameTest, RequestExecuteV8FunctionWhileSuspended) { +TEST_F(WebFrameTest, RequestExecuteV8FunctionWhileSuspended) { DisableRendererSchedulerThrottling(); RegisterMockedHttpURLLoad("foo.html"); @@ -557,8 +545,7 @@ EXPECT_EQ("hello", callback_helper.StringValue()); } -TEST_P(ParameterizedWebFrameTest, - RequestExecuteV8FunctionWhileSuspendedWithUserGesture) { +TEST_F(WebFrameTest, RequestExecuteV8FunctionWhileSuspendedWithUserGesture) { DisableRendererSchedulerThrottling(); RegisterMockedHttpURLLoad("foo.html"); @@ -623,7 +610,7 @@ base::Optional<base::OnceClosure> closure_; }; -TEST_P(ParameterizedWebFrameTest, CallingPostPausableTaskWhileNotPaused) { +TEST_F(WebFrameTest, CallingPostPausableTaskWhileNotPaused) { RegisterMockedHttpURLLoad("foo.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -643,9 +630,9 @@ // Flaky on Android: crbug.com/804892. #if defined(OS_ANDROID) -TEST_P(ParameterizedWebFrameTest, DISABLED_CallingPostPausableTaskWhilePaused) +TEST_F(WebFrameTest, DISABLED_CallingPostPausableTaskWhilePaused) #else -TEST_P(ParameterizedWebFrameTest, CallingPostPausableTaskWhilePaused) +TEST_F(WebFrameTest, CallingPostPausableTaskWhilePaused) #endif { RegisterMockedHttpURLLoad("foo.html"); @@ -671,7 +658,7 @@ *callback_helper.result()); } -TEST_P(ParameterizedWebFrameTest, CallingPostPausableTaskAndNavigating) { +TEST_F(WebFrameTest, CallingPostPausableTaskAndNavigating) { RegisterMockedHttpURLLoad("foo.html"); RegisterMockedHttpURLLoad("bar.html"); @@ -698,8 +685,7 @@ *callback_helper.result()); } -TEST_P(ParameterizedWebFrameTest, - CallingPostPausableTaskAndDestroyingTheContext) { +TEST_F(WebFrameTest, CallingPostPausableTaskAndDestroyingTheContext) { RegisterMockedHttpURLLoad("foo.html"); RegisterMockedHttpURLLoad("bar.html"); @@ -730,7 +716,7 @@ *callback_helper.result()); } -TEST_P(ParameterizedWebFrameTest, IframeScriptRemovesSelf) { +TEST_F(WebFrameTest, IframeScriptRemovesSelf) { RegisterMockedHttpURLLoad("single_iframe.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); @@ -755,7 +741,7 @@ EXPECT_EQ(String(), callback_helper.StringValue()); } -TEST_P(ParameterizedWebFrameTest, FormWithNullFrame) { +TEST_F(WebFrameTest, FormWithNullFrame) { RegisterMockedHttpURLLoad("form.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -771,7 +757,7 @@ WebSearchableFormData searchable_data_form(forms[0]); } -TEST_P(ParameterizedWebFrameTest, ChromePageJavascript) { +TEST_F(WebFrameTest, ChromePageJavascript) { RegisterMockedChromeURLLoad("history.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -790,7 +776,7 @@ EXPECT_NE(std::string::npos, content.find("Clobbered")); } -TEST_P(ParameterizedWebFrameTest, ChromePageNoJavascript) { +TEST_F(WebFrameTest, ChromePageNoJavascript) { RegisterMockedChromeURLLoad("history.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -810,7 +796,7 @@ EXPECT_EQ(std::string::npos, content.find("Clobbered")); } -TEST_P(ParameterizedWebFrameTest, LocationSetHostWithMissingPort) { +TEST_F(WebFrameTest, LocationSetHostWithMissingPort) { std::string file_name = "print-location-href.html"; RegisterMockedHttpURLLoad(file_name); RegisterMockedURLLoadFromBase("http://internal.test:0/", file_name); @@ -833,7 +819,7 @@ EXPECT_EQ("http://internal.test:0/" + file_name, content); } -TEST_P(ParameterizedWebFrameTest, LocationSetEmptyPort) { +TEST_F(WebFrameTest, LocationSetEmptyPort) { std::string file_name = "print-location-href.html"; RegisterMockedHttpURLLoad(file_name); RegisterMockedURLLoadFromBase("http://internal.test:0/", file_name); @@ -875,7 +861,7 @@ bool was_executed_; }; -TEST_P(ParameterizedWebFrameTest, DidClearWindowObjectIsNotRecursive) { +TEST_F(WebFrameTest, DidClearWindowObjectIsNotRecursive) { EvaluateOnLoadWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank", &web_frame_client); @@ -1178,7 +1164,7 @@ << "An invalid selector shouldn't prevent other selectors from matching."; } -TEST_P(ParameterizedWebFrameTest, DispatchMessageEventWithOriginCheck) { +TEST_F(WebFrameTest, DispatchMessageEventWithOriginCheck) { RegisterMockedHttpURLLoad("postmessage_test.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -1227,7 +1213,7 @@ } // namespace -TEST_P(ParameterizedWebFrameTest, PostMessageThenDetach) { +TEST_F(WebFrameTest, PostMessageThenDetach) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); @@ -1294,8 +1280,7 @@ } // namespace -TEST_P(ParameterizedWebFrameTest, - ChangeInFixedLayoutResetsTextAutosizingMultipliers) { +TEST_F(WebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipliers) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -1326,8 +1311,7 @@ EXPECT_TRUE(CheckTextAutosizingMultiplier(document, 1)); } -TEST_P(ParameterizedWebFrameTest, - WorkingTextAutosizingMultipliers_VirtualViewport) { +TEST_F(WebFrameTest, WorkingTextAutosizingMultipliers_VirtualViewport) { const std::string html_file = "fixed_layout.html"; RegisterMockedHttpURLLoad(html_file); @@ -1349,7 +1333,7 @@ EXPECT_TRUE(CheckTextAutosizingMultiplier(document, 2.0)); } -TEST_P(ParameterizedWebFrameTest, +TEST_F(WebFrameTest, VisualViewportSetSizeInvalidatesTextAutosizingMultipliers) { RegisterMockedHttpURLLoad("iframe_reload.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); @@ -1397,7 +1381,7 @@ } } -TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) { +TEST_F(WebFrameTest, ZeroHeightPositiveWidthNotIgnored) { FixedLayoutTestWebViewClient client; client.screen_info_.device_scale_factor = 1; int viewport_width = 1280; @@ -1419,8 +1403,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, - DeviceScaleFactorUsesDefaultWithoutViewportTag) { +TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag) { RegisterMockedHttpURLLoad("no_viewport_tag.html"); int viewport_width = 640; @@ -1449,7 +1432,7 @@ web_view_helper.GetWebView()->UpdateAllLifecyclePhases(); } -TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) { +TEST_F(WebFrameTest, FixedLayoutInitializeAtMinimumScale) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -1492,7 +1475,7 @@ web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, WideDocumentInitializeAtMinimumScale) { +TEST_F(WebFrameTest, WideDocumentInitializeAtMinimumScale) { RegisterMockedHttpURLLoad("wide_document.html"); FixedLayoutTestWebViewClient client; @@ -1534,7 +1517,7 @@ web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, DelayedViewportInitialScale) { +TEST_F(WebFrameTest, DelayedViewportInitialScale) { RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); FixedLayoutTestWebViewClient client; @@ -1560,7 +1543,7 @@ EXPECT_EQ(2, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse) { +TEST_F(WebFrameTest, setLoadWithOverviewModeToFalse) { RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); FixedLayoutTestWebViewClient client; @@ -1581,8 +1564,7 @@ EXPECT_EQ(1.0f, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, - SetLoadWithOverviewModeToFalseAndNoWideViewport) { +TEST_F(WebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewport) { RegisterMockedHttpURLLoad("large-div.html"); FixedLayoutTestWebViewClient client; @@ -1604,7 +1586,7 @@ EXPECT_EQ(1.0f, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) { +TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth) { RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); FixedLayoutTestWebViewClient client; @@ -1635,8 +1617,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, - NoWideViewportIgnoresPageViewportWidthButAccountsScale) { +TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccountsScale) { RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); FixedLayoutTestWebViewClient client; @@ -1668,7 +1649,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) { +TEST_F(WebFrameTest, WideViewportSetsTo980WithoutViewportTag) { RegisterMockedHttpURLLoad("no_viewport_tag.html"); FixedLayoutTestWebViewClient client; @@ -1699,7 +1680,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) { +TEST_F(WebFrameTest, WideViewportSetsTo980WithXhtmlMp) { RegisterMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); FixedLayoutTestWebViewClient client; @@ -1729,7 +1710,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta) { +TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta) { RegisterMockedHttpURLLoad("viewport-height-1000.html"); FixedLayoutTestWebViewClient client; @@ -1753,7 +1734,7 @@ .Width()); } -TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) { +TEST_F(WebFrameTest, WideViewportSetsTo980WithAutoWidth) { RegisterMockedHttpURLLoad("viewport-2x-initial-scale.html"); FixedLayoutTestWebViewClient client; @@ -1783,8 +1764,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, - PageViewportInitialScaleOverridesLoadWithOverviewMode) { +TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode) { RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); FixedLayoutTestWebViewClient client; @@ -1804,7 +1784,7 @@ EXPECT_EQ(2.0f, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently) { +TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -1836,7 +1816,7 @@ EXPECT_EQ(1.0, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, +TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWithOverviewMode) { RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); @@ -1859,7 +1839,7 @@ web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, +TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitialScale) { RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); @@ -1881,8 +1861,7 @@ web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, - SmallPermanentInitialPageScaleFactorIsClobbered) { +TEST_F(WebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbered) { const char* pages[] = { // These pages trigger the clobbering condition. There must be a matching // item in "pageScaleFactors" array. @@ -1923,8 +1902,7 @@ } } -TEST_P(ParameterizedWebFrameTest, - PermanentInitialPageScaleFactorAffectsLayoutWidth) { +TEST_F(WebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWidth) { FixedLayoutTestWebViewClient client; client.screen_info_.device_scale_factor = 1; int viewport_width = 640; @@ -1952,8 +1930,7 @@ web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, - DocumentElementClientHeightWorksWithWrapContentMode) { +TEST_F(WebFrameTest, DocumentElementClientHeightWorksWithWrapContentMode) { RegisterMockedHttpURLLoad("0-by-0.html"); FixedLayoutTestWebViewClient client; @@ -1974,8 +1951,7 @@ EXPECT_EQ(viewport_width, document->documentElement()->clientWidth()); } -TEST_P(ParameterizedWebFrameTest, - SetForceZeroLayoutHeightWorksWithWrapContentMode) { +TEST_F(WebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMode) { RegisterMockedHttpURLLoad("0-by-0.html"); FixedLayoutTestWebViewClient client; @@ -2052,7 +2028,7 @@ EXPECT_FALSE(scroll_container->PlatformLayer()->MasksToBounds()); } -TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) { +TEST_F(WebFrameTest, SetForceZeroLayoutHeight) { RegisterMockedHttpURLLoad("200-by-300.html"); FixedLayoutTestWebViewClient client; @@ -2109,7 +2085,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, ToggleViewportMetaOnOff) { +TEST_F(WebFrameTest, ToggleViewportMetaOnOff) { RegisterMockedHttpURLLoad("viewport-device-width.html"); FixedLayoutTestWebViewClient client; @@ -2139,7 +2115,7 @@ EXPECT_FALSE(document->GetViewportDescription().IsLegacyViewportType()); } -TEST_P(ParameterizedWebFrameTest, +TEST_F(WebFrameTest, SetForceZeroLayoutHeightWorksWithRelayoutsWhenHeightChanged) { // this unit test is an attempt to target a real world case where an app could // 1. call resize(width, 0) and setForceZeroLayoutHeight(true) @@ -2191,7 +2167,7 @@ EXPECT_EQ(String("updatedValue"), element->innerText()); } -TEST_P(ParameterizedWebFrameTest, FrameOwnerPropertiesMargin) { +TEST_F(WebFrameTest, FrameOwnerPropertiesMargin) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -2224,7 +2200,7 @@ frame_view->LayoutViewportScrollableArea()->VerticalScrollbar()); } -TEST_P(ParameterizedWebFrameTest, FrameOwnerPropertiesScrolling) { +TEST_F(WebFrameTest, FrameOwnerPropertiesScrolling) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -2251,8 +2227,7 @@ EXPECT_EQ(nullptr, frame_view->VerticalScrollbar()); } -TEST_P(ParameterizedWebFrameTest, - SetForceZeroLayoutHeightWorksAcrossNavigations) { +TEST_F(WebFrameTest, SetForceZeroLayoutHeightWorksAcrossNavigations) { RegisterMockedHttpURLLoad("200-by-300.html"); RegisterMockedHttpURLLoad("large-div.html"); @@ -2279,8 +2254,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, - SetForceZeroLayoutHeightWithWideViewportQuirk) { +TEST_F(WebFrameTest, SetForceZeroLayoutHeightWithWideViewportQuirk) { RegisterMockedHttpURLLoad("200-by-300.html"); FixedLayoutTestWebViewClient client; @@ -2305,7 +2279,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) { +TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale) { RegisterMockedHttpURLLoad("wide_document_width_viewport.html"); RegisterMockedHttpURLLoad("white-1x1.png"); @@ -2336,7 +2310,7 @@ web_view_helper.GetWebView()->MinimumPageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) { +TEST_F(WebFrameTest, WideViewportQuirkClobbersHeight) { RegisterMockedHttpURLLoad("viewport-height-1000.html"); FixedLayoutTestWebViewClient client; @@ -2366,7 +2340,7 @@ EXPECT_EQ(1, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) { +TEST_F(WebFrameTest, LayoutSize320Quirk) { RegisterMockedHttpURLLoad("viewport/viewport-30.html"); FixedLayoutTestWebViewClient client; @@ -2446,7 +2420,7 @@ .Height()); } -TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) { +TEST_F(WebFrameTest, ZeroValuesQuirk) { RegisterMockedHttpURLLoad("viewport-zero-values.html"); FixedLayoutTestWebViewClient client; @@ -2483,7 +2457,7 @@ EXPECT_EQ(1.0f, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) { +TEST_F(WebFrameTest, OverflowHiddenDisablesScrolling) { RegisterMockedHttpURLLoad("body-overflow-hidden.html"); FixedLayoutTestWebViewClient client; @@ -2502,8 +2476,7 @@ EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar)); } -TEST_P(ParameterizedWebFrameTest, - OverflowHiddenDisablesScrollingWithSetCanHaveScrollbars) { +TEST_F(WebFrameTest, OverflowHiddenDisablesScrollingWithSetCanHaveScrollbars) { RegisterMockedHttpURLLoad("body-overflow-hidden-short.html"); FixedLayoutTestWebViewClient client; @@ -2526,7 +2499,7 @@ EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar)); } -TEST_P(ParameterizedWebFrameTest, IgnoreOverflowHiddenQuirk) { +TEST_F(WebFrameTest, IgnoreOverflowHiddenQuirk) { RegisterMockedHttpURLLoad("body-overflow-hidden.html"); FixedLayoutTestWebViewClient client; @@ -2548,7 +2521,7 @@ kVerticalScrollbar)); } -TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) { +TEST_F(WebFrameTest, NonZeroValuesNoQuirk) { RegisterMockedHttpURLLoad("viewport-nonzero-values.html"); FixedLayoutTestWebViewClient client; @@ -2588,7 +2561,7 @@ web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout) { +TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -2615,8 +2588,7 @@ ->LayoutCount()); } -TEST_P(ParameterizedWebFrameTest, - setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) { +TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -2642,7 +2614,7 @@ ->LayoutCount()); } -TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) { +TEST_F(WebFrameTest, pageScaleFactorWrittenToHistoryItem) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -2665,7 +2637,7 @@ ->page_scale_factor_); } -TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) { +TEST_F(WebFrameTest, initialScaleWrittenToHistoryItem) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -2692,7 +2664,7 @@ ->page_scale_factor_); } -TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) { +TEST_F(WebFrameTest, pageScaleFactorDoesntShrinkFrameView) { RegisterMockedHttpURLLoad("large-div.html"); FixedLayoutTestWebViewClient client; @@ -2736,7 +2708,7 @@ EXPECT_EQ(viewport_height_minus_scrollbar, frame_view_size.Height()); } -TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesNotApplyCssTransform) { +TEST_F(WebFrameTest, pageScaleFactorDoesNotApplyCssTransform) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -2764,7 +2736,7 @@ .Width()); } -TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh) { +TEST_F(WebFrameTest, targetDensityDpiHigh) { RegisterMockedHttpURLLoad("viewport-target-densitydpi-high.html"); FixedLayoutTestWebViewClient client; @@ -2813,7 +2785,7 @@ } } -TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice) { +TEST_F(WebFrameTest, targetDensityDpiDevice) { RegisterMockedHttpURLLoad("viewport-target-densitydpi-device.html"); float device_scale_factors[] = {1.0f, 4.0f / 3.0f, 2.0f}; @@ -2855,7 +2827,7 @@ } } -TEST_P(ParameterizedWebFrameTest, targetDensityDpiDeviceAndFixedWidth) { +TEST_F(WebFrameTest, targetDensityDpiDeviceAndFixedWidth) { RegisterMockedHttpURLLoad( "viewport-target-densitydpi-device-and-fixed-width.html"); @@ -2898,7 +2870,7 @@ } } -TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne) { +TEST_F(WebFrameTest, NoWideViewportAndScaleLessThanOne) { RegisterMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); FixedLayoutTestWebViewClient client; @@ -2936,8 +2908,7 @@ web_view_helper.GetWebView()->PageScaleFactor(), 0.01f); } -TEST_P(ParameterizedWebFrameTest, - NoWideViewportAndScaleLessThanOneWithDeviceWidth) { +TEST_F(WebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWidth) { RegisterMockedHttpURLLoad( "viewport-initial-scale-less-than-1-device-width.html"); @@ -2979,8 +2950,7 @@ web_view_helper.GetWebView()->PageScaleFactor(), 0.01f); } -TEST_P(ParameterizedWebFrameTest, - NoWideViewportAndNoViewportWithInitialPageScaleOverride) { +TEST_F(WebFrameTest, NoWideViewportAndNoViewportWithInitialPageScaleOverride) { RegisterMockedHttpURLLoad("large-div.html"); FixedLayoutTestWebViewClient client; @@ -3017,7 +2987,7 @@ web_view_helper.GetWebView()->PageScaleFactor(), 0.01f); } -TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) { +TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScale) { RegisterMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); FixedLayoutTestWebViewClient client; @@ -3050,7 +3020,7 @@ EXPECT_NEAR(1.0f, web_view_helper.GetWebView()->PageScaleFactor(), 0.01f); } -TEST_P(ParameterizedWebFrameTest, +TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonWideViewport) { RegisterMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); @@ -3092,8 +3062,7 @@ web_view_helper.GetWebView()->PageScaleFactor(), 0.01f); } -TEST_P(ParameterizedWebFrameTest, - NoUserScalableQuirkIgnoresViewportScaleForWideViewport) { +TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWideViewport) { RegisterMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html"); FixedLayoutTestWebViewClient client; @@ -3129,8 +3098,7 @@ EXPECT_NEAR(1.0f, web_view_helper.GetWebView()->PageScaleFactor(), 0.01f); } -TEST_P(ParameterizedWebFrameTest, - DesktopPageCanBeZoomedInWhenWideViewportIsTurnedOff) { +TEST_F(WebFrameTest, DesktopPageCanBeZoomedInWhenWideViewportIsTurnedOff) { RegisterMockedHttpURLLoad("no_viewport_tag.html"); FixedLayoutTestWebViewClient client; @@ -3153,7 +3121,7 @@ 0.01f); } -TEST_P(ParameterizedWebFrameTest, AtViewportInsideAtMediaInitialViewport) { +TEST_F(WebFrameTest, AtViewportInsideAtMediaInitialViewport) { RegisterMockedHttpURLLoad("viewport-inside-media.html"); FixedLayoutTestWebViewClient client; @@ -3178,7 +3146,7 @@ .Width()); } -TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) { +TEST_F(WebFrameTest, AtViewportAffectingAtMediaRecalcCount) { RegisterMockedHttpURLLoad("viewport-and-media.html"); FixedLayoutTestWebViewClient client; @@ -3204,7 +3172,7 @@ GetCSSPropertyColor())); } -TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) { +TEST_F(WebFrameTest, AtViewportWithViewportLengths) { RegisterMockedHttpURLLoad("viewport-lengths.html"); FixedLayoutTestWebViewClient client; @@ -3224,7 +3192,7 @@ EXPECT_EQ(200, view->GetLayoutSize().Height()); } -class WebFrameResizeTest : public ParameterizedWebFrameTest { +class WebFrameResizeTest : public WebFrameTest { protected: static FloatSize ComputeRelativeOffset(const IntPoint& absolute_offset, const LayoutRect& rect) { @@ -3296,9 +3264,7 @@ } }; -INSTANTIATE_TEST_CASE_P(All, WebFrameResizeTest, testing::Bool()); - -TEST_P(WebFrameResizeTest, +TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForWidthEqualsDeviceWidth) { // With width=device-width, pageScaleFactor is preserved across resizes as // long as the content adjusts according to the device-width. @@ -3313,7 +3279,7 @@ kShouldScaleRelativeToViewportWidth); } -TEST_P(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForMinimumScale) { +TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForMinimumScale) { // This tests a scenario where minimum-scale is set to 1.0, but some element // on the page is slightly larger than the portrait width, so our "natural" // minimum-scale would be lower. In that case, we should stick to 1.0 scale @@ -3329,7 +3295,7 @@ kShouldScaleRelativeToViewportWidth); } -TEST_P(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedWidth) { +TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedWidth) { // With a fixed width, pageScaleFactor scales by the relative change in // viewport width. const char* url = "resize_scroll_fixed_width.html"; @@ -3343,7 +3309,7 @@ kShouldScaleRelativeToViewportWidth); } -TEST_P(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedLayout) { +TEST_F(WebFrameResizeTest, ResizeYieldsCorrectScrollAndScaleForFixedLayout) { // With a fixed layout, pageScaleFactor scales by the relative change in // viewport width. const char* url = "resize_scroll_fixed_layout.html"; @@ -3357,7 +3323,7 @@ kShouldScaleRelativeToViewportWidth); } -TEST_P(ParameterizedWebFrameTest, pageScaleFactorUpdatesScrollbars) { +TEST_F(WebFrameTest, pageScaleFactorUpdatesScrollbars) { RegisterMockedHttpURLLoad("fixed_layout.html"); FixedLayoutTestWebViewClient client; @@ -3389,7 +3355,7 @@ view->VisibleContentRect().Height()); } -TEST_P(ParameterizedWebFrameTest, CanOverrideScaleLimits) { +TEST_F(WebFrameTest, CanOverrideScaleLimits) { RegisterMockedHttpURLLoad("no_scale_for_you.html"); FixedLayoutTestWebViewClient client; @@ -3422,9 +3388,9 @@ // Android doesn't have scrollbars on the main LocalFrameView #if defined(OS_ANDROID) -TEST_P(ParameterizedWebFrameTest, DISABLED_updateOverlayScrollbarLayers) +TEST_F(WebFrameTest, DISABLED_updateOverlayScrollbarLayers) #else -TEST_P(ParameterizedWebFrameTest, updateOverlayScrollbarLayers) +TEST_F(WebFrameTest, updateOverlayScrollbarLayers) #endif { RegisterMockedHttpURLLoad("large-div.html"); @@ -3493,7 +3459,7 @@ SimulatePageScale(web_view_impl, scale); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomParamsTest) { +TEST_F(WebFrameTest, DivAutoZoomParamsTest) { RegisterMockedHttpURLLoad("get_scale_for_auto_zoom_into_div_test.html"); const float kDeviceScaleFactor = 2.0f; @@ -3561,7 +3527,7 @@ EXPECT_NEAR(tall_div.y, scroll.y, 20); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomWideDivTest) { +TEST_F(WebFrameTest, DivAutoZoomWideDivTest) { RegisterMockedHttpURLLoad("get_wide_div_for_auto_zoom_test.html"); const float kDeviceScaleFactor = 2.0f; @@ -3598,7 +3564,7 @@ scale); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomVeryTallTest) { +TEST_F(WebFrameTest, DivAutoZoomVeryTallTest) { // When a block is taller than the viewport and a zoom targets a lower part // of it, then we should keep the target point onscreen instead of snapping // back up the top of the block. @@ -3628,7 +3594,7 @@ EXPECT_EQ(scroll.y, 2660); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomMultipleDivsTest) { +TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest) { RegisterMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); const float kDeviceScaleFactor = 2.0f; @@ -3690,7 +3656,7 @@ scale); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomScaleBoundsTest) { +TEST_F(WebFrameTest, DivAutoZoomScaleBoundsTest) { RegisterMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); int viewport_width = 320; @@ -3773,7 +3739,7 @@ EXPECT_FLOAT_EQ(double_tap_zoom_already_legible_scale, scale); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomScaleLegibleScaleTest) { +TEST_F(WebFrameTest, DivAutoZoomScaleLegibleScaleTest) { RegisterMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); int viewport_width = 320; @@ -3887,7 +3853,7 @@ EXPECT_FLOAT_EQ(legible_scale, scale); } -TEST_P(ParameterizedWebFrameTest, DivAutoZoomScaleFontScaleFactorTest) { +TEST_F(WebFrameTest, DivAutoZoomScaleFontScaleFactorTest) { RegisterMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); int viewport_width = 320; @@ -4004,7 +3970,7 @@ EXPECT_FLOAT_EQ(legible_scale, scale); } -TEST_P(ParameterizedWebFrameTest, BlockBoundTest) { +TEST_F(WebFrameTest, BlockBoundTest) { RegisterMockedHttpURLLoad("block_bound.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -4046,7 +4012,7 @@ EXPECT_EQ(rect_right_bottom, block_bound); } -TEST_P(ParameterizedWebFrameTest, DivMultipleTargetZoomMultipleDivsTest) { +TEST_F(WebFrameTest, DivMultipleTargetZoomMultipleDivsTest) { RegisterMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); const float kDeviceScaleFactor = 2.0f; @@ -4086,7 +4052,7 @@ EXPECT_FLOAT_EQ(1, scale); } -TEST_P(ParameterizedWebFrameTest, DontZoomInOnFocusedInTouchAction) { +TEST_F(WebFrameTest, DontZoomInOnFocusedInTouchAction) { RegisterMockedHttpURLLoad("textbox_in_touch_action.html"); int viewport_width = 600; @@ -4150,7 +4116,7 @@ initial_scale); } -TEST_P(ParameterizedWebFrameTest, DivScrollIntoEditableTest) { +TEST_F(WebFrameTest, DivScrollIntoEditableTest) { RegisterMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); const bool kAutoZoomToLegibleScale = true; @@ -4265,7 +4231,7 @@ EXPECT_FALSE(need_animation); } -TEST_P(ParameterizedWebFrameTest, DivScrollIntoEditablePreservePageScaleTest) { +TEST_F(WebFrameTest, DivScrollIntoEditablePreservePageScaleTest) { RegisterMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); const bool kAutoZoomToLegibleScale = true; @@ -4343,8 +4309,7 @@ // Tests the scroll into view functionality when // autoZoomeFocusedNodeToLegibleScale set to false. i.e. The path non-Android // platforms take. -TEST_P(ParameterizedWebFrameTest, - DivScrollIntoEditableTestZoomToLegibleScaleDisabled) { +TEST_F(WebFrameTest, DivScrollIntoEditableTestZoomToLegibleScaleDisabled) { RegisterMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); const bool kAutoZoomToLegibleScale = false; @@ -4419,7 +4384,7 @@ EXPECT_FALSE(need_animation); } -TEST_P(ParameterizedWebFrameTest, CharacterIndexAtPointWithPinchZoom) { +TEST_F(WebFrameTest, CharacterIndexAtPointWithPinchZoom) { RegisterMockedHttpURLLoad("sometext.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -4445,7 +4410,7 @@ EXPECT_EQ(5ul, ix); } -TEST_P(ParameterizedWebFrameTest, FirstRectForCharacterRangeWithPinchZoom) { +TEST_F(WebFrameTest, FirstRectForCharacterRangeWithPinchZoom) { RegisterMockedHttpURLLoad("textbox.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -4488,7 +4453,7 @@ } }; -TEST_P(ParameterizedWebFrameTest, ReloadDoesntSetRedirect) { +TEST_F(WebFrameTest, ReloadDoesntSetRedirect) { // Test for case in http://crbug.com/73104. Reloading a frame very quickly // would sometimes call decidePolicyForNavigation with isRedirect=true RegisterMockedHttpURLLoad("form.html"); @@ -4518,7 +4483,7 @@ } }; -TEST_P(ParameterizedWebFrameTest, ReloadPreservesState) { +TEST_F(WebFrameTest, ReloadPreservesState) { const std::string url = "200-by-300.html"; const float kPageScaleFactor = 1.1684f; const int kPageWidth = 120; @@ -4544,7 +4509,7 @@ EXPECT_EQ(1.0f, web_view_helper.GetWebView()->PageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, ReloadWhileProvisional) { +TEST_F(WebFrameTest, ReloadWhileProvisional) { // Test that reloading while the previous load is still pending does not cause // the initial request to get lost. RegisterMockedHttpURLLoad("fixed_layout.html"); @@ -4564,7 +4529,7 @@ KURL(document_loader->GetRequest().Url())); } -TEST_P(ParameterizedWebFrameTest, AppendRedirects) { +TEST_F(WebFrameTest, AppendRedirects) { const std::string first_url = "about:blank"; const std::string second_url = "http://internal.test"; @@ -4583,7 +4548,7 @@ EXPECT_EQ(ToKURL(second_url), KURL(redirects[1])); } -TEST_P(ParameterizedWebFrameTest, IframeRedirect) { +TEST_F(WebFrameTest, IframeRedirect) { RegisterMockedHttpURLLoad("iframe_redirect.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); @@ -4608,7 +4573,7 @@ KURL(redirects[1])); } -TEST_P(ParameterizedWebFrameTest, ClearFocusedNodeTest) { +TEST_F(WebFrameTest, ClearFocusedNodeTest) { RegisterMockedHttpURLLoad("iframe_clear_focused_node_test.html"); RegisterMockedHttpURLLoad("autofocus_input_field_iframe.html"); @@ -4634,7 +4599,7 @@ int call_count_; }; -TEST_P(ParameterizedWebFrameTest, TabKeyCursorMoveTriggersOneSelectionChange) { +TEST_F(WebFrameTest, TabKeyCursorMoveTriggersOneSelectionChange) { ChangedSelectionCounter counter; FrameTestHelpers::WebViewHelper web_view_helper; RegisterMockedHttpURLLoad("editable_elements.html"); @@ -4746,7 +4711,7 @@ Vector<std::unique_ptr<Notification>>& release_notifications_; }; -TEST_P(ParameterizedWebFrameTest, ContextNotificationsLoadUnload) { +TEST_F(WebFrameTest, ContextNotificationsLoadUnload) { v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); RegisterMockedHttpURLLoad("context_notifications_test.html"); @@ -4797,7 +4762,7 @@ second_create_notification->Equals(first_release_notification.get())); } -TEST_P(ParameterizedWebFrameTest, ContextNotificationsReload) { +TEST_F(WebFrameTest, ContextNotificationsReload) { v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); RegisterMockedHttpURLLoad("context_notifications_test.html"); @@ -4844,7 +4809,7 @@ EXPECT_EQ(0, second_refresh_notification->world_id); } -TEST_P(ParameterizedWebFrameTest, ContextNotificationsIsolatedWorlds) { +TEST_F(WebFrameTest, ContextNotificationsIsolatedWorlds) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope handle_scope(isolate); @@ -4896,7 +4861,7 @@ EXPECT_EQ(1, match_count); } -TEST_P(ParameterizedWebFrameTest, FindInPage) { +TEST_F(WebFrameTest, FindInPage) { RegisterMockedHttpURLLoad("find.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "find.html"); @@ -4963,7 +4928,7 @@ ASSERT_TRUE(range.IsNull()); } -TEST_P(ParameterizedWebFrameTest, GetContentAsPlainText) { +TEST_F(WebFrameTest, GetContentAsPlainText) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); // We set the size because it impacts line wrapping, which changes the @@ -5008,7 +4973,7 @@ EXPECT_EQ("Hello world", text.Utf8()); } -TEST_P(ParameterizedWebFrameTest, GetFullHtmlOfPage) { +TEST_F(WebFrameTest, GetFullHtmlOfPage) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); WebLocalFrame* frame = web_view_helper.LocalMainFrame(); @@ -5056,7 +5021,7 @@ } }; -TEST_P(ParameterizedWebFrameTest, ExecuteScriptDuringDidCreateScriptContext) { +TEST_F(WebFrameTest, ExecuteScriptDuringDidCreateScriptContext) { RegisterMockedHttpURLLoad("hello_world.html"); TestExecuteScriptDuringDidCreateScriptContext web_frame_client; @@ -5096,7 +5061,7 @@ int active_index_; }; -TEST_P(ParameterizedWebFrameTest, FindInPageMatchRects) { +TEST_F(WebFrameTest, FindInPageMatchRects) { RegisterMockedHttpURLLoad("find_in_page_frame.html"); FindUpdateWebFrameClient client; @@ -5173,7 +5138,7 @@ rects_version); } -TEST_P(ParameterizedWebFrameTest, FindInPageActiveIndex) { +TEST_F(WebFrameTest, FindInPageActiveIndex) { RegisterMockedHttpURLLoad("find_match_count.html"); FindUpdateWebFrameClient client; @@ -5231,7 +5196,7 @@ EXPECT_EQ(kActiveIndex, client.ActiveIndex()); } -TEST_P(ParameterizedWebFrameTest, FindOnDetachedFrame) { +TEST_F(WebFrameTest, FindOnDetachedFrame) { RegisterMockedHttpURLLoad("find_in_page.html"); RegisterMockedHttpURLLoad("find_in_page_frame.html"); @@ -5272,7 +5237,7 @@ EXPECT_TRUE(client.FindResultsAreReady()); } -TEST_P(ParameterizedWebFrameTest, FindDetachFrameBeforeScopeStrings) { +TEST_F(WebFrameTest, FindDetachFrameBeforeScopeStrings) { RegisterMockedHttpURLLoad("find_in_page.html"); RegisterMockedHttpURLLoad("find_in_page_frame.html"); @@ -5312,7 +5277,7 @@ EXPECT_TRUE(client.FindResultsAreReady()); } -TEST_P(ParameterizedWebFrameTest, FindDetachFrameWhileScopingStrings) { +TEST_F(WebFrameTest, FindDetachFrameWhileScopingStrings) { RegisterMockedHttpURLLoad("find_in_page.html"); RegisterMockedHttpURLLoad("find_in_page_frame.html"); @@ -5353,7 +5318,7 @@ EXPECT_TRUE(client.FindResultsAreReady()); } -TEST_P(ParameterizedWebFrameTest, ResetMatchCount) { +TEST_F(WebFrameTest, ResetMatchCount) { RegisterMockedHttpURLLoad("find_in_generated_frame.html"); FindUpdateWebFrameClient client; @@ -5384,7 +5349,7 @@ main_frame->EnsureTextFinder().ResetMatchCount(); } -TEST_P(ParameterizedWebFrameTest, SetTickmarks) { +TEST_F(WebFrameTest, SetTickmarks) { RegisterMockedHttpURLLoad("find.html"); FindUpdateWebFrameClient client; @@ -5437,7 +5402,7 @@ EXPECT_EQ(original_tickmarks, original_tickmarks_after_reset); } -TEST_P(ParameterizedWebFrameTest, FindInPageJavaScriptUpdatesDOM) { +TEST_F(WebFrameTest, FindInPageJavaScriptUpdatesDOM) { RegisterMockedHttpURLLoad("find.html"); FindUpdateWebFrameClient client; @@ -5505,7 +5470,7 @@ }; double FakeTimerSetter::time_elapsed_ = 0.; -TEST_P(ParameterizedWebFrameTest, FindInPageJavaScriptUpdatesDOMProperOrdinal) { +TEST_F(WebFrameTest, FindInPageJavaScriptUpdatesDOMProperOrdinal) { FakeTimerSetter fake_timer; const WebString search_pattern = WebString::FromUTF8("abc"); @@ -5569,8 +5534,7 @@ EXPECT_EQ(3, client.ActiveIndex()); } -TEST_P(ParameterizedWebFrameTest, - FindInPageStopFindActionKeepSelectionInAnotherDocument) { +TEST_F(WebFrameTest, FindInPageStopFindActionKeepSelectionInAnotherDocument) { RegisterMockedHttpURLLoad("find.html"); RegisterMockedHttpURLLoad("hello_world.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -5613,7 +5577,7 @@ return frame->ToWebLocalFrame()->SelectionAsText().Utf8(); } -TEST_P(ParameterizedWebFrameTest, SelectRange) { +TEST_F(WebFrameTest, SelectRange) { WebLocalFrame* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -5653,7 +5617,7 @@ selection_string == "Some offscreen test text for testing"); } -TEST_P(ParameterizedWebFrameTest, SelectRangeDefaultHandleVisibility) { +TEST_F(WebFrameTest, SelectRangeDefaultHandleVisibility) { RegisterMockedHttpURLLoad("select_range_basic.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -5669,7 +5633,7 @@ << "By default selection handles should not be visible"; } -TEST_P(ParameterizedWebFrameTest, SelectRangeHideHandle) { +TEST_F(WebFrameTest, SelectRangeHideHandle) { RegisterMockedHttpURLLoad("select_range_basic.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -5684,7 +5648,7 @@ << "Selection handle should not be visible with kHideSelectionHandle"; } -TEST_P(ParameterizedWebFrameTest, SelectRangeShowHandle) { +TEST_F(WebFrameTest, SelectRangeShowHandle) { RegisterMockedHttpURLLoad("select_range_basic.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -5699,7 +5663,7 @@ << "Selection handle should be visible with kShowSelectionHandle"; } -TEST_P(ParameterizedWebFrameTest, SelectRangePreserveHandleVisibility) { +TEST_F(WebFrameTest, SelectRangePreserveHandleVisibility) { RegisterMockedHttpURLLoad("select_range_basic.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -5724,7 +5688,7 @@ << "kPreserveHandleVisibility should keep handles visible"; } -TEST_P(ParameterizedWebFrameTest, SelectRangeInIframe) { +TEST_F(WebFrameTest, SelectRangeInIframe) { WebFrame* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -5750,7 +5714,7 @@ selection_string == "Some test text for testing"); } -TEST_P(ParameterizedWebFrameTest, SelectRangeDivContentEditable) { +TEST_F(WebFrameTest, SelectRangeDivContentEditable) { WebLocalFrame* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -5790,7 +5754,7 @@ // positionForPoint returns the wrong values for contenteditable spans. See // http://crbug.com/238334. -TEST_P(ParameterizedWebFrameTest, DISABLED_SelectRangeSpanContentEditable) { +TEST_F(WebFrameTest, DISABLED_SelectRangeSpanContentEditable) { WebLocalFrame* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -5830,7 +5794,7 @@ SelectionAsString(frame)); } -TEST_P(ParameterizedWebFrameTest, SelectRangeCanMoveSelectionStart) { +TEST_F(WebFrameTest, SelectRangeCanMoveSelectionStart) { RegisterMockedHttpURLLoad("text_selection.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "text_selection.html", @@ -5886,7 +5850,7 @@ // EXPECT_EQ("[ Editable 1. Editable 2.", selectionAsString(frame)); } -TEST_P(ParameterizedWebFrameTest, SelectRangeCanMoveSelectionEnd) { +TEST_F(WebFrameTest, SelectRangeCanMoveSelectionEnd) { RegisterMockedHttpURLLoad("text_selection.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "text_selection.html", @@ -5942,7 +5906,7 @@ // EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame)); } -TEST_P(ParameterizedWebFrameTest, MoveRangeSelectionExtent) { +TEST_F(WebFrameTest, MoveRangeSelectionExtent) { WebLocalFrameImpl* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -5979,7 +5943,7 @@ EXPECT_EQ("", SelectionAsString(frame)); } -TEST_P(ParameterizedWebFrameTest, MoveRangeSelectionExtentCannotCollapse) { +TEST_F(WebFrameTest, MoveRangeSelectionExtentCannotCollapse) { WebLocalFrameImpl* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -6005,7 +5969,7 @@ EXPECT_EQ("This text is initially selected.", SelectionAsString(frame)); } -TEST_P(ParameterizedWebFrameTest, MoveRangeSelectionExtentScollsInputField) { +TEST_F(WebFrameTest, MoveRangeSelectionExtentScollsInputField) { WebLocalFrameImpl* frame; WebRect start_web_rect; WebRect end_web_rect; @@ -6044,7 +6008,7 @@ // positionForPoint returns the wrong values for contenteditable spans. See // http://crbug.com/238334. -TEST_P(ParameterizedWebFrameTest, DISABLED_PositionForPointTest) { +TEST_F(WebFrameTest, DISABLED_PositionForPointTest) { RegisterMockedHttpURLLoad("select_range_span_editable.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "select_range_span_editable.html", @@ -6072,8 +6036,7 @@ } #if !defined(OS_MACOSX) && !defined(OS_LINUX) -TEST_P(ParameterizedWebFrameTest, - SelectRangeStaysHorizontallyAlignedWhenMoved) { +TEST_F(WebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved) { RegisterMockedHttpURLLoad("move_caret.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -6118,7 +6081,7 @@ EXPECT_EQ(end_rect, initial_end_rect); } -TEST_P(ParameterizedWebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) { +TEST_F(WebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) { WebLocalFrameImpl* frame; RegisterMockedHttpURLLoad("move_caret.html"); @@ -6201,7 +6164,7 @@ }; class CompositedSelectionBoundsTest - : public ParameterizedWebFrameTest, + : public WebFrameTest, private ScopedCompositedSelectionUpdateForTest { protected: CompositedSelectionBoundsTest() @@ -6422,50 +6385,48 @@ FrameTestHelpers::WebViewHelper web_view_helper_; }; -INSTANTIATE_TEST_CASE_P(All, CompositedSelectionBoundsTest, testing::Bool()); - -TEST_P(CompositedSelectionBoundsTest, None) { +TEST_F(CompositedSelectionBoundsTest, None) { RunTestWithNoSelection("composited_selection_bounds_none.html"); } -TEST_P(CompositedSelectionBoundsTest, NoneReadonlyCaret) { +TEST_F(CompositedSelectionBoundsTest, NoneReadonlyCaret) { RunTestWithNoSelection( "composited_selection_bounds_none_readonly_caret.html"); } -TEST_P(CompositedSelectionBoundsTest, DetachedFrame) { +TEST_F(CompositedSelectionBoundsTest, DetachedFrame) { RunTestWithNoSelection("composited_selection_bounds_detached_frame.html"); } -TEST_P(CompositedSelectionBoundsTest, Basic) { +TEST_F(CompositedSelectionBoundsTest, Basic) { RunTest("composited_selection_bounds_basic.html"); } -TEST_P(CompositedSelectionBoundsTest, Transformed) { +TEST_F(CompositedSelectionBoundsTest, Transformed) { RunTest("composited_selection_bounds_transformed.html"); } -TEST_P(CompositedSelectionBoundsTest, VerticalRightToLeft) { +TEST_F(CompositedSelectionBoundsTest, VerticalRightToLeft) { RunTest("composited_selection_bounds_vertical_rl.html"); } -TEST_P(CompositedSelectionBoundsTest, VerticalLeftToRight) { +TEST_F(CompositedSelectionBoundsTest, VerticalLeftToRight) { RunTest("composited_selection_bounds_vertical_lr.html"); } -TEST_P(CompositedSelectionBoundsTest, SplitLayer) { +TEST_F(CompositedSelectionBoundsTest, SplitLayer) { RunTest("composited_selection_bounds_split_layer.html"); } -TEST_P(CompositedSelectionBoundsTest, Iframe) { +TEST_F(CompositedSelectionBoundsTest, Iframe) { RunTestWithMultipleFiles("composited_selection_bounds_iframe.html", "composited_selection_bounds_basic.html", nullptr); } -TEST_P(CompositedSelectionBoundsTest, Editable) { +TEST_F(CompositedSelectionBoundsTest, Editable) { RunTest("composited_selection_bounds_editable.html"); } -TEST_P(CompositedSelectionBoundsTest, EditableDiv) { +TEST_F(CompositedSelectionBoundsTest, EditableDiv) { RunTest("composited_selection_bounds_editable_div.html"); } #if defined(OS_LINUX) #if !defined(OS_ANDROID) -TEST_P(CompositedSelectionBoundsTest, Input) { +TEST_F(CompositedSelectionBoundsTest, Input) { RunTest("composited_selection_bounds_input.html"); } -TEST_P(CompositedSelectionBoundsTest, InputScrolled) { +TEST_F(CompositedSelectionBoundsTest, InputScrolled) { RunTest("composited_selection_bounds_input_scrolled.html"); } #endif @@ -6501,7 +6462,7 @@ return WebCoalescedInputEvent(event); } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopup) { +TEST_F(WebFrameTest, DisambiguationPopup) { const std::string html_file = "disambiguation_popup.html"; RegisterMockedHttpURLLoad(html_file); @@ -6561,7 +6522,7 @@ } } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopupNoContainer) { +TEST_F(WebFrameTest, DisambiguationPopupNoContainer) { RegisterMockedHttpURLLoad("disambiguation_popup_no_container.html"); DisambiguationPopupTestWebViewClient client; @@ -6579,7 +6540,7 @@ EXPECT_FALSE(client.Triggered()); } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite) { +TEST_F(WebFrameTest, DisambiguationPopupMobileSite) { const std::string html_file = "disambiguation_popup_mobile_site.html"; RegisterMockedHttpURLLoad(html_file); @@ -6617,7 +6578,7 @@ } } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite) { +TEST_F(WebFrameTest, DisambiguationPopupViewportSite) { const std::string html_file = "disambiguation_popup_viewport_site.html"; RegisterMockedHttpURLLoad(html_file); @@ -6655,7 +6616,7 @@ } } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopupVisualViewport) { +TEST_F(WebFrameTest, DisambiguationPopupVisualViewport) { const std::string html_file = "disambiguation_popup_200_by_800.html"; RegisterMockedHttpURLLoad(html_file); @@ -6709,7 +6670,7 @@ EXPECT_FALSE(client.Triggered()); } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopupBlacklist) { +TEST_F(WebFrameTest, DisambiguationPopupBlacklist) { const unsigned kViewportWidth = 500; const unsigned kViewportHeight = 1000; const unsigned kDivHeight = 100; @@ -6746,7 +6707,7 @@ EXPECT_FALSE(client.Triggered()); } -TEST_P(ParameterizedWebFrameTest, DisambiguationPopupPageScale) { +TEST_F(WebFrameTest, DisambiguationPopupPageScale) { RegisterMockedHttpURLLoad("disambiguation_popup_page_scale.html"); DisambiguationPopupTestWebViewClient client; @@ -6809,7 +6770,7 @@ bool commit_called_; }; -TEST_P(ParameterizedWebFrameTest, ReplaceNavigationAfterHistoryNavigation) { +TEST_F(WebFrameTest, ReplaceNavigationAfterHistoryNavigation) { TestSubstituteDataWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -6863,7 +6824,7 @@ bool did_load_; }; -TEST_P(ParameterizedWebFrameTest, HTMLDocument) { +TEST_F(WebFrameTest, HTMLDocument) { RegisterMockedHttpURLLoad("clipped-body.html"); TestWillInsertBodyWebFrameClient web_frame_client; @@ -6875,7 +6836,7 @@ EXPECT_EQ(1, web_frame_client.num_bodies_); } -TEST_P(ParameterizedWebFrameTest, EmptyDocument) { +TEST_F(WebFrameTest, EmptyDocument) { RegisterMockedHttpURLLoad("frameserializer/svg/green_rectangle.svg"); TestWillInsertBodyWebFrameClient web_frame_client; @@ -6887,8 +6848,7 @@ EXPECT_EQ(1, web_frame_client.num_bodies_); } -TEST_P(ParameterizedWebFrameTest, - MoveCaretSelectionTowardsWindowPointWithNoSelection) { +TEST_F(WebFrameTest, MoveCaretSelectionTowardsWindowPointWithNoSelection) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); WebFrame* frame = web_view_helper.GetWebView()->MainFrame(); @@ -6922,7 +6882,7 @@ int number_of_times_checked_; }; -TEST_P(ParameterizedWebFrameTest, ReplaceMisspelledRange) { +TEST_F(WebFrameTest, ReplaceMisspelledRange) { RegisterMockedHttpURLLoad("spell.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "spell.html", &web_view_helper); @@ -6968,7 +6928,7 @@ .Utf8()); } -TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkers) { +TEST_F(WebFrameTest, RemoveSpellingMarkers) { RegisterMockedHttpURLLoad("spell.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "spell.html", &web_view_helper); @@ -7018,7 +6978,7 @@ offsets->Assign(result); } -TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkersUnderWords) { +TEST_F(WebFrameTest, RemoveSpellingMarkersUnderWords) { RegisterMockedHttpURLLoad("spell.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "spell.html", &web_view_helper); @@ -7098,7 +7058,7 @@ WebTextCheckingCompletion* completion_; }; -TEST_P(ParameterizedWebFrameTest, SlowSpellcheckMarkerPosition) { +TEST_F(WebFrameTest, SlowSpellcheckMarkerPosition) { RegisterMockedHttpURLLoad("spell.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "spell.html", &web_view_helper); @@ -7132,7 +7092,7 @@ EXPECT_EQ(0U, offsets.size()); } -TEST_P(ParameterizedWebFrameTest, SpellcheckResultErasesMarkers) { +TEST_F(WebFrameTest, SpellcheckResultErasesMarkers) { RegisterMockedHttpURLLoad("spell.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "spell.html", &web_view_helper); @@ -7168,7 +7128,7 @@ EXPECT_EQ(0U, document->Markers().Markers().size()); } -TEST_P(ParameterizedWebFrameTest, SpellcheckResultsSavedInDocument) { +TEST_F(WebFrameTest, SpellcheckResultsSavedInDocument) { RegisterMockedHttpURLLoad("spell.html"); FrameTestHelpers::WebViewHelper web_view_helper; InitializeTextSelectionWebView(base_url_ + "spell.html", &web_view_helper); @@ -7234,7 +7194,7 @@ int did_access_initial_document_ = 0; }; -TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentBody) { +TEST_F(WebFrameTest, DidAccessInitialDocumentBody) { TestAccessInitialDocumentWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(&web_frame_client); @@ -7257,7 +7217,7 @@ web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentOpen) { +TEST_F(WebFrameTest, DidAccessInitialDocumentOpen) { TestAccessInitialDocumentWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(&web_frame_client); @@ -7281,7 +7241,7 @@ web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentNavigator) { +TEST_F(WebFrameTest, DidAccessInitialDocumentNavigator) { TestAccessInitialDocumentWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(&web_frame_client); @@ -7304,7 +7264,7 @@ web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentViaJavascriptUrl) { +TEST_F(WebFrameTest, DidAccessInitialDocumentViaJavascriptUrl) { TestAccessInitialDocumentWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(&web_frame_client); @@ -7320,8 +7280,7 @@ web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, - DidAccessInitialDocumentBodyBeforeModalDialog) { +TEST_F(WebFrameTest, DidAccessInitialDocumentBodyBeforeModalDialog) { TestAccessInitialDocumentWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(&web_frame_client); @@ -7353,7 +7312,7 @@ web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, DidWriteToInitialDocumentBeforeModalDialog) { +TEST_F(WebFrameTest, DidWriteToInitialDocumentBeforeModalDialog) { TestAccessInitialDocumentWebFrameClient web_frame_client; FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(&web_frame_client); @@ -7413,7 +7372,7 @@ bool did_scroll_frame_; }; -TEST_P(ParameterizedWebFrameTest, CompositorScrollIsUserScrollLongPage) { +TEST_F(WebFrameTest, CompositorScrollIsUserScrollLongPage) { RegisterMockedHttpURLLoad("long_scroll.html"); TestScrolledFrameClient client; @@ -7485,7 +7444,7 @@ client.Reset(); } -TEST_P(ParameterizedWebFrameTest, SiteForCookiesForRedirect) { +TEST_F(WebFrameTest, SiteForCookiesForRedirect) { String file_path = test::CoreTestDataPath("first_party.html"); WebURL test_url(ToKURL("http://internal.test/first_party_redirect.html")); @@ -7530,7 +7489,7 @@ } }; -TEST_P(ParameterizedWebFrameTest, SimulateFragmentAnchorMiddleClick) { +TEST_F(WebFrameTest, SimulateFragmentAnchorMiddleClick) { RegisterMockedHttpURLLoad("fragment_middle_click.html"); TestNavigationPolicyWebFrameClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -7593,7 +7552,7 @@ int decide_policy_call_count_; }; -TEST_P(ParameterizedWebFrameTest, ModifiedClickNewWindow) { +TEST_F(WebFrameTest, ModifiedClickNewWindow) { RegisterMockedHttpURLLoad("ctrl_click.html"); RegisterMockedHttpURLLoad("hello_world.html"); TestNewWindowWebViewClient web_view_client; @@ -7630,7 +7589,7 @@ EXPECT_EQ(2, web_frame_client.DecidePolicyCallCount()); } -TEST_P(ParameterizedWebFrameTest, BackToReload) { +TEST_F(WebFrameTest, BackToReload) { RegisterMockedHttpURLLoad("fragment_middle_click.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "fragment_middle_click.html"); @@ -7657,7 +7616,7 @@ frame->GetDocumentLoader()->GetRequest().GetCacheMode()); } -TEST_P(ParameterizedWebFrameTest, BackDuringChildFrameReload) { +TEST_F(WebFrameTest, BackDuringChildFrameReload) { RegisterMockedHttpURLLoad("page_with_blank_iframe.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "page_with_blank_iframe.html"); @@ -7691,7 +7650,7 @@ ->UrlString())); } -TEST_P(ParameterizedWebFrameTest, ReloadPost) { +TEST_F(WebFrameTest, ReloadPost) { RegisterMockedHttpURLLoad("reload_post.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "reload_post.html"); @@ -7713,7 +7672,7 @@ frame->GetDocumentLoader()->GetNavigationType()); } -TEST_P(ParameterizedWebFrameTest, LoadHistoryItemReload) { +TEST_F(WebFrameTest, LoadHistoryItemReload) { RegisterMockedHttpURLLoad("fragment_middle_click.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "fragment_middle_click.html"); @@ -7779,7 +7738,7 @@ int will_send_request_call_count_; }; -TEST_P(ParameterizedWebFrameTest, ReloadIframe) { +TEST_F(WebFrameTest, ReloadIframe) { RegisterMockedHttpURLLoad("iframe_reload.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); @@ -7841,7 +7800,7 @@ bool frame_load_type_reload_seen_; }; -TEST_P(ParameterizedWebFrameTest, NavigateToSame) { +TEST_F(WebFrameTest, NavigateToSame) { RegisterMockedHttpURLLoad("navigate_to_same.html"); TestSameDocumentWebFrameClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -7884,8 +7843,7 @@ int num_of_image_requests_; }; -TEST_P(ParameterizedWebFrameTest, - NavigateToSameNoConditionalRequestForSubresource) { +TEST_F(WebFrameTest, NavigateToSameNoConditionalRequestForSubresource) { RegisterMockedHttpURLLoad("foo_with_image.html"); RegisterMockedHttpURLLoad("white-1x1.png"); TestSameDocumentWithImageWebFrameClient client; @@ -7903,7 +7861,7 @@ EXPECT_EQ(client.NumOfImageRequests(), 4); } -TEST_P(ParameterizedWebFrameTest, WebNodeImageContents) { +TEST_F(WebFrameTest, WebNodeImageContents) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); WebLocalFrame* frame = web_view_helper.LocalMainFrame(); @@ -7929,7 +7887,7 @@ EXPECT_EQ(bitmap.getColor(0, 0), SK_ColorBLUE); } -TEST_P(ParameterizedWebFrameTest, WebNodeImageContentsWithOrientation) { +TEST_F(WebFrameTest, WebNodeImageContentsWithOrientation) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); WebLocalFrame* frame = web_view_helper.LocalMainFrame(); @@ -8018,7 +7976,7 @@ int different_document_start_count_; }; -TEST_P(ParameterizedWebFrameTest, PushStateStartsAndStops) { +TEST_F(WebFrameTest, PushStateStartsAndStops) { RegisterMockedHttpURLLoad("push_state.html"); TestStartStopCallbackWebFrameClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -8049,7 +8007,7 @@ WebHistoryCommitType last_commit_type_; }; -TEST_P(ParameterizedWebFrameTest, SameDocumentHistoryNavigationCommitType) { +TEST_F(WebFrameTest, SameDocumentHistoryNavigationCommitType) { RegisterMockedHttpURLLoad("push_state.html"); TestDidNavigateCommitTypeWebFrameClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -8113,7 +8071,7 @@ // Tests that the first navigation in an initially blank subframe will result in // a history entry being replaced and not a new one being added. -TEST_P(ParameterizedWebFrameTest, FirstBlankSubframeNavigation) { +TEST_F(WebFrameTest, FirstBlankSubframeNavigation) { RegisterMockedHttpURLLoad("history.html"); RegisterMockedHttpURLLoad("find.html"); @@ -8142,7 +8100,7 @@ // Tests that a navigation in a frame with a non-blank initial URL will create // a new history item, unlike the case above. -TEST_P(ParameterizedWebFrameTest, FirstNonBlankSubframeNavigation) { +TEST_F(WebFrameTest, FirstNonBlankSubframeNavigation) { RegisterMockedHttpURLLoad("history.html"); RegisterMockedHttpURLLoad("find.html"); @@ -8169,7 +8127,7 @@ } // Test verifies that layout will change a layer's scrollable attibutes -TEST_P(ParameterizedWebFrameTest, overflowHiddenRewrite) { +TEST_F(WebFrameTest, overflowHiddenRewrite) { RegisterMockedHttpURLLoad("non-scrollable.html"); std::unique_ptr<FakeCompositingWebViewClient> fake_compositing_web_view_client = @@ -8205,7 +8163,7 @@ // Test that currentHistoryItem reflects the current page, not the provisional // load. -TEST_P(ParameterizedWebFrameTest, CurrentHistoryItem) { +TEST_F(WebFrameTest, CurrentHistoryItem) { RegisterMockedHttpURLLoad("fixed_layout.html"); std::string url = base_url_ + "fixed_layout.html"; @@ -8253,7 +8211,7 @@ }; // Test that we don't crash if WebFrameClient::createChildFrame() fails. -TEST_P(ParameterizedWebFrameTest, CreateChildFrameFailure) { +TEST_F(WebFrameTest, CreateChildFrameFailure) { RegisterMockedHttpURLLoad("create_child_frame_fail.html"); FailCreateChildFrame client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -8263,7 +8221,7 @@ EXPECT_EQ(1, client.CallCount()); } -TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) { +TEST_F(WebFrameTest, fixedPositionInFixedViewport) { RegisterMockedHttpURLLoad("fixed-position-in-fixed-viewport.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad( @@ -8292,7 +8250,7 @@ EXPECT_EQ(500, left_right_fixed->OffsetWidth()); } -TEST_P(ParameterizedWebFrameTest, FrameViewMoveWithSetFrameRect) { +TEST_F(WebFrameTest, FrameViewMoveWithSetFrameRect) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); web_view_helper.Resize(WebSize(200, 200)); @@ -8304,7 +8262,7 @@ EXPECT_EQ(IntRect(100, 100, 200, 200), frame_view->FrameRect()); } -TEST_P(ParameterizedWebFrameTest, FrameViewScrollAccountsForBrowserControls) { +TEST_F(WebFrameTest, FrameViewScrollAccountsForBrowserControls) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("long_scroll.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8385,7 +8343,7 @@ frame_view->LayoutViewportScrollableArea()->MaximumScrollOffset()); } -TEST_P(ParameterizedWebFrameTest, MaximumScrollPositionCanBeNegative) { +TEST_F(WebFrameTest, MaximumScrollPositionCanBeNegative) { RegisterMockedHttpURLLoad("rtl-overview-mode.html"); FixedLayoutTestWebViewClient client; @@ -8410,7 +8368,7 @@ EXPECT_LT(layout_viewport->MaximumScrollOffset().Width(), 0); } -TEST_P(ParameterizedWebFrameTest, FullscreenLayerSize) { +TEST_F(WebFrameTest, FullscreenLayerSize) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("fullscreen_div.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8451,7 +8409,7 @@ EXPECT_EQ(viewport_width, fullscreen_layout_object->LogicalHeight().ToInt()); } -TEST_P(ParameterizedWebFrameTest, FullscreenLayerNonScrollable) { +TEST_F(WebFrameTest, FullscreenLayerNonScrollable) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("fullscreen_div.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8510,7 +8468,7 @@ visual_viewport_scroll_layer->PlatformLayer()->UserScrollableVertical()); } -TEST_P(ParameterizedWebFrameTest, FullscreenMainFrame) { +TEST_F(WebFrameTest, FullscreenMainFrame) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("fullscreen_div.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8564,7 +8522,7 @@ ASSERT_TRUE(web_scroll_layer->UserScrollableVertical()); } -TEST_P(ParameterizedWebFrameTest, FullscreenSubframe) { +TEST_F(WebFrameTest, FullscreenSubframe) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("fullscreen_iframe.html"); RegisterMockedHttpURLLoad("fullscreen_div.html"); @@ -8608,7 +8566,7 @@ // Tests entering nested fullscreen and then exiting via the same code path // that's used when the browser process exits fullscreen. -TEST_P(ParameterizedWebFrameTest, FullscreenNestedExit) { +TEST_F(WebFrameTest, FullscreenNestedExit) { RegisterMockedHttpURLLoad("fullscreen_iframe.html"); RegisterMockedHttpURLLoad("fullscreen_div.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8655,7 +8613,7 @@ EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*iframe_doc)); } -TEST_P(ParameterizedWebFrameTest, FullscreenWithTinyViewport) { +TEST_F(WebFrameTest, FullscreenWithTinyViewport) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("viewport-tiny.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8700,7 +8658,7 @@ EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, FullscreenResizeWithTinyViewport) { +TEST_F(WebFrameTest, FullscreenResizeWithTinyViewport) { FakeCompositingWebViewClient client; RegisterMockedHttpURLLoad("viewport-tiny.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -8751,7 +8709,7 @@ EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); } -TEST_P(ParameterizedWebFrameTest, FullscreenRestoreScaleFactorUponExiting) { +TEST_F(WebFrameTest, FullscreenRestoreScaleFactorUponExiting) { // The purpose of this test is to more precisely simulate the sequence of // resize and switching fullscreen state operations on WebView, with the // interference from Android status bars like a real device does. @@ -8825,7 +8783,7 @@ // Tests that leaving fullscreen by navigating to a new page resets the // fullscreen page scale constraints. -TEST_P(ParameterizedWebFrameTest, ClearFullscreenConstraintsOnNavigation) { +TEST_F(WebFrameTest, ClearFullscreenConstraintsOnNavigation) { RegisterMockedHttpURLLoad("viewport-tiny.html"); FrameTestHelpers::WebViewHelper web_view_helper; int viewport_width = 100; @@ -8908,7 +8866,7 @@ } // namespace -TEST_P(ParameterizedWebFrameTest, OverlayFullscreenVideo) { +TEST_F(WebFrameTest, OverlayFullscreenVideo) { ScopedForceOverlayFullscreenVideoForTest force_overlay_fullscreen_video(true); RegisterMockedHttpURLLoad("fullscreen_video.html"); TestFullscreenWebViewClient web_view_client; @@ -8940,7 +8898,7 @@ EXPECT_FALSE(layer_tree_view.has_transparent_background); } -TEST_P(ParameterizedWebFrameTest, LayoutBlockPercentHeightDescendants) { +TEST_F(WebFrameTest, LayoutBlockPercentHeightDescendants) { RegisterMockedHttpURLLoad("percent-height-descendants.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + @@ -8978,7 +8936,7 @@ EXPECT_FALSE(anonymous_block->HasPercentHeightDescendants()); } -TEST_P(ParameterizedWebFrameTest, HasVisibleContentOnVisibleFrames) { +TEST_F(WebFrameTest, HasVisibleContentOnVisibleFrames) { RegisterMockedHttpURLLoad("visible_frames.html"); FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = @@ -8989,7 +8947,7 @@ } } -TEST_P(ParameterizedWebFrameTest, HasVisibleContentOnHiddenFrames) { +TEST_F(WebFrameTest, HasVisibleContentOnHiddenFrames) { RegisterMockedHttpURLLoad("hidden_frames.html"); FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = @@ -9015,7 +8973,7 @@ int manifest_change_count_; }; -TEST_P(ParameterizedWebFrameTest, NotifyManifestChange) { +TEST_F(WebFrameTest, NotifyManifestChange) { RegisterMockedHttpURLLoad("link-manifest-change.html"); ManifestChangeWebFrameClient web_frame_client; @@ -9033,7 +8991,7 @@ return RawResource::FetchSynchronously(fetch_parameters, document->Fetcher()); } -TEST_P(ParameterizedWebFrameTest, ManifestFetch) { +TEST_F(WebFrameTest, ManifestFetch) { RegisterMockedHttpURLLoad("foo.html"); RegisterMockedHttpURLLoad("link-manifest-fetch.json"); @@ -9048,7 +9006,7 @@ EXPECT_TRUE(resource->IsLoaded()); } -TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) { +TEST_F(WebFrameTest, ManifestCSPFetchAllow) { RegisterMockedURLLoadFromBase(not_base_url_, "link-manifest-fetch.json"); RegisterMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); @@ -9063,7 +9021,7 @@ EXPECT_TRUE(resource->IsLoaded()); } -TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) { +TEST_F(WebFrameTest, ManifestCSPFetchSelf) { RegisterMockedURLLoadFromBase(not_base_url_, "link-manifest-fetch.json"); RegisterMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); @@ -9081,7 +9039,7 @@ EXPECT_TRUE(resource->GetResourceError().IsAccessCheck()); } -TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) { +TEST_F(WebFrameTest, ManifestCSPFetchSelfReportOnly) { RegisterMockedURLLoadFromBase(not_base_url_, "link-manifest-fetch.json"); RegisterMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* report only */ true); @@ -9097,7 +9055,7 @@ EXPECT_TRUE(resource->IsLoaded()); } -TEST_P(ParameterizedWebFrameTest, ReloadBypassingCache) { +TEST_F(WebFrameTest, ReloadBypassingCache) { // Check that a reload bypassing cache on a frame will result in the cache // policy of the request being set to ReloadBypassingCache. RegisterMockedHttpURLLoad("foo.html"); @@ -9125,7 +9083,7 @@ bitmap.computeByteSize())); } -TEST_P(ParameterizedWebFrameTest, NodeImageTestCSSTransformDescendant) { +TEST_F(WebFrameTest, NodeImageTestCSSTransformDescendant) { FrameTestHelpers::WebViewHelper web_view_helper; std::unique_ptr<DragImage> drag_image = NodeImageTestSetup( &web_view_helper, std::string("case-css-3dtransform-descendant")); @@ -9134,7 +9092,7 @@ NodeImageTestValidation(IntSize(40, 40), drag_image.get()); } -TEST_P(ParameterizedWebFrameTest, NodeImageTestCSSTransform) { +TEST_F(WebFrameTest, NodeImageTestCSSTransform) { FrameTestHelpers::WebViewHelper web_view_helper; std::unique_ptr<DragImage> drag_image = NodeImageTestSetup(&web_view_helper, std::string("case-css-transform")); @@ -9143,7 +9101,7 @@ NodeImageTestValidation(IntSize(40, 40), drag_image.get()); } -TEST_P(ParameterizedWebFrameTest, NodeImageTestCSS3DTransform) { +TEST_F(WebFrameTest, NodeImageTestCSS3DTransform) { FrameTestHelpers::WebViewHelper web_view_helper; std::unique_ptr<DragImage> drag_image = NodeImageTestSetup(&web_view_helper, std::string("case-css-3dtransform")); @@ -9152,7 +9110,7 @@ NodeImageTestValidation(IntSize(40, 40), drag_image.get()); } -TEST_P(ParameterizedWebFrameTest, NodeImageTestInlineBlock) { +TEST_F(WebFrameTest, NodeImageTestInlineBlock) { FrameTestHelpers::WebViewHelper web_view_helper; std::unique_ptr<DragImage> drag_image = NodeImageTestSetup(&web_view_helper, std::string("case-inlineblock")); @@ -9161,7 +9119,7 @@ NodeImageTestValidation(IntSize(40, 40), drag_image.get()); } -TEST_P(ParameterizedWebFrameTest, NodeImageTestFloatLeft) { +TEST_F(WebFrameTest, NodeImageTestFloatLeft) { FrameTestHelpers::WebViewHelper web_view_helper; std::unique_ptr<DragImage> drag_image = NodeImageTestSetup( &web_view_helper, std::string("case-float-left-overflow-hidden")); @@ -9172,9 +9130,9 @@ // Crashes on Android: http://crbug.com/403804 #if defined(OS_ANDROID) -TEST_P(ParameterizedWebFrameTest, DISABLED_PrintingBasic) +TEST_F(WebFrameTest, DISABLED_PrintingBasic) #else -TEST_P(ParameterizedWebFrameTest, PrintingBasic) +TEST_F(WebFrameTest, PrintingBasic) #endif { FrameTestHelpers::WebViewHelper web_view_helper; @@ -9208,7 +9166,7 @@ bool did_notify_; }; -TEST_P(ParameterizedWebFrameTest, ThemeColor) { +TEST_F(WebFrameTest, ThemeColor) { RegisterMockedHttpURLLoad("theme_color_test.html"); ThemeColorTestWebFrameClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -9242,7 +9200,7 @@ // Make sure that an embedder-triggered detach with a remote frame parent // doesn't leave behind dangling pointers. -TEST_P(ParameterizedWebFrameTest, EmbedderTriggeredDetachWithRemoteMainFrame) { +TEST_F(WebFrameTest, EmbedderTriggeredDetachWithRemoteMainFrame) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); WebLocalFrame* child_frame = @@ -9254,7 +9212,7 @@ child_core_frame.Clear(); } -class WebFrameSwapTest : public ParameterizedWebFrameTest { +class WebFrameSwapTest : public WebFrameTest { protected: WebFrameSwapTest() { RegisterMockedHttpURLLoad("frame-a-b-c.html"); @@ -9274,9 +9232,7 @@ FrameTestHelpers::WebViewHelper web_view_helper_; }; -INSTANTIATE_TEST_CASE_P(All, WebFrameSwapTest, testing::Bool()); - -TEST_P(WebFrameSwapTest, SwapMainFrame) { +TEST_F(WebFrameSwapTest, SwapMainFrame) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); MainFrame()->Swap(remote_frame); @@ -9293,7 +9249,7 @@ EXPECT_EQ("hello", content); } -TEST_P(WebFrameSwapTest, ValidateSizeOnRemoteToLocalMainFrameSwap) { +TEST_F(WebFrameSwapTest, ValidateSizeOnRemoteToLocalMainFrameSwap) { WebSize size(111, 222); WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); @@ -9318,7 +9274,7 @@ // Verify that size changes to browser controls while the main frame is remote // are preserved when the main frame swaps to a local frame. See // https://crbug.com/769321. -TEST_P(WebFrameSwapTest, +TEST_F(WebFrameSwapTest, ValidateBrowserControlsSizeOnRemoteToLocalMainFrameSwap) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); MainFrame()->Swap(remote_frame); @@ -9371,7 +9327,7 @@ } // namespace -TEST_P(ParameterizedWebFrameTest, SwapMainFrameWhileLoading) { +TEST_F(WebFrameTest, SwapMainFrameWhileLoading) { SwapMainFrameWhenTitleChangesWebFrameClient frame_client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -9398,7 +9354,7 @@ EXPECT_EQ(new_child->NextSibling(), parent->last_child_->previous_sibling_); } -TEST_P(WebFrameSwapTest, SwapFirstChild) { +TEST_F(WebFrameSwapTest, SwapFirstChild) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); SwapAndVerifyFirstChildConsistency("local->remote", MainFrame(), remote_frame); @@ -9433,7 +9389,7 @@ EXPECT_EQ(new_child->NextSibling(), parent->last_child_); } -TEST_P(WebFrameSwapTest, SwapMiddleChild) { +TEST_F(WebFrameSwapTest, SwapMiddleChild) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); SwapAndVerifyMiddleChildConsistency("local->remote", MainFrame(), remote_frame); @@ -9465,7 +9421,7 @@ EXPECT_EQ(new_child->previous_sibling_, parent->FirstChild()->NextSibling()); } -TEST_P(WebFrameSwapTest, SwapLastChild) { +TEST_F(WebFrameSwapTest, SwapLastChild) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); SwapAndVerifyLastChildConsistency("local->remote", MainFrame(), remote_frame); @@ -9483,7 +9439,7 @@ EXPECT_EQ("\n\na\n\nb\n\n\na\n\nhello", content); } -TEST_P(WebFrameSwapTest, DetachProvisionalFrame) { +TEST_F(WebFrameSwapTest, DetachProvisionalFrame) { WebRemoteFrameImpl* remote_frame = FrameTestHelpers::CreateRemote(); SwapAndVerifyMiddleChildConsistency("local->remote", MainFrame(), remote_frame); @@ -9520,7 +9476,7 @@ EXPECT_FALSE(new_frame->last_child_); } -TEST_P(WebFrameSwapTest, EventsOnDisconnectedSubDocumentSkipped) { +TEST_F(WebFrameSwapTest, EventsOnDisconnectedSubDocumentSkipped) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); WebFrame* target_frame = MainFrame()->FirstChild()->NextSibling(); EXPECT_TRUE(target_frame); @@ -9542,7 +9498,7 @@ main_document->View()->UpdateAllLifecyclePhases(); } -TEST_P(WebFrameSwapTest, EventsOnDisconnectedElementSkipped) { +TEST_F(WebFrameSwapTest, EventsOnDisconnectedElementSkipped) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); WebFrame* target_frame = MainFrame()->FirstChild()->NextSibling(); EXPECT_TRUE(target_frame); @@ -9570,7 +9526,7 @@ main_document->View()->UpdateAllLifecyclePhases(); } -TEST_P(WebFrameSwapTest, SwapParentShouldDetachChildren) { +TEST_F(WebFrameSwapTest, SwapParentShouldDetachChildren) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); WebFrame* target_frame = MainFrame()->FirstChild()->NextSibling(); EXPECT_TRUE(target_frame); @@ -9596,7 +9552,7 @@ EXPECT_EQ("\n\na\n\nhello\n\nc", content); } -TEST_P(WebFrameSwapTest, SwapPreservesGlobalContext) { +TEST_F(WebFrameSwapTest, SwapPreservesGlobalContext) { v8::HandleScope scope(v8::Isolate::GetCurrent()); v8::Local<v8::Value> window_top = MainFrame()->ExecuteScriptAndReturnValue(WebScriptSource("window")); @@ -9633,7 +9589,7 @@ EXPECT_TRUE(window_top->StrictEquals(local_window_top)); } -TEST_P(WebFrameSwapTest, SetTimeoutAfterSwap) { +TEST_F(WebFrameSwapTest, SetTimeoutAfterSwap) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope scope(isolate); MainFrame()->ExecuteScript( @@ -9664,7 +9620,7 @@ } } -TEST_P(WebFrameSwapTest, SwapInitializesGlobal) { +TEST_F(WebFrameSwapTest, SwapInitializesGlobal) { v8::HandleScope scope(v8::Isolate::GetCurrent()); v8::Local<v8::Value> window_top = @@ -9691,7 +9647,7 @@ EXPECT_TRUE(window_top->StrictEquals(local_window_top)); } -TEST_P(WebFrameSwapTest, RemoteFramesAreIndexable) { +TEST_F(WebFrameSwapTest, RemoteFramesAreIndexable) { v8::HandleScope scope(v8::Isolate::GetCurrent()); WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); @@ -9705,7 +9661,7 @@ EXPECT_EQ(3, window_length.As<v8::Int32>()->Value()); } -TEST_P(WebFrameSwapTest, RemoteFrameLengthAccess) { +TEST_F(WebFrameSwapTest, RemoteFrameLengthAccess) { v8::HandleScope scope(v8::Isolate::GetCurrent()); WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); @@ -9717,7 +9673,7 @@ EXPECT_EQ(0, remote_window_length.As<v8::Int32>()->Value()); } -TEST_P(WebFrameSwapTest, RemoteWindowNamedAccess) { +TEST_F(WebFrameSwapTest, RemoteWindowNamedAccess) { v8::HandleScope scope(v8::Isolate::GetCurrent()); // TODO(dcheng): Once OOPIF unit test infrastructure is in place, test that @@ -9733,7 +9689,7 @@ EXPECT_TRUE(remote_window_property.IsEmpty()); } -TEST_P(WebFrameSwapTest, RemoteWindowToString) { +TEST_F(WebFrameSwapTest, RemoteWindowToString) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope scope(isolate); @@ -9750,7 +9706,7 @@ // TODO(alexmos, dcheng): This test and some other OOPIF tests use // very little of the test fixture support in WebFrameSwapTest. We should // clean these tests up. -TEST_P(WebFrameSwapTest, FramesOfRemoteParentAreIndexable) { +TEST_F(WebFrameSwapTest, FramesOfRemoteParentAreIndexable) { v8::HandleScope scope(v8::Isolate::GetCurrent()); WebRemoteFrame* remote_parent_frame = FrameTestHelpers::CreateRemote(); @@ -9778,7 +9734,7 @@ // Check that frames with a remote parent don't crash while accessing // window.frameElement. -TEST_P(WebFrameSwapTest, FrameElementInFramesWithRemoteParent) { +TEST_F(WebFrameSwapTest, FrameElementInFramesWithRemoteParent) { v8::HandleScope scope(v8::Isolate::GetCurrent()); WebRemoteFrame* remote_parent_frame = FrameTestHelpers::CreateRemote(); @@ -9825,7 +9781,7 @@ // LocalFrame as it is first being created. This happens when another frame // exists in the same process, such that we create the RemoteFrame before the // first navigation occurs. -TEST_P(WebFrameSwapTest, HistoryCommitTypeAfterNewRemoteToLocalSwap) { +TEST_F(WebFrameSwapTest, HistoryCommitTypeAfterNewRemoteToLocalSwap) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); WebFrame* target_frame = MainFrame()->FirstChild(); ASSERT_TRUE(target_frame); @@ -9847,7 +9803,7 @@ // The commit type should be Standard if we are swapping a RemoteFrame to a // LocalFrame after commits have already happened in the frame. The browser // process will inform us via setCommittedFirstRealLoad. -TEST_P(WebFrameSwapTest, HistoryCommitTypeAfterExistingRemoteToLocalSwap) { +TEST_F(WebFrameSwapTest, HistoryCommitTypeAfterExistingRemoteToLocalSwap) { WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(); WebFrame* target_frame = MainFrame()->FirstChild(); ASSERT_TRUE(target_frame); @@ -9885,7 +9841,7 @@ WebURLRequest last_request_; }; -TEST_P(WebFrameSwapTest, NavigateRemoteFrameViaLocation) { +TEST_F(WebFrameSwapTest, NavigateRemoteFrameViaLocation) { RemoteNavigationClient client; WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(&client); WebFrame* target_frame = MainFrame()->FirstChild(); @@ -9907,7 +9863,7 @@ Reset(); } -TEST_P(WebFrameSwapTest, WindowOpenOnRemoteFrame) { +TEST_F(WebFrameSwapTest, WindowOpenOnRemoteFrame) { RemoteNavigationClient remote_client; WebRemoteFrame* remote_frame = FrameTestHelpers::CreateRemote(&remote_client); MainFrame()->FirstChild()->Swap(remote_frame); @@ -9949,7 +9905,7 @@ bool closed_; }; -TEST_P(ParameterizedWebFrameTest, WindowOpenRemoteClose) { +TEST_F(WebFrameTest, WindowOpenRemoteClose) { FrameTestHelpers::WebViewHelper main_web_view; main_web_view.Initialize(); @@ -9973,7 +9929,7 @@ EXPECT_TRUE(view_client.Closed()); } -TEST_P(ParameterizedWebFrameTest, NavigateRemoteToLocalWithOpener) { +TEST_F(WebFrameTest, NavigateRemoteToLocalWithOpener) { FrameTestHelpers::WebViewHelper main_web_view; main_web_view.Initialize(); WebLocalFrame* main_frame = main_web_view.LocalMainFrame(); @@ -9998,7 +9954,7 @@ popup_helper.LocalMainFrame()->GetSecurityOrigin())); } -TEST_P(ParameterizedWebFrameTest, SwapWithOpenerCycle) { +TEST_F(WebFrameTest, SwapWithOpenerCycle) { // First, create a remote main frame with itself as the opener. FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -10034,7 +9990,7 @@ WebHistoryCommitType history_commit_type_; }; -TEST_P(ParameterizedWebFrameTest, RemoteFrameInitialCommitType) { +TEST_F(WebFrameTest, RemoteFrameInitialCommitType) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(nullptr, SecurityOrigin::CreateFromString( WebString::FromUTF8(base_url_))); @@ -10070,7 +10026,7 @@ bool did_handle_gesture_event_; }; -TEST_P(ParameterizedWebFrameTest, FrameWidgetTest) { +TEST_F(WebFrameTest, FrameWidgetTest) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -10109,7 +10065,7 @@ // FIXME: This would be better as a unittest on DocumentThreadableLoader but it // requires spin-up of a frame. It may be possible to remove that requirement // and convert it to a unittest. -TEST_P(ParameterizedWebFrameTest, LoaderOriginAccess) { +TEST_F(WebFrameTest, LoaderOriginAccess) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); @@ -10145,7 +10101,7 @@ EXPECT_FALSE(client.Failed()); } -TEST_P(ParameterizedWebFrameTest, DetachRemoteFrame) { +TEST_F(WebFrameTest, DetachRemoteFrame) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); WebRemoteFrame* child_frame = @@ -10170,7 +10126,7 @@ Vector<WebConsoleMessage> messages; }; -TEST_P(ParameterizedWebFrameTest, CrossDomainAccessErrorsUseCallingWindow) { +TEST_F(WebFrameTest, CrossDomainAccessErrorsUseCallingWindow) { RegisterMockedHttpURLLoad("hidden_frames.html"); RegisterMockedChromeURLLoad("hello_world.html"); @@ -10216,7 +10172,7 @@ popup_web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, ResizeInvalidatesDeviceMediaQueries) { +TEST_F(WebFrameTest, ResizeInvalidatesDeviceMediaQueries) { RegisterMockedHttpURLLoad("device_media_queries.html"); FixedLayoutTestWebViewClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -10265,7 +10221,7 @@ EXPECT_EQ(400, element->OffsetHeight()); } -class DeviceEmulationTest : public ParameterizedWebFrameTest { +class DeviceEmulationTest : public WebFrameTest { protected: DeviceEmulationTest() { RegisterMockedHttpURLLoad("device_emulation.html"); @@ -10299,9 +10255,7 @@ FrameTestHelpers::WebViewHelper web_view_helper_; }; -INSTANTIATE_TEST_CASE_P(All, DeviceEmulationTest, testing::Bool()); - -TEST_P(DeviceEmulationTest, DeviceSizeInvalidatedOnResize) { +TEST_F(DeviceEmulationTest, DeviceSizeInvalidatedOnResize) { WebDeviceEmulationParams params; params.screen_position = WebDeviceEmulationParams::kMobile; web_view_helper_.GetWebView()->EnableDeviceEmulation(params); @@ -10318,7 +10272,7 @@ web_view_helper_.GetWebView()->DisableDeviceEmulation(); } -TEST_P(DeviceEmulationTest, PointerAndHoverTypes) { +TEST_F(DeviceEmulationTest, PointerAndHoverTypes) { web_view_helper_.GetWebView() ->GetDevToolsEmulator() ->SetTouchEventEmulationEnabled(true, 1); @@ -10328,7 +10282,7 @@ ->SetTouchEventEmulationEnabled(false, 1); } -TEST_P(ParameterizedWebFrameTest, CreateLocalChildWithPreviousSibling) { +TEST_F(WebFrameTest, CreateLocalChildWithPreviousSibling) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); WebRemoteFrame* parent = helper.RemoteMainFrame(); @@ -10362,7 +10316,7 @@ EXPECT_EQ(parent, fourth_frame->Parent()); } -TEST_P(ParameterizedWebFrameTest, SendBeaconFromChildWithRemoteMainFrame) { +TEST_F(WebFrameTest, SendBeaconFromChildWithRemoteMainFrame) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -10376,7 +10330,7 @@ FrameTestHelpers::LoadFrame(local_frame, base_url_ + "send_beacon.html"); } -TEST_P(ParameterizedWebFrameTest, SiteForCookiesFromChildWithRemoteMainFrame) { +TEST_F(WebFrameTest, SiteForCookiesFromChildWithRemoteMainFrame) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(nullptr, SecurityOrigin::Create(ToKURL(not_base_url_))); @@ -10396,8 +10350,7 @@ } // See https://crbug.com/525285. -TEST_P(ParameterizedWebFrameTest, - RemoteToLocalSwapOnMainFrameInitializesCoreFrame) { +TEST_F(WebFrameTest, RemoteToLocalSwapOnMainFrameInitializesCoreFrame) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -10416,7 +10369,7 @@ } // See https://crbug.com/628942. -TEST_P(ParameterizedWebFrameTest, PausedPageLoadWithRemoteMainFrame) { +TEST_F(WebFrameTest, PausedPageLoadWithRemoteMainFrame) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); WebRemoteFrameImpl* remote_root = helper.RemoteMainFrame(); @@ -10462,14 +10415,11 @@ const cc::OverscrollBehavior&)); }; -typedef std::pair<bool, blink::WebGestureDevice> WebFrameOverscrollTestParam; class WebFrameOverscrollTest : public WebFrameTest, - public testing::WithParamInterface<WebFrameOverscrollTestParam>, - private ScopedRootLayerScrollingForTest { + public testing::WithParamInterface<WebGestureDevice> { public: - WebFrameOverscrollTest() - : ScopedRootLayerScrollingForTest(GetParam().first) {} + WebFrameOverscrollTest() {} protected: WebCoalescedInputEvent GenerateEvent(WebInputEvent::Type type, @@ -10477,7 +10427,7 @@ float delta_y = 0.0) { WebGestureEvent event(type, WebInputEvent::kNoModifiers, WebInputEvent::GetStaticTimeStampForTests(), - GetParam().second); + GetParam()); // TODO(wjmaclean): Make sure that touchpad device is only ever used for // gesture scrolling event types. event.SetPositionInWidget(WebFloatPoint(100, 100)); @@ -10511,15 +10461,10 @@ } }; -// First parameter in each value pair controls RootLayerScrolling. -INSTANTIATE_TEST_CASE_P( - All, - WebFrameOverscrollTest, - testing::Values( - WebFrameOverscrollTestParam(false, kWebGestureDeviceTouchpad), - WebFrameOverscrollTestParam(false, kWebGestureDeviceTouchscreen), - WebFrameOverscrollTestParam(true, kWebGestureDeviceTouchpad), - WebFrameOverscrollTestParam(true, kWebGestureDeviceTouchscreen))); +INSTANTIATE_TEST_CASE_P(All, + WebFrameOverscrollTest, + testing::Values(kWebGestureDeviceTouchpad, + kWebGestureDeviceTouchscreen)); TEST_P(WebFrameOverscrollTest, AccumulatedRootOverscrollAndUnsedDeltaValuesOnOverscroll) { @@ -10903,7 +10848,7 @@ Mock::VerifyAndClearExpectations(&client); } -TEST_P(ParameterizedWebFrameTest, OrientationFrameDetach) { +TEST_F(WebFrameTest, OrientationFrameDetach) { ScopedOrientationEventForTest orientation_event(true); RegisterMockedHttpURLLoad("orientation-frame-detach.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -10912,12 +10857,10 @@ web_view_impl->MainFrameImpl()->SendOrientationChangeEvent(); } -// Macro is not correctly expanded in TEST_P (We cannot use -// TEST_P(ParameterizedWebFrameTest, MAYBE_MaxFramesDetach for example). #if defined(THREAD_SANITIZER) -TEST_P(ParameterizedWebFrameTest, DISABLED_MaxFramesDetach) { +TEST_F(WebFrameTest, DISABLED_MaxFramesDetach) { #else -TEST_P(ParameterizedWebFrameTest, MaxFramesDetach) { +TEST_F(WebFrameTest, MaxFramesDetach) { #endif // defined(THREAD_SANITIZER) RegisterMockedHttpURLLoad("max-frames-detach.html"); FrameTestHelpers::WebViewHelper web_view_helper; @@ -10926,7 +10869,7 @@ web_view_impl->MainFrameImpl()->CollectGarbage(); } -TEST_P(ParameterizedWebFrameTest, ImageDocumentLoadFinishTime) { +TEST_F(WebFrameTest, ImageDocumentLoadFinishTime) { // Loading an image resource directly generates an ImageDocument with // the document loader feeding image data into the resource of a generated // img tag. We expect the load finish time to be the same for the document @@ -10985,7 +10928,7 @@ int callback_count_; }; -TEST_P(ParameterizedWebFrameTest, CallbackOrdering) { +TEST_F(WebFrameTest, CallbackOrdering) { RegisterMockedHttpURLLoad("foo.html"); CallbackOrderingWebFrameClient client; FrameTestHelpers::WebViewHelper web_view_helper; @@ -11007,7 +10950,7 @@ bool visible_; }; -class WebFrameVisibilityChangeTest : public ParameterizedWebFrameTest { +class WebFrameVisibilityChangeTest : public WebFrameTest { public: WebFrameVisibilityChangeTest() { RegisterMockedHttpURLLoad("visible_iframe.html"); @@ -11043,9 +10986,7 @@ Persistent<WebRemoteFrameImpl> web_remote_frame_; }; -INSTANTIATE_TEST_CASE_P(All, WebFrameVisibilityChangeTest, testing::Bool()); - -TEST_P(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange) { +TEST_F(WebFrameVisibilityChangeTest, RemoteFrameVisibilityChange) { SwapLocalFrameToRemoteFrame(); ExecuteScriptOnMainFrame(WebScriptSource( "document.querySelector('iframe').style.display = 'none';")); @@ -11056,7 +10997,7 @@ EXPECT_TRUE(RemoteFrameClient()->IsVisible()); } -TEST_P(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) { +TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) { SwapLocalFrameToRemoteFrame(); ExecuteScriptOnMainFrame( WebScriptSource("document.querySelector('iframe').parentElement.style." @@ -11164,7 +11105,7 @@ WebString data_url_; }; -TEST_P(ParameterizedWebFrameTest, SaveImageAt) { +TEST_F(WebFrameTest, SaveImageAt) { std::string url = base_url_ + "image-with-data-url.html"; RegisterMockedURLLoadFromBase(base_url_, "image-with-data-url.html"); URLTestHelpers::RegisterMockedURLLoad( @@ -11203,7 +11144,7 @@ helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, SaveImageWithImageMap) { +TEST_F(WebFrameTest, SaveImageWithImageMap) { std::string url = base_url_ + "image-map.html"; RegisterMockedURLLoadFromBase(base_url_, "image-map.html"); @@ -11236,7 +11177,7 @@ helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, CopyImageWithImageMap) { +TEST_F(WebFrameTest, CopyImageWithImageMap) { SaveImageFromDataURLWebFrameClient client; std::string url = base_url_ + "image-map.html"; @@ -11268,7 +11209,7 @@ helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, LoadJavascriptURLInNewFrame) { +TEST_F(WebFrameTest, LoadJavascriptURLInNewFrame) { FrameTestHelpers::WebViewHelper helper; helper.Initialize(); @@ -11325,7 +11266,7 @@ HashMap<KURL, std::unique_ptr<ExpectedRequest>> expected_requests_; }; -TEST_P(ParameterizedWebFrameTest, ChangeResourcePriority) { +TEST_F(WebFrameTest, ChangeResourcePriority) { TestResourcePriorityWebFrameClient client; RegisterMockedHttpURLLoad("promote_img_in_viewport_priority.html"); RegisterMockedHttpURLLoad("image_slow.pl"); @@ -11360,7 +11301,7 @@ client.VerifyAllRequests(); } -TEST_P(ParameterizedWebFrameTest, ScriptPriority) { +TEST_F(WebFrameTest, ScriptPriority) { TestResourcePriorityWebFrameClient client; RegisterMockedHttpURLLoad("script_priority.html"); RegisterMockedHttpURLLoad("priorities/defer.js"); @@ -11411,7 +11352,7 @@ } }; -TEST_P(ParameterizedWebFrameTest, ImageDocumentDecodeError) { +TEST_F(WebFrameTest, ImageDocumentDecodeError) { std::string url = base_url_ + "not_an_image.ico"; URLTestHelpers::RegisterMockedURLLoad( ToKURL(url), test::CoreTestDataPath("not_an_image.ico"), "image/x-icon"); @@ -11431,7 +11372,7 @@ // Ensure that the root layer -- whose size is ordinarily derived from the // content size -- maintains a minimum height matching the viewport in cases // where the content is smaller. -TEST_P(ParameterizedWebFrameTest, RootLayerMinimumHeight) { +TEST_F(WebFrameTest, RootLayerMinimumHeight) { constexpr int kViewportWidth = 320; constexpr int kViewportHeight = 640; constexpr int kBrowserControlsHeight = 100; @@ -11506,7 +11447,7 @@ // Load a page with display:none set and try to scroll it. It shouldn't crash // due to lack of layoutObject. crbug.com/653327. -TEST_P(ParameterizedWebFrameTest, ScrollBeforeLayoutDoesntCrash) { +TEST_F(WebFrameTest, ScrollBeforeLayoutDoesntCrash) { RegisterMockedHttpURLLoad("display-none.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "display-none.html"); @@ -11542,7 +11483,7 @@ WebCoalescedInputEvent(end_event)); } -TEST_P(ParameterizedWebFrameTest, MouseOverDifferntNodeClearsTooltip) { +TEST_F(WebFrameTest, MouseOverDifferntNodeClearsTooltip) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(nullptr, nullptr, nullptr, [](WebSettings* settings) {}); @@ -11619,16 +11560,9 @@ document->GetFrame()->GetChromeClient().LastSetTooltipNodeForTesting()); } -class WebFrameSimTest : public testing::WithParamInterface<bool>, - private ScopedRootLayerScrollingForTest, - public SimTest { - public: - WebFrameSimTest() : ScopedRootLayerScrollingForTest(GetParam()) {} -}; +class WebFrameSimTest : public SimTest {}; -INSTANTIATE_TEST_CASE_P(All, WebFrameSimTest, testing::Bool()); - -TEST_P(WebFrameSimTest, HitTestWithIgnoreClippingAtNegativeOffset) { +TEST_F(WebFrameSimTest, HitTestWithIgnoreClippingAtNegativeOffset) { WebView().Resize(WebSize(500, 300)); WebView().GetPage()->GetSettings().SetTextAutosizingEnabled(false); @@ -11679,7 +11613,7 @@ EXPECT_EQ(GetDocument().getElementById("top"), result.InnerNode()); } -TEST_P(WebFrameSimTest, TickmarksDocumentRelative) { +TEST_F(WebFrameSimTest, TickmarksDocumentRelative) { WebView().Resize(WebSize(500, 300)); WebView().GetPage()->GetSettings().SetTextAutosizingEnabled(false); @@ -11730,7 +11664,7 @@ EXPECT_EQ(IntPoint(800, 2000), original_tickmarks[0].Location()); } -TEST_P(WebFrameSimTest, FindInPageSelectNextMatch) { +TEST_F(WebFrameSimTest, FindInPageSelectNextMatch) { WebView().Resize(WebSize(500, 300)); WebView().GetPage()->GetSettings().SetTextAutosizingEnabled(false); @@ -11806,7 +11740,7 @@ << visual_viewport.VisibleRectInDocument().ToString() << "]"; } -TEST_P(WebFrameSimTest, TestScrollFocusedEditableElementIntoView) { +TEST_F(WebFrameSimTest, TestScrollFocusedEditableElementIntoView) { WebView().Resize(WebSize(500, 300)); WebView().SetDefaultPageScaleLimits(1.f, 4); WebView().EnableFakePageScaleAnimationForTesting(true); @@ -11902,7 +11836,7 @@ EXPECT_EQ(1, WebView().FakePageScaleAnimationPageScaleForTesting()); } -TEST_P(WebFrameSimTest, ScrollFocusedIntoViewClipped) { +TEST_F(WebFrameSimTest, ScrollFocusedIntoViewClipped) { // The Android On-Screen Keyboard (OSK) resizes the Widget Blink is hosted // in. When the keyboard is shown, we scroll and zoom in on the currently // focused editable element. However, the scroll and zoom is a smoothly @@ -12006,7 +11940,7 @@ EXPECT_GT(clip->scrollTop(), 0); } -TEST_P(WebFrameSimTest, DoubleTapZoomWhileScrolled) { +TEST_F(WebFrameSimTest, DoubleTapZoomWhileScrolled) { WebView().Resize(WebSize(490, 500)); WebView().SetDefaultPageScaleLimits(0.5f, 4); WebView().EnableFakePageScaleAnimationForTesting(true); @@ -12096,7 +12030,7 @@ } } -TEST_P(WebFrameSimTest, ChangeBackgroundColor) { +TEST_F(WebFrameSimTest, ChangeBackgroundColor) { SimRequest main_resource("https://example.com/test.html", "text/html"); LoadURL("https://example.com/test.html"); @@ -12118,7 +12052,7 @@ // Ensure we don't crash if we try to scroll into view the focused editable // element which doesn't have a LayoutObject. -TEST_P(WebFrameSimTest, ScrollFocusedEditableIntoViewNoLayoutObject) { +TEST_F(WebFrameSimTest, ScrollFocusedEditableIntoViewNoLayoutObject) { WebView().Resize(WebSize(500, 600)); WebView().GetPage()->GetSettings().SetTextAutosizingEnabled(false); @@ -12170,7 +12104,7 @@ EXPECT_EQ(ScrollOffset(0, 0), area->GetScrollOffset()); } -TEST_P(WebFrameSimTest, DisplayNoneIFrameHasNoLayoutObjects) { +TEST_F(WebFrameSimTest, DisplayNoneIFrameHasNoLayoutObjects) { SimRequest main_resource("https://example.com/test.html", "text/html"); SimRequest frame_resource("https://example.com/frame.html", "text/html"); @@ -12203,7 +12137,7 @@ // Although it is not spec compliant, many websites intentionally call // Window.print() on display:none iframes. https://crbug.com/819327. -TEST_P(WebFrameSimTest, DisplayNoneIFramePrints) { +TEST_F(WebFrameSimTest, DisplayNoneIFramePrints) { SimRequest main_resource("https://example.com/test.html", "text/html"); SimRequest frame_resource("https://example.com/frame.html", "text/html"); @@ -12230,7 +12164,7 @@ EXPECT_FALSE(iframe_doc->documentElement()->GetLayoutObject()); } -TEST_P(WebFrameSimTest, NormalIFrameHasLayoutObjects) { +TEST_F(WebFrameSimTest, NormalIFrameHasLayoutObjects) { SimRequest main_resource("https://example.com/test.html", "text/html"); SimRequest frame_resource("https://example.com/frame.html", "text/html"); @@ -12254,7 +12188,7 @@ EXPECT_FALSE(iframe_doc->documentElement()->GetLayoutObject()); } -TEST_P(WebFrameSimTest, ScrollOriginChangeUpdatesLayerPositions) { +TEST_F(WebFrameSimTest, ScrollOriginChangeUpdatesLayerPositions) { // With RLS, scroll origin changes do not update layer positions. // It's unclear why it was ever desirable to update layer positions, // even without RLS, because the position adjustment in the PLC scroll @@ -12288,7 +12222,7 @@ EXPECT_EQ(0, area->LayerForScrolling()->GetPosition().X()); } -TEST_P(WebFrameSimTest, RtlInitialScrollOffsetWithViewport) { +TEST_F(WebFrameSimTest, RtlInitialScrollOffsetWithViewport) { WebView().GetSettings()->SetViewportEnabled(true); WebView().GetSettings()->SetViewportMetaEnabled(true); @@ -12308,7 +12242,7 @@ ASSERT_EQ(ScrollOffset(0, 0), area->GetScrollOffset()); } -TEST_P(WebFrameSimTest, LayoutViewportExceedsLayoutOverflow) { +TEST_F(WebFrameSimTest, LayoutViewportExceedsLayoutOverflow) { // This test fails without RLS (but doesn't cause visible paint clipping due // to differences in composited layer geometry logic). if (!RuntimeEnabledFeatures::RootLayerScrollingEnabled()) @@ -12341,7 +12275,7 @@ ASSERT_EQ(IntSize(400, 600), area->ContentsSize()); } -TEST_P(WebFrameSimTest, NamedLookupIgnoresEmptyNames) { +TEST_F(WebFrameSimTest, NamedLookupIgnoresEmptyNames) { SimRequest main_resource("https://example.com/main.html", "text/html"); LoadURL("https://example.com/main.html"); main_resource.Complete(R"HTML( @@ -12355,7 +12289,7 @@ EXPECT_EQ(nullptr, MainFrame().GetFrame()->Tree().ScopedChild(g_empty_atom)); } -TEST_P(ParameterizedWebFrameTest, NoLoadingCompletionCallbacksInDetach) { +TEST_F(WebFrameTest, NoLoadingCompletionCallbacksInDetach) { class LoadingObserverFrameClient : public FrameTestHelpers::TestWebFrameClient { public: @@ -12454,7 +12388,7 @@ web_view_helper.Reset(); } -TEST_P(ParameterizedWebFrameTest, ClearClosedOpener) { +TEST_F(WebFrameTest, ClearClosedOpener) { FrameTestHelpers::WebViewHelper opener_helper; opener_helper.Initialize(); FrameTestHelpers::WebViewHelper helper; @@ -12482,7 +12416,7 @@ bool did_show_virtual_keyboard_; }; -TEST_P(ParameterizedWebFrameTest, ShowVirtualKeyboardOnElementFocus) { +TEST_F(WebFrameTest, ShowVirtualKeyboardOnElementFocus) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeRemote(); @@ -12551,7 +12485,7 @@ return frame.GetMenuData().edit_flags & WebContextMenuData::kCanSelectAll; } -TEST_P(ParameterizedWebFrameTest, ContextMenuDataSelectAll) { +TEST_F(WebFrameTest, ContextMenuDataSelectAll) { EXPECT_FALSE(TestSelectAll("<textarea></textarea>")); EXPECT_TRUE(TestSelectAll("<textarea>nonempty</textarea>")); EXPECT_FALSE(TestSelectAll("<input>")); @@ -12561,7 +12495,7 @@ EXPECT_TRUE(TestSelectAll("<div contenteditable>\n</div>")); } -TEST_P(ParameterizedWebFrameTest, ContextMenuDataSelectedText) { +TEST_F(WebFrameTest, ContextMenuDataSelectedText) { ContextMenuWebFrameClient frame; FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view = web_view_helper.Initialize(&frame); @@ -12589,7 +12523,7 @@ EXPECT_EQ(frame.GetMenuData().selected_text, " "); } -TEST_P(ParameterizedWebFrameTest, ContextMenuDataPasswordSelectedText) { +TEST_F(WebFrameTest, ContextMenuDataPasswordSelectedText) { ContextMenuWebFrameClient frame; FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view = web_view_helper.Initialize(&frame); @@ -12620,7 +12554,7 @@ EXPECT_FALSE(frame.GetMenuData().selected_text.IsEmpty()); } -TEST_P(ParameterizedWebFrameTest, ContextMenuDataNonLocatedMenu) { +TEST_F(WebFrameTest, ContextMenuDataNonLocatedMenu) { ContextMenuWebFrameClient frame; FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view = web_view_helper.Initialize(&frame); @@ -12652,7 +12586,7 @@ EXPECT_FALSE(frame.GetMenuData().selected_text.IsEmpty()); } -TEST_P(ParameterizedWebFrameTest, LocalFrameWithRemoteParentIsTransparent) { +TEST_F(WebFrameTest, LocalFrameWithRemoteParentIsTransparent) { FrameTestHelpers::WebViewHelper helper; helper.InitializeRemote(); @@ -12697,7 +12631,7 @@ TestFallbackWebFrameClient* child_client_; }; -TEST_P(ParameterizedWebFrameTest, FallbackForNonexistentProvisionalNavigation) { +TEST_F(WebFrameTest, FallbackForNonexistentProvisionalNavigation) { RegisterMockedHttpURLLoad("fallback.html"); TestFallbackWebFrameClient main_client; TestFallbackWebFrameClient child_client; @@ -12728,7 +12662,7 @@ child->MaybeRenderFallbackContent(ResourceError::Failure(request.Url()))); } -TEST_P(ParameterizedWebFrameTest, AltTextOnAboutBlankPage) { +TEST_F(WebFrameTest, AltTextOnAboutBlankPage) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad("about:blank"); web_view_helper.Resize(WebSize(640, 480)); @@ -12813,7 +12747,7 @@ tester.ExpectTotalCount(histogramName, 3); } -TEST_P(ParameterizedWebFrameTest, DidScrollCallbackAfterScrollableAreaChanges) { +TEST_F(WebFrameTest, DidScrollCallbackAfterScrollableAreaChanges) { FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.Initialize(); web_view_helper.Resize(WebSize(200, 200)); @@ -13028,7 +12962,7 @@ frame->PrintEnd(); } -TEST_P(ParameterizedWebFrameTest, PrintDetachedIframe) { +TEST_F(WebFrameTest, PrintDetachedIframe) { RegisterMockedHttpURLLoad("print-detached-iframe.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "print-detached-iframe.html"); @@ -13036,7 +12970,7 @@ ToWebLocalFrameImpl(web_view_helper.LocalMainFrame()->FirstChild())); } -TEST_P(ParameterizedWebFrameTest, PrintIframeUnderDetached) { +TEST_F(WebFrameTest, PrintIframeUnderDetached) { RegisterMockedHttpURLLoad("print-detached-iframe.html"); FrameTestHelpers::WebViewHelper web_view_helper; web_view_helper.InitializeAndLoad(base_url_ + "print-detached-iframe.html");
diff --git a/third_party/blink/renderer/core/exported/web_settings_impl.cc b/third_party/blink/renderer/core/exported/web_settings_impl.cc index 8310c2e..d9038b63b 100644 --- a/third_party/blink/renderer/core/exported/web_settings_impl.cc +++ b/third_party/blink/renderer/core/exported/web_settings_impl.cc
@@ -625,6 +625,14 @@ settings_->SetPictureInPictureEnabled(enabled); } +void WebSettingsImpl::SetDataSaverHoldbackWebApi(bool enabled) { + settings_->SetDataSaverHoldbackWebApi(enabled); +} + +void WebSettingsImpl::SetDataSaverHoldbackMediaApi(bool enabled) { + settings_->SetDataSaverHoldbackMediaApi(enabled); +} + void WebSettingsImpl::SetMediaPlaybackGestureWhitelistScope( const WebString& scope) { settings_->SetMediaPlaybackGestureWhitelistScope(scope);
diff --git a/third_party/blink/renderer/core/exported/web_settings_impl.h b/third_party/blink/renderer/core/exported/web_settings_impl.h index 5f99eb6..5a1ec0f 100644 --- a/third_party/blink/renderer/core/exported/web_settings_impl.h +++ b/third_party/blink/renderer/core/exported/web_settings_impl.h
@@ -116,6 +116,8 @@ void SetMainFrameResizesAreOrientationChanges(bool) override; void SetMaxTouchPoints(int) override; void SetPictureInPictureEnabled(bool) override; + void SetDataSaverHoldbackWebApi(bool) override; + void SetDataSaverHoldbackMediaApi(bool) override; void SetMediaPlaybackGestureWhitelistScope(const WebString&) override; void SetPresentationRequiresUserGesture(bool) override; void SetEmbeddedMediaExperienceEnabled(bool) override;
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc index 320e5fc..8064140 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -3117,6 +3117,12 @@ HitTestResult WebViewImpl::CoreHitTestResultAt( const WebPoint& point_in_viewport) { + // TODO(crbug.com/843128): When we do async hit-testing, we might try to do + // hit-testing when the local main frame is not valid anymore. Look into if we + // can avoid getting here earlier in the pipeline. + if (!MainFrameImpl() || !MainFrameImpl()->GetFrameView()) + return HitTestResult(); + DocumentLifecycle::AllowThrottlingScope throttling_scope( MainFrameImpl()->GetFrame()->GetDocument()->Lifecycle()); LocalFrameView* view = MainFrameImpl()->GetFrameView();
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h index f0cdf771..8a8c012 100644 --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -465,11 +465,10 @@ bool zoom_into_legible_scale); private: - FRIEND_TEST_ALL_PREFIXES(ParameterizedWebFrameTest, - DivScrollIntoEditableTest); - FRIEND_TEST_ALL_PREFIXES(ParameterizedWebFrameTest, + FRIEND_TEST_ALL_PREFIXES(WebFrameTest, DivScrollIntoEditableTest); + FRIEND_TEST_ALL_PREFIXES(WebFrameTest, DivScrollIntoEditablePreservePageScaleTest); - FRIEND_TEST_ALL_PREFIXES(ParameterizedWebFrameTest, + FRIEND_TEST_ALL_PREFIXES(WebFrameTest, DivScrollIntoEditableTestZoomToLegibleScaleDisabled); void SetPageScaleFactorAndLocation(float, const FloatPoint&);
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc index afc8278e..0d71aa3 100644 --- a/third_party/blink/renderer/core/exported/web_view_test.cc +++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -118,7 +118,6 @@ #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" #include "third_party/blink/renderer/platform/keyboard_codes.h" #include "third_party/blink/renderer/platform/scroll/scroll_types.h" -#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" #include "third_party/blink/renderer/platform/testing/url_test_helpers.h" #include "third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.h" @@ -243,15 +242,9 @@ WebDateTimeChooserCompletion* chooser_completion_; }; -typedef bool TestParamRootLayerScrolling; -class WebViewTest - : public testing::Test, - public testing::WithParamInterface<TestParamRootLayerScrolling>, - private ScopedRootLayerScrollingForTest { +class WebViewTest : public testing::Test { public: - WebViewTest() - : ScopedRootLayerScrollingForTest(GetParam()), - base_url_("http://www.test.com/") {} + WebViewTest() : base_url_("http://www.test.com/") {} void TearDown() override { Platform::Current() @@ -305,9 +298,7 @@ return hit_test_result.GetNode().To<WebElement>().GetAttribute("id").Utf8(); } -INSTANTIATE_TEST_CASE_P(All, WebViewTest, testing::Bool()); - -TEST_P(WebViewTest, HitTestVideo) { +TEST_F(WebViewTest, HitTestVideo) { // Test that hit tests on parts of a video element result in hits on the video // element itself as opposed to its child elements. std::string url = RegisterMockedHttpURLLoad("video_200x200.html"); @@ -324,7 +315,7 @@ EXPECT_EQ("video", HitTestElementId(web_view, 100, 195)); } -TEST_P(WebViewTest, HitTestContentEditableImageMaps) { +TEST_F(WebViewTest, HitTestContentEditableImageMaps) { std::string url = RegisterMockedHttpURLLoad("content-editable-image-maps.html"); WebView* web_view = web_view_helper_.InitializeAndLoad(url); @@ -363,7 +354,7 @@ return hit_test_result.UrlElement(); } -TEST_P(WebViewTest, ImageMapUrls) { +TEST_F(WebViewTest, ImageMapUrls) { std::string url = RegisterMockedHttpURLLoad("image-map.html"); WebView* web_view = web_view_helper_.InitializeAndLoad(url); web_view->Resize(WebSize(400, 400)); @@ -381,7 +372,7 @@ EXPECT_EQ(image_url, HitTestAbsoluteUrl(web_view, 75, 25)); } -TEST_P(WebViewTest, BrokenImage) { +TEST_F(WebViewTest, BrokenImage) { URLTestHelpers::RegisterMockedErrorURLLoad( KURL(ToKURL(base_url_), "non_existent.png")); std::string url = RegisterMockedHttpURLLoad("image-broken.html"); @@ -398,7 +389,7 @@ EXPECT_EQ(image_url, HitTestAbsoluteUrl(web_view, 25, 25)); } -TEST_P(WebViewTest, BrokenInputImage) { +TEST_F(WebViewTest, BrokenInputImage) { URLTestHelpers::RegisterMockedErrorURLLoad( KURL(ToKURL(base_url_), "non_existent.png")); std::string url = RegisterMockedHttpURLLoad("input-image-broken.html"); @@ -415,7 +406,7 @@ EXPECT_EQ(image_url, HitTestAbsoluteUrl(web_view, 25, 25)); } -TEST_P(WebViewTest, SetBaseBackgroundColor) { +TEST_F(WebViewTest, SetBaseBackgroundColor) { const SkColor kDarkCyan = SkColorSetARGB(0xFF, 0x22, 0x77, 0x88); const SkColor kTranslucentPutty = SkColorSetARGB(0x80, 0xBF, 0xB1, 0x96); @@ -470,7 +461,7 @@ frame->View()->Dispose(); } -TEST_P(WebViewTest, SetBaseBackgroundColorBeforeMainFrame) { +TEST_F(WebViewTest, SetBaseBackgroundColorBeforeMainFrame) { // Note: this test doesn't use WebViewHelper since it intentionally runs // initialization code between WebView and WebLocalFrame creation. FrameTestHelpers::TestWebViewClient web_view_client; @@ -488,7 +479,7 @@ web_view->Close(); } -TEST_P(WebViewTest, SetBaseBackgroundColorAndBlendWithExistingContent) { +TEST_F(WebViewTest, SetBaseBackgroundColorAndBlendWithExistingContent) { const SkColor kAlphaRed = SkColorSetARGB(0x80, 0xFF, 0x00, 0x00); const SkColor kAlphaGreen = SkColorSetARGB(0x80, 0x00, 0xFF, 0x00); const int kWidth = 100; @@ -533,7 +524,7 @@ EXPECT_TRUE(GreenChannel(color)); } -TEST_P(WebViewTest, FocusIsInactive) { +TEST_F(WebViewTest, FocusIsInactive) { RegisterMockedHttpURLLoad("visible_iframe.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "visible_iframe.html"); @@ -565,7 +556,7 @@ EXPECT_FALSE(document->hasFocus()); } -TEST_P(WebViewTest, DocumentHasFocus) { +TEST_F(WebViewTest, DocumentHasFocus) { WebViewImpl* web_view = web_view_helper_.Initialize(); web_view->SetFocus(true); @@ -604,7 +595,7 @@ log_element.TextContent().Utf8().data()); } -TEST_P(WebViewTest, ActiveState) { +TEST_F(WebViewTest, ActiveState) { RegisterMockedHttpURLLoad("visible_iframe.html"); WebView* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "visible_iframe.html"); @@ -621,7 +612,7 @@ EXPECT_TRUE(web_view->IsActive()); } -TEST_P(WebViewTest, HitTestResultAtWithPageScale) { +TEST_F(WebViewTest, HitTestResultAtWithPageScale) { std::string url = base_url_ + "specify_size.html?" + "50px" + ":" + "50px"; URLTestHelpers::RegisterMockedURLLoad( ToKURL(url), test::CoreTestDataPath("specify_size.html")); @@ -642,7 +633,7 @@ positive_result.Reset(); } -TEST_P(WebViewTest, HitTestResultAtWithPageScaleAndPan) { +TEST_F(WebViewTest, HitTestResultAtWithPageScaleAndPan) { std::string url = base_url_ + "specify_size.html?" + "50px" + ":" + "50px"; URLTestHelpers::RegisterMockedURLLoad( ToKURL(url), test::CoreTestDataPath("specify_size.html")); @@ -671,7 +662,7 @@ negative_result2.Reset(); } -TEST_P(WebViewTest, HitTestResultForTapWithTapArea) { +TEST_F(WebViewTest, HitTestResultForTapWithTapArea) { std::string url = RegisterMockedHttpURLLoad("hit_test.html"); WebView* web_view = web_view_helper_.InitializeAndLoad(url); web_view->Resize(WebSize(100, 100)); @@ -699,7 +690,7 @@ negative_result2.Reset(); } -TEST_P(WebViewTest, HitTestResultForTapWithTapAreaPageScaleAndPan) { +TEST_F(WebViewTest, HitTestResultForTapWithTapAreaPageScaleAndPan) { std::string url = RegisterMockedHttpURLLoad("hit_test.html"); WebViewImpl* web_view = web_view_helper_.Initialize(); LoadFrame(web_view->MainFrameImpl(), url); @@ -775,7 +766,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, AutoResizeMinimumSize) { +TEST_F(WebViewTest, AutoResizeMinimumSize) { WebSize min_auto_resize(91, 56); WebSize max_auto_resize(403, 302); std::string page_width = "91px"; @@ -787,7 +778,7 @@ kNoVerticalScrollbar); } -TEST_P(WebViewTest, AutoResizeHeightOverflowAndFixedWidth) { +TEST_F(WebViewTest, AutoResizeHeightOverflowAndFixedWidth) { WebSize min_auto_resize(90, 95); WebSize max_auto_resize(90, 100); std::string page_width = "60px"; @@ -799,7 +790,7 @@ kVisibleVerticalScrollbar); } -TEST_P(WebViewTest, AutoResizeFixedHeightAndWidthOverflow) { +TEST_F(WebViewTest, AutoResizeFixedHeightAndWidthOverflow) { WebSize min_auto_resize(90, 100); WebSize max_auto_resize(200, 100); std::string page_width = "300px"; @@ -813,7 +804,7 @@ // Next three tests disabled for https://bugs.webkit.org/show_bug.cgi?id=92318 . // It seems we can run three AutoResize tests, then the next one breaks. -TEST_P(WebViewTest, AutoResizeInBetweenSizes) { +TEST_F(WebViewTest, AutoResizeInBetweenSizes) { WebSize min_auto_resize(90, 95); WebSize max_auto_resize(200, 300); std::string page_width = "100px"; @@ -825,7 +816,7 @@ kNoVerticalScrollbar); } -TEST_P(WebViewTest, AutoResizeOverflowSizes) { +TEST_F(WebViewTest, AutoResizeOverflowSizes) { WebSize min_auto_resize(90, 95); WebSize max_auto_resize(200, 300); std::string page_width = "300px"; @@ -837,7 +828,7 @@ kVisibleVerticalScrollbar); } -TEST_P(WebViewTest, AutoResizeMaxSize) { +TEST_F(WebViewTest, AutoResizeMaxSize) { WebSize min_auto_resize(90, 95); WebSize max_auto_resize(200, 300); std::string page_width = "200px"; @@ -866,7 +857,7 @@ EXPECT_EQ(kWebTextInputTypeNone, controller->TextInputInfo().type); } -TEST_P(WebViewTest, TextInputType) { +TEST_F(WebViewTest, TextInputType) { TestTextInputType(kWebTextInputTypeText, "input_field_default.html"); TestTextInputType(kWebTextInputTypePassword, "input_field_password.html"); TestTextInputType(kWebTextInputTypeEmail, "input_field_email.html"); @@ -876,7 +867,7 @@ TestTextInputType(kWebTextInputTypeURL, "input_field_url.html"); } -TEST_P(WebViewTest, TextInputInfoUpdateStyleAndLayout) { +TEST_F(WebViewTest, TextInputInfoUpdateStyleAndLayout) { FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = web_view_helper.Initialize(); @@ -923,7 +914,7 @@ .input_mode); } -TEST_P(WebViewTest, InputMode) { +TEST_F(WebViewTest, InputMode) { TestInputMode(WebTextInputMode::kWebTextInputModeDefault, "input_mode_default.html"); TestInputMode(WebTextInputMode::kWebTextInputModeDefault, @@ -946,7 +937,7 @@ "input_mode_type_search.html"); } -TEST_P(WebViewTest, TextInputInfoWithReplacedElements) { +TEST_F(WebViewTest, TextInputInfoWithReplacedElements) { std::string url = RegisterMockedHttpURLLoad("div_with_image.html"); URLTestHelpers::RegisterMockedURLLoad( ToKURL("http://www.test.com/foo.png"), @@ -960,7 +951,7 @@ EXPECT_EQ("foo\xef\xbf\xbc", info.value.Utf8()); } -TEST_P(WebViewTest, SetEditableSelectionOffsetsAndTextInputInfo) { +TEST_F(WebViewTest, SetEditableSelectionOffsetsAndTextInputInfo) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -994,7 +985,7 @@ } // Regression test for crbug.com/663645 -TEST_P(WebViewTest, FinishComposingTextDoesNotAssert) { +TEST_F(WebViewTest, FinishComposingTextDoesNotAssert) { RegisterMockedHttpURLLoad("input_field_default.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_default.html"); @@ -1024,7 +1015,7 @@ WebInputMethodController::kKeepSelection); } -TEST_P(WebViewTest, FinishComposingTextCursorPositionChange) { +TEST_F(WebViewTest, FinishComposingTextCursorPositionChange) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1076,7 +1067,7 @@ EXPECT_EQ(-1, info.composition_end); } -TEST_P(WebViewTest, SetCompositionForNewCaretPositions) { +TEST_F(WebViewTest, SetCompositionForNewCaretPositions) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1192,7 +1183,7 @@ EXPECT_EQ(8, info.composition_end); } -TEST_P(WebViewTest, SetCompositionWithEmptyText) { +TEST_F(WebViewTest, SetCompositionWithEmptyText) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1233,7 +1224,7 @@ EXPECT_EQ(-1, info.composition_end); } -TEST_P(WebViewTest, CommitTextForNewCaretPositions) { +TEST_F(WebViewTest, CommitTextForNewCaretPositions) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1306,7 +1297,7 @@ EXPECT_EQ(-1, info.composition_end); } -TEST_P(WebViewTest, CommitTextWhileComposing) { +TEST_F(WebViewTest, CommitTextWhileComposing) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1377,7 +1368,7 @@ EXPECT_EQ(-1, info.composition_end); } -TEST_P(WebViewTest, FinishCompositionDoesNotRevealSelection) { +TEST_F(WebViewTest, FinishCompositionDoesNotRevealSelection) { RegisterMockedHttpURLLoad("form_with_input.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "form_with_input.html"); @@ -1411,7 +1402,7 @@ EXPECT_EQ(offset_height, web_view->MainFrameImpl()->GetScrollOffset().height); } -TEST_P(WebViewTest, InsertNewLinePlacementAfterFinishComposingText) { +TEST_F(WebViewTest, InsertNewLinePlacementAfterFinishComposingText) { RegisterMockedHttpURLLoad("text_area_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "text_area_populated.html"); @@ -1454,7 +1445,7 @@ std::string(info.value.Utf8().data())); } -TEST_P(WebViewTest, ExtendSelectionAndDelete) { +TEST_F(WebViewTest, ExtendSelectionAndDelete) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1473,7 +1464,7 @@ EXPECT_EQ("ijklmnopqrstuvwxyz", std::string(info.value.Utf8().data())); } -TEST_P(WebViewTest, DeleteSurroundingText) { +TEST_F(WebViewTest, DeleteSurroundingText) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebView* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1516,7 +1507,7 @@ EXPECT_EQ(0, info.selection_end); } -TEST_P(WebViewTest, SetCompositionFromExistingText) { +TEST_F(WebViewTest, SetCompositionFromExistingText) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1543,7 +1534,7 @@ EXPECT_EQ(-1, info.composition_end); } -TEST_P(WebViewTest, SetCompositionFromExistingTextInTextArea) { +TEST_F(WebViewTest, SetCompositionFromExistingTextInTextArea) { RegisterMockedHttpURLLoad("text_area_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "text_area_populated.html"); @@ -1587,7 +1578,7 @@ EXPECT_EQ(-1, info.composition_end); } -TEST_P(WebViewTest, SetCompositionFromExistingTextInRichText) { +TEST_F(WebViewTest, SetCompositionFromExistingTextInRichText) { RegisterMockedHttpURLLoad("content_editable_rich_text.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "content_editable_rich_text.html"); @@ -1603,7 +1594,7 @@ EXPECT_FALSE(document.GetElementById("bold").IsNull()); } -TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) { +TEST_F(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1673,7 +1664,7 @@ EXPECT_EQ(11, info.composition_end); } -TEST_P(WebViewTest, IsSelectionAnchorFirst) { +TEST_F(WebViewTest, IsSelectionAnchorFirst) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -1689,7 +1680,7 @@ EXPECT_FALSE(frame->IsSelectionAnchorFirst()); } -TEST_P( +TEST_F( WebViewTest, MoveFocusToNextFocusableElementInFormWithKeyEventListenersAndNonEditableElements) { const std::string test_file = @@ -1915,7 +1906,7 @@ web_view_helper_.Reset(); } -TEST_P( +TEST_F( WebViewTest, MoveFocusToNextFocusableElementInFormWithNonEditableNonFormControlElements) { const std::string test_file = @@ -2016,7 +2007,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, MoveFocusToNextFocusableElementInFormWithTabIndexElements) { +TEST_F(WebViewTest, MoveFocusToNextFocusableElementInFormWithTabIndexElements) { const std::string test_file = "advance_focus_in_form_with_tabindex_elements.html"; RegisterMockedHttpURLLoad(test_file); @@ -2114,7 +2105,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, +TEST_F(WebViewTest, MoveFocusToNextFocusableElementInFormWithDisabledAndReadonlyElements) { const std::string test_file = "advance_focus_in_form_with_disabled_and_readonly_elements.html"; @@ -2185,7 +2176,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, ExitingDeviceEmulationResetsPageScale) { +TEST_F(WebViewTest, ExitingDeviceEmulationResetsPageScale) { RegisterMockedHttpURLLoad("200-by-300.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "200-by-300.html"); @@ -2207,7 +2198,7 @@ EXPECT_EQ(page_scale_expected, web_view_impl->PageScaleFactor()); } -TEST_P(WebViewTest, HistoryResetScrollAndScaleState) { +TEST_F(WebViewTest, HistoryResetScrollAndScaleState) { RegisterMockedHttpURLLoad("200-by-300.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "200-by-300.html"); @@ -2252,7 +2243,7 @@ ->GetViewState()); } -TEST_P(WebViewTest, BackForwardRestoreScroll) { +TEST_F(WebViewTest, BackForwardRestoreScroll) { RegisterMockedHttpURLLoad("back_forward_restore_scroll.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad( base_url_ + "back_forward_restore_scroll.html"); @@ -2310,7 +2301,7 @@ // Tests that we restore scroll and scale *after* the fullscreen styles are // removed and the page is laid out. http://crbug.com/625683. -TEST_P(WebViewTest, FullscreenResetScrollAndScaleFullscreenStyles) { +TEST_F(WebViewTest, FullscreenResetScrollAndScaleFullscreenStyles) { RegisterMockedHttpURLLoad("fullscreen_style.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "fullscreen_style.html"); @@ -2350,7 +2341,7 @@ // Tests that exiting and immediately reentering fullscreen doesn't cause the // scroll and scale restoration to occur when we enter fullscreen again. -TEST_P(WebViewTest, FullscreenResetScrollAndScaleExitAndReenter) { +TEST_F(WebViewTest, FullscreenResetScrollAndScaleExitAndReenter) { RegisterMockedHttpURLLoad("fullscreen_style.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "fullscreen_style.html"); @@ -2399,7 +2390,7 @@ EXPECT_EQ(2000, web_view_impl->MainFrameImpl()->GetScrollOffset().height); } -TEST_P(WebViewTest, EnterFullscreenResetScrollAndScaleState) { +TEST_F(WebViewTest, EnterFullscreenResetScrollAndScaleState) { RegisterMockedHttpURLLoad("200-by-300.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "200-by-300.html"); @@ -2457,7 +2448,7 @@ bool print_called_; }; -TEST_P(WebViewTest, PrintWithXHRInFlight) { +TEST_F(WebViewTest, PrintWithXHRInFlight) { PrintWebViewClient client; RegisterMockedHttpURLLoad("print_with_xhr_inflight.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad( @@ -2489,7 +2480,7 @@ FrameTestHelpers::PumpPendingRequestsForFrameToLoad(web_view->MainFrame()); } -TEST_P(WebViewTest, DragDropURL) { +TEST_F(WebViewTest, DragDropURL) { RegisterMockedHttpURLLoad("foo.html"); RegisterMockedHttpURLLoad("bar.html"); @@ -2567,7 +2558,7 @@ return IntSize(icb_width, icb_height); } -TEST_P(WebViewTest, ClientTapHandling) { +TEST_F(WebViewTest, ClientTapHandling) { TapHandlingWebViewClient client; WebView* web_view = web_view_helper_.InitializeAndLoad("about:blank", nullptr, &client); @@ -2591,7 +2582,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, ClientTapHandlingNullWebViewClient) { +TEST_F(WebViewTest, ClientTapHandlingNullWebViewClient) { // Note: this test doesn't use WebViewHelper since WebViewHelper creates an // internal WebViewClient on demand if the supplied WebViewClient is null. WebViewImpl* web_view = static_cast<WebViewImpl*>( @@ -2612,7 +2603,7 @@ web_view->Close(); } -TEST_P(WebViewTest, LongPressEmptyDiv) { +TEST_F(WebViewTest, LongPressEmptyDiv) { RegisterMockedHttpURLLoad("long_press_empty_div.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2632,7 +2623,7 @@ web_view->HandleInputEvent(WebCoalescedInputEvent(event))); } -TEST_P(WebViewTest, LongPressEmptyDivAlwaysShow) { +TEST_F(WebViewTest, LongPressEmptyDivAlwaysShow) { RegisterMockedHttpURLLoad("long_press_empty_div.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2652,7 +2643,7 @@ web_view->HandleInputEvent(WebCoalescedInputEvent(event))); } -TEST_P(WebViewTest, LongPressObject) { +TEST_F(WebViewTest, LongPressObject) { RegisterMockedHttpURLLoad("long_press_object.html"); WebViewImpl* web_view = @@ -2676,7 +2667,7 @@ EXPECT_FALSE(element->CanStartSelection()); } -TEST_P(WebViewTest, LongPressObjectFallback) { +TEST_F(WebViewTest, LongPressObjectFallback) { RegisterMockedHttpURLLoad("long_press_object_fallback.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2700,7 +2691,7 @@ EXPECT_TRUE(element->CanStartSelection()); } -TEST_P(WebViewTest, LongPressImage) { +TEST_F(WebViewTest, LongPressImage) { RegisterMockedHttpURLLoad("long_press_image.html"); WebViewImpl* web_view = @@ -2720,7 +2711,7 @@ web_view->HandleInputEvent(WebCoalescedInputEvent(event))); } -TEST_P(WebViewTest, LongPressVideo) { +TEST_F(WebViewTest, LongPressVideo) { RegisterMockedHttpURLLoad("long_press_video.html"); WebViewImpl* web_view = @@ -2740,7 +2731,7 @@ web_view->HandleInputEvent(WebCoalescedInputEvent(event))); } -TEST_P(WebViewTest, LongPressLink) { +TEST_F(WebViewTest, LongPressLink) { RegisterMockedHttpURLLoad("long_press_link.html"); WebViewImpl* web_view = @@ -2761,7 +2752,7 @@ } // Tests that we send touchcancel when drag start by long press. -TEST_P(WebViewTest, TouchCancelOnStartDragging) { +TEST_F(WebViewTest, TouchCancelOnStartDragging) { RegisterMockedHttpURLLoad("long_press_draggable_div.html"); URLTestHelpers::RegisterMockedURLLoad( @@ -2801,7 +2792,7 @@ web_view->MainFrameImpl()->GetDocument().Title().Utf8().data()); } -TEST_P(WebViewTest, showContextMenuOnLongPressingLinks) { +TEST_F(WebViewTest, showContextMenuOnLongPressingLinks) { RegisterMockedHttpURLLoad("long_press_links_and_images.html"); URLTestHelpers::RegisterMockedURLLoad( @@ -2827,7 +2818,7 @@ web_view->MainFrameImpl()->GetDocument().Title().Utf8().data()); } -TEST_P(WebViewTest, LongPressEmptyEditableSelection) { +TEST_F(WebViewTest, LongPressEmptyEditableSelection) { RegisterMockedHttpURLLoad("long_press_empty_editable_selection.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2847,7 +2838,7 @@ web_view->HandleInputEvent(WebCoalescedInputEvent(event))); } -TEST_P(WebViewTest, LongPressEmptyNonEditableSelection) { +TEST_F(WebViewTest, LongPressEmptyNonEditableSelection) { RegisterMockedHttpURLLoad("long_press_image.html"); WebViewImpl* web_view = @@ -2868,7 +2859,7 @@ EXPECT_TRUE(frame->SelectionAsText().IsEmpty()); } -TEST_P(WebViewTest, LongPressSelection) { +TEST_F(WebViewTest, LongPressSelection) { RegisterMockedHttpURLLoad("longpress_selection.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2888,7 +2879,7 @@ EXPECT_EQ("testword", std::string(frame->SelectionAsText().Utf8().data())); } -TEST_P(WebViewTest, FinishComposingTextDoesNotDismissHandles) { +TEST_F(WebViewTest, FinishComposingTextDoesNotDismissHandles) { RegisterMockedHttpURLLoad("longpress_selection.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2924,7 +2915,7 @@ } #if !defined(OS_MACOSX) -TEST_P(WebViewTest, TouchDoesntSelectEmptyTextarea) { +TEST_F(WebViewTest, TouchDoesntSelectEmptyTextarea) { RegisterMockedHttpURLLoad("longpress_textarea.html"); WebViewImpl* web_view = @@ -2967,7 +2958,7 @@ } #endif -TEST_P(WebViewTest, LongPressImageTextarea) { +TEST_F(WebViewTest, LongPressImageTextarea) { RegisterMockedHttpURLLoad("longpress_image_contenteditable.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -2987,7 +2978,7 @@ EXPECT_EQ(1, range.length()); } -TEST_P(WebViewTest, BlinkCaretAfterLongPress) { +TEST_F(WebViewTest, BlinkCaretAfterLongPress) { RegisterMockedHttpURLLoad("blink_caret_on_typing_after_long_press.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -3003,7 +2994,7 @@ EXPECT_FALSE(main_frame->GetFrame()->Selection().IsCaretBlinkingSuspended()); } -TEST_P(WebViewTest, BlinkCaretOnClosingContextMenu) { +TEST_F(WebViewTest, BlinkCaretOnClosingContextMenu) { RegisterMockedHttpURLLoad("form.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "form.html"); @@ -3037,7 +3028,7 @@ EXPECT_FALSE(main_frame->GetFrame()->Selection().IsCaretBlinkingSuspended()); } -TEST_P(WebViewTest, SelectionOnReadOnlyInput) { +TEST_F(WebViewTest, SelectionOnReadOnlyInput) { RegisterMockedHttpURLLoad("selection_readonly.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "selection_readonly.html"); @@ -3058,7 +3049,7 @@ EXPECT_EQ(static_cast<int>(test_word.length()), range.length()); } -TEST_P(WebViewTest, KeyDownScrollsHandled) { +TEST_F(WebViewTest, KeyDownScrollsHandled) { // TODO(bokan): This test will fail without root-layer-scrolls but that's ok // because it's already shipped and non-root-layer-scrolls is no longer // supported. https://crbug.com/823365. @@ -3172,7 +3163,7 @@ int last_cursor_type_ = 0; }; -TEST_P(WebViewTest, MiddleClickAutoscrollCursor) { +TEST_F(WebViewTest, MiddleClickAutoscrollCursor) { MiddleClickAutoscrollWebWidgetClient client; ScopedMiddleClickAutoscrollForTest middle_click_autoscroll(true); RegisterMockedHttpURLLoad("content-width-1000.html"); @@ -3221,7 +3212,7 @@ settings->SetPreferCompositingToLCDTextEnabled(true); } -TEST_P(WebViewTest, ShowPressOnTransformedLink) { +TEST_F(WebViewTest, ShowPressOnTransformedLink) { FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = web_view_helper.Initialize( nullptr, nullptr, nullptr, &ConfigueCompositingWebView); @@ -3279,7 +3270,7 @@ int user_gesture_notifications_count_; }; -TEST_P(WebViewTest, LosingFocusDoesNotTriggerAutofillTextChange) { +TEST_F(WebViewTest, LosingFocusDoesNotTriggerAutofillTextChange) { RegisterMockedHttpURLLoad("input_field_populated.html"); MockAutofillClient client; WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -3321,7 +3312,7 @@ EXPECT_EQ(composition_end, info.composition_end) << fail_message; } -TEST_P(WebViewTest, CompositionNotCancelledByBackspace) { +TEST_F(WebViewTest, CompositionNotCancelledByBackspace) { RegisterMockedHttpURLLoad("composition_not_cancelled_by_backspace.html"); MockAutofillClient client; WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -3367,7 +3358,7 @@ frame->SetAutofillClient(nullptr); } -TEST_P(WebViewTest, FinishComposingTextDoesntTriggerAutofillTextChange) { +TEST_F(WebViewTest, FinishComposingTextDoesntTriggerAutofillTextChange) { RegisterMockedHttpURLLoad("input_field_populated.html"); MockAutofillClient client; WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -3408,7 +3399,7 @@ frame->SetAutofillClient(nullptr); } -TEST_P(WebViewTest, +TEST_F(WebViewTest, SetCompositionFromExistingTextDoesntTriggerAutofillTextChange) { RegisterMockedHttpURLLoad("input_field_populated.html"); MockAutofillClient client; @@ -3464,7 +3455,7 @@ bool did_focus_called_; }; -TEST_P(WebViewTest, DoNotFocusCurrentFrameOnNavigateFromLocalFrame) { +TEST_F(WebViewTest, DoNotFocusCurrentFrameOnNavigateFromLocalFrame) { ViewCreatingWebViewClient client; FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = web_view_helper.Initialize(nullptr, &client); @@ -3488,7 +3479,7 @@ web_view_helper.Reset(); // Remove dependency on locally scoped client. } -TEST_P(WebViewTest, FocusExistingFrameOnNavigate) { +TEST_F(WebViewTest, FocusExistingFrameOnNavigate) { ViewCreatingWebViewClient client; FrameTestHelpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = web_view_helper.Initialize(nullptr, &client); @@ -3518,7 +3509,7 @@ web_view_helper.Reset(); // Remove dependency on locally scoped client. } -TEST_P(WebViewTest, DispatchesFocusOutFocusInOnViewToggleFocus) { +TEST_F(WebViewTest, DispatchesFocusOutFocusInOnViewToggleFocus) { RegisterMockedHttpURLLoad("focusout_focusin_events.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "focusout_focusin_events.html"); @@ -3532,7 +3523,7 @@ EXPECT_STREQ("focusoutfocusin", element.TextContent().Utf8().data()); } -TEST_P(WebViewTest, DispatchesDomFocusOutDomFocusInOnViewToggleFocus) { +TEST_F(WebViewTest, DispatchesDomFocusOutDomFocusInOnViewToggleFocus) { RegisterMockedHttpURLLoad("domfocusout_domfocusin_events.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "domfocusout_domfocusin_events.html"); @@ -3563,9 +3554,9 @@ // TODO(crbug.com/605112) This test is crashing on Android (Nexus 4) bot. #if defined(OS_ANDROID) -TEST_P(WebViewTest, DISABLED_ChooseValueFromDateTimeChooser) { +TEST_F(WebViewTest, DISABLED_ChooseValueFromDateTimeChooser) { #else -TEST_P(WebViewTest, ChooseValueFromDateTimeChooser) { +TEST_F(WebViewTest, ChooseValueFromDateTimeChooser) { #endif ScopedInputMultipleFieldsUIForTest input_multiple_fields_ui(false); DateTimeChooserWebViewClient client; @@ -3643,7 +3634,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, DispatchesFocusBlurOnViewToggle) { +TEST_F(WebViewTest, DispatchesFocusBlurOnViewToggle) { RegisterMockedHttpURLLoad("focus_blur_events.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "focus_blur_events.html"); @@ -3658,7 +3649,7 @@ EXPECT_STREQ("blurfocus", element.TextContent().Utf8().data()); } -TEST_P(WebViewTest, SmartClipData) { +TEST_F(WebViewTest, SmartClipData) { static const char kExpectedClipText[] = "\nPrice 10,000,000won"; static const char kExpectedClipHtml[] = "<div id=\"div4\" style=\"padding: 10px; margin: 10px; border: 2px " @@ -3694,7 +3685,7 @@ EXPECT_STREQ(kExpectedClipHtml, clip_html.Utf8().c_str()); } -TEST_P(WebViewTest, SmartClipDataWithPinchZoom) { +TEST_F(WebViewTest, SmartClipDataWithPinchZoom) { static const char kExpectedClipText[] = "\nPrice 10,000,000won"; static const char kExpectedClipHtml[] = "<div id=\"div4\" style=\"padding: 10px; margin: 10px; border: 2px " @@ -3732,7 +3723,7 @@ EXPECT_STREQ(kExpectedClipHtml, clip_html.Utf8().c_str()); } -TEST_P(WebViewTest, SmartClipReturnsEmptyStringsWhenUserSelectIsNone) { +TEST_F(WebViewTest, SmartClipReturnsEmptyStringsWhenUserSelectIsNone) { WebString clip_text; WebString clip_html; RegisterMockedHttpURLLoad("Ahem.ttf"); @@ -3748,7 +3739,7 @@ EXPECT_STREQ("", clip_html.Utf8().c_str()); } -TEST_P(WebViewTest, SmartClipDoesNotCrashPositionReversed) { +TEST_F(WebViewTest, SmartClipDoesNotCrashPositionReversed) { WebString clip_text; WebString clip_html; RegisterMockedHttpURLLoad("Ahem.ttf"); @@ -3796,7 +3787,7 @@ frame_owner_properties); } -TEST_P(WebViewTest, ChangeDisplayMode) { +TEST_F(WebViewTest, ChangeDisplayMode) { RegisterMockedHttpURLLoad("display_mode.html"); WebView* web_view = web_view_helper_.InitializeAndLoad(base_url_ + "display_mode.html"); @@ -3811,7 +3802,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, AddFrameInCloseUnload) { +TEST_F(WebViewTest, AddFrameInCloseUnload) { CreateChildCounterFrameClient frame_client; RegisterMockedHttpURLLoad("add_frame_in_unload.html"); web_view_helper_.InitializeAndLoad(base_url_ + "add_frame_in_unload.html", @@ -3820,7 +3811,7 @@ EXPECT_EQ(0, frame_client.Count()); } -TEST_P(WebViewTest, AddFrameInCloseURLUnload) { +TEST_F(WebViewTest, AddFrameInCloseURLUnload) { CreateChildCounterFrameClient frame_client; RegisterMockedHttpURLLoad("add_frame_in_unload.html"); web_view_helper_.InitializeAndLoad(base_url_ + "add_frame_in_unload.html", @@ -3830,7 +3821,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, AddFrameInNavigateUnload) { +TEST_F(WebViewTest, AddFrameInNavigateUnload) { CreateChildCounterFrameClient frame_client; RegisterMockedHttpURLLoad("add_frame_in_unload.html"); web_view_helper_.InitializeAndLoad(base_url_ + "add_frame_in_unload.html", @@ -3841,7 +3832,7 @@ web_view_helper_.Reset(); } -TEST_P(WebViewTest, AddFrameInChildInNavigateUnload) { +TEST_F(WebViewTest, AddFrameInChildInNavigateUnload) { CreateChildCounterFrameClient frame_client; RegisterMockedHttpURLLoad("add_frame_in_unload_wrapper.html"); RegisterMockedHttpURLLoad("add_frame_in_unload.html"); @@ -3883,7 +3874,7 @@ // accordingly for various calls to EventHandlerRegistry::did{Add|Remove| // RemoveAll}EventHandler(..., TouchEvent). Verifying that those calls are made // correctly is the job of LayoutTests/fast/events/event-handler-count.html. -TEST_P(WebViewTest, HasTouchEventHandlers) { +TEST_F(WebViewTest, HasTouchEventHandlers) { TouchEventHandlerWebWidgetClient client; // We need to create a LayerTreeView for the client before loading the page, // otherwise ChromeClient will default to assuming there are touch handlers. @@ -4015,7 +4006,7 @@ // handlers also removes them from the event handler registry. Note that this // is different from detaching and re-attaching the same node, which is covered // by layout tests under fast/events/. -TEST_P(WebViewTest, DeleteElementWithRegisteredHandler) { +TEST_F(WebViewTest, DeleteElementWithRegisteredHandler) { std::string url = RegisterMockedHttpURLLoad("simple_div.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(url); @@ -4041,7 +4032,7 @@ } // This test verifies the text input flags are correctly exposed to script. -TEST_P(WebViewTest, TextInputFlags) { +TEST_F(WebViewTest, TextInputFlags) { std::string url = RegisterMockedHttpURLLoad("text_input_flags.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(url); web_view_impl->SetInitialFocus(false); @@ -4100,7 +4091,7 @@ // Check that the WebAutofillClient is correctly notified about first user // gestures after load, following various input events. -TEST_P(WebViewTest, FirstUserGestureObservedKeyEvent) { +TEST_F(WebViewTest, FirstUserGestureObservedKeyEvent) { RegisterMockedHttpURLLoad("form.html"); MockAutofillClient client; WebViewImpl* web_view = @@ -4124,7 +4115,7 @@ frame->SetAutofillClient(nullptr); } -TEST_P(WebViewTest, FirstUserGestureObservedMouseEvent) { +TEST_F(WebViewTest, FirstUserGestureObservedMouseEvent) { RegisterMockedHttpURLLoad("form.html"); MockAutofillClient client; WebViewImpl* web_view = @@ -4149,7 +4140,7 @@ frame->SetAutofillClient(nullptr); } -TEST_P(WebViewTest, CompositionIsUserGesture) { +TEST_F(WebViewTest, CompositionIsUserGesture) { RegisterMockedHttpURLLoad("input_field_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "input_field_populated.html"); @@ -4173,7 +4164,7 @@ // WebFrameContentDumper is built upon TextDumperForTests. Their results can // be different, making the test fail. // TODO(crbug.com/781434): Build a selection serializer upon TextDumperForTests. -TEST_P(WebViewTest, DISABLED_CompareSelectAllToContentAsText) { +TEST_F(WebViewTest, DISABLED_CompareSelectAllToContentAsText) { RegisterMockedHttpURLLoad("longpress_selection.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "longpress_selection.html"); @@ -4190,7 +4181,7 @@ EXPECT_EQ(expected, actual); } -TEST_P(WebViewTest, AutoResizeSubtreeLayout) { +TEST_F(WebViewTest, AutoResizeSubtreeLayout) { std::string url = RegisterMockedHttpURLLoad("subtree-layout.html"); WebViewImpl* web_view = web_view_helper_.Initialize(); @@ -4206,7 +4197,7 @@ EXPECT_FALSE(frame_view->NeedsLayout()); }; -TEST_P(WebViewTest, PreferredSize) { +TEST_F(WebViewTest, PreferredSize) { std::string url = base_url_ + "specify_size.html?100px:100px"; URLTestHelpers::RegisterMockedURLLoad( ToKURL(url), test::CoreTestDataPath("specify_size.html")); @@ -4244,7 +4235,7 @@ EXPECT_EQ(2, size.height); } -TEST_P(WebViewTest, PreferredSizeDirtyLayout) { +TEST_F(WebViewTest, PreferredSizeDirtyLayout) { std::string url = base_url_ + "specify_size.html?100px:100px"; URLTestHelpers::RegisterMockedURLLoad( ToKURL(url), test::CoreTestDataPath("specify_size.html")); @@ -4263,7 +4254,7 @@ EXPECT_EQ(0, size.height); } -TEST_P(WebViewTest, PreferredSizeWithGrid) { +TEST_F(WebViewTest, PreferredSizeWithGrid) { WebViewImpl* web_view = web_view_helper_.Initialize(); WebURL base_url = URLTestHelpers::ToKURL("http://example.com/"); FrameTestHelpers::LoadHTMLString(web_view->MainFrameImpl(), @@ -4285,7 +4276,7 @@ EXPECT_EQ(100, size.height); } -TEST_P(WebViewTest, PreferredSizeWithGridMinWidth) { +TEST_F(WebViewTest, PreferredSizeWithGridMinWidth) { WebViewImpl* web_view = web_view_helper_.Initialize(); WebURL base_url = URLTestHelpers::ToKURL("http://example.com/"); FrameTestHelpers::LoadHTMLString(web_view->MainFrameImpl(), @@ -4302,7 +4293,7 @@ EXPECT_EQ(200, size.width); } -TEST_P(WebViewTest, PreferredSizeWithGridMinWidthFlexibleTracks) { +TEST_F(WebViewTest, PreferredSizeWithGridMinWidthFlexibleTracks) { WebViewImpl* web_view = web_view_helper_.Initialize(); WebURL base_url = URLTestHelpers::ToKURL("http://example.com/"); FrameTestHelpers::LoadHTMLString(web_view->MainFrameImpl(), @@ -4453,9 +4444,7 @@ std::unique_ptr<MojoTestHelper> mojo_test_helper_; }; -INSTANTIATE_TEST_CASE_P(All, ShowUnhandledTapTest, testing::Bool()); - -TEST_P(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeeded) { +TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeeded) { // Scroll the bottom into view so we can distinguish window coordinates from // document coordinates. Tap("bottom"); @@ -4483,7 +4472,7 @@ EXPECT_EQ(28, mock_notifier_.GetElementTextRunLength()); } -TEST_P(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateDom) { +TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateDom) { // Test dom mutation. TestEachMouseEvent("mutateDom", FALSE); @@ -4491,7 +4480,7 @@ TestEachMouseEvent("none", TRUE); } -TEST_P(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateStyle) { +TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithMutateStyle) { // Test style mutation. TestEachMouseEvent("mutateStyle", FALSE); @@ -4503,7 +4492,7 @@ EXPECT_FALSE(mock_notifier_.WasUnhandledTap()); } -TEST_P(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithPreventDefault) { +TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithPreventDefault) { // Test swallowing. TestEachMouseEvent("preventDefault", FALSE); @@ -4511,7 +4500,7 @@ TestEachMouseEvent("none", TRUE); } -TEST_P(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithNonTriggeringNodes) { +TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithNonTriggeringNodes) { Tap("image"); EXPECT_FALSE(mock_notifier_.WasUnhandledTap()); @@ -4522,7 +4511,7 @@ EXPECT_FALSE(mock_notifier_.WasUnhandledTap()); } -TEST_P(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithTextSizes) { +TEST_F(ShowUnhandledTapTest, ShowUnhandledTapUIIfNeededWithTextSizes) { Tap("large"); EXPECT_TRUE(mock_notifier_.WasUnhandledTap()); EXPECT_EQ(20, mock_notifier_.GetFontSize()); @@ -4534,7 +4523,7 @@ #endif // BUILDFLAG(ENABLE_UNHANDLED_TAP) -TEST_P(WebViewTest, StopLoadingIfJavaScriptURLReturnsNoStringResult) { +TEST_F(WebViewTest, StopLoadingIfJavaScriptURLReturnsNoStringResult) { ViewCreatingWebViewClient client; FrameTestHelpers::WebViewHelper main_web_view; main_web_view.InitializeAndLoad("about:blank", nullptr, &client); @@ -4552,7 +4541,7 @@ } #if defined(OS_MACOSX) -TEST_P(WebViewTest, WebSubstringUtil) { +TEST_F(WebViewTest, WebSubstringUtil) { RegisterMockedHttpURLLoad("content_editable_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "content_editable_populated.html"); @@ -4582,7 +4571,7 @@ ASSERT_TRUE(!!result); } -TEST_P(WebViewTest, WebSubstringUtilPinchZoom) { +TEST_F(WebViewTest, WebSubstringUtilPinchZoom) { RegisterMockedHttpURLLoad("content_editable_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( base_url_ + "content_editable_populated.html"); @@ -4609,7 +4598,7 @@ EXPECT_LT(2 * baseline_point.y, point_after_zoom.y); } -TEST_P(WebViewTest, WebSubstringUtilIframe) { +TEST_F(WebViewTest, WebSubstringUtilIframe) { RegisterMockedHttpURLLoad("single_iframe.html"); RegisterMockedHttpURLLoad("visible_iframe.html"); WebViewImpl* web_view = @@ -4647,7 +4636,7 @@ #endif -TEST_P(WebViewTest, PasswordFieldEditingIsUserGesture) { +TEST_F(WebViewTest, PasswordFieldEditingIsUserGesture) { RegisterMockedHttpURLLoad("input_field_password.html"); MockAutofillClient client; WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( @@ -4669,7 +4658,7 @@ // Verify that a WebView created with a ScopedPagePauser already on the // stack defers its loads. -TEST_P(WebViewTest, CreatedDuringPagePause) { +TEST_F(WebViewTest, CreatedDuringPagePause) { { WebViewImpl* web_view = web_view_helper_.Initialize(); EXPECT_FALSE(web_view->GetPage()->Paused()); @@ -4684,7 +4673,7 @@ // Make sure the SubframeBeforeUnloadUseCounter is only incremented on subframe // unloads. crbug.com/635029. -TEST_P(WebViewTest, SubframeBeforeUnloadUseCounter) { +TEST_F(WebViewTest, SubframeBeforeUnloadUseCounter) { RegisterMockedHttpURLLoad("visible_iframe.html"); RegisterMockedHttpURLLoad("single_iframe.html"); WebViewImpl* web_view = @@ -4729,7 +4718,7 @@ // Verify that page loads are deferred until all ScopedPageLoadDeferrers are // destroyed. -TEST_P(WebViewTest, NestedPagePauses) { +TEST_F(WebViewTest, NestedPagePauses) { WebViewImpl* web_view = web_view_helper_.Initialize(); EXPECT_FALSE(web_view->GetPage()->Paused()); @@ -4748,7 +4737,7 @@ EXPECT_FALSE(web_view->GetPage()->Paused()); } -TEST_P(WebViewTest, ClosingPageIsPaused) { +TEST_F(WebViewTest, ClosingPageIsPaused) { WebViewImpl* web_view = web_view_helper_.Initialize(); Page* page = web_view_helper_.GetWebView()->GetPage(); EXPECT_FALSE(page->Paused()); @@ -4771,7 +4760,7 @@ } } -TEST_P(WebViewTest, ForceAndResetViewport) { +TEST_F(WebViewTest, ForceAndResetViewport) { RegisterMockedHttpURLLoad("200-by-300.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "200-by-300.html"); @@ -4817,7 +4806,7 @@ EXPECT_TRUE(visual_viewport->ContainerLayer()->MasksToBounds()); } -TEST_P(WebViewTest, ViewportOverrideIntegratesDeviceMetricsOffsetAndScale) { +TEST_F(WebViewTest, ViewportOverrideIntegratesDeviceMetricsOffsetAndScale) { RegisterMockedHttpURLLoad("200-by-300.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "200-by-300.html"); @@ -4846,7 +4835,7 @@ web_view_impl->GetDeviceEmulationTransformForTesting()); } -TEST_P(WebViewTest, ViewportOverrideAdaptsToScaleAndScroll) { +TEST_F(WebViewTest, ViewportOverrideAdaptsToScaleAndScroll) { RegisterMockedHttpURLLoad("200-by-300.html"); WebViewImpl* web_view_impl = web_view_helper_.InitializeAndLoad(base_url_ + "200-by-300.html"); @@ -4906,7 +4895,7 @@ *dev_tools_emulator->VisibleContentRectForPainting()); } -TEST_P(WebViewTest, ResizeForPrintingViewportUnits) { +TEST_F(WebViewTest, ResizeForPrintingViewportUnits) { WebViewImpl* web_view = web_view_helper_.Initialize(); web_view->Resize(WebSize(800, 600)); @@ -4949,7 +4938,7 @@ EXPECT_EQ(800, vw_element->OffsetWidth()); } -TEST_P(WebViewTest, WidthMediaQueryWithPageZoomAfterPrinting) { +TEST_F(WebViewTest, WidthMediaQueryWithPageZoomAfterPrinting) { WebViewImpl* web_view = web_view_helper_.Initialize(); web_view->Resize(WebSize(800, 600)); web_view->SetZoomLevel(WebView::ZoomFactorToZoomLevel(2.0)); @@ -4984,7 +4973,7 @@ GetCSSPropertyColor())); } -TEST_P(WebViewTest, ViewportUnitsPrintingWithPageZoom) { +TEST_F(WebViewTest, ViewportUnitsPrintingWithPageZoom) { WebViewImpl* web_view = web_view_helper_.Initialize(); web_view->Resize(WebSize(800, 600)); web_view->SetZoomLevel(WebView::ZoomFactorToZoomLevel(2.0)); @@ -5023,7 +5012,7 @@ frame->PrintEnd(); } -TEST_P(WebViewTest, DeviceEmulationResetScrollbars) { +TEST_F(WebViewTest, DeviceEmulationResetScrollbars) { WebViewImpl* web_view = web_view_helper_.Initialize(); web_view->Resize(WebSize(800, 600)); @@ -5070,7 +5059,7 @@ } } -TEST_P(WebViewTest, SetZoomLevelWhilePluginFocused) { +TEST_F(WebViewTest, SetZoomLevelWhilePluginFocused) { class PluginCreatingWebFrameClient : public FrameTestHelpers::TestWebFrameClient { public: @@ -5105,7 +5094,7 @@ // Tests that a layout update that detaches a plugin doesn't crash if the // plugin tries to execute script while being destroyed. -TEST_P(WebViewTest, DetachPluginInLayout) { +TEST_F(WebViewTest, DetachPluginInLayout) { class ScriptInDestroyPlugin : public FakeWebPlugin { public: ScriptInDestroyPlugin(WebLocalFrame* frame, const WebPluginParams& params) @@ -5168,7 +5157,7 @@ } // Check that first input delay is correctly reported to the document. -TEST_P(WebViewTest, FirstInputDelayReported) { +TEST_F(WebViewTest, FirstInputDelayReported) { WebViewImpl* web_view = web_view_helper_.Initialize(); WebURL base_url = URLTestHelpers::ToKURL("http://example.com/"); FrameTestHelpers::LoadHTMLString(web_view->MainFrameImpl(), @@ -5223,7 +5212,7 @@ // Check that first input delay is correctly reported to the document when the // first input is a pointer down event, and we receive a pointer up event. -TEST_P(WebViewTest, PointerDownUpFirstInputDelay) { +TEST_F(WebViewTest, PointerDownUpFirstInputDelay) { WebViewImpl* web_view = web_view_helper_.Initialize(); WebURL base_url = URLTestHelpers::ToKURL("http://example.com/"); FrameTestHelpers::LoadHTMLString(web_view->MainFrameImpl(), @@ -5270,7 +5259,7 @@ // Check that first input delay isn't reported to the document when the // first input is a pointer down event followed by a pointer cancel event. -TEST_P(WebViewTest, PointerDownCancelFirstInputDelay) { +TEST_F(WebViewTest, PointerDownCancelFirstInputDelay) { WebViewImpl* web_view = web_view_helper_.Initialize(); WebURL base_url = URLTestHelpers::ToKURL("http://example.com/"); FrameTestHelpers::LoadHTMLString(web_view->MainFrameImpl(), @@ -5314,7 +5303,7 @@ } // Check that the input delay is correctly reported to the document. -TEST_P(WebViewTest, FirstInputDelayExcludesProcessingTime) { +TEST_F(WebViewTest, FirstInputDelayExcludesProcessingTime) { // We need a way for JS to advance the mock clock. Hook into console.log, so // that logging advances the clock by 6 seconds. class MockClockAdvancingWebFrameClient
diff --git a/third_party/blink/renderer/core/fetch/fetch_response_data.cc b/third_party/blink/renderer/core/fetch/fetch_response_data.cc index 1f5184f..be9274f 100644 --- a/third_party/blink/renderer/core/fetch/fetch_response_data.cc +++ b/third_party/blink/renderer/core/fetch/fetch_response_data.cc
@@ -28,6 +28,15 @@ return result; } +Vector<String> HeaderSetToVector(const WebHTTPHeaderSet& headers) { + Vector<String> result; + result.ReserveInitialCapacity(headers.size()); + // WebHTTPHeaderSet stores headers using Latin1 encoding. + for (const auto& header : headers) + result.push_back(String(header.data(), header.size())); + return result; +} + } // namespace FetchResponseData* FetchResponseData::Create() { @@ -238,6 +247,31 @@ } } +mojom::blink::FetchAPIResponsePtr +FetchResponseData::PopulateFetchAPIResponse() { + if (internal_response_) { + mojom::blink::FetchAPIResponsePtr response = + internal_response_->PopulateFetchAPIResponse(); + response->response_type = type_; + response->cors_exposed_header_names = + HeaderSetToVector(cors_exposed_header_names_); + return response; + } + mojom::blink::FetchAPIResponsePtr response = + mojom::blink::FetchAPIResponse::New(); + response->url_list = url_list_; + response->status_code = status_; + response->status_text = status_message_; + response->response_type = type_; + response->response_time = response_time_; + response->cache_storage_cache_name = cache_storage_cache_name_; + response->cors_exposed_header_names = + HeaderSetToVector(cors_exposed_header_names_); + for (const auto& header : HeaderList()->List()) + response->headers.insert(header.first, header.second); + return response; +} + FetchResponseData::FetchResponseData(Type type, unsigned short status, AtomicString status_message)
diff --git a/third_party/blink/renderer/core/fetch/fetch_response_data.h b/third_party/blink/renderer/core/fetch/fetch_response_data.h index c530f71..dec0cea 100644 --- a/third_party/blink/renderer/core/fetch/fetch_response_data.h +++ b/third_party/blink/renderer/core/fetch/fetch_response_data.h
@@ -11,6 +11,7 @@ #include "base/memory/scoped_refptr.h" #include "services/network/public/mojom/fetch_api.mojom-blink.h" #include "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom-blink.h" +#include "third_party/blink/public/platform/modules/fetch/fetch_api_response.mojom-blink.h" #include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h" #include "third_party/blink/public/platform/web_cors.h" #include "third_party/blink/renderer/core/core_export.h" @@ -99,6 +100,7 @@ // Does not call response.setBlobDataHandle(). void PopulateWebServiceWorkerResponse( WebServiceWorkerResponse& /* response */); + mojom::blink::FetchAPIResponsePtr PopulateFetchAPIResponse(); void Trace(blink::Visitor*);
diff --git a/third_party/blink/renderer/core/fetch/response.cc b/third_party/blink/renderer/core/fetch/response.cc index 03131253..30bf014 100644 --- a/third_party/blink/renderer/core/fetch/response.cc +++ b/third_party/blink/renderer/core/fetch/response.cc
@@ -42,6 +42,39 @@ namespace { +template <typename CORSHeadersContainer> +FetchResponseData* FilterResponseData( + network::mojom::FetchResponseType response_type, + FetchResponseData* response, + CORSHeadersContainer& headers) { + switch (response_type) { + case network::mojom::FetchResponseType::kBasic: + return response->CreateBasicFilteredResponse(); + break; + case network::mojom::FetchResponseType::kCORS: { + WebHTTPHeaderSet header_names; + for (const auto& header : headers) + header_names.insert(header.Ascii().data()); + return response->CreateCORSFilteredResponse(header_names); + break; + } + case network::mojom::FetchResponseType::kOpaque: + return response->CreateOpaqueFilteredResponse(); + break; + case network::mojom::FetchResponseType::kOpaqueRedirect: + return response->CreateOpaqueRedirectFilteredResponse(); + break; + case network::mojom::FetchResponseType::kDefault: + return response; + break; + case network::mojom::FetchResponseType::kError: + DCHECK_EQ(response->GetType(), network::mojom::FetchResponseType::kError); + return response; + break; + } + return response; +} + FetchResponseData* CreateFetchResponseDataFromWebResponse( ScriptState* script_state, const WebServiceWorkerResponse& web_response) { @@ -74,30 +107,43 @@ nullptr /* AbortSignal */)); // Filter the response according to |webResponse|'s ResponseType. - switch (web_response.ResponseType()) { - case network::mojom::FetchResponseType::kBasic: - response = response->CreateBasicFilteredResponse(); - break; - case network::mojom::FetchResponseType::kCORS: { - WebHTTPHeaderSet header_names; - for (const auto& header : web_response.CorsExposedHeaderNames()) - header_names.insert(header.Ascii().data()); - response = response->CreateCORSFilteredResponse(header_names); - break; - } - case network::mojom::FetchResponseType::kOpaque: - response = response->CreateOpaqueFilteredResponse(); - break; - case network::mojom::FetchResponseType::kOpaqueRedirect: - response = response->CreateOpaqueRedirectFilteredResponse(); - break; - case network::mojom::FetchResponseType::kDefault: - break; - case network::mojom::FetchResponseType::kError: - DCHECK_EQ(response->GetType(), network::mojom::FetchResponseType::kError); - break; + response = FilterResponseData(web_response.ResponseType(), response, + web_response.CorsExposedHeaderNames()); + + return response; +} + +FetchResponseData* CreateFetchResponseDataFromFetchAPIResponse( + ScriptState* script_state, + mojom::blink::FetchAPIResponse& fetch_api_response) { + FetchResponseData* response = nullptr; + if (fetch_api_response.status_code > 0) + response = FetchResponseData::Create(); + else + response = FetchResponseData::CreateNetworkErrorResponse(); + + response->SetURLList(fetch_api_response.url_list); + response->SetStatus(fetch_api_response.status_code); + response->SetStatusMessage(WTF::AtomicString(fetch_api_response.status_text)); + response->SetResponseTime(fetch_api_response.response_time); + response->SetCacheStorageCacheName( + fetch_api_response.cache_storage_cache_name); + + for (const auto& header : fetch_api_response.headers) + response->HeaderList()->Append(header.key, header.value); + + if (fetch_api_response.blob) { + response->ReplaceBodyStreamBuffer(new BodyStreamBuffer( + script_state, + new BlobBytesConsumer(ExecutionContext::From(script_state), + fetch_api_response.blob), + nullptr /* AbortSignal */)); } + // Filter the response according to |fetch_api_response|'s ResponseType. + response = FilterResponseData(fetch_api_response.response_type, response, + fetch_api_response.cors_exposed_header_names); + return response; } @@ -296,6 +342,14 @@ return new Response(ExecutionContext::From(script_state), response_data); } +Response* Response::Create(ScriptState* script_state, + mojom::blink::FetchAPIResponse& response) { + auto* fetch_response_data = + CreateFetchResponseDataFromFetchAPIResponse(script_state, response); + return new Response(ExecutionContext::From(script_state), + fetch_response_data); +} + Response* Response::error(ScriptState* script_state) { FetchResponseData* response_data = FetchResponseData::CreateNetworkErrorResponse(); @@ -416,6 +470,10 @@ response_->PopulateWebServiceWorkerResponse(response); } +mojom::blink::FetchAPIResponsePtr Response::PopulateFetchAPIResponse() { + return response_->PopulateFetchAPIResponse(); +} + Response::Response(ExecutionContext* context) : Response(context, FetchResponseData::Create()) {}
diff --git a/third_party/blink/renderer/core/fetch/response.h b/third_party/blink/renderer/core/fetch/response.h index 28cc211..45b81d8 100644 --- a/third_party/blink/renderer/core/fetch/response.h +++ b/third_party/blink/renderer/core/fetch/response.h
@@ -5,6 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FETCH_RESPONSE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FETCH_RESPONSE_H_ +#include "third_party/blink/public/platform/modules/fetch/fetch_api_response.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/dictionary.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/core/core_export.h" @@ -45,6 +46,7 @@ ExceptionState&); static Response* Create(ExecutionContext*, FetchResponseData*); static Response* Create(ScriptState*, const WebServiceWorkerResponse&); + static Response* Create(ScriptState*, mojom::blink::FetchAPIResponse&); static Response* CreateClone(const Response&); @@ -75,6 +77,7 @@ // Does not call response.setBlobDataHandle(). void PopulateWebServiceWorkerResponse( WebServiceWorkerResponse& /* response */); + mojom::blink::FetchAPIResponsePtr PopulateFetchAPIResponse(); bool HasBody() const; BodyStreamBuffer* BodyBuffer() override { return response_->Buffer(); }
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index 0685d4f..2c6e6b9d 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -101,7 +101,6 @@ #include "third_party/blink/renderer/platform/plugins/plugin_script_forbidden_scope.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h" namespace blink {
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 bea5ed4..08c996a 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -131,7 +131,6 @@ #include "third_party/blink/renderer/platform/scroll/scroll_alignment.h" #include "third_party/blink/renderer/platform/scroll/scroll_animator_base.h" #include "third_party/blink/renderer/platform/scroll/scrollbar_theme.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h" #include "third_party/blink/renderer/platform/wtf/time.h" @@ -602,7 +601,8 @@ layout_object->InvalidatePaintRectangle(LayoutRect(paint_invalidation_rect)); } -void LocalFrameView::SetFrameRect(const IntRect& frame_rect) { +void LocalFrameView::SetFrameRect(const IntRect& unclamped_frame_rect) { + IntRect frame_rect(SaturatedRect(unclamped_frame_rect)); if (frame_rect == frame_rect_) return; const bool width_changed = frame_rect_.Width() != frame_rect.Width(); @@ -2166,7 +2166,7 @@ if (!local_frame) { // Clearing the mainframe when there is no focused frame (and hence // no localFrame) is legacy behaviour, and implemented here to - // satisfy ParameterizedWebFrameTest.CompositedSelectionBoundsCleared's + // satisfy WebFrameTest.CompositedSelectionBoundsCleared's // first check that the composited selection has been cleared even // though no frame has focus yet. If this is not desired, then the // expectation needs to be removed from the test.
diff --git a/third_party/blink/renderer/core/frame/settings.json5 b/third_party/blink/renderer/core/frame/settings.json5 index 32d10db..ad56eeaa 100644 --- a/third_party/blink/renderer/core/frame/settings.json5 +++ b/third_party/blink/renderer/core/frame/settings.json5
@@ -815,6 +815,21 @@ initial: false, }, + // Whether data saver holdback for Web APIs is enabled. If enabled, data saver appears + // as disabled to the web consumers even if it has been actually enabled by the user. + { + name: "dataSaverHoldbackWebApi", + initial: false, + }, + + // Whether data saver holdback is enabled when queried by the media APIs within Blink. If + // enabled, data saver appears as disabled to the media APIs even if it has been actually + // enabled by the user. + { + name: "dataSaverHoldbackMediaApi", + initial: false, + }, + // Whether to invalidate device-dependent media queries and restore scroll positions // on frame resize assuming device rotation. {
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc index 6759b04..2024605 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
@@ -26,7 +26,6 @@ #include "third_party/blink/renderer/core/page/drag_actions.h" #include "third_party/blink/renderer/core/page/drag_controller.h" #include "third_party/blink/renderer/core/page/drag_data.h" -#include "third_party/blink/renderer/core/page/drag_session.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/core/page/pointer_lock_controller.h" @@ -238,18 +237,16 @@ screen_point, static_cast<DragOperation>(operations_allowed_)); - DragSession drag_session; - drag_session = GetPage()->GetDragController().DragEnteredOrUpdated( - &drag_data, *local_root_->GetFrame()); + DragOperation drag_operation = + GetPage()->GetDragController().DragEnteredOrUpdated( + &drag_data, *local_root_->GetFrame()); - DragOperation drop_effect = drag_session.operation; - - // Mask the drop effect operation against the drag source's allowed + // Mask the drag operation against the drag source's allowed // operations. - if (!(drop_effect & drag_data.DraggingSourceOperationMask())) - drop_effect = kDragOperationNone; + if (!(drag_operation & drag_data.DraggingSourceOperationMask())) + drag_operation = kDragOperationNone; - drag_operation_ = static_cast<WebDragOperation>(drop_effect); + drag_operation_ = static_cast<WebDragOperation>(drag_operation); return drag_operation_; }
diff --git a/third_party/blink/renderer/core/html/forms/external_popup_menu.h b/third_party/blink/renderer/core/html/forms/external_popup_menu.h index 742f8dd..ae817ac2 100644 --- a/third_party/blink/renderer/core/html/forms/external_popup_menu.h +++ b/third_party/blink/renderer/core/html/forms/external_popup_menu.h
@@ -33,7 +33,6 @@ #include <memory> #include "third_party/blink/public/platform/web_canvas.h" -#include "third_party/blink/public/platform/web_scrollbar.h" #include "third_party/blink/public/web/web_external_popup_menu_client.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/html/forms/popup_menu.h"
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc index 9900480..76207df 100644 --- a/third_party/blink/renderer/core/html/forms/html_form_control_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.cc
@@ -240,6 +240,10 @@ PseudoStateChanged(CSSSelector::kPseudoAutofill); } +void HTMLFormControlElement::SetAutofillSection(const WebString& section) { + autofill_section_ = section; +} + const AtomicString& HTMLFormControlElement::autocapitalize() const { if (!FastGetAttribute(autocapitalizeAttr).IsEmpty()) return HTMLElement::autocapitalize();
diff --git a/third_party/blink/renderer/core/html/forms/html_form_control_element.h b/third_party/blink/renderer/core/html/forms/html_form_control_element.h index 008500b..b842357 100644 --- a/third_party/blink/renderer/core/html/forms/html_form_control_element.h +++ b/third_party/blink/renderer/core/html/forms/html_form_control_element.h
@@ -127,6 +127,11 @@ bool IsAutofilled() const { return is_autofilled_; } void SetAutofilled(bool = true); + // The autofill section to which this element belongs (e.g. billing address, + // shipping address, .. .) + WebString AutofillSection() const { return autofill_section_; } + void SetAutofillSection(const WebString&); + const AtomicString& autocapitalize() const final; static const HTMLFormControlElement* EnclosingFormControlElement(const Node*); @@ -196,16 +201,18 @@ unsigned unique_renderer_form_control_id_; + WebString autofill_section_; + enum AncestorDisabledState { kAncestorDisabledStateUnknown, kAncestorDisabledStateEnabled, kAncestorDisabledStateDisabled }; + mutable AncestorDisabledState ancestor_disabled_state_; enum DataListAncestorState { kUnknown, kInsideDataList, kNotInsideDataList }; mutable enum DataListAncestorState data_list_ancestor_state_; mutable bool may_have_field_set_ancestor_ : 1; - bool is_autofilled_ : 1; bool has_validation_message_ : 1; // The initial value of m_willValidate depends on the derived class. We can't
diff --git a/third_party/blink/renderer/core/html/forms/html_option_element.cc b/third_party/blink/renderer/core/html/forms/html_option_element.cc index c12a371..adfc167 100644 --- a/third_party/blink/renderer/core/html/forms/html_option_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_option_element.cc
@@ -86,16 +86,6 @@ return element; } -void HTMLOptionElement::AttachLayoutTree(AttachContext& context) { - AttachContext option_context(context); - if (!GetNonAttachedStyle() && ParentComputedStyle()) { - if (HTMLSelectElement* select = OwnerSelectElement()) - select->UpdateListOnLayoutObject(); - SetNonAttachedStyle(StyleForLayoutObject()); - } - HTMLElement::AttachLayoutTree(option_context); -} - bool HTMLOptionElement::SupportsFocus() const { HTMLSelectElement* select = OwnerSelectElement(); if (select && select->UsesMenuList())
diff --git a/third_party/blink/renderer/core/html/forms/html_option_element.h b/third_party/blink/renderer/core/html/forms/html_option_element.h index 3ef0a2e..22a3448 100644 --- a/third_party/blink/renderer/core/html/forms/html_option_element.h +++ b/third_party/blink/renderer/core/html/forms/html_option_element.h
@@ -97,7 +97,6 @@ bool SupportsFocus() const override; bool MatchesDefaultPseudoClass() const override; bool MatchesEnabledPseudoClass() const override; - void AttachLayoutTree(AttachContext&) override; void ParseAttribute(const AttributeModificationParams&) override; InsertionNotificationRequest InsertedInto(ContainerNode*) override; void RemovedFrom(ContainerNode*) override;
diff --git a/third_party/blink/renderer/core/html/forms/html_select_element.cc b/third_party/blink/renderer/core/html/forms/html_select_element.cc index 4915251..db3a150 100644 --- a/third_party/blink/renderer/core/html/forms/html_select_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_select_element.cc
@@ -1834,10 +1834,6 @@ return true; } -void HTMLSelectElement::UpdateListOnLayoutObject() { - SetOptionsChangedOnLayoutObject(); -} - void HTMLSelectElement::Trace(blink::Visitor* visitor) { visitor->Trace(list_items_); visitor->Trace(last_on_change_option_);
diff --git a/third_party/blink/renderer/core/html/forms/html_select_element.h b/third_party/blink/renderer/core/html/forms/html_select_element.h index 76a8880..ee6b5ea5 100644 --- a/third_party/blink/renderer/core/html/forms/html_select_element.h +++ b/third_party/blink/renderer/core/html/forms/html_select_element.h
@@ -136,8 +136,6 @@ void OptGroupInsertedOrRemoved(HTMLOptGroupElement&); void HrInsertedOrRemoved(HTMLHRElement&); - void UpdateListOnLayoutObject(); - HTMLOptionElement* SpatialNavigationFocusedOption(); void HandleMouseRelease();
diff --git a/third_party/blink/renderer/core/html/html_slot_element.cc b/third_party/blink/renderer/core/html/html_slot_element.cc index 00e871b..0ff731c 100644 --- a/third_party/blink/renderer/core/html/html_slot_element.cc +++ b/third_party/blink/renderer/core/html/html_slot_element.cc
@@ -337,20 +337,6 @@ } void HTMLSlotElement::AttachLayoutTree(AttachContext& context) { - if (!GetNonAttachedStyle() && ParentComputedStyle()) { - // The select/optgroup/option assumes computed style is stored on optgroup - // and option even when they are display:none to update selected indices - // correctly. See HTMLOptionElement::IsDisplayNone(). The select and - // optgroup elements use a UA shadow with slots for rendering. With slot - // elements in the flat tree, we need to ensure that also the slot element - // child of optgroups gets their ComputedStyle set in order to inherit and - // set the ComputedStyle of display:none option elements. - if (Element* host = ParentOrShadowHostElement()) { - if (IsHTMLOptGroupElement(host)) - SetNonAttachedStyle(StyleForLayoutObject()); - } - } - HTMLElement::AttachLayoutTree(context); if (SupportsAssignment()) {
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc index 0d7a277..2b382dc 100644 --- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc +++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
@@ -349,7 +349,10 @@ if (element_->IsHTMLVideoElement() && element_->muted() && RuntimeEnabledFeatures::AutoplayMutedVideosEnabled() && !(element_->GetDocument().GetSettings() && - GetNetworkStateNotifier().SaveDataEnabled()) && + GetNetworkStateNotifier().SaveDataEnabled() && + !element_->GetDocument() + .GetSettings() + ->GetDataSaverHoldbackMediaApi()) && !(element_->GetDocument().GetSettings() && element_->GetDocument() .GetSettings()
diff --git a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc index 4ce160c..74d55d4 100644 --- a/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc +++ b/third_party/blink/renderer/core/html/media/autoplay_uma_helper.cc
@@ -11,6 +11,7 @@ #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/element_visibility_observer.h" #include "third_party/blink/renderer/core/dom/events/event.h" +#include "third_party/blink/renderer/core/frame/settings.h" #include "third_party/blink/renderer/core/frame/use_counter.h" #include "third_party/blink/renderer/core/html/media/autoplay_policy.h" #include "third_party/blink/renderer/core/html/media/html_media_element.h" @@ -175,14 +176,17 @@ // Record if it will be blocked by Data Saver or Autoplay setting. if (element_->IsHTMLVideoElement() && element_->muted() && RuntimeEnabledFeatures::AutoplayMutedVideosEnabled()) { - bool data_saver_enabled = GetNetworkStateNotifier().SaveDataEnabled(); + bool data_saver_enabled_for_autoplay = + GetNetworkStateNotifier().SaveDataEnabled() && + element_->GetDocument().GetSettings() && + !element_->GetDocument().GetSettings()->GetDataSaverHoldbackMediaApi(); bool blocked_by_setting = !element_->GetAutoplayPolicy().IsAutoplayAllowedPerSettings(); - if (data_saver_enabled && blocked_by_setting) { + if (data_saver_enabled_for_autoplay && blocked_by_setting) { blocked_muted_video_histogram.Count( kAutoplayBlockedReasonDataSaverAndSetting); - } else if (data_saver_enabled) { + } else if (data_saver_enabled_for_autoplay) { blocked_muted_video_histogram.Count(kAutoplayBlockedReasonDataSaver); } else if (blocked_by_setting) { blocked_muted_video_histogram.Count(kAutoplayBlockedReasonSetting);
diff --git a/third_party/blink/renderer/core/html/media/html_media_element.cc b/third_party/blink/renderer/core/html/media/html_media_element.cc index f6fc427..21f33d8 100644 --- a/third_party/blink/renderer/core/html/media/html_media_element.cc +++ b/third_party/blink/renderer/core/html/media/html_media_element.cc
@@ -2306,7 +2306,8 @@ // If the source scheme is requires network, force preload to 'none' on Data // Saver and for low end devices. if (GetDocument().GetSettings() && - (GetNetworkStateNotifier().SaveDataEnabled() || + ((GetNetworkStateNotifier().SaveDataEnabled() && + !GetDocument().GetSettings()->GetDataSaverHoldbackMediaApi()) || GetDocument().GetSettings()->GetForcePreloadNoneForMediaElements()) && (current_src_.Protocol() != "blob" && current_src_.Protocol() != "data" && current_src_.Protocol() != "file")) {
diff --git a/third_party/blink/renderer/core/html/parser/preload_request.cc b/third_party/blink/renderer/core/html/parser/preload_request.cc index 5827b86..ec5a4f71 100644 --- a/third_party/blink/renderer/core/html/parser/preload_request.cc +++ b/third_party/blink/renderer/core/html/parser/preload_request.cc
@@ -98,7 +98,7 @@ speculative_preload_type = FetchParameters::SpeculativePreloadType::kInserted; } - params.SetSpeculativePreloadType(speculative_preload_type, discovery_time_); + params.SetSpeculativePreloadType(speculative_preload_type); if (resource_type_ == Resource::kScript) { MaybeDisallowFetchForDocWrittenScript(params, *document);
diff --git a/third_party/blink/renderer/core/html/parser/preload_request.h b/third_party/blink/renderer/core/html/parser/preload_request.h index b022d2a0..667559e9 100644 --- a/third_party/blink/renderer/core/html/parser/preload_request.h +++ b/third_party/blink/renderer/core/html/parser/preload_request.h
@@ -136,7 +136,6 @@ resource_type_(resource_type), script_type_(ScriptType::kClassic), cross_origin_(kCrossOriginAttributeNotSet), - discovery_time_(CurrentTimeTicksInSeconds()), defer_(FetchParameters::kNoDefer), resource_width_(resource_width), client_hints_preferences_(client_hints_preferences), @@ -157,7 +156,6 @@ ScriptType script_type_; CrossOriginAttributeValue cross_origin_; String nonce_; - double discovery_time_; FetchParameters::DeferOption defer_; FetchParameters::ResourceWidth resource_width_; ClientHintsPreferences client_hints_preferences_;
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc index 801d8d4..0c6fcad 100644 --- a/third_party/blink/renderer/core/layout/layout_object.cc +++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -3400,8 +3400,6 @@ if (type == kCached) { // A first-line style is in effect. Cache a first-line style for // ourselves. - layout_object_for_first_line_style->MutableStyleRef().SetHasPseudoStyle( - kPseudoIdFirstLineInherited); return layout_object_for_first_line_style->GetCachedPseudoStyle( kPseudoIdFirstLineInherited, parent_style); }
diff --git a/third_party/blink/renderer/core/layout/layout_tree_as_text.cc b/third_party/blink/renderer/core/layout/layout_tree_as_text.cc index 6ba7a88..58022bd 100644 --- a/third_party/blink/renderer/core/layout/layout_tree_as_text.cc +++ b/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
@@ -67,7 +67,8 @@ using namespace HTMLNames; -static void PrintBorderStyle(TextStream& ts, const EBorderStyle border_style) { +static void PrintBorderStyle(WTF::TextStream& ts, + const EBorderStyle border_style) { switch (border_style) { case EBorderStyle::kNone: ts << "none"; @@ -141,11 +142,11 @@ return result.ToString(); } -TextStream& operator<<(TextStream& ts, const Color& c) { +WTF::TextStream& operator<<(WTF::TextStream& ts, const Color& c) { return ts << c.NameForLayoutTreeAsText(); } -void LayoutTreeAsText::WriteLayoutObject(TextStream& ts, +void LayoutTreeAsText::WriteLayoutObject(WTF::TextStream& ts, const LayoutObject& o, LayoutAsTextBehavior behavior) { ts << o.DecoratedName(); @@ -363,7 +364,9 @@ } } -static void WriteInlineBox(TextStream& ts, const InlineBox& box, int indent) { +static void WriteInlineBox(WTF::TextStream& ts, + const InlineBox& box, + int indent) { WriteIndent(ts, indent); ts << "+ "; ts << box.BoxName() << " {" << box.GetLineLayoutItem().DebugName() << "}" @@ -373,7 +376,7 @@ << box.BaselinePosition(kIdeographicBaseline); } -static void WriteInlineTextBox(TextStream& ts, +static void WriteInlineTextBox(WTF::TextStream& ts, const InlineTextBox& text_box, int indent) { WriteInlineBox(ts, text_box, indent); @@ -386,7 +389,7 @@ << " \"" << value << "\""; } -static void WriteInlineFlowBox(TextStream& ts, +static void WriteInlineFlowBox(WTF::TextStream& ts, const InlineFlowBox& root_box, int indent) { WriteInlineBox(ts, root_box, indent); @@ -407,7 +410,7 @@ } } -void LayoutTreeAsText::WriteLineBoxTree(TextStream& ts, +void LayoutTreeAsText::WriteLineBoxTree(WTF::TextStream& ts, const LayoutBlockFlow& o, int indent) { for (const InlineFlowBox* root_box : o.LineBoxes()) { @@ -415,7 +418,7 @@ } } -static void WriteTextRun(TextStream& ts, +static void WriteTextRun(WTF::TextStream& ts, const LayoutText& o, const InlineTextBox& run) { // FIXME: For now use an "enclosingIntRect" model for x, y and logicalWidth, @@ -444,7 +447,7 @@ ts << "\n"; } -static void WriteTextFragment(TextStream& ts, +static void WriteTextFragment(WTF::TextStream& ts, const NGPhysicalFragment& physical_fragment, NGPhysicalOffset offset_to_container_box) { if (!physical_fragment.IsText()) @@ -464,7 +467,7 @@ ts << "\n"; } -static void WritePaintProperties(TextStream& ts, +static void WritePaintProperties(WTF::TextStream& ts, const LayoutObject& o, int indent) { bool has_fragments = o.FirstFragment().NextFragment(); @@ -490,7 +493,7 @@ } } -void Write(TextStream& ts, +void Write(WTF::TextStream& ts, const LayoutObject& o, int indent, LayoutAsTextBehavior behavior) { @@ -585,7 +588,7 @@ kLayerPaintPhaseForeground = 1 }; -static void Write(TextStream& ts, +static void Write(WTF::TextStream& ts, PaintLayer& layer, const LayoutRect& layer_bounds, const LayoutRect& background_clip_rect, @@ -704,7 +707,7 @@ return vector; } -void LayoutTreeAsText::WriteLayers(TextStream& ts, +void LayoutTreeAsText::WriteLayers(WTF::TextStream& ts, const PaintLayer* root_layer, PaintLayer* layer, const LayoutRect& paint_rect, @@ -830,7 +833,7 @@ return result.ToString(); } -static void WriteSelection(TextStream& ts, const LayoutObject* o) { +static void WriteSelection(WTF::TextStream& ts, const LayoutObject* o) { Node* n = o->GetNode(); if (!n || !n->IsDocumentNode()) return; @@ -860,7 +863,7 @@ static String ExternalRepresentation(LayoutBox* layout_object, LayoutAsTextBehavior behavior, const PaintLayer* marked_layer = nullptr) { - TextStream ts; + WTF::TextStream ts; if (!layout_object->HasLayer()) return ts.Release(); @@ -918,7 +921,7 @@ behavior | kLayoutAsTextShowAllLayers); } -static void WriteCounterValuesFromChildren(TextStream& stream, +static void WriteCounterValuesFromChildren(WTF::TextStream& stream, LayoutObject* parent, bool& is_first_counter) { for (LayoutObject* child = parent->SlowFirstChild(); child; @@ -935,7 +938,7 @@ String CounterValueForElement(Element* element) { element->GetDocument().UpdateStyleAndLayout(); - TextStream stream; + WTF::TextStream stream; bool is_first_counter = true; // The counter layoutObjects should be children of :before or :after // pseudo-elements.
diff --git a/third_party/blink/renderer/core/layout/layout_tree_as_text.h b/third_party/blink/renderer/core/layout/layout_tree_as_text.h index 601a9dd2..2c6191a 100644 --- a/third_party/blink/renderer/core/layout/layout_tree_as_text.h +++ b/third_party/blink/renderer/core/layout/layout_tree_as_text.h
@@ -27,9 +27,9 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_TREE_AS_TEXT_H_ #include "third_party/blink/renderer/core/core_export.h" -#include "third_party/blink/renderer/platform/text/text_stream.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/text/text_stream.h" namespace blink { @@ -40,7 +40,6 @@ class LocalFrame; class LayoutBlockFlow; class LayoutObject; -class TextStream; enum LayoutAsTextBehaviorFlags { kLayoutAsTextBehaviorNormal = 0, @@ -77,7 +76,7 @@ CORE_EXPORT String ExternalRepresentation(Element*, LayoutAsTextBehavior = kLayoutAsTextBehaviorNormal); -void Write(TextStream&, +void Write(WTF::TextStream&, const LayoutObject&, int indent = 0, LayoutAsTextBehavior = kLayoutAsTextBehaviorNormal); @@ -89,17 +88,17 @@ // (This just involves rebaselining many results though, so for now it's // not being done). public: - static void WriteLayoutObject(TextStream&, + static void WriteLayoutObject(WTF::TextStream&, const LayoutObject&, LayoutAsTextBehavior); - static void WriteLayers(TextStream&, + static void WriteLayers(WTF::TextStream&, const PaintLayer* root_layer, PaintLayer*, const LayoutRect& paint_dirty_rect, int indent = 0, LayoutAsTextBehavior = kLayoutAsTextBehaviorNormal, const PaintLayer* marked_layer = nullptr); - static void WriteLineBoxTree(TextStream&, + static void WriteLineBoxTree(WTF::TextStream&, const LayoutBlockFlow&, int indent = 0); }; @@ -111,7 +110,7 @@ CORE_EXPORT String MarkerTextForListItem(Element*); -TextStream& operator<<(TextStream&, const Color&); +WTF::TextStream& operator<<(WTF::TextStream&, const Color&); } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc b/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc index 6f046102..522f43c 100644 --- a/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc +++ b/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc
@@ -86,13 +86,13 @@ : separator_(s), need_to_separate_(false) {} private: - friend TextStream& operator<<(TextStream&, TextStreamSeparator&); + friend WTF::TextStream& operator<<(WTF::TextStream&, TextStreamSeparator&); String separator_; bool need_to_separate_; }; -TextStream& operator<<(TextStream& ts, TextStreamSeparator& sep) { +WTF::TextStream& operator<<(WTF::TextStream& ts, TextStreamSeparator& sep) { if (sep.need_to_separate_) ts << sep.separator_; else @@ -101,20 +101,20 @@ } template <typename ValueType> -static void WriteNameValuePair(TextStream& ts, +static void WriteNameValuePair(WTF::TextStream& ts, const char* name, ValueType value) { ts << " [" << name << "=" << value << "]"; } template <typename ValueType> -static void WriteNameAndQuotedValue(TextStream& ts, +static void WriteNameAndQuotedValue(WTF::TextStream& ts, const char* name, ValueType value) { ts << " [" << name << "=\"" << value << "\"]"; } -static void WriteIfNotEmpty(TextStream& ts, +static void WriteIfNotEmpty(WTF::TextStream& ts, const char* name, const String& value) { if (!value.IsEmpty()) @@ -122,7 +122,7 @@ } template <typename ValueType> -static void WriteIfNotDefault(TextStream& ts, +static void WriteIfNotDefault(WTF::TextStream& ts, const char* name, ValueType value, ValueType default_value) { @@ -130,7 +130,8 @@ WriteNameValuePair(ts, name, value); } -TextStream& operator<<(TextStream& ts, const AffineTransform& transform) { +WTF::TextStream& operator<<(WTF::TextStream& ts, + const AffineTransform& transform) { if (transform.IsIdentity()) { ts << "identity"; } else { @@ -142,7 +143,7 @@ return ts; } -static TextStream& operator<<(TextStream& ts, const WindRule rule) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, const WindRule rule) { switch (rule) { case RULE_NONZERO: ts << "NON-ZERO"; @@ -174,39 +175,26 @@ } // namespace -static TextStream& operator<<(TextStream& ts, - const SVGUnitTypes::SVGUnitType& unit_type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const SVGUnitTypes::SVGUnitType& unit_type) { ts << SVGEnumerationToString<SVGUnitTypes::SVGUnitType>(unit_type); return ts; } -static TextStream& operator<<(TextStream& ts, - const SVGMarkerUnitsType& marker_unit) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const SVGMarkerUnitsType& marker_unit) { ts << SVGEnumerationToString<SVGMarkerUnitsType>(marker_unit); return ts; } -static TextStream& operator<<(TextStream& ts, - const SVGMarkerOrientType& orient_type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const SVGMarkerOrientType& orient_type) { ts << SVGEnumerationToString<SVGMarkerOrientType>(orient_type); return ts; } -// FIXME: Maybe this should be in DashArray.cpp -static TextStream& operator<<(TextStream& ts, const DashArray& a) { - ts << "{"; - DashArray::const_iterator end = a.end(); - for (DashArray::const_iterator it = a.begin(); it != end; ++it) { - if (it != a.begin()) - ts << ", "; - ts << *it; - } - ts << "}"; - return ts; -} - // FIXME: Maybe this should be in GraphicsTypes.cpp -static TextStream& operator<<(TextStream& ts, LineCap style) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, LineCap style) { switch (style) { case kButtCap: ts << "BUTT"; @@ -222,7 +210,7 @@ } // FIXME: Maybe this should be in GraphicsTypes.cpp -static TextStream& operator<<(TextStream& ts, LineJoin style) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, LineJoin style) { switch (style) { case kMiterJoin: ts << "MITER"; @@ -237,13 +225,14 @@ return ts; } -static TextStream& operator<<(TextStream& ts, const SVGSpreadMethodType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const SVGSpreadMethodType& type) { ts << SVGEnumerationToString<SVGSpreadMethodType>(type).UpperASCII(); return ts; } static void WriteSVGPaintingResource( - TextStream& ts, + WTF::TextStream& ts, const SVGPaintDescription& paint_description) { DCHECK(paint_description.is_valid); if (!paint_description.resource) { @@ -268,7 +257,7 @@ ts << " [id=\"" << element->GetIdAttribute() << "\"]"; } -static void WriteStyle(TextStream& ts, const LayoutObject& object) { +static void WriteStyle(WTF::TextStream& ts, const LayoutObject& object) { const ComputedStyle& style = object.StyleRef(); const SVGComputedStyle& svg_style = style.SvgStyle(); @@ -331,14 +320,15 @@ WriteIfNotEmpty(ts, "end marker", svg_style.MarkerEndResource()); } -static TextStream& WritePositionAndStyle(TextStream& ts, - const LayoutObject& object) { +static WTF::TextStream& WritePositionAndStyle(WTF::TextStream& ts, + const LayoutObject& object) { ts << " " << object.ObjectBoundingBox(); WriteStyle(ts, object); return ts; } -static TextStream& operator<<(TextStream& ts, const LayoutSVGShape& shape) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const LayoutSVGShape& shape) { WritePositionAndStyle(ts, shape); SVGElement* svg_element = shape.GetElement(); @@ -410,13 +400,15 @@ return ts; } -static TextStream& operator<<(TextStream& ts, const LayoutSVGRoot& root) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const LayoutSVGRoot& root) { ts << " " << root.FrameRect(); WriteStyle(ts, root); return ts; } -static void WriteLayoutSVGTextBox(TextStream& ts, const LayoutSVGText& text) { +static void WriteLayoutSVGTextBox(WTF::TextStream& ts, + const LayoutSVGText& text) { SVGRootInlineBox* box = ToSVGRootInlineBox(text.FirstRootBox()); if (!box) return; @@ -433,7 +425,7 @@ } } -static inline void WriteSVGInlineTextBox(TextStream& ts, +static inline void WriteSVGInlineTextBox(WTF::TextStream& ts, SVGInlineTextBox* text_box, int indent) { Vector<SVGTextFragment>& fragments = text_box->TextFragments(); @@ -498,7 +490,7 @@ } } -static inline void WriteSVGInlineTextBoxes(TextStream& ts, +static inline void WriteSVGInlineTextBoxes(WTF::TextStream& ts, const LayoutText& text, int indent) { for (InlineTextBox* box : text.TextBoxes()) { @@ -509,7 +501,7 @@ } } -static void WriteStandardPrefix(TextStream& ts, +static void WriteStandardPrefix(WTF::TextStream& ts, const LayoutObject& object, int indent) { WriteIndent(ts, indent); @@ -519,7 +511,7 @@ ts << " {" << object.GetNode()->nodeName() << "}"; } -static void WriteChildren(TextStream& ts, +static void WriteChildren(WTF::TextStream& ts, const LayoutObject& object, int indent) { for (LayoutObject* child = object.SlowFirstChild(); child; @@ -528,7 +520,7 @@ } static inline void WriteCommonGradientProperties( - TextStream& ts, + WTF::TextStream& ts, const GradientAttributes& attrs) { WriteNameValuePair(ts, "gradientUnits", attrs.GradientUnits()); @@ -546,7 +538,7 @@ } } -void WriteSVGResourceContainer(TextStream& ts, +void WriteSVGResourceContainer(WTF::TextStream& ts, const LayoutObject& object, int indent) { WriteStandardPrefix(ts, object, indent); @@ -652,7 +644,7 @@ WriteChildren(ts, object, indent); } -void WriteSVGContainer(TextStream& ts, +void WriteSVGContainer(WTF::TextStream& ts, const LayoutObject& container, int indent) { // Currently LayoutSVGResourceFilterPrimitive has no meaningful output. @@ -665,13 +657,13 @@ WriteChildren(ts, container, indent); } -void Write(TextStream& ts, const LayoutSVGRoot& root, int indent) { +void Write(WTF::TextStream& ts, const LayoutSVGRoot& root, int indent) { WriteStandardPrefix(ts, root, indent); ts << root << "\n"; WriteChildren(ts, root, indent); } -void WriteSVGText(TextStream& ts, const LayoutSVGText& text, int indent) { +void WriteSVGText(WTF::TextStream& ts, const LayoutSVGText& text, int indent) { WriteStandardPrefix(ts, text, indent); WritePositionAndStyle(ts, text); WriteLayoutSVGTextBox(ts, text); @@ -680,7 +672,9 @@ WriteChildren(ts, text, indent); } -void WriteSVGInline(TextStream& ts, const LayoutSVGInline& text, int indent) { +void WriteSVGInline(WTF::TextStream& ts, + const LayoutSVGInline& text, + int indent) { WriteStandardPrefix(ts, text, indent); WritePositionAndStyle(ts, text); ts << "\n"; @@ -688,7 +682,7 @@ WriteChildren(ts, text, indent); } -void WriteSVGInlineText(TextStream& ts, +void WriteSVGInlineText(WTF::TextStream& ts, const LayoutSVGInlineText& text, int indent) { WriteStandardPrefix(ts, text, indent); @@ -698,20 +692,24 @@ WriteSVGInlineTextBoxes(ts, text, indent); } -void WriteSVGImage(TextStream& ts, const LayoutSVGImage& image, int indent) { +void WriteSVGImage(WTF::TextStream& ts, + const LayoutSVGImage& image, + int indent) { WriteStandardPrefix(ts, image, indent); WritePositionAndStyle(ts, image); ts << "\n"; WriteResources(ts, image, indent); } -void Write(TextStream& ts, const LayoutSVGShape& shape, int indent) { +void Write(WTF::TextStream& ts, const LayoutSVGShape& shape, int indent) { WriteStandardPrefix(ts, shape, indent); ts << shape << "\n"; WriteResources(ts, shape, indent); } -void WriteResources(TextStream& ts, const LayoutObject& object, int indent) { +void WriteResources(WTF::TextStream& ts, + const LayoutObject& object, + int indent) { SVGResources* resources = SVGResourcesCache::CachedResourcesForLayoutObject(object); if (!resources)
diff --git a/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.h b/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.h index 25f79408..c322a891 100644 --- a/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.h +++ b/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.h
@@ -26,7 +26,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_LAYOUT_TREE_AS_TEXT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_LAYOUT_TREE_AS_TEXT_H_ -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -39,15 +39,19 @@ class LayoutSVGText; // functions used by the main LayoutTreeAsText code -void Write(TextStream&, const LayoutSVGShape&, int indent); -void Write(TextStream&, const LayoutSVGRoot&, int indent); -void WriteSVGResourceContainer(TextStream&, const LayoutObject&, int indent); -void WriteSVGContainer(TextStream&, const LayoutObject&, int indent); -void WriteSVGImage(TextStream&, const LayoutSVGImage&, int indent); -void WriteSVGInlineText(TextStream&, const LayoutSVGInlineText&, int indent); -void WriteSVGText(TextStream&, const LayoutSVGText&, int indent); -void WriteSVGInline(TextStream&, const LayoutSVGInline&, int indent); -void WriteResources(TextStream&, const LayoutObject&, int indent); +void Write(WTF::TextStream&, const LayoutSVGShape&, int indent); +void Write(WTF::TextStream&, const LayoutSVGRoot&, int indent); +void WriteSVGResourceContainer(WTF::TextStream&, + const LayoutObject&, + int indent); +void WriteSVGContainer(WTF::TextStream&, const LayoutObject&, int indent); +void WriteSVGImage(WTF::TextStream&, const LayoutSVGImage&, int indent); +void WriteSVGInlineText(WTF::TextStream&, + const LayoutSVGInlineText&, + int indent); +void WriteSVGText(WTF::TextStream&, const LayoutSVGText&, int indent); +void WriteSVGInline(WTF::TextStream&, const LayoutSVGInline&, int indent); +void WriteResources(WTF::TextStream&, const LayoutObject&, int indent); } // namespace blink
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 b5c7d69..642842d 100644 --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -271,7 +271,8 @@ FrameFetchContext::FrameFetchContext(DocumentLoader* loader, Document* document) : document_loader_(loader), document_(document), - save_data_enabled_(GetNetworkStateNotifier().SaveDataEnabled()) { + save_data_enabled_(GetNetworkStateNotifier().SaveDataEnabled() && + !GetSettings()->GetDataSaverHoldbackWebApi()) { DCHECK(GetFrame()); }
diff --git a/third_party/blink/renderer/core/page/BUILD.gn b/third_party/blink/renderer/core/page/BUILD.gn index d5508fb8..029ba5fd 100644 --- a/third_party/blink/renderer/core/page/BUILD.gn +++ b/third_party/blink/renderer/core/page/BUILD.gn
@@ -22,7 +22,6 @@ "drag_controller.h", "drag_data.cc", "drag_data.h", - "drag_session.h", "drag_state.h", "event_with_hit_test_results.h", "focus_changed_observer.cc",
diff --git a/third_party/blink/renderer/core/page/drag_controller.cc b/third_party/blink/renderer/core/page/drag_controller.cc index 3c0a99c..0e5a2d63 100644 --- a/third_party/blink/renderer/core/page/drag_controller.cc +++ b/third_party/blink/renderer/core/page/drag_controller.cc
@@ -76,7 +76,6 @@ #include "third_party/blink/renderer/core/loader/resource/image_resource_content.h" #include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/drag_data.h" -#include "third_party/blink/renderer/core/page/drag_session.h" #include "third_party/blink/renderer/core/page/drag_state.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/svg/graphics/svg_image_for_container.h" @@ -319,8 +318,8 @@ document_under_mouse_ = new_document; } -DragSession DragController::DragEnteredOrUpdated(DragData* drag_data, - LocalFrame& local_root) { +DragOperation DragController::DragEnteredOrUpdated(DragData* drag_data, + LocalFrame& local_root) { DCHECK(drag_data); MouseMovedIntoDocument( @@ -333,13 +332,13 @@ : static_cast<DragDestinationAction>(kDragDestinationActionDHTML | kDragDestinationActionEdit); - DragSession drag_session; + DragOperation drag_operation = kDragOperationNone; document_is_handling_drag_ = TryDocumentDrag( - drag_data, drag_destination_action_, drag_session, local_root); + drag_data, drag_destination_action_, drag_operation, local_root); if (!document_is_handling_drag_ && (drag_destination_action_ & kDragDestinationActionLoad)) - drag_session.operation = OperationForLoad(drag_data, local_root); - return drag_session; + drag_operation = OperationForLoad(drag_data, local_root); + return drag_operation; } static HTMLInputElement* AsFileInput(Node* node) { @@ -370,7 +369,7 @@ bool DragController::TryDocumentDrag(DragData* drag_data, DragDestinationAction action_mask, - DragSession& drag_session, + DragOperation& drag_operation, LocalFrame& local_root) { DCHECK(drag_data); @@ -383,8 +382,7 @@ bool is_handling_drag = false; if (action_mask & kDragDestinationActionDHTML) { - is_handling_drag = - TryDHTMLDrag(drag_data, drag_session.operation, local_root); + is_handling_drag = TryDHTMLDrag(drag_data, drag_operation, local_root); // Do not continue if m_documentUnderMouse has been reset by tryDHTMLDrag. // tryDHTMLDrag fires dragenter event. The event listener that listens // to this event may create a nested run loop (open a modal dialog), @@ -426,32 +424,20 @@ } LocalFrame* inner_frame = element->GetDocument().GetFrame(); - drag_session.operation = DragIsMove(inner_frame->Selection(), drag_data) - ? kDragOperationMove - : kDragOperationCopy; - drag_session.mouse_is_over_file_input = file_input_element_under_mouse_; - drag_session.number_of_items_to_be_accepted = 0; - - const unsigned number_of_files = drag_data->NumberOfFiles(); + drag_operation = DragIsMove(inner_frame->Selection(), drag_data) + ? kDragOperationMove + : kDragOperationCopy; if (file_input_element_under_mouse_) { - if (file_input_element_under_mouse_->IsDisabledFormControl()) - drag_session.number_of_items_to_be_accepted = 0; - else if (file_input_element_under_mouse_->Multiple()) - drag_session.number_of_items_to_be_accepted = number_of_files; - else if (number_of_files == 1) - drag_session.number_of_items_to_be_accepted = 1; - else - drag_session.number_of_items_to_be_accepted = 0; - - if (!drag_session.number_of_items_to_be_accepted) - drag_session.operation = kDragOperationNone; + bool can_receive_dropped_files = false; + if (!file_input_element_under_mouse_->IsDisabledFormControl()) { + can_receive_dropped_files = file_input_element_under_mouse_->Multiple() + ? drag_data->NumberOfFiles() > 0 + : drag_data->NumberOfFiles() == 1; + } + if (!can_receive_dropped_files) + drag_operation = kDragOperationNone; file_input_element_under_mouse_->SetCanReceiveDroppedFiles( - drag_session.number_of_items_to_be_accepted); - } else { - // We are not over a file input element. The dragged item(s) will only - // be loaded into the view the number of dragged items is 1. - drag_session.number_of_items_to_be_accepted = - number_of_files != 1 ? 0 : 1; + can_receive_dropped_files); } return true;
diff --git a/third_party/blink/renderer/core/page/drag_controller.h b/third_party/blink/renderer/core/page/drag_controller.h index c687994..8629b14 100644 --- a/third_party/blink/renderer/core/page/drag_controller.h +++ b/third_party/blink/renderer/core/page/drag_controller.h
@@ -41,7 +41,6 @@ class Document; class DragData; class DragImage; -struct DragSession; class DragState; class LocalFrame; class FloatRect; @@ -56,7 +55,7 @@ public: static DragController* Create(Page*); - DragSession DragEnteredOrUpdated(DragData*, LocalFrame& local_root); + DragOperation DragEnteredOrUpdated(DragData*, LocalFrame& local_root); void DragExited(DragData*, LocalFrame& local_root); void PerformDrag(DragData*, LocalFrame& local_root); @@ -99,7 +98,7 @@ DragOperation OperationForLoad(DragData*, LocalFrame& local_root); bool TryDocumentDrag(DragData*, DragDestinationAction, - DragSession&, + DragOperation&, LocalFrame& local_root); bool TryDHTMLDrag(DragData*, DragOperation&, LocalFrame& local_root); DragOperation GetDragOperation(DragData*);
diff --git a/third_party/blink/renderer/core/page/drag_controller_test.cc b/third_party/blink/renderer/core/page/drag_controller_test.cc index 908a4a9..f8a1996 100644 --- a/third_party/blink/renderer/core/page/drag_controller_test.cc +++ b/third_party/blink/renderer/core/page/drag_controller_test.cc
@@ -14,7 +14,6 @@ #include "third_party/blink/renderer/core/frame/visual_viewport.h" #include "third_party/blink/renderer/core/page/autoscroll_controller.h" #include "third_party/blink/renderer/core/page/drag_data.h" -#include "third_party/blink/renderer/core/page/drag_session.h" #include "third_party/blink/renderer/core/page/drag_state.h" #include "third_party/blink/renderer/core/testing/core_unit_test_helper.h" #include "third_party/blink/renderer/core/testing/sim/sim_request.h"
diff --git a/third_party/blink/renderer/core/page/drag_session.h b/third_party/blink/renderer/core/page/drag_session.h deleted file mode 100644 index 30fd166..0000000 --- a/third_party/blink/renderer/core/page/drag_session.h +++ /dev/null
@@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_DRAG_SESSION_H_ -#define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_DRAG_SESSION_H_ - -#include "third_party/blink/renderer/core/page/drag_actions.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" - -namespace blink { - -struct DragSession { - STACK_ALLOCATED(); - DragOperation operation; - bool mouse_is_over_file_input; - unsigned number_of_items_to_be_accepted; - - DragSession() - : operation(kDragOperationNone), - mouse_is_over_file_input(false), - number_of_items_to_be_accepted(0) {} -}; - -} // namespace blink - -#endif
diff --git a/third_party/blink/renderer/core/page/print_context_test.cc b/third_party/blink/renderer/core/page/print_context_test.cc index d78763e8..58923ab 100644 --- a/third_party/blink/renderer/core/page/print_context_test.cc +++ b/third_party/blink/renderer/core/page/print_context_test.cc
@@ -19,7 +19,7 @@ #include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" #include "third_party/blink/renderer/platform/scroll/scrollbar_theme.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/skia/include/core/SkCanvas.h" namespace blink { @@ -106,7 +106,7 @@ int height, const char* url, const char* children = nullptr) { - TextStream ts; + WTF::TextStream ts; ts << "<a style='position: absolute; left: " << x << "px; top: " << y << "px; width: " << width << "px; height: " << height << "px' href='" << url << "'>" << (children ? children : url) << "</a>"; @@ -115,7 +115,7 @@ static String InlineHtmlForLink(const char* url, const char* children = nullptr) { - TextStream ts; + WTF::TextStream ts; ts << "<a href='" << url << "'>" << (children ? children : url) << "</a>"; return ts.Release(); } @@ -124,7 +124,7 @@ int y, const char* name, const char* text_content) { - TextStream ts; + WTF::TextStream ts; ts << "<a name='" << name << "' style='position: absolute; left: " << x << "px; top: " << y << "px'>" << text_content << "</a>"; return ts.Release(); @@ -389,9 +389,11 @@ EXPECT_EQ(node->OffsetWidth(), 800); } -// This tests that we don't resize or re-layout subframes in printed -// content. -TEST_F(PrintContextFrameTest, SubframePrintPageLayout) { +// This tests that we don't resize or re-layout subframes in printed content. +// TODO(weili): This test fails when the iframe isn't the root scroller - e.g. +// Adding ScopedImplicitRootScrollerForTest disabler(false); +// https://crbug.com/841602. +TEST_F(PrintContextFrameTest, DISABLED_SubframePrintPageLayout) { SetBodyInnerHTML(R"HTML( <div style='border: 0px; margin: 0px; background-color: #0000FF; width:800px; height:400px'></div>
diff --git a/third_party/blink/renderer/core/paint/BUILD.gn b/third_party/blink/renderer/core/paint/BUILD.gn index 27811212..99615052 100644 --- a/third_party/blink/renderer/core/paint/BUILD.gn +++ b/third_party/blink/renderer/core/paint/BUILD.gn
@@ -110,6 +110,8 @@ "html_canvas_painter.h", "image_painter.cc", "image_painter.h", + "inline_box_painter_base.cc", + "inline_box_painter_base.h", "inline_flow_box_painter.cc", "inline_flow_box_painter.h", "inline_painter.cc", @@ -136,6 +138,8 @@ "ng/ng_box_fragment_painter.h", "ng/ng_fragment_painter.cc", "ng/ng_fragment_painter.h", + "ng/ng_inline_box_fragment_painter.cc", + "ng/ng_inline_box_fragment_painter.h", "ng/ng_paint_fragment.cc", "ng/ng_paint_fragment.h", "ng/ng_paint_fragment_traversal.cc",
diff --git a/third_party/blink/renderer/core/paint/box_model_object_painter.cc b/third_party/blink/renderer/core/paint/box_model_object_painter.cc index 977ac5c..f5de6254 100644 --- a/third_party/blink/renderer/core/paint/box_model_object_painter.cc +++ b/third_party/blink/renderer/core/paint/box_model_object_painter.cc
@@ -72,7 +72,8 @@ void BoxModelObjectPainter::PaintTextClipMask(GraphicsContext& context, const IntRect& mask_rect, - const LayoutPoint& paint_offset) { + const LayoutPoint& paint_offset, + bool) { PaintInfo paint_info(context, mask_rect, PaintPhase::kTextClip, kGlobalPaintNormalPhase, 0); if (flow_box_) { @@ -94,24 +95,6 @@ } } -FloatRoundedRect BoxModelObjectPainter::GetBackgroundRoundedRect( - const LayoutRect& border_rect, - const LayoutSize& flow_box_size, - bool include_logical_left_edge, - bool include_logical_right_edge) const { - FloatRoundedRect border = BoxPainterBase::GetBackgroundRoundedRect( - border_rect, flow_box_size, include_logical_left_edge, - include_logical_right_edge); - if (flow_box_ && (flow_box_->NextForSameLayoutObject() || - flow_box_->PrevForSameLayoutObject())) { - FloatRoundedRect segment_border = box_model_.StyleRef().GetRoundedBorderFor( - LayoutRect(LayoutPoint(), LayoutSize(FlooredIntSize(flow_box_size))), - include_logical_left_edge, include_logical_right_edge); - border.SetRadii(segment_border.GetRadii()); - } - return border; -} - LayoutRect BoxModelObjectPainter::AdjustForScrolledContent( const PaintInfo& paint_info, const BoxPainterBase::FillLayerInfo& info,
diff --git a/third_party/blink/renderer/core/paint/box_model_object_painter.h b/third_party/blink/renderer/core/paint/box_model_object_painter.h index 220926d..22931c2 100644 --- a/third_party/blink/renderer/core/paint/box_model_object_painter.h +++ b/third_party/blink/renderer/core/paint/box_model_object_painter.h
@@ -39,15 +39,11 @@ void PaintTextClipMask(GraphicsContext&, const IntRect& mask_rect, - const LayoutPoint& paint_offset) override; + const LayoutPoint& paint_offset, + bool flow_box_has_multiple_fragments) override; LayoutRect AdjustForScrolledContent(const PaintInfo&, const BoxPainterBase::FillLayerInfo&, const LayoutRect&) override; - FloatRoundedRect GetBackgroundRoundedRect( - const LayoutRect& border_rect, - const LayoutSize& flow_box_size, - bool include_logical_left_edge, - bool include_logical_right_edge) const override; private: const LayoutBoxModelObject& box_model_;
diff --git a/third_party/blink/renderer/core/paint/box_painter_base.cc b/third_party/blink/renderer/core/paint/box_painter_base.cc index b4de4e3e..76057ec 100644 --- a/third_party/blink/renderer/core/paint/box_painter_base.cc +++ b/third_party/blink/renderer/core/paint/box_painter_base.cc
@@ -271,53 +271,43 @@ FloatRoundedRect BoxPainterBase::BackgroundRoundedRectAdjustedForBleedAvoidance( const LayoutRect& border_rect, + bool flow_box_has_multiple_fragments, const LayoutSize& flow_box_size, - BackgroundBleedAvoidance bleed_avoidance, bool include_logical_left_edge, - bool include_logical_right_edge) const { - if (bleed_avoidance == kBackgroundBleedShrinkBackground) { - // Inset the background rect by a "safe" amount: 1/2 border-width for opaque - // border styles, 1/6 border-width for double borders. + bool include_logical_right_edge, + FloatRoundedRect background_rounded_rect) const { + // Inset the background rect by a "safe" amount: 1/2 border-width for opaque + // border styles, 1/6 border-width for double borders. - // TODO(fmalita): we should be able to fold these parameters into - // BoxBorderInfo or BoxDecorationData and avoid calling getBorderEdgeInfo - // redundantly here. - BorderEdge edges[4]; - style_.GetBorderEdgeInfo(edges, include_logical_left_edge, - include_logical_right_edge); + // TODO(fmalita): we should be able to fold these parameters into + // BoxBorderInfo or BoxDecorationData and avoid calling getBorderEdgeInfo + // redundantly here. + BorderEdge edges[4]; + style_.GetBorderEdgeInfo(edges, include_logical_left_edge, + include_logical_right_edge); - // Use the most conservative inset to avoid mixed-style corner issues. - float fractional_inset = 1.0f / 2; - for (auto& edge : edges) { - if (edge.BorderStyle() == EBorderStyle::kDouble) { - fractional_inset = 1.0f / 6; - break; - } + // Use the most conservative inset to avoid mixed-style corner issues. + float fractional_inset = 1.0f / 2; + for (auto& edge : edges) { + if (edge.BorderStyle() == EBorderStyle::kDouble) { + fractional_inset = 1.0f / 6; + break; } - - FloatRectOutsets insets( - -fractional_inset * edges[static_cast<unsigned>(BoxSide::kTop)].Width(), - -fractional_inset * - edges[static_cast<unsigned>(BoxSide::kRight)].Width(), - -fractional_inset * - edges[static_cast<unsigned>(BoxSide::kBottom)].Width(), - -fractional_inset * - edges[static_cast<unsigned>(BoxSide::kLeft)].Width()); - - FloatRoundedRect background_rounded_rect = GetBackgroundRoundedRect( - border_rect, flow_box_size, include_logical_left_edge, - include_logical_right_edge); - FloatRect inset_rect(background_rounded_rect.Rect()); - inset_rect.Expand(insets); - FloatRoundedRect::Radii inset_radii(background_rounded_rect.GetRadii()); - inset_radii.Shrink(-insets.Top(), -insets.Bottom(), -insets.Left(), - -insets.Right()); - return FloatRoundedRect(inset_rect, inset_radii); } - return GetBackgroundRoundedRect(border_rect, flow_box_size, - include_logical_left_edge, - include_logical_right_edge); + FloatRectOutsets insets( + -fractional_inset * edges[static_cast<unsigned>(BoxSide::kTop)].Width(), + -fractional_inset * edges[static_cast<unsigned>(BoxSide::kRight)].Width(), + -fractional_inset * + edges[static_cast<unsigned>(BoxSide::kBottom)].Width(), + -fractional_inset * edges[static_cast<unsigned>(BoxSide::kLeft)].Width()); + + FloatRect inset_rect(background_rounded_rect.Rect()); + inset_rect.Expand(insets); + FloatRoundedRect::Radii inset_radii(background_rounded_rect.GetRadii()); + inset_radii.Shrink(-insets.Top(), -insets.Bottom(), -insets.Left(), + -insets.Right()); + return FloatRoundedRect(inset_rect, inset_radii); } BoxPainterBase::FillLayerInfo::FillLayerInfo( @@ -516,11 +506,19 @@ FloatRoundedRect BoxPainterBase::GetBackgroundRoundedRect( const LayoutRect& border_rect, + bool flow_box_has_multiple_fragments, const LayoutSize& flow_box_size, bool include_logical_left_edge, bool include_logical_right_edge) const { - return style_.GetRoundedBorderFor(border_rect, include_logical_left_edge, - include_logical_right_edge); + FloatRoundedRect border = style_.GetRoundedBorderFor( + border_rect, include_logical_left_edge, include_logical_right_edge); + if (flow_box_has_multiple_fragments) { + FloatRoundedRect segment_border = style_.GetRoundedBorderFor( + LayoutRect(LayoutPoint(), LayoutSize(FlooredIntSize(flow_box_size))), + include_logical_left_edge, include_logical_right_edge); + border.SetRadii(segment_border.GetRadii()); + } + return border; } void BoxPainterBase::PaintFillLayer(const PaintInfo& paint_info, @@ -530,6 +528,7 @@ BackgroundBleedAvoidance bleed_avoidance, BackgroundImageGeometry& geometry, SkBlendMode op, + bool flow_box_has_multiple_fragments, const LayoutSize flow_box_size) { GraphicsContext& context = paint_info.context; if (rect.IsEmpty()) @@ -568,9 +567,9 @@ } LayoutRectOutsets border_padding_insets = -(border_ + padding_); - FloatRoundedRect border_rect = - RoundedBorderRectForClip(info, bg_layer, rect, flow_box_size, - bleed_avoidance, border_padding_insets); + FloatRoundedRect border_rect = RoundedBorderRectForClip( + info, bg_layer, rect, flow_box_has_multiple_fragments, flow_box_size, + bleed_avoidance, border_padding_insets); // Fast path for drawing simple color backgrounds. if (PaintFastBottomLayer(display_item_, node_, paint_info, info, rect, @@ -585,7 +584,8 @@ } if (bg_layer.Clip() == EFillBox::kText) { PaintFillLayerTextFillBox(context, info, image.get(), composite_op, - geometry, rect, scrolled_paint_rect); + geometry, rect, scrolled_paint_rect, + flow_box_has_multiple_fragments); return; } @@ -625,7 +625,8 @@ SkBlendMode composite_op, const BackgroundImageGeometry& geometry, const LayoutRect& rect, - const LayoutRect& scrolled_paint_rect) { + const LayoutRect& scrolled_paint_rect, + bool flow_box_has_multiple_fragments) { // First figure out how big the mask has to be. It should be no bigger // than what we need to actually render, so we should intersect the dirty // rect with the border box of the background. @@ -646,7 +647,8 @@ // they should just add their contents to the clip. context.BeginLayer(1, SkBlendMode::kDstIn); - PaintTextClipMask(context, mask_rect, scrolled_paint_rect.Location()); + PaintTextClipMask(context, mask_rect, scrolled_paint_rect.Location(), + flow_box_has_multiple_fragments); context.EndLayer(); // Text mask layer. context.EndLayer(); // Background layer. @@ -656,19 +658,23 @@ const BoxPainterBase::FillLayerInfo& info, const FillLayer& bg_layer, const LayoutRect& rect, + bool flow_box_has_multiple_fragments, const LayoutSize& flow_box_size, BackgroundBleedAvoidance bleed_avoidance, LayoutRectOutsets border_padding_insets) const { if (!info.is_rounded_fill) return FloatRoundedRect(); - FloatRoundedRect border = - info.is_border_fill ? BackgroundRoundedRectAdjustedForBleedAvoidance( - rect, flow_box_size, bleed_avoidance, - info.include_left_edge, info.include_right_edge) - : GetBackgroundRoundedRect(rect, flow_box_size, - info.include_left_edge, - info.include_right_edge); + FloatRoundedRect border = GetBackgroundRoundedRect( + rect, flow_box_has_multiple_fragments, flow_box_size, + info.include_left_edge, info.include_right_edge); + + if (info.is_border_fill && + bleed_avoidance == kBackgroundBleedShrinkBackground) { + border = BackgroundRoundedRectAdjustedForBleedAvoidance( + rect, flow_box_has_multiple_fragments, flow_box_size, + info.include_left_edge, info.include_right_edge, border); + } // Clip to the padding or content boxes as necessary. if (bg_layer.Clip() == EFillBox::kContent) {
diff --git a/third_party/blink/renderer/core/paint/box_painter_base.h b/third_party/blink/renderer/core/paint/box_painter_base.h index 93c618a3..681cea4 100644 --- a/third_party/blink/renderer/core/paint/box_painter_base.h +++ b/third_party/blink/renderer/core/paint/box_painter_base.h
@@ -64,6 +64,7 @@ BackgroundBleedAvoidance, BackgroundImageGeometry&, SkBlendMode = SkBlendMode::kSrcOver, + bool flow_box_has_multiple_fragments = false, const LayoutSize flow_box_size = LayoutSize()); void PaintMaskImages(const PaintInfo&, @@ -144,14 +145,16 @@ protected: FloatRoundedRect BackgroundRoundedRectAdjustedForBleedAvoidance( const LayoutRect& border_rect, + bool flow_box_has_multiple_fragments, const LayoutSize& flow_box_size, - BackgroundBleedAvoidance, bool include_logical_left_edge, - bool include_logical_right_edge) const; + bool include_logical_right_edge, + FloatRoundedRect background_rounded_rect) const; FloatRoundedRect RoundedBorderRectForClip( const FillLayerInfo&, const FillLayer&, const LayoutRect&, + bool flow_box_has_multiple_fragments, const LayoutSize& flow_box_size, BackgroundBleedAvoidance, LayoutRectOutsets border_padding_insets) const; @@ -171,18 +174,21 @@ SkBlendMode composite_op, const BackgroundImageGeometry&, const LayoutRect&, - const LayoutRect& scrolled_paint_rect); + const LayoutRect& scrolled_paint_rect, + bool flow_box_has_multiple_fragments); virtual void PaintTextClipMask(GraphicsContext&, const IntRect& mask_rect, - const LayoutPoint& paint_offset) = 0; + const LayoutPoint& paint_offset, + bool flow_box_has_multiple_fragments) = 0; virtual LayoutRect AdjustForScrolledContent(const PaintInfo&, const FillLayerInfo&, const LayoutRect&) = 0; virtual FillLayerInfo GetFillLayerInfo(const Color&, const FillLayer&, BackgroundBleedAvoidance) const = 0; - virtual FloatRoundedRect GetBackgroundRoundedRect( + FloatRoundedRect GetBackgroundRoundedRect( const LayoutRect& border_rect, + bool flow_box_has_multiple_fragments, const LayoutSize& flow_box_size, bool include_logical_left_edge, bool include_logical_right_edge) const;
diff --git a/third_party/blink/renderer/core/paint/inline_box_painter_base.cc b/third_party/blink/renderer/core/paint/inline_box_painter_base.cc new file mode 100644 index 0000000..ee287aee --- /dev/null +++ b/third_party/blink/renderer/core/paint/inline_box_painter_base.cc
@@ -0,0 +1,117 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/paint/inline_box_painter_base.h" + +#include "third_party/blink/renderer/core/paint/background_image_geometry.h" +#include "third_party/blink/renderer/core/paint/box_painter_base.h" +#include "third_party/blink/renderer/core/paint/paint_info.h" +#include "third_party/blink/renderer/core/paint/paint_layer.h" +#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h" +#include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h" + +namespace blink { + +void InlineBoxPainterBase::PaintBoxDecorationBackground( + const PaintInfo& paint_info, + const LayoutPoint& paint_offset, + LayoutRect adjusted_frame_rect, + BackgroundImageGeometry geometry, + bool include_logical_left_edge, + bool include_logical_right_edge) { + // Shadow comes first and is behind the background and border. + PaintNormalBoxShadow(paint_info, line_style_, adjusted_frame_rect); + + Color background_color = + line_style_.VisitedDependentColor(GetCSSPropertyBackgroundColor()); + PaintFillLayers(paint_info, background_color, line_style_.BackgroundLayers(), + adjusted_frame_rect, geometry); + + PaintInsetBoxShadow(paint_info, line_style_, adjusted_frame_rect); + + IntRect adjusted_clip_rect; + BorderPaintingType border_painting_type = + GetBorderPaintType(adjusted_frame_rect, adjusted_clip_rect); + switch (border_painting_type) { + case kDontPaintBorders: + break; + case kPaintBordersWithoutClip: + BoxPainterBase::PaintBorder( + image_observer_, *document_, node_, paint_info, adjusted_frame_rect, + line_style_, kBackgroundBleedNone, include_logical_left_edge, + include_logical_right_edge); + break; + case kPaintBordersWithClip: + // FIXME: What the heck do we do with RTL here? The math we're using is + // obviously not right, but it isn't even clear how this should work at + // all. + LayoutRect image_strip_paint_rect = + PaintRectForImageStrip(adjusted_frame_rect, TextDirection::kLtr); + GraphicsContextStateSaver state_saver(paint_info.context); + paint_info.context.Clip(adjusted_clip_rect); + BoxPainterBase::PaintBorder(image_observer_, *document_, node_, + paint_info, image_strip_paint_rect, + line_style_); + break; + } +} + +void InlineBoxPainterBase::PaintFillLayers(const PaintInfo& paint_info, + const Color& c, + const FillLayer& fill_layer, + const LayoutRect& rect, + BackgroundImageGeometry& geometry, + SkBlendMode op) { + // FIXME: This should be a for loop or similar. It's a little non-trivial to + // do so, however, since the layers need to be painted in reverse order. + if (fill_layer.Next()) + PaintFillLayers(paint_info, c, *fill_layer.Next(), rect, geometry, op); + PaintFillLayer(paint_info, c, fill_layer, rect, geometry, op); +} + +void InlineBoxPainterBase::PaintFillLayer(const PaintInfo& paint_info, + const Color& c, + const FillLayer& fill_layer, + const LayoutRect& paint_rect, + BackgroundImageGeometry& geometry, + SkBlendMode op) { + StyleImage* img = fill_layer.GetImage(); + bool has_fill_image = img && img->CanRender(); + + if ((!has_fill_image && !style_.HasBorderRadius()) || + !InlineBoxHasMultipleFragments()) { + BoxPainter().PaintFillLayer(paint_info, c, fill_layer, paint_rect, + kBackgroundBleedNone, geometry, op, false); + return; + } + + // Handle fill images that spans multiple lines. + LayoutRect rect = style_.BoxDecorationBreak() != EBoxDecorationBreak::kClone + ? PaintRectForImageStrip(paint_rect, style_.Direction()) + : paint_rect; + + GraphicsContextStateSaver state_saver(paint_info.context); + paint_info.context.Clip(PixelSnappedIntRect(paint_rect)); + BoxPainter().PaintFillLayer(paint_info, c, fill_layer, rect, + kBackgroundBleedNone, geometry, op, true, + paint_rect.Size()); +} + +void InlineBoxPainterBase::PaintNormalBoxShadow(const PaintInfo& info, + const ComputedStyle& s, + const LayoutRect& paint_rect) { + BoxPainterBase::PaintNormalBoxShadow(info, paint_rect, s, + IncludeLogicalLeftEdgeForBoxShadow(), + IncludeLogicalRightEdgeForBoxShadow()); +} + +void InlineBoxPainterBase::PaintInsetBoxShadow(const PaintInfo& info, + const ComputedStyle& s, + const LayoutRect& paint_rect) { + BoxPainterBase::PaintInsetBoxShadowWithBorderRect( + info, paint_rect, s, IncludeLogicalLeftEdgeForBoxShadow(), + IncludeLogicalRightEdgeForBoxShadow()); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/paint/inline_box_painter_base.h b/third_party/blink/renderer/core/paint/inline_box_painter_base.h new file mode 100644 index 0000000..2bab3a0 --- /dev/null +++ b/third_party/blink/renderer/core/paint/inline_box_painter_base.h
@@ -0,0 +1,99 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_INLINE_BOX_PAINTER_BASE_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_INLINE_BOX_PAINTER_BASE_H_ + +#include "third_party/blink/renderer/core/paint/box_painter_base.h" +#include "third_party/blink/renderer/core/style/shadow_data.h" +#include "third_party/blink/renderer/platform/graphics/graphics_types.h" +#include "third_party/blink/renderer/platform/text/text_direction.h" +#include "third_party/blink/renderer/platform/wtf/allocator.h" + +namespace blink { + +class Color; +class FillLayer; +class IntRect; +class LayoutPoint; +class LayoutRect; +struct PaintInfo; +class ComputedStyle; + +// Common base class for InlineFlowBoxPainter and NGInlineBoxFragmentPainter. +// Implements layout agnostic inline box painting behavior. +class InlineBoxPainterBase { + STACK_ALLOCATED(); + + public: + InlineBoxPainterBase(const ImageResourceObserver& image_observer, + const Document* document, + Node* node, + const ComputedStyle& style, + const ComputedStyle& line_style) + : image_observer_(image_observer), + document_(document), + node_(node), + style_(style), + line_style_(line_style) {} + + void PaintBoxDecorationBackground(const PaintInfo&, + const LayoutPoint& paint_offset, + LayoutRect adjusted_frame_rect, + BackgroundImageGeometry, + bool include_logical_left_edge, + bool include_logical_right_edge); + + protected: + void PaintFillLayers(const PaintInfo&, + const Color&, + const FillLayer&, + const LayoutRect&, + BackgroundImageGeometry& geometry, + SkBlendMode op = SkBlendMode::kSrcOver); + void PaintFillLayer(const PaintInfo&, + const Color&, + const FillLayer&, + const LayoutRect&, + BackgroundImageGeometry& geometry, + SkBlendMode op); + void PaintNormalBoxShadow(const PaintInfo&, + const ComputedStyle&, + const LayoutRect& paint_rect); + void PaintInsetBoxShadow(const PaintInfo&, + const ComputedStyle&, + const LayoutRect& paint_rect); + + virtual LayoutRect PaintRectForImageStrip(const LayoutRect&, + TextDirection direction) const = 0; + virtual bool InlineBoxHasMultipleFragments() const = 0; + virtual bool IncludeLogicalLeftEdgeForBoxShadow() const = 0; + virtual bool IncludeLogicalRightEdgeForBoxShadow() const = 0; + + enum BorderPaintingType { + kDontPaintBorders, + kPaintBordersWithoutClip, + kPaintBordersWithClip + }; + virtual BorderPaintingType GetBorderPaintType( + const LayoutRect& adjusted_frame_rect, + IntRect& adjusted_clip_rect) const = 0; + + // FIXME(eae): Make const + virtual BoxPainterBase& BoxPainter() = 0; + + const ImageResourceObserver& image_observer_; + Member<const Document> document_; + Member<Node> node_; + + // Style for the corresponding node. + const ComputedStyle& style_; + + // Style taking ::first-line into account. + const ComputedStyle& line_style_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_INLINE_BOX_PAINTER_BASE_H_
diff --git a/third_party/blink/renderer/core/paint/inline_flow_box_painter.cc b/third_party/blink/renderer/core/paint/inline_flow_box_painter.cc index d7107d75..76d6b7a9 100644 --- a/third_party/blink/renderer/core/paint/inline_flow_box_painter.cc +++ b/third_party/blink/renderer/core/paint/inline_flow_box_painter.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/core/paint/inline_flow_box_painter.h" #include "third_party/blink/renderer/core/layout/api/line_layout_api_shim.h" +#include "third_party/blink/renderer/core/layout/line/inline_flow_box.h" #include "third_party/blink/renderer/core/layout/line/root_inline_box.h" #include "third_party/blink/renderer/core/paint/background_image_geometry.h" #include "third_party/blink/renderer/core/paint/box_model_object_painter.h" @@ -17,6 +18,34 @@ namespace blink { +namespace { + +inline Node* GetNode(const LayoutObject* box_model) { + Node* node = nullptr; + for (const LayoutObject* obj = box_model; obj && !node; obj = obj->Parent()) + node = obj->GeneratingNode(); + return node; +} + +inline const LayoutBoxModelObject* GetBoxModelObject( + const InlineFlowBox& flow_box) { + return ToLayoutBoxModelObject( + LineLayoutAPIShim::LayoutObjectFrom(flow_box.BoxModelObject())); +} + +} // anonymous namespace + +InlineFlowBoxPainter::InlineFlowBoxPainter(const InlineFlowBox& flow_box) + : InlineBoxPainterBase( + *GetBoxModelObject(flow_box), + &GetBoxModelObject(flow_box)->GetDocument(), + GetNode(GetBoxModelObject(flow_box)), + flow_box.GetLineLayoutItem().StyleRef(), + flow_box.GetLineLayoutItem().StyleRef(flow_box.IsFirstLineStyle())), + inline_flow_box_(flow_box), + box_painter_( + BoxModelObjectPainter(*GetBoxModelObject(flow_box), &flow_box)) {} + void InlineFlowBoxPainter::Paint(const PaintInfo& paint_info, const LayoutPoint& paint_offset, const LayoutUnit line_top, @@ -39,7 +68,7 @@ if (paint_info.phase == PaintPhase::kForeground) { // Paint our background, border and box-shadow. - PaintBoxDecorationBackground(paint_info, paint_offset); + PaintBackgroundBorderShadow(paint_info, paint_offset); } // Paint our children. @@ -52,93 +81,22 @@ } } -void InlineFlowBoxPainter::PaintFillLayers(const PaintInfo& paint_info, - const Color& c, - const FillLayer& fill_layer, - const LayoutRect& rect, - SkBlendMode op) { - // FIXME: This should be a for loop or similar. It's a little non-trivial to - // do so, however, since the layers need to be painted in reverse order. - if (fill_layer.Next()) - PaintFillLayers(paint_info, c, *fill_layer.Next(), rect, op); - PaintFillLayer(paint_info, c, fill_layer, rect, op); -} - -void InlineFlowBoxPainter::PaintFillLayer(const PaintInfo& paint_info, - const Color& c, - const FillLayer& fill_layer, - const LayoutRect& rect, - SkBlendMode op) { - LayoutBoxModelObject* box_model = ToLayoutBoxModelObject( - LineLayoutAPIShim::LayoutObjectFrom(inline_flow_box_.BoxModelObject())); - BackgroundImageGeometry geometry(*box_model); - StyleImage* img = fill_layer.GetImage(); - bool has_fill_image = img && img->CanRender(); - BoxModelObjectPainter box_model_painter(*box_model, &inline_flow_box_); - if ((!has_fill_image && - !inline_flow_box_.GetLineLayoutItem().Style()->HasBorderRadius()) || - (!inline_flow_box_.PrevForSameLayoutObject() && - !inline_flow_box_.NextForSameLayoutObject()) || - !inline_flow_box_.Parent()) { - box_model_painter.PaintFillLayer(paint_info, c, fill_layer, rect, - kBackgroundBleedNone, geometry, op, - rect.Size()); - } else if (inline_flow_box_.GetLineLayoutItem() - .Style() - ->BoxDecorationBreak() == EBoxDecorationBreak::kClone) { - GraphicsContextStateSaver state_saver(paint_info.context); - paint_info.context.Clip(PixelSnappedIntRect(rect)); - box_model_painter.PaintFillLayer(paint_info, c, fill_layer, rect, - kBackgroundBleedNone, geometry, op, - rect.Size()); - } else { - // We have a fill image that spans multiple lines. - // FIXME: frameSize ought to be the same as rect.size(). - LayoutSize frame_size(inline_flow_box_.Width(), inline_flow_box_.Height()); - LayoutRect image_strip_paint_rect = PaintRectForImageStrip( - rect.Location(), frame_size, - inline_flow_box_.GetLineLayoutItem().Style()->Direction()); - GraphicsContextStateSaver state_saver(paint_info.context); - // TODO(chrishtr): this should likely be pixel-snapped. - paint_info.context.Clip(PixelSnappedIntRect(rect)); - box_model_painter.PaintFillLayer( - paint_info, c, fill_layer, image_strip_paint_rect, kBackgroundBleedNone, - geometry, op, rect.Size()); - } -} - inline bool InlineFlowBoxPainter::ShouldForceIncludeLogicalEdges() const { return (!inline_flow_box_.PrevForSameLayoutObject() && !inline_flow_box_.NextForSameLayoutObject()) || !inline_flow_box_.Parent(); } -inline bool InlineFlowBoxPainter::IncludeLogicalLeftEdgeForBoxShadow() const { +bool InlineFlowBoxPainter::IncludeLogicalLeftEdgeForBoxShadow() const { return ShouldForceIncludeLogicalEdges() || inline_flow_box_.IncludeLogicalLeftEdge(); } -inline bool InlineFlowBoxPainter::IncludeLogicalRightEdgeForBoxShadow() const { +bool InlineFlowBoxPainter::IncludeLogicalRightEdgeForBoxShadow() const { return ShouldForceIncludeLogicalEdges() || inline_flow_box_.IncludeLogicalRightEdge(); } -void InlineFlowBoxPainter::PaintNormalBoxShadow(const PaintInfo& info, - const ComputedStyle& s, - const LayoutRect& paint_rect) { - BoxPainterBase::PaintNormalBoxShadow(info, paint_rect, s, - IncludeLogicalLeftEdgeForBoxShadow(), - IncludeLogicalRightEdgeForBoxShadow()); -} - -void InlineFlowBoxPainter::PaintInsetBoxShadow(const PaintInfo& info, - const ComputedStyle& s, - const LayoutRect& paint_rect) { - BoxPainterBase::PaintInsetBoxShadowWithBorderRect( - info, paint_rect, s, IncludeLogicalLeftEdgeForBoxShadow(), - IncludeLogicalRightEdgeForBoxShadow()); -} - static LayoutRect ClipRectForNinePieceImageStrip(const InlineFlowBox& box, const NinePieceImage& image, const LayoutRect& paint_rect) { @@ -168,8 +126,7 @@ } LayoutRect InlineFlowBoxPainter::PaintRectForImageStrip( - const LayoutPoint& paint_offset, - const LayoutSize& frame_size, + const LayoutRect& paint_rect, TextDirection direction) const { // We have a fill/border/mask image that spans multiple lines. // We need to adjust the offset by the width of all previous lines. @@ -198,20 +155,20 @@ total_logical_width += curr->LogicalWidth(); } LayoutUnit strip_x = - paint_offset.X() - + paint_rect.X() - (inline_flow_box_.IsHorizontal() ? logical_offset_on_line : LayoutUnit()); LayoutUnit strip_y = - paint_offset.Y() - + paint_rect.Y() - (inline_flow_box_.IsHorizontal() ? LayoutUnit() : logical_offset_on_line); LayoutUnit strip_width = inline_flow_box_.IsHorizontal() ? total_logical_width - : frame_size.Width(); + : paint_rect.Width(); LayoutUnit strip_height = inline_flow_box_.IsHorizontal() - ? frame_size.Height() + ? paint_rect.Height() : total_logical_width; return LayoutRect(strip_x, strip_y, strip_width, strip_height); } -InlineFlowBoxPainter::BorderPaintingType +InlineBoxPainterBase::BorderPaintingType InlineFlowBoxPainter::GetBorderPaintType(const LayoutRect& adjusted_frame_rect, IntRect& adjusted_clip_rect) const { adjusted_clip_rect = PixelSnappedIntRect(adjusted_frame_rect); @@ -240,14 +197,7 @@ return kDontPaintBorders; } -static inline Node* GetNode(const LayoutObject* box_model) { - Node* node = nullptr; - for (const LayoutObject* obj = box_model; obj && !node; obj = obj->Parent()) - node = obj->GeneratingNode(); - return node; -} - -void InlineFlowBoxPainter::PaintBoxDecorationBackground( +void InlineFlowBoxPainter::PaintBackgroundBorderShadow( const PaintInfo& paint_info, const LayoutPoint& paint_offset) { DCHECK(paint_info.phase == PaintPhase::kForeground); @@ -259,17 +209,13 @@ // boxes for a line may actually have to paint a background. LayoutObject* inline_flow_box_layout_object = LineLayoutAPIShim::LayoutObjectFrom(inline_flow_box_.GetLineLayoutItem()); - const ComputedStyle* style_to_use = - inline_flow_box_.GetLineLayoutItem().Style( - inline_flow_box_.IsFirstLineStyle()); bool should_paint_box_decoration_background; if (inline_flow_box_.Parent()) should_paint_box_decoration_background = inline_flow_box_layout_object->HasBoxDecorationBackground(); else should_paint_box_decoration_background = - inline_flow_box_.IsFirstLineStyle() && - style_to_use != inline_flow_box_.GetLineLayoutItem().Style(); + inline_flow_box_.IsFirstLineStyle() && line_style_ != style_; if (!should_paint_box_decoration_background) return; @@ -292,49 +238,13 @@ LayoutRect adjusted_frame_rect = LayoutRect(adjusted_paint_offset, frame_rect.Size()); - IntRect adjusted_clip_rect; - BorderPaintingType border_painting_type = - GetBorderPaintType(adjusted_frame_rect, adjusted_clip_rect); - - // Shadow comes first and is behind the background and border. - PaintNormalBoxShadow(paint_info, *style_to_use, adjusted_frame_rect); - - Color background_color = inline_flow_box_layout_object->ResolveColor( - *style_to_use, GetCSSPropertyBackgroundColor()); - PaintFillLayers(paint_info, background_color, - style_to_use->BackgroundLayers(), adjusted_frame_rect); - PaintInsetBoxShadow(paint_info, *style_to_use, adjusted_frame_rect); - - const LayoutObject* box_model = ToLayoutBoxModelObject( + const LayoutBoxModelObject* box_model = ToLayoutBoxModelObject( LineLayoutAPIShim::LayoutObjectFrom(inline_flow_box_.BoxModelObject())); - - switch (border_painting_type) { - case kDontPaintBorders: - break; - case kPaintBordersWithoutClip: - BoxPainterBase::PaintBorder( - *box_model, box_model->GetDocument(), GetNode(box_model), paint_info, - adjusted_frame_rect, - inline_flow_box_.GetLineLayoutItem().StyleRef( - inline_flow_box_.IsFirstLineStyle()), - kBackgroundBleedNone, inline_flow_box_.IncludeLogicalLeftEdge(), - inline_flow_box_.IncludeLogicalRightEdge()); - break; - case kPaintBordersWithClip: - // FIXME: What the heck do we do with RTL here? The math we're using is - // obviously not right, but it isn't even clear how this should work at - // all. - LayoutRect image_strip_paint_rect = PaintRectForImageStrip( - adjusted_paint_offset, frame_rect.Size(), TextDirection::kLtr); - GraphicsContextStateSaver state_saver(paint_info.context); - paint_info.context.Clip(adjusted_clip_rect); - BoxPainterBase::PaintBorder(*box_model, box_model->GetDocument(), - GetNode(box_model), paint_info, - image_strip_paint_rect, - inline_flow_box_.GetLineLayoutItem().StyleRef( - inline_flow_box_.IsFirstLineStyle())); - break; - } + BackgroundImageGeometry geometry(*box_model); + PaintBoxDecorationBackground(paint_info, paint_offset, adjusted_frame_rect, + geometry, + inline_flow_box_.IncludeLogicalLeftEdge(), + inline_flow_box_.IncludeLogicalRightEdge()); } void InlineFlowBoxPainter::PaintMask(const PaintInfo& paint_info, @@ -374,8 +284,9 @@ paint_info.context.BeginLayer(1.0f, SkBlendMode::kDstIn, &bounds); } + BackgroundImageGeometry geometry(box_model); PaintFillLayers(paint_info, Color::kTransparent, - box_model.StyleRef().MaskLayers(), paint_rect); + box_model.StyleRef().MaskLayers(), paint_rect, geometry); bool has_box_image = mask_box_image && mask_box_image->CanRender(); if (!has_box_image || !mask_box_image->IsLoaded()) { @@ -397,7 +308,8 @@ // FIXME: What the heck do we do with RTL here? The math we're using is // obviously not right, but it isn't even clear how this should work at all. LayoutRect image_strip_paint_rect = PaintRectForImageStrip( - adjusted_paint_offset, frame_rect.Size(), TextDirection::kLtr); + LayoutRect(adjusted_paint_offset, frame_rect.Size()), + TextDirection::kLtr); FloatRect clip_rect(ClipRectForNinePieceImageStrip( inline_flow_box_, mask_nine_piece_image, paint_rect)); GraphicsContextStateSaver state_saver(paint_info.context); @@ -443,4 +355,9 @@ return rect; } +bool InlineFlowBoxPainter::InlineBoxHasMultipleFragments() const { + return inline_flow_box_.PrevForSameLayoutObject() || + inline_flow_box_.NextForSameLayoutObject(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/paint/inline_flow_box_painter.h b/third_party/blink/renderer/core/paint/inline_flow_box_painter.h index 33b64f5f..8837818b 100644 --- a/third_party/blink/renderer/core/paint/inline_flow_box_painter.h +++ b/third_party/blink/renderer/core/paint/inline_flow_box_painter.h
@@ -5,6 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_INLINE_FLOW_BOX_PAINTER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_INLINE_FLOW_BOX_PAINTER_H_ +#include "third_party/blink/renderer/core/paint/box_model_object_painter.h" +#include "third_party/blink/renderer/core/paint/inline_box_painter_base.h" #include "third_party/blink/renderer/core/style/shadow_data.h" #include "third_party/blink/renderer/platform/graphics/graphics_types.h" #include "third_party/blink/renderer/platform/text/text_direction.h" @@ -12,23 +14,19 @@ namespace blink { -class Color; -class FillLayer; class InlineFlowBox; class IntRect; class LayoutPoint; class LayoutRect; -class LayoutSize; class LayoutUnit; struct PaintInfo; -class ComputedStyle; -class InlineFlowBoxPainter { +class InlineFlowBoxPainter : public InlineBoxPainterBase { STACK_ALLOCATED(); public: - InlineFlowBoxPainter(const InlineFlowBox& inline_flow_box) - : inline_flow_box_(inline_flow_box) {} + InlineFlowBoxPainter(const InlineFlowBox&); + void Paint(const PaintInfo&, const LayoutPoint& paint_offset, const LayoutUnit line_top, @@ -36,42 +34,26 @@ LayoutRect FrameRectClampedToLineTopAndBottomIfNeeded() const; - private: - void PaintBoxDecorationBackground(const PaintInfo&, - const LayoutPoint& paint_offset); - void PaintMask(const PaintInfo&, const LayoutPoint& paint_offset); - void PaintFillLayers(const PaintInfo&, - const Color&, - const FillLayer&, - const LayoutRect&, - SkBlendMode op = SkBlendMode::kSrcOver); - void PaintFillLayer(const PaintInfo&, - const Color&, - const FillLayer&, - const LayoutRect&, - SkBlendMode op); - inline bool ShouldForceIncludeLogicalEdges() const; - inline bool IncludeLogicalLeftEdgeForBoxShadow() const; - inline bool IncludeLogicalRightEdgeForBoxShadow() const; - void PaintNormalBoxShadow(const PaintInfo&, - const ComputedStyle&, - const LayoutRect& paint_rect); - void PaintInsetBoxShadow(const PaintInfo&, - const ComputedStyle&, - const LayoutRect& paint_rect); - LayoutRect PaintRectForImageStrip(const LayoutPoint& paint_offset, - const LayoutSize& frame_size, - TextDirection) const; + protected: + LayoutRect PaintRectForImageStrip(const LayoutRect&, + TextDirection) const override; + bool InlineBoxHasMultipleFragments() const override; + BoxPainterBase& BoxPainter() override { return box_painter_; } - enum BorderPaintingType { - kDontPaintBorders, - kPaintBordersWithoutClip, - kPaintBordersWithClip - }; - BorderPaintingType GetBorderPaintType(const LayoutRect& adjusted_frame_rect, - IntRect& adjusted_clip_rect) const; + private: + void PaintBackgroundBorderShadow(const PaintInfo&, + const LayoutPoint& paint_offset); + void PaintMask(const PaintInfo&, const LayoutPoint& paint_offset); + inline bool ShouldForceIncludeLogicalEdges() const; + bool IncludeLogicalLeftEdgeForBoxShadow() const override; + bool IncludeLogicalRightEdgeForBoxShadow() const override; + + BorderPaintingType GetBorderPaintType( + const LayoutRect& adjusted_frame_rect, + IntRect& adjusted_clip_rect) const override; const InlineFlowBox& inline_flow_box_; + BoxModelObjectPainter box_painter_; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc index 2608f18..3a2083ea 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
@@ -20,6 +20,7 @@ #include "third_party/blink/renderer/core/paint/box_decoration_data.h" #include "third_party/blink/renderer/core/paint/ng/ng_box_clipper.h" #include "third_party/blink/renderer/core/paint/ng/ng_fragment_painter.h" +#include "third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h" #include "third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h" #include "third_party/blink/renderer/core/paint/ng/ng_text_fragment_painter.h" #include "third_party/blink/renderer/core/paint/object_painter.h" @@ -91,16 +92,6 @@ adjustment.AdjustedPaintOffset()); } -void NGBoxFragmentPainter::PaintInlineBox(const PaintInfo& paint_info, - const LayoutPoint& paint_offset) { - const LayoutPoint adjusted_paint_offset = - paint_offset + box_fragment_.Offset().ToLayoutPoint(); - if (paint_info.phase == PaintPhase::kForeground) - PaintBoxDecorationBackground(paint_info, adjusted_paint_offset); - - PaintObject(paint_info, adjusted_paint_offset, true); -} - void NGBoxFragmentPainter::PaintWithAdjustedOffset( PaintInfo& info, const LayoutPoint& paint_offset) { @@ -151,7 +142,7 @@ // TODO(eae): style.HasBoxDecorationBackground isn't good enough, it needs // to check the object as some objects may have box decoration background // other than from their own style. - // TODO(eae): This should not be needed both here and in PaintInlineBox. + // TODO(eae): We can probably get rid of suppress_box_decoration_background. if (!suppress_box_decoration_background && is_visible && style.HasBoxDecorationBackground()) PaintBoxDecorationBackground(paint_info, paint_offset); @@ -293,7 +284,7 @@ } else if (fragment.Type() == NGPhysicalFragment::kFragmentBox) { if (child.HasSelfPaintingLayer()) return; - NGBoxFragmentPainter(child).PaintInlineBox(descendants_info, paint_offset); + NGInlineBoxFragmentPainter(child).Paint(descendants_info, paint_offset); } else { NOTREACHED(); } @@ -407,7 +398,6 @@ NGPhysicalSize size = box_fragment_.Size(); paint_rect = LayoutRect(LayoutPoint(), LayoutSize(size.width, size.height)); } - paint_rect.MoveBy(paint_offset); bool painting_overflow_contents = @@ -703,20 +693,28 @@ return paint_info.GetCullRect().IntersectsCullRect(overflow_rect); } -void NGBoxFragmentPainter::PaintTextClipMask(GraphicsContext& context, - const IntRect& mask_rect, - const LayoutPoint& paint_offset) { +void NGBoxFragmentPainter::PaintTextClipMask( + GraphicsContext& context, + const IntRect& mask_rect, + const LayoutPoint& paint_offset, + bool flow_box_has_multiple_fragments) { PaintInfo paint_info(context, mask_rect, PaintPhase::kTextClip, kGlobalPaintNormalPhase, 0); - const LayoutSize local_offset = box_fragment_.Offset().ToLayoutSize(); - if (PhysicalFragment().IsBlockFlow()) { - // TODO(layout-dev): Add support for box-decoration-break: slice - // See BoxModelObjectPainter::LogicalOffsetOnLine - // if (box_fragment_.Style().BoxDecorationBreak() == - // EBoxDecorationBreak::kSlice) { - // local_offset -= LogicalOffsetOnLine(*flow_box_); - //} - PaintBlockFlowContents(paint_info, paint_offset - local_offset); + LayoutSize local_offset = box_fragment_.Offset().ToLayoutSize(); + if (flow_box_has_multiple_fragments) { + NGInlineBoxFragmentPainter inline_box_painter(box_fragment_); + if (box_fragment_.Style().BoxDecorationBreak() == + EBoxDecorationBreak::kSlice) { + LayoutUnit offset_on_line; + LayoutUnit total_width; + inline_box_painter.ComputeFragmentOffsetOnLine( + box_fragment_.Style().Direction(), &offset_on_line, &total_width); + LayoutSize line_offset(offset_on_line, LayoutUnit()); + local_offset -= box_fragment_.Style().IsHorizontalWritingMode() + ? line_offset + : line_offset.TransposedSize(); + } + inline_box_painter.Paint(paint_info, paint_offset - local_offset); } else { PaintObject(paint_info, paint_offset - local_offset); }
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h index 7a302d2..623e5ee 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h +++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
@@ -34,7 +34,9 @@ NGBoxFragmentPainter(const NGPaintFragment&); void Paint(const PaintInfo&, const LayoutPoint& paint_offset); - void PaintInlineBox(const PaintInfo&, const LayoutPoint& paint_offset); + void PaintObject(const PaintInfo&, + const LayoutPoint&, + bool suppress_box_decoration_background = false); // TODO(eae): Change to take a HitTestResult pointer instead as it mutates. bool NodeAtPoint(HitTestResult&, @@ -51,7 +53,8 @@ void PaintTextClipMask(GraphicsContext&, const IntRect& mask_rect, - const LayoutPoint& paint_offset) override; + const LayoutPoint& paint_offset, + bool flow_box_has_multiple_fragments) override; LayoutRect AdjustForScrolledContent(const PaintInfo&, const BoxPainterBase::FillLayerInfo&, const LayoutRect&) override; @@ -81,9 +84,6 @@ const PaintInfo&, const LayoutPoint& paint_offset, const LayoutPoint& legacy_paint_offset); - void PaintObject(const PaintInfo&, - const LayoutPoint&, - bool suppress_box_decoration_background = false); void PaintBlockFlowContents(const PaintInfo&, const LayoutPoint&); void PaintInlineChild(const NGPaintFragment&, const PaintInfo&,
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc new file mode 100644 index 0000000..f49ab546 --- /dev/null +++ b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc
@@ -0,0 +1,229 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h" + +#include "third_party/blink/renderer/core/layout/background_bleed_avoidance.h" +#include "third_party/blink/renderer/core/layout/layout_object.h" +#include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h" +#include "third_party/blink/renderer/core/layout/ng/ng_fragment.h" +#include "third_party/blink/renderer/core/paint/background_image_geometry.h" +#include "third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h" +#include "third_party/blink/renderer/core/paint/paint_info.h" +#include "third_party/blink/renderer/core/paint/paint_layer.h" +#include "third_party/blink/renderer/core/paint/paint_phase.h" +#include "third_party/blink/renderer/core/style/nine_piece_image.h" +#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h" +#include "third_party/blink/renderer/platform/graphics/paint/clip_recorder.h" +#include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h" + +namespace blink { + +NGInlineBoxFragmentPainter::NGInlineBoxFragmentPainter( + const NGPaintFragment& inline_box_fragment) + : InlineBoxPainterBase( + inline_box_fragment, + &inline_box_fragment.GetLayoutObject()->GetDocument(), + inline_box_fragment.GetLayoutObject()->GeneratingNode(), + inline_box_fragment.Style(), + // FIXME(eae): Should be first-line style.. + // flow_box_.GetLineLayoutItem().StyleRef(flow_box_.IsFirstLineStyle())), + inline_box_fragment.Style()), + inline_box_fragment_(inline_box_fragment), + box_painter_(NGBoxFragmentPainter(inline_box_fragment_)), + border_edges_(NGBorderEdges::FromPhysical( + inline_box_fragment.PhysicalFragment().BorderEdges(), + inline_box_fragment.Style().GetWritingMode())) { + NGPaintFragment::FragmentRange fragments = + inline_box_fragment.InlineFragmentsFor( + inline_box_fragment.GetLayoutObject()); + NGPaintFragment::FragmentRange::iterator iter = fragments.begin(); + object_has_multiple_fragments_ = ++iter != fragments.end(); +} + +void NGInlineBoxFragmentPainter::Paint(const PaintInfo& paint_info, + const LayoutPoint& paint_offset) { + const LayoutPoint adjusted_paint_offset = + paint_offset + inline_box_fragment_.Offset().ToLayoutPoint(); + if (paint_info.phase == PaintPhase::kForeground) + PaintBackgroundBorderShadow(paint_info, adjusted_paint_offset); + + box_painter_.PaintObject(paint_info, adjusted_paint_offset, true); +} + +void NGInlineBoxFragmentPainter::PaintBackgroundBorderShadow( + const PaintInfo& paint_info, + const LayoutPoint& paint_offset) { + DCHECK(paint_info.phase == PaintPhase::kForeground); + if (inline_box_fragment_.Style().Visibility() != EVisibility::kVisible) + return; + + // You can use p::first-line to specify a background. If so, the root line + // boxes for a line may actually have to paint a background. + bool should_paint_box_decoration_background; + if (inline_box_fragment_.Parent()) { + should_paint_box_decoration_background = + inline_box_fragment_.Style().HasBoxDecorationBackground(); + } else { + // TODO(kojii): Get from fragment once available. + bool is_first_line = false; + should_paint_box_decoration_background = + is_first_line && line_style_ != style_; + } + + if (!should_paint_box_decoration_background) + return; + + if (DrawingRecorder::UseCachedDrawingIfPossible( + paint_info.context, inline_box_fragment_, + DisplayItem::kBoxDecorationBackground)) + return; + + DrawingRecorder recorder(paint_info.context, inline_box_fragment_, + DisplayItem::kBoxDecorationBackground); + + LayoutRect frame_rect = + inline_box_fragment_.PhysicalFragment().LocalRect().ToLayoutRect(); + // LayoutPoint adjusted_paint_offset = paint_offset + frame_rect.Location(); + LayoutPoint adjusted_paint_offset = paint_offset; + + LayoutRect adjusted_frame_rect = + LayoutRect(adjusted_paint_offset, frame_rect.Size()); + + // TODO(eae): Switch to LayoutNG version of BackgroundImageGeometry. + BackgroundImageGeometry geometry(*static_cast<const LayoutBoxModelObject*>( + inline_box_fragment_.GetLayoutObject())); + PaintBoxDecorationBackground(paint_info, paint_offset, adjusted_frame_rect, + geometry, border_edges_.line_left, + border_edges_.line_right); +} + +void NGInlineBoxFragmentPainter::ComputeFragmentOffsetOnLine( + TextDirection direction, + LayoutUnit* offset_on_line, + LayoutUnit* total_width) const { + WritingMode writing_mode = inline_box_fragment_.Style().GetWritingMode(); + DCHECK(object_has_multiple_fragments_); + NGPaintFragment::FragmentRange fragments = + inline_box_fragment_.InlineFragmentsFor( + inline_box_fragment_.GetLayoutObject()); + + LayoutUnit before; + LayoutUnit after; + bool before_self = true; + for (auto iter = fragments.begin(); iter != fragments.end(); ++iter) { + if (*iter == &inline_box_fragment_) { + before_self = false; + continue; + } + if (before_self) + before += NGFragment(writing_mode, iter->PhysicalFragment()).InlineSize(); + else + after += NGFragment(writing_mode, iter->PhysicalFragment()).InlineSize(); + } + + NGFragment logical_fragment(writing_mode, + inline_box_fragment_.PhysicalFragment()); + *total_width = before + after + logical_fragment.InlineSize(); + + // We're iterating over the fragments in physical order before so we need to + // swap before and after for RTL. + *offset_on_line = direction == TextDirection::kLtr ? before : after; +} + +LayoutRect NGInlineBoxFragmentPainter::PaintRectForImageStrip( + const LayoutRect& paint_rect, + TextDirection direction) const { + // We have a fill/border/mask image that spans multiple lines. + // We need to adjust the offset by the width of all previous lines. + // Think of background painting on inlines as though you had one long line, a + // single continuous strip. Even though that strip has been broken up across + // multiple lines, you still paint it as though you had one single line. This + // means each line has to pick up the background where the previous line left + // off. + DCHECK(object_has_multiple_fragments_); + LayoutUnit offset_on_line; + LayoutUnit total_width; + ComputeFragmentOffsetOnLine(direction, &offset_on_line, &total_width); + + if (inline_box_fragment_.Style().IsHorizontalWritingMode()) { + return LayoutRect(paint_rect.X() - offset_on_line, paint_rect.Y(), + total_width, paint_rect.Height()); + } + return LayoutRect(paint_rect.X(), paint_rect.Y() - offset_on_line, + paint_rect.Width(), total_width); +} + +bool NGInlineBoxFragmentPainter::InlineBoxHasMultipleFragments() const { + return object_has_multiple_fragments_; +} + +bool NGInlineBoxFragmentPainter::IncludeLogicalLeftEdgeForBoxShadow() const { + return !object_has_multiple_fragments_ || border_edges_.line_left; +} + +bool NGInlineBoxFragmentPainter::IncludeLogicalRightEdgeForBoxShadow() const { + return !object_has_multiple_fragments_ || border_edges_.line_right; +} + +static LayoutRect NGClipRectForNinePieceImageStrip( + const ComputedStyle& style, + const NGBorderEdges& border_edges, + const NinePieceImage& image, + const LayoutRect& paint_rect) { + LayoutRect clip_rect(paint_rect); + LayoutRectOutsets outsets = style.ImageOutsets(image); + if (style.IsHorizontalWritingMode()) { + clip_rect.SetY(paint_rect.Y() - outsets.Top()); + clip_rect.SetHeight(paint_rect.Height() + outsets.Top() + outsets.Bottom()); + if (border_edges.line_left) { + clip_rect.SetX(paint_rect.X() - outsets.Left()); + clip_rect.SetWidth(paint_rect.Width() + outsets.Left()); + } + if (border_edges.line_right) + clip_rect.SetWidth(clip_rect.Width() + outsets.Right()); + } else { + clip_rect.SetX(paint_rect.X() - outsets.Left()); + clip_rect.SetWidth(paint_rect.Width() + outsets.Left() + outsets.Right()); + if (border_edges.line_left) { + clip_rect.SetY(paint_rect.Y() - outsets.Top()); + clip_rect.SetHeight(paint_rect.Height() + outsets.Top()); + } + if (border_edges.line_right) + clip_rect.SetHeight(clip_rect.Height() + outsets.Bottom()); + } + return clip_rect; +} + +InlineBoxPainterBase::BorderPaintingType +NGInlineBoxFragmentPainter::GetBorderPaintType( + const LayoutRect& adjusted_frame_rect, + IntRect& adjusted_clip_rect) const { + adjusted_clip_rect = PixelSnappedIntRect(adjusted_frame_rect); + if (inline_box_fragment_.Parent() && + inline_box_fragment_.Style().HasBorderDecoration()) { + const NinePieceImage& border_image = + inline_box_fragment_.Style().BorderImage(); + StyleImage* border_image_source = border_image.GetImage(); + bool has_border_image = + border_image_source && border_image_source->CanRender(); + if (has_border_image && !border_image_source->IsLoaded()) + return kDontPaintBorders; + + // The simple case is where we either have no border image or we are the + // only box for this object. In those cases only a single call to draw is + // required. + if (!has_border_image || !object_has_multiple_fragments_) + return kPaintBordersWithoutClip; + + // We have a border image that spans multiple lines. + adjusted_clip_rect = PixelSnappedIntRect(NGClipRectForNinePieceImageStrip( + inline_box_fragment_.Style(), border_edges_, border_image, + adjusted_frame_rect)); + return kPaintBordersWithClip; + } + return kDontPaintBorders; +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h new file mode 100644 index 0000000..99b015f --- /dev/null +++ b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
@@ -0,0 +1,60 @@ +// 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_CORE_PAINT_NG_NG_INLINE_BOX_FRAGMENT_PAINTER_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_INLINE_BOX_FRAGMENT_PAINTER_H_ + +#include "third_party/blink/renderer/core/layout/ng/geometry/ng_border_edges.h" +#include "third_party/blink/renderer/core/paint/inline_box_painter_base.h" +#include "third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h" + +#include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/skia/include/core/SkBlendMode.h" + +namespace blink { + +class LayoutRect; +class NGPaintFragment; +struct PaintInfo; + +// Painter for LayoutNG inline box fragments. Delegates to NGBoxFragmentPainter +// for all box painting logic that isn't specific to inline boxes. +class NGInlineBoxFragmentPainter : public InlineBoxPainterBase { + STACK_ALLOCATED(); + + public: + NGInlineBoxFragmentPainter(const NGPaintFragment&); + + void Paint(const PaintInfo&, const LayoutPoint& paint_offset); + void ComputeFragmentOffsetOnLine(TextDirection, + LayoutUnit* offset_on_line, + LayoutUnit* total_width) const; + + protected: + LayoutRect PaintRectForImageStrip(const LayoutRect&, + TextDirection direction) const override; + + BoxPainterBase& BoxPainter() override { return box_painter_; } + + bool InlineBoxHasMultipleFragments() const override; + bool IncludeLogicalLeftEdgeForBoxShadow() const override; + bool IncludeLogicalRightEdgeForBoxShadow() const override; + + BorderPaintingType GetBorderPaintType( + const LayoutRect& adjusted_frame_rect, + IntRect& adjusted_clip_rect) const override; + + private: + void PaintBackgroundBorderShadow(const PaintInfo&, + const LayoutPoint& paint_offset); + + const NGPaintFragment& inline_box_fragment_; + NGBoxFragmentPainter box_painter_; + NGBorderEdges border_edges_; + bool object_has_multiple_fragments_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_INLINE_BOX_FRAGMENT_PAINTER_H_
diff --git a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc index da31d7d..85b5c447 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc
@@ -13,6 +13,7 @@ #include "third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h" #include "third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h" #include "third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h" +#include "third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h" namespace blink { @@ -192,7 +193,7 @@ NGPhysicalOffset offset) const { for (const auto& child : Children()) { if (child->GetLayoutObject() == layout_object) { - NGBoxFragmentPainter(*child).PaintInlineBox( + NGInlineBoxFragmentPainter(*child).Paint( paint_info, paint_offset + offset.ToLayoutPoint() /*, paint_offset*/); continue; }
diff --git a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h index 9a06c8d..ef75474 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h +++ b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h
@@ -121,9 +121,10 @@ NGPaintFragment* operator*() const { return current_; } NGPaintFragment* operator->() const { return current_; } - void operator++() { + iterator& operator++() { CHECK(current_); current_ = current_->next_fragment_; + return *this; } bool operator==(const iterator& other) const { return current_ == other.current_;
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk_test.cc b/third_party/blink/renderer/core/paint/pre_paint_tree_walk_test.cc index 654b853..9198dee 100644 --- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk_test.cc +++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk_test.cc
@@ -16,7 +16,6 @@ #include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h" #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/hash_map.h" namespace blink {
diff --git a/third_party/blink/renderer/core/style/computed_style_constants.h b/third_party/blink/renderer/core/style/computed_style_constants.h index 2771bc4..69060c9 100644 --- a/third_party/blink/renderer/core/style/computed_style_constants.h +++ b/third_party/blink/renderer/core/style/computed_style_constants.h
@@ -63,8 +63,8 @@ // Static pseudo styles. Dynamic ones are produced on the fly. enum PseudoId { // The order must be NOP ID, public IDs, and then internal IDs. - // If you add or remove a public ID, you must update _pseudoBits in - // ComputedStyle. + // If you add or remove a public ID, you must update the field_size of + // "PseudoBits" in ComputedStyleExtraFields.json5. kPseudoIdNone, kPseudoIdFirstLine, kPseudoIdFirstLetter, @@ -72,9 +72,9 @@ kPseudoIdAfter, kPseudoIdBackdrop, kPseudoIdSelection, - kPseudoIdFirstLineInherited, kPseudoIdScrollbar, // Internal IDs follow: + kPseudoIdFirstLineInherited, kPseudoIdScrollbarThumb, kPseudoIdScrollbarButton, kPseudoIdScrollbarTrack, @@ -85,7 +85,7 @@ // Special values follow: kAfterLastInternalPseudoId, kFirstPublicPseudoId = kPseudoIdFirstLine, - kFirstInternalPseudoId = kPseudoIdScrollbarThumb, + kFirstInternalPseudoId = kPseudoIdFirstLineInherited, kElementPseudoIdMask = (1 << (kPseudoIdBefore - kFirstPublicPseudoId)) | (1 << (kPseudoIdAfter - kFirstPublicPseudoId)) | (1 << (kPseudoIdBackdrop - kFirstPublicPseudoId))
diff --git a/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc b/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc index 83bf1560..9acbfde 100644 --- a/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc +++ b/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.cc
@@ -34,8 +34,8 @@ #include "third_party/blink/renderer/platform/graphics/graphics_context.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/transforms/affine_transform.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -139,7 +139,8 @@ return href_element->GetLayoutObject(); } -TextStream& FEImage::ExternalRepresentation(TextStream& ts, int indent) const { +WTF::TextStream& FEImage::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { IntSize image_size; if (image_) { image_size = image_->Size();
diff --git a/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h b/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h index 09d6c9b..9628569 100644 --- a/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h +++ b/third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h
@@ -47,7 +47,8 @@ // depend on the value of color-interpolation-filters. void SetOperatingInterpolationSpace(InterpolationSpace) override {} - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; void Trace(blink::Visitor*) override;
diff --git a/third_party/blink/renderer/devtools/.gitignore b/third_party/blink/renderer/devtools/.gitignore index cc11ab1b..0e4ce8a 100644 --- a/third_party/blink/renderer/devtools/.gitignore +++ b/third_party/blink/renderer/devtools/.gitignore
@@ -18,3 +18,4 @@ /front_end/protocol_externs.js package-lock.json .vscode +/front_end/*/jsconfig.json \ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/externs.js b/third_party/blink/renderer/devtools/front_end/externs.js index b363c2c..2993f2c 100644 --- a/third_party/blink/renderer/devtools/front_end/externs.js +++ b/third_party/blink/renderer/devtools/front_end/externs.js
@@ -410,6 +410,8 @@ */ addOverlay: function(spec, options) {}, addWidget: function(pos, node, scroll, vert, horiz) {}, + /** @param {boolean=} isClosed bv */ + changeGeneration: function(isClosed) {}, charCoords: function(pos, mode) {}, clearGutter: function(gutterID) {}, clearHistory: function() {}, @@ -478,7 +480,8 @@ indentLine: function(n, dir, aggressive) {}, indentSelection: function(how) {}, indexFromPos: function(coords) {}, - isClean: function() {}, + /** @param {number=} generation */ + isClean: function(generation) {}, iterLinkedDocs: function(f) {}, lastLine: function() {}, lineCount: function() {},
diff --git a/third_party/blink/renderer/devtools/front_end/jsconfig.json b/third_party/blink/renderer/devtools/front_end/jsconfig.json deleted file mode 100644 index 119d02d..0000000 --- a/third_party/blink/renderer/devtools/front_end/jsconfig.json +++ /dev/null
@@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "lib": ["esnext", "dom"] - }, - "include": [ - "**/*" - ], - "exclude": [ - ".eslintrc.js", - "audits2_worker/lighthouse/", - "audits2/lighthouse/", - "cm/", - "cm_headless/", - "cm_modes/", - "cm_web_modes/", - "diff/diff_match_patch.js", - "formatter_worker/acorn/", - "terminal/xterm.js/", - "protocol_externs.js" - ] -} \ No newline at end of file
diff --git a/third_party/blink/renderer/devtools/front_end/main/Main.js b/third_party/blink/renderer/devtools/front_end/main/Main.js index 72fcced..6428493 100644 --- a/third_party/blink/renderer/devtools/front_end/main/Main.js +++ b/third_party/blink/renderer/devtools/front_end/main/Main.js
@@ -116,6 +116,7 @@ Runtime.experiments.register('oopifInlineDOM', 'OOPIF: inline DOM ', true); Runtime.experiments.register('protocolMonitor', 'Protocol Monitor'); Runtime.experiments.register('sourceDiff', 'Source diff'); + Runtime.experiments.register('sourcesPrettyPrint', 'Automatically pretty print in the Sources Panel'); Runtime.experiments.register( 'stepIntoAsync', 'Introduce separate step action, stepInto becomes powerful enough to go inside async call'); Runtime.experiments.register('splitInDrawer', 'Split in drawer', true);
diff --git a/third_party/blink/renderer/devtools/front_end/object_ui/JavaScriptAutocomplete.js b/third_party/blink/renderer/devtools/front_end/object_ui/JavaScriptAutocomplete.js index accfbd1..740453fd 100644 --- a/third_party/blink/renderer/devtools/front_end/object_ui/JavaScriptAutocomplete.js +++ b/third_party/blink/renderer/devtools/front_end/object_ui/JavaScriptAutocomplete.js
@@ -506,12 +506,20 @@ const quoteUsed = (bracketNotation && query.startsWith('\'')) ? '\'' : '"'; if (!expressionString) { + // See ES2017 spec: https://www.ecma-international.org/ecma-262/8.0/index.html const keywords = [ - 'break', 'case', 'catch', 'continue', 'default', 'delete', 'do', 'else', 'finally', - 'for', 'function', 'if', 'in', 'instanceof', 'new', 'return', 'switch', 'this', - 'throw', 'try', 'typeof', 'var', 'void', 'while', 'with' + // Section 11.6.2.1 Reserved keywords. + 'await', 'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger', 'default', 'delete', 'do', 'else', + 'exports', 'extends', 'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'new', 'return', + 'super', 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void', 'while', 'with', 'yield', + + // Section 11.6.2.1's note mentions words treated as reserved in certain cases. + 'let', 'static', + + // Other keywords not explicitly reserved by spec. + 'async', 'of' ]; - propertyGroups.push({title: Common.UIString('keywords'), items: keywords}); + propertyGroups.push({title: ls`keywords`, items: keywords.sort()}); } /** @type {!Set<string>} */
diff --git a/third_party/blink/renderer/devtools/front_end/source_frame/SourceFrame.js b/third_party/blink/renderer/devtools/front_end/source_frame/SourceFrame.js index 740e181..04a9d36 100644 --- a/third_party/blink/renderer/devtools/front_end/source_frame/SourceFrame.js +++ b/third_party/blink/renderer/devtools/front_end/source_frame/SourceFrame.js
@@ -43,8 +43,9 @@ this._lazyContent = lazyContent; this._pretty = false; - this._rawContent = ''; - /** @type {?Promise<string>} */ + /** @type {?string} */ + this._rawContent = null; + /** @type {?Promise<{content: string, map: !Formatter.FormatterSourceMapping}>} */ this._formattedContentPromise = null; /** @type {?Formatter.FormatterSourceMapping} */ this._formattedMap = null; @@ -58,6 +59,10 @@ this._textEditor = new SourceFrame.SourcesTextEditor(this); this._textEditor.show(this.element); + /** @type {?number} */ + this._prettyCleanGeneration = null; + this._cleanGeneration = 0; + this._searchConfig = null; this._delayedFindSearchMatches = null; this._currentSearchResultIndex = -1; @@ -91,6 +96,30 @@ this._loaded = false; this._contentRequested = false; this._highlighterType = ''; + /** @type {!SourceFrame.Transformer} */ + this._transformer = { + /** + * @param {number} editorLineNumber + * @param {number=} editorColumnNumber + * @return {!Array<number>} + */ + editorToRawLocation: (editorLineNumber, editorColumnNumber = 0) => { + if (!this._pretty) + return [editorLineNumber, editorColumnNumber]; + return this._prettyToRawLocation(editorLineNumber, editorColumnNumber); + }, + + /** + * @param {number} lineNumber + * @param {number=} columnNumber + * @return {!Array<number>} + */ + rawToEditorLocation: (lineNumber, columnNumber = 0) => { + if (!this._pretty) + return [lineNumber, columnNumber]; + return this._rawToPrettyLocation(lineNumber, columnNumber); + } + }; } /** @@ -104,22 +133,26 @@ /** * @param {boolean} value + * @return {!Promise} */ async _setPretty(value) { this._pretty = value; - this._prettyToggle.setToggled(value); this._prettyToggle.setEnabled(false); const wasLoaded = this.loaded; const selection = this.selection(); let newSelection; - if (this._pretty && this._rawContent) { - this.setContent(await this._requestFormattedContent()); + if (this._pretty) { + const formatInfo = await this._requestFormattedContent(); + this._formattedMap = formatInfo.map; + this.setContent(formatInfo.content); + this._prettyCleanGeneration = this._textEditor.markClean(); const start = this._rawToPrettyLocation(selection.startLine, selection.startColumn); const end = this._rawToPrettyLocation(selection.endLine, selection.endColumn); newSelection = new TextUtils.TextRange(start[0], start[1], end[0], end[1]); } else { this.setContent(this._rawContent); + this._cleanGeneration = this._textEditor.markClean(); const start = this._prettyToRawLocation(selection.startLine, selection.startColumn); const end = this._prettyToRawLocation(selection.endLine, selection.endColumn); newSelection = new TextUtils.TextRange(start[0], start[1], end[0], end[1]); @@ -152,6 +185,14 @@ } /** + * @return {!SourceFrame.Transformer} + */ + transformer() { + return this._transformer; + } + + + /** * @param {number} line * @param {number} column * @return {!Array<number>} @@ -216,6 +257,13 @@ return this._textEditor; } + /** + * @protected + */ + get pretty() { + return this._pretty; + } + async _ensureContentLoaded() { if (!this._contentRequested) { this._contentRequested = true; @@ -223,7 +271,8 @@ this._rawContent = content || ''; this._formattedContentPromise = null; this._formattedMap = null; - if (this._shouldAutoPrettyPrint && TextUtils.isMinified(this._rawContent)) + this._prettyToggle.setEnabled(true); + if (this._shouldAutoPrettyPrint && TextUtils.isMinified(content)) await this._setPretty(true); else this.setContent(this._rawContent); @@ -231,16 +280,15 @@ } /** - * @return {!Promise<string>} + * @return {!Promise<{content: string, map: !Formatter.FormatterSourceMapping}>} */ _requestFormattedContent() { if (this._formattedContentPromise) return this._formattedContentPromise; let fulfill; this._formattedContentPromise = new Promise(x => fulfill = x); - new Formatter.ScriptFormatter(this._highlighterType, this._rawContent, (data, map) => { - this._formattedMap = map; - fulfill(data); + new Formatter.ScriptFormatter(this._highlighterType, this._rawContent || '', (content, map) => { + fulfill({content, map}); }); return this._formattedContentPromise; } @@ -325,11 +373,38 @@ * @param {!TextUtils.TextRange} newRange */ onTextChanged(oldRange, newRange) { + const wasPretty = this.pretty; + this._pretty = this._prettyCleanGeneration !== null && this.textEditor.isClean(this._prettyCleanGeneration); + if (this._pretty !== wasPretty) + this._updatePrettyPrintState(); + this._prettyToggle.setEnabled(this.isClean()); + if (this._searchConfig && this._searchableView) this.performSearch(this._searchConfig, false, false); } /** + * @return {boolean} + */ + isClean() { + return this.textEditor.isClean(this._cleanGeneration) || + (this._prettyCleanGeneration !== null && this.textEditor.isClean(this._prettyCleanGeneration)); + } + + contentCommitted() { + this._cleanGeneration = this._textEditor.markClean(); + this._prettyCleanGeneration = null; + this._rawContent = this.textEditor.text(); + this._formattedMap = null; + this._formattedContentPromise = null; + if (this._pretty) { + this._pretty = false; + this._updatePrettyPrintState(); + } + this._prettyToggle.setEnabled(true); + } + + /** * @param {string} content * @param {string} mimeType * @return {string} @@ -376,7 +451,7 @@ if (!this._loaded) { this._loaded = true; this._textEditor.setText(content || ''); - this._textEditor.markClean(); + this._cleanGeneration = this._textEditor.markClean(); this._textEditor.setReadOnly(!this._editable); } else { const scrollTop = this._textEditor.scrollTop(); @@ -625,7 +700,7 @@ * @override * @return {!Promise} */ - populateLineGutterContextMenu(contextMenu, lineNumber) { + populateLineGutterContextMenu(contextMenu, editorLineNumber) { return Promise.resolve(); } @@ -633,7 +708,7 @@ * @override * @return {!Promise} */ - populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber) { + populateTextAreaContextMenu(contextMenu, editorLineNumber, editorColumnNumber) { return Promise.resolve(); } @@ -682,3 +757,11 @@ */ decorate(uiSourceCode, textEditor) {} }; + +/** + * @typedef {{ + * editorToRawLocation: function(number, number=):!Array<number>, + * rawToEditorLocation: function(number, number=):!Array<number> + * }} + */ +SourceFrame.Transformer;
diff --git a/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js b/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js index 66010371..17a3370 100644 --- a/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js +++ b/third_party/blink/renderer/devtools/front_end/sources/DebuggerPlugin.js
@@ -32,11 +32,13 @@ /** * @param {!SourceFrame.SourcesTextEditor} textEditor * @param {!Workspace.UISourceCode} uiSourceCode + * @param {!SourceFrame.Transformer} transformer */ - constructor(textEditor, uiSourceCode) { + constructor(textEditor, uiSourceCode, transformer) { super(); this._textEditor = textEditor; this._uiSourceCode = uiSourceCode; + this._transformer = transformer; /** @type {?Element} */ this._conditionEditorElement = null; @@ -137,9 +139,11 @@ this._hasLineWithoutMapping = false; this._updateLinesWithoutMappingHighlight(); - /** @type {?UI.Infobar} */ - this._prettyPrintInfobar = null; - this._detectMinified(); + if (!Runtime.experiments.isEnabled('sourcesPrettyPrint')) { + /** @type {?UI.Infobar} */ + this._prettyPrintInfobar = null; + this._detectMinified(); + } } /** @@ -234,27 +238,27 @@ /** * @override * @param {!UI.ContextMenu} contextMenu - * @param {number} lineNumber + * @param {number} editorLineNumber * @return {!Promise} */ - populateLineGutterContextMenu(contextMenu, lineNumber) { + populateLineGutterContextMenu(contextMenu, editorLineNumber) { /** * @this {Sources.DebuggerPlugin} */ function populate(resolve, reject) { - const uiLocation = new Workspace.UILocation(this._uiSourceCode, lineNumber, 0); + const uiLocation = new Workspace.UILocation(this._uiSourceCode, editorLineNumber, 0); this._scriptsPanel.appendUILocationItems(contextMenu, uiLocation); - const breakpoints = this._lineBreakpointDecorations(lineNumber) + const breakpoints = this._lineBreakpointDecorations(editorLineNumber) .map(decoration => decoration.breakpoint) .filter(breakpoint => !!breakpoint); if (!breakpoints.length) { contextMenu.debugSection().appendItem( - Common.UIString('Add breakpoint'), this._createNewBreakpoint.bind(this, lineNumber, '', true)); + Common.UIString('Add breakpoint'), this._createNewBreakpoint.bind(this, editorLineNumber, '', true)); contextMenu.debugSection().appendItem( Common.UIString('Add conditional breakpoint\u2026'), - this._editBreakpointCondition.bind(this, lineNumber, null, null)); + this._editBreakpointCondition.bind(this, editorLineNumber, null, null)); contextMenu.debugSection().appendItem( - Common.UIString('Never pause here'), this._createNewBreakpoint.bind(this, lineNumber, 'false', true)); + Common.UIString('Never pause here'), this._createNewBreakpoint.bind(this, editorLineNumber, 'false', true)); } else { const hasOneBreakpoint = breakpoints.length === 1; const removeTitle = @@ -263,7 +267,7 @@ if (hasOneBreakpoint) { contextMenu.debugSection().appendItem( Common.UIString('Edit breakpoint\u2026'), - this._editBreakpointCondition.bind(this, lineNumber, breakpoints[0], null)); + this._editBreakpointCondition.bind(this, editorLineNumber, breakpoints[0], null)); } const hasEnabled = breakpoints.some(breakpoint => breakpoint.enabled()); if (hasEnabled) { @@ -288,11 +292,11 @@ /** * @override * @param {!UI.ContextMenu} contextMenu - * @param {number} lineNumber - * @param {number} columnNumber + * @param {number} editorLineNumber + * @param {number} editorColumnNumber * @return {!Promise} */ - populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber) { + populateTextAreaContextMenu(contextMenu, editorLineNumber, editorColumnNumber) { /** * @param {!Bindings.ResourceScriptFile} scriptFile */ @@ -325,7 +329,7 @@ } } - return super.populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber) + return super.populateTextAreaContextMenu(contextMenu, editorLineNumber, editorColumnNumber) .then(populateSourceMapMembers.bind(this)); } @@ -434,7 +438,7 @@ const mouseColumn = textPosition.startColumn; const textSelection = this._textEditor.selection().normalize(); let anchorBox; - let lineNumber; + let editorLineNumber; let startHighlight; let endHighlight; @@ -447,29 +451,29 @@ this._textEditor.cursorPositionToCoordinates(textSelection.startLine, textSelection.startColumn); const rightCorner = this._textEditor.cursorPositionToCoordinates(textSelection.endLine, textSelection.endColumn); anchorBox = new AnchorBox(leftCorner.x, leftCorner.y, rightCorner.x - leftCorner.x, leftCorner.height); - lineNumber = textSelection.startLine; + editorLineNumber = textSelection.startLine; startHighlight = textSelection.startColumn; endHighlight = textSelection.endColumn - 1; } else { const token = this._textEditor.tokenAtTextPosition(textPosition.startLine, textPosition.startColumn); if (!token || !token.type) return null; - lineNumber = textPosition.startLine; - const line = this._textEditor.line(lineNumber); + editorLineNumber = textPosition.startLine; + const line = this._textEditor.line(editorLineNumber); const tokenContent = line.substring(token.startColumn, token.endColumn); const isIdentifier = this._isIdentifier(token.type); if (!isIdentifier && (token.type !== 'js-keyword' || tokenContent !== 'this')) return null; - const leftCorner = this._textEditor.cursorPositionToCoordinates(lineNumber, token.startColumn); - const rightCorner = this._textEditor.cursorPositionToCoordinates(lineNumber, token.endColumn - 1); + const leftCorner = this._textEditor.cursorPositionToCoordinates(editorLineNumber, token.startColumn); + const rightCorner = this._textEditor.cursorPositionToCoordinates(editorLineNumber, token.endColumn - 1); anchorBox = new AnchorBox(leftCorner.x, leftCorner.y, rightCorner.x - leftCorner.x, leftCorner.height); startHighlight = token.startColumn; endHighlight = token.endColumn - 1; while (startHighlight > 1 && line.charAt(startHighlight - 1) === '.') { - const tokenBefore = this._textEditor.tokenAtTextPosition(lineNumber, startHighlight - 2); + const tokenBefore = this._textEditor.tokenAtTextPosition(editorLineNumber, startHighlight - 2); if (!tokenBefore || !tokenBefore.type) return null; startHighlight = tokenBefore.startColumn; @@ -485,10 +489,10 @@ const selectedCallFrame = UI.context.flavor(SDK.DebuggerModel.CallFrame); if (!selectedCallFrame) return false; - const evaluationText = this._textEditor.line(lineNumber).substring(startHighlight, endHighlight + 1); + const evaluationText = this._textEditor.line(editorLineNumber).substring(startHighlight, endHighlight + 1); const resolvedText = await Sources.SourceMapNamesResolver.resolveExpression( /** @type {!SDK.DebuggerModel.CallFrame} */ (selectedCallFrame), evaluationText, this._uiSourceCode, - lineNumber, startHighlight, endHighlight); + editorLineNumber, startHighlight, endHighlight); const result = await selectedCallFrame.evaluate({ expression: resolvedText || evaluationText, objectGroup: 'popover', @@ -507,7 +511,8 @@ objectPopoverHelper.dispose(); return false; } - const highlightRange = new TextUtils.TextRange(lineNumber, startHighlight, lineNumber, endHighlight); + const highlightRange = + new TextUtils.TextRange(editorLineNumber, startHighlight, editorLineNumber, endHighlight); highlightDescriptor = this._textEditor.highlightRange(highlightRange, 'source-frame-eval-expression'); return true; }, @@ -577,15 +582,15 @@ } /** - * @param {?number} line + * @param {?number} editorLineNumber * @param {boolean} hovered */ - _setAsyncStepInHoveredLine(line, hovered) { - if (this._asyncStepInHoveredLine === line && this._asyncStepInHovered === hovered) + _setAsyncStepInHoveredLine(editorLineNumber, hovered) { + if (this._asyncStepInHoveredLine === editorLineNumber && this._asyncStepInHovered === hovered) return; if (this._asyncStepInHovered && this._asyncStepInHoveredLine) this._textEditor.toggleLineClass(this._asyncStepInHoveredLine, 'source-frame-async-step-in-hovered', false); - this._asyncStepInHoveredLine = line; + this._asyncStepInHoveredLine = editorLineNumber; this._asyncStepInHovered = hovered; if (this._asyncStepInHovered && this._asyncStepInHoveredLine) this._textEditor.toggleLineClass(this._asyncStepInHoveredLine, 'source-frame-async-step-in-hovered', true); @@ -637,19 +642,19 @@ } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {?Bindings.BreakpointManager.Breakpoint} breakpoint * @param {?{lineNumber: number, columnNumber: number}} location */ - _editBreakpointCondition(lineNumber, breakpoint, location) { - this._conditionElement = this._createConditionElement(lineNumber); - this._textEditor.addDecoration(this._conditionElement, lineNumber); + _editBreakpointCondition(editorLineNumber, breakpoint, location) { + this._conditionElement = this._createConditionElement(editorLineNumber); + this._textEditor.addDecoration(this._conditionElement, editorLineNumber); /** * @this {Sources.DebuggerPlugin} */ function finishEditing(committed, element, newText) { - this._textEditor.removeDecoration(/** @type {!Element} */ (this._conditionElement), lineNumber); + this._textEditor.removeDecoration(/** @type {!Element} */ (this._conditionElement), editorLineNumber); this._conditionEditorElement = null; this._conditionElement = null; if (!committed) @@ -660,7 +665,7 @@ else if (location) this._setBreakpoint(location.lineNumber, location.columnNumber, newText, true); else - this._createNewBreakpoint(lineNumber, newText, true); + this._createNewBreakpoint(editorLineNumber, newText, true); } const config = new UI.InplaceEditor.Config(finishEditing.bind(this, true), finishEditing.bind(this, false)); @@ -670,16 +675,16 @@ } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @return {!Element} */ - _createConditionElement(lineNumber) { + _createConditionElement(editorLineNumber) { const conditionElement = createElementWithClass('div', 'source-frame-breakpoint-condition'); const labelElement = conditionElement.createChild('label', 'source-frame-breakpoint-message'); labelElement.htmlFor = 'source-frame-breakpoint-condition'; labelElement.createTextChild( - Common.UIString('The breakpoint on line %d will stop only if this expression is true:', lineNumber + 1)); + Common.UIString('The breakpoint on line %d will stop only if this expression is true:', editorLineNumber + 1)); const editorElement = UI.createInput('monospace', 'text'); conditionElement.appendChild(editorElement); @@ -701,7 +706,8 @@ } this._executionLocation = uiLocation; - this._textEditor.setExecutionLocation(uiLocation.lineNumber, uiLocation.columnNumber); + const editorLocation = this._transformer.rawToEditorLocation(uiLocation.lineNumber, uiLocation.columnNumber); + this._textEditor.setExecutionLocation(editorLocation[0], editorLocation[1]); if (this._textEditor.isShowing()) { // We need SourcesTextEditor to be initialized prior to this call. @see crbug.com/506566 setImmediate(() => { @@ -761,14 +767,14 @@ locations = locations.reverse(); let previousCallLine = -1; for (const location of locations) { - const lineNumber = location.lineNumber; - let token = this._textEditor.tokenAtTextPosition(lineNumber, location.columnNumber); + const editorLocation = this._transformer.rawToEditorLocation(location.lineNumber, location.columnNumber); + let token = this._textEditor.tokenAtTextPosition(editorLocation[0], editorLocation[1]); if (!token) continue; - const line = this._textEditor.line(lineNumber); + const line = this._textEditor.line(editorLocation[0]); let tokenContent = line.substring(token.startColumn, token.endColumn); if (!token.type && tokenContent === '.') { - token = this._textEditor.tokenAtTextPosition(lineNumber, token.endColumn + 1); + token = this._textEditor.tokenAtTextPosition(editorLocation[0], token.endColumn + 1); tokenContent = line.substring(token.startColumn, token.endColumn); } if (!token.type) @@ -778,29 +784,32 @@ tokenContent === 'continue' || tokenContent === 'break'); if (!validKeyword && !this._isIdentifier(token.type)) continue; - if (previousCallLine === lineNumber && location.type !== Protocol.Debugger.BreakLocationType.Call) + if (previousCallLine === editorLocation[0] && location.type !== Protocol.Debugger.BreakLocationType.Call) continue; - let highlightRange = new TextUtils.TextRange(lineNumber, token.startColumn, lineNumber, token.endColumn - 1); + let highlightRange = + new TextUtils.TextRange(editorLocation[0], token.startColumn, editorLocation[0], token.endColumn - 1); let decoration = this._textEditor.highlightRange(highlightRange, 'source-frame-continue-to-location'); this._continueToLocationDecorations.set(decoration, location.continueToLocation.bind(location)); if (location.type === Protocol.Debugger.BreakLocationType.Call) - previousCallLine = lineNumber; + previousCallLine = editorLocation[0]; let isAsyncCall = (line[token.startColumn - 1] === '.' && tokenContent === 'then') || tokenContent === 'setTimeout' || tokenContent === 'setInterval' || tokenContent === 'postMessage'; if (tokenContent === 'new') { - token = this._textEditor.tokenAtTextPosition(lineNumber, token.endColumn + 1); + token = this._textEditor.tokenAtTextPosition(editorLocation[0], token.endColumn + 1); tokenContent = line.substring(token.startColumn, token.endColumn); isAsyncCall = tokenContent === 'Worker'; } - const isCurrentPosition = this._executionLocation && lineNumber === this._executionLocation.lineNumber && + const isCurrentPosition = this._executionLocation && + location.lineNumber === this._executionLocation.lineNumber && location.columnNumber === this._executionLocation.columnNumber; if (location.type === Protocol.Debugger.BreakLocationType.Call && isAsyncCall) { - const asyncStepInRange = this._findAsyncStepInRange(this._textEditor, lineNumber, line, token.endColumn); + const asyncStepInRange = + this._findAsyncStepInRange(this._textEditor, editorLocation[0], line, token.endColumn); if (asyncStepInRange) { - highlightRange = - new TextUtils.TextRange(lineNumber, asyncStepInRange.from, lineNumber, asyncStepInRange.to - 1); + highlightRange = new TextUtils.TextRange( + editorLocation[0], asyncStepInRange.from, editorLocation[0], asyncStepInRange.to - 1); decoration = this._textEditor.highlightRange(highlightRange, 'source-frame-async-step-in'); this._continueToLocationDecorations.set( decoration, this._asyncStepIn.bind(this, location, !!isCurrentPosition)); @@ -817,12 +826,12 @@ /** * @param {!SourceFrame.SourcesTextEditor} textEditor - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {string} line * @param {number} column * @return {?{from: number, to: number}} */ - _findAsyncStepInRange(textEditor, lineNumber, line, column) { + _findAsyncStepInRange(textEditor, editorLineNumber, line, column) { let token; let tokenText; let from = column; @@ -869,7 +878,7 @@ return {from: from, to: closeParen + 1}; function nextToken() { - token = textEditor.tokenAtTextPosition(lineNumber, position); + token = textEditor.tokenAtTextPosition(editorLineNumber, position); if (token) { position = token.endColumn; to = token.endColumn; @@ -883,7 +892,7 @@ position++; continue; } - const token = textEditor.tokenAtTextPosition(lineNumber, position); + const token = textEditor.tokenAtTextPosition(editorLineNumber, position); if (token.type === 'js-comment') { position = token.endColumn; continue; @@ -928,9 +937,13 @@ return; } - const fromLine = functionUILocation.lineNumber; - const fromColumn = functionUILocation.columnNumber; - let toLine = executionUILocation.lineNumber; + const functionEditorLocation = + this._transformer.rawToEditorLocation(functionUILocation.lineNumber, functionUILocation.columnNumber); + const executionEditorLocation = + this._transformer.rawToEditorLocation(executionUILocation.lineNumber, executionUILocation.columnNumber); + const fromLine = functionEditorLocation[0]; + const fromColumn = functionEditorLocation[1]; + let toLine = executionEditorLocation[0]; // Make sure we have a chance to update all existing widgets. if (this._valueWidgets) { @@ -955,19 +968,19 @@ tokenizer(this._textEditor.line(i), processToken.bind(this, i)); /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {string} tokenValue * @param {?string} tokenType * @param {number} column * @param {number} newColumn * @this {Sources.DebuggerPlugin} */ - function processToken(lineNumber, tokenValue, tokenType, column, newColumn) { + function processToken(editorLineNumber, tokenValue, tokenType, column, newColumn) { if (!skipObjectProperty && tokenType && this._isIdentifier(tokenType) && valuesMap.get(tokenValue)) { - let names = namesPerLine.get(lineNumber); + let names = namesPerLine.get(editorLineNumber); if (!names) { names = new Set(); - namesPerLine.set(lineNumber, names); + namesPerLine.set(editorLineNumber, names); } names.add(tokenValue); } @@ -1102,16 +1115,16 @@ } /** - * @param {number} lineNumber - * @param {number} columnNumber + * @param {number} editorLineNumber + * @param {number} editorColumnNumber * @return {?Sources.DebuggerPlugin.BreakpointDecoration} */ - _breakpointDecoration(lineNumber, columnNumber) { + _breakpointDecoration(editorLineNumber, editorColumnNumber) { for (const decoration of this._breakpointDecorations) { const location = decoration.handle.resolve(); if (!location) continue; - if (location.lineNumber === lineNumber && location.columnNumber === columnNumber) + if (location.lineNumber === editorLineNumber && location.columnNumber === editorColumnNumber) return decoration; } return null; @@ -1134,16 +1147,16 @@ function update() { if (!this._scheduledBreakpointDecorationUpdates) return; - const lineNumbers = new Set(); + const editorLineNumbers = new Set(); for (const decoration of this._scheduledBreakpointDecorationUpdates) { const location = decoration.handle.resolve(); if (!location) continue; - lineNumbers.add(location.lineNumber); + editorLineNumbers.add(location.lineNumber); } this._scheduledBreakpointDecorationUpdates = null; let waitingForInlineDecorations = false; - for (const lineNumber of lineNumbers) { + for (const lineNumber of editorLineNumbers) { const decorations = this._lineBreakpointDecorations(lineNumber); updateGutter.call(this, lineNumber, decorations); if (this._possibleBreakpointsRequested.has(lineNumber)) { @@ -1157,34 +1170,35 @@ } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {!Array<!Sources.DebuggerPlugin.BreakpointDecoration>} decorations * @this {Sources.DebuggerPlugin} */ - function updateGutter(lineNumber, decorations) { - this._textEditor.toggleLineClass(lineNumber, 'cm-breakpoint', false); - this._textEditor.toggleLineClass(lineNumber, 'cm-breakpoint-disabled', false); - this._textEditor.toggleLineClass(lineNumber, 'cm-breakpoint-conditional', false); + function updateGutter(editorLineNumber, decorations) { + this._textEditor.toggleLineClass(editorLineNumber, 'cm-breakpoint', false); + this._textEditor.toggleLineClass(editorLineNumber, 'cm-breakpoint-disabled', false); + this._textEditor.toggleLineClass(editorLineNumber, 'cm-breakpoint-conditional', false); if (decorations.length) { decorations.sort(Sources.DebuggerPlugin.BreakpointDecoration.mostSpecificFirst); - this._textEditor.toggleLineClass(lineNumber, 'cm-breakpoint', true); - this._textEditor.toggleLineClass(lineNumber, 'cm-breakpoint-disabled', !decorations[0].enabled || this._muted); - this._textEditor.toggleLineClass(lineNumber, 'cm-breakpoint-conditional', !!decorations[0].condition); + this._textEditor.toggleLineClass(editorLineNumber, 'cm-breakpoint', true); + this._textEditor.toggleLineClass( + editorLineNumber, 'cm-breakpoint-disabled', !decorations[0].enabled || this._muted); + this._textEditor.toggleLineClass(editorLineNumber, 'cm-breakpoint-conditional', !!decorations[0].condition); } } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {!Array<!Sources.DebuggerPlugin.BreakpointDecoration>} decorations * @this {Sources.DebuggerPlugin} */ - function updateInlineDecorations(lineNumber, decorations) { + function updateInlineDecorations(editorLineNumber, decorations) { const actualBookmarks = new Set(decorations.map(decoration => decoration.bookmark).filter(bookmark => !!bookmark)); - const lineEnd = this._textEditor.line(lineNumber).length; + const lineEnd = this._textEditor.line(editorLineNumber).length; const bookmarks = this._textEditor.bookmarks( - new TextUtils.TextRange(lineNumber, 0, lineNumber, lineEnd), + new TextUtils.TextRange(editorLineNumber, 0, editorLineNumber, lineEnd), Sources.DebuggerPlugin.BreakpointDecoration.bookmarkSymbol); for (const bookmark of bookmarks) { if (!actualBookmarks.has(bookmark)) @@ -1222,10 +1236,11 @@ else decoration.breakpoint.remove(); } else { - const location = decoration.handle.resolve(); - if (!location) + const editorLocation = decoration.handle.resolve(); + if (!editorLocation) return; - this._setBreakpoint(location.lineNumber, location.columnNumber, decoration.condition, true); + const location = this._transformer.editorToRawLocation(editorLocation.lineNumber, editorLocation.columnNumber); + this._setBreakpoint(location[0], location[1], decoration.condition, true); } } @@ -1235,21 +1250,21 @@ */ _inlineBreakpointContextMenu(decoration, event) { event.consume(true); - const location = decoration.handle.resolve(); - if (!location) + const editorLocation = decoration.handle.resolve(); + if (!editorLocation) return; + const location = this._transformer.editorToRawLocation(editorLocation[0], editorLocation[1]); const contextMenu = new UI.ContextMenu(event); if (decoration.breakpoint) { contextMenu.debugSection().appendItem( Common.UIString('Edit breakpoint\u2026'), - this._editBreakpointCondition.bind(this, location.lineNumber, decoration.breakpoint, null)); + this._editBreakpointCondition.bind(this, editorLocation.lineNumber, decoration.breakpoint, null)); } else { contextMenu.debugSection().appendItem( Common.UIString('Add conditional breakpoint\u2026'), - this._editBreakpointCondition.bind(this, location.lineNumber, null, location)); + this._editBreakpointCondition.bind(this, editorLocation.lineNumber, null, editorLocation)); contextMenu.debugSection().appendItem( - Common.UIString('Never pause here'), - this._setBreakpoint.bind(this, location.lineNumber, location.columnNumber, 'false', true)); + Common.UIString('Never pause here'), this._setBreakpoint.bind(this, location[0], location[1], 'false', true)); } contextMenu.show(); } @@ -1290,14 +1305,15 @@ * @param {!Bindings.BreakpointManager.Breakpoint} breakpoint */ _addBreakpoint(uiLocation, breakpoint) { + const editorLocation = this._transformer.rawToEditorLocation(uiLocation.lineNumber, uiLocation.columnNumber); const lineDecorations = this._lineBreakpointDecorations(uiLocation.lineNumber); - let decoration = this._breakpointDecoration(uiLocation.lineNumber, uiLocation.columnNumber); + let decoration = this._breakpointDecoration(editorLocation[0], editorLocation[1]); if (decoration) { decoration.breakpoint = breakpoint; decoration.condition = breakpoint.condition(); decoration.enabled = breakpoint.enabled(); } else { - const handle = this._textEditor.textEditorPositionHandle(uiLocation.lineNumber, uiLocation.columnNumber); + const handle = this._textEditor.textEditorPositionHandle(editorLocation[0], editorLocation[1]); decoration = new Sources.DebuggerPlugin.BreakpointDecoration( this._textEditor, handle, breakpoint.condition(), breakpoint.enabled(), breakpoint); decoration.element.addEventListener('click', this._inlineBreakpointClick.bind(this, decoration), true); @@ -1308,21 +1324,22 @@ this._decorationByBreakpoint.set(breakpoint, decoration); this._updateBreakpointDecoration(decoration); if (breakpoint.enabled() && !lineDecorations.length) { - this._possibleBreakpointsRequested.add(uiLocation.lineNumber); + this._possibleBreakpointsRequested.add(editorLocation[0]); + const start = this._transformer.editorToRawLocation(editorLocation[0], 0); + const end = this._transformer.editorToRawLocation(editorLocation[0] + 1, 0); this._breakpointManager - .possibleBreakpoints( - this._uiSourceCode, new TextUtils.TextRange(uiLocation.lineNumber, 0, uiLocation.lineNumber + 1, 0)) - .then(addInlineDecorations.bind(this, uiLocation.lineNumber)); + .possibleBreakpoints(this._uiSourceCode, new TextUtils.TextRange(start[0], start[1], end[0], end[1])) + .then(addInlineDecorations.bind(this, editorLocation[0])); } /** * @this {Sources.DebuggerPlugin} - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {!Array<!Workspace.UILocation>} possibleLocations */ - function addInlineDecorations(lineNumber, possibleLocations) { - this._possibleBreakpointsRequested.delete(lineNumber); - const decorations = this._lineBreakpointDecorations(lineNumber); + function addInlineDecorations(editorLineNumber, possibleLocations) { + this._possibleBreakpointsRequested.delete(editorLineNumber); + const decorations = this._lineBreakpointDecorations(editorLineNumber); for (const decoration of decorations) this._updateBreakpointDecoration(decoration); if (!decorations.some(decoration => !!decoration.breakpoint)) @@ -1330,15 +1347,16 @@ /** @type {!Set<number>} */ const columns = new Set(); for (const decoration of decorations) { - const location = decoration.handle.resolve(); - if (!location) + const editorLocation = decoration.handle.resolve(); + if (!editorLocation) continue; - columns.add(location.columnNumber); + columns.add(editorLocation.columnNumber); } for (const location of possibleLocations) { - if (columns.has(location.columnNumber)) + const editorLocation = this._transformer.rawToEditorLocation(location.lineNumber, location.columnNumber); + if (columns.has(editorLocation[1])) continue; - const handle = this._textEditor.textEditorPositionHandle(location.lineNumber, location.columnNumber); + const handle = this._textEditor.textEditorPositionHandle(editorLocation[0], editorLocation[1]); const decoration = new Sources.DebuggerPlugin.BreakpointDecoration(this._textEditor, handle, '', false, null); decoration.element.addEventListener('click', this._inlineBreakpointClick.bind(this, decoration), true); decoration.element.addEventListener( @@ -1362,10 +1380,11 @@ return; this._decorationByBreakpoint.delete(breakpoint); + const editorLocation = this._transformer.rawToEditorLocation(uiLocation.lineNumber, uiLocation.columnNumber); decoration.breakpoint = null; decoration.enabled = false; - const lineDecorations = this._lineBreakpointDecorations(uiLocation.lineNumber); + const lineDecorations = this._lineBreakpointDecorations(editorLocation[0]); if (!lineDecorations.some(decoration => !!decoration.breakpoint)) { for (const lineDecoration of lineDecorations) { this._breakpointDecorations.delete(lineDecoration); @@ -1479,27 +1498,27 @@ return; const eventData = /** @type {!SourceFrame.SourcesTextEditor.GutterClickEventData} */ (event.data); - const lineNumber = eventData.lineNumber; + const editorLineNumber = eventData.lineNumber; const eventObject = eventData.event; if (eventObject.button !== 0 || eventObject.altKey || eventObject.ctrlKey || eventObject.metaKey) return; - this._toggleBreakpoint(lineNumber, eventObject.shiftKey); + this._toggleBreakpoint(editorLineNumber, eventObject.shiftKey); eventObject.consume(true); } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {boolean} onlyDisable */ - _toggleBreakpoint(lineNumber, onlyDisable) { - const decorations = this._lineBreakpointDecorations(lineNumber); + _toggleBreakpoint(editorLineNumber, onlyDisable) { + const decorations = this._lineBreakpointDecorations(editorLineNumber); if (!decorations.length) { - this._createNewBreakpoint(lineNumber, '', true); + this._createNewBreakpoint(editorLineNumber, '', true); return; } - const hasDisabled = this._textEditor.hasLineClass(lineNumber, 'cm-breakpoint-disabled'); + const hasDisabled = this._textEditor.hasLineClass(editorLineNumber, 'cm-breakpoint-disabled'); const breakpoints = decorations.map(decoration => decoration.breakpoint).filter(breakpoint => !!breakpoint); for (const breakpoint of breakpoints) { if (onlyDisable) @@ -1510,31 +1529,34 @@ } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {string} condition * @param {boolean} enabled */ - async _createNewBreakpoint(lineNumber, condition, enabled) { + async _createNewBreakpoint(editorLineNumber, condition, enabled) { Host.userMetrics.actionTaken(Host.UserMetrics.Action.ScriptsBreakpointSet); - const originLineNumber = lineNumber; + const origin = this._transformer.editorToRawLocation(editorLineNumber, 0); const maxLengthToCheck = 1024; let linesToCheck = 5; - for (; lineNumber < this._textEditor.linesCount && linesToCheck > 0; ++lineNumber) { - const lineLength = this._textEditor.line(lineNumber).length; + for (; editorLineNumber < this._textEditor.linesCount && linesToCheck > 0; ++editorLineNumber) { + const lineLength = this._textEditor.line(editorLineNumber).length; if (lineLength > maxLengthToCheck) break; if (lineLength === 0) continue; --linesToCheck; + + const start = this._transformer.editorToRawLocation(editorLineNumber, 0); + const end = this._transformer.editorToRawLocation(editorLineNumber, lineLength); const locations = await this._breakpointManager.possibleBreakpoints( - this._uiSourceCode, new TextUtils.TextRange(lineNumber, 0, lineNumber, lineLength)); + this._uiSourceCode, new TextUtils.TextRange(start[0], start[1], end[0], end[1])); if (locations && locations.length) { this._setBreakpoint(locations[0].lineNumber, locations[0].columnNumber, condition, enabled); return; } } - this._setBreakpoint(originLineNumber, 0, condition, enabled); + this._setBreakpoint(origin[0], origin[1], condition, enabled); } /** @@ -1691,11 +1713,11 @@ show() { if (this.bookmark) return; - const location = this.handle.resolve(); - if (!location) + const editorLocation = this.handle.resolve(); + if (!editorLocation) return; this.bookmark = this._textEditor.addBookmark( - location.lineNumber, location.columnNumber, this.element, + editorLocation.lineNumber, editorLocation.columnNumber, this.element, Sources.DebuggerPlugin.BreakpointDecoration.bookmarkSymbol); this.bookmark[Sources.DebuggerPlugin.BreakpointDecoration._elementSymbolForTest] = this.element; }
diff --git a/third_party/blink/renderer/devtools/front_end/sources/SourcesView.js b/third_party/blink/renderer/devtools/front_end/sources/SourcesView.js index 0e4352a3..f02e8d4 100644 --- a/third_party/blink/renderer/devtools/front_end/sources/SourcesView.js +++ b/third_party/blink/renderer/devtools/front_end/sources/SourcesView.js
@@ -36,9 +36,10 @@ this._historyManager = new Sources.EditingLocationHistoryManager(this, this.currentSourceFrame.bind(this)); this._toolbarContainerElement = this.element.createChild('div', 'sources-toolbar'); - this._toolbarEditorActions = new UI.Toolbar('', this._toolbarContainerElement); - - self.runtime.allInstances(Sources.SourcesView.EditorAction).then(appendButtonsForExtensions.bind(this)); + if (!Runtime.experiments.isEnabled('sourcesPrettyPrint')) { + this._toolbarEditorActions = new UI.Toolbar('', this._toolbarContainerElement); + self.runtime.allInstances(Sources.SourcesView.EditorAction).then(appendButtonsForExtensions.bind(this)); + } /** * @param {!Array.<!Sources.SourcesView.EditorAction>} actions * @this {Sources.SourcesView}
diff --git a/third_party/blink/renderer/devtools/front_end/sources/UISourceCodeFrame.js b/third_party/blink/renderer/devtools/front_end/sources/UISourceCodeFrame.js index b76c7d77..47de6207 100644 --- a/third_party/blink/renderer/devtools/front_end/sources/UISourceCodeFrame.js +++ b/third_party/blink/renderer/devtools/front_end/sources/UISourceCodeFrame.js
@@ -165,6 +165,10 @@ this._updateStyle(); this._decorateAllTypes(); this._refreshHighlighterType(); + if (Runtime.experiments.isEnabled('sourcesPrettyPrint')) { + const supportedPrettyTypes = new Set(['text/html', 'text/css', 'text/javascript']); + this.setCanPrettyPrint(supportedPrettyTypes.has(this.highlighterType()), true); + } this._ensurePluginsLoaded(); } @@ -214,6 +218,9 @@ if (this._uiSourceCode.project().type() === Workspace.projectTypes.Network && Persistence.networkPersistenceManager.active()) return true; + // Because live edit fails on large whitespace changes, pretty printed scripts are not editable. + if (this.pretty && this._uiSourceCode.contentType().hasScripts()) + return false; return this._uiSourceCode.contentType() !== Common.resourceTypes.Document; } @@ -236,6 +243,7 @@ */ setContent(content) { this._disposePlugins(); + this._rowMessageBuckets.clear(); super.setContent(content); for (const message of this._allMessages()) this._addMessageToSource(message); @@ -261,17 +269,23 @@ * @param {!TextUtils.TextRange} newRange */ onTextChanged(oldRange, newRange) { + const wasPretty = this.pretty; super.onTextChanged(oldRange, newRange); this._errorPopoverHelper.hidePopover(); if (this._isSettingContent) return; Sources.SourcesPanel.instance().updateLastModificationTime(); this._muteSourceCodeEvents = true; - if (this.textEditor.isClean()) + if (this.isClean()) this._uiSourceCode.resetWorkingCopy(); else this._uiSourceCode.setWorkingCopyGetter(this.textEditor.text.bind(this.textEditor)); this._muteSourceCodeEvents = false; + if (wasPretty !== this.pretty) { + this._updateStyle(); + this._disposePlugins(); + this._ensurePluginsLoaded(); + } } /** @@ -289,7 +303,7 @@ _onWorkingCopyCommitted(event) { if (!this._muteSourceCodeEvents) this._innerSetContent(this._uiSourceCode.workingCopy()); - this.textEditor.markClean(); + this.contentCommitted(); this._updateStyle(); } @@ -302,14 +316,15 @@ // The order of these plugins matters for toolbar items if (Sources.DebuggerPlugin.accepts(pluginUISourceCode)) - this._plugins.push(new Sources.DebuggerPlugin(this.textEditor, pluginUISourceCode)); + this._plugins.push(new Sources.DebuggerPlugin(this.textEditor, pluginUISourceCode, this.transformer())); if (Sources.CSSPlugin.accepts(pluginUISourceCode)) this._plugins.push(new Sources.CSSPlugin(this.textEditor)); - if (Sources.JavaScriptCompilerPlugin.accepts(pluginUISourceCode)) + if (!this.pretty && Sources.JavaScriptCompilerPlugin.accepts(pluginUISourceCode)) this._plugins.push(new Sources.JavaScriptCompilerPlugin(this.textEditor, pluginUISourceCode)); if (Sources.SnippetsPlugin.accepts(pluginUISourceCode)) this._plugins.push(new Sources.SnippetsPlugin(this.textEditor, pluginUISourceCode)); - if (Runtime.experiments.isEnabled('sourceDiff') && Sources.GutterDiffPlugin.accepts(pluginUISourceCode)) + if (!this.pretty && Runtime.experiments.isEnabled('sourceDiff') && + Sources.GutterDiffPlugin.accepts(pluginUISourceCode)) this._plugins.push(new Sources.GutterDiffPlugin(this.textEditor, pluginUISourceCode)); this.dispatchEventToListeners(Sources.UISourceCodeFrame.Events.ToolbarItemsChanged); @@ -318,8 +333,10 @@ } _disposePlugins() { - for (const plugin of this._plugins) - plugin.dispose(); + this.textEditor.operation(() => { + for (const plugin of this._plugins) + plugin.dispose(); + }); this._plugins = []; } @@ -353,13 +370,14 @@ * @override * @return {!Promise} */ - async populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber) { - await super.populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber); + async populateTextAreaContextMenu(contextMenu, editorLineNumber, editorColumnNumber) { + await super.populateTextAreaContextMenu(contextMenu, editorLineNumber, editorColumnNumber); contextMenu.appendApplicableItems(this._uiSourceCode); - contextMenu.appendApplicableItems(new Workspace.UILocation(this._uiSourceCode, lineNumber, columnNumber)); + const location = this.transformer().editorToRawLocation(editorLineNumber, editorColumnNumber); + contextMenu.appendApplicableItems(new Workspace.UILocation(this._uiSourceCode, location[0], location[1])); contextMenu.appendApplicableItems(this); for (const plugin of this._plugins) - await plugin.populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber); + await plugin.populateTextAreaContextMenu(contextMenu, editorLineNumber, editorColumnNumber); } dispose() { @@ -385,16 +403,17 @@ _addMessageToSource(message) { if (!this.loaded) return; - let lineNumber = message.lineNumber(); - if (lineNumber >= this.textEditor.linesCount) - lineNumber = this.textEditor.linesCount - 1; - if (lineNumber < 0) - lineNumber = 0; + const editorLocation = this.transformer().rawToEditorLocation(message.lineNumber(), message.columnNumber()); + let editorLineNumber = editorLocation[0]; + if (editorLineNumber >= this.textEditor.linesCount) + editorLineNumber = this.textEditor.linesCount - 1; + if (editorLineNumber < 0) + editorLineNumber = 0; - let messageBucket = this._rowMessageBuckets.get(lineNumber); + let messageBucket = this._rowMessageBuckets.get(editorLineNumber); if (!messageBucket) { - messageBucket = new Sources.UISourceCodeFrame.RowMessageBucket(this, this.textEditor, lineNumber); - this._rowMessageBuckets.set(lineNumber, messageBucket); + messageBucket = new Sources.UISourceCodeFrame.RowMessageBucket(this, this.textEditor, editorLineNumber); + this._rowMessageBuckets.set(editorLineNumber, messageBucket); } messageBucket.addMessage(message); } @@ -414,19 +433,20 @@ if (!this.loaded) return; - let lineNumber = message.lineNumber(); - if (lineNumber >= this.textEditor.linesCount) - lineNumber = this.textEditor.linesCount - 1; - if (lineNumber < 0) - lineNumber = 0; + const editorLocation = this.transformer().rawToEditorLocation(message.lineNumber(), message.columnNumber()); + let editorLineNumber = editorLocation[0]; + if (editorLineNumber >= this.textEditor.linesCount) + editorLineNumber = this.textEditor.linesCount - 1; + if (editorLineNumber < 0) + editorLineNumber = 0; - const messageBucket = this._rowMessageBuckets.get(lineNumber); + const messageBucket = this._rowMessageBuckets.get(editorLineNumber); if (!messageBucket) return; messageBucket.removeMessage(message); if (!messageBucket.uniqueMessagesCount()) { messageBucket.detachFromEditor(); - this._rowMessageBuckets.delete(lineNumber); + this._rowMessageBuckets.delete(editorLineNumber); } } @@ -605,12 +625,12 @@ /** * @param {!Sources.UISourceCodeFrame} sourceFrame * @param {!TextEditor.CodeMirrorTextEditor} textEditor - * @param {number} lineNumber + * @param {number} editorLineNumber */ - constructor(sourceFrame, textEditor, lineNumber) { + constructor(sourceFrame, textEditor, editorLineNumber) { this._sourceFrame = sourceFrame; this.textEditor = textEditor; - this._lineHandle = textEditor.textEditorPositionHandle(lineNumber, 0); + this._lineHandle = textEditor.textEditorPositionHandle(editorLineNumber, 0); this._decoration = createElementWithClass('div', 'text-editor-line-decoration'); this._decoration._messageBucket = this; this._wave = this._decoration.createChild('div', 'text-editor-line-decoration-wave'); @@ -626,20 +646,20 @@ } /** - * @param {number} lineNumber + * @param {number} editorLineNumber * @param {number} columnNumber */ - _updateWavePosition(lineNumber, columnNumber) { - lineNumber = Math.min(lineNumber, this.textEditor.linesCount - 1); - const lineText = this.textEditor.line(lineNumber); + _updateWavePosition(editorLineNumber, columnNumber) { + editorLineNumber = Math.min(editorLineNumber, this.textEditor.linesCount - 1); + const lineText = this.textEditor.line(editorLineNumber); columnNumber = Math.min(columnNumber, lineText.length); const lineIndent = TextUtils.TextUtils.lineIndent(lineText).length; const startColumn = Math.max(columnNumber - 1, lineIndent); if (this._decorationStartColumn === startColumn) return; if (this._decorationStartColumn !== null) - this.textEditor.removeDecoration(this._decoration, lineNumber); - this.textEditor.addDecoration(this._decoration, lineNumber, startColumn); + this.textEditor.removeDecoration(this._decoration, editorLineNumber); + this.textEditor.addDecoration(this._decoration, editorLineNumber, startColumn); this._decorationStartColumn = startColumn; } @@ -659,11 +679,13 @@ const position = this._lineHandle.resolve(); if (!position) return; - const lineNumber = position.lineNumber; - if (this._level) - this.textEditor.toggleLineClass(lineNumber, Sources.UISourceCodeFrame._lineClassPerLevel[this._level], false); + const editorLineNumber = position.lineNumber; + if (this._level) { + this.textEditor.toggleLineClass( + editorLineNumber, Sources.UISourceCodeFrame._lineClassPerLevel[this._level], false); + } if (this._decorationStartColumn !== null) { - this.textEditor.removeDecoration(this._decoration, lineNumber); + this.textEditor.removeDecoration(this._decoration, editorLineNumber); this._decorationStartColumn = null; } } @@ -717,27 +739,30 @@ if (!position) return; - const lineNumber = position.lineNumber; + const editorLineNumber = position.lineNumber; let columnNumber = Number.MAX_VALUE; let maxMessage = null; for (let i = 0; i < this._messages.length; ++i) { const message = this._messages[i].message(); - columnNumber = Math.min(columnNumber, message.columnNumber()); + const editorLocation = + this._sourceFrame.transformer().rawToEditorLocation(editorLineNumber, message.columnNumber()); + columnNumber = Math.min(columnNumber, editorLocation[1]); if (!maxMessage || Workspace.UISourceCode.Message.messageLevelComparator(maxMessage, message) < 0) maxMessage = message; } - this._updateWavePosition(lineNumber, columnNumber); + this._updateWavePosition(editorLineNumber, columnNumber); if (this._level === maxMessage.level()) return; if (this._level) { - this.textEditor.toggleLineClass(lineNumber, Sources.UISourceCodeFrame._lineClassPerLevel[this._level], false); + this.textEditor.toggleLineClass( + editorLineNumber, Sources.UISourceCodeFrame._lineClassPerLevel[this._level], false); this._icon.type = ''; } this._level = maxMessage.level(); if (!this._level) return; - this.textEditor.toggleLineClass(lineNumber, Sources.UISourceCodeFrame._lineClassPerLevel[this._level], true); + this.textEditor.toggleLineClass(editorLineNumber, Sources.UISourceCodeFrame._lineClassPerLevel[this._level], true); this._icon.type = Sources.UISourceCodeFrame._iconClassPerLevel[this._level]; } };
diff --git a/third_party/blink/renderer/devtools/front_end/text_editor/CodeMirrorTextEditor.js b/third_party/blink/renderer/devtools/front_end/text_editor/CodeMirrorTextEditor.js index adb3bd1..3d0a1cf1 100644 --- a/third_party/blink/renderer/devtools/front_end/text_editor/CodeMirrorTextEditor.js +++ b/third_party/blink/renderer/devtools/front_end/text_editor/CodeMirrorTextEditor.js
@@ -636,14 +636,18 @@ } /** + * @param {number} generation * @return {boolean} */ - isClean() { - return this._codeMirror.isClean(); + isClean(generation) { + return this._codeMirror.isClean(generation); } + /** + * @return {number} + */ markClean() { - this._codeMirror.markClean(); + return this._codeMirror.changeGeneration(true); } /** @@ -1216,6 +1220,9 @@ this._enableLongLinesMode(); else this._disableLongLinesMode(); + + if (!this.isShowing()) + this.refresh(); } /**
diff --git a/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css b/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css index e451a8f..f30c3340d 100644 --- a/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css +++ b/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css
@@ -114,6 +114,10 @@ white-space: nowrap; } +.pretty-printed .CodeMirror-linenumber { + color: var( --accent-color-b); +} + .cm-highlight { -webkit-animation: fadeout 2s 0s; }
diff --git a/third_party/blink/renderer/devtools/package.json b/third_party/blink/renderer/devtools/package.json index 6df88ea..5fe0fdb 100644 --- a/third_party/blink/renderer/devtools/package.json +++ b/third_party/blink/renderer/devtools/package.json
@@ -13,7 +13,8 @@ "format-py": "yapf --exclude scripts/build/rjsmin.py -i --recursive scripts PRESUBMIT.py", "extract": "node scripts/extract_module/extract_module.js", "check-gn": "node scripts/check_gn.js", - "check-json": "node scripts/json_validator/validate_module_json.js" + "check-json": "node scripts/json_validator/validate_module_json.js", + "generate-jsconfig": "node scripts/generate_jsconfig.js" }, "repository": { "type": "git",
diff --git a/third_party/blink/renderer/devtools/scripts/generate_jsconfig.js b/third_party/blink/renderer/devtools/scripts/generate_jsconfig.js new file mode 100644 index 0000000..8ab44ae --- /dev/null +++ b/third_party/blink/renderer/devtools/scripts/generate_jsconfig.js
@@ -0,0 +1,59 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This file generates jsconfig.json to improve VSCode autocomplete in the DevTools codebase. +const fs = require('fs'); +const path = require('path'); +const utils = require('./utils'); + +const FRONTEND_PATH = path.resolve(__dirname, '..', 'front_end'); + +const modulePaths = []; +for (let dir of fs.readdirSync(FRONTEND_PATH)) { + if (!utils.isDir(path.resolve(FRONTEND_PATH, dir))) + continue; + const modulePath = path.resolve(dir, 'module.json'); + if (utils.isFile(path.resolve(FRONTEND_PATH, dir, 'module.json'))) + modulePaths.push(dir); +} +const modules = new Map(); +for (const modulePath of modulePaths) { + const moduleObject = JSON.parse(fs.readFileSync(path.resolve(FRONTEND_PATH, modulePath, 'module.json'))); + modules.set(modulePath, moduleObject); +} + +for (const [name, moduleJSON] of modules) { + const jsconfig = { + compilerOptions: { + target: 'esnext', + lib: ['esnext', 'dom'] + }, + include: [ + '**/*', + '../Runtime.js', + '../externs.js' + ], + exclude: (moduleJSON.skip_compilation || []) + }; + for (const dependency of dependencyChain(name)) { + jsconfig.include.push('../' + dependency + '/**/*'); + for (const file of modules.get(dependency).skip_compilation || []) + jsconfig.exclude.push(path.posix.join('..',dependency, file)); + } + fs.writeFileSync(path.resolve(FRONTEND_PATH, name, 'jsconfig.json'), JSON.stringify(jsconfig, undefined, 2)); +} + +/** + * @param {string} moduleName + * @return {!Set<string>} + */ +function dependencyChain(moduleName) { + const dependencies = new Set(); + for (const dependency of modules.get(moduleName).dependencies || []){ + dependencies.add(dependency); + for (const innerDependency of dependencyChain(dependency)) + dependencies.add(innerDependency); + } + return dependencies; +} \ No newline at end of file
diff --git a/third_party/blink/renderer/modules/cache_storage/DEPS b/third_party/blink/renderer/modules/cache_storage/DEPS index c6f94549..d3de51a 100644 --- a/third_party/blink/renderer/modules/cache_storage/DEPS +++ b/third_party/blink/renderer/modules/cache_storage/DEPS
@@ -1,4 +1,5 @@ include_rules = [ + "+mojo/public/cpp/bindings", "+services/network/public/mojom", "-third_party/blink/renderer/modules", "+third_party/blink/renderer/modules/cache_storage",
diff --git a/third_party/blink/renderer/modules/cache_storage/cache.cc b/third_party/blink/renderer/modules/cache_storage/cache.cc index 414f98f3..a1af8e2 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache.cc +++ b/third_party/blink/renderer/modules/cache_storage/cache.cc
@@ -8,7 +8,7 @@ #include <utility> #include "services/network/public/mojom/fetch_api.mojom-blink.h" #include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" +#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_response.h" #include "third_party/blink/renderer/bindings/core/v8/callback_promise_adapter.h" #include "third_party/blink/renderer/bindings/core/v8/exception_state.h" #include "third_party/blink/renderer/bindings/core/v8/idl_types.h" @@ -40,142 +40,6 @@ namespace { -// FIXME: Consider using CallbackPromiseAdapter. -class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks { - WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks); - - public: - explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver) - : resolver_(resolver) {} - - void OnSuccess(const WebServiceWorkerResponse& web_response) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - ScriptState::Scope scope(resolver_->GetScriptState()); - resolver_->Resolve( - Response::Create(resolver_->GetScriptState(), web_response)); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - if (reason == mojom::CacheStorageError::kErrorNotFound) - resolver_->Resolve(); - else - resolver_->Reject(CacheStorageError::CreateException(reason)); - resolver_.Clear(); - } - - private: - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheWithResponsesCallbacks - : public WebServiceWorkerCache::CacheWithResponsesCallbacks { - WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); - - public: - explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver) - : resolver_(resolver) {} - - void OnSuccess( - const WebVector<WebServiceWorkerResponse>& web_responses) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - ScriptState::Scope scope(resolver_->GetScriptState()); - HeapVector<Member<Response>> responses; - for (size_t i = 0; i < web_responses.size(); ++i) { - responses.push_back( - Response::Create(resolver_->GetScriptState(), web_responses[i])); - } - resolver_->Resolve(responses); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - resolver_->Reject(CacheStorageError::CreateException(reason)); - resolver_.Clear(); - } - - protected: - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks { - WTF_MAKE_NONCOPYABLE(CacheDeleteCallback); - - public: - explicit CacheDeleteCallback(ScriptPromiseResolver* resolver) - : resolver_(resolver) {} - - void OnSuccess() override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - resolver_->Resolve(true); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - if (reason == mojom::CacheStorageError::kErrorNotFound) - resolver_->Resolve(false); - else - resolver_->Reject(CacheStorageError::CreateException(reason)); - resolver_.Clear(); - } - - private: - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheWithRequestsCallbacks - : public WebServiceWorkerCache::CacheWithRequestsCallbacks { - WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); - - public: - explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver) - : resolver_(resolver) {} - - void OnSuccess( - const WebVector<WebServiceWorkerRequest>& web_requests) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - ScriptState::Scope scope(resolver_->GetScriptState()); - HeapVector<Member<Request>> requests; - for (size_t i = 0; i < web_requests.size(); ++i) { - requests.push_back( - Request::Create(resolver_->GetScriptState(), web_requests[i])); - } - resolver_->Resolve(requests); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - resolver_->Reject(CacheStorageError::CreateException(reason)); - resolver_.Clear(); - } - - private: - Persistent<ScriptPromiseResolver> resolver_; -}; - void RecordResponseTypeForAdd(const Member<Response>& response) { UMA_HISTOGRAM_ENUMERATION("ServiceWorkerCache.Cache.AddResponseType", response->GetResponse()->GetType()); @@ -288,18 +152,31 @@ } void OnSuccess(size_t index, - const WebServiceWorkerCache::BatchOperation& batch_operation) { + mojom::blink::BatchOperationPtr batch_operation) { DCHECK_LT(index, batch_operations_.size()); if (!StillActive()) return; - batch_operations_[index] = batch_operation; + batch_operations_[index] = std::move(batch_operation); if (--number_of_remaining_operations_ != 0) return; MaybeReportInstalledScripts(); - cache_->WebCache()->DispatchBatch( - std::make_unique<CallbackPromiseAdapter<void, CacheStorageError>>( - resolver_), - batch_operations_); + cache_->cache_ptr_->Batch( + std::move(batch_operations_), + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::CacheStorageError error) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (error == mojom::blink::CacheStorageError::kSuccess) { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.Batch", + TimeTicks::Now() - start_time); + resolver->Resolve(); + } else { + resolver->Reject(CacheStorageError::CreateException(error)); + } + }, + WrapPersistent(resolver_.Get()), TimeTicks::Now())); } void OnError(const String& error_message) { @@ -349,15 +226,19 @@ for (const auto& operation : batch_operations_) { scoped_refptr<BlobDataHandle> blob_data_handle = - operation.response.GetBlobDataHandle(); + operation->response->blob; if (!blob_data_handle) continue; if (!MIMETypeRegistry::IsSupportedJavaScriptMIMEType( blob_data_handle->GetType())) { continue; } - global_scope->CountCacheStorageInstalledScript( - blob_data_handle->size(), operation.response.SideDataBlobSize()); + uint64_t side_data_blob_size = + operation->response->side_data_blob + ? operation->response->side_data_blob->size() + : 0; + global_scope->CountCacheStorageInstalledScript(blob_data_handle->size(), + side_data_blob_size); } } @@ -365,7 +246,7 @@ int number_of_remaining_operations_; Member<Cache> cache_; Member<ScriptPromiseResolver> resolver_; - Vector<WebServiceWorkerCache::BatchOperation> batch_operations_; + Vector<mojom::blink::BatchOperationPtr> batch_operations_; }; class Cache::BlobHandleCallbackForPut final @@ -380,18 +261,19 @@ Response* response) : index_(index), barrier_callback_(barrier_callback) { request->PopulateWebServiceWorkerRequest(web_request_); - response->PopulateWebServiceWorkerResponse(web_response_); + fetch_api_response_ = response->PopulateFetchAPIResponse(); } ~BlobHandleCallbackForPut() override = default; void DidFetchDataLoadedBlobHandle( scoped_refptr<BlobDataHandle> handle) override { - WebServiceWorkerCache::BatchOperation batch_operation; - batch_operation.operation_type = WebServiceWorkerCache::kOperationTypePut; - batch_operation.request = web_request_; - batch_operation.response = web_response_; - batch_operation.response.SetBlobDataHandle(std::move(handle)); - barrier_callback_->OnSuccess(index_, batch_operation); + mojom::blink::BatchOperationPtr batch_operation = + mojom::blink::BatchOperation::New(); + batch_operation->operation_type = mojom::blink::OperationType::kPut; + batch_operation->request = web_request_; + batch_operation->response = std::move(fetch_api_response_); + batch_operation->response->blob = handle; + barrier_callback_->OnSuccess(index_, std::move(batch_operation)); } void DidFetchDataLoadFailed() override { @@ -410,7 +292,7 @@ Member<BarrierCallbackForPut> barrier_callback_; WebServiceWorkerRequest web_request_; - WebServiceWorkerResponse web_response_; + mojom::blink::FetchAPIResponsePtr fetch_api_response_; }; class Cache::CodeCacheHandleCallbackForPut final @@ -429,21 +311,22 @@ barrier_callback_(barrier_callback), mime_type_(response->InternalMIMEType()) { request->PopulateWebServiceWorkerRequest(web_request_); - response->PopulateWebServiceWorkerResponse(web_response_); + fetch_api_response_ = response->PopulateFetchAPIResponse(); } ~CodeCacheHandleCallbackForPut() override = default; void DidFetchDataLoadedArrayBuffer(DOMArrayBuffer* array_buffer) override { - WebServiceWorkerCache::BatchOperation batch_operation; - batch_operation.operation_type = WebServiceWorkerCache::kOperationTypePut; - batch_operation.request = web_request_; - batch_operation.response = web_response_; + mojom::blink::BatchOperationPtr batch_operation = + mojom::blink::BatchOperation::New(); + batch_operation->operation_type = mojom::blink::OperationType::kPut; + batch_operation->request = web_request_; + batch_operation->response = std::move(fetch_api_response_); std::unique_ptr<BlobData> blob_data = BlobData::Create(); blob_data->SetContentType(mime_type_); blob_data->AppendBytes(array_buffer->Data(), array_buffer->ByteLength()); - batch_operation.response.SetBlobDataHandle(BlobDataHandle::Create( - std::move(blob_data), array_buffer->ByteLength())); + batch_operation->response->blob = BlobDataHandle::Create( + std::move(blob_data), array_buffer->ByteLength()); // Currently we only support UTF8 encoding. // TODO(horo): Use the charset in Content-type header of the response. @@ -458,12 +341,12 @@ text_decoder->Decode(static_cast<const char*>(array_buffer->Data()), array_buffer->ByteLength()), web_request_.Url().GetString(), text_decoder->Encoding(), - web_response_.ResponseType() == + batch_operation->response->response_type == network::mojom::FetchResponseType::kOpaque ? V8ScriptRunner::OpaqueMode::kOpaque : V8ScriptRunner::OpaqueMode::kNotOpaque); if (!cached_metadata) { - barrier_callback_->OnSuccess(index_, batch_operation); + barrier_callback_->OnSuccess(index_, std::move(batch_operation)); return; } const Vector<char>& serialized_data = cached_metadata->SerializedData(); @@ -471,9 +354,9 @@ side_data_blob_data->AppendBytes(serialized_data.data(), serialized_data.size()); - batch_operation.response.SetSideDataBlobDataHandle(BlobDataHandle::Create( - std::move(side_data_blob_data), serialized_data.size())); - barrier_callback_->OnSuccess(index_, batch_operation); + batch_operation->response->side_data_blob = BlobDataHandle::Create( + std::move(side_data_blob_data), serialized_data.size()); + barrier_callback_->OnSuccess(index_, std::move(batch_operation)); } void DidFetchDataLoadFailed() override { @@ -494,12 +377,13 @@ const String mime_type_; WebServiceWorkerRequest web_request_; - WebServiceWorkerResponse web_response_; + mojom::blink::FetchAPIResponsePtr fetch_api_response_; }; -Cache* Cache::Create(GlobalFetch::ScopedFetcher* fetcher, - std::unique_ptr<WebServiceWorkerCache> web_cache) { - return new Cache(fetcher, std::move(web_cache)); +Cache* Cache::Create( + GlobalFetch::ScopedFetcher* fetcher, + mojom::blink::CacheStorageCacheAssociatedPtrInfo cache_ptr_info) { + return new Cache(fetcher, std::move(cache_ptr_info)); } ScriptPromise Cache::match(ScriptState* script_state, @@ -518,7 +402,7 @@ ScriptPromise Cache::matchAll(ScriptState* script_state, ExceptionState& exception_state) { - return MatchAllImpl(script_state); + return MatchAllImpl(script_state, nullptr, CacheQueryOptions()); } ScriptPromise Cache::matchAll(ScriptState* script_state, @@ -603,7 +487,7 @@ } ScriptPromise Cache::keys(ScriptState* script_state, ExceptionState&) { - return KeysImpl(script_state); + return KeysImpl(script_state, nullptr, CacheQueryOptions()); } ScriptPromise Cache::keys(ScriptState* script_state, @@ -621,19 +505,21 @@ } // static -WebServiceWorkerCache::QueryParams Cache::ToWebQueryParams( +mojom::blink::QueryParamsPtr Cache::ToQueryParams( const CacheQueryOptions& options) { - WebServiceWorkerCache::QueryParams web_query_params; - web_query_params.ignore_search = options.ignoreSearch(); - web_query_params.ignore_method = options.ignoreMethod(); - web_query_params.ignore_vary = options.ignoreVary(); - web_query_params.cache_name = options.cacheName(); - return web_query_params; + mojom::blink::QueryParamsPtr query_params = mojom::blink::QueryParams::New(); + query_params->ignore_search = options.ignoreSearch(); + query_params->ignore_method = options.ignoreMethod(); + query_params->ignore_vary = options.ignoreVary(); + query_params->cache_name = options.cacheName(); + return query_params; } Cache::Cache(GlobalFetch::ScopedFetcher* fetcher, - std::unique_ptr<WebServiceWorkerCache> web_cache) - : scoped_fetcher_(fetcher), web_cache_(std::move(web_cache)) {} + mojom::blink::CacheStorageCacheAssociatedPtrInfo cache_ptr_info) + : scoped_fetcher_(fetcher) { + cache_ptr_.Bind(std::move(cache_ptr_info)); +} void Cache::Trace(blink::Visitor* visitor) { visitor->Trace(scoped_fetcher_); @@ -652,17 +538,35 @@ resolver->Resolve(); return promise; } - web_cache_->DispatchMatch(std::make_unique<CacheMatchCallbacks>(resolver), - web_request, ToWebQueryParams(options)); - return promise; -} -ScriptPromise Cache::MatchAllImpl(ScriptState* script_state) { - ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); - const ScriptPromise promise = resolver->Promise(); - web_cache_->DispatchMatchAll( - std::make_unique<CacheWithResponsesCallbacks>(resolver), - WebServiceWorkerRequest(), WebServiceWorkerCache::QueryParams()); + cache_ptr_->Match( + web_request, ToQueryParams(options), + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::MatchResultPtr result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (result->is_status()) { + switch (result->get_status()) { + case mojom::CacheStorageError::kErrorNotFound: + resolver->Resolve(); + break; + default: + resolver->Reject( + CacheStorageError::CreateException(result->get_status())); + break; + } + } else { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.Match", + TimeTicks::Now() - start_time); + ScriptState::Scope scope(resolver->GetScriptState()); + resolver->Resolve(Response::Create(resolver->GetScriptState(), + *result->get_response())); + } + }, + WrapPersistent(resolver), TimeTicks::Now())); + return promise; } @@ -670,17 +574,43 @@ const Request* request, const CacheQueryOptions& options) { WebServiceWorkerRequest web_request; - request->PopulateWebServiceWorkerRequest(web_request); - ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); const ScriptPromise promise = resolver->Promise(); - if (request->method() != HTTPNames::GET && !options.ignoreMethod()) { - resolver->Resolve(HeapVector<Member<Response>>()); - return promise; + + if (request) { + request->PopulateWebServiceWorkerRequest(web_request); + + if (request->method() != HTTPNames::GET && !options.ignoreMethod()) { + resolver->Resolve(HeapVector<Member<Response>>()); + return promise; + } } - web_cache_->DispatchMatchAll( - std::make_unique<CacheWithResponsesCallbacks>(resolver), web_request, - ToWebQueryParams(options)); + + cache_ptr_->MatchAll( + web_request, ToQueryParams(options), + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::MatchAllResultPtr result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (result->is_status()) { + resolver->Reject( + CacheStorageError::CreateException(result->get_status())); + } else { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.MatchAll", + TimeTicks::Now() - start_time); + ScriptState::Scope scope(resolver->GetScriptState()); + HeapVector<Member<Response>> responses; + responses.ReserveInitialCapacity(result->get_responses().size()); + for (auto& response : result->get_responses()) { + responses.push_back( + Response::Create(resolver->GetScriptState(), *response)); + } + resolver->Resolve(responses); + } + }, + WrapPersistent(resolver), TimeTicks::Now())); return promise; } @@ -722,20 +652,44 @@ ScriptPromise Cache::DeleteImpl(ScriptState* script_state, const Request* request, const CacheQueryOptions& options) { - WebVector<WebServiceWorkerCache::BatchOperation> batch_operations(size_t(1)); - batch_operations[0].operation_type = - WebServiceWorkerCache::kOperationTypeDelete; - request->PopulateWebServiceWorkerRequest(batch_operations[0].request); - batch_operations[0].match_params = ToWebQueryParams(options); - ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); const ScriptPromise promise = resolver->Promise(); if (request->method() != HTTPNames::GET && !options.ignoreMethod()) { resolver->Resolve(false); return promise; } - web_cache_->DispatchBatch(std::make_unique<CacheDeleteCallback>(resolver), - batch_operations); + + Vector<mojom::blink::BatchOperationPtr> batch_operations; + batch_operations.push_back(mojom::blink::BatchOperation::New()); + auto& operation = batch_operations.back(); + operation->operation_type = mojom::blink::OperationType::kDelete; + request->PopulateWebServiceWorkerRequest(operation->request); + operation->match_params = ToQueryParams(options); + + cache_ptr_->Batch( + std::move(batch_operations), + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::CacheStorageError error) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (error != mojom::blink::CacheStorageError::kSuccess) { + switch (error) { + case mojom::blink::CacheStorageError::kErrorNotFound: + resolver->Resolve(false); + break; + default: + resolver->Reject(CacheStorageError::CreateException(error)); + break; + } + } else { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.Batch", + TimeTicks::Now() - start_time); + resolver->Resolve(true); + } + }, + WrapPersistent(resolver), TimeTicks::Now())); return promise; } @@ -796,45 +750,59 @@ continue; } - WebServiceWorkerCache::BatchOperation batch_operation; - batch_operation.operation_type = WebServiceWorkerCache::kOperationTypePut; - requests[i]->PopulateWebServiceWorkerRequest(batch_operation.request); - responses[i]->PopulateWebServiceWorkerResponse(batch_operation.response); - barrier_callback->OnSuccess(i, batch_operation); + mojom::blink::BatchOperationPtr batch_operation = + mojom::blink::BatchOperation::New(); + batch_operation->operation_type = mojom::blink::OperationType::kPut; + requests[i]->PopulateWebServiceWorkerRequest(batch_operation->request); + batch_operation->response = responses[i]->PopulateFetchAPIResponse(); + barrier_callback->OnSuccess(i, std::move(batch_operation)); } return promise; } -ScriptPromise Cache::KeysImpl(ScriptState* script_state) { - ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); - const ScriptPromise promise = resolver->Promise(); - web_cache_->DispatchKeys( - std::make_unique<CacheWithRequestsCallbacks>(resolver), - WebServiceWorkerRequest(), WebServiceWorkerCache::QueryParams()); - return promise; -} - ScriptPromise Cache::KeysImpl(ScriptState* script_state, const Request* request, const CacheQueryOptions& options) { WebServiceWorkerRequest web_request; - request->PopulateWebServiceWorkerRequest(web_request); - ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); const ScriptPromise promise = resolver->Promise(); - if (request->method() != HTTPNames::GET && !options.ignoreMethod()) { - resolver->Resolve(HeapVector<Member<Request>>()); - return promise; - } - web_cache_->DispatchKeys( - std::make_unique<CacheWithRequestsCallbacks>(resolver), web_request, - ToWebQueryParams(options)); - return promise; -} -WebServiceWorkerCache* Cache::WebCache() const { - return web_cache_.get(); + if (request) { + request->PopulateWebServiceWorkerRequest(web_request); + + if (request->method() != HTTPNames::GET && !options.ignoreMethod()) { + resolver->Resolve(HeapVector<Member<Response>>()); + return promise; + } + } + + cache_ptr_->Keys( + web_request, ToQueryParams(options), + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::CacheKeysResultPtr result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (result->is_status()) { + resolver->Reject( + CacheStorageError::CreateException(result->get_status())); + } else { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.Cache.Keys", + TimeTicks::Now() - start_time); + ScriptState::Scope scope(resolver->GetScriptState()); + HeapVector<Member<Request>> requests; + requests.ReserveInitialCapacity(result->get_keys().size()); + for (auto& request : result->get_keys()) { + requests.push_back( + Request::Create(resolver->GetScriptState(), request)); + } + resolver->Resolve(requests); + } + }, + WrapPersistent(resolver), TimeTicks::Now())); + return promise; } } // namespace blink
diff --git a/third_party/blink/renderer/modules/cache_storage/cache.h b/third_party/blink/renderer/modules/cache_storage/cache.h index ddc343b6..782de3f 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache.h +++ b/third_party/blink/renderer/modules/cache_storage/cache.h
@@ -7,7 +7,8 @@ #include <memory> #include "base/macros.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" + +#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/core/fetch/global_fetch.h" #include "third_party/blink/renderer/modules/cache_storage/cache_query_options.h" @@ -31,7 +32,7 @@ public: static Cache* Create(GlobalFetch::ScopedFetcher*, - std::unique_ptr<WebServiceWorkerCache>); + mojom::blink::CacheStorageCacheAssociatedPtrInfo); // From Cache.idl: ScriptPromise match(ScriptState*, @@ -61,8 +62,7 @@ const CacheQueryOptions&, ExceptionState&); - static WebServiceWorkerCache::QueryParams ToWebQueryParams( - const CacheQueryOptions&); + static mojom::blink::QueryParamsPtr ToQueryParams(const CacheQueryOptions&); void Trace(blink::Visitor*) override; @@ -72,12 +72,12 @@ class CodeCacheHandleCallbackForPut; class FetchResolvedForAdd; friend class FetchResolvedForAdd; - Cache(GlobalFetch::ScopedFetcher*, std::unique_ptr<WebServiceWorkerCache>); + Cache(GlobalFetch::ScopedFetcher*, + mojom::blink::CacheStorageCacheAssociatedPtrInfo); ScriptPromise MatchImpl(ScriptState*, const Request*, const CacheQueryOptions&); - ScriptPromise MatchAllImpl(ScriptState*); ScriptPromise MatchAllImpl(ScriptState*, const Request*, const CacheQueryOptions&); @@ -90,15 +90,13 @@ ScriptPromise PutImpl(ScriptState*, const HeapVector<Member<Request>>&, const HeapVector<Member<Response>>&); - ScriptPromise KeysImpl(ScriptState*); ScriptPromise KeysImpl(ScriptState*, const Request*, const CacheQueryOptions&); - WebServiceWorkerCache* WebCache() const; - Member<GlobalFetch::ScopedFetcher> scoped_fetcher_; - std::unique_ptr<WebServiceWorkerCache> web_cache_; + + mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr_; DISALLOW_COPY_AND_ASSIGN(Cache); };
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage.cc b/third_party/blink/renderer/modules/cache_storage/cache_storage.cc index fb59d4c2..aeb510c4 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache_storage.cc +++ b/third_party/blink/renderer/modules/cache_storage/cache_storage.cc
@@ -8,8 +8,8 @@ #include <utility> #include "base/memory/ptr_util.h" -#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h" +#include "base/metrics/histogram_macros.h" +#include "services/service_manager/public/cpp/interface_provider.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/core/dom/exception_code.h" @@ -23,271 +23,128 @@ namespace blink { -namespace { - -DOMException* CreateNoImplementationException() { - return DOMException::Create(kNotSupportedError, - "No CacheStorage implementation provided."); -} - -} // namespace - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheStorage::Callbacks final - : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { - WTF_MAKE_NONCOPYABLE(Callbacks); - - public: - explicit Callbacks(ScriptPromiseResolver* resolver) : resolver_(resolver) {} - ~Callbacks() override = default; - - void OnSuccess() override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - resolver_->Resolve(true); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - if (reason == mojom::CacheStorageError::kErrorNotFound) - resolver_->Resolve(false); - else - resolver_->Reject(CacheStorageError::CreateException(reason)); - resolver_.Clear(); - } - - private: - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheStorage::WithCacheCallbacks final - : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { - WTF_MAKE_NONCOPYABLE(WithCacheCallbacks); - - public: - WithCacheCallbacks(const String& cache_name, - CacheStorage* cache_storage, - ScriptPromiseResolver* resolver) - : cache_name_(cache_name), - cache_storage_(cache_storage), - resolver_(resolver) {} - ~WithCacheCallbacks() override = default; - - void OnSuccess(std::unique_ptr<WebServiceWorkerCache> web_cache) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - DCHECK(cache_storage_) << "CacheStorage should outlive WithCacheCallbacks."; - Cache* cache = Cache::Create(cache_storage_->scoped_fetcher_, - base::WrapUnique(web_cache.release())); - resolver_->Resolve(cache); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - if (reason == mojom::CacheStorageError::kErrorNotFound || - reason == mojom::CacheStorageError::kErrorStorage) { - resolver_->Resolve(); - } else { - resolver_->Reject(CacheStorageError::CreateException(reason)); - } - resolver_.Clear(); - } - - private: - String cache_name_; - - // TODO(crbug.com/831117): Switch to Persistent<CacheStorage> once Oilpan can - // handle it on thread shutdown. - // |cache_storage_| is guaranteed to be alive during OnSuccess/OnError because - // CacheStorage is actually owned by GlobalCacheStorage, which is terminated - // when LocalDOMWindow/WorkerGlobalScope is terminated. - // Ownership chain: - // GlobalCacheStorage => CacheStorage => WebServiceWorkerCacheStorage(Impl) => - // WithCacheCallbacks. - WeakPersistent<CacheStorage> cache_storage_; - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheStorage::MatchCallbacks - : public WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks { - WTF_MAKE_NONCOPYABLE(MatchCallbacks); - - public: - explicit MatchCallbacks(ScriptPromiseResolver* resolver) - : resolver_(resolver) {} - - void OnSuccess(const WebServiceWorkerResponse& web_response) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - ScriptState::Scope scope(resolver_->GetScriptState()); - resolver_->Resolve( - Response::Create(resolver_->GetScriptState(), web_response)); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - if (reason == mojom::CacheStorageError::kErrorNotFound || - reason == mojom::CacheStorageError::kErrorStorage || - reason == mojom::CacheStorageError::kErrorCacheNameNotFound) { - resolver_->Resolve(); - } else { - resolver_->Reject(CacheStorageError::CreateException(reason)); - } - resolver_.Clear(); - } - - private: - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheStorage::DeleteCallbacks final - : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { - WTF_MAKE_NONCOPYABLE(DeleteCallbacks); - - public: - DeleteCallbacks(const String& cache_name, - CacheStorage* cache_storage, - ScriptPromiseResolver* resolver) - : cache_name_(cache_name), resolver_(resolver) {} - ~DeleteCallbacks() override = default; - - void OnSuccess() override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - resolver_->Resolve(true); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - if (reason == mojom::CacheStorageError::kErrorNotFound || - reason == mojom::CacheStorageError::kErrorStorage) { - resolver_->Resolve(false); - } else { - resolver_->Reject(CacheStorageError::CreateException(reason)); - } - resolver_.Clear(); - } - - private: - String cache_name_; - Persistent<ScriptPromiseResolver> resolver_; -}; - -// FIXME: Consider using CallbackPromiseAdapter. -class CacheStorage::KeysCallbacks final - : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks { - WTF_MAKE_NONCOPYABLE(KeysCallbacks); - - public: - explicit KeysCallbacks(ScriptPromiseResolver* resolver) - : resolver_(resolver) {} - ~KeysCallbacks() override = default; - - void OnSuccess(const WebVector<WebString>& keys) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - Vector<String> wtf_keys; - for (size_t i = 0; i < keys.size(); ++i) - wtf_keys.push_back(keys[i]); - resolver_->Resolve(wtf_keys); - resolver_.Clear(); - } - - void OnError(mojom::CacheStorageError reason) override { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - resolver_->Reject(CacheStorageError::CreateException(reason)); - resolver_.Clear(); - } - - private: - Persistent<ScriptPromiseResolver> resolver_; -}; - CacheStorage* CacheStorage::Create( GlobalFetch::ScopedFetcher* fetcher, - std::unique_ptr<WebServiceWorkerCacheStorage> web_cache_storage) { - return new CacheStorage(fetcher, std::move(web_cache_storage)); + service_manager::InterfaceProvider* mojo_provider) { + return new CacheStorage(fetcher, mojo_provider); } ScriptPromise CacheStorage::open(ScriptState* script_state, const String& cache_name) { ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); - const ScriptPromise promise = resolver->Promise(); - if (web_cache_storage_) { - web_cache_storage_->DispatchOpen( - std::make_unique<WithCacheCallbacks>(cache_name, this, resolver), - cache_name); - } else { - resolver->Reject(CreateNoImplementationException()); - } + cache_storage_ptr_->Open( + cache_name, + WTF::Bind( + [](ScriptPromiseResolver* resolver, + GlobalFetch::ScopedFetcher* fetcher, TimeTicks start_time, + mojom::blink::OpenResultPtr result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (result->is_status()) { + switch (result->get_status()) { + case mojom::blink::CacheStorageError::kErrorNotFound: + case mojom::blink::CacheStorageError::kErrorStorage: + resolver->Resolve(); + break; + default: + resolver->Reject( + CacheStorageError::CreateException(result->get_status())); + break; + } + } else { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Open", + TimeTicks::Now() - start_time); + resolver->Resolve( + Cache::Create(fetcher, std::move(result->get_cache()))); + } + }, + WrapPersistent(resolver), WrapPersistent(scoped_fetcher_.Get()), + TimeTicks::Now())); - return promise; + return resolver->Promise(); } ScriptPromise CacheStorage::has(ScriptState* script_state, const String& cache_name) { ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); - const ScriptPromise promise = resolver->Promise(); - if (web_cache_storage_) { - web_cache_storage_->DispatchHas(std::make_unique<Callbacks>(resolver), - cache_name); - } else { - resolver->Reject(CreateNoImplementationException()); - } + cache_storage_ptr_->Has( + cache_name, + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::CacheStorageError result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + switch (result) { + case mojom::blink::CacheStorageError::kSuccess: + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Has", + TimeTicks::Now() - start_time); + resolver->Resolve(true); + break; + case mojom::blink::CacheStorageError::kErrorNotFound: + resolver->Resolve(false); + break; + default: + resolver->Reject(CacheStorageError::CreateException(result)); + break; + } + }, + WrapPersistent(resolver), TimeTicks::Now())); - return promise; + return resolver->Promise(); } ScriptPromise CacheStorage::Delete(ScriptState* script_state, const String& cache_name) { ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); - const ScriptPromise promise = resolver->Promise(); - if (web_cache_storage_) { - web_cache_storage_->DispatchDelete( - std::make_unique<DeleteCallbacks>(cache_name, this, resolver), - cache_name); - } else { - resolver->Reject(CreateNoImplementationException()); - } + cache_storage_ptr_->Delete( + cache_name, + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::CacheStorageError result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + switch (result) { + case mojom::blink::CacheStorageError::kSuccess: + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Delete", + TimeTicks::Now() - start_time); + resolver->Resolve(true); + break; + case mojom::blink::CacheStorageError::kErrorStorage: + case mojom::blink::CacheStorageError::kErrorNotFound: + resolver->Resolve(false); + break; + default: + resolver->Reject(CacheStorageError::CreateException(result)); + break; + } + }, + WrapPersistent(resolver), TimeTicks::Now())); - return promise; + return resolver->Promise(); } ScriptPromise CacheStorage::keys(ScriptState* script_state) { ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); - const ScriptPromise promise = resolver->Promise(); - if (web_cache_storage_) - web_cache_storage_->DispatchKeys(std::make_unique<KeysCallbacks>(resolver)); - else - resolver->Reject(CreateNoImplementationException()); + cache_storage_ptr_->Keys(WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + const Vector<String>& keys) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Keys", + TimeTicks::Now() - start_time); + resolver->Resolve(keys); + }, + WrapPersistent(resolver), TimeTicks::Now())); - return promise; + return resolver->Promise(); } ScriptPromise CacheStorage::match(ScriptState* script_state, @@ -319,29 +176,47 @@ return promise; } - if (web_cache_storage_) { - web_cache_storage_->DispatchMatch( - std::make_unique<MatchCallbacks>(resolver), web_request, - Cache::ToWebQueryParams(options)); - } else { - resolver->Reject(CreateNoImplementationException()); - } + cache_storage_ptr_->Match( + web_request, Cache::ToQueryParams(options), + WTF::Bind( + [](ScriptPromiseResolver* resolver, TimeTicks start_time, + mojom::blink::MatchResultPtr result) { + if (!resolver->GetExecutionContext() || + resolver->GetExecutionContext()->IsContextDestroyed()) + return; + if (result->is_status()) { + switch (result->get_status()) { + case mojom::CacheStorageError::kErrorNotFound: + case mojom::CacheStorageError::kErrorStorage: + case mojom::CacheStorageError::kErrorCacheNameNotFound: + resolver->Resolve(); + break; + default: + resolver->Reject( + CacheStorageError::CreateException(result->get_status())); + break; + } + } else { + UMA_HISTOGRAM_TIMES("ServiceWorkerCache.CacheStorage.Match", + TimeTicks::Now() - start_time); + ScriptState::Scope scope(resolver->GetScriptState()); + resolver->Resolve(Response::Create(resolver->GetScriptState(), + *result->get_response())); + } + }, + WrapPersistent(resolver), TimeTicks::Now())); return promise; } -CacheStorage::CacheStorage( - GlobalFetch::ScopedFetcher* fetcher, - std::unique_ptr<WebServiceWorkerCacheStorage> web_cache_storage) - : scoped_fetcher_(fetcher), - web_cache_storage_(std::move(web_cache_storage)) {} +CacheStorage::CacheStorage(GlobalFetch::ScopedFetcher* fetcher, + service_manager::InterfaceProvider* mojo_provider) + : scoped_fetcher_(fetcher) { + mojo_provider->GetInterface(mojo::MakeRequest(&cache_storage_ptr_)); +} CacheStorage::~CacheStorage() = default; -void CacheStorage::Dispose() { - web_cache_storage_.reset(); -} - void CacheStorage::Trace(blink::Visitor* visitor) { visitor->Trace(scoped_fetcher_); ScriptWrappable::Trace(visitor);
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage.h b/third_party/blink/renderer/modules/cache_storage/cache_storage.h index d72b7c4..2032305 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache_storage.h +++ b/third_party/blink/renderer/modules/cache_storage/cache_storage.h
@@ -7,7 +7,7 @@ #include <memory> #include "base/macros.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h" +#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/core/fetch/global_fetch.h" #include "third_party/blink/renderer/modules/cache_storage/cache.h" @@ -19,16 +19,13 @@ namespace blink { -class WebServiceWorkerCacheStorage; - class CacheStorage final : public ScriptWrappable { DEFINE_WRAPPERTYPEINFO(); public: static CacheStorage* Create(GlobalFetch::ScopedFetcher*, - std::unique_ptr<WebServiceWorkerCacheStorage>); + service_manager::InterfaceProvider*); ~CacheStorage() override; - void Dispose(); ScriptPromise open(ScriptState*, const String& cache_name); ScriptPromise has(ScriptState*, const String& cache_name); @@ -52,13 +49,14 @@ friend class DeleteCallbacks; CacheStorage(GlobalFetch::ScopedFetcher*, - std::unique_ptr<WebServiceWorkerCacheStorage>); + service_manager::InterfaceProvider*); ScriptPromise MatchImpl(ScriptState*, const Request*, const CacheQueryOptions&); Member<GlobalFetch::ScopedFetcher> scoped_fetcher_; - std::unique_ptr<WebServiceWorkerCacheStorage> web_cache_storage_; + + mojom::blink::CacheStoragePtr cache_storage_ptr_; DISALLOW_COPY_AND_ASSIGN(CacheStorage); };
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_test.cc b/third_party/blink/renderer/modules/cache_storage/cache_test.cc index d53c6a6..1cd0949a 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache_test.cc +++ b/third_party/blink/renderer/modules/cache_storage/cache_test.cc
@@ -9,10 +9,11 @@ #include <string> #include "base/memory/ptr_util.h" +#include "mojo/public/cpp/bindings/associated_binding.h" #include "services/network/public/mojom/fetch_api.mojom-blink.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" +#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_response.h" #include "third_party/blink/public/platform/web_url_response.h" #include "third_party/blink/renderer/bindings/core/v8/exception_state.h" #include "third_party/blink/renderer/bindings/core/v8/idl_types.h" @@ -34,6 +35,7 @@ #include "third_party/blink/renderer/core/fetch/response_init.h" #include "third_party/blink/renderer/core/frame/frame.h" #include "third_party/blink/renderer/core/testing/page_test_base.h" +#include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" using blink::mojom::CacheStorageError; @@ -101,19 +103,20 @@ Member<Response> response_; }; -// A test implementation of the WebServiceWorkerCache interface which returns a +// A test implementation of the CacheStorageCache interface which returns a // (provided) error for every operation, and optionally checks arguments to // methods against provided arguments. Also used as a base class for test // specific caches. -class ErrorWebCacheForTests : public WebServiceWorkerCache { +class ErrorCacheForTests : public mojom::blink::CacheStorageCache { public: - ErrorWebCacheForTests(const CacheStorageError error) + ErrorCacheForTests(const mojom::blink::CacheStorageError error) : error_(error), expected_url_(nullptr), expected_query_params_(nullptr), expected_batch_operations_(nullptr) {} std::string GetAndClearLastErrorWebCacheMethodCalled() { + test::RunPendingTasks(); std::string old = last_error_web_cache_method_called_; last_error_web_cache_method_called_.clear(); return old; @@ -124,54 +127,54 @@ void SetExpectedUrl(const String* expected_url) { expected_url_ = expected_url; } - void SetExpectedQueryParams(const QueryParams* expected_query_params) { + void SetExpectedQueryParams( + const mojom::blink::QueryParamsPtr* expected_query_params) { expected_query_params_ = expected_query_params; } - void SetExpectedBatchOperations( - const WebVector<BatchOperation>* expected_batch_operations) { + void SetExpectedBatchOperations(const Vector<mojom::blink::BatchOperationPtr>* + expected_batch_operations) { expected_batch_operations_ = expected_batch_operations; } - // From WebServiceWorkerCache: - void DispatchMatch(std::unique_ptr<CacheMatchCallbacks> callbacks, - const WebServiceWorkerRequest& web_request, - const QueryParams& query_params) override { + void Match(const WebServiceWorkerRequest& request, + mojom::blink::QueryParamsPtr query_params, + MatchCallback callback) override { last_error_web_cache_method_called_ = "dispatchMatch"; - CheckUrlIfProvided(web_request.Url()); + CheckUrlIfProvided(request.Url()); CheckQueryParamsIfProvided(query_params); - - return callbacks->OnError(error_); + mojom::blink::MatchResultPtr result = mojom::blink::MatchResult::New(); + result->set_status(error_); + std::move(callback).Run(std::move(result)); } - - void DispatchMatchAll(std::unique_ptr<CacheWithResponsesCallbacks> callbacks, - const WebServiceWorkerRequest& web_request, - const QueryParams& query_params) override { + void MatchAll(const WebServiceWorkerRequest& request, + mojom::blink::QueryParamsPtr query_params, + MatchAllCallback callback) override { last_error_web_cache_method_called_ = "dispatchMatchAll"; - CheckUrlIfProvided(web_request.Url()); + CheckUrlIfProvided(request.Url()); CheckQueryParamsIfProvided(query_params); - - return callbacks->OnError(error_); + mojom::blink::MatchAllResultPtr result = + mojom::blink::MatchAllResult::New(); + result->set_status(error_); + std::move(callback).Run(std::move(result)); } - - void DispatchKeys(std::unique_ptr<CacheWithRequestsCallbacks> callbacks, - const WebServiceWorkerRequest& web_request, - const QueryParams& query_params) override { + void Keys(const WebServiceWorkerRequest& request, + mojom::blink::QueryParamsPtr query_params, + KeysCallback callback) override { last_error_web_cache_method_called_ = "dispatchKeys"; - if (!web_request.Url().IsEmpty()) { - CheckUrlIfProvided(web_request.Url()); + if (!request.Url().IsEmpty()) { + CheckUrlIfProvided(request.Url()); CheckQueryParamsIfProvided(query_params); } - - return callbacks->OnError(error_); + mojom::blink::CacheKeysResultPtr result = + mojom::blink::CacheKeysResult::New(); + result->set_status(error_); + std::move(callback).Run(std::move(result)); } - - void DispatchBatch( - std::unique_ptr<CacheBatchCallbacks> callbacks, - const WebVector<BatchOperation>& batch_operations) override { + void Batch(Vector<mojom::blink::BatchOperationPtr> batch_operations, + BatchCallback callback) override { last_error_web_cache_method_called_ = "dispatchBatch"; CheckBatchOperationsIfProvided(batch_operations); - - return callbacks->OnError(error_); + std::move(callback).Run(error_); } protected: @@ -181,62 +184,71 @@ EXPECT_EQ(*expected_url_, url); } - void CheckQueryParamsIfProvided(const QueryParams& query_params) { + void CheckQueryParamsIfProvided( + const mojom::blink::QueryParamsPtr& query_params) { if (!expected_query_params_) return; CompareQueryParamsForTest(*expected_query_params_, query_params); } void CheckBatchOperationsIfProvided( - const WebVector<BatchOperation>& batch_operations) { + const Vector<mojom::blink::BatchOperationPtr>& batch_operations) { if (!expected_batch_operations_) return; - const WebVector<BatchOperation> expected_batch_operations = + const Vector<mojom::blink::BatchOperationPtr>& expected_batch_operations = *expected_batch_operations_; EXPECT_EQ(expected_batch_operations.size(), batch_operations.size()); for (int i = 0, minsize = std::min(expected_batch_operations.size(), batch_operations.size()); i < minsize; ++i) { - EXPECT_EQ(expected_batch_operations[i].operation_type, - batch_operations[i].operation_type); + EXPECT_EQ(expected_batch_operations[i]->operation_type, + batch_operations[i]->operation_type); const String expected_request_url = - KURL(expected_batch_operations[i].request.Url()); - EXPECT_EQ(expected_request_url, KURL(batch_operations[i].request.Url())); - ASSERT_EQ(expected_batch_operations[i].response.UrlList().size(), - batch_operations[i].response.UrlList().size()); - for (size_t j = 0; - j < expected_batch_operations[i].response.UrlList().size(); ++j) { - EXPECT_EQ(expected_batch_operations[i].response.UrlList()[j], - batch_operations[i].response.UrlList()[j]); + KURL(expected_batch_operations[i]->request.Url()); + EXPECT_EQ(expected_request_url, KURL(batch_operations[i]->request.Url())); + if (expected_batch_operations[i]->response) { + ASSERT_EQ(expected_batch_operations[i]->response->url_list.size(), + batch_operations[i]->response->url_list.size()); + for (size_t j = 0; + j < expected_batch_operations[i]->response->url_list.size(); ++j) { + EXPECT_EQ(expected_batch_operations[i]->response->url_list[j], + batch_operations[i]->response->url_list[j]); + } } - CompareQueryParamsForTest(expected_batch_operations[i].match_params, - batch_operations[i].match_params); + if (expected_batch_operations[i]->match_params || + batch_operations[i]->match_params) { + CompareQueryParamsForTest(expected_batch_operations[i]->match_params, + batch_operations[i]->match_params); + } } } private: static void CompareQueryParamsForTest( - const QueryParams& expected_query_params, - const QueryParams& query_params) { - EXPECT_EQ(expected_query_params.ignore_search, query_params.ignore_search); - EXPECT_EQ(expected_query_params.ignore_method, query_params.ignore_method); - EXPECT_EQ(expected_query_params.ignore_vary, query_params.ignore_vary); - EXPECT_EQ(expected_query_params.cache_name, query_params.cache_name); + const mojom::blink::QueryParamsPtr& expected_query_params, + const mojom::blink::QueryParamsPtr& query_params) { + EXPECT_EQ(expected_query_params->ignore_search, + query_params->ignore_search); + EXPECT_EQ(expected_query_params->ignore_method, + query_params->ignore_method); + EXPECT_EQ(expected_query_params->ignore_vary, query_params->ignore_vary); + EXPECT_EQ(expected_query_params->cache_name, query_params->cache_name); } - const CacheStorageError error_; + const mojom::blink::CacheStorageError error_; const String* expected_url_; - const QueryParams* expected_query_params_; - const WebVector<BatchOperation>* expected_batch_operations_; + const mojom::blink::QueryParamsPtr* expected_query_params_; + const Vector<mojom::blink::BatchOperationPtr>* expected_batch_operations_; std::string last_error_web_cache_method_called_; }; -class NotImplementedErrorCache : public ErrorWebCacheForTests { +class NotImplementedErrorCache : public ErrorCacheForTests { public: NotImplementedErrorCache() - : ErrorWebCacheForTests(CacheStorageError::kErrorNotImplemented) {} + : ErrorCacheForTests( + mojom::blink::CacheStorageError::kErrorNotImplemented) {} }; class CacheStorageTest : public PageTestBase { @@ -244,10 +256,18 @@ void SetUp() override { PageTestBase::SetUp(IntSize(1, 1)); } Cache* CreateCache(ScopedFetcherForTests* fetcher, - WebServiceWorkerCache* web_cache) { - return Cache::Create(fetcher, base::WrapUnique(web_cache)); + std::unique_ptr<ErrorCacheForTests> cache) { + mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr; + auto request = mojo::MakeRequestAssociatedWithDedicatedPipe(&cache_ptr); + cache_ = std::move(cache); + binding_ = std::make_unique< + mojo::AssociatedBinding<mojom::blink::CacheStorageCache>>( + cache_.get(), std::move(request)); + return Cache::Create(fetcher, cache_ptr.PassInterface()); } + ErrorCacheForTests* test_cache() { return cache_.get(); } + ScriptState* GetScriptState() { return ToScriptStateForMainWorld(GetDocument().GetFrame()); } @@ -270,6 +290,7 @@ promise.Then(UnreachableFunction::Create(GetScriptState()), TestFunction::Create(GetScriptState(), &on_reject)); v8::MicrotasksScope::PerformCheckpoint(GetIsolate()); + test::RunPendingTasks(); return on_reject; } @@ -286,6 +307,7 @@ promise.Then(TestFunction::Create(GetScriptState(), &on_resolve), UnreachableFunction::Create(GetScriptState())); v8::MicrotasksScope::PerformCheckpoint(GetIsolate()); + test::RunPendingTasks(); return on_resolve; } @@ -338,6 +360,10 @@ ScriptValue* value_; }; + + std::unique_ptr<ErrorCacheForTests> cache_; + std::unique_ptr<mojo::AssociatedBinding<mojom::blink::CacheStorageCache>> + binding_; }; RequestInfo StringToRequestInfo(const String& value) { @@ -356,9 +382,8 @@ ScriptState::Scope scope(GetScriptState()); NonThrowableExceptionState exception_state; ScopedFetcherForTests* fetcher = ScopedFetcherForTests::Create(); - ErrorWebCacheForTests* test_cache; Cache* cache = - CreateCache(fetcher, test_cache = new NotImplementedErrorCache()); + CreateCache(fetcher, std::make_unique<NotImplementedErrorCache>()); DCHECK(cache); const String url = "http://www.cachetest.org/"; @@ -368,14 +393,14 @@ GetScriptState(), StringToRequestInfo(url), options, exception_state); EXPECT_EQ(kNotImplementedString, GetRejectString(match_promise)); - cache = CreateCache(fetcher, test_cache = new ErrorWebCacheForTests( + cache = CreateCache(fetcher, std::make_unique<ErrorCacheForTests>( CacheStorageError::kErrorNotFound)); match_promise = cache->match(GetScriptState(), StringToRequestInfo(url), options, exception_state); ScriptValue script_value = GetResolveValue(match_promise); EXPECT_TRUE(script_value.IsUndefined()); - cache = CreateCache(fetcher, test_cache = new ErrorWebCacheForTests( + cache = CreateCache(fetcher, std::make_unique<ErrorCacheForTests>( CacheStorageError::kErrorExists)); match_promise = cache->match(GetScriptState(), StringToRequestInfo(url), options, exception_state); @@ -389,22 +414,22 @@ ScriptState::Scope scope(GetScriptState()); NonThrowableExceptionState exception_state; ScopedFetcherForTests* fetcher = ScopedFetcherForTests::Create(); - ErrorWebCacheForTests* test_cache; Cache* cache = - CreateCache(fetcher, test_cache = new NotImplementedErrorCache()); + CreateCache(fetcher, std::make_unique<NotImplementedErrorCache>()); DCHECK(cache); const String url = "http://www.cache.arguments.test/"; - test_cache->SetExpectedUrl(&url); + test_cache()->SetExpectedUrl(&url); - WebServiceWorkerCache::QueryParams expected_query_params; - expected_query_params.ignore_vary = true; - expected_query_params.cache_name = "this is a cache name"; - test_cache->SetExpectedQueryParams(&expected_query_params); + mojom::blink::QueryParamsPtr expected_query_params = + mojom::blink::QueryParams::New(); + expected_query_params->ignore_vary = true; + expected_query_params->cache_name = "this is a cache name"; + test_cache()->SetExpectedQueryParams(&expected_query_params); CacheQueryOptions options; options.setIgnoreVary(1); - options.setCacheName(expected_query_params.cache_name); + options.setCacheName(expected_query_params->cache_name); Request* request = NewRequestFromUrl(url); DCHECK(request); @@ -412,13 +437,13 @@ cache->match(GetScriptState(), RequestToRequestInfo(request), options, exception_state); EXPECT_EQ("dispatchMatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(match_result)); ScriptPromise string_match_result = cache->match( GetScriptState(), StringToRequestInfo(url), options, exception_state); EXPECT_EQ("dispatchMatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(string_match_result)); request = NewRequestFromUrl(url); @@ -427,18 +452,18 @@ cache->matchAll(GetScriptState(), RequestToRequestInfo(request), options, exception_state); EXPECT_EQ("dispatchMatchAll", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(match_all_result)); ScriptPromise string_match_all_result = cache->matchAll( GetScriptState(), StringToRequestInfo(url), options, exception_state); EXPECT_EQ("dispatchMatchAll", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(string_match_all_result)); ScriptPromise keys_result1 = cache->keys(GetScriptState(), exception_state); EXPECT_EQ("dispatchKeys", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(keys_result1)); request = NewRequestFromUrl(url); @@ -447,13 +472,13 @@ cache->keys(GetScriptState(), RequestToRequestInfo(request), options, exception_state); EXPECT_EQ("dispatchKeys", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(keys_result2)); ScriptPromise string_keys_result2 = cache->keys( GetScriptState(), StringToRequestInfo(url), options, exception_state); EXPECT_EQ("dispatchKeys", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(string_keys_result2)); } @@ -463,17 +488,17 @@ ScriptState::Scope scope(GetScriptState()); NonThrowableExceptionState exception_state; ScopedFetcherForTests* fetcher = ScopedFetcherForTests::Create(); - ErrorWebCacheForTests* test_cache; Cache* cache = - CreateCache(fetcher, test_cache = new NotImplementedErrorCache()); + CreateCache(fetcher, std::make_unique<NotImplementedErrorCache>()); DCHECK(cache); - WebServiceWorkerCache::QueryParams expected_query_params; - expected_query_params.cache_name = "this is another cache name"; - test_cache->SetExpectedQueryParams(&expected_query_params); + mojom::blink::QueryParamsPtr expected_query_params = + mojom::blink::QueryParams::New(); + expected_query_params->cache_name = "this is another cache name"; + test_cache()->SetExpectedQueryParams(&expected_query_params); CacheQueryOptions options; - options.setCacheName(expected_query_params.cache_name); + options.setCacheName(expected_query_params->cache_name); const String url = "http://batch.operations.test/"; Request* request = NewRequestFromUrl(url); @@ -483,43 +508,41 @@ std::vector<KURL> url_list; url_list.push_back(KURL(url)); web_response.SetURLList(url_list); + web_response.SetStatusText("OK"); Response* response = Response::Create(GetScriptState(), web_response); - WebVector<WebServiceWorkerCache::BatchOperation> expected_delete_operations( - size_t(1)); + Vector<mojom::blink::BatchOperationPtr> expected_delete_operations; { - WebServiceWorkerCache::BatchOperation delete_operation; - delete_operation.operation_type = - WebServiceWorkerCache::kOperationTypeDelete; - request->PopulateWebServiceWorkerRequest(delete_operation.request); - delete_operation.match_params = expected_query_params; - expected_delete_operations[0] = delete_operation; + expected_delete_operations.push_back(mojom::blink::BatchOperation::New()); + auto& delete_operation = expected_delete_operations.back(); + delete_operation->operation_type = mojom::blink::OperationType::kDelete; + request->PopulateWebServiceWorkerRequest(delete_operation->request); + delete_operation->match_params = expected_query_params->Clone(); } - test_cache->SetExpectedBatchOperations(&expected_delete_operations); + test_cache()->SetExpectedBatchOperations(&expected_delete_operations); ScriptPromise delete_result = cache->Delete(GetScriptState(), RequestToRequestInfo(request), options, exception_state); EXPECT_EQ("dispatchBatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(delete_result)); ScriptPromise string_delete_result = cache->Delete( GetScriptState(), StringToRequestInfo(url), options, exception_state); EXPECT_EQ("dispatchBatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(string_delete_result)); - WebVector<WebServiceWorkerCache::BatchOperation> expected_put_operations( - size_t(1)); + Vector<mojom::blink::BatchOperationPtr> expected_put_operations; { - WebServiceWorkerCache::BatchOperation put_operation; - put_operation.operation_type = WebServiceWorkerCache::kOperationTypePut; - request->PopulateWebServiceWorkerRequest(put_operation.request); - response->PopulateWebServiceWorkerResponse(put_operation.response); - expected_put_operations[0] = put_operation; + expected_put_operations.push_back(mojom::blink::BatchOperation::New()); + auto& put_operation = expected_put_operations.back(); + put_operation->operation_type = mojom::blink::OperationType::kPut; + request->PopulateWebServiceWorkerRequest(put_operation->request); + put_operation->response = response->PopulateFetchAPIResponse(); } - test_cache->SetExpectedBatchOperations(&expected_put_operations); + test_cache()->SetExpectedBatchOperations(&expected_put_operations); request = NewRequestFromUrl(url); DCHECK(request); @@ -527,13 +550,13 @@ GetScriptState(), RequestToRequestInfo(request), response->clone(GetScriptState(), exception_state), exception_state); EXPECT_EQ("dispatchBatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(put_result)); ScriptPromise string_put_result = cache->put( GetScriptState(), StringToRequestInfo(url), response, exception_state); EXPECT_EQ("dispatchBatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); EXPECT_EQ(kNotImplementedString, GetRejectString(string_put_result)); // FIXME: test add & addAll. @@ -541,17 +564,20 @@ class MatchTestCache : public NotImplementedErrorCache { public: - MatchTestCache(WebServiceWorkerResponse& response) : response_(response) {} + MatchTestCache(mojom::blink::FetchAPIResponsePtr response) + : response_(std::move(response)) {} // From WebServiceWorkerCache: - void DispatchMatch(std::unique_ptr<CacheMatchCallbacks> callbacks, - const WebServiceWorkerRequest& web_request, - const QueryParams& query_params) override { - return callbacks->OnSuccess(response_); + void Match(const WebServiceWorkerRequest& request, + mojom::blink::QueryParamsPtr query_params, + MatchCallback callback) override { + mojom::blink::MatchResultPtr result = mojom::blink::MatchResult::New(); + result->set_response(std::move(response_)); + std::move(callback).Run(std::move(result)); } private: - WebServiceWorkerResponse& response_; + mojom::blink::FetchAPIResponsePtr response_; }; TEST_F(CacheStorageTest, MatchResponseTest) { @@ -561,13 +587,15 @@ const String request_url = "http://request.url/"; const String response_url = "http://match.response.test/"; - WebServiceWorkerResponse web_response; - std::vector<KURL> url_list; - url_list.push_back(KURL(response_url)); - web_response.SetURLList(url_list); - web_response.SetResponseType(network::mojom::FetchResponseType::kDefault); + mojom::blink::FetchAPIResponsePtr fetch_api_response = + mojom::blink::FetchAPIResponse::New(); + fetch_api_response->url_list.push_back(KURL(response_url)); + fetch_api_response->response_type = + network::mojom::FetchResponseType::kDefault; + fetch_api_response->status_text = String("OK"); - Cache* cache = CreateCache(fetcher, new MatchTestCache(web_response)); + Cache* cache = CreateCache( + fetcher, std::make_unique<MatchTestCache>(std::move(fetch_api_response))); CacheQueryOptions options; ScriptPromise result = @@ -582,17 +610,20 @@ class KeysTestCache : public NotImplementedErrorCache { public: - KeysTestCache(WebVector<WebServiceWorkerRequest>& requests) + KeysTestCache(Vector<WebServiceWorkerRequest>& requests) : requests_(requests) {} - void DispatchKeys(std::unique_ptr<CacheWithRequestsCallbacks> callbacks, - const WebServiceWorkerRequest& web_request, - const QueryParams& query_params) override { - return callbacks->OnSuccess(requests_); + void Keys(const WebServiceWorkerRequest& request, + mojom::blink::QueryParamsPtr query_params, + KeysCallback callback) override { + mojom::blink::CacheKeysResultPtr result = + mojom::blink::CacheKeysResult::New(); + result->set_keys(requests_); + std::move(callback).Run(std::move(result)); } private: - WebVector<WebServiceWorkerRequest>& requests_; + Vector<WebServiceWorkerRequest>& requests_; }; TEST_F(CacheStorageTest, KeysResponseTest) { @@ -606,11 +637,12 @@ expected_urls[0] = url1; expected_urls[1] = url2; - WebVector<WebServiceWorkerRequest> web_requests(size_t(2)); + Vector<WebServiceWorkerRequest> web_requests(size_t(2)); web_requests[0].SetURL(KURL(url1)); web_requests[1].SetURL(KURL(url2)); - Cache* cache = CreateCache(fetcher, new KeysTestCache(web_requests)); + Cache* cache = + CreateCache(fetcher, std::make_unique<KeysTestCache>(web_requests)); ScriptPromise result = cache->keys(GetScriptState(), exception_state); ScriptValue script_value = GetResolveValue(result); @@ -630,23 +662,24 @@ class MatchAllAndBatchTestCache : public NotImplementedErrorCache { public: - MatchAllAndBatchTestCache(WebVector<WebServiceWorkerResponse>& responses) - : responses_(responses) {} + MatchAllAndBatchTestCache(Vector<mojom::blink::FetchAPIResponsePtr> responses) + : responses_(std::move(responses)) {} - void DispatchMatchAll(std::unique_ptr<CacheWithResponsesCallbacks> callbacks, - const WebServiceWorkerRequest& web_request, - const QueryParams& query_params) override { - return callbacks->OnSuccess(responses_); + void MatchAll(const WebServiceWorkerRequest& request, + mojom::blink::QueryParamsPtr query_params, + MatchAllCallback callback) override { + mojom::blink::MatchAllResultPtr result = + mojom::blink::MatchAllResult::New(); + result->set_responses(std::move(responses_)); + std::move(callback).Run(std::move(result)); } - - void DispatchBatch( - std::unique_ptr<CacheBatchCallbacks> callbacks, - const WebVector<BatchOperation>& batch_operations) override { - return callbacks->OnSuccess(); + void Batch(Vector<mojom::blink::BatchOperationPtr> batch_operations, + BatchCallback callback) override { + std::move(callback).Run(mojom::blink::CacheStorageError::kSuccess); } private: - WebVector<WebServiceWorkerResponse>& responses_; + Vector<mojom::blink::FetchAPIResponsePtr> responses_; }; TEST_F(CacheStorageTest, MatchAllAndBatchResponseTest) { @@ -660,14 +693,21 @@ expected_urls[0] = url1; expected_urls[1] = url2; - WebVector<WebServiceWorkerResponse> web_responses(size_t(2)); - web_responses[0].SetURLList(std::vector<KURL>({KURL(url1)})); - web_responses[0].SetResponseType(network::mojom::FetchResponseType::kDefault); - web_responses[1].SetURLList(std::vector<KURL>({KURL(url2)})); - web_responses[1].SetResponseType(network::mojom::FetchResponseType::kDefault); + Vector<mojom::blink::FetchAPIResponsePtr> fetch_api_responses; + fetch_api_responses.push_back(mojom::blink::FetchAPIResponse::New()); + fetch_api_responses[0]->url_list = Vector<KURL>({KURL(url1)}); + fetch_api_responses[0]->response_type = + network::mojom::FetchResponseType::kDefault; + fetch_api_responses[0]->status_text = String("OK"); + fetch_api_responses.push_back(mojom::blink::FetchAPIResponse::New()); + fetch_api_responses[1]->url_list = Vector<KURL>({KURL(url2)}); + fetch_api_responses[1]->response_type = + network::mojom::FetchResponseType::kDefault; + fetch_api_responses[1]->status_text = String("OK"); Cache* cache = - CreateCache(fetcher, new MatchAllAndBatchTestCache(web_responses)); + CreateCache(fetcher, std::make_unique<MatchAllAndBatchTestCache>( + std::move(fetch_api_responses))); CacheQueryOptions options; ScriptPromise result = @@ -703,9 +743,8 @@ const String content_type = "text/plain"; const String content = "hello cache"; - ErrorWebCacheForTests* test_cache; Cache* cache = - CreateCache(fetcher, test_cache = new NotImplementedErrorCache()); + CreateCache(fetcher, std::make_unique<NotImplementedErrorCache>()); fetcher->SetExpectedFetchUrl(&url); @@ -717,16 +756,17 @@ content_type, ResponseInit(), exception_state); fetcher->SetResponse(response); - WebVector<WebServiceWorkerCache::BatchOperation> expected_put_operations( - size_t(1)); + Vector<mojom::blink::BatchOperationPtr> expected_put_operations(size_t(1)); { - WebServiceWorkerCache::BatchOperation put_operation; - put_operation.operation_type = WebServiceWorkerCache::kOperationTypePut; - request->PopulateWebServiceWorkerRequest(put_operation.request); - response->PopulateWebServiceWorkerResponse(put_operation.response); - expected_put_operations[0] = put_operation; + mojom::blink::BatchOperationPtr put_operation = + mojom::blink::BatchOperation::New(); + + put_operation->operation_type = mojom::blink::OperationType::kPut; + request->PopulateWebServiceWorkerRequest(put_operation->request); + put_operation->response = response->PopulateFetchAPIResponse(); + expected_put_operations[0] = std::move(put_operation); } - test_cache->SetExpectedBatchOperations(&expected_put_operations); + test_cache()->SetExpectedBatchOperations(&expected_put_operations); ScriptPromise add_result = cache->add( GetScriptState(), RequestToRequestInfo(request), exception_state); @@ -734,7 +774,7 @@ EXPECT_EQ(kNotImplementedString, GetRejectString(add_result)); EXPECT_EQ(1, fetcher->FetchCount()); EXPECT_EQ("dispatchBatch", - test_cache->GetAndClearLastErrorWebCacheMethodCalled()); + test_cache()->GetAndClearLastErrorWebCacheMethodCalled()); } } // namespace
diff --git a/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc b/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc index 9f71552e..9fd4ef3 100644 --- a/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc +++ b/third_party/blink/renderer/modules/cache_storage/global_cache_storage.cc
@@ -4,7 +4,6 @@ #include "third_party/blink/renderer/modules/cache_storage/global_cache_storage.h" -#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/web_security_origin.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" @@ -38,10 +37,7 @@ return *supplement; } - ~GlobalCacheStorageImpl() { - if (caches_) - caches_->Dispose(); - } + ~GlobalCacheStorageImpl() {} CacheStorage* Caches(T& fetching_scope, ExceptionState& exception_state) { ExecutionContext* context = fetching_scope.GetExecutionContext(); @@ -73,8 +69,7 @@ } caches_ = CacheStorage::Create(GlobalFetch::ScopedFetcher::From(fetching_scope), - Platform::Current()->CreateCacheStorage( - context->GetInterfaceProvider())); + context->GetInterfaceProvider()); } return caches_; }
diff --git a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc index 3a56ea80..07f3c26 100644 --- a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc +++ b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
@@ -9,9 +9,8 @@ #include <utility> #include "base/macros.h" #include "base/memory/scoped_refptr.h" +#include "services/service_manager/public/cpp/interface_provider.h" #include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h" #include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_request.h" #include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_response.h" #include "third_party/blink/public/platform/platform.h" @@ -58,9 +57,6 @@ blink::protocol::CacheStorage::Backend::RequestEntriesCallback; using RequestCachedResponseCallback = blink::protocol::CacheStorage::Backend::RequestCachedResponseCallback; -using BatchOperation = blink::WebServiceWorkerCache::BatchOperation; - -using WebServiceWorkerCacheStorage = ::blink::WebServiceWorkerCacheStorage; namespace blink { @@ -104,7 +100,7 @@ const String& security_origin, InspectedFrames* frames, InspectorCacheStorageAgent::CachesMap* caches, - WebServiceWorkerCacheStorage** result) { + mojom::blink::CacheStorage** result) { scoped_refptr<const SecurityOrigin> sec_origin = SecurityOrigin::CreateFromString(security_origin); @@ -123,14 +119,11 @@ auto it = caches->find(security_origin); if (it == caches->end()) { - std::unique_ptr<WebServiceWorkerCacheStorage> cache_storage = - Platform::Current()->CreateCacheStorage( - context->GetInterfaceProvider()); - if (!cache_storage) { - return ProtocolResponse::Error("Could not find cache storage."); - } - *result = cache_storage.get(); - caches->Set(security_origin, std::move(cache_storage)); + mojom::blink::CacheStoragePtr cache_storage_ptr; + context->GetInterfaceProvider()->GetInterface( + mojo::MakeRequest(&cache_storage_ptr)); + *result = cache_storage_ptr.get(); + caches->Set(security_origin, std::move(cache_storage_ptr)); } else { *result = it->value.get(); } @@ -143,7 +136,7 @@ InspectedFrames* frames, String* cache_name, InspectorCacheStorageAgent::CachesMap* caches, - WebServiceWorkerCacheStorage** result) { + mojom::blink::CacheStorage** result) { String security_origin; ProtocolResponse response = ParseCacheId(cache_id, &security_origin, cache_name); @@ -152,23 +145,23 @@ return AssertCacheStorage(security_origin, frames, caches, result); } -CString CacheStorageErrorString(mojom::CacheStorageError error) { +CString CacheStorageErrorString(mojom::blink::CacheStorageError error) { switch (error) { - case mojom::CacheStorageError::kErrorNotImplemented: + case mojom::blink::CacheStorageError::kErrorNotImplemented: return CString("not implemented."); - case mojom::CacheStorageError::kErrorNotFound: + case mojom::blink::CacheStorageError::kErrorNotFound: return CString("not found."); - case mojom::CacheStorageError::kErrorExists: + case mojom::blink::CacheStorageError::kErrorExists: return CString("cache already exists."); - case mojom::CacheStorageError::kErrorQuotaExceeded: + case mojom::blink::CacheStorageError::kErrorQuotaExceeded: return CString("quota exceeded."); - case mojom::CacheStorageError::kErrorCacheNameNotFound: + case mojom::blink::CacheStorageError::kErrorCacheNameNotFound: return CString("cache not found."); - case mojom::CacheStorageError::kErrorQueryTooLarge: + case mojom::blink::CacheStorageError::kErrorQueryTooLarge: return CString("operation too large."); - case mojom::CacheStorageError::kErrorStorage: + case mojom::blink::CacheStorageError::kErrorStorage: return CString("storage failure."); - case mojom::CacheStorageError::kSuccess: + case mojom::blink::CacheStorageError::kSuccess: // This function should only be called upon error. break; } @@ -176,44 +169,6 @@ return ""; } -class RequestCacheNames - : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks { - public: - RequestCacheNames(const String& security_origin, - std::unique_ptr<RequestCacheNamesCallback> callback) - : security_origin_(security_origin), callback_(std::move(callback)) {} - - ~RequestCacheNames() override = default; - - void OnSuccess(const WebVector<WebString>& caches) override { - std::unique_ptr<Array<ProtocolCache>> array = - Array<ProtocolCache>::create(); - for (size_t i = 0; i < caches.size(); i++) { - String name = String(caches[i]); - std::unique_ptr<ProtocolCache> entry = - ProtocolCache::create() - .setSecurityOrigin(security_origin_) - .setCacheName(name) - .setCacheId(BuildCacheId(security_origin_, name)) - .build(); - array->addItem(std::move(entry)); - } - callback_->sendSuccess(std::move(array)); - } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error( - String::Format("Error requesting cache names: %s", - CacheStorageErrorString(error).data()))); - } - - private: - String security_origin_; - std::unique_ptr<RequestCacheNamesCallback> callback_; - - DISALLOW_COPY_AND_ASSIGN(RequestCacheNames); -}; - struct DataRequestParams { String cache_name; int skip_count; @@ -234,14 +189,36 @@ public: ResponsesAccumulator(int num_responses, const DataRequestParams& params, + mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr, std::unique_ptr<RequestEntriesCallback> callback) : params_(params), num_responses_left_(num_responses), responses_(static_cast<size_t>(num_responses)), + cache_ptr_(std::move(cache_ptr)), callback_(std::move(callback)) {} - void AddRequestResponsePair(const WebServiceWorkerRequest& request, - const WebServiceWorkerResponse& response) { + void Dispatch(const Vector<WebServiceWorkerRequest>& requests) { + for (const auto& request : requests) { + cache_ptr_->Match( + request, mojom::blink::QueryParams::New(), + WTF::Bind( + [](scoped_refptr<ResponsesAccumulator> accumulator, + WebServiceWorkerRequest request, + mojom::blink::MatchResultPtr result) { + if (result->is_status()) { + accumulator->SendFailure(result->get_status()); + } else { + accumulator->AddRequestResponsePair(request, + result->get_response()); + } + }, + scoped_refptr<ResponsesAccumulator>(this), request)); + } + } + + void AddRequestResponsePair( + const WebServiceWorkerRequest& request, + const mojom::blink::FetchAPIResponsePtr& response) { DCHECK_GT(num_responses_left_, 0); RequestResponse& request_response = responses_.at(responses_.size() - num_responses_left_); @@ -249,10 +226,13 @@ request_response.request_url = request.Url().GetString(); request_response.request_method = request.Method(); request_response.request_headers = request.Headers(); - request_response.response_status = response.Status(); - request_response.response_status_text = response.StatusText(); - request_response.response_time = response.ResponseTime().ToDoubleT(); - request_response.response_headers = response.Headers(); + request_response.response_status = response->status_code; + request_response.response_status_text = response->status_text; + request_response.response_time = response->response_time.ToDoubleT(); + for (const auto& header : response->headers) { + request_response.response_headers.Set(AtomicString(header.key), + AtomicString(header.value)); + } if (--num_responses_left_ != 0) return; @@ -289,8 +269,11 @@ callback_->sendSuccess(std::move(array), has_more); } - void SendFailure(const ProtocolResponse& error) { - callback_->sendFailure(error); + void SendFailure(const mojom::blink::CacheStorageError& error) { + callback_->sendFailure(ProtocolResponse::Error( + String::Format("Error requesting responses for cache %s : %s", + params_.cache_name.Utf8().data(), + CacheStorageErrorString(error).data()))); } std::unique_ptr<Array<Header>> SerializeHeaders( @@ -309,191 +292,61 @@ DataRequestParams params_; int num_responses_left_; Vector<RequestResponse> responses_; + mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr_; std::unique_ptr<RequestEntriesCallback> callback_; DISALLOW_COPY_AND_ASSIGN(ResponsesAccumulator); }; -class GetCacheResponsesForRequestData - : public WebServiceWorkerCache::CacheMatchCallbacks { +class GetCacheKeysForRequestData { public: - GetCacheResponsesForRequestData(const DataRequestParams& params, - const WebServiceWorkerRequest& request, - scoped_refptr<ResponsesAccumulator> accum) - : params_(params), request_(request), accumulator_(std::move(accum)) {} - ~GetCacheResponsesForRequestData() override = default; - - void OnSuccess(const WebServiceWorkerResponse& response) override { - accumulator_->AddRequestResponsePair(request_, response); + GetCacheKeysForRequestData( + const DataRequestParams& params, + mojom::blink::CacheStorageCacheAssociatedPtrInfo cache_ptr_info, + std::unique_ptr<RequestEntriesCallback> callback) + : params_(params), callback_(std::move(callback)) { + cache_ptr_.Bind(std::move(cache_ptr_info)); } - void OnError(mojom::CacheStorageError error) override { - accumulator_->SendFailure(ProtocolResponse::Error( - String::Format("Error requesting responses for cache %s: %s", - params_.cache_name.Utf8().data(), - CacheStorageErrorString(error).data()))); + void Dispatch(std::unique_ptr<GetCacheKeysForRequestData> self) { + cache_ptr_->Keys( + WebServiceWorkerRequest(), mojom::blink::QueryParams::New(), + WTF::Bind( + [](DataRequestParams params, + std::unique_ptr<GetCacheKeysForRequestData> self, + mojom::blink::CacheKeysResultPtr result) { + if (result->is_status()) { + self->callback_->sendFailure( + ProtocolResponse::Error(String::Format( + "Error requesting requests for cache %s: %s", + params.cache_name.Utf8().data(), + CacheStorageErrorString(result->get_status()).data()))); + } else { + auto& requests = result->get_keys(); + if (requests.IsEmpty()) { + std::unique_ptr<Array<DataEntry>> array = + Array<DataEntry>::create(); + self->callback_->sendSuccess(std::move(array), false); + return; + } + scoped_refptr<ResponsesAccumulator> accumulator = + base::AdoptRef(new ResponsesAccumulator( + requests.size(), params, std::move(self->cache_ptr_), + std::move(self->callback_))); + accumulator->Dispatch(result->get_keys()); + } + }, + params_, std::move(self))); } private: DataRequestParams params_; - WebServiceWorkerRequest request_; - scoped_refptr<ResponsesAccumulator> accumulator_; - - DISALLOW_COPY_AND_ASSIGN(GetCacheResponsesForRequestData); -}; - -class GetCacheKeysForRequestData - : public WebServiceWorkerCache::CacheWithRequestsCallbacks { - public: - GetCacheKeysForRequestData(const DataRequestParams& params, - std::unique_ptr<WebServiceWorkerCache> cache, - std::unique_ptr<RequestEntriesCallback> callback) - : params_(params), - cache_(std::move(cache)), - callback_(std::move(callback)) {} - ~GetCacheKeysForRequestData() override = default; - - WebServiceWorkerCache* Cache() { return cache_.get(); } - void OnSuccess(const WebVector<WebServiceWorkerRequest>& requests) override { - if (requests.IsEmpty()) { - std::unique_ptr<Array<DataEntry>> array = Array<DataEntry>::create(); - callback_->sendSuccess(std::move(array), false); - return; - } - scoped_refptr<ResponsesAccumulator> accumulator = - base::AdoptRef(new ResponsesAccumulator(requests.size(), params_, - std::move(callback_))); - for (size_t i = 0; i < requests.size(); i++) { - const auto& request = requests[i]; - auto cache_request = std::make_unique<GetCacheResponsesForRequestData>( - params_, request, accumulator); - cache_->DispatchMatch(std::move(cache_request), request, - WebServiceWorkerCache::QueryParams()); - } - } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error( - String::Format("Error requesting requests for cache %s: %s", - params_.cache_name.Utf8().data(), - CacheStorageErrorString(error).data()))); - } - - private: - DataRequestParams params_; - std::unique_ptr<WebServiceWorkerCache> cache_; + mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr_; std::unique_ptr<RequestEntriesCallback> callback_; DISALLOW_COPY_AND_ASSIGN(GetCacheKeysForRequestData); }; -class GetCacheForRequestData - : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { - public: - GetCacheForRequestData(const DataRequestParams& params, - std::unique_ptr<RequestEntriesCallback> callback) - : params_(params), callback_(std::move(callback)) {} - ~GetCacheForRequestData() override = default; - - void OnSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override { - auto cache_request = std::make_unique<GetCacheKeysForRequestData>( - params_, std::move(cache), std::move(callback_)); - cache_request->Cache()->DispatchKeys(std::move(cache_request), - WebServiceWorkerRequest(), - WebServiceWorkerCache::QueryParams()); - } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error(String::Format( - "Error requesting cache %s: %s", params_.cache_name.Utf8().data(), - CacheStorageErrorString(error).data()))); - } - - private: - DataRequestParams params_; - std::unique_ptr<RequestEntriesCallback> callback_; - - DISALLOW_COPY_AND_ASSIGN(GetCacheForRequestData); -}; - -class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { - public: - explicit DeleteCache(std::unique_ptr<DeleteCacheCallback> callback) - : callback_(std::move(callback)) {} - ~DeleteCache() override = default; - - void OnSuccess() override { callback_->sendSuccess(); } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error( - String::Format("Error requesting cache names: %s", - CacheStorageErrorString(error).data()))); - } - - private: - std::unique_ptr<DeleteCacheCallback> callback_; - - DISALLOW_COPY_AND_ASSIGN(DeleteCache); -}; - -class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { - public: - explicit DeleteCacheEntry(std::unique_ptr<DeleteEntryCallback> callback) - : callback_(std::move(callback)) {} - ~DeleteCacheEntry() override = default; - - void OnSuccess() override { callback_->sendSuccess(); } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error( - String::Format("Error requesting cache names: %s", - CacheStorageErrorString(error).data()))); - } - - private: - std::unique_ptr<DeleteEntryCallback> callback_; - - DISALLOW_COPY_AND_ASSIGN(DeleteCacheEntry); -}; - -class GetCacheForDeleteEntry - : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { - public: - GetCacheForDeleteEntry(const String& request_spec, - const String& cache_name, - std::unique_ptr<DeleteEntryCallback> callback) - : request_spec_(request_spec), - cache_name_(cache_name), - callback_(std::move(callback)) {} - ~GetCacheForDeleteEntry() override = default; - - void OnSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override { - auto delete_request = - std::make_unique<DeleteCacheEntry>(std::move(callback_)); - BatchOperation delete_operation; - delete_operation.operation_type = - WebServiceWorkerCache::kOperationTypeDelete; - delete_operation.request.SetURL(KURL(request_spec_)); - Vector<BatchOperation> operations; - operations.push_back(delete_operation); - cache.release()->DispatchBatch(std::move(delete_request), - WebVector<BatchOperation>(operations)); - } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error(String::Format( - "Error requesting cache %s: %s", cache_name_.Utf8().data(), - CacheStorageErrorString(error).data()))); - } - - private: - String request_spec_; - String cache_name_; - std::unique_ptr<DeleteEntryCallback> callback_; - - DISALLOW_COPY_AND_ASSIGN(GetCacheForDeleteEntry); -}; - class CachedResponseFileReaderLoaderClient final : private FileReaderLoaderClient { public: @@ -547,35 +400,6 @@ DISALLOW_COPY_AND_ASSIGN(CachedResponseFileReaderLoaderClient); }; -class CachedResponseMatchCallback - : public WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks { - public: - explicit CachedResponseMatchCallback( - std::unique_ptr<RequestCachedResponseCallback> callback) - : callback_(std::move(callback)) {} - - void OnSuccess(const WebServiceWorkerResponse& response) override { - std::unique_ptr<protocol::DictionaryValue> headers = - protocol::DictionaryValue::create(); - if (!response.GetBlobDataHandle()) { - callback_->sendSuccess(CachedResponse::create().setBody("").build()); - return; - } - CachedResponseFileReaderLoaderClient::Load(response.GetBlobDataHandle(), - std::move(callback_)); - } - - void OnError(mojom::CacheStorageError error) override { - callback_->sendFailure(ProtocolResponse::Error( - String::Format("Unable to read cached response: %s", - CacheStorageErrorString(error).data()))); - } - - private: - std::unique_ptr<RequestCachedResponseCallback> callback_; - - DISALLOW_COPY_AND_ASSIGN(CachedResponseMatchCallback); -}; } // namespace InspectorCacheStorageAgent::InspectorCacheStorageAgent(InspectedFrames* frames) @@ -602,7 +426,7 @@ return; } - WebServiceWorkerCacheStorage* cache_storage = nullptr; + mojom::blink::CacheStorage* cache_storage = nullptr; ProtocolResponse response = AssertCacheStorage(security_origin, frames_, &caches_, &cache_storage); @@ -611,7 +435,21 @@ return; } - cache_storage->DispatchKeys(std::make_unique<RequestCacheNames>( + cache_storage->Keys(WTF::Bind( + [](String security_origin, + std::unique_ptr<RequestCacheNamesCallback> callback, + const Vector<String>& caches) { + std::unique_ptr<Array<ProtocolCache>> array = + Array<ProtocolCache>::create(); + for (auto& cache : caches) { + array->addItem(ProtocolCache::create() + .setSecurityOrigin(security_origin) + .setCacheName(cache) + .setCacheId(BuildCacheId(security_origin, cache)) + .build()); + } + callback->sendSuccess(std::move(array)); + }, security_origin, std::move(callback))); } @@ -621,7 +459,7 @@ int page_size, std::unique_ptr<RequestEntriesCallback> callback) { String cache_name; - WebServiceWorkerCacheStorage* cache_storage = nullptr; + mojom::blink::CacheStorage* cache_storage = nullptr; ProtocolResponse response = AssertCacheStorageAndNameForId( cache_id, frames_, &cache_name, &caches_, &cache_storage); if (!response.isSuccess()) { @@ -633,25 +471,52 @@ params.page_size = page_size; params.skip_count = skip_count; - cache_storage->DispatchOpen( - std::make_unique<GetCacheForRequestData>(params, std::move(callback)), - WebString(cache_name)); + cache_storage->Open( + cache_name, + WTF::Bind( + [](DataRequestParams params, + std::unique_ptr<RequestEntriesCallback> callback, + mojom::blink::OpenResultPtr result) { + if (result->is_status()) { + callback->sendFailure(ProtocolResponse::Error(String::Format( + "Error requesting cache %s: %s", + params.cache_name.Utf8().data(), + CacheStorageErrorString(result->get_status()).data()))); + } else { + auto request = std::make_unique<GetCacheKeysForRequestData>( + params, std::move(result->get_cache()), std::move(callback)); + auto* request_ptr = request.get(); + request_ptr->Dispatch(std::move(request)); + } + }, + params, std::move(callback))); } void InspectorCacheStorageAgent::deleteCache( const String& cache_id, std::unique_ptr<DeleteCacheCallback> callback) { String cache_name; - WebServiceWorkerCacheStorage* cache_storage = nullptr; + mojom::blink::CacheStorage* cache_storage = nullptr; ProtocolResponse response = AssertCacheStorageAndNameForId( cache_id, frames_, &cache_name, &caches_, &cache_storage); if (!response.isSuccess()) { callback->sendFailure(response); return; } - cache_storage->DispatchDelete( - std::make_unique<DeleteCache>(std::move(callback)), - WebString(cache_name)); + cache_storage->Delete( + cache_name, + WTF::Bind( + [](std::unique_ptr<DeleteCacheCallback> callback, + mojom::blink::CacheStorageError error) { + if (error == mojom::blink::CacheStorageError::kSuccess) { + callback->sendSuccess(); + } else { + callback->sendFailure(ProtocolResponse::Error( + String::Format("Error requesting cache names: %s", + CacheStorageErrorString(error).data()))); + } + }, + std::move(callback))); } void InspectorCacheStorageAgent::deleteEntry( @@ -659,16 +524,53 @@ const String& request, std::unique_ptr<DeleteEntryCallback> callback) { String cache_name; - WebServiceWorkerCacheStorage* cache_storage = nullptr; + mojom::blink::CacheStorage* cache_storage = nullptr; ProtocolResponse response = AssertCacheStorageAndNameForId( cache_id, frames_, &cache_name, &caches_, &cache_storage); if (!response.isSuccess()) { callback->sendFailure(response); return; } - cache_storage->DispatchOpen(std::make_unique<GetCacheForDeleteEntry>( - request, cache_name, std::move(callback)), - WebString(cache_name)); + cache_storage->Open( + cache_name, + WTF::Bind( + [](String cache_name, String request, + std::unique_ptr<DeleteEntryCallback> callback, + mojom::blink::OpenResultPtr result) { + if (result->is_status()) { + callback->sendFailure(ProtocolResponse::Error(String::Format( + "Error requesting cache %s: %s", cache_name.Utf8().data(), + CacheStorageErrorString(result->get_status()).data()))); + } else { + Vector<mojom::blink::BatchOperationPtr> batch_operations; + batch_operations.push_back(mojom::blink::BatchOperation::New()); + auto& operation = batch_operations.back(); + operation->operation_type = mojom::blink::OperationType::kDelete; + operation->request.SetURL(KURL(request)); + + mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr; + cache_ptr.Bind(std::move(result->get_cache())); + auto* cache = cache_ptr.get(); + cache->Batch( + std::move(batch_operations), + WTF::Bind( + [](mojom::blink::CacheStorageCacheAssociatedPtr cache_ptr, + std::unique_ptr<DeleteEntryCallback> callback, + mojom::blink::CacheStorageError error) { + if (error != + mojom::blink::CacheStorageError::kSuccess) { + callback->sendFailure( + ProtocolResponse::Error(String::Format( + "Error deleting cache entry: %s", + CacheStorageErrorString(error).data()))); + } else { + callback->sendSuccess(); + } + }, + std::move(cache_ptr), std::move(callback))); + } + }, + cache_name, request, std::move(callback))); } void InspectorCacheStorageAgent::requestCachedResponse( @@ -676,7 +578,7 @@ const String& request_url, std::unique_ptr<RequestCachedResponseCallback> callback) { String cache_name; - WebServiceWorkerCacheStorage* cache_storage = nullptr; + mojom::blink::CacheStorage* cache_storage = nullptr; ProtocolResponse response = AssertCacheStorageAndNameForId( cache_id, frames_, &cache_name, &caches_, &cache_storage); if (!response.isSuccess()) { @@ -685,8 +587,27 @@ } WebServiceWorkerRequest request; request.SetURL(KURL(request_url)); - cache_storage->DispatchMatch( - std::make_unique<CachedResponseMatchCallback>(std::move(callback)), - request, WebServiceWorkerCache::QueryParams()); + cache_storage->Match( + request, mojom::blink::QueryParams::New(), + WTF::Bind( + [](std::unique_ptr<RequestCachedResponseCallback> callback, + mojom::blink::MatchResultPtr result) { + if (result->is_status()) { + callback->sendFailure(ProtocolResponse::Error(String::Format( + "Unable to read cached response: %s", + CacheStorageErrorString(result->get_status()).data()))); + } else { + std::unique_ptr<protocol::DictionaryValue> headers = + protocol::DictionaryValue::create(); + if (!result->get_response()->blob) { + callback->sendSuccess( + CachedResponse::create().setBody("").build()); + return; + } + CachedResponseFileReaderLoaderClient::Load( + std::move(result->get_response()->blob), std::move(callback)); + } + }, + std::move(callback))); } } // namespace blink
diff --git a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.h b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.h index 093afc2..85e6f87 100644 --- a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.h +++ b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.h
@@ -8,7 +8,7 @@ #include <memory> #include "base/macros.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h" +#include "third_party/blink/public/platform/modules/cache_storage/cache_storage.mojom-blink.h" #include "third_party/blink/renderer/core/inspector/inspector_base_agent.h" #include "third_party/blink/renderer/core/inspector/protocol/CacheStorage.h" #include "third_party/blink/renderer/modules/modules_export.h" @@ -21,8 +21,7 @@ class MODULES_EXPORT InspectorCacheStorageAgent final : public InspectorBaseAgent<protocol::CacheStorage::Metainfo> { public: - using CachesMap = - HashMap<String, std::unique_ptr<WebServiceWorkerCacheStorage>>; + using CachesMap = HashMap<String, mojom::blink::CacheStoragePtr>; static InspectorCacheStorageAgent* Create(InspectedFrames* frames) { return new InspectorCacheStorageAgent(frames);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc index e5aa18f1..8703054 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -575,10 +575,6 @@ double m22, double dx, double dy) { - PaintCanvas* c = DrawingCanvas(); - if (!c) - return; - if (!std::isfinite(m11) || !std::isfinite(m21) || !std::isfinite(dx) || !std::isfinite(m12) || !std::isfinite(m22) || !std::isfinite(dy)) return; @@ -595,6 +591,29 @@ transform(fm11, fm12, fm21, fm22, fdx, fdy); } +void BaseRenderingContext2D::setTransform(DOMMatrix2DInit& transform, + ExceptionState& exception_state) { + DOMMatrixReadOnly* m = + DOMMatrixReadOnly::fromMatrix2D(transform, exception_state); + + if (!m) + return; + + setTransform(m->m11(), m->m12(), m->m21(), m->m22(), m->m41(), m->m42()); +} + +DOMMatrix* BaseRenderingContext2D::getTransform() { + const AffineTransform& t = GetState().Transform(); + DOMMatrix* m = DOMMatrix::Create(); + m->setA(t.A()); + m->setB(t.B()); + m->setC(t.C()); + m->setD(t.D()); + m->setE(t.E()); + m->setF(t.F()); + return m; +} + void BaseRenderingContext2D::beginPath() { path_.Clear(); }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h index ddda36c..101e86e 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
@@ -7,6 +7,8 @@ #include "third_party/blink/renderer/bindings/modules/v8/canvas_image_source.h" #include "third_party/blink/renderer/bindings/modules/v8/string_or_canvas_gradient_or_canvas_pattern.h" +#include "third_party/blink/renderer/core/geometry/dom_matrix.h" +#include "third_party/blink/renderer/core/geometry/dom_matrix_2d_init.h" #include "third_party/blink/renderer/core/html/canvas/image_data.h" #include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_gradient.h" #include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h" @@ -105,6 +107,8 @@ double m22, double dx, double dy); + void setTransform(DOMMatrix2DInit&, ExceptionState&); + DOMMatrix* getTransform(); void resetTransform(); void beginPath();
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl index b556f96..b4a04f5 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
@@ -60,6 +60,8 @@ void translate(unrestricted double x, unrestricted double y); void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f); void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f); + [RaisesException] void setTransform(optional DOMMatrix2DInit transform); + DOMMatrix getTransform(); void resetTransform(); // compositing @@ -128,7 +130,7 @@ [RaisesException] ImageData getImageData(long sx, long sy, long sw, long sh); [RaisesException] void putImageData(ImageData imagedata, long dx, long dy); [RaisesException] void putImageData(ImageData imagedata, long dx, long dy, long dirtyX, long dirtyY, long dirtyWidth, long dirtyHeight); - + // https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(unsigned long sw, unsigned long sh, ImageDataColorSettings imageDataColorSettings); [RuntimeEnabled=CanvasColorManagement, RaisesException] ImageData createImageData(ImageDataArray data, unsigned long sw, unsigned long sh, optional ImageDataColorSettings imageDataColorSettings);
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc index bea67be6..babb7a4 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc
@@ -109,13 +109,13 @@ constexpr int kMinScrubbingMessageWidth = 300; const char* kStateCSSClasses[7] = { - "phase-pre-ready state-no-source", // kNoSource - "phase-pre-ready state-no-metadata", // kNotLoaded - "state-loading-metadata", // kLoadingMetadata - "phase-ready state-stopped", // kStopped - "phase-ready state-playing", // kPlaying - "phase-ready state-buffering", // kBuffering - "phase-ready state-scrubbing", // kScrubbing + "state-no-source", // kNoSource + "state-no-metadata", // kNotLoaded + "state-loading-metadata", // kLoadingMetadata + "state-stopped", // kStopped + "state-playing", // kPlaying + "state-buffering", // kBuffering + "state-scrubbing", // kScrubbing }; // The padding in pixels inside the button panel. @@ -128,6 +128,16 @@ const char kTestModeCSSClass[] = "test-mode"; const char kImmersiveModeCSSClass[] = "immersive-mode"; +const char kSizingTinyCSSClass[] = "sizing-tiny"; +const char kSizingSmallCSSClass[] = "sizing-small"; +const char kSizingMediumCSSClass[] = "sizing-medium"; +const char kSizingLargeCSSClass[] = "sizing-large"; + +// The minimum width in pixels to reach a given size. +constexpr int kSizingSmallThreshold = 308; +constexpr int kSizingMediumThreshold = 641; +constexpr int kSizingLargeThreshold = 1441; + bool ShouldShowFullscreenButton(const HTMLMediaElement& media_element) { // Unconditionally allow the user to exit fullscreen if we are in it // now. Especially on android, when we might not yet know if @@ -668,36 +678,45 @@ void MediaControlsImpl::UpdateCSSClassFromState() { const ControlsState state = State(); - StringBuilder builder; - builder.Append(kStateCSSClasses[state]); + + Vector<String> toAdd; + Vector<String> toRemove; + + if (state < kLoadingMetadata) + toAdd.push_back("phase-pre-ready"); + else + toRemove.push_back("phase-pre-ready"); + + if (state > kLoadingMetadata) + toAdd.push_back("phase-ready"); + else + toRemove.push_back("phase-ready"); + + for (int i = 0; i < 7; i++) { + if (i == state) + toAdd.push_back(kStateCSSClasses[i]); + else + toRemove.push_back(kStateCSSClasses[i]); + } if (MediaElement().ShouldShowControls() && ShouldShowVideoControls() && !VideoElement().HasAvailableVideoFrame() && VideoElement().PosterImageURL().IsEmpty() && state <= ControlsState::kLoadingMetadata) { - builder.Append(" "); - builder.Append(kShowDefaultPosterCSSClass); - } - - if (is_acting_as_audio_controls_) { - builder.Append(" "); - builder.Append(kActAsAudioControlsCSSClass); + toAdd.push_back(kShowDefaultPosterCSSClass); + } else { + toRemove.push_back(kShowDefaultPosterCSSClass); } if (ShouldShowVideoControls() && GetDocument().GetSettings() && GetDocument().GetSettings()->GetImmersiveModeEnabled()) { - builder.Append(" "); - builder.Append(kImmersiveModeCSSClass); + toAdd.push_back(kImmersiveModeCSSClass); + } else { + toRemove.push_back(kImmersiveModeCSSClass); } - if (is_test_mode_) { - builder.Append(" "); - builder.Append(kTestModeCSSClass); - } - - const AtomicString& classes = builder.ToAtomicString(); - if (getAttribute("class") != classes) - setAttribute("class", classes); + classList().add(toAdd, ASSERT_NO_EXCEPTION); + classList().remove(toRemove, ASSERT_NO_EXCEPTION); if (loading_panel_) loading_panel_->UpdateDisplayState(); @@ -720,6 +739,14 @@ } } +void MediaControlsImpl::SetClass(const AtomicString& class_name, + bool should_have_class) { + if (should_have_class && !classList().contains(class_name)) + classList().Add(class_name); + else if (!should_have_class && classList().contains(class_name)) + classList().Remove(class_name); +} + MediaControlsImpl::ControlsState MediaControlsImpl::State() const { HTMLMediaElement::NetworkState network_state = MediaElement().getNetworkState(); @@ -844,7 +871,7 @@ void MediaControlsImpl::SetTestMode(bool enable) { is_test_mode_ = enable; - UpdateCSSClassFromState(); + SetClass(kTestModeCSSClass, enable); } void MediaControlsImpl::MaybeShow() { @@ -1277,6 +1304,16 @@ scrubbing_message_->SetDoesFit(size_.Width() >= kMinScrubbingMessageWidth); } +void MediaControlsImpl::UpdateSizingCSSClass() { + int width = size_.Width(); + SetClass(kSizingTinyCSSClass, width < kSizingSmallThreshold); + SetClass(kSizingSmallCSSClass, + width >= kSizingSmallThreshold && width < kSizingMediumThreshold); + SetClass(kSizingMediumCSSClass, + width >= kSizingMediumThreshold && width < kSizingLargeThreshold); + SetClass(kSizingLargeCSSClass, width >= kSizingLargeThreshold); +} + void MediaControlsImpl::MaybeToggleControlsFromTap() { if (MediaElement().paused()) return; @@ -1650,6 +1687,7 @@ // This might be better suited for a layout, but since JS media controls // won't benefit from that anwyay, we just do it here like JS will. if (IsModern()) { + UpdateSizingCSSClass(); UpdateOverflowMenuWanted(); UpdateScrubbingMessageFits(); return; @@ -1828,6 +1866,7 @@ DCHECK(!is_acting_as_audio_controls_); is_acting_as_audio_controls_ = true; + SetClass(kActAsAudioControlsCSSClass, true); PopulatePanel(); Reset(); } @@ -1837,6 +1876,7 @@ DCHECK(is_acting_as_audio_controls_); is_acting_as_audio_controls_ = false; + SetClass(kActAsAudioControlsCSSClass, false); PopulatePanel(); Reset(); }
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_impl.h b/third_party/blink/renderer/modules/media_controls/media_controls_impl.h index 723da780..8334239 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_impl.h +++ b/third_party/blink/renderer/modules/media_controls/media_controls_impl.h
@@ -218,6 +218,9 @@ // Update the CSS class when we think the state has updated. void UpdateCSSClassFromState(); + // Sets/removes a CSS class from this element based on |should_have_class|. + void SetClass(const AtomicString& class_name, bool should_have_class); + // Get the HTMLVideoElement that the controls are attached to. The caller must // check that the element is a video element first. HTMLVideoElement& VideoElement(); @@ -264,6 +267,7 @@ void UpdateOverflowMenuWanted() const; void UpdateScrubbingMessageFits() const; + void UpdateSizingCSSClass(); void MaybeRecordElementsDisplayed() const; // Takes a popup menu (caption, overflow) and position on the screen. This is
diff --git a/third_party/blink/renderer/modules/netinfo/OWNERS b/third_party/blink/renderer/modules/netinfo/OWNERS index 2f1bdfc..8137d1b 100644 --- a/third_party/blink/renderer/modules/netinfo/OWNERS +++ b/third_party/blink/renderer/modules/netinfo/OWNERS
@@ -1,3 +1,4 @@ jkarlin@chromium.org +tbansal@chromium.org # COMPONENT: Internals>Network>NetInfo
diff --git a/third_party/blink/renderer/modules/netinfo/network_information.cc b/third_party/blink/renderer/modules/netinfo/network_information.cc index fcbe32bb..8df178a 100644 --- a/third_party/blink/renderer/modules/netinfo/network_information.cc +++ b/third_party/blink/renderer/modules/netinfo/network_information.cc
@@ -9,6 +9,7 @@ #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" +#include "third_party/blink/renderer/core/frame/settings.h" #include "third_party/blink/renderer/modules/event_target_modules.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -17,6 +18,13 @@ namespace { +Settings* GetSettings(ExecutionContext* execution_context) { + DCHECK(execution_context); + + Document* document = ToDocument(execution_context); + return document->GetSettings(); +} + String ConnectionTypeToString(WebConnectionType type) { switch (type) { case kWebConnectionTypeCellular2G: @@ -105,7 +113,9 @@ bool NetworkInformation::saveData() const { return IsObserving() ? save_data_ - : GetNetworkStateNotifier().SaveDataEnabled(); + : GetNetworkStateNotifier().SaveDataEnabled() && + !GetSettings(GetExecutionContext()) + ->GetDataSaverHoldbackWebApi(); } void NetworkInformation::ConnectionChange( @@ -228,7 +238,9 @@ downlink_mbps_(GetNetworkStateNotifier().RoundMbps( Host(), GetNetworkStateNotifier().DownlinkThroughputMbps())), - save_data_(GetNetworkStateNotifier().SaveDataEnabled()), + save_data_( + GetNetworkStateNotifier().SaveDataEnabled() && + !GetSettings(GetExecutionContext())->GetDataSaverHoldbackWebApi()), context_stopped_(false) { DCHECK_LE(1u, GetNetworkStateNotifier().RandomizationSalt()); DCHECK_GE(20u, GetNetworkStateNotifier().RandomizationSalt());
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc index c144dcfa..d3ee025 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
@@ -10,7 +10,6 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_dtmf_sender.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_error_util.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h" -#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_parameters.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_void_request_script_promise_resolver_impl.h" #include "third_party/blink/renderer/modules/peerconnection/web_rtc_stats_report_callback_resolver.h" #include "third_party/blink/renderer/platform/peerconnection/rtc_void_request.h" @@ -165,10 +164,56 @@ return false; } -std::tuple<WebVector<WebRTCRtpEncodingParameters>, - base::Optional<WebRTCDegradationPreference>> -ToWebRTCRtpParameters(const RTCRtpParameters& parameters) { - WebVector<WebRTCRtpEncodingParameters> encodings; +// Relative weights for each priority as defined in RTCWEB-DATA +// https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel +const double kPriorityWeightVeryLow = 0.5; +const double kPriorityWeightLow = 1; +const double kPriorityWeightMedium = 2; +const double kPriorityWeightHigh = 4; + +std::string PriorityFromDouble(double priority) { + // Find the middle point between 2 priority weights to match them to a + // WebRTC priority + const double very_low_upper_bound = + (kPriorityWeightVeryLow + kPriorityWeightLow) / 2; + const double low_upper_bound = + (kPriorityWeightLow + kPriorityWeightMedium) / 2; + const double medium_upper_bound = + (kPriorityWeightMedium + kPriorityWeightHigh) / 2; + + if (priority < webrtc::kDefaultBitratePriority * very_low_upper_bound) { + return "very-low"; + } + if (priority < webrtc::kDefaultBitratePriority * low_upper_bound) { + return "low"; + } + if (priority < webrtc::kDefaultBitratePriority * medium_upper_bound) { + return "medium"; + } + return "high"; +} + +double PriorityToDouble(const WTF::String& priority) { + double result = 1; + + if (priority == "very-low") { + result = webrtc::kDefaultBitratePriority * kPriorityWeightVeryLow; + } else if (priority == "low") { + result = webrtc::kDefaultBitratePriority * kPriorityWeightLow; + } else if (priority == "medium") { + result = webrtc::kDefaultBitratePriority * kPriorityWeightMedium; + } else if (priority == "high") { + result = webrtc::kDefaultBitratePriority * kPriorityWeightHigh; + } else { + NOTREACHED(); + } + return result; +} + +std::tuple<std::vector<webrtc::RtpEncodingParameters>, + webrtc::DegradationPreference> +ToRtpParameters(const RTCRtpParameters& parameters) { + std::vector<webrtc::RtpEncodingParameters> encodings; if (parameters.hasEncodings()) { encodings.reserve(parameters.encodings().size()); @@ -176,39 +221,16 @@ // TODO(orphis): Forward missing fields from the WebRTC library: // codecPayloadType, dtx, ptime, maxFramerate, scaleResolutionDownBy, // rid - const base::Optional<uint8_t> codec_payload_type; - const base::Optional<WebRTCDtxStatus> dtx; - bool active = encoding.active(); - - const auto& js_priority = encoding.priority(); - WebRTCPriorityType priority; - - if (js_priority == "very-low") { - priority = WebRTCPriorityType::VeryLow; - } else if (js_priority == "low") { - priority = WebRTCPriorityType::Low; - } else if (js_priority == "medium") { - priority = WebRTCPriorityType::Medium; - } else if (js_priority == "high") { - priority = WebRTCPriorityType::High; - } else { - NOTREACHED(); - } - - const base::Optional<uint32_t> ptime; - const base::Optional<uint32_t> max_bitrate = - encoding.hasMaxBitrate() ? encoding.maxBitrate() - : base::Optional<uint32_t>(); - const base::Optional<uint32_t> max_framerate; - const base::Optional<double> scale_resolution_down_by; - const base::Optional<WebString> rid; - - encodings.emplace_back(codec_payload_type, dtx, active, priority, ptime, - max_bitrate, max_framerate, - scale_resolution_down_by, rid); + encodings.push_back({}); + encodings.back().active = encoding.active(); + encodings.back().bitrate_priority = PriorityToDouble(encoding.priority()); + if (encoding.hasMaxBitrate()) + encodings.back().max_bitrate_bps = clampTo<int>(encoding.maxBitrate()); } } - base::Optional<WebRTCDegradationPreference> degradation_preference; + + webrtc::DegradationPreference degradation_preference = + webrtc::DegradationPreference::BALANCED; return std::make_tuple(encodings, degradation_preference); } @@ -253,56 +275,37 @@ void RTCRtpSender::getParameters(RTCRtpParameters& parameters) { // TODO(orphis): Forward missing fields from the WebRTC library: // transactionId, rtcp, headerExtensions, degradationPreference - std::unique_ptr<WebRTCRtpParameters> web_parameters = + std::unique_ptr<webrtc::RtpParameters> webrtc_parameters = sender_->GetParameters(); HeapVector<RTCRtpEncodingParameters> encodings; - encodings.ReserveCapacity(web_parameters->Encodings().size()); - for (const auto& web_encoding : web_parameters->Encodings()) { + encodings.ReserveCapacity(webrtc_parameters->encodings.size()); + for (const auto& web_encoding : webrtc_parameters->encodings) { // TODO(orphis): Forward missing fields from the WebRTC library: // codecPayloadType, dtx, ptime, maxFramerate, scaleResolutionDownBy, rid encodings.emplace_back(); RTCRtpEncodingParameters& encoding = encodings.back(); - encoding.setActive(web_encoding.Active()); - if (web_encoding.MaxBitrate()) - encoding.setMaxBitrate(web_encoding.MaxBitrate().value()); - - const char* priority = ""; - switch (web_encoding.Priority()) { - case WebRTCPriorityType::VeryLow: - priority = "very-low"; - break; - case WebRTCPriorityType::Low: - priority = "low"; - break; - case WebRTCPriorityType::Medium: - priority = "medium"; - break; - case WebRTCPriorityType::High: - priority = "high"; - break; - default: - NOTREACHED(); - } - encoding.setPriority(priority); + encoding.setActive(web_encoding.active); + if (web_encoding.max_bitrate_bps) + encoding.setMaxBitrate(web_encoding.max_bitrate_bps.value()); + encoding.setPriority(WTF::String::FromUTF8( + PriorityFromDouble(web_encoding.bitrate_priority).c_str())); } parameters.setEncodings(encodings); HeapVector<RTCRtpCodecParameters> codecs; - codecs.ReserveCapacity(web_parameters->Codecs().size()); - for (const auto& web_codec : web_parameters->Codecs()) { + codecs.ReserveCapacity(webrtc_parameters->codecs.size()); + for (const auto& web_codec : webrtc_parameters->codecs) { // TODO(orphis): Forward missing field from the WebRTC library: // sdpFmtpLine codecs.emplace_back(); RTCRtpCodecParameters& codec = codecs.back(); - if (web_codec.PayloadType()) - codec.setPayloadType(web_codec.PayloadType().value()); - if (web_codec.MimeType()) - codec.setMimeType(web_codec.MimeType().value()); - if (web_codec.ClockRate()) - codec.setClockRate(web_codec.ClockRate().value()); - if (web_codec.Channels()) - codec.setChannels(web_codec.Channels().value()); + codec.setPayloadType(web_codec.payload_type); + codec.setMimeType(WTF::String::FromUTF8(web_codec.mime_type().c_str())); + if (web_codec.clock_rate) + codec.setClockRate(web_codec.clock_rate.value()); + if (web_codec.num_channels) + codec.setChannels(web_codec.num_channels.value()); } parameters.setCodecs(codecs); @@ -336,18 +339,12 @@ // field and the degradationPreference field. We just forward those to the // native layer without having to transform all the other read-only // parameters. - WebVector<WebRTCRtpEncodingParameters> encodings; - base::Optional<WebRTCDegradationPreference> degradation_preference; - std::tie(encodings, degradation_preference) = - ToWebRTCRtpParameters(parameters); - - if (!degradation_preference) { - degradation_preference = blink::WebRTCDegradationPreference::Balanced; - } + std::vector<webrtc::RtpEncodingParameters> encodings; + webrtc::DegradationPreference degradation_preference; + std::tie(encodings, degradation_preference) = ToRtpParameters(parameters); auto* request = new SetParametersRequest(resolver, this); - sender_->SetParameters(std::move(encodings), degradation_preference.value(), - request); + sender_->SetParameters(std::move(encodings), degradation_preference, request); return promise; }
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn index 4c11cc9e..8ceafc3a 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1399,8 +1399,6 @@ "text/text_run.cc", "text/text_run.h", "text/text_run_iterator.h", - "text/text_stream.cc", - "text/text_stream.h", "text/truncation.h", "text/unicode_bidi.h", "text/unicode_range.cc",
diff --git a/third_party/blink/renderer/platform/exported/platform.cc b/third_party/blink/renderer/platform/exported/platform.cc index 2b1430c..d7019cb 100644 --- a/third_party/blink/renderer/platform/exported/platform.cc +++ b/third_party/blink/renderer/platform/exported/platform.cc
@@ -38,7 +38,6 @@ #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/interface_provider.h" #include "third_party/blink/public/platform/interface_provider.h" -#include "third_party/blink/public/platform/modules/serviceworker/web_service_worker_cache_storage.h" #include "third_party/blink/public/platform/modules/webmidi/web_midi_accessor.h" #include "third_party/blink/public/platform/web_canvas_capture_handler.h" #include "third_party/blink/public/platform/web_gesture_curve.h" @@ -202,11 +201,6 @@ return nullptr; } -std::unique_ptr<WebServiceWorkerCacheStorage> Platform::CreateCacheStorage( - service_manager::InterfaceProvider* mojo_provider) { - return nullptr; -} - std::unique_ptr<WebThread> Platform::CreateThread( const WebThreadCreationParams& params) { return nullptr;
diff --git a/third_party/blink/renderer/platform/exported/web_service_worker_request.cc b/third_party/blink/renderer/platform/exported/web_service_worker_request.cc index 4d9a026..a55f883 100644 --- a/third_party/blink/renderer/platform/exported/web_service_worker_request.cc +++ b/third_party/blink/renderer/platform/exported/web_service_worker_request.cc
@@ -128,6 +128,11 @@ BlobDataHandle::Create(uuid, String(), size, std::move(blob_info)); } +void WebServiceWorkerRequest::SetBlobDataHandle( + scoped_refptr<BlobDataHandle> blob_data_handle) { + private_->blob_data_handle = std::move(blob_data_handle); +} + scoped_refptr<BlobDataHandle> WebServiceWorkerRequest::GetBlobDataHandle() const { return private_->blob_data_handle;
diff --git a/third_party/blink/renderer/platform/feature_policy/feature_policy.cc b/third_party/blink/renderer/platform/feature_policy/feature_policy.cc index 6cf042c..489cfff 100644 --- a/third_party/blink/renderer/platform/feature_policy/feature_policy.cc +++ b/third_party/blink/renderer/platform/feature_policy/feature_policy.cc
@@ -152,6 +152,7 @@ case mojom::FeaturePolicyFeature::kVerticalScroll: case mojom::FeaturePolicyFeature::kLegacyImageFormats: case mojom::FeaturePolicyFeature::kImageCompression: + case mojom::FeaturePolicyFeature::kDocumentStreamInsertion: return RuntimeEnabledFeatures::ExperimentalProductivityFeaturesEnabled(); default: return false; @@ -194,6 +195,9 @@ mojom::FeaturePolicyFeature::kPictureInPicture); if (RuntimeEnabledFeatures::ExperimentalProductivityFeaturesEnabled()) { default_feature_name_map.Set( + "document-stream-insertion", + mojom::FeaturePolicyFeature::kDocumentStreamInsertion); + default_feature_name_map.Set( "image-compression", mojom::FeaturePolicyFeature::kImageCompression); default_feature_name_map.Set( "legacy-image-formats", @@ -212,8 +216,6 @@ "cookie", mojom::FeaturePolicyFeature::kDocumentCookie); default_feature_name_map.Set( "domain", mojom::FeaturePolicyFeature::kDocumentDomain); - default_feature_name_map.Set("docwrite", - mojom::FeaturePolicyFeature::kDocumentWrite); } if (RuntimeEnabledFeatures::FeaturePolicyAutoplayFeatureEnabled()) { default_feature_name_map.Set("autoplay",
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.cc b/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.cc index bf0a73e..352e502 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.cc
@@ -895,6 +895,28 @@ } } +// Get a RunSegmenter for the specified range and FontOrientation. +// +// Because RunSegmenter needs pre-context but is foward-only, it needs to start +// from the beginning for each range. By caching the last-used RunSegmenter, +// when caller shapes multiple ranges of a string incrementally, we can re-use +// existing instance and avoid scanning from the beginning. +RunSegmenter* HarfBuzzShaper::CachedRunSegmenter( + unsigned start, + unsigned end, + FontOrientation orientation) const { + if (!run_segmenter_.has_value() || run_segmenter_->HasProgressedPast(start) || + !run_segmenter_->Supports(orientation)) { + // RunSegmenter is not created yet, or existing instance cannot be reused + // for the new range. Create a new instance. + // + // Run segmentation needs to operate on the entire string, regardless of the + // shaping window (defined by the start and end parameters). + run_segmenter_.emplace(text_, text_length_, orientation); + } + return &run_segmenter_.value(); +} + scoped_refptr<ShapeResult> HarfBuzzShaper::Shape(const Font* font, TextDirection direction, unsigned start, @@ -905,12 +927,8 @@ unsigned length = end - start; scoped_refptr<ShapeResult> result = ShapeResult::Create(font, length, direction); HarfBuzzScopedPtr<hb_buffer_t> buffer(hb_buffer_create(), hb_buffer_destroy); - - // Run segmentation needs to operate on the entire string, regardless of the - // shaping window (defined by the start and end parameters). - RunSegmenter::RunSegmenterRange segment_range = RunSegmenter::NullRange(); - RunSegmenter run_segmenter(text_, text_length_, - font->GetFontDescription().Orientation()); + RunSegmenter* run_segmenter = + CachedRunSegmenter(start, end, font->GetFontDescription().Orientation()); RangeData range_data; range_data.buffer = buffer.Get(); @@ -920,11 +938,20 @@ range_data.end = end; SetFontFeatures(font, &range_data.font_features); - while (run_segmenter.Consume(&segment_range)) { + RunSegmenter::RunSegmenterRange segment_range = RunSegmenter::NullRange(); + for (unsigned run_segmenter_start = start; + run_segmenter->ConsumePast(run_segmenter_start, &segment_range); + run_segmenter_start = segment_range.end) { // Only shape segments overlapping with the range indicated by start and // end. Not only those strictly within. if (start < segment_range.end && end > segment_range.start) ShapeSegment(&range_data, segment_range, result.get()); + + // Break if beyond the requested range. Because RunSegmenter is + // incremental, further ranges are not needed. This also allows reusing + // the segmenter state for next incremental calls. + if (segment_range.end >= end) + break; } // Ensure we have at least one run for StartIndexForResult().
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.h b/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.h index 5e86364a..1f0de3e 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.h +++ b/third_party/blink/renderer/platform/fonts/shaping/harf_buzz_shaper.h
@@ -31,6 +31,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARF_BUZZ_SHAPER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARF_BUZZ_SHAPER_H_ +#include "base/optional.h" #include "third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h" #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h" #include "third_party/blink/renderer/platform/wtf/allocator.h" @@ -45,6 +46,8 @@ struct RangeData; struct BufferSlice; +enum class FontOrientation; + class PLATFORM_EXPORT HarfBuzzShaper final { public: HarfBuzzShaper(const UChar*, unsigned length); @@ -100,8 +103,15 @@ const BufferSlice&, ShapeResult*) const; + RunSegmenter* CachedRunSegmenter(unsigned start, + unsigned end, + FontOrientation) const; + const UChar* text_; unsigned text_length_; + + // Cache an instnace of |RunSegmenter|. See |CachedRunSegmenter()|. + mutable base::Optional<RunSegmenter> run_segmenter_; }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.cc b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.cc index 8a81e927..e3a4b5b 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.cc
@@ -35,7 +35,7 @@ run_orientation == FontOrientation::kVerticalMixed ? 0 : buffer_size_), symbols_iterator_position_(0), - at_end_(false) {} + at_end_(!buffer_size_) {} void RunSegmenter::ConsumeScriptIteratorPastLastSplit() { DCHECK(script_run_iterator_); @@ -74,8 +74,35 @@ } } -bool RunSegmenter::Consume(RunSegmenterRange* next_range) { - if (at_end_ || !buffer_size_) +bool RunSegmenter::Supports(FontOrientation orientation) const { + bool needs_orientation_iterator = + orientation == FontOrientation::kVerticalMixed; + return (needs_orientation_iterator == !!orientation_iterator_.get()); +} + +bool RunSegmenter::HasProgressedPast(unsigned start) const { + return candidate_range_.start > start; +} + +bool RunSegmenter::ConsumePast(unsigned start, RunSegmenterRange* next_range) { + DCHECK(!HasProgressedPast(start)); + while (true) { + // Check the candidate range first, before checking |at_end_| because + // |Consume()| sets |at_end_| even when the current range is valid. + if (candidate_range_.start <= start && start < candidate_range_.end) { + *next_range = candidate_range_; + return true; + } + + if (!Consume()) + return false; + } +} + +// Consume the input until the next range. Returns false if no more ranges are +// available. +bool RunSegmenter::Consume() { + if (at_end_) return false; ConsumeScriptIteratorPastLastSplit(); @@ -99,7 +126,6 @@ candidate_range_.start = candidate_range_.end; candidate_range_.end = last_split_; - *next_range = candidate_range_; at_end_ = last_split_ == buffer_size_; return true;
diff --git a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h index e5d8c605..c006aef 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h +++ b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h
@@ -36,9 +36,23 @@ FontFallbackPriority font_fallback_priority; }; + // Initialize a RunSegmenter. RunSegmenter(const UChar* buffer, unsigned buffer_size, FontOrientation); - bool Consume(RunSegmenterRange*); + // Returns true if the internal state is past |start|. RunSegmenter is forward + // incremental that once it's past a point, it cannot be used for text before + // it. On the ohter hand, if it's not, caller can use the existing instance. + bool HasProgressedPast(unsigned start) const; + + // Returns true if this instance supports the specified FontOrientation. + bool Supports(FontOrientation) const; + + // Advance to the range that includes |start| and return the range. Returns + // false if there are no such ranges. + // + // Callers need to update |start| of the next call to the previous range end + // when they need next range. + bool ConsumePast(unsigned start, RunSegmenterRange*); static RunSegmenterRange NullRange() { return {0, 0, USCRIPT_INVALID_CODE, OrientationIterator::kOrientationKeep, @@ -49,6 +63,7 @@ void ConsumeOrientationIteratorPastLastSplit(); void ConsumeScriptIteratorPastLastSplit(); void ConsumeSymbolsIteratorPastLastSplit(); + bool Consume(); unsigned buffer_size_; RunSegmenterRange candidate_range_;
diff --git a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter_test.cc b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter_test.cc index 231a4e9f..caf858e6 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter_test.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter_test.cc
@@ -61,7 +61,9 @@ const Vector<SegmenterExpectedRun>& expect) { RunSegmenter::RunSegmenterRange segmenter_range; unsigned long run_count = 0; - while (run_segmenter->Consume(&segmenter_range)) { + for (unsigned run_segmenter_start = 0; + run_segmenter->ConsumePast(run_segmenter_start, &segmenter_range); + run_segmenter_start = segmenter_range.end) { ASSERT_LT(run_count, expect.size()); ASSERT_EQ(expect[run_count].start, segmenter_range.start); ASSERT_EQ(expect[run_count].limit, segmenter_range.end); @@ -96,7 +98,7 @@ 0, 0, USCRIPT_INVALID_CODE, OrientationIterator::kOrientationKeep}; RunSegmenter run_segmenter(empty.Characters16(), empty.length(), FontOrientation::kVerticalMixed); - DCHECK(!run_segmenter.Consume(&segmenter_range)); + DCHECK(!run_segmenter.ConsumePast(0, &segmenter_range)); ASSERT_EQ(segmenter_range.start, 0u); ASSERT_EQ(segmenter_range.end, 0u); ASSERT_EQ(segmenter_range.script, USCRIPT_INVALID_CODE); @@ -248,4 +250,29 @@ FontFallbackPriority::kEmojiEmoji}}); } +// Test ConsumePast with |start| advances to the run that includes |start|. +TEST_F(RunSegmenterTest, PastFirstRun) { + String text(u"αβγあいうabc"); + RunSegmenter run_segmenter(text.Characters16(), text.length(), + FontOrientation::kHorizontal); + RunSegmenter::RunSegmenterRange segmenter_range; + EXPECT_TRUE(run_segmenter.ConsumePast(7, &segmenter_range)); + EXPECT_EQ(segmenter_range.start, 6u); + EXPECT_EQ(segmenter_range.end, 9u); + EXPECT_EQ(segmenter_range.script, USCRIPT_LATIN); + EXPECT_EQ(segmenter_range.render_orientation, + OrientationIterator::kOrientationKeep); + EXPECT_EQ(segmenter_range.font_fallback_priority, + FontFallbackPriority::kText); +} + +// Test ConsumePast with |start| larger than buffer size returns false. +TEST_F(RunSegmenterTest, PastBufferLength) { + String text(u"abc"); + RunSegmenter run_segmenter(text.Characters16(), text.length(), + FontOrientation::kHorizontal); + RunSegmenter::RunSegmenterRange segmenter_range; + EXPECT_FALSE(run_segmenter.ConsumePast(4, &segmenter_range)); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/DEPS b/third_party/blink/renderer/platform/geometry/DEPS index e405e8a..1419d6b0 100644 --- a/third_party/blink/renderer/platform/geometry/DEPS +++ b/third_party/blink/renderer/platform/geometry/DEPS
@@ -12,7 +12,7 @@ "+third_party/blink/renderer/platform/layout_unit.h", "+third_party/blink/renderer/platform/platform_export.h", "+third_party/blink/renderer/platform/pod_interval_tree.h", - "+third_party/blink/renderer/platform/text", + "+third_party/blink/renderer/platform/text/writing_mode.h", "+third_party/blink/renderer/platform/transforms", "+third_party/blink/renderer/platform/wtf", "+ui/gfx/geometry",
diff --git a/third_party/blink/renderer/platform/geometry/float_point.cc b/third_party/blink/renderer/platform/geometry/float_point.cc index 0093ccf..a4de7d5 100644 --- a/third_party/blink/renderer/platform/geometry/float_point.cc +++ b/third_party/blink/renderer/platform/geometry/float_point.cc
@@ -36,6 +36,7 @@ #include "third_party/blink/renderer/platform/geometry/layout_size.h" #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/skia/include/core/SkPoint.h" #include "ui/gfx/geometry/point_f.h" @@ -133,4 +134,11 @@ return String::Format("%lg,%lg", X(), Y()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const FloatPoint& p) { + ts << "(" << WTF::TextStream::FormatNumberRespectingIntegers(p.X()); + ts << "," << WTF::TextStream::FormatNumberRespectingIntegers(p.Y()); + ts << ")"; + return ts; +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/float_point.h b/third_party/blink/renderer/platform/geometry/float_point.h index eb5026b1..346885c 100644 --- a/third_party/blink/renderer/platform/geometry/float_point.h +++ b/third_party/blink/renderer/platform/geometry/float_point.h
@@ -243,6 +243,8 @@ FloatPoint& intersection); PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const FloatPoint&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, + const FloatPoint&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/float_point_3d.cc b/third_party/blink/renderer/platform/geometry/float_point_3d.cc index ffe46ca..5a99342 100644 --- a/third_party/blink/renderer/platform/geometry/float_point_3d.cc +++ b/third_party/blink/renderer/platform/geometry/float_point_3d.cc
@@ -23,8 +23,8 @@ #include <math.h> -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "ui/gfx/geometry/point3_f.h" @@ -65,7 +65,7 @@ return String::Format("%lg,%lg,%lg", X(), Y(), Z()); } -TextStream& operator<<(TextStream& ts, const FloatPoint3D& p) { +WTF::TextStream& operator<<(WTF::TextStream& ts, const FloatPoint3D& p) { ts << "x=" << p.X() << " y=" << p.Y() << " z=" << p.Z(); return ts; }
diff --git a/third_party/blink/renderer/platform/geometry/float_point_3d.h b/third_party/blink/renderer/platform/geometry/float_point_3d.h index aac640a..6717f3f1 100644 --- a/third_party/blink/renderer/platform/geometry/float_point_3d.h +++ b/third_party/blink/renderer/platform/geometry/float_point_3d.h
@@ -25,6 +25,7 @@ #include "third_party/blink/renderer/platform/geometry/float_point.h" #include "third_party/blink/renderer/platform/wtf/allocator.h" +#include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/skia/include/core/SkPoint3.h" namespace gfx { @@ -33,8 +34,6 @@ namespace blink { -class TextStream; - class PLATFORM_EXPORT FloatPoint3D { DISALLOW_NEW(); @@ -163,7 +162,7 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const FloatPoint3D&); -TextStream& operator<<(TextStream&, const FloatPoint3D&); +WTF::TextStream& operator<<(WTF::TextStream&, const FloatPoint3D&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/float_rect.cc b/third_party/blink/renderer/platform/geometry/float_rect.cc index c3c87c9..34741d1b 100644 --- a/third_party/blink/renderer/platform/geometry/float_rect.cc +++ b/third_party/blink/renderer/platform/geometry/float_rect.cc
@@ -29,6 +29,7 @@ #include "third_party/blink/renderer/platform/geometry/int_rect.h" #include "third_party/blink/renderer/platform/geometry/layout_rect.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/skia/include/core/SkRect.h" #include "ui/gfx/geometry/rect_f.h" @@ -274,4 +275,12 @@ Size().ToString().Ascii().data()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const FloatRect& r) { + ts << "at (" << WTF::TextStream::FormatNumberRespectingIntegers(r.X()); + ts << "," << WTF::TextStream::FormatNumberRespectingIntegers(r.Y()); + ts << ") size " << WTF::TextStream::FormatNumberRespectingIntegers(r.Width()); + ts << "x" << WTF::TextStream::FormatNumberRespectingIntegers(r.Height()); + return ts; +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/float_rect.h b/third_party/blink/renderer/platform/geometry/float_rect.h index e9d15b00..26f2628 100644 --- a/third_party/blink/renderer/platform/geometry/float_rect.h +++ b/third_party/blink/renderer/platform/geometry/float_rect.h
@@ -265,6 +265,7 @@ const FloatRect& dest_rect); PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const FloatRect&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, const FloatRect&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/float_size.cc b/third_party/blink/renderer/platform/geometry/float_size.cc index 16303e0a..6fd6c33 100644 --- a/third_party/blink/renderer/platform/geometry/float_size.cc +++ b/third_party/blink/renderer/platform/geometry/float_size.cc
@@ -31,6 +31,7 @@ #include "third_party/blink/renderer/platform/geometry/int_size.h" #include "third_party/blink/renderer/platform/geometry/layout_size.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/skia/include/core/SkSize.h" #include "ui/gfx/geometry/size_f.h" @@ -76,4 +77,11 @@ return String::Format("%lgx%lg", Width(), Height()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const FloatSize& s) { + ts << "width=" << WTF::TextStream::FormatNumberRespectingIntegers(s.Width()); + ts << " height=" + << WTF::TextStream::FormatNumberRespectingIntegers(s.Height()); + return ts; +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/float_size.h b/third_party/blink/renderer/platform/geometry/float_size.h index 23faee5..faf4827 100644 --- a/third_party/blink/renderer/platform/geometry/float_size.h +++ b/third_party/blink/renderer/platform/geometry/float_size.h
@@ -208,6 +208,7 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const FloatSize&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, const FloatSize&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/int_point.cc b/third_party/blink/renderer/platform/geometry/int_point.cc index 3315630a..5efff72f 100644 --- a/third_party/blink/renderer/platform/geometry/int_point.cc +++ b/third_party/blink/renderer/platform/geometry/int_point.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/platform/geometry/int_point.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "ui/gfx/geometry/point.h" @@ -21,4 +22,8 @@ return String::Format("%d,%d", X(), Y()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const IntPoint& p) { + return ts << "(" << p.X() << "," << p.Y() << ")"; +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/int_point.h b/third_party/blink/renderer/platform/geometry/int_point.h index 9bbfa8c..14ca3909 100644 --- a/third_party/blink/renderer/platform/geometry/int_point.h +++ b/third_party/blink/renderer/platform/geometry/int_point.h
@@ -159,6 +159,7 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const IntPoint&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, const IntPoint&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/int_rect.cc b/third_party/blink/renderer/platform/geometry/int_rect.cc index 2ca0b1e..cf792014 100644 --- a/third_party/blink/renderer/platform/geometry/int_rect.cc +++ b/third_party/blink/renderer/platform/geometry/int_rect.cc
@@ -28,6 +28,7 @@ #include "third_party/blink/renderer/platform/geometry/float_rect.h" #include "third_party/blink/renderer/platform/geometry/layout_rect.h" #include "third_party/blink/renderer/platform/wtf/checked_numeric.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/vector.h" #include "third_party/skia/include/core/SkRect.h" @@ -207,4 +208,9 @@ return max.IsValid(); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const IntRect& r) { + return ts << "at (" << r.X() << "," << r.Y() << ") size " << r.Width() << "x" + << r.Height(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/int_rect.h b/third_party/blink/renderer/platform/geometry/int_rect.h index 51b6850..e9d86bf8 100644 --- a/third_party/blink/renderer/platform/geometry/int_rect.h +++ b/third_party/blink/renderer/platform/geometry/int_rect.h
@@ -32,6 +32,7 @@ #include "third_party/blink/renderer/platform/geometry/int_rect_outsets.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/saturated_arithmetic.h" #if defined(OS_MACOSX) typedef struct CGRect CGRect; @@ -217,6 +218,11 @@ PLATFORM_EXPORT IntRect UnionRectEvenIfEmpty(const Vector<IntRect>&); +inline IntRect SaturatedRect(const IntRect& r) { + return IntRect(r.X(), r.Y(), ClampAdd(r.X(), r.Width()) - r.X(), + ClampAdd(r.Y(), r.Height()) - r.Y()); +} + inline bool operator==(const IntRect& a, const IntRect& b) { return a.Location() == b.Location() && a.Size() == b.Size(); } @@ -226,6 +232,7 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const IntRect&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, const IntRect&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/layout_point.cc b/third_party/blink/renderer/platform/geometry/layout_point.cc index 5ef657b..8ead868 100644 --- a/third_party/blink/renderer/platform/geometry/layout_point.cc +++ b/third_party/blink/renderer/platform/geometry/layout_point.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/platform/geometry/layout_point.h" #include <algorithm> +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -26,4 +27,8 @@ Y().ToString().Ascii().data()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const LayoutPoint& point) { + return ts << FloatPoint(point); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/layout_point.h b/third_party/blink/renderer/platform/geometry/layout_point.h index 2d16732a..10726fb7 100644 --- a/third_party/blink/renderer/platform/geometry/layout_point.h +++ b/third_party/blink/renderer/platform/geometry/layout_point.h
@@ -212,6 +212,8 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const LayoutPoint&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, + const LayoutPoint&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/layout_rect.cc b/third_party/blink/renderer/platform/geometry/layout_rect.cc index 19af6e9..5f95394 100644 --- a/third_party/blink/renderer/platform/geometry/layout_rect.cc +++ b/third_party/blink/renderer/platform/geometry/layout_rect.cc
@@ -35,6 +35,7 @@ #include "third_party/blink/renderer/platform/geometry/double_rect.h" #include "third_party/blink/renderer/platform/geometry/float_rect.h" #include "third_party/blink/renderer/platform/layout_unit.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -174,4 +175,8 @@ Size().ToString().Ascii().data()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const LayoutRect& rect) { + return ts << FloatRect(rect); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/layout_rect.h b/third_party/blink/renderer/platform/geometry/layout_rect.h index 0c40226..e05e54d 100644 --- a/third_party/blink/renderer/platform/geometry/layout_rect.h +++ b/third_party/blink/renderer/platform/geometry/layout_rect.h
@@ -327,6 +327,8 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const LayoutRect&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, + const LayoutRect&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/layout_size.cc b/third_party/blink/renderer/platform/geometry/layout_size.cc index 23d797a7..5c7c985 100644 --- a/third_party/blink/renderer/platform/geometry/layout_size.cc +++ b/third_party/blink/renderer/platform/geometry/layout_size.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/platform/geometry/layout_size.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -17,4 +18,8 @@ Height().ToString().Ascii().data()); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const LayoutSize& size) { + return ts << FloatSize(size); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/geometry/layout_size.h b/third_party/blink/renderer/platform/geometry/layout_size.h index d89b068..280ee87 100644 --- a/third_party/blink/renderer/platform/geometry/layout_size.h +++ b/third_party/blink/renderer/platform/geometry/layout_size.h
@@ -227,6 +227,8 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const LayoutSize&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, + const LayoutSize&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc index 285b9a3..b1f2ed9 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc
@@ -1122,6 +1122,7 @@ } TEST_F(Canvas2DLayerBridgeTest, GpuMemoryBufferRecycling) { + InSequence s; ScopedCanvas2dImageChromiumForTest canvas_2d_image_chromium(true); ScopedTestingPlatformSupport<FakePlatformSupport> platform; const_cast<gpu::Capabilities&>(SharedGpuContext::ContextProviderWrapper() @@ -1133,10 +1134,10 @@ viz::TransferableResource resource2; std::unique_ptr<viz::SingleReleaseCallback> release_callback1; std::unique_ptr<viz::SingleReleaseCallback> release_callback2; - const GLuint texture_id1 = 1; - const GLuint texture_id2 = 2; - const GLuint image_id1 = 3; - const GLuint image_id2 = 4; + constexpr GLuint texture_id1 = 1; + constexpr GLuint texture_id2 = 2; + constexpr GLuint image_id1 = 3; + constexpr GLuint image_id2 = 4; Canvas2DLayerBridgePtr bridge(std::make_unique<Canvas2DLayerBridge>( IntSize(300, 150), 0, Canvas2DLayerBridge::kForceAccelerationForTesting, @@ -1144,15 +1145,15 @@ testing::Mock::VerifyAndClearExpectations(&gl_); - EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id1)); EXPECT_CALL(gl_, CreateImageCHROMIUM(_, _, _, _)).WillOnce(Return(image_id1)); + EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id1)); DrawSomething(bridge); bridge->PrepareTransferableResource(nullptr, &resource1, &release_callback1); testing::Mock::VerifyAndClearExpectations(&gl_); - EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id2)); EXPECT_CALL(gl_, CreateImageCHROMIUM(_, _, _, _)).WillOnce(Return(image_id2)); + EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id2)); DrawSomething(bridge); bridge->PrepareTransferableResource(nullptr, &resource2, &release_callback2); @@ -1186,6 +1187,7 @@ } TEST_F(Canvas2DLayerBridgeTest, NoGpuMemoryBufferRecyclingWhenPageHidden) { + InSequence s; ScopedCanvas2dImageChromiumForTest canvas_2d_image_chromium(true); ScopedTestingPlatformSupport<FakePlatformSupport> platform; const_cast<gpu::Capabilities&>(SharedGpuContext::ContextProviderWrapper() @@ -1197,10 +1199,10 @@ viz::TransferableResource resource2; std::unique_ptr<viz::SingleReleaseCallback> release_callback1; std::unique_ptr<viz::SingleReleaseCallback> release_callback2; - const GLuint texture_id1 = 1; - const GLuint texture_id2 = 2; - const GLuint image_id1 = 3; - const GLuint image_id2 = 4; + constexpr GLuint texture_id1 = 1; + constexpr GLuint texture_id2 = 2; + constexpr GLuint image_id1 = 3; + constexpr GLuint image_id2 = 4; Canvas2DLayerBridgePtr bridge(std::make_unique<Canvas2DLayerBridge>( IntSize(300, 150), 0, Canvas2DLayerBridge::kForceAccelerationForTesting, @@ -1208,15 +1210,15 @@ testing::Mock::VerifyAndClearExpectations(&gl_); - EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id1)); EXPECT_CALL(gl_, CreateImageCHROMIUM(_, _, _, _)).WillOnce(Return(image_id1)); + EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id1)); DrawSomething(bridge); bridge->PrepareTransferableResource(nullptr, &resource1, &release_callback1); testing::Mock::VerifyAndClearExpectations(&gl_); - EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id2)); EXPECT_CALL(gl_, CreateImageCHROMIUM(_, _, _, _)).WillOnce(Return(image_id2)); + EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id2)); DrawSomething(bridge); bridge->PrepareTransferableResource(nullptr, &resource2, &release_callback2); @@ -1249,6 +1251,7 @@ } TEST_F(Canvas2DLayerBridgeTest, ReleaseGpuMemoryBufferAfterBridgeDestroyed) { + InSequence s; ScopedCanvas2dImageChromiumForTest canvas_2d_image_chromium(true); ScopedTestingPlatformSupport<FakePlatformSupport> platform; const_cast<gpu::Capabilities&>(SharedGpuContext::ContextProviderWrapper() @@ -1258,8 +1261,8 @@ viz::TransferableResource resource; std::unique_ptr<viz::SingleReleaseCallback> release_callback; - const GLuint texture_id = 1; - const GLuint image_id = 2; + constexpr GLuint texture_id = 1; + constexpr GLuint image_id = 2; Canvas2DLayerBridgePtr bridge(std::make_unique<Canvas2DLayerBridge>( IntSize(300, 150), 0, Canvas2DLayerBridge::kForceAccelerationForTesting, @@ -1267,8 +1270,8 @@ testing::Mock::VerifyAndClearExpectations(&gl_); - EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id)); EXPECT_CALL(gl_, CreateImageCHROMIUM(_, _, _, _)).WillOnce(Return(image_id)); + EXPECT_CALL(gl_, GenTextures(1, _)).WillOnce(SetArgPointee<1>(texture_id)); DrawSomething(bridge); bridge->PrepareTransferableResource(nullptr, &resource, &release_callback);
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.cc b/third_party/blink/renderer/platform/graphics/canvas_resource.cc index 16455bc..e0e0cd64 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource.cc
@@ -297,14 +297,10 @@ if (!context_provider_wrapper_ || !image_id_) return; auto* gl = context_provider_wrapper_->ContextProvider()->ContextGL(); - if (gl && texture_id_) { - GLenum target = TextureTarget(); - gl->BindTexture(target, texture_id_); - gl->ReleaseTexImage2DCHROMIUM(target, image_id_); + if (gl && image_id_) gl->DestroyImageCHROMIUM(image_id_); + if (gl && texture_id_) gl->DeleteTextures(1, &texture_id_); - gl->BindTexture(target, 0); - } image_id_ = 0; texture_id_ = 0; gpu_memory_buffer_ = nullptr;
diff --git a/third_party/blink/renderer/platform/graphics/filters/distant_light_source.cc b/third_party/blink/renderer/platform/graphics/filters/distant_light_source.cc index eb2937a..6f92358b 100644 --- a/third_party/blink/renderer/platform/graphics/filters/distant_light_source.cc +++ b/third_party/blink/renderer/platform/graphics/filters/distant_light_source.cc
@@ -30,7 +30,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/distant_light_source.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -48,7 +48,8 @@ return true; } -TextStream& DistantLightSource::ExternalRepresentation(TextStream& ts) const { +WTF::TextStream& DistantLightSource::ExternalRepresentation( + WTF::TextStream& ts) const { ts << "[type=DISTANT-LIGHT] "; ts << "[azimuth=\"" << Azimuth() << "\"]"; ts << "[elevation=\"" << Elevation() << "\"]";
diff --git a/third_party/blink/renderer/platform/graphics/filters/distant_light_source.h b/third_party/blink/renderer/platform/graphics/filters/distant_light_source.h index ca75b46..f48373d 100644 --- a/third_party/blink/renderer/platform/graphics/filters/distant_light_source.h +++ b/third_party/blink/renderer/platform/graphics/filters/distant_light_source.h
@@ -40,7 +40,7 @@ bool SetAzimuth(float) override; bool SetElevation(float) override; - TextStream& ExternalRepresentation(TextStream&) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&) const override; private: DistantLightSource(float azimuth, float elevation)
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_blend.cc b/third_party/blink/renderer/platform/graphics/filters/fe_blend.cc index 4aea378..dc633651 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_blend.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_blend.cc
@@ -27,7 +27,7 @@ #include "SkXfermodeImageFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -57,7 +57,8 @@ std::move(foreground), &crop_rect); } -TextStream& FEBlend::ExternalRepresentation(TextStream& ts, int indent) const { +WTF::TextStream& FEBlend::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feBlend"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_blend.h b/third_party/blink/renderer/platform/graphics/filters/fe_blend.h index 27f3a44..4dbbf31c 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_blend.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_blend.h
@@ -35,7 +35,8 @@ BlendMode GetBlendMode() const { return mode_; } bool SetBlendMode(BlendMode); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEBlend(Filter*, BlendMode);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.cc b/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.cc index bdab56eb..1b956a6 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.cc
@@ -7,6 +7,7 @@ #include "third_party/blink/renderer/platform/geometry/float_rect.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" #include "third_party/blink/renderer/platform/wtf/assertions.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -19,8 +20,8 @@ return reflection_.MapRect(rect); } -TextStream& FEBoxReflect::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEBoxReflect::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { // Only called for SVG layout tree printing. NOTREACHED(); return ts;
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.h b/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.h index 9127df94..f7227790 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_box_reflect.h
@@ -19,7 +19,8 @@ } // FilterEffect implementation - TextStream& ExternalRepresentation(TextStream&, int indentation) const final; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indentation) const final; private: FEBoxReflect(Filter*, const BoxReflection&);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.cc b/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.cc index ee82ceb2..78384c9 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.cc
@@ -26,7 +26,7 @@ #include "SkColorFilterImageFilter.h" #include "SkColorMatrixFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -161,7 +161,8 @@ &rect); } -static TextStream& operator<<(TextStream& ts, const ColorMatrixType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const ColorMatrixType& type) { switch (type) { case FECOLORMATRIX_TYPE_UNKNOWN: ts << "UNKNOWN"; @@ -199,8 +200,8 @@ return false; } -TextStream& FEColorMatrix::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEColorMatrix::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feColorMatrix"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.h b/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.h index a267d398..2cd73e87 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_color_matrix.h
@@ -46,7 +46,8 @@ const Vector<float>& Values() const; bool SetValues(const Vector<float>&); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; static inline void CalculateSaturateComponents(float* components, float value);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.cc b/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.cc index 281527b..ba73a1f8 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.cc
@@ -27,8 +27,8 @@ #include <algorithm> #include "SkTableColorFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -167,8 +167,8 @@ } } -static TextStream& operator<<(TextStream& ts, - const ComponentTransferType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const ComponentTransferType& type) { switch (type) { case FECOMPONENTTRANSFER_TYPE_UNKNOWN: ts << "UNKNOWN"; @@ -192,8 +192,8 @@ return ts; } -static TextStream& operator<<(TextStream& ts, - const ComponentTransferFunction& function) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const ComponentTransferFunction& function) { ts << "type=\"" << function.type << "\" slope=\"" << function.slope << "\" intercept=\"" << function.intercept << "\" amplitude=\"" << function.amplitude << "\" exponent=\"" << function.exponent @@ -201,8 +201,9 @@ return ts; } -TextStream& FEComponentTransfer::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEComponentTransfer::ExternalRepresentation( + WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feComponentTransfer"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h b/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h index 278fe470..74738c4d 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h
@@ -67,7 +67,8 @@ const ComponentTransferFunction& blue_func, const ComponentTransferFunction& alpha_func); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEComponentTransfer(Filter*,
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_composite.cc b/third_party/blink/renderer/platform/graphics/filters/fe_composite.cc index 047e93f7..b62ac9f 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_composite.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_composite.cc
@@ -29,7 +29,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -210,8 +210,8 @@ std::move(foreground), &crop_rect); } -static TextStream& operator<<(TextStream& ts, - const CompositeOperationType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const CompositeOperationType& type) { switch (type) { case FECOMPOSITE_OPERATOR_UNKNOWN: ts << "UNKNOWN"; @@ -241,8 +241,8 @@ return ts; } -TextStream& FEComposite::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEComposite::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feComposite"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_composite.h b/third_party/blink/renderer/platform/graphics/filters/fe_composite.h index 5a469c4..3841eb7 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_composite.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_composite.h
@@ -63,7 +63,8 @@ float K4() const; bool SetK4(float); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; protected: bool MayProduceInvalidPreMultipliedPixels() override {
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.cc b/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.cc index d9ac47a..c09fd84 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.cc
@@ -27,8 +27,8 @@ #include <memory> #include "SkMatrixConvolutionImageFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/checked_numeric.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -160,7 +160,8 @@ std::move(input), &crop_rect); } -static TextStream& operator<<(TextStream& ts, const EdgeModeType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const EdgeModeType& type) { switch (type) { case EDGEMODE_UNKNOWN: ts << "UNKNOWN"; @@ -178,8 +179,8 @@ return ts; } -TextStream& FEConvolveMatrix::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEConvolveMatrix::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feConvolveMatrix"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h b/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h index f53f6d9..615e29cf 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h
@@ -56,7 +56,8 @@ bool SetEdgeMode(EdgeModeType); bool SetPreserveAlpha(bool); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEConvolveMatrix(Filter*,
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.cc b/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.cc index 69459d5..344387f8 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.cc
@@ -23,7 +23,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.h" #include "third_party/blink/renderer/platform/graphics/filters/light_source.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -96,8 +96,8 @@ light_source_ = std::move(light_source); } -TextStream& FEDiffuseLighting::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEDiffuseLighting::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feDiffuseLighting"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.h b/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.h index a29cdf61..8c57b15 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_diffuse_lighting.h
@@ -50,7 +50,8 @@ const LightSource* GetLightSource() const; void SetLightSource(scoped_refptr<LightSource>); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEDiffuseLighting(Filter*,
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.cc b/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.cc index 3515d88a..79d35126 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.cc
@@ -27,7 +27,7 @@ #include "SkDisplacementMapEffect.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -137,7 +137,8 @@ std::move(displ), std::move(color), &crop_rect); } -static TextStream& operator<<(TextStream& ts, const ChannelSelectorType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const ChannelSelectorType& type) { switch (type) { case CHANNEL_UNKNOWN: ts << "UNKNOWN"; @@ -158,8 +159,8 @@ return ts; } -TextStream& FEDisplacementMap::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEDisplacementMap::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feDisplacementMap"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.h b/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.h index cd99d19e..a224f92a 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_displacement_map.h
@@ -51,7 +51,8 @@ float Scale() const; bool SetScale(float); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEDisplacementMap(Filter*,
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.cc b/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.cc index cad2564..11399577 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.cc
@@ -23,7 +23,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/skia/include/effects/SkDropShadowImageFilter.h" namespace blink { @@ -91,8 +91,8 @@ std::move(input), &crop_rect); } -TextStream& FEDropShadow::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEDropShadow::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feDropShadow"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.h b/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.h index 6b169026..bbdf283 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_drop_shadow.h
@@ -40,7 +40,8 @@ void SetShadowColor(const Color& color) { shadow_color_ = color; } void SetShadowOpacity(float opacity) { shadow_opacity_ = opacity; } - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEDropShadow(Filter*, float, float, float, float, const Color&, float);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_flood.cc b/third_party/blink/renderer/platform/graphics/filters/fe_flood.cc index e3b09cc..27d749cd 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_flood.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_flood.cc
@@ -25,7 +25,7 @@ #include "SkColorFilter.h" #include "SkColorFilterImageFilter.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -72,7 +72,8 @@ &rect); } -TextStream& FEFlood::ExternalRepresentation(TextStream& ts, int indent) const { +WTF::TextStream& FEFlood::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feFlood"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_flood.h b/third_party/blink/renderer/platform/graphics/filters/fe_flood.h index 8f049fc..6ebaae3 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_flood.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_flood.h
@@ -43,7 +43,8 @@ // color-interpolation-filters. void SetOperatingInterpolationSpace(InterpolationSpace) override {} - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEFlood(Filter*, const Color&, float);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.cc b/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.cc index 7f6eb5e..f04200b8 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.cc
@@ -27,7 +27,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "SkBlurImageFilter.h" @@ -92,8 +92,8 @@ &rect); } -TextStream& FEGaussianBlur::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEGaussianBlur::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feGaussianBlur"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.h b/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.h index 55ea8f34..73ec88b 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_gaussian_blur.h
@@ -35,7 +35,8 @@ // blur effect with |stdDeviation| to an area |rect|. static FloatRect MapEffect(const FloatSize& std_deviation, const FloatRect&); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEGaussianBlur(Filter*, float, float);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_merge.cc b/third_party/blink/renderer/platform/graphics/filters/fe_merge.cc index d587315..57aec41 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_merge.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_merge.cc
@@ -25,7 +25,7 @@ #include <memory> #include "SkMergeImageFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -47,7 +47,8 @@ return sk_make_sp<MergePaintFilter>(input_refs.get(), size, &rect); } -TextStream& FEMerge::ExternalRepresentation(TextStream& ts, int indent) const { +WTF::TextStream& FEMerge::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feMerge"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_merge.h b/third_party/blink/renderer/platform/graphics/filters/fe_merge.h index a5ffee7..0577157d 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_merge.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_merge.h
@@ -31,7 +31,8 @@ public: static FEMerge* Create(Filter*); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: explicit FEMerge(Filter*);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_morphology.cc b/third_party/blink/renderer/platform/graphics/filters/fe_morphology.cc index b95c0dd..40842ec 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_morphology.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_morphology.cc
@@ -27,7 +27,7 @@ #include "SkMorphologyImageFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -103,8 +103,8 @@ std::move(input), &rect); } -static TextStream& operator<<(TextStream& ts, - const MorphologyOperatorType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const MorphologyOperatorType& type) { switch (type) { case FEMORPHOLOGY_OPERATOR_UNKNOWN: ts << "UNKNOWN"; @@ -119,8 +119,8 @@ return ts; } -TextStream& FEMorphology::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FEMorphology::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feMorphology"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_morphology.h b/third_party/blink/renderer/platform/graphics/filters/fe_morphology.h index a711006f..93b7048 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_morphology.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_morphology.h
@@ -48,7 +48,8 @@ float RadiusY() const; bool SetRadiusY(float); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEMorphology(Filter*, MorphologyOperatorType, float radius_x, float radius_y);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_offset.cc b/third_party/blink/renderer/platform/graphics/filters/fe_offset.cc index 9910549d..01236fd 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_offset.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_offset.cc
@@ -27,7 +27,7 @@ #include "SkOffsetImageFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -71,7 +71,8 @@ &crop_rect); } -TextStream& FEOffset::ExternalRepresentation(TextStream& ts, int indent) const { +WTF::TextStream& FEOffset::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feOffset"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_offset.h b/third_party/blink/renderer/platform/graphics/filters/fe_offset.h index 3a57114..2a45624 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_offset.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_offset.h
@@ -37,7 +37,8 @@ float Dy() const; void SetDy(float); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FEOffset(Filter*, float dx, float dy);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.cc b/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.cc index 9eab482e..427ef67 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.cc
@@ -24,8 +24,8 @@ #include <algorithm> #include "third_party/blink/renderer/platform/graphics/filters/light_source.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -113,8 +113,8 @@ light_source_ = std::move(light_source); } -TextStream& FESpecularLighting::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FESpecularLighting::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feSpecularLighting"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.h b/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.h index 2a0ea37..da68cb2 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_specular_lighting.h
@@ -52,7 +52,8 @@ const LightSource* GetLightSource() const; void SetLightSource(scoped_refptr<LightSource>); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FESpecularLighting(Filter*,
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_tile.cc b/third_party/blink/renderer/platform/graphics/filters/fe_tile.cc index 3b4d8bb93..31292c4 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_tile.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_tile.cc
@@ -24,7 +24,7 @@ #include "SkTileImageFilter.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -53,7 +53,8 @@ return sk_make_sp<TilePaintFilter>(src_rect, dst_rect, std::move(input)); } -TextStream& FETile::ExternalRepresentation(TextStream& ts, int indent) const { +WTF::TextStream& FETile::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feTile"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_tile.h b/third_party/blink/renderer/platform/graphics/filters/fe_tile.h index 7a40b03..29c4cbf 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_tile.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_tile.h
@@ -31,7 +31,8 @@ public: static FETile* Create(Filter*); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FETile(Filter*);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.cc b/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.cc index 94d60f6..da06cba 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.cc +++ b/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.cc
@@ -28,7 +28,7 @@ #include "SkPaintImageFilter.h" #include "SkPerlinNoiseShader.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -148,7 +148,8 @@ StitchTiles() ? &size : nullptr, &rect); } -static TextStream& operator<<(TextStream& ts, const TurbulenceType& type) { +static WTF::TextStream& operator<<(WTF::TextStream& ts, + const TurbulenceType& type) { switch (type) { case FETURBULENCE_TYPE_UNKNOWN: ts << "UNKNOWN"; @@ -163,8 +164,8 @@ return ts; } -TextStream& FETurbulence::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& FETurbulence::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[feTurbulence"; FilterEffect::ExternalRepresentation(ts);
diff --git a/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h b/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h index 8edb1a7..8f07b2d 100644 --- a/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h +++ b/third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h
@@ -58,7 +58,8 @@ bool StitchTiles() const; bool SetStitchTiles(bool); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: FETurbulence(Filter*, TurbulenceType, float, float, int, float, bool);
diff --git a/third_party/blink/renderer/platform/graphics/filters/filter_effect.cc b/third_party/blink/renderer/platform/graphics/filters/filter_effect.cc index 0af548ed95..f440f58 100644 --- a/third_party/blink/renderer/platform/graphics/filters/filter_effect.cc +++ b/third_party/blink/renderer/platform/graphics/filters/filter_effect.cc
@@ -108,7 +108,8 @@ device_color, OperatingInterpolationSpace()); } -TextStream& FilterEffect::ExternalRepresentation(TextStream& ts, int) const { +WTF::TextStream& FilterEffect::ExternalRepresentation(WTF::TextStream& ts, + int) const { // FIXME: We should dump the subRegions of the filter primitives here later. // This isn't possible at the moment, because we need more detailed // information from the target object.
diff --git a/third_party/blink/renderer/platform/graphics/filters/filter_effect.h b/third_party/blink/renderer/platform/graphics/filters/filter_effect.h index 7bb18ff..70856a53 100644 --- a/third_party/blink/renderer/platform/graphics/filters/filter_effect.h +++ b/third_party/blink/renderer/platform/graphics/filters/filter_effect.h
@@ -30,6 +30,7 @@ #include "third_party/blink/renderer/platform/graphics/paint/paint_filter.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/platform_export.h" +#include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/blink/renderer/platform/wtf/noncopyable.h" #include "third_party/blink/renderer/platform/wtf/vector.h" @@ -37,7 +38,6 @@ class Filter; class FilterEffect; -class TextStream; typedef HeapVector<Member<FilterEffect>> FilterEffectVector; @@ -82,8 +82,8 @@ return kFilterEffectTypeUnknown; } - virtual TextStream& ExternalRepresentation(TextStream&, - int indention = 0) const; + virtual WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention = 0) const; FloatRect FilterPrimitiveSubregion() const { return filter_primitive_subregion_;
diff --git a/third_party/blink/renderer/platform/graphics/filters/light_source.h b/third_party/blink/renderer/platform/graphics/filters/light_source.h index 37ab76d..46dc495 100644 --- a/third_party/blink/renderer/platform/graphics/filters/light_source.h +++ b/third_party/blink/renderer/platform/graphics/filters/light_source.h
@@ -27,6 +27,7 @@ #include "base/memory/scoped_refptr.h" #include "third_party/blink/renderer/platform/geometry/float_point_3d.h" #include "third_party/blink/renderer/platform/platform_export.h" +#include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/blink/renderer/platform/wtf/noncopyable.h" #include "third_party/blink/renderer/platform/wtf/ref_counted.h" @@ -34,8 +35,6 @@ enum LightType { LS_DISTANT, LS_POINT, LS_SPOT }; -class TextStream; - class PLATFORM_EXPORT LightSource : public RefCounted<LightSource> { WTF_MAKE_NONCOPYABLE(LightSource); @@ -45,7 +44,7 @@ virtual ~LightSource(); LightType GetType() const { return type_; } - virtual TextStream& ExternalRepresentation(TextStream&) const = 0; + virtual WTF::TextStream& ExternalRepresentation(WTF::TextStream&) const = 0; virtual bool SetAzimuth(float) { return false; } virtual bool SetElevation(float) { return false; }
diff --git a/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.cc b/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.cc index 588d27e4..6686196 100644 --- a/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.cc +++ b/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/skia/include/effects/SkPaintImageFilter.h" namespace blink { @@ -26,8 +26,8 @@ return sk_make_sp<PaintFlagsPaintFilter>(flags_); } -TextStream& PaintFilterEffect::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& PaintFilterEffect::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[PaintFilterEffect]\n"; return ts;
diff --git a/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.h b/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.h index f320efe..599f5cc1 100644 --- a/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.h +++ b/third_party/blink/renderer/platform/graphics/filters/paint_filter_effect.h
@@ -19,7 +19,8 @@ return kFilterEffectTypeSourceInput; } - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; sk_sp<PaintFilter> CreateImageFilter() override; private:
diff --git a/third_party/blink/renderer/platform/graphics/filters/point_light_source.cc b/third_party/blink/renderer/platform/graphics/filters/point_light_source.cc index 2c6f4f11..d604524 100644 --- a/third_party/blink/renderer/platform/graphics/filters/point_light_source.cc +++ b/third_party/blink/renderer/platform/graphics/filters/point_light_source.cc
@@ -30,7 +30,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/point_light_source.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -41,7 +41,8 @@ return true; } -TextStream& PointLightSource::ExternalRepresentation(TextStream& ts) const { +WTF::TextStream& PointLightSource::ExternalRepresentation( + WTF::TextStream& ts) const { ts << "[type=POINT-LIGHT] "; ts << "[position=\"" << GetPosition() << "\"]"; return ts;
diff --git a/third_party/blink/renderer/platform/graphics/filters/point_light_source.h b/third_party/blink/renderer/platform/graphics/filters/point_light_source.h index 5e4d6256..5c89bf915 100644 --- a/third_party/blink/renderer/platform/graphics/filters/point_light_source.h +++ b/third_party/blink/renderer/platform/graphics/filters/point_light_source.h
@@ -36,7 +36,7 @@ const FloatPoint3D& GetPosition() const { return position_; } bool SetPosition(const FloatPoint3D&) override; - TextStream& ExternalRepresentation(TextStream&) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&) const override; private: PointLightSource(const FloatPoint3D& position)
diff --git a/third_party/blink/renderer/platform/graphics/filters/source_alpha.cc b/third_party/blink/renderer/platform/graphics/filters/source_alpha.cc index 5ea8cde..0d08d1e 100644 --- a/third_party/blink/renderer/platform/graphics/filters/source_alpha.cc +++ b/third_party/blink/renderer/platform/graphics/filters/source_alpha.cc
@@ -22,7 +22,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/filter.h" #include "third_party/blink/renderer/platform/graphics/filters/paint_filter_builder.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/skia/include/effects/SkColorFilterImageFilter.h" #include "third_party/skia/include/effects/SkColorMatrixFilter.h" @@ -50,8 +50,8 @@ std::move(source_graphic)); } -TextStream& SourceAlpha::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& SourceAlpha::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[SourceAlpha]\n"; return ts;
diff --git a/third_party/blink/renderer/platform/graphics/filters/source_alpha.h b/third_party/blink/renderer/platform/graphics/filters/source_alpha.h index fedadb1..6b4cd7ad 100644 --- a/third_party/blink/renderer/platform/graphics/filters/source_alpha.h +++ b/third_party/blink/renderer/platform/graphics/filters/source_alpha.h
@@ -29,7 +29,8 @@ public: static SourceAlpha* Create(FilterEffect*); - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; private: explicit SourceAlpha(FilterEffect*);
diff --git a/third_party/blink/renderer/platform/graphics/filters/source_graphic.cc b/third_party/blink/renderer/platform/graphics/filters/source_graphic.cc index 02b0bf8..d06b534d 100644 --- a/third_party/blink/renderer/platform/graphics/filters/source_graphic.cc +++ b/third_party/blink/renderer/platform/graphics/filters/source_graphic.cc
@@ -21,7 +21,7 @@ #include "third_party/blink/renderer/platform/graphics/filters/source_graphic.h" #include "third_party/blink/renderer/platform/graphics/filters/filter.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -43,8 +43,8 @@ source_rect_ = source_rect; } -TextStream& SourceGraphic::ExternalRepresentation(TextStream& ts, - int indent) const { +WTF::TextStream& SourceGraphic::ExternalRepresentation(WTF::TextStream& ts, + int indent) const { WriteIndent(ts, indent); ts << "[SourceGraphic]\n"; return ts;
diff --git a/third_party/blink/renderer/platform/graphics/filters/source_graphic.h b/third_party/blink/renderer/platform/graphics/filters/source_graphic.h index 0e06362..753b71a 100644 --- a/third_party/blink/renderer/platform/graphics/filters/source_graphic.h +++ b/third_party/blink/renderer/platform/graphics/filters/source_graphic.h
@@ -32,7 +32,8 @@ static SourceGraphic* Create(Filter*); ~SourceGraphic() override; - TextStream& ExternalRepresentation(TextStream&, int indention) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&, + int indention) const override; void SetSourceRect(const IntRect&);
diff --git a/third_party/blink/renderer/platform/graphics/filters/spot_light_source.cc b/third_party/blink/renderer/platform/graphics/filters/spot_light_source.cc index a47abed..c694e4b2 100644 --- a/third_party/blink/renderer/platform/graphics/filters/spot_light_source.cc +++ b/third_party/blink/renderer/platform/graphics/filters/spot_light_source.cc
@@ -31,8 +31,8 @@ #include "third_party/blink/renderer/platform/graphics/filters/spot_light_source.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" namespace blink { @@ -65,7 +65,8 @@ return true; } -TextStream& SpotLightSource::ExternalRepresentation(TextStream& ts) const { +WTF::TextStream& SpotLightSource::ExternalRepresentation( + WTF::TextStream& ts) const { ts << "[type=SPOT-LIGHT] "; ts << "[position=\"" << GetPosition() << "\"]"; ts << "[direction=\"" << Direction() << "\"]";
diff --git a/third_party/blink/renderer/platform/graphics/filters/spot_light_source.h b/third_party/blink/renderer/platform/graphics/filters/spot_light_source.h index 463b0c0..7ae7b63 100644 --- a/third_party/blink/renderer/platform/graphics/filters/spot_light_source.h +++ b/third_party/blink/renderer/platform/graphics/filters/spot_light_source.h
@@ -49,7 +49,7 @@ bool SetSpecularExponent(float) override; bool SetLimitingConeAngle(float) override; - TextStream& ExternalRepresentation(TextStream&) const override; + WTF::TextStream& ExternalRepresentation(WTF::TextStream&) const override; private: SpotLightSource(const FloatPoint3D& position,
diff --git a/third_party/blink/renderer/platform/graphics/graphics_layer.cc b/third_party/blink/renderer/platform/graphics/graphics_layer.cc index e67a1c0..611c686 100644 --- a/third_party/blink/renderer/platform/graphics/graphics_layer.cc +++ b/third_party/blink/renderer/platform/graphics/graphics_layer.cc
@@ -67,11 +67,11 @@ #include "third_party/blink/renderer/platform/json/json_values.h" #include "third_party/blink/renderer/platform/scroll/scroll_snap_data.h" #include "third_party/blink/renderer/platform/scroll/scrollable_area.h" -#include "third_party/blink/renderer/platform/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/hash_map.h" #include "third_party/blink/renderer/platform/wtf/hash_set.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" #include "third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/time.h" #include "third_party/skia/include/core/SkMatrix44.h" @@ -650,7 +650,7 @@ } static String PointerAsString(const void* ptr) { - TextStream ts; + WTF::TextStream ts; ts << ptr; return ts.Release(); }
diff --git a/third_party/blink/renderer/platform/heap/heap_allocator.h b/third_party/blink/renderer/platform/heap/heap_allocator.h index 58e6656..814264b 100644 --- a/third_party/blink/renderer/platform/heap/heap_allocator.h +++ b/third_party/blink/renderer/platform/heap/heap_allocator.h
@@ -128,6 +128,10 @@ static void FreeHashTableBacking(void* address, bool is_weak_table); static bool ExpandHashTableBacking(void*, size_t); + static void TraceMarkedBackingStore(void* address) { + MarkingVisitor::TraceMarkedBackingStore(address); + } + static void BackingWriteBarrier(void* address) { MarkingVisitor::WriteBarrier(address); }
diff --git a/third_party/blink/renderer/platform/heap/marking_visitor.h b/third_party/blink/renderer/platform/heap/marking_visitor.h index 5ab37498..660a3598 100644 --- a/third_party/blink/renderer/platform/heap/marking_visitor.h +++ b/third_party/blink/renderer/platform/heap/marking_visitor.h
@@ -35,8 +35,17 @@ static std::unique_ptr<MarkingVisitor> Create(ThreadState*, MarkingMode); + // Write barrier that adds |value| to the set of marked objects. The barrier + // bails out if marking is off or the object is not yet marked. inline static void WriteBarrier(void* value); + // Eagerly traces an already marked backing store ensuring that all its + // children are discovered by the marker. The barrier bails out if marking + // is off and on individual objects reachable if they are already marked. The + // barrier uses the callback function through GcInfo, so it will not inline + // any templated type-specific code. + inline static void TraceMarkedBackingStore(void* value); + MarkingVisitor(ThreadState*, MarkingMode); ~MarkingVisitor() override; @@ -186,6 +195,30 @@ #endif // BUILDFLAG(BLINK_HEAP_INCREMENTAL_MARKING) } +inline void MarkingVisitor::TraceMarkedBackingStore(void* value) { +#if BUILDFLAG(BLINK_HEAP_INCREMENTAL_MARKING) + if (!ThreadState::IsAnyIncrementalMarking() || !value) + return; + + ThreadState* const thread_state = ThreadState::Current(); + if (!thread_state->IsIncrementalMarking()) + return; + + // |value| is pointing to the start of a backing store. + HeapObjectHeader* header = HeapObjectHeader::FromPayload(value); + CHECK(header->IsMarked()); + DCHECK(thread_state->CurrentVisitor()); + // This check ensures that the visitor will not eagerly recurse into children + // but rather push all blink::GarbageCollected objects and only eagerly trace + // non-managed objects. + DCHECK(!thread_state->Heap().GetStackFrameDepth().IsEnabled()); + // No weak handling for write barriers. Modifying weakly reachable objects + // strongifies them for the current cycle. + ThreadHeap::GcInfo(header->GcInfoIndex()) + ->trace_(thread_state->CurrentVisitor(), value); +#endif // BUILDFLAG(BLINK_HEAP_INCREMENTAL_MARKING) +} + } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_MARKING_VISITOR_H_
diff --git a/third_party/blink/renderer/platform/layout_unit.cc b/third_party/blink/renderer/platform/layout_unit.cc index 3a0936da..e27c262 100644 --- a/third_party/blink/renderer/platform/layout_unit.cc +++ b/third_party/blink/renderer/platform/layout_unit.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/platform/layout_unit.h" #include <ostream> +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -25,4 +26,8 @@ return stream << value.ToString(); } +WTF::TextStream& operator<<(WTF::TextStream& ts, const LayoutUnit& unit) { + return ts << WTF::TextStream::FormatNumberRespectingIntegers(unit.ToDouble()); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/layout_unit.h b/third_party/blink/renderer/platform/layout_unit.h index d9cd9b5..7291a446 100644 --- a/third_party/blink/renderer/platform/layout_unit.h +++ b/third_party/blink/renderer/platform/layout_unit.h
@@ -711,6 +711,8 @@ } PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const LayoutUnit&); +PLATFORM_EXPORT WTF::TextStream& operator<<(WTF::TextStream&, + const LayoutUnit&); } // namespace blink
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h index 110f6ba..5ed4a1b9 100644 --- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
@@ -36,6 +36,7 @@ #include "services/network/public/mojom/request_context_frame_type.mojom-shared.h" #include "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/public/platform/resource_request_blocked_reason.h" #include "third_party/blink/public/platform/web_application_cache_host.h" #include "third_party/blink/public/platform/web_url_loader.h" #include "third_party/blink/public/platform/web_url_request.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc index 88a956d4..13ff1ee1 100644 --- a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.cc
@@ -37,7 +37,6 @@ : resource_request_(resource_request), decoder_options_(TextResourceDecoderOptions::kPlainTextContent), speculative_preload_type_(SpeculativePreloadType::kNotSpeculative), - preload_discovery_time_(0.0), defer_(kNoDefer), origin_restriction_(kUseDefaultOriginRestrictionForType), placeholder_image_request_type_(kDisallowPlaceholder) {} @@ -48,7 +47,6 @@ decoder_options_(data->decoder_options), options_(data->options), speculative_preload_type_(data->speculative_preload_type), - preload_discovery_time_(data->preload_discovery_time), defer_(data->defer), origin_restriction_(data->origin_restriction), resource_width_(data->resource_width), @@ -61,7 +59,6 @@ decoder_options_(TextResourceDecoderOptions::kPlainTextContent), options_(options), speculative_preload_type_(SpeculativePreloadType::kNotSpeculative), - preload_discovery_time_(0.0), defer_(kNoDefer), origin_restriction_(kUseDefaultOriginRestrictionForType), placeholder_image_request_type_(kDisallowPlaceholder) {} @@ -115,7 +112,6 @@ SpeculativePreloadType speculative_preload_type, double discovery_time) { speculative_preload_type_ = speculative_preload_type; - preload_discovery_time_ = discovery_time; } void FetchParameters::MakeSynchronous() { @@ -164,7 +160,6 @@ data->decoder_options = decoder_options_; data->options = CrossThreadResourceLoaderOptionsData(options_); data->speculative_preload_type = speculative_preload_type_; - data->preload_discovery_time = preload_discovery_time_; data->defer = defer_; data->origin_restriction = origin_restriction_; data->resource_width = resource_width_;
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h index 5c452dfb..3948868 100644 --- a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h
@@ -134,8 +134,6 @@ void SetSpeculativePreloadType(SpeculativePreloadType, double discovery_time = 0); - double PreloadDiscoveryTime() const { return preload_discovery_time_; } - bool IsLinkPreload() const { return options_.initiator_info.is_link_preload; } void SetLinkPreload(bool is_link_preload) { options_.initiator_info.is_link_preload = is_link_preload; @@ -203,7 +201,6 @@ TextResourceDecoderOptions decoder_options_; ResourceLoaderOptions options_; SpeculativePreloadType speculative_preload_type_; - double preload_discovery_time_; DeferOption defer_; OriginRestriction origin_restriction_; ResourceWidth resource_width_; @@ -232,7 +229,6 @@ TextResourceDecoderOptions decoder_options; CrossThreadResourceLoaderOptionsData options; FetchParameters::SpeculativePreloadType speculative_preload_type; - double preload_discovery_time; FetchParameters::DeferOption defer; FetchParameters::OriginRestriction origin_restriction; FetchParameters::ResourceWidth resource_width;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.cc b/third_party/blink/renderer/platform/loader/fetch/resource.cc index 4f0b78b..0dbbd999 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource.cc
@@ -187,7 +187,6 @@ : type_(type), status_(ResourceStatus::kNotStarted), identifier_(0), - preload_discovery_time_(0.0), encoded_size_(0), encoded_size_memory_usage_(0), decoded_size_(0), @@ -518,15 +517,6 @@ void Resource::ResponseReceived(const ResourceResponse& response, std::unique_ptr<WebDataConsumerHandle>) { response_timestamp_ = CurrentTime(); - if (preload_discovery_time_) { - int time_since_discovery = static_cast<int>( - 1000 * (CurrentTimeTicksInSeconds() - preload_discovery_time_)); - DEFINE_STATIC_LOCAL(CustomCountHistogram, - preload_discovery_to_first_byte_histogram, - ("PreloadScanner.TTFB", 0, 10000, 50)); - preload_discovery_to_first_byte_histogram.Count(time_since_discovery); - } - if (is_revalidating_) { if (response.HttpStatusCode() == 304) { RevalidationSucceeded(response); @@ -1022,14 +1012,6 @@ base::SingleThreadTaskRunner*) { DCHECK(is_unused_preload_); is_unused_preload_ = false; - - if (preload_discovery_time_) { - int time_since_discovery = static_cast<int>( - 1000 * (CurrentTimeTicksInSeconds() - preload_discovery_time_)); - DEFINE_STATIC_LOCAL(CustomCountHistogram, preload_discovery_histogram, - ("PreloadScanner.ReferenceTime", 0, 10000, 50)); - preload_discovery_histogram.Count(time_since_discovery); - } return true; }
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.h b/third_party/blink/renderer/platform/loader/fetch/resource.h index 4e94163e..0574fb70 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource.h
@@ -128,10 +128,6 @@ void SetLinkPreload(bool is_link_preload) { link_preload_ = is_link_preload; } bool IsLinkPreload() const { return link_preload_; } - void SetPreloadDiscoveryTime(double preload_discovery_time) { - preload_discovery_time_ = preload_discovery_time; - } - const ResourceError& GetResourceError() const { DCHECK(error_); return *error_; @@ -499,8 +495,6 @@ unsigned long identifier_; - double preload_discovery_time_; - size_t encoded_size_; size_t encoded_size_memory_usage_; size_t decoded_size_;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_error.cc b/third_party/blink/renderer/platform/loader/fetch/resource_error.cc index 2738831..10e33e1d 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_error.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_error.cc
@@ -28,6 +28,7 @@ #include "net/base/net_errors.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/public/platform/resource_request_blocked_reason.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url_error.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc index f93e910..8bd77ea 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -975,9 +975,6 @@ Resource* resource = factory.Create( params.GetResourceRequest(), params.Options(), params.DecoderOptions()); resource->SetLinkPreload(params.IsLinkPreload()); - if (params.IsSpeculativePreload()) { - resource->SetPreloadDiscoveryTime(params.PreloadDiscoveryTime()); - } resource->SetCacheIdentifier(cache_identifier); resource->SetSourceOrigin(GetSourceOrigin(params.Options()));
diff --git a/third_party/blink/renderer/platform/mojo/DEPS b/third_party/blink/renderer/platform/mojo/DEPS index 294890d..de0e119 100644 --- a/third_party/blink/renderer/platform/mojo/DEPS +++ b/third_party/blink/renderer/platform/mojo/DEPS
@@ -18,6 +18,7 @@ "+skia/public/interfaces/bitmap_skbitmap_struct_traits.h", "+third_party/blink/renderer/platform/blob/blob_data.h", + "+third_party/blink/renderer/platform/blob/serialized_blob_struct_traits.h", "+third_party/blink/renderer/platform/platform_export.h", "+third_party/blink/renderer/platform/weborigin", "+third_party/blink/renderer/platform/wtf",
diff --git a/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.cc b/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.cc index 1614f4f0..2d2ee6b 100644 --- a/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.cc +++ b/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.cc
@@ -8,7 +8,7 @@ #include "mojo/public/cpp/bindings/string_traits_wtf.h" #include "services/network/public/mojom/fetch_api.mojom-blink.h" #include "third_party/blink/public/platform/web_referrer_policy.h" -#include "third_party/blink/renderer/platform/blob/blob_data.h" +#include "third_party/blink/renderer/platform/blob/serialized_blob_struct_traits.h" #include "third_party/blink/renderer/platform/mojo/kurl_struct_traits.h" #include "third_party/blink/renderer/platform/mojo/referrer_struct_traits.h" #include "third_party/blink/renderer/platform/weborigin/referrer.h" @@ -239,36 +239,11 @@ } // static -WTF::String StructTraits<blink::mojom::FetchAPIRequestDataView, - blink::WebServiceWorkerRequest>:: - blob_uuid(const blink::WebServiceWorkerRequest& request) { - if (request.GetBlobDataHandle()) - return request.GetBlobDataHandle()->Uuid(); - - return WTF::String(); -} - -// static -uint64_t StructTraits<blink::mojom::FetchAPIRequestDataView, - blink::WebServiceWorkerRequest>:: - blob_size(const blink::WebServiceWorkerRequest& request) { - if (request.GetBlobDataHandle()) - return request.GetBlobDataHandle()->size(); - - return 0; -} - -// static -blink::mojom::blink::BlobPtr StructTraits<blink::mojom::FetchAPIRequestDataView, - blink::WebServiceWorkerRequest>:: - blob(const blink::WebServiceWorkerRequest& request) { - if (request.GetBlobDataHandle()) { - blink::mojom::blink::BlobPtr result = - request.GetBlobDataHandle()->CloneBlobPtr(); - return result; - } - - return nullptr; +scoped_refptr<blink::BlobDataHandle> StructTraits< + blink::mojom::FetchAPIRequestDataView, + blink::WebServiceWorkerRequest>::blob(const blink::WebServiceWorkerRequest& + request) { + return request.GetBlobDataHandle(); } // static @@ -296,8 +271,7 @@ blink::KURL url; WTF::String method; WTF::HashMap<WTF::String, WTF::String> headers; - WTF::String blobUuid; - blink::mojom::blink::BlobPtr blob; + scoped_refptr<blink::BlobDataHandle> blob; blink::Referrer referrer; network::mojom::FetchCredentialsMode credentialsMode; network::mojom::FetchRedirectMode redirectMode; @@ -307,7 +281,7 @@ if (!data.ReadMode(&mode) || !data.ReadRequestContextType(&requestContext) || !data.ReadFrameType(&frameType) || !data.ReadUrl(&url) || !data.ReadMethod(&method) || !data.ReadHeaders(&headers) || - !data.ReadBlobUuid(&blobUuid) || !data.ReadReferrer(&referrer) || + !data.ReadBlob(&blob) || !data.ReadReferrer(&referrer) || !data.ReadCredentialsMode(&credentialsMode) || !data.ReadRedirectMode(&redirectMode) || !data.ReadClientId(&clientId) || !data.ReadIntegrity(&integrity)) { @@ -322,8 +296,7 @@ out->SetMethod(method); for (const auto& pair : headers) out->SetHeader(pair.key, pair.value); - out->SetBlob(blobUuid, static_cast<long long>(data.blob_size()), - data.TakeBlob<blink::mojom::blink::BlobPtr>().PassInterface()); + out->SetBlobDataHandle(blob); out->SetReferrer(referrer.referrer, static_cast<blink::WebReferrerPolicy>( referrer.referrer_policy)); out->SetCredentialsMode(credentialsMode);
diff --git a/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.h b/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.h index 0bfcd45..108156c 100644 --- a/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.h +++ b/third_party/blink/renderer/platform/mojo/fetch_api_request_struct_traits.h
@@ -55,11 +55,7 @@ static WTF::HashMap<WTF::String, WTF::String> headers( const ::blink::WebServiceWorkerRequest&); - static WTF::String blob_uuid(const ::blink::WebServiceWorkerRequest&); - - static uint64_t blob_size(const ::blink::WebServiceWorkerRequest&); - - static blink::mojom::blink::BlobPtr blob( + static scoped_refptr<::blink::BlobDataHandle> blob( const ::blink::WebServiceWorkerRequest&); static const ::blink::Referrer& referrer(
diff --git a/third_party/blink/renderer/platform/mojo/referrer_struct_traits.h b/third_party/blink/renderer/platform/mojo/referrer_struct_traits.h index fa898aa3..6ae5f2d 100644 --- a/third_party/blink/renderer/platform/mojo/referrer_struct_traits.h +++ b/third_party/blink/renderer/platform/mojo/referrer_struct_traits.h
@@ -35,7 +35,10 @@ out->referrer_policy = static_cast<blink::ReferrerPolicy>(webReferrerPolicy); - out->referrer = AtomicString(referrer.GetString()); + if (referrer.GetString().IsEmpty()) + out->referrer = g_null_atom; + else + out->referrer = AtomicString(referrer.GetString()); // Mimics the DCHECK() done in the blink::Referrer constructor. return referrer.IsValid() || out->referrer == blink::Referrer::NoReferrer();
diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.h b/third_party/blink/renderer/platform/network/network_state_notifier.h index 63238ec4..dd02480 100644 --- a/third_party/blink/renderer/platform/network/network_state_notifier.h +++ b/third_party/blink/renderer/platform/network/network_state_notifier.h
@@ -158,6 +158,9 @@ return state.downlink_throughput_mbps; } + // Returns if the save data functionality has been enabled by the user. + // The returned value does not account for any holdback experiments that may + // be enabled. bool SaveDataEnabled() const { MutexLocker locker(mutex_); const NetworkState& state = has_override_ ? override_ : state_;
diff --git a/third_party/blink/renderer/platform/scroll/scrollbar.cc b/third_party/blink/renderer/platform/scroll/scrollbar.cc index 3eeeac6a..4b885d8 100644 --- a/third_party/blink/renderer/platform/scroll/scrollbar.cc +++ b/third_party/blink/renderer/platform/scroll/scrollbar.cc
@@ -28,7 +28,6 @@ #include <algorithm> #include "third_party/blink/public/platform/web_gesture_event.h" #include "third_party/blink/public/platform/web_mouse_event.h" -#include "third_party/blink/public/platform/web_scrollbar.h" #include "third_party/blink/public/platform/web_scrollbar_overlay_color_theme.h" #include "third_party/blink/renderer/platform/geometry/float_rect.h" #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h" @@ -637,11 +636,6 @@ scrollable_area_->SetScrollbarNeedsPaintInvalidation(Orientation()); } -STATIC_ASSERT_ENUM(WebScrollbar::ScrollingMode::kAuto, kScrollbarAuto); -STATIC_ASSERT_ENUM(WebScrollbar::ScrollingMode::kAlwaysOff, - kScrollbarAlwaysOff); -STATIC_ASSERT_ENUM(WebScrollbar::ScrollingMode::kAlwaysOn, kScrollbarAlwaysOn); - STATIC_ASSERT_ENUM(kWebScrollbarOverlayColorThemeDark, kScrollbarOverlayColorThemeDark); STATIC_ASSERT_ENUM(kWebScrollbarOverlayColorThemeLight,
diff --git a/third_party/blink/renderer/platform/scroll/scrollbar_layer_delegate.cc b/third_party/blink/renderer/platform/scroll/scrollbar_layer_delegate.cc index 9f51af6e..322ef72 100644 --- a/third_party/blink/renderer/platform/scroll/scrollbar_layer_delegate.cc +++ b/third_party/blink/renderer/platform/scroll/scrollbar_layer_delegate.cc
@@ -6,7 +6,6 @@ #include "third_party/blink/public/platform/web_point.h" #include "third_party/blink/public/platform/web_rect.h" -#include "third_party/blink/public/platform/web_scrollbar.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h" #include "third_party/blink/renderer/platform/scroll/scroll_types.h" #include "third_party/blink/renderer/platform/scroll/scrollbar.h"
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc b/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc index 7180dcba..53e4a2f 100644 --- a/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc +++ b/third_party/blink/renderer/platform/testing/testing_platform_support_with_web_rtc.cc
@@ -30,11 +30,11 @@ std::unique_ptr<WebRTCDTMFSenderHandler> GetDtmfSender() const override { return nullptr; } - std::unique_ptr<WebRTCRtpParameters> GetParameters() const override { - return std::unique_ptr<WebRTCRtpParameters>(); + std::unique_ptr<webrtc::RtpParameters> GetParameters() const override { + return std::unique_ptr<webrtc::RtpParameters>(); } - void SetParameters(WebVector<WebRTCRtpEncodingParameters>, - WebRTCDegradationPreference, + void SetParameters(blink::WebVector<webrtc::RtpEncodingParameters>, + webrtc::DegradationPreference, WebRTCVoidRequest) override {} void GetStats(std::unique_ptr<blink::WebRTCStatsReportCallback>) override {}
diff --git a/third_party/blink/renderer/platform/text/DEPS b/third_party/blink/renderer/platform/text/DEPS index 5f1b3f8..979010ee 100644 --- a/third_party/blink/renderer/platform/text/DEPS +++ b/third_party/blink/renderer/platform/text/DEPS
@@ -13,7 +13,6 @@ "+third_party/blink/renderer/platform/language.h", "+third_party/blink/renderer/platform/layout_locale.h", "+third_party/blink/renderer/platform/layout_test_support.h", - "+third_party/blink/renderer/platform/layout_unit.h", "+third_party/blink/renderer/platform/platform_export.h", "+third_party/blink/renderer/platform/runtime_enabled_features.h", "+third_party/blink/renderer/platform/testing",
diff --git a/third_party/blink/renderer/platform/wtf/BUILD.gn b/third_party/blink/renderer/platform/wtf/BUILD.gn index d160ed34..1e471b5 100644 --- a/third_party/blink/renderer/platform/wtf/BUILD.gn +++ b/third_party/blink/renderer/platform/wtf/BUILD.gn
@@ -193,6 +193,8 @@ "text/text_encoding_registry.h", "text/text_position.cc", "text/text_position.h", + "text/text_stream.cc", + "text/text_stream.h", "text/unicode.h", "text/utf8.cc", "text/utf8.h",
diff --git a/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h b/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h index d87e5c9..590dd0b 100644 --- a/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h +++ b/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
@@ -100,6 +100,7 @@ Free(ptr); // Not the system free, the one from this class. } + static void TraceMarkedBackingStore(void*) {} static void BackingWriteBarrier(void*) {} static bool IsAllocationAllowed() { return true; }
diff --git a/third_party/blink/renderer/platform/wtf/forward.h b/third_party/blink/renderer/platform/wtf/forward.h index 70aaf309..0d1ac36 100644 --- a/third_party/blink/renderer/platform/wtf/forward.h +++ b/third_party/blink/renderer/platform/wtf/forward.h
@@ -54,6 +54,7 @@ class StringBuilder; class StringImpl; class StringView; +class TextStream; class Uint8Array; class Uint8ClampedArray; class Uint16Array;
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h index a43fd8a2..7011104 100644 --- a/third_party/blink/renderer/platform/wtf/hash_table.h +++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -534,8 +534,7 @@ STATIC_ONLY(Mover); static void Move(T&& from, T& to) { to.~T(); - ConstructTraits<T, Traits, Allocator>::ConstructAndNotifyElement( - &to, std::move(from)); + new (NotNull, &to) T(std::move(from)); } }; @@ -543,10 +542,9 @@ struct Mover<T, Allocator, Traits, true> { STATIC_ONLY(Mover); static void Move(T&& from, T& to) { - to.~T(); Allocator::EnterGCForbiddenScope(); - ConstructTraits<T, Traits, Allocator>::ConstructAndNotifyElement( - &to, std::move(from)); + to.~T(); + new (NotNull, &to) T(std::move(from)); Allocator::LeaveGCForbiddenScope(); } }; @@ -1758,6 +1756,10 @@ new_entry = reinserted_entry; } } + // Rescan the contents of the backing store as no write barriers were emitted + // during re-insertion. Traits::NeedsToForbidGCOnMove ensures that no + // garbage collection is triggered during moving. + Allocator::TraceMarkedBackingStore(table_); deleted_count_ = 0;
diff --git a/third_party/blink/renderer/platform/text/text_stream.cc b/third_party/blink/renderer/platform/wtf/text/text_stream.cc similarity index 62% rename from third_party/blink/renderer/platform/text/text_stream.cc rename to third_party/blink/renderer/platform/wtf/text/text_stream.cc index cc833aa..80fa175 100644 --- a/third_party/blink/renderer/platform/text/text_stream.cc +++ b/third_party/blink/renderer/platform/wtf/text/text_stream.cc
@@ -23,21 +23,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "third_party/blink/renderer/platform/text/text_stream.h" +#include "third_party/blink/renderer/platform/wtf/text/text_stream.h" -#include "third_party/blink/renderer/platform/geometry/float_point.h" -#include "third_party/blink/renderer/platform/geometry/float_rect.h" -#include "third_party/blink/renderer/platform/geometry/float_size.h" -#include "third_party/blink/renderer/platform/geometry/int_point.h" -#include "third_party/blink/renderer/platform/geometry/int_rect.h" -#include "third_party/blink/renderer/platform/geometry/layout_point.h" -#include "third_party/blink/renderer/platform/geometry/layout_rect.h" -#include "third_party/blink/renderer/platform/geometry/layout_size.h" -#include "third_party/blink/renderer/platform/layout_unit.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" -namespace blink { +namespace WTF { // large enough for any integer or floating point value in string format, // including trailing null character @@ -127,55 +118,9 @@ return result; } -TextStream& operator<<(TextStream& ts, const IntRect& r) { - return ts << "at (" << r.X() << "," << r.Y() << ") size " << r.Width() << "x" - << r.Height(); -} - -TextStream& operator<<(TextStream& ts, const IntPoint& p) { - return ts << "(" << p.X() << "," << p.Y() << ")"; -} - -TextStream& operator<<(TextStream& ts, const FloatPoint& p) { - ts << "(" << TextStream::FormatNumberRespectingIntegers(p.X()); - ts << "," << TextStream::FormatNumberRespectingIntegers(p.Y()); - ts << ")"; - return ts; -} - -TextStream& operator<<(TextStream& ts, const FloatSize& s) { - ts << "width=" << TextStream::FormatNumberRespectingIntegers(s.Width()); - ts << " height=" << TextStream::FormatNumberRespectingIntegers(s.Height()); - return ts; -} - -TextStream& operator<<(TextStream& ts, const FloatRect& r) { - ts << "at (" << TextStream::FormatNumberRespectingIntegers(r.X()); - ts << "," << TextStream::FormatNumberRespectingIntegers(r.Y()); - ts << ") size " << TextStream::FormatNumberRespectingIntegers(r.Width()); - ts << "x" << TextStream::FormatNumberRespectingIntegers(r.Height()); - return ts; -} - -TextStream& operator<<(TextStream& ts, const LayoutUnit& unit) { - return ts << TextStream::FormatNumberRespectingIntegers(unit.ToDouble()); -} - -TextStream& operator<<(TextStream& ts, const LayoutPoint& point) { - return ts << FloatPoint(point); -} - -TextStream& operator<<(TextStream& ts, const LayoutRect& rect) { - return ts << FloatRect(rect); -} - -TextStream& operator<<(TextStream& ts, const LayoutSize& size) { - return ts << FloatSize(size); -} - void WriteIndent(TextStream& ts, int indent) { for (int i = 0; i != indent; ++i) ts << " "; } -} // namespace blink +} // namespace WTF
diff --git a/third_party/blink/renderer/platform/text/text_stream.h b/third_party/blink/renderer/platform/wtf/text/text_stream.h similarity index 69% rename from third_party/blink/renderer/platform/text/text_stream.h rename to third_party/blink/renderer/platform/wtf/text/text_stream.h index 5c7c0c0..13e39d6 100644 --- a/third_party/blink/renderer/platform/text/text_stream.h +++ b/third_party/blink/renderer/platform/wtf/text/text_stream.h
@@ -23,28 +23,18 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_TEXT_STREAM_H_ -#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_TEXT_STREAM_H_ +#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_STREAM_H_ +#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_STREAM_H_ -#include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/blink/renderer/platform/wtf/text/unicode.h" #include "third_party/blink/renderer/platform/wtf/vector.h" +#include "third_party/blink/renderer/platform/wtf/wtf_export.h" -namespace blink { +namespace WTF { -class IntPoint; -class IntRect; -class FloatPoint; -class FloatRect; -class FloatSize; -class LayoutUnit; -class LayoutPoint; -class LayoutRect; -class LayoutSize; - -class PLATFORM_EXPORT TextStream final { +class WTF_EXPORT TextStream final { STACK_ALLOCATED(); public: @@ -73,17 +63,7 @@ StringBuilder text_; }; -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const IntPoint&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const IntRect&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const FloatPoint&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const FloatSize&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const FloatRect&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const LayoutUnit&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const LayoutPoint&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const LayoutRect&); -PLATFORM_EXPORT TextStream& operator<<(TextStream&, const LayoutSize&); - -PLATFORM_EXPORT void WriteIndent(TextStream&, int indent); +WTF_EXPORT void WriteIndent(TextStream&, int indent); template <typename Item> TextStream& operator<<(TextStream& ts, const Vector<Item>& vector) { @@ -100,6 +80,6 @@ return ts; } -} // namespace blink +} // namespace WTF #endif
diff --git a/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h index f9d9b484..47ec996 100644 --- a/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h +++ b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h
@@ -1788,7 +1788,7 @@ /** * @ingroup iface_zcr_notification_surface_v1 */ -#define ZCR_NOTIFICATION_SURFACE_V1_SET_APP_ID_SINCE_VERSION 2 +#define ZCR_NOTIFICATION_SURFACE_V1_SET_APP_ID_SINCE_VERSION 16 /** @ingroup iface_zcr_notification_surface_v1 */ static inline void
diff --git a/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h index 24568d8..7fdfbfa 100644 --- a/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h +++ b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
@@ -1498,7 +1498,7 @@ * set application ID * * Set an application identifier for the notification surface. - * @since 2 + * @since 16 */ void (*set_app_id)(struct wl_client *client, struct wl_resource *resource, @@ -1513,7 +1513,7 @@ /** * @ingroup iface_zcr_notification_surface_v1 */ -#define ZCR_NOTIFICATION_SURFACE_V1_SET_APP_ID_SINCE_VERSION 2 +#define ZCR_NOTIFICATION_SURFACE_V1_SET_APP_ID_SINCE_VERSION 16 #ifdef __cplusplus }
diff --git a/third_party/wayland-protocols/protocol/remote-shell-protocol.c b/third_party/wayland-protocols/protocol/remote-shell-protocol.c index 22d79d5..be88da0f 100644 --- a/third_party/wayland-protocols/protocol/remote-shell-protocol.c +++ b/third_party/wayland-protocols/protocol/remote-shell-protocol.c
@@ -70,7 +70,7 @@ }; WL_EXPORT const struct wl_interface zcr_remote_shell_v1_interface = { - "zcr_remote_shell_v1", 15, + "zcr_remote_shell_v1", 16, 3, zcr_remote_shell_v1_requests, 5, zcr_remote_shell_v1_events, }; @@ -137,11 +137,11 @@ static const struct wl_message zcr_notification_surface_v1_requests[] = { { "destroy", "", types + 0 }, - { "set_app_id", "2s", types + 0 }, + { "set_app_id", "16s", types + 0 }, }; WL_EXPORT const struct wl_interface zcr_notification_surface_v1_interface = { - "zcr_notification_surface_v1", 2, + "zcr_notification_surface_v1", 16, 2, zcr_notification_surface_v1_requests, 0, NULL, };
diff --git a/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml b/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml index 137fde11..2eb675af 100644 --- a/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml +++ b/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml
@@ -38,7 +38,7 @@ reset. </description> - <interface name="zcr_remote_shell_v1" version="15"> + <interface name="zcr_remote_shell_v1" version="16"> <description summary="remote_shell"> The global interface that allows clients to turn a wl_surface into a "real window" which is remotely managed but can be stacked, activated @@ -894,7 +894,7 @@ </interface> - <interface name="zcr_notification_surface_v1" version="2"> + <interface name="zcr_notification_surface_v1" version="16"> <description summary="A notification window"> An interface that may be implemented by a wl_surface to host notification contents. @@ -906,9 +906,9 @@ </description> </request> - <!-- Version 2 additions --> + <!-- Version 16 additions --> - <request name="set_app_id" since="2"> + <request name="set_app_id" since="16"> <description summary="set application ID"> Set an application identifier for the notification surface. </description>
diff --git a/tools/code_coverage/OWNERS b/tools/code_coverage/OWNERS index 9fd85c05..f36342a 100644 --- a/tools/code_coverage/OWNERS +++ b/tools/code_coverage/OWNERS
@@ -1,3 +1,3 @@ liaoyuke@chromium.org mmoroz@chromium.org -inferno@chromum.org +inferno@chromium.org
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py index 7f45542..7f63a023 100755 --- a/tools/code_coverage/coverage.py +++ b/tools/code_coverage/coverage.py
@@ -534,6 +534,8 @@ subprocess_cmd.extend( ['-object=' + binary_path for binary_path in binary_paths[1:]]) _AddArchArgumentForIOSIfNeeded(subprocess_cmd, len(binary_paths)) + if _GetHostPlatform() in ['linux', 'mac']: + subprocess_cmd.extend(['-Xdemangler', 'c++filt', '-Xdemangler', '-n']) subprocess_cmd.extend(filters) if ignore_filename_regex: subprocess_cmd.append('-ignore-filename-regex=%s' % ignore_filename_regex)
diff --git a/tools/code_coverage/test_suite.txt b/tools/code_coverage/test_suite.txt index efd43ab..8da4174c 100644 --- a/tools/code_coverage/test_suite.txt +++ b/tools/code_coverage/test_suite.txt
@@ -54,6 +54,7 @@ native_theme_unittests net_unittests pdf_unittests +pdfium_embeddertests pdfium_unittests ppapi_unittests printing_unittests
diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md index 8fa85d24..5ac654f 100644 --- a/tools/gn/docs/reference.md +++ b/tools/gn/docs/reference.md
@@ -1039,6 +1039,7 @@ It is recommended you put inputs to your script in the "sources" variable, and stuff like other Python files required to run your script in the "inputs" variable. + The "deps" and "public_deps" for an action will always be completed before any part of the action is run so it can depend on the output of previous steps. The "data_deps" will be built if the @@ -1052,6 +1053,7 @@ ``` You should specify files created by your script by specifying them in the "outputs". + The script will be executed with the given arguments with the current directory being that of the root build directory. If you pass files to your script, see "gn help rebase_path" for how to convert @@ -1061,6 +1063,7 @@ ``` #### **File name handling** + ``` All output files must be inside the output directory of the build. You would generally use |$target_out_dir| or |$target_gen_dir| to @@ -1120,6 +1123,7 @@ You can dynamically write input dependencies (for incremental rebuilds if an input file changes) by writing a depfile when the script is run (see "gn help depfile"). This is more flexible than "inputs". + The "deps" and "public_deps" for an action will always be completed before any part of the action is run so it can depend on the output of previous steps. The "data_deps" will be built if the @@ -1129,6 +1133,7 @@ ``` #### **Outputs** + ``` The script will be executed with the given arguments with the current directory being that of the root build directory. If you pass files @@ -1139,6 +1144,7 @@ ``` #### **File name handling** + ``` All output files must be inside the output directory of the build. You would generally use |$target_out_dir| or |$target_gen_dir| to
diff --git a/tools/gn/functions_target.cc b/tools/gn/functions_target.cc index 0ceaba06..5fec1ff 100644 --- a/tools/gn/functions_target.cc +++ b/tools/gn/functions_target.cc
@@ -61,28 +61,31 @@ // action ---------------------------------------------------------------------- // Common help paragraph on script runtime execution directories. -#define SCRIPT_EXECUTION_CONTEXT \ - " The script will be executed with the given arguments with the current\n"\ - " directory being that of the root build directory. If you pass files\n"\ - " to your script, see \"gn help rebase_path\" for how to convert\n" \ - " file names to be relative to the build directory (file names in the\n" \ - " sources, outputs, and inputs will be all treated as relative to the\n" \ - " current build file and converted as needed automatically).\n" +#define SCRIPT_EXECUTION_CONTEXT \ + "\n" \ + " The script will be executed with the given arguments with the current\n" \ + " directory being that of the root build directory. If you pass files\n" \ + " to your script, see \"gn help rebase_path\" for how to convert\n" \ + " file names to be relative to the build directory (file names in the\n" \ + " sources, outputs, and inputs will be all treated as relative to the\n" \ + " current build file and converted as needed automatically).\n" // Common help paragraph on script output directories. -#define SCRIPT_EXECUTION_OUTPUTS \ - " All output files must be inside the output directory of the build.\n" \ - " You would generally use |$target_out_dir| or |$target_gen_dir| to\n" \ - " reference the output or generated intermediate file directories,\n" \ - " respectively.\n" +#define SCRIPT_EXECUTION_OUTPUTS \ + "\n" \ + " All output files must be inside the output directory of the build.\n" \ + " You would generally use |$target_out_dir| or |$target_gen_dir| to\n" \ + " reference the output or generated intermediate file directories,\n" \ + " respectively.\n" -#define ACTION_DEPS \ - " The \"deps\" and \"public_deps\" for an action will always be\n" \ - " completed before any part of the action is run so it can depend on\n" \ - " the output of previous steps. The \"data_deps\" will be built if the\n" \ - " action is built, but may not have completed before all steps of the\n" \ - " action are started. This can give additional parallelism in the build\n"\ - " for runtime-only dependencies.\n" +#define ACTION_DEPS \ + "\n" \ + " The \"deps\" and \"public_deps\" for an action will always be\n" \ + " completed before any part of the action is run so it can depend on\n" \ + " the output of previous steps. The \"data_deps\" will be built if the\n" \ + " action is built, but may not have completed before all steps of the\n" \ + " action are started. This can give additional parallelism in the build\n" \ + " for runtime-only dependencies.\n" const char kAction[] = "action"; const char kAction_HelpShort[] =
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 963817fd..b75fd70 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -20123,6 +20123,13 @@ <description>Please enter the description of this user action.</description> </action> +<action name="WindowSelector_SwipeToClose"> + <owner>sammiequon@chromium.org</owner> + <description> + Vertically swiping or flinging a window in overview to close the window. + </description> +</action> + <action name="WorkerProcess_BadProcessToKill"> <owner>Please list the metric's owners. Add more owner tags as needed.</owner> <description>Please enter the description of this user action.</description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 638e8a4..3d68aa7 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -29522,6 +29522,11 @@ <int value="21" label="Gesture requirement overridden by play method."/> </enum> +<enum name="MediaEncryptionScheme"> + <int value="0" label="CENC"/> + <int value="1" label="CBCS"/> +</enum> + <enum name="MediaEngagementClearReason"> <int value="0" label="Data (all)"/> <int value="1" label="Data (range)"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index d831889..929b5f5d 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -22837,6 +22837,20 @@ </summary> </histogram> +<histogram name="Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin" + units="microseconds"> + <owner>nzolghadr@chromium.org</owner> + <summary> + Time between initial creation of a wheel/touch event and start of the frame + swap on the GPU service caused by the generated ScrollUpdate gesture event + if that ScrollUpdate is the first such event in a given scroll gesture event + sequence. If no swap was induced by the event, no recording is made. If no + swap was induced by the event, no recording is made. + + Team: input-dev@chromium.org. + </summary> +</histogram> + <histogram name="Event.Latency.ScrollBegin.Touch.BrowserNotifiedToBeforeGpuSwap2" units="microseconds"> @@ -23043,6 +23057,19 @@ </summary> </histogram> +<histogram name="Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin" + units="microseconds"> + <owner>nzolghadr@chromium.org</owner> + <summary> + Time between initial creation of a wheel/touch event and start of the frame + swap on the GPU service caused by the generated ScrollUpdate gesture event. + If no swap was induced by the event, no recording is made. The first GSU of + every scrolling sequence is excluded from this metric. + + Team: input-dev@chromium.org. + </summary> +</histogram> + <histogram name="Event.Latency.ScrollUpdate.Touch.BrowserNotifiedToBeforeGpuSwap2" units="microseconds"> @@ -37264,6 +37291,26 @@ </summary> </histogram> +<histogram name="Media.EME.EncryptionScheme.Initial.Audio" + units="MediaEncryptionScheme"> + <owner>jrummell@chromium.org</owner> + <owner>media-dev@chromium.org</owner> + <summary> + The encryption scheme used by the audio stream in an HTML5 video. Reported + when metadata is available if the initial config is encrypted. + </summary> +</histogram> + +<histogram name="Media.EME.EncryptionScheme.Initial.Video" + units="MediaEncryptionScheme"> + <owner>jrummell@chromium.org</owner> + <owner>media-dev@chromium.org</owner> + <summary> + The encryption scheme used by the video stream in an HTML5 video. Reported + when metadata is available if the initial config is encrypted. + </summary> +</histogram> + <histogram base="true" name="Media.EME.generateKeyRequest" enum="MediaKeyException"> <obsolete> @@ -58241,6 +58288,9 @@ </histogram> <histogram name="NQE.RTT" units="ms"> + <obsolete> + Deprecated 01/2018. + </obsolete> <owner>bengr@chromium.org</owner> <owner>tbansal@chromium.org</owner> <summary> @@ -58369,6 +58419,9 @@ </histogram> <histogram name="NQE.TransportRTT" units="ms"> + <obsolete> + Deprecated 01/2018. + </obsolete> <owner>bengr@chromium.org</owner> <owner>tbansal@chromium.org</owner> <summary> @@ -71412,6 +71465,9 @@ </histogram> <histogram name="PreloadScanner.ReferenceTime" units="ms"> + <obsolete> + Deprecated May 2018 + </obsolete> <owner>csharrison@chromium.org</owner> <summary> The time between preload discovery and when the resource is actually @@ -71423,6 +71479,9 @@ </histogram> <histogram name="PreloadScanner.TTFB" units="ms"> + <obsolete> + Deprecated May 2018 + </obsolete> <owner>csharrison@chromium.org</owner> <summary> The time between preload discovery and when the first bytes of the response @@ -92477,6 +92536,10 @@ <histogram name="SubresourceFilter.SafeBrowsing.CheckDispatchTime" units="microseconds"> + <obsolete> + Deprecated in May 2018 in favor of the more general + SB2.RemoteCall.CheckDispatchTime. + </obsolete> <owner>csharrison@chromium.org</owner> <summary> The microseconds it took to dispatch the Safe Browsing check. This includes @@ -112715,6 +112778,7 @@ <affected-histogram name="Navigation.StartToCommit"/> <affected-histogram name="Navigation.StartToCommit.CrossProcess"/> <affected-histogram name="Navigation.StartToCommit.SameProcess"/> + <affected-histogram name="Navigation.TimeToReadyToCommit"/> </histogram_suffixes> <histogram_suffixes name="NavigationPreloadEnabled" separator="_"> @@ -112802,7 +112866,9 @@ <affected-histogram name="Navigation.StartToCommit.Subframe"/> <affected-histogram name="Navigation.TimeToReadyToCommit"/> <affected-histogram name="Navigation.TimeToReadyToCommit.CrossProcess"/> + <affected-histogram name="Navigation.TimeToReadyToCommit.MainFrame"/> <affected-histogram name="Navigation.TimeToReadyToCommit.SameProcess"/> + <affected-histogram name="Navigation.TimeToReadyToCommit.Subframe"/> </histogram_suffixes> <histogram_suffixes name="Net.BidirectionalStreamExperiment" separator="."> @@ -114658,6 +114724,9 @@ <suffix name="Percentile90" label="90th percentile"/> <affected-histogram name="NQE.RTT"/> <affected-histogram name="NQE.TransportRTT"/> + <obsolete> + Deprecated 01/2018. + </obsolete> </histogram_suffixes> <histogram_suffixes name="NQE.DifferentPercentiles" separator="."> @@ -115226,7 +115295,14 @@ <suffix name="Clients.DataReductionProxy.LoFiOn" label="PageLoadMetrics that are a result of a navigation through the data reduction proxy with session in LoFi enabled or control - field trial, and when the connection was slow."/> + field trial, and when the connection was slow."> + <obsolete> + Deprecated 05/2018. + </obsolete> + </suffix> + <suffix name="Clients.Previews.LitePages" + label="PageLoadMetrics that are a result of a navigation through the + data reduction proxy where a lite page response was received."/> <affected-histogram name="PageLoad.DocumentTiming.NavigationToDOMContentLoadedEventFired"/> <affected-histogram name="PageLoad.DocumentTiming.NavigationToFirstLayout"/> @@ -115397,8 +115473,8 @@ <histogram_suffixes name="PageLoadMetricsClientsLoFi" separator="." ordering="prefix"> <suffix name="Clients.LoFi" - label="PageLoadMetrics that are a result of a navigation caused by a - tab restore."/> + label="PageLoadMetrics that are a result of a navigation that displayed + a LoFi image."/> <affected-histogram name="PageLoad.DocumentTiming.NavigationToLoadEventFired"/> <affected-histogram name="PageLoad.Experimental.Bytes.Network"/>
diff --git a/tools/perf/BUILD.gn b/tools/perf/BUILD.gn index 09f5c45c..d646f6f 100644 --- a/tools/perf/BUILD.gn +++ b/tools/perf/BUILD.gn
@@ -28,9 +28,19 @@ # For image_decoding.measurement "//chrome/test/data/image_decoding/", + # For ad tagging ruleset + "$root_gen_dir/components/subresource_filter/tools/", + # For Pylib used by VR tests "//build/android/pylib/", ] + + # Runs a script which generates the ad tagging ruleset. + if (!is_ios) { + data_deps = [ + "//components/subresource_filter/tools:index_ruleset", + ] + } } if (is_android) { @@ -69,7 +79,17 @@ # For image_decoding.measurement "//chrome/test/data/image_decoding/", + # For ad tagging ruleset + "$root_gen_dir/components/subresource_filter/tools/", + # For Pylib used by VR tests "//build/android/pylib/", ] + + # Runs a script which generates the ad tagging ruleset. + if (!is_ios) { + data_deps = [ + "//components/subresource_filter/tools:index_ruleset", + ] + } }
diff --git a/tools/perf/core/perf_data_generator.py b/tools/perf/core/perf_data_generator.py index 45fd0c25..c4fc495 100755 --- a/tools/perf/core/perf_data_generator.py +++ b/tools/perf/core/perf_data_generator.py
@@ -443,7 +443,12 @@ 'blink_perf.parser', 'blink_perf.shadow_dom', 'blink_perf.svg', - 'memory.top_10_mobile' + 'memory.top_10_mobile', + 'system_health.common_desktop', + 'system_health.common_mobile', + 'system_health.memory_desktop', + 'system_health.memory_mobile', + 'system_health.webview_startup', ] @@ -965,7 +970,10 @@ 'tests': [ { 'isolate': 'performance_test_suite', - 'extra_args': ['--run-ref-build'], + 'extra_args': [ + '--run-ref-build', + '--test-shard-map-filename=benchmark_desktop_bot_map.json', + ], 'num_shards': 26 }, { @@ -992,8 +1000,11 @@ 'tests': [ { 'isolate': 'telemetry_perf_tests_without_chrome', - 'extra_args': ['--xvfb', - '--run-ref-build'], + 'extra_args': [ + '--xvfb', + '--run-ref-build', + '--test-shard-map-filename=benchmark_bot_map.json' + ], 'num_shards': 3 }, { @@ -1017,7 +1028,10 @@ { 'name': 'performance_test_suite', 'isolate': 'performance_test_suite', - 'extra_args': ['--run-ref-build'], + 'extra_args': [ + '--run-ref-build', + '--test-shard-map-filename=benchmark_android_bot_map.json', + ], 'num_shards': 14 } ], @@ -1035,6 +1049,9 @@ 'tests': [ { 'isolate': 'performance_webview_test_suite', + 'extra_args': [ + '--test-shard-map-filename=benchmark_android_bot_map.json', + ], 'num_shards': 7 } ], @@ -1052,7 +1069,10 @@ 'tests': [ { 'isolate': 'performance_test_suite', - 'extra_args': ['--run-ref-build'], + 'extra_args': [ + '--run-ref-build', + '--test-shard-map-filename=benchmark_android_bot_map.json', + ], 'num_shards': 7 } ], @@ -1076,7 +1096,10 @@ 'tests': [ { 'isolate': 'performance_test_suite', - 'extra_args': ['--run-ref-build'], + 'extra_args': [ + '--run-ref-build', + '--test-shard-map-filename=benchmark_desktop_bot_map.json', + ], }, { 'isolate': 'load_library_perf_tests', @@ -1106,7 +1129,10 @@ # Add views_perftests, crbug.com/811766 { 'isolate': 'performance_test_suite', - 'extra_args': ['--run-ref-build'], + 'extra_args': [ + '--run-ref-build', + '--test-shard-map-filename=benchmark_desktop_bot_map.json', + ], }, { 'isolate': 'load_library_perf_tests', @@ -1208,11 +1234,6 @@ test_args.append( '--webview-embedder-apk=../../out/Release/apks/SystemWebViewShell.apk') - # Appending testing=true if we only want to run a subset of benchmarks - # for quicker testing - if tester_config.get('testing', False): - test_args.append('--testing=true') - return test_args def generate_non_telemetry_args():
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config index a610842..628c60c1 100644 --- a/tools/perf/expectations.config +++ b/tools/perf/expectations.config
@@ -297,9 +297,6 @@ crbug.com/836407 [ Linux ] system_health.memory_desktop/browse:tools:maps [ Skip ] crbug.com/837397 [ Linux ] system_health.memory_desktop/load_accessibility:shopping:amazon [ Skip ] crbug.com/836447 [ ChromeOS ] system_health.memory_desktop/multitab:misc:typical24 [ Skip ] -crbug.com/789041 [ Linux ] system_health.memory_desktop/browse:news:reddit [ Skip ] -crbug.com/789041 [ Win ] system_health.memory_desktop/browse:news:reddit [ Skip ] -crbug.com/789041 [ Win ] system_health.memory_desktop/browse:news:nytimes [ Skip ] # Benchmark: system_health.memory_mobile crbug.com/787001 [ Android_Webview ] system_health.memory_mobile/load:media:soundcloud [ Skip ]
diff --git a/tools/perf/process_perf_results.py b/tools/perf/process_perf_results.py index dc6dab9..e3c19d0 100755 --- a/tools/perf/process_perf_results.py +++ b/tools/perf/process_perf_results.py
@@ -103,9 +103,11 @@ """ merged_results = results_merger.merge_test_results(jsons_to_merge) - merged_results['links'] = { - perf_results_file_name: perf_results_link - } + # Only append the perf results link if present + if perf_results_link: + merged_results['links'] = { + perf_results_file_name: perf_results_link + } with open(output_json, 'w') as f: json.dump(merged_results, f) @@ -113,9 +115,47 @@ return 0 +def _handle_perf_json_test_results( + benchmark_directory_list, test_results_list): + benchmark_enabled_map = {} + for directory in benchmark_directory_list: + # Obtain the test name we are running + benchmark_name = _get_benchmark_name(directory) + is_ref = '.reference' in benchmark_name + enabled = True + with open(join(directory, 'test_results.json')) as json_data: + json_results = json.load(json_data) + if not json_results: + # Output is null meaning the test didn't produce any results. + # Want to output an error and continue loading the rest of the + # test results. + print 'No results produced for %s, skipping upload' % directory + continue + if json_results.get('version') == 3: + # Non-telemetry tests don't have written json results but + # if they are executing then they are enabled and will generate + # chartjson results. + if not bool(json_results.get('tests')): + enabled = False + if not is_ref: + # We don't need to upload reference build data to the + # flakiness dashboard since we don't monitor the ref build + test_results_list.append(json_results) + if not enabled: + # We don't upload disabled benchmarks or tests that are run + # as a smoke test + print 'Benchmark %s disabled' % benchmark_name + benchmark_enabled_map[benchmark_name] = enabled + + return benchmark_enabled_map + +def _get_benchmark_name(directory): + return basename(directory).replace(" benchmark", "") + def _process_perf_results(output_json, configuration_name, service_account_file, - build_properties, task_output_dir): + build_properties, task_output_dir, + smoke_test_mode): """Process one or more perf JSON results. Consists of merging the json-test-format output and uploading the perf test @@ -139,8 +179,6 @@ for f in listdir(join(task_output_dir, directory)) ] - # We need to keep track of disabled benchmarks so we don't try to - # upload the results. test_results_list = [] tmpfile_dir = tempfile.mkdtemp('resultscache') upload_failure = False @@ -151,52 +189,38 @@ configuration_name = build_properties['buildername'] try: + # First obtain the list of json test results to merge + # and determine the status of each benchmark + benchmark_enabled_map = _handle_perf_json_test_results( + benchmark_directory_list, test_results_list) + + # Upload all eligible benchmarks to the perf dashboard logdog_dict = {} - with oauth_api.with_access_token(service_account_file) as oauth_file: - for directory in benchmark_directory_list: - # Obtain the test name we are running - benchmark_name = basename(directory).replace(" benchmark", "") - is_ref = '.reference' in benchmark_name - disabled = False - with open(join(directory, 'test_results.json')) as json_data: - json_results = json.load(json_data) - if not json_results: - # Output is null meaning the test didn't produce any results. - # Want to output an error and continue loading the rest of the - # test results. - print 'No results produced for %s, skipping upload' % directory + logdog_stream = None + logdog_label = 'Results Dashboard' + if not smoke_test_mode: + with oauth_api.with_access_token(service_account_file) as oauth_file: + for directory in benchmark_directory_list: + benchmark_name = _get_benchmark_name(directory) + if not benchmark_enabled_map[benchmark_name]: continue - if json_results.get('version') == 3: - # Non-telemetry tests don't have written json results but - # if they are executing then they are enabled and will generate - # chartjson results. - if not bool(json_results.get('tests')): - disabled = True - if not is_ref: - # We don't need to upload reference build data to the - # flakiness dashboard since we don't monitor the ref build - test_results_list.append(json_results) - if disabled: - # We don't upload disabled benchmarks - print 'Benchmark %s disabled' % benchmark_name - continue + print 'Uploading perf results from %s benchmark' % benchmark_name + upload_fail = _upload_and_write_perf_data_to_logfile( + benchmark_name, directory, configuration_name, build_properties, + oauth_file, tmpfile_dir, logdog_dict, + ('.reference' in benchmark_name)) + upload_failure = upload_failure or upload_fail - print 'Uploading perf results from %s benchmark' % benchmark_name - - upload_fail = _upload_and_write_perf_data_to_logfile( - benchmark_name, directory, configuration_name, build_properties, - oauth_file, tmpfile_dir, logdog_dict, is_ref) - upload_failure = upload_failure or upload_fail - - logdog_label = 'Results Dashboard' logdog_file_name = 'Results_Dashboard_' + str(uuid.uuid4()) + logdog_stream = logdog_helper.text(logdog_file_name, + json.dumps(logdog_dict, sort_keys=True, + indent=4, separators=(',', ':'))) if upload_failure: logdog_label += ' Upload Failure' - _merge_json_output(output_json, test_results_list, - logdog_helper.text(logdog_file_name, - json.dumps(logdog_dict, sort_keys=True, - indent=4, separators=(',', ':'))), - logdog_label) + + # Finally, merge all test results json and write out to output location + _merge_json_output(output_json, test_results_list, + logdog_stream, logdog_label) finally: shutil.rmtree(tmpfile_dir) return upload_failure @@ -259,13 +283,21 @@ parser.add_argument('-o', '--output-json', required=True, help=argparse.SUPPRESS) parser.add_argument('json_files', nargs='*', help=argparse.SUPPRESS) + parser.add_argument('--smoke-test-mode', required=False, default=False, + help='This test should be run in smoke test mode' + ' meaning it does not upload to the perf dashboard') args = parser.parse_args() + if not args.service_account_file and not args.smoke_test_mode: + raise Exception( + 'Service account file must be specificed for dashboard upload') + return _process_perf_results( args.output_json, args.configuration_name, args.service_account_file, - args.build_properties, args.task_output_dir) + args.build_properties, args.task_output_dir, + args.smoke_test_mode) if __name__ == '__main__':
diff --git a/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb b/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb index e34e49d..32630f2 100644 --- a/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb +++ b/ui/accessibility/extensions/strings/accessibility_extensions_strings_bn.xtb
@@ -26,7 +26,7 @@ <translation id="3812541808639806898">বৈকল্পিক পাঠ্য প্রদর্শক ছবি</translation> <translation id="381767806621926835">কোনো "longdesc" বা "aria-describedat" অ্যাট্রিবিউটগুলির সাথে যেকোনো কিছুর উপর ডান-ক্লিক করুন৷</translation> <translation id="4023902424053835668">তীর চিহ্নগুলি ব্যবহার করে ওয়েব পৃষ্ঠাগুলির পাঠ্য ব্রাউজ করুন৷</translation> -<translation id="4388820049312272371">একটি দ্রুত ফ্ল্যাশের সাথে কার্সারের অবস্থান হাইলাইট করুন৷</translation> +<translation id="4388820049312272371">একটি দ্রুত ফ্ল্যাশের সাথে কার্সারের লোকেশন হাইলাইট করুন৷</translation> <translation id="4394049700291259645">অক্ষম</translation> <translation id="4769065380738716500">চিত্রগুলিকে তাদের বিকল্প পাঠ্যের দ্বারা প্রতিস্থাপিত করা হয়েছে৷</translation> <translation id="4896660567607030658">কোনো প্রতিক্রিয়া নেই, শুধুমাত্র কার্সার প্রদর্শন করুন৷</translation> @@ -34,7 +34,7 @@ <translation id="4954450790315188152">যখন ক্যারেট ব্রাউজিং সক্ষম করা থাকবে:</translation> <translation id="5041932793799765940">রঙের সমন্বয়</translation> <translation id="5094574508723441140">বর্ধিত কনট্রাস্ট</translation> -<translation id="5173942593318174089">কোনো অ্যানিমেশনের সাথে কার্সারের অবস্থান হাইলাইট করুন৷</translation> +<translation id="5173942593318174089">কোনো অ্যানিমেশনের সাথে কার্সারের লোকেশন হাইলাইট করুন৷</translation> <translation id="5287723860611749454"><p>দস্তাবেজটি বরাবর সরাতে নির্দেশক তীরচিহ্নগুলি ব্যবহার করুন৷ </p><p>সেই অবস্থানে কার্সার সরাতে যেকোনো স্থানে ক্লিক করুন৷ </p> <p> পাঠ্য নির্বাচন করতে <span class='key'>Shift</span> + তীরচিহ্নগুলি টিপুন৷</translation> <translation id="5331422999063554397">ইনভার্টেড রঙ</translation> <translation id="5555153510860501336">উচ্চ কনট্রাস্ট অক্ষম রয়েছে</translation>
diff --git a/ui/aura/window_event_dispatcher.cc b/ui/aura/window_event_dispatcher.cc index eab53445..7d3f2ec5 100644 --- a/ui/aura/window_event_dispatcher.cc +++ b/ui/aura/window_event_dispatcher.cc
@@ -316,7 +316,7 @@ ui::EventType type) { Env::GetInstance()->env_controller()->UpdateStateForMouseEvent(window(), event); - if (!mouse_moved_handler_ || !mouse_moved_handler_->delegate() || + if (!mouse_moved_handler_ || !mouse_moved_handler_->HasTargetHandler() || !window()->Contains(mouse_moved_handler_)) return DispatchDetails();
diff --git a/ui/aura/window_tree_host.h b/ui/aura/window_tree_host.h index 6d3c3de..8faf9d8 100644 --- a/ui/aura/window_tree_host.h +++ b/ui/aura/window_tree_host.h
@@ -8,7 +8,9 @@ #include <stdint.h> #include <memory> +#include <string> +#include "base/containers/flat_map.h" #include "base/containers/flat_set.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" @@ -211,6 +213,9 @@ std::unique_ptr<ScopedKeyboardHook> CaptureSystemKeyEvents( base::Optional<base::flat_set<ui::DomCode>> codes); + // Returns a map of KeyboardEvent code to KeyboardEvent key values. + virtual base::flat_map<std::string, std::string> GetKeyboardLayoutMap() = 0; + protected: friend class ScopedKeyboardHook; friend class TestScreen; // TODO(beng): see if we can remove/consolidate.
diff --git a/ui/aura/window_tree_host_platform.cc b/ui/aura/window_tree_host_platform.cc index 518c650..947ac52d 100644 --- a/ui/aura/window_tree_host_platform.cc +++ b/ui/aura/window_tree_host_platform.cc
@@ -152,6 +152,12 @@ return keyboard_hook_ && keyboard_hook_->IsKeyLocked(dom_code); } +base::flat_map<std::string, std::string> +WindowTreeHostPlatform::GetKeyboardLayoutMap() { + NOTIMPLEMENTED(); + return {}; +} + void WindowTreeHostPlatform::SetCursorNative(gfx::NativeCursor cursor) { if (cursor == current_cursor_) return;
diff --git a/ui/aura/window_tree_host_platform.h b/ui/aura/window_tree_host_platform.h index f682393..2b414c1 100644 --- a/ui/aura/window_tree_host_platform.h +++ b/ui/aura/window_tree_host_platform.h
@@ -82,6 +82,7 @@ base::Optional<base::flat_set<ui::DomCode>> dom_codes) override; void ReleaseSystemKeyEventCapture() override; bool IsKeyLocked(ui::DomCode dom_code) override; + base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override; private: gfx::AcceleratedWidget widget_;
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc index 5b1acb0..c7203185c 100644 --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc
@@ -44,7 +44,7 @@ // Allows system keyboard event capture when |features::kKeyboardLockApi| is on. const base::Feature kSystemKeyboardLock{"SystemKeyboardLock", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kTouchableAppContextMenu = { "EnableTouchableAppContextMenu", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/ui/events/blink/event_with_callback.cc b/ui/events/blink/event_with_callback.cc index 795b4351..3991269 100644 --- a/ui/events/blink/event_with_callback.cc +++ b/ui/events/blink/event_with_callback.cc
@@ -23,7 +23,7 @@ latency_(latency), creation_timestamp_(timestamp_now), last_coalesced_timestamp_(timestamp_now) { - original_events_.emplace_back(std::move(event), std::move(callback)); + original_events_.emplace_back(std::move(event), latency, std::move(callback)); } EventWithCallback::EventWithCallback( @@ -68,6 +68,14 @@ last_coalesced_timestamp_ = timestamp_now; } +static bool HandledOnCompositorThread( + InputHandlerProxy::EventDisposition disposition) { + return (disposition != InputHandlerProxy::DID_NOT_HANDLE && + disposition != + InputHandlerProxy::DID_NOT_HANDLE_NON_BLOCKING_DUE_TO_FLING && + disposition != InputHandlerProxy::DID_HANDLE_NON_BLOCKING); +} + void EventWithCallback::RunCallbacks( InputHandlerProxy::EventDisposition disposition, const LatencyInfo& latency, @@ -85,12 +93,18 @@ : nullptr); original_events_.pop_front(); - // Ack other events with coalesced latency to avoid redundant tracking. - LatencyInfo coalesced_latency = latency; - coalesced_latency.set_coalesced(); + // If the event was handled on compositor thread, ack other events with + // coalesced latency to avoid redundant tracking. If not, the event should + // be handle on main thread, use the original latency instead. + bool handled = HandledOnCompositorThread(disposition); for (auto& coalesced_event : original_events_) { + if (handled) { + coalesced_event.latency_ = latency; + coalesced_event.latency_.set_coalesced(); + } std::move(coalesced_event.callback_) - .Run(disposition, std::move(coalesced_event.event_), coalesced_latency, + .Run(disposition, std::move(coalesced_event.event_), + coalesced_event.latency_, did_overscroll_params ? std::make_unique<DidOverscrollParams>(*did_overscroll_params) : nullptr); @@ -99,8 +113,11 @@ EventWithCallback::OriginalEventWithCallback::OriginalEventWithCallback( WebScopedInputEvent event, + const LatencyInfo& latency, InputHandlerProxy::EventDispositionCallback callback) - : event_(std::move(event)), callback_(std::move(callback)) {} + : event_(std::move(event)), + latency_(latency), + callback_(std::move(callback)) {} EventWithCallback::OriginalEventWithCallback::~OriginalEventWithCallback() {}
diff --git a/ui/events/blink/event_with_callback.h b/ui/events/blink/event_with_callback.h index 774b8e8..09f5ffd6 100644 --- a/ui/events/blink/event_with_callback.h +++ b/ui/events/blink/event_with_callback.h
@@ -21,9 +21,11 @@ struct OriginalEventWithCallback { OriginalEventWithCallback( WebScopedInputEvent event, + const LatencyInfo& latency, InputHandlerProxy::EventDispositionCallback callback); ~OriginalEventWithCallback(); WebScopedInputEvent event_; + LatencyInfo latency_; InputHandlerProxy::EventDispositionCallback callback_; }; using OriginalEventList = std::list<OriginalEventWithCallback>;
diff --git a/ui/events/blink/input_handler_proxy_unittest.cc b/ui/events/blink/input_handler_proxy_unittest.cc index daebebd..844a1a0 100644 --- a/ui/events/blink/input_handler_proxy_unittest.cc +++ b/ui/events/blink/input_handler_proxy_unittest.cc
@@ -2126,6 +2126,71 @@ testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); } +TEST_P(InputHandlerProxyEventQueueTest, CoalescedEventSwitchToMainThread) { + cc::InputHandlerScrollResult scroll_result_did_scroll_; + cc::InputHandlerScrollResult scroll_result_did_not_scroll_; + scroll_result_did_scroll_.did_scroll = true; + scroll_result_did_not_scroll_.did_scroll = false; + + // scroll begin on main thread + EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(kMainThreadScrollState)); + EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(2); + EXPECT_CALL(mock_input_handler_, ScrollingShouldSwitchtoMainThread()) + .WillOnce(testing::Return(false)); + EXPECT_CALL( + mock_input_handler_, + ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Gt(0)))) + .WillOnce(testing::Return(scroll_result_did_not_scroll_)); + + HandleGestureEvent(WebInputEvent::kGestureScrollBegin); + HandleGestureEvent(WebInputEvent::kGestureScrollUpdate, -20); + HandleGestureEvent(WebInputEvent::kGestureScrollUpdate, -10); + input_handler_proxy_->DeliverInputForBeginFrame(); + EXPECT_EQ(3ul, event_disposition_recorder_.size()); + EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE, + event_disposition_recorder_.back()); + // GSU should not be coalesced + EXPECT_EQ(false, latency_info_recorder_[1].coalesced()); + EXPECT_EQ(false, latency_info_recorder_[2].coalesced()); + + // pinch start, handle scroll and pinch on compositor. + EXPECT_CALL(mock_input_handler_, PinchGestureBegin()); + EXPECT_CALL(mock_input_handler_, PinchGestureUpdate(testing::_, testing::_)); + EXPECT_CALL(mock_input_handler_, PinchGestureEnd(testing::_, testing::_)); + + HandleGestureEvent(WebInputEvent::kGesturePinchBegin); + HandleGestureEvent(WebInputEvent::kGesturePinchUpdate, 10.0f, 1, 10); + HandleGestureEvent(WebInputEvent::kGestureScrollUpdate, -10); + HandleGestureEvent(WebInputEvent::kGestureScrollUpdate, -30); + EXPECT_EQ(2ul, event_queue().size()); + input_handler_proxy_->DeliverInputForBeginFrame(); + + EXPECT_EQ(7ul, event_disposition_recorder_.size()); + EXPECT_EQ(false, latency_info_recorder_[4].coalesced()); + // Coalesced events should have latency set to coalesced. + EXPECT_EQ(true, latency_info_recorder_[5].coalesced()); + EXPECT_EQ(true, latency_info_recorder_[6].coalesced()); + EXPECT_EQ(InputHandlerProxy::DID_HANDLE, event_disposition_recorder_.back()); + + // Pinch end, handle scroll on main thread. + HandleGestureEvent(WebInputEvent::kGesturePinchEnd); + HandleGestureEvent(WebInputEvent::kGestureScrollUpdate, -40); + HandleGestureEvent(WebInputEvent::kGestureScrollUpdate, -30); + input_handler_proxy_->DeliverInputForBeginFrame(); + + EXPECT_EQ(0ul, event_queue().size()); + // Should run callbacks for every original events. + EXPECT_EQ(10ul, event_disposition_recorder_.size()); + EXPECT_EQ(10ul, latency_info_recorder_.size()); + // Latency should not be set to coalesced when send to main thread + EXPECT_EQ(false, latency_info_recorder_[8].coalesced()); + EXPECT_EQ(false, latency_info_recorder_[9].coalesced()); + EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE, + event_disposition_recorder_.back()); + testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); +} + INSTANTIATE_TEST_CASE_P(AnimateInput, InputHandlerProxyTest, testing::ValuesIn(test_types));
diff --git a/ui/events/chromecast/scroller.cc b/ui/events/chromecast/scroller.cc index 3b21abb..fcc89f2 100644 --- a/ui/events/chromecast/scroller.cc +++ b/ui/events/chromecast/scroller.cc
@@ -31,8 +31,7 @@ const float kThresholdForFlingEnd = 0.1f; // Scale factor applied to incoming fling velocity. -const float kFlingVelocityAttenuationFactor = 0.5f; - +const float kFlingVelocityAttenuationFactor = 1.0f; bool ApproxEquals(float a, float b) { return std::abs(a - b) < kEpsilon;
diff --git a/ui/events/event_target.h b/ui/events/event_target.h index 8b136fa..4314aca 100644 --- a/ui/events/event_target.h +++ b/ui/events/event_target.h
@@ -88,6 +88,8 @@ // Sets |target_handler| as |target_handler_| and returns the old handler. EventHandler* SetTargetHandler(EventHandler* target_handler); + bool HasTargetHandler() const { return target_handler_ != nullptr; } + protected: EventHandler* target_handler() { return target_handler_; }
diff --git a/ui/events/gesture_detection/gesture_configuration_cast.cc b/ui/events/gesture_detection/gesture_configuration_cast.cc index 6eed5da..8a4f210 100644 --- a/ui/events/gesture_detection/gesture_configuration_cast.cc +++ b/ui/events/gesture_detection/gesture_configuration_cast.cc
@@ -32,7 +32,7 @@ switches::kCompensateForUnstablePinchZoom) ? 5 : 0); - set_velocity_tracker_strategy(VelocityTracker::Strategy::INT1); + set_velocity_tracker_strategy(VelocityTracker::Strategy::LSQ2_RESTRICTED); set_span_slop(max_touch_move_in_pixels_for_click() * 2); set_swipe_enabled(true); set_two_finger_tap_enabled(true);
diff --git a/ui/events/keycodes/dom/keycode_converter.cc b/ui/events/keycodes/dom/keycode_converter.cc index 1d5408c..cb328af2 100644 --- a/ui/events/keycodes/dom/keycode_converter.cc +++ b/ui/events/keycodes/dom/keycode_converter.cc
@@ -6,6 +6,7 @@ #include "base/logging.h" #include "base/macros.h" +#include "base/stl_util.h" #include "base/strings/utf_string_conversion_utils.h" #include "build/build_config.h" #include "ui/events/keycodes/dom/dom_code.h" @@ -317,4 +318,30 @@ return UsbKeycodeToNativeKeycode(CodeStringToUsbKeycode(code)); } +const DomCode writing_system_key_domcodes[] = { + // Keyboard Row E + DomCode::BACKQUOTE, DomCode::DIGIT1, DomCode::DIGIT2, DomCode::DIGIT3, + DomCode::DIGIT4, DomCode::DIGIT5, DomCode::DIGIT6, DomCode::DIGIT7, + DomCode::DIGIT8, DomCode::DIGIT9, DomCode::DIGIT0, DomCode::MINUS, + DomCode::EQUAL, DomCode::INTL_YEN, + + // Keyboard Row D + DomCode::US_Q, DomCode::US_W, DomCode::US_E, DomCode::US_R, DomCode::US_T, + DomCode::US_Y, DomCode::US_U, DomCode::US_I, DomCode::US_O, DomCode::US_P, + DomCode::BRACKET_LEFT, DomCode::BRACKET_RIGHT, DomCode::BACKSLASH, + + // Keyboard Row C + DomCode::US_A, DomCode::US_S, DomCode::US_D, DomCode::US_F, DomCode::US_G, + DomCode::US_H, DomCode::US_J, DomCode::US_K, DomCode::US_L, + DomCode::SEMICOLON, DomCode::QUOTE, + + // Keyboard Row B + DomCode::INTL_BACKSLASH, DomCode::US_Z, DomCode::US_X, DomCode::US_C, + DomCode::US_V, DomCode::US_B, DomCode::US_N, DomCode::US_M, DomCode::COMMA, + DomCode::PERIOD, DomCode::SLASH, DomCode::INTL_RO, +}; + +const size_t kWritingSystemKeyDomCodeEntries = + base::size(writing_system_key_domcodes); + } // namespace ui
diff --git a/ui/events/keycodes/dom/keycode_converter.h b/ui/events/keycodes/dom/keycode_converter.h index a4908e2..73b654cd 100644 --- a/ui/events/keycodes/dom/keycode_converter.h +++ b/ui/events/keycodes/dom/keycode_converter.h
@@ -21,6 +21,19 @@ enum class DomKeyLocation { STANDARD, LEFT, RIGHT, NUMPAD }; +// An array of DomCodes that identifies the Writing System Keys on the +// keyboard. +// +// The Writing System Keys are those that change meaning (i.e., they produce +// a different KeyboardEvent key value) based on the current keyboard layout. +// See https://www.w3.org/TR/uievents-code/#key-alphanumeric-writing-system +// +// This is used by the Keyboard Map API +// (see https://wicg.github.io/keyboard-map/) +extern const DomCode writing_system_key_domcodes[]; + +extern const size_t kWritingSystemKeyDomCodeEntries; + // This structure is used to define the keycode mapping table. // It is defined here because the unittests need access to it. typedef struct {
diff --git a/ui/gfx/font_render_params_linux.cc b/ui/gfx/font_render_params_linux.cc index b359d85d..f12db00e 100644 --- a/ui/gfx/font_render_params_linux.cc +++ b/ui/gfx/font_render_params_linux.cc
@@ -278,11 +278,16 @@ params.hinting = FontRenderParams::HINTING_FULL; params.subpixel_rendering = FontRenderParams::SUBPIXEL_RENDERING_NONE; params.subpixel_positioning = false; - } else { + } else if (!base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableFontSubpixelPositioning)) { #if !defined(OS_CHROMEOS) params.subpixel_positioning = actual_query.device_scale_factor > 1.0f; #else - params.subpixel_positioning = false; + // We want to enable subpixel positioning for fractional dsf. + params.subpixel_positioning = + std::abs(std::round(actual_query.device_scale_factor) - + actual_query.device_scale_factor) > + std::numeric_limits<float>::epsilon(); #endif // !defined(OS_CHROMEOS) // To enable subpixel positioning, we need to disable hinting.
diff --git a/ui/gfx/font_render_params_linux_unittest.cc b/ui/gfx/font_render_params_linux_unittest.cc index 8e0ea95..6bd3bd5 100644 --- a/ui/gfx/font_render_params_linux_unittest.cc +++ b/ui/gfx/font_render_params_linux_unittest.cc
@@ -310,9 +310,20 @@ FontRenderParams params = GetFontRenderParams(FontRenderParamsQuery(), NULL); EXPECT_TRUE(params.antialiasing); + EXPECT_TRUE(params.subpixel_positioning); + SetFontRenderParamsDeviceScaleFactor(1.0f); + } + ClearFontRenderParamsCacheForTest(); + SetFontRenderParamsDeviceScaleFactor(2.f); + // Subpixel positioning should be forced on non-Chrome-OS. + { + FontRenderParams params = + GetFontRenderParams(FontRenderParamsQuery(), nullptr); + EXPECT_TRUE(params.antialiasing); #if !defined(OS_CHROMEOS) EXPECT_TRUE(params.subpixel_positioning); #else + // Integral scale factor does not require subpixel positioning. EXPECT_FALSE(params.subpixel_positioning); #endif // !defined(OS_CHROMEOS) SetFontRenderParamsDeviceScaleFactor(1.0f);
diff --git a/ui/gfx/switches.cc b/ui/gfx/switches.cc index e1e966b..e1943d59 100644 --- a/ui/gfx/switches.cc +++ b/ui/gfx/switches.cc
@@ -18,6 +18,11 @@ const char kEnableHarfBuzzRenderText[] = "enable-harfbuzz-rendertext"; #endif +// Force disables font subpixel positioning. This affects the character glyph +// sharpness, kerning, hinting and layout. +const char kDisableFontSubpixelPositioning[] = + "disable-font-subpixel-positioning"; + // Run in headless mode, i.e., without a UI or display server dependencies. const char kHeadless[] = "headless";
diff --git a/ui/gfx/switches.h b/ui/gfx/switches.h index 491fc1fb..dc4921d 100644 --- a/ui/gfx/switches.h +++ b/ui/gfx/switches.h
@@ -19,6 +19,8 @@ GFX_SWITCHES_EXPORT extern const char kEnableHarfBuzzRenderText[]; #endif +GFX_SWITCHES_EXPORT extern const char kDisableFontSubpixelPositioning[]; + GFX_SWITCHES_EXPORT extern const char kHeadless[]; } // namespace switches
diff --git a/ui/gl/gl_surface.cc b/ui/gl/gl_surface.cc index 263441d..a2d49588 100644 --- a/ui/gl/gl_surface.cc +++ b/ui/gl/gl_surface.cc
@@ -12,6 +12,7 @@ #include "base/stl_util.h" #include "base/threading/thread_local.h" #include "base/trace_event/trace_event.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gfx/swap_result.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_image.h" @@ -162,7 +163,8 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) { + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) { NOTIMPLEMENTED(); return false; } @@ -233,6 +235,11 @@ NOTREACHED(); } +void GLSurface::SetUsePlaneGpuFences() { + // It's fine for GLSurface derived classes to ignore the fences + // and synchronize using other methods. +} + GLSurface* GLSurface::GetCurrent() { return current_surface_.Pointer()->Get(); } @@ -409,14 +416,17 @@ surface_->SetVSyncEnabled(enabled); } -bool GLSurfaceAdapter::ScheduleOverlayPlane(int z_order, - gfx::OverlayTransform transform, - GLImage* image, - const gfx::Rect& bounds_rect, - const gfx::RectF& crop_rect, - bool enable_blend) { +bool GLSurfaceAdapter::ScheduleOverlayPlane( + int z_order, + gfx::OverlayTransform transform, + GLImage* image, + const gfx::Rect& bounds_rect, + const gfx::RectF& crop_rect, + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) { return surface_->ScheduleOverlayPlane(z_order, transform, image, bounds_rect, - crop_rect, enable_blend); + crop_rect, enable_blend, + std::move(gpu_fence)); } bool GLSurfaceAdapter::ScheduleDCLayer( @@ -472,6 +482,10 @@ return surface_->SetEnableSwapTimestamps(); } +void GLSurfaceAdapter::SetUsePlaneGpuFences() { + surface_->SetUsePlaneGpuFences(); +} + GLSurfaceAdapter::~GLSurfaceAdapter() {} scoped_refptr<GLSurface> InitializeGLSurfaceWithFormat(
diff --git a/ui/gl/gl_surface.h b/ui/gl/gl_surface.h index 452e28a..4afb243 100644 --- a/ui/gl/gl_surface.h +++ b/ui/gl/gl_surface.h
@@ -25,6 +25,7 @@ #include "ui/gl/gl_surface_format.h" namespace gfx { +class GpuFence; class VSyncProvider; } @@ -233,7 +234,8 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend); + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence); // Schedule a CALayer to be shown at swap time. // All arguments correspond to their CALayer properties. @@ -284,6 +286,10 @@ virtual bool SupportsSwapTimestamps() const; virtual void SetEnableSwapTimestamps(); + // Tells the surface to use the provided plane GPU fences when swapping + // buffers. + virtual void SetUsePlaneGpuFences(); + static GLSurface* GetCurrent(); protected: @@ -362,7 +368,8 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) override; + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) override; bool ScheduleDCLayer(const ui::DCRendererLayerParams& params) override; bool SetEnableDCLayers(bool enable) override; bool IsSurfaceless() const override; @@ -376,6 +383,7 @@ void SetRelyOnImplicitSync() override; bool SupportsSwapTimestamps() const override; void SetEnableSwapTimestamps() override; + void SetUsePlaneGpuFences() override; GLSurface* surface() const { return surface_.get(); }
diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc index 31913ff..881c006c 100644 --- a/ui/gl/gl_surface_egl.cc +++ b/ui/gl/gl_surface_egl.cc
@@ -21,6 +21,7 @@ #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "ui/gfx/geometry/rect.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gl/angle_platform_impl.h" #include "ui/gl/egl_util.h" #include "ui/gl/gl_context.h" @@ -1404,13 +1405,15 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) { + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) { #if !defined(OS_ANDROID) NOTIMPLEMENTED(); return false; #else pending_overlays_.push_back(GLSurfaceOverlay(z_order, transform, image, - bounds_rect, crop_rect, true)); + bounds_rect, crop_rect, true, + std::move(gpu_fence))); return true; #endif }
diff --git a/ui/gl/gl_surface_egl.h b/ui/gl/gl_surface_egl.h index f76de8b..4f9e859 100644 --- a/ui/gl/gl_surface_egl.h +++ b/ui/gl/gl_surface_egl.h
@@ -137,7 +137,8 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) override; + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) override; bool FlipsVertically() const override; bool BuffersFlipped() const override;
diff --git a/ui/gl/gl_surface_overlay.cc b/ui/gl/gl_surface_overlay.cc index e173562..534662fa 100644 --- a/ui/gl/gl_surface_overlay.cc +++ b/ui/gl/gl_surface_overlay.cc
@@ -6,6 +6,7 @@ #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_f.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/overlay_transform.h" #include "ui/gl/gl_image.h" @@ -17,15 +18,17 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) : z_order_(z_order), transform_(transform), image_(image), bounds_rect_(bounds_rect), crop_rect_(crop_rect), - enable_blend_(enable_blend) {} + enable_blend_(enable_blend), + gpu_fence_(std::move(gpu_fence)) {} -GLSurfaceOverlay::GLSurfaceOverlay(const GLSurfaceOverlay& other) = default; +GLSurfaceOverlay::GLSurfaceOverlay(GLSurfaceOverlay&& other) = default; GLSurfaceOverlay::~GLSurfaceOverlay() {} @@ -33,7 +36,7 @@ gfx::AcceleratedWidget widget) const { return image_->ScheduleOverlayPlane(widget, z_order_, transform_, bounds_rect_, crop_rect_, enable_blend_, - /* gpu_fence */ nullptr); + gpu_fence_.get()); } void GLSurfaceOverlay::Flush() const {
diff --git a/ui/gl/gl_surface_overlay.h b/ui/gl/gl_surface_overlay.h index 7adba32..9dc6773d 100644 --- a/ui/gl/gl_surface_overlay.h +++ b/ui/gl/gl_surface_overlay.h
@@ -14,6 +14,10 @@ #include "ui/gl/gl_export.h" #include "ui/gl/gl_image.h" +namespace gfx { +class GpuFence; +} // namespace gfx + namespace gl { // For saving the properties of a GLImage overlay plane and scheduling it later. @@ -24,12 +28,15 @@ GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend); - GLSurfaceOverlay(const GLSurfaceOverlay& other); + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence); + GLSurfaceOverlay(GLSurfaceOverlay&& other); ~GLSurfaceOverlay(); // Schedule the image as an overlay plane to be shown at swap time for - // |widget|. + // |widget|. The caller needs to ensure that after calling this method the + // object will stay valid for as long as the associated gpu fence needs to + // remain valid (typically until after displaying the overlay). bool ScheduleOverlayPlane(gfx::AcceleratedWidget widget) const; void Flush() const; @@ -41,6 +48,7 @@ gfx::Rect bounds_rect_; gfx::RectF crop_rect_; bool enable_blend_; + std::unique_ptr<gfx::GpuFence> gpu_fence_; }; } // namespace gl
diff --git a/ui/gl/gl_surface_stub.cc b/ui/gl/gl_surface_stub.cc index eda3a501..10d4dec 100644 --- a/ui/gl/gl_surface_stub.cc +++ b/ui/gl/gl_surface_stub.cc
@@ -4,6 +4,7 @@ #include "ui/gl/gl_surface_stub.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" namespace gl { @@ -24,8 +25,10 @@ gfx::SwapResult GLSurfaceStub::SwapBuffers( const PresentationCallback& callback) { - callback.Run(gfx::PresentationFeedback(base::TimeTicks::Now(), - base::TimeDelta(), 0 /* flags */)); + gfx::PresentationFeedback feedback(base::TimeTicks::Now(), base::TimeDelta(), + 0 /* flags */); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(callback, std::move(feedback))); return gfx::SwapResult::SWAP_ACK; }
diff --git a/ui/gl/gl_switches_util.cc b/ui/gl/gl_switches_util.cc index 61402e6..d80dac6 100644 --- a/ui/gl/gl_switches_util.cc +++ b/ui/gl/gl_switches_util.cc
@@ -14,7 +14,7 @@ bool IsPresentationCallbackEnabled() { // TODO(peng): always enable once 776877 is fixed. #if defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_LINUX) || \ - defined(OS_WIN) + defined(OS_WIN) || defined(OS_MACOSX) return true; #else return base::CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/ui/keyboard/BUILD.gn b/ui/keyboard/BUILD.gn index 6e7c566..e037a03 100644 --- a/ui/keyboard/BUILD.gn +++ b/ui/keyboard/BUILD.gn
@@ -20,7 +20,6 @@ "container_fullscreen_behavior.h", "display_util.cc", "display_util.h", - "drag_descriptor.cc", "drag_descriptor.h", "keyboard_controller.cc", "keyboard_controller.h",
diff --git a/ui/keyboard/container_floating_behavior.cc b/ui/keyboard/container_floating_behavior.cc index d0dcb86..1d6b9ce 100644 --- a/ui/keyboard/container_floating_behavior.cc +++ b/ui/keyboard/container_floating_behavior.cc
@@ -215,8 +215,8 @@ // If there is no active drag descriptor, start a new one. bool drag_started_by_touch = (type == ui::ET_TOUCH_PRESSED); drag_descriptor_.reset( - new DragDescriptor(keyboard_bounds.origin(), kb_offset, - drag_started_by_touch, pointer_id)); + new DragDescriptor{keyboard_bounds.origin(), kb_offset, + drag_started_by_touch, pointer_id}); } break; @@ -224,26 +224,26 @@ case ui::ET_TOUCH_MOVED: if (!drag_descriptor_) { // do nothing - } else if (drag_descriptor_->is_touch_drag() != + } else if (drag_descriptor_->is_touch_drag != (type == ui::ET_TOUCH_MOVED)) { // If the event isn't of the same type that started the drag, end the // drag to prevent confusion. drag_descriptor_ = nullptr; - } else if (drag_descriptor_->pointer_id() != pointer_id) { + } else if (drag_descriptor_->pointer_id != pointer_id) { // do nothing. } else { // Drag continues. // If there is an active drag, use it to determine the new location // of the keyboard. const gfx::Point original_click_location = - drag_descriptor_->original_keyboard_location() + - drag_descriptor_->original_click_offset(); + drag_descriptor_->original_keyboard_location + + drag_descriptor_->original_click_offset; const gfx::Point current_drag_location = keyboard_bounds.origin() + kb_offset; const gfx::Vector2d cumulative_drag_offset = current_drag_location - original_click_location; const gfx::Point new_keyboard_location = - drag_descriptor_->original_keyboard_location() + + drag_descriptor_->original_keyboard_location + cumulative_drag_offset; gfx::Rect new_bounds_in_local = gfx::Rect(new_keyboard_location, keyboard_bounds.size());
diff --git a/ui/keyboard/container_floating_behavior.h b/ui/keyboard/container_floating_behavior.h index 4d3b81b..00a63c4 100644 --- a/ui/keyboard/container_floating_behavior.h +++ b/ui/keyboard/container_floating_behavior.h
@@ -82,7 +82,7 @@ // Current state of a cursor drag to move the keyboard, if one exists. // Otherwise nullptr. - std::unique_ptr<DragDescriptor> drag_descriptor_ = nullptr; + std::unique_ptr<const DragDescriptor> drag_descriptor_ = nullptr; gfx::Rect draggable_area_ = gfx::Rect(); };
diff --git a/ui/keyboard/drag_descriptor.cc b/ui/keyboard/drag_descriptor.cc deleted file mode 100644 index edadab9..0000000 --- a/ui/keyboard/drag_descriptor.cc +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/keyboard/drag_descriptor.h" - -#include "ui/events/event.h" -#include "ui/gfx/geometry/point.h" -#include "ui/gfx/geometry/vector2d.h" - -namespace keyboard { - -DragDescriptor::DragDescriptor(const gfx::Point& keyboard_location, - const gfx::Vector2d& click_offset, - bool is_touch_drag, - ui::PointerId pointer_id) - : original_keyboard_location_(keyboard_location), - original_click_offset_(click_offset), - is_touch_drag_(is_touch_drag), - pointer_id_(pointer_id) {} - -} // namespace keyboard
diff --git a/ui/keyboard/drag_descriptor.h b/ui/keyboard/drag_descriptor.h index ff792096..9da3586 100644 --- a/ui/keyboard/drag_descriptor.h +++ b/ui/keyboard/drag_descriptor.h
@@ -16,31 +16,17 @@ // the offset of the original click on the keyboard along with the original // location of the keyboard and uses incoming mouse move events to determine // where the keyboard should be placed using those offsets. -class DragDescriptor { - public: - DragDescriptor(const gfx::Point& keyboard_location, - const gfx::Vector2d& click_offset, - bool is_touch_drag, - ui::PointerId pointer_id); - - gfx::Point original_keyboard_location() const { - return original_keyboard_location_; - } - gfx::Vector2d original_click_offset() const { return original_click_offset_; } - bool is_touch_drag() { return is_touch_drag_; } - ui::PointerId pointer_id() { return pointer_id_; } - - private: - const gfx::Point original_keyboard_location_; - const gfx::Vector2d original_click_offset_; +struct DragDescriptor { + gfx::Point original_keyboard_location; + gfx::Vector2d original_click_offset; // Distinguish whether the current drag is from a touch event or mouse event, // so drag/move events can be filtered accordingly - const bool is_touch_drag_; + bool is_touch_drag; // The pointer ID provided by the touch event to disambiguate multiple // touch points. If this is a mouse event, then this value is -1. - const ui::PointerId pointer_id_; + ui::PointerId pointer_id; }; } // namespace keyboard
diff --git a/ui/latency/latency_histogram_macros.h b/ui/latency/latency_histogram_macros.h index 4de0452..1d43f345 100644 --- a/ui/latency/latency_histogram_macros.h +++ b/ui/latency/latency_histogram_macros.h
@@ -12,7 +12,7 @@ DCHECK(!start.first_event_time.is_null()); \ DCHECK(!end.last_event_time.is_null()); -// Event latency that is mostly under 1 second. We should only use 100 buckets +// Event latency that is mostly under 2 seconds. We should only use 100 buckets // when needed. #define UMA_HISTOGRAM_INPUT_LATENCY_HIGH_RESOLUTION_MICROSECONDS(name, start, \ end) \ @@ -22,7 +22,7 @@ std::max( \ static_cast<int64_t>(0), \ (end.last_event_time - start.first_event_time).InMicroseconds()), \ - 1, 1000000, 100); + 1, 2000000, 100); #define UMA_HISTOGRAM_INPUT_LATENCY_MILLISECONDS(name, start, end) \ CONFIRM_EVENT_TIMES_EXIST(start, end) \
diff --git a/ui/latency/latency_tracker.cc b/ui/latency/latency_tracker.cc index 78a33ea..ec33d69 100644 --- a/ui/latency/latency_tracker.cc +++ b/ui/latency/latency_tracker.cc
@@ -175,6 +175,13 @@ &original_component)) { scroll_name = "ScrollBegin"; DCHECK(input_modality == "Wheel" || input_modality == "Touch"); + + // This UMA metric tracks the performance of overall scrolling as a high + // level metric. + UMA_HISTOGRAM_INPUT_LATENCY_HIGH_RESOLUTION_MICROSECONDS( + "Event.Latency.ScrollBegin.TimeToScrollUpdateSwapBegin", + original_component, gpu_swap_begin_component); + // This UMA metric tracks the time between the final frame swap for the // first scroll event in a sequence and the original timestamp of that // scroll event's underlying touch/wheel event. @@ -193,6 +200,13 @@ &original_component)) { scroll_name = "ScrollUpdate"; DCHECK(input_modality == "Wheel" || input_modality == "Touch"); + + // This UMA metric tracks the performance of overall scrolling as a high + // level metric. + UMA_HISTOGRAM_INPUT_LATENCY_HIGH_RESOLUTION_MICROSECONDS( + "Event.Latency.ScrollUpdate.TimeToScrollUpdateSwapBegin", + original_component, gpu_swap_begin_component); + // This UMA metric tracks the time from when the original touch/wheel event // is created to when the scroll gesture results in final frame swap. // First scroll events are excluded from this metric.
diff --git a/ui/ozone/demo/skia/skia_surfaceless_gl_renderer.cc b/ui/ozone/demo/skia/skia_surfaceless_gl_renderer.cc index 558b4df..c418c58d 100644 --- a/ui/ozone/demo/skia/skia_surfaceless_gl_renderer.cc +++ b/ui/ozone/demo/skia/skia_surfaceless_gl_renderer.cc
@@ -19,6 +19,7 @@ #include "third_party/skia/include/gpu/gl/GrGLInterface.h" #include "ui/display/types/display_snapshot.h" #include "ui/gfx/geometry/rect_conversions.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_image.h" @@ -245,13 +246,15 @@ CHECK(overlay_list.front().overlay_handled); gl_surface_->ScheduleOverlayPlane( 0, gfx::OVERLAY_TRANSFORM_NONE, buffers_[back_buffer_]->image(), - primary_plane_rect_, gfx::RectF(0, 0, 1, 1), /* enable_blend */ true); + primary_plane_rect_, gfx::RectF(0, 0, 1, 1), /* enable_blend */ true, + /* gpu_fence */ nullptr); } if (overlay_buffer_[0] && overlay_list.back().overlay_handled) { gl_surface_->ScheduleOverlayPlane( 1, gfx::OVERLAY_TRANSFORM_NONE, overlay_buffer_[back_buffer_]->image(), - overlay_rect, gfx::RectF(0, 0, 1, 1), /* enable_blend */ true); + overlay_rect, gfx::RectF(0, 0, 1, 1), /* enable_blend */ true, + /* gpu_fence */ nullptr); } back_buffer_ ^= 1;
diff --git a/ui/ozone/demo/surfaceless_gl_renderer.cc b/ui/ozone/demo/surfaceless_gl_renderer.cc index cb4314f..e87d4d1 100644 --- a/ui/ozone/demo/surfaceless_gl_renderer.cc +++ b/ui/ozone/demo/surfaceless_gl_renderer.cc
@@ -13,6 +13,7 @@ #include "base/trace_event/trace_event.h" #include "ui/display/types/display_snapshot.h" #include "ui/gfx/geometry/rect_conversions.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_image.h" @@ -230,13 +231,15 @@ CHECK(overlay_list.front().overlay_handled); surface_->ScheduleOverlayPlane( 0, gfx::OVERLAY_TRANSFORM_NONE, buffers_[back_buffer_]->image(), - primary_plane_rect_, gfx::RectF(0, 0, 1, 1), false); + primary_plane_rect_, gfx::RectF(0, 0, 1, 1), false, + /* gpu_fence */ nullptr); } if (overlay_buffers_[0] && overlay_list.back().overlay_handled) { surface_->ScheduleOverlayPlane(1, gfx::OVERLAY_TRANSFORM_NONE, overlay_buffers_[back_buffer_]->image(), - overlay_rect, gfx::RectF(0, 0, 1, 1), false); + overlay_rect, gfx::RectF(0, 0, 1, 1), false, + /* gpu_fence */ nullptr); } back_buffer_ ^= 1;
diff --git a/ui/ozone/platform/cast/gl_surface_cast.cc b/ui/ozone/platform/cast/gl_surface_cast.cc index bd4ef595..b2eb186 100644 --- a/ui/ozone/platform/cast/gl_surface_cast.cc +++ b/ui/ozone/platform/cast/gl_surface_cast.cc
@@ -97,12 +97,18 @@ has_alpha); } -bool GLSurfaceCast::ScheduleOverlayPlane(int z_order, - gfx::OverlayTransform transform, - gl::GLImage* image, - const gfx::Rect& bounds_rect, - const gfx::RectF& crop_rect, - bool enable_blend) { +bool GLSurfaceCast::ScheduleOverlayPlane( + int z_order, + gfx::OverlayTransform transform, + gl::GLImage* image, + const gfx::Rect& bounds_rect, + const gfx::RectF& crop_rect, + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) { + // Currently the Ozone-Cast platform doesn't use the gpu_fence, so we don't + // propagate it further. If this changes we will need to store the gpu fence + // to ensure it stays valid for as long as the operation needs it, and pass a + // pointer to the fence in the call below. return image->ScheduleOverlayPlane(widget_, z_order, transform, bounds_rect, crop_rect, enable_blend, /* gpu_fence */ nullptr);
diff --git a/ui/ozone/platform/cast/gl_surface_cast.h b/ui/ozone/platform/cast/gl_surface_cast.h index e273a82..084c409 100644 --- a/ui/ozone/platform/cast/gl_surface_cast.h +++ b/ui/ozone/platform/cast/gl_surface_cast.h
@@ -38,7 +38,8 @@ gl::GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) override; + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) override; EGLConfig GetConfig() override; protected:
diff --git a/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc index dfdda166..63840ef15 100644 --- a/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc +++ b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
@@ -10,6 +10,7 @@ #include "base/logging.h" #include "base/task_scheduler/post_task.h" #include "base/trace_event/trace_event.h" +#include "ui/gfx/gpu_fence.h" #include "ui/gfx/presentation_feedback.h" #include "ui/ozone/common/egl_util.h" #include "ui/ozone/platform/drm/gpu/drm_vsync_provider.h" @@ -63,14 +64,17 @@ return gfx::SwapResult::SWAP_FAILED; } -bool GbmSurfaceless::ScheduleOverlayPlane(int z_order, - gfx::OverlayTransform transform, - gl::GLImage* image, - const gfx::Rect& bounds_rect, - const gfx::RectF& crop_rect, - bool enable_blend) { - unsubmitted_frames_.back()->overlays.push_back(gl::GLSurfaceOverlay( - z_order, transform, image, bounds_rect, crop_rect, enable_blend)); +bool GbmSurfaceless::ScheduleOverlayPlane( + int z_order, + gfx::OverlayTransform transform, + gl::GLImage* image, + const gfx::Rect& bounds_rect, + const gfx::RectF& crop_rect, + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) { + unsubmitted_frames_.back()->overlays.push_back( + gl::GLSurfaceOverlay(z_order, transform, image, bounds_rect, crop_rect, + enable_blend, std::move(gpu_fence))); return true; }
diff --git a/ui/ozone/platform/drm/gpu/gbm_surfaceless.h b/ui/ozone/platform/drm/gpu/gbm_surfaceless.h index 71c3022..9d5459fd 100644 --- a/ui/ozone/platform/drm/gpu/gbm_surfaceless.h +++ b/ui/ozone/platform/drm/gpu/gbm_surfaceless.h
@@ -42,7 +42,8 @@ gl::GLImage* image, const gfx::Rect& bounds_rect, const gfx::RectF& crop_rect, - bool enable_blend) override; + bool enable_blend, + std::unique_ptr<gfx::GpuFence> gpu_fence) override; bool IsOffscreen() override; gfx::VSyncProvider* GetVSyncProvider() override; bool SupportsPresentationCallback() override;
diff --git a/ui/strings/translations/ui_strings_pt-BR.xtb b/ui/strings/translations/ui_strings_pt-BR.xtb index 81faabe..c0a02b8 100644 --- a/ui/strings/translations/ui_strings_pt-BR.xtb +++ b/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -86,7 +86,7 @@ <translation id="5266161281976477809">Triângulo de divulgação</translation> <translation id="528468243742722775">End</translation> <translation id="5329858601952122676">&Excluir</translation> -<translation id="5463830097259460683">Emoticons e símbolos</translation> +<translation id="5463830097259460683">Emojis e símbolos</translation> <translation id="5476505524087279545">desmarcar</translation> <translation id="5574202486608032840">Sistema <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation> <translation id="5583640892426849032">Backspace</translation> @@ -138,7 +138,7 @@ <translation id="7389409599945284130">- <ph name="MESSAGE" /></translation> <translation id="7410957453383678442">{MINUTES,plural, =1{Um minuto restante}one{# minutos restantes}other{# minutos restantes}}</translation> <translation id="7460907917090416791"><ph name="QUANTITY" /> TB</translation> -<translation id="7507604095951736240">Emoticons</translation> +<translation id="7507604095951736240">Emojis</translation> <translation id="7658239707568436148">Cancelar</translation> <translation id="7781829728241885113">Ontem</translation> <translation id="7814458197256864873">Co&piar</translation>
diff --git a/ui/views/examples/textfield_example.cc b/ui/views/examples/textfield_example.cc index 6e4c5fe..8217a52 100644 --- a/ui/views/examples/textfield_example.cc +++ b/ui/views/examples/textfield_example.cc
@@ -30,6 +30,7 @@ disabled_(nullptr), read_only_(nullptr), invalid_(nullptr), + rtl_(nullptr), show_password_(nullptr), clear_all_(nullptr), append_(nullptr), @@ -51,6 +52,8 @@ read_only_->SetText(ASCIIToUTF16("read only")); invalid_ = new Textfield(); invalid_->SetInvalid(true); + rtl_ = new Textfield(); + rtl_->ChangeTextDirectionAndLayoutAlignment(base::i18n::RIGHT_TO_LEFT); show_password_ = new LabelButton(this, ASCIIToUTF16("Show password")); set_background_ = new LabelButton(this, ASCIIToUTF16("Set non-default background")); @@ -81,6 +84,7 @@ MakeRow(new Label(ASCIIToUTF16("Disabled:")), disabled_); MakeRow(new Label(ASCIIToUTF16("Read Only:")), read_only_); MakeRow(new Label(ASCIIToUTF16("Invalid:")), invalid_); + MakeRow(new Label(ASCIIToUTF16("RTL:")), rtl_); MakeRow(new Label(ASCIIToUTF16("Name:")), nullptr); MakeRow(show_password_, nullptr); MakeRow(set_background_, nullptr); @@ -124,18 +128,21 @@ disabled_->SetText(empty); read_only_->SetText(empty); invalid_->SetText(empty); + rtl_->SetText(empty); } else if (sender == append_) { name_->AppendText(ASCIIToUTF16("[append]")); password_->AppendText(ASCIIToUTF16("[append]")); disabled_->SetText(ASCIIToUTF16("[append]")); read_only_->AppendText(ASCIIToUTF16("[append]")); invalid_->AppendText(ASCIIToUTF16("[append]")); + rtl_->AppendText(ASCIIToUTF16("[append]")); } else if (sender == set_) { name_->SetText(ASCIIToUTF16("[set]")); password_->SetText(ASCIIToUTF16("[set]")); disabled_->SetText(ASCIIToUTF16("[set]")); read_only_->SetText(ASCIIToUTF16("[set]")); invalid_->SetText(ASCIIToUTF16("[set]")); + rtl_->SetText(ASCIIToUTF16("[set]")); } else if (sender == set_style_) { if (!name_->text().empty()) { name_->SetColor(SK_ColorGREEN);
diff --git a/ui/views/examples/textfield_example.h b/ui/views/examples/textfield_example.h index 730797f..b2b5fd4a 100644 --- a/ui/views/examples/textfield_example.h +++ b/ui/views/examples/textfield_example.h
@@ -47,6 +47,7 @@ Textfield* disabled_; Textfield* read_only_; Textfield* invalid_; + Textfield* rtl_; // Various buttons to control textfield. LabelButton* show_password_;
diff --git a/ui/views/linux_ui/linux_ui.h b/ui/views/linux_ui/linux_ui.h index 26c49ae3..07f30df 100644 --- a/ui/views/linux_ui/linux_ui.h +++ b/ui/views/linux_ui/linux_ui.h
@@ -196,6 +196,9 @@ // toolkit does not support drawing client-side navigation buttons. virtual std::unique_ptr<NavButtonProvider> CreateNavButtonProvider() = 0; #endif + + // Returns a map of KeyboardEvent code to KeyboardEvent key values. + virtual base::flat_map<std::string, std::string> GetKeyboardLayoutMap() = 0; }; } // namespace views
diff --git a/ui/views/mus/aura_init.cc b/ui/views/mus/aura_init.cc index 0d86fe4..904b06f9 100644 --- a/ui/views/mus/aura_init.cc +++ b/ui/views/mus/aura_init.cc
@@ -114,7 +114,7 @@ // Initialize the skia font code to go ask fontconfig underneath. #if defined(OS_LINUX) font_loader_ = sk_make_sp<font_service::FontLoader>(connector); - SkFontConfigInterface::SetGlobal(font_loader_.get()); + SkFontConfigInterface::SetGlobal(font_loader_); // Initialize static default font, by running this now, before any other apps // load, we ensure all the state is set up.
diff --git a/ui/views/mus/desktop_window_tree_host_mus.cc b/ui/views/mus/desktop_window_tree_host_mus.cc index ae12a5a..0233bc3 100644 --- a/ui/views/mus/desktop_window_tree_host_mus.cc +++ b/ui/views/mus/desktop_window_tree_host_mus.cc
@@ -513,7 +513,11 @@ } gfx::Rect DesktopWindowTreeHostMus::GetWindowBoundsInScreen() const { - return gfx::ConvertRectToDIP(GetScaleFactor(), GetBoundsInPixels()); + gfx::Point display_origin = GetDisplay().bounds().origin(); + gfx::Rect bounds_in_dip = + gfx::ConvertRectToDIP(GetScaleFactor(), GetBoundsInPixels()); + bounds_in_dip.Offset(display_origin.x(), display_origin.y()); + return bounds_in_dip; } gfx::Rect DesktopWindowTreeHostMus::GetClientAreaBoundsInScreen() const {
diff --git a/ui/views/mus/desktop_window_tree_host_mus_unittest.cc b/ui/views/mus/desktop_window_tree_host_mus_unittest.cc index f375ba90..769904d7 100644 --- a/ui/views/mus/desktop_window_tree_host_mus_unittest.cc +++ b/ui/views/mus/desktop_window_tree_host_mus_unittest.cc
@@ -23,6 +23,7 @@ #include "ui/events/base_event_utils.h" #include "ui/events/event.h" #include "ui/views/mus/mus_client.h" +#include "ui/views/mus/screen_mus.h" #include "ui/views/test/views_test_base.h" #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_delegate.h" @@ -367,4 +368,32 @@ } } +TEST_F(DesktopWindowTreeHostMusTest, GetWindowBoundsInScreen) { + ScreenMus* screen = MusClient::Get()->screen(); + + // Add a second display to the right of the primary. + const int64_t kSecondDisplayId = 222; + screen->display_list().AddDisplay( + display::Display(kSecondDisplayId, gfx::Rect(800, 0, 640, 480)), + display::DisplayList::Type::NOT_PRIMARY); + + // Verify bounds for a widget on the first display. + Widget widget1; + Widget::InitParams params1(Widget::InitParams::TYPE_WINDOW); + params1.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params1.bounds = gfx::Rect(0, 0, 100, 100); + widget1.Init(params1); + EXPECT_EQ(gfx::Rect(0, 0, 100, 100), widget1.GetWindowBoundsInScreen()); + + // Verify bounds for a widget on the secondary display. + Widget widget2; + Widget::InitParams params2(Widget::InitParams::TYPE_WINDOW); + params2.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params2.bounds = gfx::Rect(0, 0, 100, 100); + widget2.Init(params2); + aura::WindowTreeHostMus::ForWindow(widget2.GetNativeWindow()) + ->set_display_id(kSecondDisplayId); + EXPECT_EQ(gfx::Rect(800, 0, 100, 100), widget2.GetWindowBoundsInScreen()); +} + } // namespace views
diff --git a/ui/views/view.h b/ui/views/view.h index 8b87487..463438a 100644 --- a/ui/views/view.h +++ b/ui/views/view.h
@@ -419,6 +419,7 @@ // Views as |children_|. The default implementation returns |children_|, // subclass if the paint order should differ from that of |children_|. // This order is taken into account by painting and targeting implementations. + // NOTE: see SetPaintToLayer() for details on painting and views with layers. virtual View::Views GetChildrenInZOrder(); // Transformations ----------------------------------------------------------- @@ -439,6 +440,10 @@ // . SetPaintToLayer(ui::LayerType) has been invoked. // View creates the Layer only when it exists in a Widget with a non-NULL // Compositor. + // Enabling a view to have a layer impacts painting of sibling views. + // Specifically views with layers effectively paint in a z-order that is + // always above any sibling views that do not have layers. This happens + // regardless of the ordering returned by GetChildrenInZOrder(). void SetPaintToLayer(ui::LayerType layer_type = ui::LAYER_TEXTURED); // Please refer to the comments above the DestroyLayerImpl() function for
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc index e249e6100..288b92c 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -585,6 +585,12 @@ return keyboard_hook_ && keyboard_hook_->IsKeyLocked(dom_code); } +base::flat_map<std::string, std::string> +DesktopWindowTreeHostWin::GetKeyboardLayoutMap() { + NOTIMPLEMENTED(); + return {}; +} + void DesktopWindowTreeHostWin::SetCursorNative(gfx::NativeCursor cursor) { ui::CursorLoaderWin cursor_loader; cursor_loader.SetPlatformCursor(&cursor);
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h index dd3784c..327e4fb 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -137,6 +137,7 @@ base::Optional<base::flat_set<ui::DomCode>> dom_codes) override; void ReleaseSystemKeyEventCapture() override; bool IsKeyLocked(ui::DomCode dom_code) override; + base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override; void SetCursorNative(gfx::NativeCursor cursor) override; void OnCursorVisibilityChangedNative(bool show) override; void MoveCursorToScreenLocationInPixels(
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc index 02040627..cbfbfcbd 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -2369,6 +2369,13 @@ return desktop_native_widget_aura_->content_window(); } +base::flat_map<std::string, std::string> +DesktopWindowTreeHostX11::GetKeyboardLayoutMap() { + if (views::LinuxUI::instance()) + return views::LinuxUI::instance()->GetKeyboardLayoutMap(); + return {}; +} + //////////////////////////////////////////////////////////////////////////////// // DesktopWindowTreeHost, public:
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h index cf991151..f424728 100644 --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
@@ -88,6 +88,9 @@ // Disables event listening to make |dialog| modal. std::unique_ptr<base::Closure> DisableEventListening(); + // Returns a map of KeyboardEvent code to KeyboardEvent key values. + base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override; + protected: // Overridden from DesktopWindowTreeHost: void Init(const Widget::InitParams& params) override;
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html b/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html index ccf6f83c..af03ef1 100644 --- a/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html +++ b/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html
@@ -1,6 +1,7 @@ <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/cr_elements/hidden_style_css.html"> +<link rel="import" href="chrome://resources/cr_elements/paper_tabs_style_css.html"> <link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html"> <link rel="import" href="chrome://resources/html/i18n_behavior.html"> @@ -18,26 +19,12 @@ <dom-module id="certificate-manager"> <template> - <style include="cr-hidden-style"> - :host { - --paper-tabs-selection-bar-color: var(--paper-blue-500); - } - + <style include="cr-hidden-style paper-tabs-style"> paper-tabs { font-size: inherit; height: 40px; margin-bottom: 24px; } - - paper-tab { - --paper-tab-content: { - color: var(--paper-grey-800); - }; - --paper-tab-content-unselected: { - color: var(--paper-grey-600); - }; - text-transform: uppercase; - } </style> <template is="dom-if" if="[[showCaTrustEditDialog_]]" restamp>
diff --git a/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.html b/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.html index 586d23a2..e74d41f 100644 --- a/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.html +++ b/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.html
@@ -122,7 +122,7 @@ <!-- Mousing down then moving cursor out of this element should not trigger click on the parent. With <button> this works as expected, while <div> does not. --> - <button id="checkbox" tabindex="-1"> + <button id="checkbox" tabindex="-1" on-focus="onButtonFocus_"> <span id="checkmark"></span> </button> <div id="label-container"><slot></slot></div>
diff --git a/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.js b/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.js index 3752bf5..671eb38 100644 --- a/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.js +++ b/ui/webui/resources/cr_elements/cr_checkbox/cr_checkbox.js
@@ -132,6 +132,14 @@ this.toggleState_(true); }, + /** @private */ + onButtonFocus_: function() { + // Forward 'focus' to the enclosing element, so that a subsequent 'Space' + // keystroke does not trigger both 'keypress' and 'click' which would toggle + // the state twice erroneously. + this.focus(); + }, + // customize the element's ripple _createRipple: function() { this._rippleContainer = this.$.checkbox;
diff --git a/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.html b/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.html index 7d30684..e311cd5 100644 --- a/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.html +++ b/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.html
@@ -97,7 +97,7 @@ event on the parent and unexpectedly modify the toggle's state (see context at crbug.com/689158 and crbug.com/768555). The 'click' event is not fired when the <button> wrapper is used. --> - <button tabindex="-1"> + <button tabindex="-1" on-focus="onButtonFocus_"> <span id="bar"></span> <span id="knob"></span> </button>
diff --git a/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.js b/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.js index 4e434f0..1709d97 100644 --- a/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.js +++ b/ui/webui/resources/cr_elements/cr_toggle/cr_toggle.js
@@ -173,6 +173,14 @@ } }, + /** @private */ + onButtonFocus_: function() { + // Forward 'focus' to the enclosing element, so that a subsequent 'Space' + // keystroke does not trigger both 'keypress' and 'click' which would toggle + // the state twice erroneously. + this.focus(); + }, + // customize the element's ripple _createRipple: function() { this._rippleContainer = this.$.knob;
diff --git a/ui/webui/resources/cr_elements/paper_tabs_style_css.html b/ui/webui/resources/cr_elements/paper_tabs_style_css.html new file mode 100644 index 0000000..906172b --- /dev/null +++ b/ui/webui/resources/cr_elements/paper_tabs_style_css.html
@@ -0,0 +1,24 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + +<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html"> + +<!-- Common paper-tabs styling for Material Design WebUI. --> +<dom-module id="paper-tabs-style"> + <template> + <style> + paper-tabs { + --paper-tabs-selection-bar-color: var(--google-blue-600); + } + + paper-tab { + --paper-tab-content: { + color: var(--google-blue-600); + }; + --paper-tab-content-unselected: { + color: var(--paper-grey-600); + }; + } + </style> + </template> +</dom-module> \ No newline at end of file
diff --git a/ui/webui/resources/cr_elements_resources.grdp b/ui/webui/resources/cr_elements_resources.grdp index 0c8e879..d423816 100644 --- a/ui/webui/resources/cr_elements_resources.grdp +++ b/ui/webui/resources/cr_elements_resources.grdp
@@ -304,6 +304,10 @@ file="../../webui/resources/cr_elements/paper_input_style_css.html" type="chrome_html" compress="gzip" /> + <structure name="IDR_CR_ELEMENTS_PAPER_TABS_STYLE_CSS_HTML" + file="../../webui/resources/cr_elements/paper_tabs_style_css.html" + type="chrome_html" + compress="gzip" /> <structure name="IDR_CR_ELEMENTS_SEARCH_HIGHLIGHT_STYLE_CSS_HTML" file="../../webui/resources/cr_elements/search_highlight_style_css.html" type="chrome_html"