mirror of
https://github.com/Alex313031/thorium.git
synced 2025-01-10 03:47:44 -03:00
M111 stage part 2
This commit is contained in:
parent
0a13a053a9
commit
bdf0067abe
46 changed files with 1471 additions and 7606 deletions
|
@ -16,6 +16,7 @@
|
|||
#include "media/base/media_switches.h"
|
||||
#include "media/media_buildflags.h"
|
||||
#include "ui/display/display_switches.h"
|
||||
#include "ui/gfx/hdr_metadata.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_LIBVPX)
|
||||
// TODO(dalecurtis): This technically should not be allowed in media/base. See
|
||||
|
@ -64,6 +65,8 @@ bool IsSupportedHdrMetadata(const gfx::HdrMetadataType& hdr_metadata_type) {
|
|||
return true;
|
||||
|
||||
case gfx::HdrMetadataType::kSmpteSt2086:
|
||||
return base::FeatureList::IsEnabled(kSupportSmpteSt2086HdrMetadata);
|
||||
|
||||
case gfx::HdrMetadataType::kSmpteSt2094_10:
|
||||
case gfx::HdrMetadataType::kSmpteSt2094_40:
|
||||
return false;
|
||||
|
|
|
@ -632,9 +632,20 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
|
|||
break;
|
||||
}
|
||||
break;
|
||||
#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
case VideoCodec::kAV1:
|
||||
profile = AV1PROFILE_PROFILE_MAIN;
|
||||
if (codec_context->extradata && codec_context->extradata_size) {
|
||||
mp4::AV1CodecConfigurationRecord av1_config;
|
||||
if (av1_config.Parse(codec_context->extradata,
|
||||
codec_context->extradata_size)) {
|
||||
profile = av1_config.profile;
|
||||
} else {
|
||||
DLOG(WARNING) << "Failed to parse AV1 extra data for profile.";
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif // BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
case VideoCodec::kTheora:
|
||||
profile = THEORAPROFILE_ANY;
|
||||
break;
|
||||
|
|
|
@ -311,9 +311,13 @@ declare_args() {
|
|||
}
|
||||
|
||||
declare_args() {
|
||||
# Currently it is available on Win, Mac and Linux, since it requires the audio
|
||||
# service to run in a separate process.
|
||||
chrome_wide_echo_cancellation_supported = is_win || is_mac || is_linux
|
||||
# Currently it is available on Win, Mac, Linux and ChromeOS since it requires
|
||||
# the audio service to run in a separate process.
|
||||
# ChromeOS(http://crbug/1407588):
|
||||
# On CromeOS we are experimenting with the same set of systems CRAS runs on
|
||||
# ie. is_chromeos_device.
|
||||
chrome_wide_echo_cancellation_supported =
|
||||
is_win || is_mac || is_linux || is_chromeos_device
|
||||
}
|
||||
|
||||
# Do not expand this list without double-checking with OWNERS, this is a list of
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "media/base/media_switches.h"
|
||||
#include "media/media_buildflags.h"
|
||||
#include "ui/display/display_switches.h"
|
||||
#include "ui/gfx/hdr_metadata.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_LIBVPX)
|
||||
// TODO(dalecurtis): This technically should not be allowed in media/base. See
|
||||
|
@ -64,6 +65,8 @@ bool IsSupportedHdrMetadata(const gfx::HdrMetadataType& hdr_metadata_type) {
|
|||
return true;
|
||||
|
||||
case gfx::HdrMetadataType::kSmpteSt2086:
|
||||
return base::FeatureList::IsEnabled(kSupportSmpteSt2086HdrMetadata);
|
||||
|
||||
case gfx::HdrMetadataType::kSmpteSt2094_10:
|
||||
case gfx::HdrMetadataType::kSmpteSt2094_40:
|
||||
return false;
|
||||
|
|
|
@ -632,9 +632,20 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
|
|||
break;
|
||||
}
|
||||
break;
|
||||
#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
case VideoCodec::kAV1:
|
||||
profile = AV1PROFILE_PROFILE_MAIN;
|
||||
if (codec_context->extradata && codec_context->extradata_size) {
|
||||
mp4::AV1CodecConfigurationRecord av1_config;
|
||||
if (av1_config.Parse(codec_context->extradata,
|
||||
codec_context->extradata_size)) {
|
||||
profile = av1_config.profile;
|
||||
} else {
|
||||
DLOG(WARNING) << "Failed to parse AV1 extra data for profile.";
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif // BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
case VideoCodec::kTheora:
|
||||
profile = THEORAPROFILE_ANY;
|
||||
break;
|
||||
|
|
|
@ -64,7 +64,7 @@ Disable Default Browser Infobar Patch
|
|||
Search Engines Patch > https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/additional-search-engines.patch
|
||||
- Modified by me. Adds DuckDuckGo, Brave Search, Ecosia, Ask, and Yandex, with DuckDuckGo being set to "canonical" so that canonical gets a small amount of money when using it.
|
||||
|
||||
Always use the local NTP (New Tab Page) Patch > https://github.com/GrapheneOS/Vanadium/blob/12.1/patches/0052-always-use-local-new-tab-page.patch
|
||||
Always use the local NTP (New Tab Page) Patch > https://github.com/GrapheneOS/Vanadium/blob/main/patches/0052-always-use-local-new-tab-page.patch
|
||||
|
||||
Chromium Sandbox Patch (enables PIE) > https://github.com/Eloston/ungoogled-chromium/blob/master/patches/extra/inox-patchset/0016-chromium-sandbox-pie.patch
|
||||
- Increases security for the chrome-sandbox executable.
|
||||
|
@ -110,6 +110,9 @@ Disable the addition of the Google-Chrome sources.list in /etc/apt/sources.list.
|
|||
|
||||
Enable Dark Mode flag Patch
|
||||
- Made by me.
|
||||
|
||||
Enable GTK Auto Dark Mode Patch - https://github.com/qcasey/chromium-patches/blob/main/patches/gtk-dark-mode-switch-fix.patch
|
||||
- Modified by me. > https://github.com/Alex313031/thorium/issues/74#issuecomment-1270435944
|
||||
|
||||
Disable AutoPlay flag Patch
|
||||
- Made by me.
|
||||
|
@ -120,13 +123,13 @@ Allow setting a custom NTP flag Patch > https://github.com/ungoogled-software/un
|
|||
|
||||
Allow removing the Side Panel button flag Patch > https://github.com/ungoogled-software/ungoogled-chromium/blob/master/patches/extra/ungoogled-chromium/add-flag-to-hide-side-panel-button.patch
|
||||
|
||||
Show/Hide Avatar Button Patch > https://github.com/ungoogled-software/ungoogled-chromium/blob/master/patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
|
||||
|
||||
Unexpire Flags by Default Patch > https://github.com/ungoogled-software/ungoogled-chromium/blob/master/patches/extra/ungoogled-chromium/keep-expired-flags.patch
|
||||
- Modified by me.
|
||||
|
||||
Disable Download Quarantine Patch > https://github.com/ungoogled-software/ungoogled-chromium/blob/master/patches/extra/ungoogled-chromium/disable-download-quarantine.patch
|
||||
|
||||
Show/Hide Avatar Button Patch > https://github.com/ungoogled-software/ungoogled-chromium/blob/master/patches/extra/ungoogled-chromium/add-flag-to-show-avatar-button.patch
|
||||
|
||||
Enable Reader Mode Patch - Made by me.
|
||||
|
||||
Disable WebGL2, WebGL Anti-Aliasing Mode, WebGL MSAA Sample Count, and Native GPU Rasterization MSAA Sample Count chrome://flags Patches - Made by me.
|
||||
|
|
|
@ -11,6 +11,8 @@ import("//build/util/process_version.gni")
|
|||
import("//chrome/android/chrome_common_shared_library.gni")
|
||||
import("//chrome/android/chrome_java_resources.gni")
|
||||
import("//chrome/android/chrome_public_apk_tmpl.gni")
|
||||
import("//chrome/android/chrome_test_apk_tmpl.gni")
|
||||
import("//chrome/android/expectations/expectations.gni")
|
||||
import("//chrome/android/features/dev_ui/dev_ui_module.gni")
|
||||
import("//chrome/android/features/start_surface/start_surface_java_sources.gni")
|
||||
import("//chrome/android/features/tab_ui/buildflags.gni")
|
||||
|
@ -35,7 +37,6 @@ import("//testing/test.gni")
|
|||
import("//third_party/icu/config.gni")
|
||||
import("//third_party/protobuf/proto_library.gni")
|
||||
import("//tools/resources/generate_resource_allowlist.gni")
|
||||
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||||
import("//weblayer/variables.gni")
|
||||
import("channel.gni")
|
||||
import("java_sources.gni")
|
||||
|
@ -95,22 +96,6 @@ if (current_toolchain == default_toolchain) {
|
|||
chrome_jni_sources_exclusions += [ "//chrome/android/features/vr/java/src/org/chromium/chrome/browser/vr/VrModuleProvider.java" ]
|
||||
}
|
||||
|
||||
# Chosen to match what CQ bots exist.
|
||||
_enable_libs_and_assets_verification =
|
||||
public_android_sdk && !is_component_build &&
|
||||
((target_cpu == "arm" && android_channel == "stable") ||
|
||||
(target_cpu == "arm64" && android_channel == "default" &&
|
||||
!skip_secondary_abi_for_cq &&
|
||||
# Disable checks in official arm64 builds due to unwind assets.
|
||||
!is_official_build))
|
||||
|
||||
# Having //clank present causes different flags because of how play services
|
||||
# is wired up.
|
||||
# The channel is required because manifest entries vary based on channel.
|
||||
_enable_manifest_verification =
|
||||
!is_java_debug && !enable_chrome_android_internal &&
|
||||
android_channel == "stable"
|
||||
|
||||
jinja_template("chrome_public_android_manifest") {
|
||||
input = "java/AndroidManifest.xml"
|
||||
output = chrome_public_android_manifest
|
||||
|
@ -672,6 +657,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"//third_party/android_media:android_media_java",
|
||||
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
|
||||
"//third_party/androidx:androidx_activity_activity_java",
|
||||
"//third_party/androidx:androidx_asynclayoutinflater_asynclayoutinflater_appcompat_java",
|
||||
"//third_party/androidx:androidx_browser_browser_java",
|
||||
"//third_party/androidx:androidx_collection_collection_java",
|
||||
"//third_party/androidx:androidx_coordinatorlayout_coordinatorlayout_java",
|
||||
|
@ -713,7 +699,6 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/browser:screenshot_mode_enum",
|
||||
"//chrome/browser:sharing_dialog_type_generated_enum",
|
||||
"//chrome/browser:sharing_send_message_result_generated_enum",
|
||||
"//chrome/browser:survey_http_client_type_enum",
|
||||
"//chrome/browser/notifications/scheduler/public:jni_enums",
|
||||
"//chrome/browser/ui:duplicate_download_enums_java",
|
||||
"//components/browsing_data/core:browsing_data_utils_java",
|
||||
|
@ -745,6 +730,10 @@ if (current_toolchain == default_toolchain) {
|
|||
]
|
||||
}
|
||||
|
||||
if (enable_cardboard) {
|
||||
deps += [ "//third_party/cardboard:cardboard_java" ]
|
||||
}
|
||||
|
||||
if (enable_vr) {
|
||||
deps += [ ":chrome_vr_java_resources" ]
|
||||
}
|
||||
|
@ -836,7 +825,6 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/browser/android/httpclient:java",
|
||||
"//chrome/browser/commerce/merchant_viewer/android:java",
|
||||
"//chrome/browser/content_creation/notes/internal/android:java",
|
||||
"//chrome/browser/content_creation/reactions/internal/android:java",
|
||||
"//chrome/browser/download/internal/android:java",
|
||||
"//chrome/browser/page_annotations/android:java",
|
||||
"//chrome/browser/password_check:internal_java",
|
||||
|
@ -844,6 +832,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/browser/password_entry_edit/android/internal:java",
|
||||
"//chrome/browser/tabmodel/internal:java",
|
||||
"//chrome/browser/touch_to_fill/android/internal:java",
|
||||
"//chrome/browser/touch_to_fill/common/android:java",
|
||||
"//chrome/browser/touch_to_fill/payments/android/internal:java",
|
||||
"//chrome/browser/ui/android/appmenu/internal:java",
|
||||
"//chrome/browser/ui/android/autofill/internal:java",
|
||||
|
@ -875,8 +864,6 @@ if (current_toolchain == default_toolchain) {
|
|||
java_cpp_enum("chrome_android_java_enums_srcjar") {
|
||||
sources = [
|
||||
"//chrome/browser/android/customtabs/detached_resource_request.h",
|
||||
"//chrome/browser/android/explore_sites/explore_sites_bridge.h",
|
||||
"//chrome/browser/android/explore_sites/explore_sites_feature.h",
|
||||
"//chrome/browser/android/feedback/connectivity_checker.cc",
|
||||
"//chrome/browser/android/policy/policy_auditor.cc",
|
||||
"//chrome/browser/android/webapk/webapk_installer.h",
|
||||
|
@ -891,7 +878,6 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/browser/android/vr/vrcore_install_helper.h",
|
||||
"//chrome/browser/vr/text_edit_action.h",
|
||||
"//chrome/browser/vr/ui_test_input.h",
|
||||
"//chrome/browser/vr/ui_unsupported_mode.h",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -1052,6 +1038,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/browser/search_engines/android:java",
|
||||
"//chrome/browser/search_resumption:junit",
|
||||
"//chrome/browser/segmentation_platform:factory_java",
|
||||
"//chrome/browser/settings:junit_test_support",
|
||||
"//chrome/browser/share:java",
|
||||
"//chrome/browser/signin/services/android:java",
|
||||
"//chrome/browser/signin/services/android:junit",
|
||||
|
@ -1378,7 +1365,6 @@ if (current_toolchain == default_toolchain) {
|
|||
"javatests/src/org/chromium/chrome/browser/tab/state/FilePersistedTabDataStorageTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/tab/state/PersistedTabDataTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/tab/state/PriceDropMetricsLoggerTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/tab/state/StorePersistedTabDataTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/tabmodel/AsyncTabCreationParamsManagerTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/tabmodel/RestoreMigrateTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreUnitTest.java",
|
||||
|
@ -1426,6 +1412,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"//components/browser_ui/styles/android:java",
|
||||
"//components/browser_ui/util/android:java",
|
||||
"//components/browser_ui/widget/android:java",
|
||||
"//components/commerce/core/android:core_java",
|
||||
"//components/crash/android:java",
|
||||
"//components/embedder_support/android:context_menu_java",
|
||||
"//components/embedder_support/android:util_java",
|
||||
|
@ -1492,7 +1479,6 @@ if (current_toolchain == default_toolchain) {
|
|||
":browser_java_test_support",
|
||||
":chrome_app_java_resources",
|
||||
":chrome_test_util_java",
|
||||
":chrome_test_util_jni",
|
||||
":delegate_public_impl_java",
|
||||
"$google_play_services_package:google_play_services_base_java",
|
||||
"$google_play_services_package:google_play_services_basement_java",
|
||||
|
@ -1501,8 +1487,11 @@ if (current_toolchain == default_toolchain) {
|
|||
"$google_play_services_package:google_play_services_gcm_java",
|
||||
"$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//base:jni_java",
|
||||
"//base/test:test_support_java",
|
||||
"//build/android:build_java",
|
||||
"//cc:cc_java",
|
||||
"//chrome/android:chrome_java",
|
||||
"//chrome/android/features/keyboard_accessory/public:public_java",
|
||||
|
@ -1512,6 +1501,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/android/features/tab_ui:java_resources",
|
||||
"//chrome/android/features/tab_ui:tab_suggestions_java",
|
||||
"//chrome/android/features/tab_ui:test_support_javalib",
|
||||
"//chrome/android/features/tab_ui/public:java",
|
||||
"//chrome/android/webapk/libs/client:client_java",
|
||||
"//chrome/android/webapk/libs/common:common_java",
|
||||
"//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java",
|
||||
|
@ -1817,8 +1807,6 @@ if (current_toolchain == default_toolchain) {
|
|||
|
||||
deps += feed_test_deps
|
||||
|
||||
deps += commerce_subscriptions_java_test_deps
|
||||
|
||||
if (enable_printing) {
|
||||
deps += [ "//printing:printing_java" ]
|
||||
}
|
||||
|
@ -1957,17 +1945,14 @@ if (current_toolchain == default_toolchain) {
|
|||
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrTabTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrTestFramework.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrTransitionTest.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/mock/MockBrowserKeyboardInterface.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/mock/MockVrCoreVersionChecker.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/mock/MockVrDaydreamApi.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityVrTestRule.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/rules/CustomTabActivityVrTestRule.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/rules/VrActivityRestrictionRule.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/rules/VrModuleNotInstalled.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/rules/VrTestRule.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/rules/WebappActivityVrTestRule.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/util/NativeUiUtils.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/util/RenderTestUtils.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/util/VrMessageUtils.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/util/VrShellDelegateUtils.java",
|
||||
"javatests/src/org/chromium/chrome/browser/vr/util/VrTestRuleUtils.java",
|
||||
|
@ -2090,14 +2075,6 @@ if (current_toolchain == default_toolchain) {
|
|||
]
|
||||
}
|
||||
|
||||
java_group("chrome_public_v8_assets") {
|
||||
if (use_v8_context_snapshot) {
|
||||
deps = [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
|
||||
} else {
|
||||
deps = [ "//v8:v8_external_startup_data_assets" ]
|
||||
}
|
||||
}
|
||||
|
||||
jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
|
@ -2387,16 +2364,6 @@ if (current_toolchain == default_toolchain) {
|
|||
]
|
||||
}
|
||||
|
||||
# Dependencies that are common to any chrome_public derivative targets.
|
||||
_chrome_public_shared_deps = [
|
||||
":chrome_public_apk_base_module_resources",
|
||||
":chrome_public_apk_resources",
|
||||
":chrome_public_base_module_java",
|
||||
":chrome_public_non_pak_assets",
|
||||
":chrome_public_v8_assets",
|
||||
"//third_party/icu:icu_assets",
|
||||
]
|
||||
|
||||
generate_jni("test_support_jni_headers") {
|
||||
testonly = true
|
||||
sources = [
|
||||
|
@ -2504,7 +2471,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"lint_suppressions_file",
|
||||
"manual_jni_registration",
|
||||
])
|
||||
deps = _chrome_public_shared_deps
|
||||
deps = chrome_public_shared_deps
|
||||
|
||||
if (_is_bundle_module) {
|
||||
deps += [ ":chrome_bundle_module_pak_assets" ]
|
||||
|
@ -2605,6 +2572,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java",
|
||||
"java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java",
|
||||
"java/src/org/chromium/chrome/browser/media/ui/ChromeMediaNotificationControllerServices.java",
|
||||
"java/src/org/chromium/chrome/browser/metrics/SimpleStartupForegroundSessionDetector.java",
|
||||
"java/src/org/chromium/chrome/browser/metrics/UmaUtils.java",
|
||||
"java/src/org/chromium/chrome/browser/notifications/NotificationJobService.java",
|
||||
"java/src/org/chromium/chrome/browser/notifications/NotificationService.java",
|
||||
|
@ -2699,8 +2667,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"$target_gen_dir/manifest/${target_name}/AndroidManifest.xml"
|
||||
_split_android_manifest =
|
||||
"$target_gen_dir/manifest/${target_name}/AndroidManifest_split.xml"
|
||||
_is_trichrome =
|
||||
defined(invoker.use_trichrome_library) && invoker.use_trichrome_library
|
||||
_is_trichrome = defined(invoker.is_trichrome) && invoker.is_trichrome
|
||||
_is_bundle = invoker.target_type == "android_app_bundle_module"
|
||||
|
||||
# Generate the manifest here in the template, to avoid a growing collection
|
||||
|
@ -2716,51 +2683,14 @@ if (current_toolchain == default_toolchain) {
|
|||
input = "java/AndroidManifest_trichrome_chrome.xml"
|
||||
variables += trichrome_jinja_variables
|
||||
|
||||
if (android_64bit_target_cpu) {
|
||||
if (invoker.is_64_bit_browser) {
|
||||
if (invoker.include_32_bit_webview) {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_64_32_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_64_32_version_code
|
||||
}
|
||||
} else {
|
||||
if (_use_high_package_name_for_64bit_only_trichrome) {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_64_high_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_64_high_version_code
|
||||
}
|
||||
} else {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_64_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_64_version_code
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (invoker.include_64_bit_webview) {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_32_64_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_32_64_version_code
|
||||
}
|
||||
} else {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_32_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_32_version_code
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_version_code
|
||||
}
|
||||
}
|
||||
_is_64_bit_browser =
|
||||
android_64bit_target_cpu && invoker.is_64_bit_browser
|
||||
_include_32_bit_webview = !defined(invoker.include_32_bit_webview) ||
|
||||
invoker.include_32_bit_webview
|
||||
_include_64_bit_webview = android_64bit_target_cpu &&
|
||||
(!defined(invoker.include_64_bit_webview) ||
|
||||
invoker.include_64_bit_webview)
|
||||
_version_code = TRICHROME_VERSION_MAP["${android_64bit_target_cpu}_${_is_64_bit_browser}_${_include_64_bit_webview}_${_include_32_bit_webview}"]
|
||||
variables += [ "trichrome_version=$_version_code" ]
|
||||
} else {
|
||||
_arch = ""
|
||||
|
@ -2794,13 +2724,11 @@ if (current_toolchain == default_toolchain) {
|
|||
"include_64_bit_webview",
|
||||
"is_64_bit_browser",
|
||||
"is_base_module",
|
||||
"is_trichrome",
|
||||
"resource_ids_provider_dep",
|
||||
"static_library_provider",
|
||||
"target_type",
|
||||
"use_chromium_linker",
|
||||
"use_trichrome_library",
|
||||
"version_code",
|
||||
"version_name",
|
||||
])
|
||||
android_manifest = _android_manifest
|
||||
android_manifest_dep = ":${target_name}__android_manifest"
|
||||
|
@ -2854,8 +2782,6 @@ if (current_toolchain == default_toolchain) {
|
|||
}
|
||||
} else {
|
||||
monochrome_public_apk_or_module_tmpl("monochrome_public_apk") {
|
||||
version_code = monochrome_version_code
|
||||
version_name = chrome_version_name
|
||||
apk_name = "MonochromePublic"
|
||||
target_type = "android_apk"
|
||||
if (android_64bit_target_cpu) {
|
||||
|
@ -2874,12 +2800,13 @@ if (current_toolchain == default_toolchain) {
|
|||
include_64_bit_webview = true
|
||||
}
|
||||
|
||||
if (_enable_manifest_verification) {
|
||||
if (enable_manifest_verification) {
|
||||
expected_android_manifest =
|
||||
"expectations/trichrome_library_apk.AndroidManifest.expected"
|
||||
}
|
||||
if (_enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets = "expectations/trichrome_library_apk.$target_cpu.libs_and_assets.expected"
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2896,8 +2823,6 @@ if (current_toolchain == default_toolchain) {
|
|||
|
||||
if (android_64bit_target_cpu) {
|
||||
monochrome_public_apk_or_module_tmpl("monochrome_64_public_apk") {
|
||||
version_code = monochrome_version_code
|
||||
version_name = chrome_version_name
|
||||
apk_name = "MonochromePublic64"
|
||||
target_type = "android_apk"
|
||||
is_64_bit_browser = true
|
||||
|
@ -2910,6 +2835,10 @@ if (current_toolchain == default_toolchain) {
|
|||
android_manifest_dep = ":trichrome_library_64_android_manifest"
|
||||
is_64_bit_browser = true
|
||||
include_32_bit_webview = false
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
if (!skip_secondary_abi_for_cq) {
|
||||
|
@ -2919,6 +2848,10 @@ if (current_toolchain == default_toolchain) {
|
|||
android_manifest_dep = ":trichrome_library_32_android_manifest"
|
||||
is_64_bit_browser = false
|
||||
include_64_bit_webview = false
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
trichrome_library_apk_tmpl("trichrome_library_64_32_apk") {
|
||||
|
@ -2927,6 +2860,10 @@ if (current_toolchain == default_toolchain) {
|
|||
android_manifest_dep = ":trichrome_library_64_32_android_manifest"
|
||||
is_64_bit_browser = true
|
||||
include_32_bit_webview = true
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3012,105 +2949,6 @@ if (current_toolchain == default_toolchain) {
|
|||
}
|
||||
}
|
||||
|
||||
template("chrome_test_apk_tmpl") {
|
||||
chrome_public_common_apk_or_module_tmpl(target_name) {
|
||||
forward_variables_from(invoker,
|
||||
[
|
||||
"apk_name",
|
||||
"android_manifest",
|
||||
"android_manifest_dep",
|
||||
"data_deps",
|
||||
"enable_lint",
|
||||
"enforce_resource_overlays_in_tests",
|
||||
"extra_args",
|
||||
"is_unit_test",
|
||||
"shared_libraries",
|
||||
])
|
||||
|
||||
testonly = true
|
||||
target_type = "instrumentation_test_apk"
|
||||
bundles_supported = true
|
||||
|
||||
deps = _chrome_public_shared_deps + invoker.deps + [
|
||||
":chrome_apk_pak_assets",
|
||||
":chrome_public_base_module_java_for_test",
|
||||
"//third_party/android_sdk:android_test_base_java",
|
||||
"//third_party/android_sdk:android_test_mock_java",
|
||||
"//third_party/android_sdk:android_test_runner_java",
|
||||
"//third_party/android_support_test_runner:runner_java",
|
||||
]
|
||||
if (add_unwind_tables_in_chrome_32bit_apk && current_cpu == "arm") {
|
||||
deps += [ ":libchromefortest_unwind_table_assets" ]
|
||||
}
|
||||
if (enable_vr) {
|
||||
# Contains VrFirstRunActivity, which is referenced by AndroidManifest.xml.
|
||||
deps += [ "//chrome/android/features/vr:java" ]
|
||||
}
|
||||
|
||||
additional_apks = [ "//net/android:net_test_support_apk" ]
|
||||
if (defined(invoker.additional_apks)) {
|
||||
additional_apks += invoker.additional_apks
|
||||
}
|
||||
if (!is_java_debug) {
|
||||
proguard_enabled = true
|
||||
proguard_configs = [ "//chrome/android/proguard/apk_for_test.flags" ]
|
||||
}
|
||||
|
||||
# TODO(crbug.com/993340): Update test goldens with webp versions of images.
|
||||
png_to_webp = false
|
||||
}
|
||||
}
|
||||
|
||||
template("monochrome_test_apk_tmpl") {
|
||||
monochrome_public_common_apk_or_module_tmpl(target_name) {
|
||||
forward_variables_from(invoker,
|
||||
[
|
||||
"android_manifest",
|
||||
"android_manifest_dep",
|
||||
"apk_name",
|
||||
"data_deps",
|
||||
"is_64_bit_browser",
|
||||
"include_64_bit_webview",
|
||||
"include_32_bit_webview",
|
||||
"loadable_modules",
|
||||
"min_sdk_version",
|
||||
"proguard_configs",
|
||||
"secondary_abi_loadable_modules",
|
||||
"shared_libraries",
|
||||
"target_sdk_version",
|
||||
])
|
||||
|
||||
testonly = true
|
||||
target_type = "instrumentation_test_apk"
|
||||
|
||||
deps = _chrome_public_shared_deps + invoker.deps + [
|
||||
":chrome_public_base_module_java_for_test",
|
||||
":monochrome_apk_pak_assets",
|
||||
"//android_webview:platform_service_bridge_upstream_implementation_java",
|
||||
"//third_party/android_sdk:android_test_base_java",
|
||||
"//third_party/android_sdk:android_test_mock_java",
|
||||
"//third_party/android_sdk:android_test_runner_java",
|
||||
"//third_party/android_support_test_runner:runner_java",
|
||||
]
|
||||
|
||||
if (webview_includes_weblayer) {
|
||||
deps += [ "//weblayer/browser/java:upstream_java" ]
|
||||
}
|
||||
|
||||
additional_apks = [ "//net/android:net_test_support_apk" ]
|
||||
if (defined(invoker.additional_apks)) {
|
||||
additional_apks += invoker.additional_apks
|
||||
}
|
||||
if (!is_java_debug) {
|
||||
if (!defined(proguard_configs)) {
|
||||
proguard_configs = []
|
||||
}
|
||||
proguard_enabled = true
|
||||
proguard_configs += [ "//chrome/android/proguard/apk_for_test.flags" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# As compared to chrome_public_test_apk, this target contains only unit tests
|
||||
# that require on device capabilities. These tests are smaller, more tightly
|
||||
# scoped, and do not leave lingering state after execution.
|
||||
|
@ -3141,7 +2979,6 @@ if (current_toolchain == default_toolchain) {
|
|||
"//chrome/browser/ui/android/searchactivityutils:unit_device_javatests",
|
||||
"//chrome/browser/ui/android/signin:unit_device_javatests",
|
||||
"//chrome/browser/ui/messages/android:unit_device_javatests",
|
||||
"//chrome/browser/user_education:unit_device_javatests",
|
||||
"//chrome/browser/video_tutorials/internal:unit_device_javatests",
|
||||
"//components/browser_ui/bottomsheet/android/internal:unit_device_javatests",
|
||||
"//components/browser_ui/contacts_picker/android:unit_device_javatests",
|
||||
|
@ -3533,18 +3370,11 @@ if (current_toolchain == default_toolchain) {
|
|||
compress_shared_libraries = true
|
||||
if (android_64bit_target_cpu) {
|
||||
is_64_bit_browser = true
|
||||
include_32_bit_webview = false
|
||||
}
|
||||
is_monochrome_or_trichrome = false
|
||||
add_view_trace_events = true
|
||||
manifest_package = chrome_public_manifest_package
|
||||
min_sdk_version = default_min_sdk_version
|
||||
module_descs = chrome_modern_module_descs
|
||||
version_code = chrome_modern_version_code
|
||||
|
||||
if (_enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets = "expectations/chrome_modern_public_bundle.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
if (is_official_build) {
|
||||
|
@ -3563,75 +3393,7 @@ if (current_toolchain == default_toolchain) {
|
|||
|
||||
template("monochrome_or_trichrome_public_bundle_tmpl") {
|
||||
_base_module_target_name = "${invoker.target_name}__base_bundle_module"
|
||||
_is_trichrome =
|
||||
defined(invoker.use_trichrome_library) && invoker.use_trichrome_library
|
||||
|
||||
# Find the correct version code.
|
||||
if (_is_trichrome) {
|
||||
if (android_64bit_target_cpu) {
|
||||
if (invoker.is_64_bit_browser) {
|
||||
if (invoker.include_32_bit_webview) {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_64_32_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_64_32_version_code
|
||||
}
|
||||
} else {
|
||||
if (_use_high_package_name_for_64bit_only_trichrome) {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_64_high_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_64_high_version_code
|
||||
}
|
||||
} else {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_64_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_64_version_code
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (invoker.include_64_bit_webview) {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_32_64_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_32_64_version_code
|
||||
}
|
||||
} else {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_32_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_32_version_code
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (_use_stable_package_name_for_trichrome) {
|
||||
_version_code = trichrome_beta_version_code
|
||||
} else {
|
||||
_version_code = trichrome_version_code
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (android_64bit_target_cpu) {
|
||||
if (invoker.is_64_bit_browser) {
|
||||
if (invoker.include_32_bit_webview) {
|
||||
_version_code = monochrome_64_32_version_code
|
||||
} else {
|
||||
_version_code = monochrome_64_version_code
|
||||
}
|
||||
} else {
|
||||
if (invoker.include_64_bit_webview) {
|
||||
_version_code = monochrome_32_64_version_code
|
||||
} else {
|
||||
_version_code = monochrome_32_version_code
|
||||
}
|
||||
}
|
||||
} else {
|
||||
_version_code = monochrome_version_code
|
||||
}
|
||||
}
|
||||
_is_trichrome = defined(invoker.is_trichrome) && invoker.is_trichrome
|
||||
|
||||
if (_is_trichrome) {
|
||||
_bundle_name = "TrichromeChrome${invoker.bundle_suffix}"
|
||||
|
@ -3649,15 +3411,14 @@ if (current_toolchain == default_toolchain) {
|
|||
"add_view_trace_events",
|
||||
"expected_android_manifest",
|
||||
"is_64_bit_browser",
|
||||
"is_trichrome",
|
||||
"include_32_bit_webview",
|
||||
"include_64_bit_webview",
|
||||
"static_library_provider",
|
||||
"resource_ids_provider_dep",
|
||||
"use_trichrome_library",
|
||||
])
|
||||
target_type = "android_app_bundle_module"
|
||||
is_base_module = true
|
||||
version_code = _version_code
|
||||
bundle_target = ":${invoker.target_name}"
|
||||
|
||||
if (defined(invoker.expected_android_manifest_template)) {
|
||||
|
@ -3676,6 +3437,7 @@ if (current_toolchain == default_toolchain) {
|
|||
"include_32_bit_webview",
|
||||
"include_64_bit_webview",
|
||||
"is_64_bit_browser",
|
||||
"is_trichrome",
|
||||
"lint_baseline_file",
|
||||
"lint_min_sdk_version",
|
||||
"lint_suppressions_file",
|
||||
|
@ -3684,13 +3446,12 @@ if (current_toolchain == default_toolchain) {
|
|||
"expected_libs_and_assets",
|
||||
"expected_proguard_config",
|
||||
])
|
||||
is_monochrome = !_is_trichrome
|
||||
base_module_target = ":$_base_module_target_name"
|
||||
bundle_name = _bundle_name
|
||||
is_monochrome_or_trichrome = true
|
||||
manifest_package = chrome_public_manifest_package
|
||||
min_sdk_version = _min_sdk_version
|
||||
module_descs = _module_descs
|
||||
version_code = _version_code
|
||||
chrome_deps = [ ":delegate_public_impl_java" ]
|
||||
if (!_is_trichrome) {
|
||||
chrome_deps += [ "//chrome/android:monochrome_java" ]
|
||||
|
@ -3738,13 +3499,14 @@ if (current_toolchain == default_toolchain) {
|
|||
is_64_bit_browser = false
|
||||
include_64_bit_webview = true
|
||||
}
|
||||
if (_enable_manifest_verification) {
|
||||
if (enable_manifest_verification) {
|
||||
expected_android_manifest_template = "expectations/monochrome_public_bundle__SPLIT_NAME.AndroidManifest.expected"
|
||||
expected_proguard_config =
|
||||
"expectations/monochrome_public_bundle.proguard_flags.expected"
|
||||
}
|
||||
if (_enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets = "expectations/monochrome_public_bundle.$target_cpu.libs_and_assets.expected"
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3765,7 +3527,7 @@ if (current_toolchain == default_toolchain) {
|
|||
|
||||
monochrome_or_trichrome_public_bundle_tmpl("trichrome_chrome_bundle") {
|
||||
bundle_suffix = ""
|
||||
use_trichrome_library = true
|
||||
is_trichrome = true
|
||||
static_library_provider = ":trichrome_library_apk"
|
||||
add_view_trace_events = true
|
||||
if (android_64bit_target_cpu) {
|
||||
|
@ -3773,12 +3535,13 @@ if (current_toolchain == default_toolchain) {
|
|||
include_64_bit_webview = true
|
||||
}
|
||||
|
||||
if (_enable_manifest_verification) {
|
||||
if (enable_manifest_verification) {
|
||||
# Monochrome verifies all bundle modules, so only check base module here.
|
||||
expected_android_manifest = "expectations/trichrome_chrome_bundle__base.AndroidManifest.expected"
|
||||
}
|
||||
if (_enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets = "expectations/trichrome_chrome_bundle.$target_cpu.libs_and_assets.expected"
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3882,11 +3645,15 @@ if (current_toolchain == default_toolchain) {
|
|||
}
|
||||
|
||||
monochrome_or_trichrome_public_bundle_tmpl("trichrome_chrome_64_bundle") {
|
||||
is_trichrome = true
|
||||
bundle_suffix = "64"
|
||||
is_64_bit_browser = true
|
||||
include_32_bit_webview = false
|
||||
use_trichrome_library = true
|
||||
static_library_provider = ":trichrome_library_64_apk"
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
|
||||
if (!skip_secondary_abi_for_cq) {
|
||||
|
@ -3904,12 +3671,28 @@ if (current_toolchain == default_toolchain) {
|
|||
include_32_bit_webview = true
|
||||
}
|
||||
|
||||
monochrome_or_trichrome_public_bundle_tmpl(
|
||||
"trichrome_chrome_64_32_bundle") {
|
||||
is_trichrome = true
|
||||
bundle_suffix = "6432"
|
||||
is_64_bit_browser = true
|
||||
include_32_bit_webview = true
|
||||
static_library_provider = ":trichrome_library_64_32_apk"
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
monochrome_or_trichrome_public_bundle_tmpl("trichrome_chrome_32_bundle") {
|
||||
is_trichrome = true
|
||||
bundle_suffix = "32"
|
||||
is_64_bit_browser = false
|
||||
include_64_bit_webview = false
|
||||
use_trichrome_library = true
|
||||
static_library_provider = ":trichrome_library_32_apk"
|
||||
if (enable_libs_and_assets_verification) {
|
||||
expected_libs_and_assets =
|
||||
"expectations/$target_name.$target_cpu.libs_and_assets.expected"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4000,9 +3783,6 @@ generate_jni("chrome_jni_headers") {
|
|||
"java/src/org/chromium/chrome/browser/download/DuplicateDownloadDialogBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java",
|
||||
"java/src/org/chromium/chrome/browser/download/service/DownloadTaskScheduler.java",
|
||||
"java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategory.java",
|
||||
"java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSite.java",
|
||||
"java/src/org/chromium/chrome/browser/feature_guide/notifications/FeatureNotificationGuideBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/feature_guide/notifications/FeatureNotificationGuideServiceFactory.java",
|
||||
"java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java",
|
||||
|
@ -4023,11 +3803,8 @@ generate_jni("chrome_jni_headers") {
|
|||
"java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/KnownInterceptionDisclosureInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/NearOomInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/NearOomReductionInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/ReaderModeInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/SafetyTipInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java",
|
||||
"java/src/org/chromium/chrome/browser/init/NativeStartupBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/javascript/WebContextFetcher.java",
|
||||
|
@ -4109,7 +3886,6 @@ generate_jni("chrome_jni_headers") {
|
|||
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/supervised_user/ChildAccountFeedbackReporter.java",
|
||||
"java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java",
|
||||
"java/src/org/chromium/chrome/browser/survey/SurveyHttpClientBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java",
|
||||
"java/src/org/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/tab/TabFavicon.java",
|
||||
|
@ -4136,10 +3912,6 @@ generate_jni("chrome_jni_headers") {
|
|||
if (enable_offline_pages_harness) {
|
||||
sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ]
|
||||
}
|
||||
|
||||
if (enable_vr) {
|
||||
sources += [ "java/src/org/chromium/chrome/browser/component_updater/VrAssetsComponentInstaller.java" ]
|
||||
}
|
||||
}
|
||||
|
||||
source_set("chrome_test_util_jni") {
|
||||
|
@ -4171,7 +3943,6 @@ group("jni_headers") {
|
|||
"//chrome/browser/battery/android:jni_headers",
|
||||
"//chrome/browser/commerce/merchant_viewer/android:jni_headers",
|
||||
"//chrome/browser/commerce/price_tracking/android:jni_headers",
|
||||
"//chrome/browser/commerce/subscriptions/android:jni_headers",
|
||||
"//chrome/browser/contextmenu:jni_headers",
|
||||
"//chrome/browser/download/android:jni_headers",
|
||||
"//chrome/browser/enterprise/util:jni_headers",
|
||||
|
@ -4382,18 +4153,31 @@ if (add_unwind_tables_in_chrome_32bit_apk) {
|
|||
|
||||
# Used by android-binary-size trybot to validate expectations.
|
||||
if (current_toolchain == default_toolchain &&
|
||||
(_enable_libs_and_assets_verification || _enable_manifest_verification)) {
|
||||
(enable_libs_and_assets_verification || enable_manifest_verification)) {
|
||||
group("validate_expectations") {
|
||||
deps = []
|
||||
if (_enable_libs_and_assets_verification) {
|
||||
if (enable_libs_and_assets_verification) {
|
||||
deps += [
|
||||
":chrome_modern_public_bundle_validate_libs_and_assets",
|
||||
":monochrome_public_bundle_validate_libs_and_assets",
|
||||
":trichrome_chrome_bundle_validate_libs_and_assets",
|
||||
":trichrome_library_apk_validate_libs_and_assets",
|
||||
"//android_webview:trichrome_webview_bundle_validate_libs_and_assets",
|
||||
]
|
||||
if (android_64bit_target_cpu) {
|
||||
deps += [
|
||||
":trichrome_chrome_32_bundle_validate_libs_and_assets",
|
||||
":trichrome_chrome_64_32_bundle_validate_libs_and_assets",
|
||||
":trichrome_chrome_64_bundle_validate_libs_and_assets",
|
||||
":trichrome_library_32_apk_validate_libs_and_assets",
|
||||
":trichrome_library_64_32_apk_validate_libs_and_assets",
|
||||
":trichrome_library_64_apk_validate_libs_and_assets",
|
||||
"//android_webview:trichrome_webview_32_bundle_validate_libs_and_assets",
|
||||
"//android_webview:trichrome_webview_64_32_bundle_validate_libs_and_assets",
|
||||
"//android_webview:trichrome_webview_64_bundle_validate_libs_and_assets",
|
||||
]
|
||||
}
|
||||
}
|
||||
if (_enable_manifest_verification) {
|
||||
if (enable_manifest_verification) {
|
||||
deps += [
|
||||
":monochrome_public_bundle_validate_manifests",
|
||||
":monochrome_public_bundle_validate_proguard_config",
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,511 +0,0 @@
|
|||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "chrome/browser/autocomplete/chrome_autocomplete_provider_client.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "chrome/app/chrome_command_ids.h"
|
||||
#include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
|
||||
#include "chrome/browser/autocomplete/document_suggestions_service_factory.h"
|
||||
#include "chrome/browser/autocomplete/in_memory_url_index_factory.h"
|
||||
#include "chrome/browser/autocomplete/remote_suggestions_service_factory.h"
|
||||
#include "chrome/browser/autocomplete/shortcuts_backend_factory.h"
|
||||
#include "chrome/browser/autocomplete/zero_suggest_cache_service_factory.h"
|
||||
#include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h"
|
||||
#include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service_factory.h"
|
||||
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/chrome_notification_types.h"
|
||||
#include "chrome/browser/history/history_service_factory.h"
|
||||
#include "chrome/browser/history/top_sites_factory.h"
|
||||
#include "chrome/browser/history_clusters/history_clusters_service_factory.h"
|
||||
#include "chrome/browser/prefs/incognito_mode_prefs.h"
|
||||
#include "chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service.h"
|
||||
#include "chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/profiles/profile_key.h"
|
||||
#include "chrome/browser/query_tiles/tile_service_factory.h"
|
||||
#include "chrome/browser/search_engines/template_url_service_factory.h"
|
||||
#include "chrome/browser/signin/identity_manager_factory.h"
|
||||
#include "chrome/browser/sync/sync_service_factory.h"
|
||||
#include "chrome/browser/translate/chrome_translate_client.h"
|
||||
#include "chrome/browser/ui/browser_command_controller.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
#include "chrome/browser/ui/omnibox/omnibox_pedal_implementations.h"
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
#include "chrome/common/url_constants.h"
|
||||
#include "components/history/core/browser/history_service.h"
|
||||
#include "components/history/core/browser/top_sites.h"
|
||||
#include "components/history_clusters/core/features.h"
|
||||
#include "components/language/core/browser/pref_names.h"
|
||||
#include "components/omnibox/browser/actions/omnibox_pedal_provider.h"
|
||||
#include "components/omnibox/browser/autocomplete_classifier.h"
|
||||
#include "components/omnibox/browser/autocomplete_match.h"
|
||||
#include "components/omnibox/browser/omnibox_field_trial.h"
|
||||
#include "components/omnibox/browser/omnibox_triggered_feature_service.h"
|
||||
#include "components/omnibox/browser/shortcuts_backend.h"
|
||||
#include "components/omnibox/browser/tab_matcher.h"
|
||||
#include "components/omnibox/common/omnibox_features.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
|
||||
#include "components/signin/public/identity_manager/identity_manager.h"
|
||||
#include "components/sync/driver/sync_service.h"
|
||||
#include "components/translate/core/browser/translate_manager.h"
|
||||
#include "components/unified_consent/url_keyed_data_collection_consent_helper.h"
|
||||
#include "content/public/browser/navigation_entry.h"
|
||||
#include "content/public/browser/notification_service.h"
|
||||
#include "content/public/browser/service_worker_context.h"
|
||||
#include "content/public/browser/storage_partition.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/browser/web_contents_user_data.h"
|
||||
#include "extensions/buildflags/buildflags.h"
|
||||
#include "net/traffic_annotation/network_traffic_annotation.h"
|
||||
#include "third_party/blink/public/common/storage_key/storage_key.h"
|
||||
#include "url/origin.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
#include "chrome/browser/autocomplete/keyword_extensions_delegate_impl.h"
|
||||
#endif
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
#include "chrome/browser/sharing_hub/sharing_hub_features.h"
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/browser_commands.h"
|
||||
#include "chrome/browser/ui/browser_list.h"
|
||||
#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
||||
#include "chrome/browser/ui/ui_features.h"
|
||||
#include "chrome/browser/ui/views/side_panel/history_clusters/history_clusters_side_panel_coordinator.h"
|
||||
#include "chrome/browser/upgrade_detector/upgrade_detector.h"
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
// This list should be kept in sync with chrome/common/webui_url_constants.h.
|
||||
// Only include useful sub-pages, confirmation alerts are not useful.
|
||||
const char* const kChromeSettingsSubPages[] = {
|
||||
chrome::kAddressesSubPage, chrome::kAutofillSubPage,
|
||||
chrome::kClearBrowserDataSubPage, chrome::kContentSettingsSubPage,
|
||||
chrome::kLanguageOptionsSubPage, chrome::kPasswordManagerSubPage,
|
||||
chrome::kPaymentsSubPage, chrome::kResetProfileSettingsSubPage,
|
||||
chrome::kSearchEnginesSubPage, chrome::kSyncSetupSubPage,
|
||||
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
chrome::kImportDataSubPage, chrome::kManageProfileSubPage,
|
||||
chrome::kPeopleSubPage,
|
||||
#endif
|
||||
};
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
} // namespace
|
||||
|
||||
ChromeAutocompleteProviderClient::ChromeAutocompleteProviderClient(
|
||||
Profile* profile)
|
||||
: profile_(profile),
|
||||
scheme_classifier_(profile),
|
||||
url_consent_helper_(unified_consent::UrlKeyedDataCollectionConsentHelper::
|
||||
NewPersonalizedDataCollectionConsentHelper(
|
||||
SyncServiceFactory::GetForProfile(profile_))),
|
||||
tab_matcher_(GetTemplateURLService(), profile_),
|
||||
storage_partition_(nullptr),
|
||||
omnibox_triggered_feature_service_(
|
||||
std::make_unique<OmniboxTriggeredFeatureService>()) {
|
||||
pedal_provider_ = std::make_unique<OmniboxPedalProvider>(
|
||||
*this, GetPedalImplementations(IsOffTheRecord(), false));
|
||||
}
|
||||
|
||||
ChromeAutocompleteProviderClient::~ChromeAutocompleteProviderClient() = default;
|
||||
|
||||
scoped_refptr<network::SharedURLLoaderFactory>
|
||||
ChromeAutocompleteProviderClient::GetURLLoaderFactory() {
|
||||
return profile_->GetDefaultStoragePartition()
|
||||
->GetURLLoaderFactoryForBrowserProcess();
|
||||
}
|
||||
|
||||
PrefService* ChromeAutocompleteProviderClient::GetPrefs() const {
|
||||
return profile_->GetPrefs();
|
||||
}
|
||||
|
||||
PrefService* ChromeAutocompleteProviderClient::GetLocalState() {
|
||||
return g_browser_process->local_state();
|
||||
}
|
||||
|
||||
std::string ChromeAutocompleteProviderClient::GetApplicationLocale() const {
|
||||
return g_browser_process->GetApplicationLocale();
|
||||
}
|
||||
|
||||
const AutocompleteSchemeClassifier&
|
||||
ChromeAutocompleteProviderClient::GetSchemeClassifier() const {
|
||||
return scheme_classifier_;
|
||||
}
|
||||
|
||||
AutocompleteClassifier*
|
||||
ChromeAutocompleteProviderClient::GetAutocompleteClassifier() {
|
||||
return AutocompleteClassifierFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
history::HistoryService* ChromeAutocompleteProviderClient::GetHistoryService() {
|
||||
return HistoryServiceFactory::GetForProfile(
|
||||
profile_, ServiceAccessType::EXPLICIT_ACCESS);
|
||||
}
|
||||
|
||||
history_clusters::HistoryClustersService*
|
||||
ChromeAutocompleteProviderClient::GetHistoryClustersService() {
|
||||
return HistoryClustersServiceFactory::GetForBrowserContext(profile_);
|
||||
}
|
||||
|
||||
scoped_refptr<history::TopSites>
|
||||
ChromeAutocompleteProviderClient::GetTopSites() {
|
||||
return TopSitesFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
bookmarks::BookmarkModel* ChromeAutocompleteProviderClient::GetBookmarkModel() {
|
||||
return BookmarkModelFactory::GetForBrowserContext(profile_);
|
||||
}
|
||||
|
||||
history::URLDatabase* ChromeAutocompleteProviderClient::GetInMemoryDatabase() {
|
||||
history::HistoryService* history_service = GetHistoryService();
|
||||
|
||||
// This method is called in unit test contexts where the HistoryService isn't
|
||||
// loaded.
|
||||
return history_service ? history_service->InMemoryDatabase() : nullptr;
|
||||
}
|
||||
|
||||
InMemoryURLIndex* ChromeAutocompleteProviderClient::GetInMemoryURLIndex() {
|
||||
return InMemoryURLIndexFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
TemplateURLService* ChromeAutocompleteProviderClient::GetTemplateURLService() {
|
||||
return TemplateURLServiceFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
const TemplateURLService*
|
||||
ChromeAutocompleteProviderClient::GetTemplateURLService() const {
|
||||
return TemplateURLServiceFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
RemoteSuggestionsService*
|
||||
ChromeAutocompleteProviderClient::GetRemoteSuggestionsService(
|
||||
bool create_if_necessary) const {
|
||||
return RemoteSuggestionsServiceFactory::GetForProfile(profile_,
|
||||
create_if_necessary);
|
||||
}
|
||||
|
||||
DocumentSuggestionsService*
|
||||
ChromeAutocompleteProviderClient::GetDocumentSuggestionsService(
|
||||
bool create_if_necessary) const {
|
||||
return DocumentSuggestionsServiceFactory::GetForProfile(profile_,
|
||||
create_if_necessary);
|
||||
}
|
||||
|
||||
ZeroSuggestCacheService*
|
||||
ChromeAutocompleteProviderClient::GetZeroSuggestCacheService() {
|
||||
return ZeroSuggestCacheServiceFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
const ZeroSuggestCacheService*
|
||||
ChromeAutocompleteProviderClient::GetZeroSuggestCacheService() const {
|
||||
return ZeroSuggestCacheServiceFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
OmniboxPedalProvider* ChromeAutocompleteProviderClient::GetPedalProvider()
|
||||
const {
|
||||
// This may be null for systems that don't have Pedals (Android, e.g.).
|
||||
return pedal_provider_.get();
|
||||
}
|
||||
|
||||
scoped_refptr<ShortcutsBackend>
|
||||
ChromeAutocompleteProviderClient::GetShortcutsBackend() {
|
||||
return ShortcutsBackendFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
scoped_refptr<ShortcutsBackend>
|
||||
ChromeAutocompleteProviderClient::GetShortcutsBackendIfExists() {
|
||||
return ShortcutsBackendFactory::GetForProfileIfExists(profile_);
|
||||
}
|
||||
|
||||
std::unique_ptr<KeywordExtensionsDelegate>
|
||||
ChromeAutocompleteProviderClient::GetKeywordExtensionsDelegate(
|
||||
KeywordProvider* keyword_provider) {
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
return std::make_unique<KeywordExtensionsDelegateImpl>(profile_,
|
||||
keyword_provider);
|
||||
#else
|
||||
return nullptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
std::string ChromeAutocompleteProviderClient::GetAcceptLanguages() const {
|
||||
return profile_->GetPrefs()->GetString(language::prefs::kAcceptLanguages);
|
||||
}
|
||||
|
||||
std::string
|
||||
ChromeAutocompleteProviderClient::GetEmbedderRepresentationOfAboutScheme()
|
||||
const {
|
||||
return content::kChromeUIScheme;
|
||||
}
|
||||
|
||||
std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
|
||||
std::vector<std::string> chrome_builtins(
|
||||
chrome::kChromeHostURLs,
|
||||
chrome::kChromeHostURLs + chrome::kNumberOfChromeHostURLs);
|
||||
std::sort(chrome_builtins.begin(), chrome_builtins.end());
|
||||
|
||||
std::vector<std::u16string> builtins;
|
||||
|
||||
for (auto i(chrome_builtins.begin()); i != chrome_builtins.end(); ++i)
|
||||
builtins.push_back(base::ASCIIToUTF16(*i));
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
std::u16string settings(base::ASCIIToUTF16(chrome::kChromeUISettingsHost) +
|
||||
u"/");
|
||||
for (size_t i = 0; i < std::size(kChromeSettingsSubPages); i++) {
|
||||
builtins.push_back(settings +
|
||||
base::ASCIIToUTF16(kChromeSettingsSubPages[i]));
|
||||
}
|
||||
#endif
|
||||
|
||||
return builtins;
|
||||
}
|
||||
|
||||
std::vector<std::u16string>
|
||||
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<std::u16string> builtins_to_provide;
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL));
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
|
||||
#endif
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIVersionURL));
|
||||
return builtins_to_provide;
|
||||
}
|
||||
|
||||
component_updater::ComponentUpdateService*
|
||||
ChromeAutocompleteProviderClient::GetComponentUpdateService() {
|
||||
return g_browser_process->component_updater();
|
||||
}
|
||||
|
||||
query_tiles::TileService*
|
||||
ChromeAutocompleteProviderClient::GetQueryTileService() const {
|
||||
ProfileKey* profile_key = profile_->GetProfileKey();
|
||||
return query_tiles::TileServiceFactory::GetForKey(profile_key);
|
||||
}
|
||||
|
||||
OmniboxTriggeredFeatureService*
|
||||
ChromeAutocompleteProviderClient::GetOmniboxTriggeredFeatureService() const {
|
||||
return omnibox_triggered_feature_service_.get();
|
||||
}
|
||||
|
||||
signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager()
|
||||
const {
|
||||
return IdentityManagerFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::IsOffTheRecord() const {
|
||||
return profile_->IsOffTheRecord();
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::SearchSuggestEnabled() const {
|
||||
return profile_->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled);
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::AllowDeletingBrowserHistory() const {
|
||||
return profile_->GetPrefs()->GetBoolean(prefs::kAllowDeletingBrowserHistory);
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::IsPersonalizedUrlDataCollectionActive()
|
||||
const {
|
||||
return url_consent_helper_->IsEnabled();
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::IsAuthenticated() const {
|
||||
const auto* identity_manager =
|
||||
IdentityManagerFactory::GetForProfile(profile_);
|
||||
return identity_manager &&
|
||||
!identity_manager->GetAccountsInCookieJar().signed_in_accounts.empty();
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::IsSyncActive() const {
|
||||
syncer::SyncService* sync = SyncServiceFactory::GetForProfile(profile_);
|
||||
return sync && sync->IsSyncFeatureActive();
|
||||
}
|
||||
|
||||
std::string ChromeAutocompleteProviderClient::ProfileUserName() const {
|
||||
return profile_->GetProfileUserName();
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::Classify(
|
||||
const std::u16string& text,
|
||||
bool prefer_keyword,
|
||||
bool allow_exact_keyword_match,
|
||||
metrics::OmniboxEventProto::PageClassification page_classification,
|
||||
AutocompleteMatch* match,
|
||||
GURL* alternate_nav_url) {
|
||||
AutocompleteClassifier* classifier = GetAutocompleteClassifier();
|
||||
DCHECK(classifier);
|
||||
classifier->Classify(text, prefer_keyword, allow_exact_keyword_match,
|
||||
page_classification, match, alternate_nav_url);
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::DeleteMatchingURLsForKeywordFromHistory(
|
||||
history::KeywordID keyword_id,
|
||||
const std::u16string& term) {
|
||||
GetHistoryService()->DeleteMatchingURLsForKeyword(keyword_id, term);
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::PrefetchImage(const GURL& url) {
|
||||
// Note: Android uses different image fetching mechanism to avoid
|
||||
// penalty of copying byte buffers from C++ to Java.
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
BitmapFetcherService* bitmap_fetcher_service =
|
||||
BitmapFetcherServiceFactory::GetForBrowserContext(profile_);
|
||||
bitmap_fetcher_service->Prefetch(url);
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::StartServiceWorker(
|
||||
const GURL& destination_url) {
|
||||
if (!SearchSuggestEnabled())
|
||||
return;
|
||||
|
||||
if (profile_->IsOffTheRecord())
|
||||
return;
|
||||
|
||||
content::StoragePartition* partition = storage_partition_;
|
||||
if (!partition)
|
||||
partition = profile_->GetDefaultStoragePartition();
|
||||
if (!partition)
|
||||
return;
|
||||
|
||||
content::ServiceWorkerContext* context = partition->GetServiceWorkerContext();
|
||||
if (!context)
|
||||
return;
|
||||
|
||||
context->StartServiceWorkerForNavigationHint(
|
||||
destination_url, blink::StorageKey(url::Origin::Create(destination_url)),
|
||||
base::DoNothing());
|
||||
}
|
||||
|
||||
const TabMatcher& ChromeAutocompleteProviderClient::GetTabMatcher() const {
|
||||
return tab_matcher_;
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::IsIncognitoModeAvailable() const {
|
||||
return IncognitoModePrefs::IsIncognitoAllowed(profile_);
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::IsSharingHubAvailable() const {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
return sharing_hub::SharingHubOmniboxEnabled(profile_);
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
base::WeakPtr<AutocompleteProviderClient>
|
||||
ChromeAutocompleteProviderClient::GetWeakPtr() {
|
||||
return weak_ptr_factory_.GetWeakPtr();
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::StrippedURLsAreEqual(
|
||||
const GURL& url1,
|
||||
const GURL& url2,
|
||||
const AutocompleteInput* input) const {
|
||||
AutocompleteInput empty_input;
|
||||
if (!input)
|
||||
input = &empty_input;
|
||||
const TemplateURLService* template_url_service = GetTemplateURLService();
|
||||
return AutocompleteMatch::GURLToStrippedGURL(
|
||||
url1, *input, template_url_service, std::u16string(),
|
||||
/*keep_search_intent_params=*/false) ==
|
||||
AutocompleteMatch::GURLToStrippedGURL(
|
||||
url2, *input, template_url_service, std::u16string(),
|
||||
/*keep_search_intent_params=*/false);
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::OpenSharingHub() {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
Browser* browser = BrowserList::GetInstance()->GetLastActive();
|
||||
if (browser) {
|
||||
browser->command_controller()->ExecuteCommand(IDC_SHARING_HUB);
|
||||
}
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::NewIncognitoWindow() {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
chrome::NewIncognitoWindow(profile_);
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::OpenIncognitoClearBrowsingDataDialog() {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
Browser* browser = BrowserList::GetInstance()->GetLastActive();
|
||||
if (browser) {
|
||||
chrome::ShowIncognitoClearBrowsingDataDialog(browser);
|
||||
}
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::CloseIncognitoWindows() {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
if (profile_->IsIncognitoProfile()) {
|
||||
BrowserList::CloseAllBrowsersWithIncognitoProfile(
|
||||
profile_, base::DoNothing(), base::DoNothing(), true);
|
||||
}
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
|
||||
bool ChromeAutocompleteProviderClient::OpenJourneys(const std::string& query) {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
if (!base::FeatureList::IsEnabled(features::kUnifiedSidePanel) ||
|
||||
!base::FeatureList::IsEnabled(history_clusters::kSidePanelJourneys) ||
|
||||
!history_clusters::kSidePanelJourneysOpensFromOmnibox.Get()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Browser* browser = BrowserList::GetInstance()->GetLastActive();
|
||||
if (!browser)
|
||||
return false;
|
||||
|
||||
if (auto* history_clusters_side_panel_coordinator =
|
||||
HistoryClustersSidePanelCoordinator::BrowserUserData::FromBrowser(
|
||||
browser)) {
|
||||
history_clusters_side_panel_coordinator->Show(query);
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void ChromeAutocompleteProviderClient::PromptPageTranslation() {
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
Browser* browser = BrowserList::GetInstance()->GetLastActive();
|
||||
content::WebContents* contents = nullptr;
|
||||
if (browser)
|
||||
contents = browser->tab_strip_model()->GetActiveWebContents();
|
||||
if (contents) {
|
||||
ChromeTranslateClient* translate_client =
|
||||
ChromeTranslateClient::FromWebContents(contents);
|
||||
if (translate_client) {
|
||||
DCHECK_NE(nullptr, translate_client->GetTranslateManager());
|
||||
translate_client->GetTranslateManager()->ShowTranslateUI(
|
||||
/*auto_translate=*/true, /*triggered_from_menu=*/true);
|
||||
}
|
||||
}
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
}
|
|
@ -13,11 +13,11 @@
|
|||
#include <vector>
|
||||
|
||||
#include "base/base_switches.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/callback.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/dcheck_is_on.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/i18n/base_i18n_switches.h"
|
||||
#include "base/i18n/character_encoding.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
|
@ -31,6 +31,7 @@
|
|||
#include "base/strings/string_split.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "base/task/sequenced_task_runner.h"
|
||||
#include "base/types/expected.h"
|
||||
#include "base/values.h"
|
||||
#include "build/build_config.h"
|
||||
|
@ -45,6 +46,7 @@
|
|||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/browsing_topics/browsing_topics_service_factory.h"
|
||||
#include "chrome/browser/captive_portal/captive_portal_service_factory.h"
|
||||
#include "chrome/browser/child_process_host_flags.h"
|
||||
#include "chrome/browser/chrome_content_browser_client_binder_policies.h"
|
||||
#include "chrome/browser/chrome_content_browser_client_parts.h"
|
||||
#include "chrome/browser/content_settings/cookie_settings_factory.h"
|
||||
|
@ -137,6 +139,8 @@
|
|||
#include "chrome/browser/ssl/https_defaulted_callbacks.h"
|
||||
#include "chrome/browser/ssl/https_only_mode_navigation_throttle.h"
|
||||
#include "chrome/browser/ssl/https_only_mode_upgrade_interceptor.h"
|
||||
#include "chrome/browser/ssl/https_upgrades_interceptor.h"
|
||||
#include "chrome/browser/ssl/https_upgrades_navigation_throttle.h"
|
||||
#include "chrome/browser/ssl/sct_reporting_service.h"
|
||||
#include "chrome/browser/ssl/ssl_client_auth_metrics.h"
|
||||
#include "chrome/browser/ssl/ssl_client_certificate_selector.h"
|
||||
|
@ -212,6 +216,7 @@
|
|||
#include "components/keep_alive_registry/keep_alive_types.h"
|
||||
#include "components/keep_alive_registry/scoped_keep_alive.h"
|
||||
#include "components/language/core/browser/pref_names.h"
|
||||
#include "components/lens/buildflags.h"
|
||||
#include "components/live_caption/caption_util.h"
|
||||
#include "components/media_router/browser/presentation/presentation_service_delegate_impl.h"
|
||||
#include "components/media_router/browser/presentation/receiver_presentation_service_delegate_impl.h"
|
||||
|
@ -238,12 +243,14 @@
|
|||
#include "components/prefs/pref_registry_simple.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "components/prefs/scoped_user_pref_update.h"
|
||||
#include "components/privacy_sandbox/privacy_sandbox_features.h"
|
||||
#include "components/privacy_sandbox/privacy_sandbox_prefs.h"
|
||||
#include "components/privacy_sandbox/privacy_sandbox_settings.h"
|
||||
#include "components/safe_browsing/buildflags.h"
|
||||
#include "components/safe_browsing/content/browser/browser_url_loader_throttle.h"
|
||||
#include "components/safe_browsing/content/browser/password_protection/password_protection_commit_deferring_condition.h"
|
||||
#include "components/safe_browsing/content/browser/safe_browsing_navigation_throttle.h"
|
||||
#include "components/safe_browsing/core/browser/hashprefix_realtime/hash_realtime_service.h"
|
||||
#include "components/safe_browsing/core/browser/realtime/policy_engine.h"
|
||||
#include "components/safe_browsing/core/browser/realtime/url_lookup_service.h"
|
||||
#include "components/safe_browsing/core/browser/url_checker_delegate.h"
|
||||
|
@ -317,6 +324,7 @@
|
|||
#include "sandbox/policy/mojom/sandbox.mojom.h"
|
||||
#include "sandbox/policy/switches.h"
|
||||
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/is_potentially_trustworthy.h"
|
||||
#include "services/network/public/cpp/network_switches.h"
|
||||
#include "services/network/public/cpp/resource_request.h"
|
||||
|
@ -394,13 +402,16 @@
|
|||
#include "chrome/browser/ash/system_extensions/system_extensions_provider.h"
|
||||
#include "chrome/browser/speech/tts_chromeos.h"
|
||||
#include "chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.h"
|
||||
#include "chrome/browser/ui/ash/system_web_apps/system_web_app_ui_utils.h"
|
||||
#include "chrome/browser/ui/browser_dialogs.h"
|
||||
#include "chromeos/ash/services/network_health/public/cpp/network_health_helper.h"
|
||||
#include "chromeos/crosapi/cpp/lacros_startup_state.h"
|
||||
#include "components/crash/core/app/breakpad_linux.h"
|
||||
#include "components/user_manager/user.h"
|
||||
#include "components/user_manager/user_manager.h"
|
||||
#include "services/service_manager/public/mojom/interface_provider_spec.mojom.h"
|
||||
#include "storage/browser/file_system/external_mount_points.h"
|
||||
#include "ui/display/screen.h"
|
||||
#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
#include "chrome/browser/chrome_browser_main_linux.h"
|
||||
#elif BUILDFLAG(IS_ANDROID)
|
||||
|
@ -451,7 +462,6 @@
|
|||
#include "chrome/browser/policy/networking/policy_cert_service.h"
|
||||
#include "chrome/browser/policy/networking/policy_cert_service_factory.h"
|
||||
#include "chrome/common/chromeos/extensions/chromeos_system_extension_info.h"
|
||||
#include "chromeos/services/network_health/public/cpp/network_health_helper.h"
|
||||
#include "components/crash/core/app/breakpad_linux.h"
|
||||
#include "third_party/cros_system_api/switches/chrome_switches.h"
|
||||
#endif
|
||||
|
@ -472,6 +482,7 @@
|
|||
#include "chrome/browser/ui/browser_finder.h"
|
||||
#include "chrome/browser/ui/search/new_tab_page_navigation_throttle.h"
|
||||
#include "chrome/browser/ui/web_applications/tabbed_web_app_navigation_throttle.h"
|
||||
#include "chrome/browser/ui/web_applications/webui_web_app_navigation_throttle.h"
|
||||
#include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory.h"
|
||||
#include "chrome/browser/web_applications/policy/web_app_policy_manager.h"
|
||||
#include "chrome/browser/web_applications/web_app_helpers.h"
|
||||
|
@ -528,7 +539,7 @@
|
|||
#include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h"
|
||||
#endif
|
||||
|
||||
#if defined(TOOLKIT_VIEWS) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
#include "chrome/browser/ui/lens/lens_side_panel_navigation_helper.h"
|
||||
#include "components/lens/lens_features.h"
|
||||
#endif
|
||||
|
@ -1550,6 +1561,12 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
|||
policy::policy_prefs::kUseMojoVideoDecoderForPepperAllowed, true);
|
||||
registry->RegisterBooleanPref(
|
||||
policy::policy_prefs::kPPAPISharedImagesSwapChainAllowed, true);
|
||||
registry->RegisterBooleanPref(
|
||||
policy::policy_prefs::kForceEnablePepperVideoDecoderDevAPI, false);
|
||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
|
||||
registry->RegisterBooleanPref(prefs::kOutOfProcessSystemDnsResolutionEnabled,
|
||||
true);
|
||||
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
|
||||
}
|
||||
|
||||
// static
|
||||
|
@ -2024,17 +2041,19 @@ bool ChromeContentBrowserClient::DoesSiteRequireDedicatedProcess(
|
|||
return false;
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::DoesWebUISchemeRequireProcessLock(
|
||||
base::StringPiece scheme) {
|
||||
bool ChromeContentBrowserClient::DoesWebUIUrlRequireProcessLock(
|
||||
const GURL& url) {
|
||||
// Note: This method can be called from multiple threads. It is not safe to
|
||||
// assume it runs only on the UI thread.
|
||||
|
||||
// chrome-search: documents commit only in the NTP instant process and are not
|
||||
// locked to chrome-search: origin. Locking to chrome-search would kill
|
||||
// processes upon legitimate requests for cookies from the search engine's
|
||||
// domain.
|
||||
if (scheme == chrome::kChromeSearchScheme)
|
||||
// We only allow the most visited tiles on third-party NTPs to not require a
|
||||
// process lock. Everything else, including the actual third-party NTP which
|
||||
// embeds those tiles, should be locked. This allows most visited tiles to
|
||||
// stay in their parent (i.e., third-party NTP's) process.
|
||||
if (url.SchemeIs(chrome::kChromeSearchScheme) &&
|
||||
url.host() == chrome::kChromeSearchMostVisitedHost) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// All other WebUIs must be locked to origin.
|
||||
return true;
|
||||
|
@ -2202,12 +2221,21 @@ void ChromeContentBrowserClient::OverrideNavigationParams(
|
|||
|
||||
bool ChromeContentBrowserClient::ShouldStayInParentProcessForNTP(
|
||||
const GURL& url,
|
||||
SiteInstance* parent_site_instance) {
|
||||
// While using SiteInstance::GetSiteURL() is unreliable and the wrong thing to
|
||||
// use for making security decisions 99.44% of the time, for detecting the NTP
|
||||
// it is reliable and the correct way. See http://crbug.com/624410.
|
||||
return url.SchemeIs(chrome::kChromeSearchScheme) && parent_site_instance &&
|
||||
search::IsNTPURL(parent_site_instance->GetSiteURL());
|
||||
const GURL& parent_site_url) {
|
||||
// Allow most visited iframes to stay in the parent process but only if that
|
||||
// process is for NTP.
|
||||
//
|
||||
// TODO(alexmos): Consider further tightening this exception to just the
|
||||
// third-party remote NTP in the parent, rather than any NTP.
|
||||
//
|
||||
// TODO(crbug.com/566091): place those iframes into OOPIFs and remove this
|
||||
// exception. Relaxing site isolation like this is a bad idea and should be
|
||||
// avoided.
|
||||
//
|
||||
// TODO(crbug.com/624410): clean up the logic for detecting NTP.
|
||||
return url.SchemeIs(chrome::kChromeSearchScheme) &&
|
||||
url.host() == chrome::kChromeSearchMostVisitedHost &&
|
||||
search::IsNTPURL(parent_site_url);
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::IsSuitableHost(
|
||||
|
@ -2657,10 +2685,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
|
|||
if (!login_profile.empty())
|
||||
command_line->AppendSwitchASCII(ash::switches::kLoginProfile,
|
||||
login_profile);
|
||||
|
||||
if (!crosapi::browser_util::IsAshWebBrowserEnabled()) {
|
||||
command_line->AppendSwitch(switches::kAshWebBrowserDisabled);
|
||||
}
|
||||
#endif
|
||||
|
||||
MaybeCopyDisableWebRtcEncryptionSwitch(command_line, browser_command_line,
|
||||
|
@ -2694,14 +2718,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
|
|||
blink::switches::kPrefixedStorageInfoEnabled);
|
||||
}
|
||||
|
||||
// Enabled async interface for FileSystemSyncAccessHandle if enabled by
|
||||
// enterprise policy.
|
||||
if (prefs->GetBoolean(
|
||||
storage::kFileSystemSyncAccessHandleAsyncInterfaceEnabled)) {
|
||||
command_line->AppendSwitch(
|
||||
switches::kFileSystemSyncAccessHandleAsyncInterfaceEnabled);
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
InstantService* instant_service =
|
||||
InstantServiceFactory::GetForProfile(profile);
|
||||
|
@ -2959,6 +2975,11 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
|
|||
command_line->AppendSwitch(
|
||||
::switches::kDisablePPAPISharedImagesSwapChain);
|
||||
}
|
||||
if (local_state->GetBoolean(
|
||||
policy::policy_prefs::kForceEnablePepperVideoDecoderDevAPI)) {
|
||||
command_line->AppendSwitch(
|
||||
::switches::kForceEnablePepperVideoDecoderDevAPI);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2994,7 +3015,7 @@ bool ChromeContentBrowserClient::IsDataSaverEnabled(
|
|||
if (!browser_context || browser_context->IsOffTheRecord())
|
||||
return false;
|
||||
|
||||
return data_saver::IsDataSaverEnabled(browser_context);
|
||||
return data_saver::IsDataSaverEnabled();
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClient::UpdateRendererPreferencesForWorker(
|
||||
|
@ -3273,13 +3294,13 @@ bool ChromeContentBrowserClient::IsInterestGroupAPIAllowed(
|
|||
if (operation == InterestGroupApiOperation::kJoin) {
|
||||
content_settings::PageSpecificContentSettings::InterestGroupJoined(
|
||||
render_frame_host, api_origin, !allowed);
|
||||
content_settings::PageSpecificContentSettings::BrowsingDataAccessed(
|
||||
render_frame_host,
|
||||
content::InterestGroupManager::InterestGroupDataKey{api_origin,
|
||||
top_frame_origin},
|
||||
BrowsingDataModel::StorageType::kInterestGroup, !allowed);
|
||||
}
|
||||
|
||||
content_settings::PageSpecificContentSettings::BrowsingDataAccessed(
|
||||
render_frame_host,
|
||||
content::InterestGroupManager::InterestGroupDataKey{api_origin,
|
||||
top_frame_origin},
|
||||
BrowsingDataModel::StorageType::kInterestGroup, !allowed);
|
||||
return allowed;
|
||||
}
|
||||
|
||||
|
@ -3316,7 +3337,7 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
|
|||
return privacy_sandbox_settings->MaySendAttributionReport(
|
||||
*source_origin, *destination_origin, *reporting_origin);
|
||||
case AttributionReportingOperation::kAny:
|
||||
return privacy_sandbox_settings->IsPrivacySandboxEnabled();
|
||||
return privacy_sandbox_settings->IsAttributionReportingEverAllowed();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3339,6 +3360,18 @@ bool ChromeContentBrowserClient::IsSharedStorageAllowed(
|
|||
return allowed;
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::IsSharedStorageSelectURLAllowed(
|
||||
content::BrowserContext* browser_context,
|
||||
const url::Origin& top_frame_origin,
|
||||
const url::Origin& accessing_origin) {
|
||||
Profile* profile = Profile::FromBrowserContext(browser_context);
|
||||
auto* privacy_sandbox_settings =
|
||||
PrivacySandboxSettingsFactory::GetForProfile(profile);
|
||||
DCHECK(privacy_sandbox_settings);
|
||||
return privacy_sandbox_settings->IsSharedStorageSelectURLAllowed(
|
||||
top_frame_origin, accessing_origin);
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::IsPrivateAggregationAllowed(
|
||||
content::BrowserContext* browser_context,
|
||||
const url::Origin& top_frame_origin,
|
||||
|
@ -4264,13 +4297,6 @@ std::string ChromeContentBrowserClient::GetDefaultDownloadName() {
|
|||
return l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME);
|
||||
}
|
||||
|
||||
base::FilePath ChromeContentBrowserClient::GetFontLookupTableCacheDir() {
|
||||
base::FilePath user_data_dir;
|
||||
base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
|
||||
DCHECK(!user_data_dir.empty());
|
||||
return user_data_dir.Append(FILE_PATH_LITERAL("FontLookupTableCache"));
|
||||
}
|
||||
|
||||
base::FilePath ChromeContentBrowserClient::GetShaderDiskCacheDirectory() {
|
||||
base::FilePath user_data_dir;
|
||||
base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
|
||||
|
@ -4563,6 +4589,7 @@ std::wstring ChromeContentBrowserClient::GetAppContainerSidForSandboxType(
|
|||
case sandbox::mojom::Sandbox::kIconReader:
|
||||
case sandbox::mojom::Sandbox::kMediaFoundationCdm:
|
||||
case sandbox::mojom::Sandbox::kWindowsSystemProxyResolver:
|
||||
case sandbox::mojom::Sandbox::kFileUtil:
|
||||
// Should never reach here.
|
||||
CHECK(0);
|
||||
return std::wstring();
|
||||
|
@ -4651,6 +4678,7 @@ bool ChromeContentBrowserClient::PreSpawnChild(
|
|||
case sandbox::mojom::Sandbox::kIconReader:
|
||||
case sandbox::mojom::Sandbox::kMediaFoundationCdm:
|
||||
case sandbox::mojom::Sandbox::kWindowsSystemProxyResolver:
|
||||
case sandbox::mojom::Sandbox::kFileUtil:
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -4964,6 +4992,10 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
|||
MaybeAddThrottle(
|
||||
web_app::TabbedWebAppNavigationThrottle::MaybeCreateThrottleFor(handle),
|
||||
&throttles);
|
||||
|
||||
MaybeAddThrottle(
|
||||
web_app::WebUIWebAppNavigationThrottle::MaybeCreateThrottleFor(handle),
|
||||
&throttles);
|
||||
#endif
|
||||
|
||||
// g_browser_process->safe_browsing_service() may be null in unittests.
|
||||
|
@ -5044,10 +5076,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
|||
}
|
||||
#endif
|
||||
|
||||
// Only include Lens on Chrome branded Desktop clients. TOOLKIT_VIEWS is used
|
||||
// for rendering UI on Windows, Mac, Linux, and ChromeOS. Therefore, if
|
||||
// TOOLKIT_VIEWS is defined, we are on one of those platforms.
|
||||
#if defined(TOOLKIT_VIEWS) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
if (lens::features::IsLensSidePanelEnabled()) {
|
||||
MaybeAddThrottle(
|
||||
lens::LensSidePanelNavigationHelper::MaybeCreateThrottleFor(handle),
|
||||
|
@ -5063,11 +5092,19 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
|||
#endif
|
||||
|
||||
if (profile && profile->GetPrefs()) {
|
||||
MaybeAddThrottle(
|
||||
HttpsOnlyModeNavigationThrottle::MaybeCreateThrottleFor(
|
||||
handle, std::make_unique<ChromeSecurityBlockingPageFactory>(),
|
||||
profile->GetPrefs()),
|
||||
&throttles);
|
||||
if (base::FeatureList::IsEnabled(features::kHttpsFirstModeV2)) {
|
||||
MaybeAddThrottle(
|
||||
HttpsUpgradesNavigationThrottle::MaybeCreateThrottleFor(
|
||||
handle, std::make_unique<ChromeSecurityBlockingPageFactory>(),
|
||||
profile->GetPrefs()),
|
||||
&throttles);
|
||||
} else {
|
||||
MaybeAddThrottle(
|
||||
HttpsOnlyModeNavigationThrottle::MaybeCreateThrottleFor(
|
||||
handle, std::make_unique<ChromeSecurityBlockingPageFactory>(),
|
||||
profile->GetPrefs()),
|
||||
&throttles);
|
||||
}
|
||||
}
|
||||
|
||||
MaybeAddThrottle(MaybeCreateNavigationAblationThrottle(handle), &throttles);
|
||||
|
@ -5338,6 +5375,11 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
|
|||
GetUrlLookupService(browser_context, is_enterprise_lookup_enabled,
|
||||
is_consumer_lookup_enabled);
|
||||
|
||||
safe_browsing::HashRealTimeService* hash_realtime_service =
|
||||
safe_browsing_service_
|
||||
? safe_browsing_service_->GetHashRealTimeService(profile)
|
||||
: nullptr;
|
||||
|
||||
result.push_back(safe_browsing::BrowserURLLoaderThrottle::Create(
|
||||
base::BindOnce(
|
||||
&ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate,
|
||||
|
@ -5347,7 +5389,8 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
|
|||
/*should_check_on_sb_disabled=*/is_enterprise_lookup_enabled,
|
||||
safe_browsing::GetURLAllowlistByPolicy(profile->GetPrefs())),
|
||||
wc_getter, frame_tree_node_id,
|
||||
url_lookup_service ? url_lookup_service->GetWeakPtr() : nullptr));
|
||||
url_lookup_service ? url_lookup_service->GetWeakPtr() : nullptr,
|
||||
hash_realtime_service ? hash_realtime_service->GetWeakPtr() : nullptr));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -5366,7 +5409,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
|
|||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
std::string client_data_header;
|
||||
bool is_tab_large_enough = false;
|
||||
bool is_custom_tab = false;
|
||||
if (frame_tree_node_id != content::RenderFrameHost::kNoFrameTreeNodeId) {
|
||||
auto* web_contents = WebContents::FromFrameTreeNodeId(frame_tree_node_id);
|
||||
|
@ -5384,7 +5426,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
|
|||
web_contents->GetDelegate())
|
||||
: nullptr;
|
||||
if (delegate) {
|
||||
is_tab_large_enough = delegate->IsTabLargeEnoughForDesktopSite();
|
||||
is_custom_tab = delegate->IsCustomTab();
|
||||
}
|
||||
}
|
||||
|
@ -5397,7 +5438,7 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
|
|||
profile->GetPrefs()->GetString(prefs::kAllowedDomainsForApps)};
|
||||
result.push_back(std::make_unique<GoogleURLLoaderThrottle>(
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
client_data_header, is_tab_large_enough,
|
||||
client_data_header,
|
||||
#endif
|
||||
std::move(dynamic_params)));
|
||||
|
||||
|
@ -5896,7 +5937,10 @@ ChromeContentBrowserClient::WillCreateURLLoaderRequestInterceptors(
|
|||
interceptors.push_back(
|
||||
std::make_unique<SearchPrefetchURLLoaderInterceptor>(frame_tree_node_id));
|
||||
|
||||
if (base::FeatureList::IsEnabled(features::kHttpsOnlyMode)) {
|
||||
if (base::FeatureList::IsEnabled(features::kHttpsFirstModeV2)) {
|
||||
interceptors.push_back(
|
||||
std::make_unique<HttpsUpgradesInterceptor>(frame_tree_node_id));
|
||||
} else {
|
||||
interceptors.push_back(
|
||||
std::make_unique<HttpsOnlyModeUpgradeInterceptor>(frame_tree_node_id));
|
||||
}
|
||||
|
@ -6384,6 +6428,27 @@ bool ChromeContentBrowserClient::HandleWebUI(
|
|||
chrome::kChromeUIHelpHost);
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings4)) {
|
||||
// Redirect to the new version of privacy sandbox settings.
|
||||
if (url->SchemeIs(content::kChromeUIScheme) &&
|
||||
url->host() == chrome::kChromeUISettingsHost) {
|
||||
if (url->path() == chrome::kPrivacySandboxSubPagePath) {
|
||||
GURL::Replacements replacements;
|
||||
replacements.SetPathStr(chrome::kAdPrivacySubPagePath);
|
||||
*url = url->ReplaceComponents(replacements);
|
||||
UMA_HISTOGRAM_BOOLEAN("Settings.PrivacySandbox.DeprecatedRedirect",
|
||||
true);
|
||||
} else if (url->path() == chrome::kAdPrivacySubPagePath) {
|
||||
// Log un-redirected navigations to the page as well to provide context
|
||||
// for the raw number of redirects.
|
||||
UMA_HISTOGRAM_BOOLEAN("Settings.PrivacySandbox.DeprecatedRedirect",
|
||||
false);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
// TODO(crbug.com/1003960): Remove when issue is resolved.
|
||||
if (url->SchemeIs(content::kChromeUIScheme) &&
|
||||
|
@ -6554,6 +6619,27 @@ bool ChromeContentBrowserClient::ShouldSandboxNetworkService() {
|
|||
return SystemNetworkContextManager::IsNetworkSandboxEnabled();
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::ShouldRunOutOfProcessSystemDnsResolution() {
|
||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
|
||||
// This is possibly called before `g_browser_process` is initialized.
|
||||
PrefService* local_state;
|
||||
if (g_browser_process) {
|
||||
local_state = g_browser_process->local_state();
|
||||
} else {
|
||||
local_state = startup_data_.chrome_feature_list_creator()->local_state();
|
||||
}
|
||||
if (local_state && local_state->HasPrefPath(
|
||||
prefs::kOutOfProcessSystemDnsResolutionEnabled)) {
|
||||
return local_state->GetBoolean(
|
||||
prefs::kOutOfProcessSystemDnsResolutionEnabled);
|
||||
}
|
||||
#endif
|
||||
|
||||
// If no policy is specified, then delegate to global configuration.
|
||||
return base::FeatureList::IsEnabled(
|
||||
network::features::kOutOfProcessSystemDnsResolution);
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClient::LogWebFeatureForCurrentPage(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
blink::mojom::WebFeature feature) {
|
||||
|
@ -6773,6 +6859,7 @@ bool ChromeContentBrowserClient::ArePersistentMediaDeviceIDsAllowed(
|
|||
Profile::FromBrowserContext(browser_context))
|
||||
->IsFullCookieAccessAllowed(
|
||||
url, site_for_cookies, top_frame_origin,
|
||||
net::CookieSettingOverrides(),
|
||||
content_settings::CookieSettings::QueryReason::kSiteStorage);
|
||||
}
|
||||
|
||||
|
@ -7287,6 +7374,29 @@ bool ChromeContentBrowserClient::OpenExternally(
|
|||
ash::NewWindowDelegate::Disposition::kNewForegroundTab);
|
||||
return true;
|
||||
}
|
||||
|
||||
// If Lacros is the only browser, we intercept any WebUI URLs that would be
|
||||
// opened in a regular browser window. We open these with the OsUrlHandler SWA
|
||||
// instead, which will load them in an app window.
|
||||
Profile* profile = Profile::FromBrowserContext(opener->GetBrowserContext());
|
||||
bool should_open_in_ash_app =
|
||||
!crosapi::browser_util::IsAshWebBrowserEnabled() &&
|
||||
opener->GetWebUI() != nullptr &&
|
||||
// Terminal's tabs must remain in the Terminal SWA.
|
||||
!url.SchemeIs(content::kChromeUIUntrustedScheme) &&
|
||||
ChromeWebUIControllerFactory::GetInstance()->CanHandleUrl(url) &&
|
||||
!ash::GetCapturingSystemAppForURL(profile, url);
|
||||
if (should_open_in_ash_app) {
|
||||
ash::SystemAppLaunchParams launch_params;
|
||||
launch_params.url = url;
|
||||
int64_t display_id =
|
||||
display::Screen::GetScreen()->GetDisplayForNewWindows().id();
|
||||
ash::LaunchSystemWebAppAsync(
|
||||
ProfileManager::GetPrimaryUserProfile(),
|
||||
ash::SystemWebAppType::OS_URL_HANDLER, launch_params,
|
||||
std::make_unique<apps::WindowInfo>(display_id));
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
@ -7334,3 +7444,20 @@ bool ChromeContentBrowserClient::IsFileSystemURLNavigationAllowed(
|
|||
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
return false;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
base::FilePath ChromeContentBrowserClient::GetChildProcessPath(
|
||||
int child_flags,
|
||||
const base::FilePath& helpers_path) {
|
||||
std::string helper_name(chrome::kHelperProcessExecutableName);
|
||||
if (child_flags == chrome::kChildProcessHelperAlerts) {
|
||||
helper_name += chrome::kMacHelperSuffixAlerts;
|
||||
return helpers_path.Append(helper_name + ".app")
|
||||
.Append("Contents")
|
||||
.Append("MacOS")
|
||||
.Append(helper_name);
|
||||
}
|
||||
NOTREACHED() << "Unsupported child process flags!";
|
||||
return {};
|
||||
}
|
||||
#endif // BUILDFLAG(IS_MAC)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2022 The Chromium Authors and Alex313031. All rights reserved.
|
||||
// Copyright (c) 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
|||
#include <memory>
|
||||
#include <set>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/process/process_iterator.h"
|
||||
#include "base/process/process_metrics.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 The Chromium Authors and Alex313031
|
||||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -111,9 +111,9 @@ const int EXIT_XDG_SETTINGS_SYNTAX_ERROR = 1;
|
|||
// system fails, as the system copy may be missing capabilities of the Chrome
|
||||
// copy.
|
||||
|
||||
// If |protocol| is empty this function sets Chrome as the default browser,
|
||||
// otherwise it sets Chrome as the default handler application for |protocol|.
|
||||
bool SetDefaultWebClient(const std::string& protocol) {
|
||||
// If |scheme| is empty this function sets Chrome as the default browser,
|
||||
// otherwise it sets Chrome as the default handler application for |scheme|.
|
||||
bool SetDefaultWebClient(const std::string& scheme) {
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
return true;
|
||||
#else
|
||||
|
@ -122,11 +122,11 @@ bool SetDefaultWebClient(const std::string& protocol) {
|
|||
std::vector<std::string> argv;
|
||||
argv.push_back(kXdgSettings);
|
||||
argv.push_back("set");
|
||||
if (protocol.empty()) {
|
||||
if (scheme.empty()) {
|
||||
argv.push_back(kXdgSettingsDefaultBrowser);
|
||||
} else {
|
||||
argv.push_back(kXdgSettingsDefaultSchemeHandler);
|
||||
argv.push_back(protocol);
|
||||
argv.push_back(scheme);
|
||||
}
|
||||
argv.push_back(chrome::GetDesktopName(env.get()));
|
||||
|
||||
|
@ -142,11 +142,11 @@ bool SetDefaultWebClient(const std::string& protocol) {
|
|||
#endif
|
||||
}
|
||||
|
||||
// If |protocol| is empty this function checks if Chrome is the default browser,
|
||||
// If |scheme| is empty this function checks if Chrome is the default browser,
|
||||
// otherwise it checks if Chrome is the default handler application for
|
||||
// |protocol|.
|
||||
// |scheme|.
|
||||
shell_integration::DefaultWebClientState GetIsDefaultWebClient(
|
||||
const std::string& protocol) {
|
||||
const std::string& scheme) {
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
return shell_integration::UNKNOWN_DEFAULT;
|
||||
#else
|
||||
|
@ -158,11 +158,11 @@ shell_integration::DefaultWebClientState GetIsDefaultWebClient(
|
|||
std::vector<std::string> argv;
|
||||
argv.push_back(kXdgSettings);
|
||||
argv.push_back("check");
|
||||
if (protocol.empty()) {
|
||||
if (scheme.empty()) {
|
||||
argv.push_back(kXdgSettingsDefaultBrowser);
|
||||
} else {
|
||||
argv.push_back(kXdgSettingsDefaultSchemeHandler);
|
||||
argv.push_back(protocol);
|
||||
argv.push_back(scheme);
|
||||
}
|
||||
argv.push_back(chrome::GetDesktopName(env.get()));
|
||||
|
||||
|
@ -802,16 +802,11 @@ bool SetAsDefaultBrowser() {
|
|||
return shell_integration_linux::SetDefaultWebClient(std::string());
|
||||
}
|
||||
|
||||
bool SetAsDefaultProtocolClient(const std::string& protocol) {
|
||||
return shell_integration_linux::SetDefaultWebClient(protocol);
|
||||
bool SetAsDefaultClientForScheme(const std::string& scheme) {
|
||||
return shell_integration_linux::SetDefaultWebClient(scheme);
|
||||
}
|
||||
|
||||
DefaultWebClientSetPermission
|
||||
GetPlatformSpecificDefaultWebClientSetPermission() {
|
||||
return SET_DEFAULT_UNATTENDED;
|
||||
}
|
||||
|
||||
std::u16string GetApplicationNameForProtocol(const GURL& url) {
|
||||
std::u16string GetApplicationNameForScheme(const GURL& url) {
|
||||
std::unique_ptr<base::Environment> env(base::Environment::Create());
|
||||
|
||||
std::string desktop_file_contents;
|
||||
|
@ -846,8 +841,17 @@ bool IsFirefoxDefaultBrowser() {
|
|||
return browser.find("irefox") != std::string::npos;
|
||||
}
|
||||
|
||||
DefaultWebClientState IsDefaultProtocolClient(const std::string& protocol) {
|
||||
return shell_integration_linux::GetIsDefaultWebClient(protocol);
|
||||
DefaultWebClientState IsDefaultClientForScheme(const std::string& scheme) {
|
||||
return shell_integration_linux::GetIsDefaultWebClient(scheme);
|
||||
}
|
||||
|
||||
namespace internal {
|
||||
|
||||
DefaultWebClientSetPermission GetPlatformSpecificDefaultWebClientSetPermission(
|
||||
WebClientSetMethod method) {
|
||||
return SET_DEFAULT_UNATTENDED;
|
||||
}
|
||||
|
||||
} // namespace internal
|
||||
|
||||
} // namespace shell_integration
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- Copyright (c) 2023 Alex313031. -->
|
||||
<!-- android_chrome_strings.grd contains strings for Thorium for Android.
|
||||
|
||||
FAQ:
|
||||
|
@ -211,9 +211,6 @@ CHAR_LIMIT guidelines:
|
|||
<message name="IDS_PREFS_SECTION_ADVANCED" desc='Title of "Advanced" section of preferences. [CHAR_LIMIT=32]'>
|
||||
Advanced
|
||||
</message>
|
||||
<message name="IDS_ENTER_VR" desc="Menu item for entering VR. [CHAR_LIMIT=27]">
|
||||
Enter VR
|
||||
</message>
|
||||
|
||||
<!-- Notification channels -->
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR_LIMIT=32]'>
|
||||
|
@ -533,9 +530,6 @@ CHAR_LIMIT guidelines:
|
|||
<message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_PROGRESS_BAR_MESSAGE" desc="Message shown on the progress bar after the user selects an authenticator from a list of options and proceeds.">
|
||||
Contacting your bank\u2026
|
||||
</message>
|
||||
<message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_POSITIVE_BUTTON_LABEL" desc="Positive button label for the dialog where the user selects an authenticator from a list of options.">
|
||||
Continue
|
||||
</message>
|
||||
<message name="IDS_AUTOFILL_PAYMENTS_AUTHENTICATOR_SELECTION_DIALOG_NEGATIVE_BUTTON_LABEL" desc="Negative button label for the dialog where the user selects an authenticator from a list of options.">
|
||||
Cancel
|
||||
</message>
|
||||
|
@ -817,11 +811,11 @@ CHAR_LIMIT guidelines:
|
|||
<message name="IDS_SECURITY_SECTION_TITLE" desc="Title for the Security settings section.">
|
||||
Security
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_LINK_ROW_LABEL" translateable="false" desc="Label for the ad privacy row.">
|
||||
Donec semper
|
||||
<message name="IDS_AD_PRIVACY_LINK_ROW_LABEL" desc="A new label that appears on the Privacy and security page (chrome://settings/privacy) between 'Third-party cookies' and 'Security'. This same text is used as a page title for the new Ad privacy section. This same pair of words is used in the Consent and Notice flow and must be consistently translated in both contexts. We mean privacy associated with ads, and not privacy from ads. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Ad privacy
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_LINK_ROW_SUB_LABEL" translateable="false" desc="Sublabel for the ad privacy row.">
|
||||
Fusce purus nibh, dictum sit amet mi in, fringilla ullamcorper tortor
|
||||
<message name="IDS_AD_PRIVACY_LINK_ROW_SUB_LABEL" desc="A string that describes 'Ad privacy', the label that appears just above it. For context, this new 'Ad privacy' / 'Customize the info...' pair of strings is similar to the existing 'Clear browsing data' / 'Clear history, cookies...' that you find on chrome://settings/privacy. * 'Customize': From our word list: 'This word describes user agency in refining their personalized recommendations, elements of the experience, or sometimes products'. Please don't confuse with 'personalize', which we reserve to mean: '...when Google provides recommendations and other content for users based on their data'. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Customize the info used by sites to show you ads
|
||||
</message>
|
||||
<message name="IDS_CONTEXTUAL_SEARCH_TITLE" desc="Name for the Contextual Search feature, which allows users to search for a term in a web page by tapping on it.">
|
||||
Touch to Search
|
||||
|
@ -872,45 +866,9 @@ For example, some websites may respond to this request by showing you ads that a
|
|||
<message name="IDS_PRIVACY_SANDBOX_STATUS_DISABLED" desc="Status text, displayed when the Privacy sandbox APIs are disabled.">
|
||||
Trial features are off
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_DESCRIPTION_TITLE" desc="Title for the description text of 'Privacy Sandbox'.">
|
||||
About Privacy Sandbox
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_DESCRIPTION_TWO" desc="Description of the 'Privacy Sandbox' when phase 2 flag is enabled.">
|
||||
With <ph name="BEGIN_LINK"><link></ph>Privacy Sandbox<ph name="END_LINK"></link></ph>, Thorium is developing new technologies to safeguard you from cross-site tracking while preserving the open web.
|
||||
|
||||
Privacy Sandbox trials are still in active development and are available in selected regions. For now, sites may try out Privacy Sandbox while continuing to use current web technologies like third-party cookies.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_TOGGLE" desc="Title for the Privacy Sandbox toggle.">
|
||||
Privacy Sandbox trials
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_TOGGLE_DESCRIPTION_TWO" desc="Description for the Privacy Sandbox toggle when phase 2 flag is enabled.">
|
||||
When on, sites may use the privacy-preserving techniques shown here to provide their content and services. These include alternatives to cross-site tracking. More trials may be added over time.
|
||||
|
||||
<ph name="BEGIN_LIST_ITEM1"><li1></ph>Advertisers and publishers can use FLoC.<ph name="END_LIST_ITEM1"></li1></ph>
|
||||
|
||||
<ph name="BEGIN_LIST_ITEM2"><li2></ph>Advertisers and publishers can study the effectiveness of ads in a way that does not track you across sites.<ph name="END_LIST_ITEM2"></li2></ph>
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_SNACKBAR_MESSAGE" desc="The text displayed in the snackbar, which gives the user an option to navigate to the Privacy Sandbox settings page. 'Privacy sandbox' has TC ID 5753235213964358658.">
|
||||
Learn about and control new technologies that aim to replace third-party cookies
|
||||
</message>
|
||||
<message name="IDS_PREFS_PRIVACY_SANDBOX_FLOC" desc="Title for the FLoC preferences as part of the Privacy Sandbox.">
|
||||
FLoC
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_FLOC_DESCRIPTION" desc="Sentence indicating that FLoC is only available in some regions, including a link to a page that describes exactly what regions it is available. This will only ever appear directly after another sentence.">
|
||||
This trial is active only in <ph name="BEGIN_LINK"><link></ph>some regions<ph name="END_LINK"></link></ph>.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_FLOC_STATUS_TITLE" desc="Title for FLoC experiment status.">
|
||||
Status
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_FLOC_GROUP_TITLE" desc="Title for FLoC group.">
|
||||
Group number
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_FLOC_UPDATE_TITLE" desc="Title for FLoC update.">
|
||||
Next update
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_FLOC_RESET_BUTTON" desc="Button text to reset FLoC group ID.">
|
||||
Reset group
|
||||
</message>
|
||||
|
||||
<message name="IDS_PRIVACY_SANDBOX_TRIALS_TITLE" desc="The title of the settings page on which the user can find all Privacy Sandbox trials. When launched, this page will appear at chrome://settings/privacySandbox. To get there: 1) go to Thorium settings 2) From the main menu (top left of the page) choose “Security and privacy” 3) At the bottom of the page, choose “Privacy Sandbox” There are 3 cards on this page that are presented as features. Only the first includes controls the user can manage, but we want to convey that Privacy Sandbox includes all of the things on this page.">
|
||||
Trials
|
||||
|
@ -1113,289 +1071,171 @@ Private state tokens improve privacy on the web and can’t be used to find out
|
|||
Thorium is finding new ways to reduce tracking and keep you even safer as you browse. Thorium also <ph name="BEGIN_LINK"><link></ph>estimates your interests<ph name="END_LINK"></link></ph> and enables you to manage them. Then, sites you visit can ask Thorium for your interests to show you ads.
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Consent EEA. -->
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_TITLE" translateable="false" desc="Privacy Sandbox dialog consent EEA: title.">
|
||||
Lorem ipsum Consent
|
||||
<!-- Privacy Sandbox v4 - Consent & Notice Flow -->
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_BULLET_2" desc="* This is 2 of 2 bullets that site beneath the sentence: 'We’re launching new ways to limit what sites can learn about you when they show you personalized ads, for example:' * 'ad measurement' is the name of a new setting we're launching and that appears on the Ad privacy page of Thorium settings. * 'limited types of data': This setting helps an advertiser associate a user's actions on one site with their actions on another. For example, a user sees an ad on one site and then later buys that product from the company that sells the product. The ad measurement setting allows Thorium to help a company make the association between the two sites so that the first site can be fairly compensated for showing an ad. Compared with third-party cookies, very little info is shared between sites to support this functionality. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** CONTEXT EEA NOTICE **** 1) This screen provides notice to Thorium users in the European Economic Area (EEA). It follows guidelines established by the GDPR. 2) This screen is the second of 2 screens. This second screen describes 2 settings: “Site-suggested ads” and “Ad measurement”. The first screen describes the “Ad topics” setting. " formatter_data="android_java">
|
||||
With ad measurement, limited types of data can be shared among sites and apps to measure the performance of their ads, such as the time of day an ad was shown to you.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_DESCRIPTION_1" translateable="false" desc="Privacy Sandbox dialog consent EEA: First section of the body, above the image.">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium pulvinar metus non mollis. Quisque placerat eget nisl sit amet facilisis.
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_DESCRIPTION_3" desc="A paragraph on the 'Enhanced ad privacy in Thorium' page that provides notice to Thorium users outside of the EEA. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** CONTEXT ROW NOTICE **** 1) This screen provides notice to Thorium users outside of the European Economic Area (EEA) (we typically refer to this screen as “Rest of World” or “ROW”). It follows guidelines established by the GDPR. 2) We’re using similar but distinct content for EEA / ROW because legal requirements differ. For ROW, we can provide notice for all 3 settings, and so all 3 settings can appear on a single screen. " formatter_data="android_java">
|
||||
To measure the performance of an ad, limited types of data can be shared among sites, such as the time of day an ad was shown to you.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_DESCRIPTION_2" translateable="false" desc="Privacy Sandbox dialog consent EEA: Second section of the body, above the image.">
|
||||
Nulla in tortor a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit. Integer et libero id metus egestas consequat non a ipsum.
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_DESCRIPTION_ANDROID" desc="As part of Privacy Sandbox (see details below), both Thorium and Android devices will have a new setting called 'Ad measurement'. Some details are different, but these settings essentially do the same thing. The Thorium setting allows sites you visit to ask Thorium for information that helps them measure the performance of their ads, linking 1) an ad for site B the user sees on site A, with 2) a purchase or other action the user might take on site B. On Android, it's essentially the same story only it's between apps and not sites. The challenge is that on Android, Thorium is a browser but it's also an App. This paragraph helps the user understand that, if both settings are on, information about the user's actions on a site might be connected with actions the user takes in an app. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com.">
|
||||
Your Android device may include a similar setting. If Ad measurement is turned on in Thorium and on your Android device, a company may be able to measure the effectiveness of an ad across web sites you visit and apps you use.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_DESCRIPTION_3" translateable="false" desc="Privacy Sandbox dialog consent EEA: Third section of the body, below the image, exclues the expand text.">
|
||||
Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu, elementum ut venenatis ornare, consequat ac turpis.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_EXPAND_LABEL" translateable="false" desc="Privacy Sandbox dialog consent EEA: Text user clicks to expand the collapsed section.">
|
||||
Vestibulum orci risus, consectetur
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_DESCRIPTION_4" translateable="false" desc="Privacy Sandbox dialog consent EEA: Fourth section of the body, below the collapsed section.">
|
||||
Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu, elementum ut venenatis ornare, consequat ac turpis.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_SAVING_LABEL" translateable="false" desc="Privacy Sandbox dialog consent EEA: Saving text.">
|
||||
Consectetur
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_ACCEPT_BUTTON" translateable="false" desc="Privacy Sandbox dialog consent EEA: Consent Yes button.">
|
||||
Quisque
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_DECLINE_BUTTON" translateable="false" desc="Privacy Sandbox dialog consent EEA: Consent No button.">
|
||||
Lorem
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_HEADING" translateable="false" desc="Privacy Sandbox dialog consent EEA: Header inside expand in consent.">
|
||||
Esed purus vestibulum velit convalli
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_BULLET_1" translateable="false" desc="Privacy Sandbox dialog consent EEA: First bullet point in expand in consent.">
|
||||
<ph name="BEGIN_BOLD"><b></ph>Nulla in tortor:<ph name="END_BOLD"></b></ph> a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_BULLET_2" translateable="false" desc="Privacy Sandbox dialog consent EEA: Second bullet point in expand in consent.">
|
||||
<ph name="BEGIN_BOLD"><b></ph>Consectetur adipiscing elit:<ph name="END_BOLD"></b></ph> Duis pretium pulvinar metus non mollis
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_BULLET_3" translateable="false" desc="Privacy Sandbox dialog consent EEA: Third bullet point in expand in consent.">
|
||||
<ph name="BEGIN_BOLD"><b></ph>Sed purus vestibulum: <ph name="END_BOLD"></b></ph> velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_CONSENT_LEARN_MORE_LINK" translateable="false" desc="Privacy Sandbox dialog consent EEA: Non-interactable link out 'Learn more with Google's etc ect'">
|
||||
Esed purus vestibulum velit convalli
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_DIALOG_MORE_BUTTON" translateable="false" desc="Privacy Sandbox dialog more button: Clicking on it makes the dialog scrolling to the bottom to show all the content.">
|
||||
More
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Notice EEA. -->
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_TITLE" translateable="false" desc="Privacy Sandbox dialog notice EEA: title.">
|
||||
Lorem ipsum Notice EEA
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_DESCRIPTION_1" translateable="false" desc="Privacy Sandbox dialog notice EEA: First section of the body, above the bullet points.">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium pulvinar metus non mollis. Quisque placerat eget nisl sit amet facilisis.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_BULLET_1" translateable="false" desc="Privacy Sandbox dialog notice EEA: First bullet point (outside expand).">
|
||||
Nulla in tortor: a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_BULLET_2" translateable="false" desc="Privacy Sandbox dialog notice EEA: Second bullet point (outside expand).">
|
||||
Sed purus vestibulum: velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_EXPAND_LABEL" translateable="false" desc="Privacy Sandbox dialog notice EEA: Text user clicks to expand the collapsed section.">
|
||||
Vestibulum orci risus, consectetur
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_DESCRIPTION_2" translateable="false" desc="Privacy Sandbox dialog notice EEA: Second section of text, below the expand label.">
|
||||
Consectetur adipiscing elit duis pretium pulvinar metus non mollis
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_ACK_BUTTON" translateable="false" desc="Privacy Sandbox dialog notice EEA: Got it button.">
|
||||
Sed
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_SETTINGS_BUTTON" translateable="false" desc="Privacy Sandbox dialog notice EEA: Settings button.">
|
||||
Cras id
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_HEADING_1" translateable="false" desc="Privacy Sandbox dialog notice EEA: First header in learn more expand.">
|
||||
Esed purus vestibulum velit convalli
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_DESCRIPTION" translateable="false" desc="Privacy Sandbox dialog notice EEA: First description block in expand.">
|
||||
Nulla in tortor a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit. Integer et libero id metus egestas consequat non a ipsum.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_HEADING_2" translateable="false" desc="Privacy Sandbox dialog notice EEA: Second header in learn more expand.">
|
||||
Proin sed purus vestibulum velit velit eget dapibus.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_BULLET_1" translateable="false" desc="Privacy Sandbox dialog notice EEA: First bullet point in expand.">
|
||||
<ph name="BEGIN_BOLD"><b></ph>Nulla in tortor:<ph name="END_BOLD"></b></ph> a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_BULLET_2" translateable="false" desc="Privacy Sandbox dialog notice EEA: Second bullet point in expand.">
|
||||
<ph name="BEGIN_BOLD"><b></ph>Consectetur adipiscing elit:<ph name="END_BOLD"></b></ph> Duis pretium pulvinar metus non mollis
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_EEA_LEARN_MORE_BULLET_3" translateable="false" desc="Privacy Sandbox dialog notice EEA: Third bullet point in expand.">
|
||||
<ph name="BEGIN_BOLD"><b></ph>Sed purus vestibulum: <ph name="END_BOLD"></b></ph> velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Notice ROW. -->
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_TITLE" translateable="false" desc="Privacy Sandbox dialog notice ROW: title.">
|
||||
Lorem ipsum Notice ROW
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_DESCRIPTION_1" translateable="false" desc="Privacy Sandbox dialog notice ROW: First section of the body, above the image.">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium pulvinar metus non mollis.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_DESCRIPTION_2" translateable="false" desc="Privacy Sandbox dialog notice ROW: Second section of the body, above the image.">
|
||||
Nulla in tortor a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit. Integer et libero id metus egestas consequat non a ipsum. Quisque placerat eget nisl sit amet facilisis.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_DESCRIPTION_3" translateable="false" desc="Privacy Sandbox dialog notice ROW: Third section of the body, below the image.">
|
||||
Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu, elementum ut venenatis ornare, consequat ac turpis. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_DESCRIPTION_4" translateable="false" desc="Privacy Sandbox dialog notice ROW: Fourth section of the body, below the expand label.">
|
||||
Proin sed purus vestibulum velit convallis suscipit eget dapibus.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_ACK_BUTTON" translateable="false" desc="Privacy Sandbox dialog notice ROW: Got it button on notice in eea.">
|
||||
Sed
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_SETTINGS_BUTTON" translateable="false" desc="Privacy Sandbox dialog notice ROW: Settings button in notice.">
|
||||
Cras id
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_EXPAND_LABEL" translateable="false" desc="Privacy Sandbox dialog notice ROW: Expand text.">
|
||||
Vestibulum orci risus consectetur
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_HEADING_1" translateable="false" desc="Privacy Sandbox dialog notice ROW: First header inside expand section.">
|
||||
Esed purus vestibulum velit convalli
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_1" translateable="false" desc="Privacy Sandbox dialog notice ROW: First description text in body, underneath first header.">
|
||||
Etiam dictum sem et neque molestie lobortis. Morbi quam tellus, tincidunt eget dapibus ac, lobortis et lacus. Integer nec egestas elit. Nulla venenatis facilisis dui eget suscipit.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_HEADING_2" translateable="false" desc="Privacy Sandbox dialog notice ROW: Second heading inside expand section.">
|
||||
Class aptent taciti sociosqu ad
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_2" translateable="false" desc="Privacy Sandbox dialog notice ROW: Second description text in body, underneath second header.">
|
||||
Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_BULLET_1" translateable="false" desc="Privacy Sandbox dialog notice ROW: First bullet point in ROW notice expand.">
|
||||
Sed elementum tellus condimentum quam vestibulum lacinia. Ut eu lobortis massa, venenatis sodales lacus. Nulla elementum magna et tortor efficitur, at volutpat metus varius.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_BULLET_2" translateable="false" desc="Privacy Sandbox dialog notice ROW: Second bullet point in ROW notice expand.">
|
||||
Duis tempor nulla nisi, ac bibendum lorem tempus sit amet. Proin non blandit risus. Maecenas facilisis enim nec tristique tristique. Eelementum ut venenatis ornare, consequat ac turpis. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_3" translateable="false" desc="Privacy Sandbox dialog notice ROW: Third section in body, below bullet points.">
|
||||
Etiam hendrerit turpis nibh, ac maximus lectus placerat at. Vivamus ligula quam, posuere luctus felis eu, dictum egestas arcu. per conubia nostra, per inceptos himenaeos. Cras ut metus vel est molestie finibus nec ut orci.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_4" translateable="false" desc="Privacy Sandbox dialog notice ROW: Fourth section in body, immediately below third.">
|
||||
Aliquam euismod scelerisque metus, in aliquet est vehicula ut. Curabitur sit amet ligula quis ante maximus gravida non id magna. Pellentesque interdum venenatis leo, at ultrices felis mollis nec. Integer vulputate velit eget mauris lacinia, ut ullamcorper mauris vehicula.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_HEADING_3" translateable="false" desc="Privacy Sandbox dialog notice ROW: Third header inside learn more expand.">
|
||||
Orci varius natoque penatibus et
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_5" translateable="false" desc="Privacy Sandbox dialog notice ROW: Fifth section in body below header 3.">
|
||||
Suspendisse at dui pulvinar, rhoncus orci at, porttitor nibh. Curabitur lacinia nulla sem, eu euismod dolor vulputate quis. Duis mattis eros et arcu elementum tempor. Duis pharetra eleifend sagittis.
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_6" translateable="false" desc="Privacy Sandbox dialog notice ROW: Sixth section in body, immediately below fifth.">
|
||||
Cras sed lacus suscipit, efficitur erat nec, semper sapien. Fusce at nunc molestie, elementum augue at, auctor nunc. Sed dui nisi, consectetur sit amet urna vitae, facilisis scelerisque justo.
|
||||
<message name="IDS_PRIVACY_SANDBOX_M1_NOTICE_ROW_LEARN_MORE_DESCRIPTION_ANDROID" desc="As part of Privacy Sandbox (see details below), both Thorium and Android devices will have a new setting called 'Ad measurement'. Some details are different, but these settings essentially do the same thing. The Thorium setting allows sites you visit to ask Thorium for information that helps them measure the performance of their ads, linking 1) an ad for site B the user sees on site A, with 2) a purchase or other action the user might take on site B. On Android, it's essentially the same story only it's between apps and not sites. The challenge is that on Android, Thorium is a browser but it's also an App. This paragraph helps the user understand that, if both settings are on, information about the user's actions on a site might be connected with actions the user takes in an app. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com.">
|
||||
Your Android device may include a similar setting. If Ad measurement is turned on in Thorium and on your Android device, a company may be able to measure the effectiveness of an ad across web sites you visit and apps you use.
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Ad Privacy Page -->
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TITLE" translateable="false" desc="Title for the Ad Privacy preferences page.">
|
||||
Donec semper
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TITLE" desc="A new page title for a page that includes 3 settings. This same text appears as a label on chrome://settings/privacy between 'Third-party cookies' and 'Security'. This same pair of words is used in the Consent and Notice flow and must be consistently translated in both contexts. We mean privacy associated with ads, and not privacy from ads. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Ad privacy
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_LABEL" translateable="false" desc="Title for topics preference.">
|
||||
Mauris interdum lectus vitae lacinia
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_LABEL" desc="The name of a new setting. This setting is described to users in the Consent moment as: Ad topics help sites show you relevant ads while protecting your browsing history and identity. Thorium can note topics of interest based on your recent browsing history. Later, a site you visit can ask Thorium for relevant topics to personalize the ads you see. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Ad topics
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_SUB_LABEL_ENABLED" translateable="false" desc="Description for topics preference when enabled.">
|
||||
Enabled Nulla eros tortor, placerat blandit dictum a, interdum id metus
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_SUB_LABEL_ENABLED" desc="Ad topics are derived from the user's browsing history. This help-center article explains 'browsing history' to users: https://support.google.com/chrome/answer/95589. This setting is described to users in the Consent moment as: Ad topics help sites show you relevant ads while protecting your browsing history and identity. Thorium can note topics of interest based on your recent browsing history. Later, a site you visit can ask Thorium for relevant topics to personalize the ads you see.">
|
||||
Based on your browsing history. This setting is on.
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_SUB_LABEL_DISABLED" translateable="false" desc="Description for topics preference when enabled.">
|
||||
Disabled Nulla eros tortor, placerat blandit dictum a, interdum id metus
|
||||
<message name="IDS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_SUB_LABEL_DISABLED" desc="Ad topics are derived from the user's browsing history. This help-center article explains 'browsing history' to users: https://support.google.com/chrome/answer/95589. This setting is described to users in the Consent moment as: Ad topics help sites show you relevant ads while protecting your browsing history and identity. Thorium can note topics of interest based on your recent browsing history. Later, a site you visit can ask Thorium for relevant topics to personalize the ads you see.">
|
||||
Based on your browsing history. This setting is off.
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_FLEDGE_LINK_ROW_LABEL" translateable="false" desc="Title for the fledge preference.">
|
||||
Aenean erat leo
|
||||
<message name="IDS_AD_PRIVACY_PAGE_FLEDGE_LINK_ROW_LABEL" desc="The name of a new setting. This setting is described to users in the Notice moment as: Site-suggested ads help protect your browsing history and identity while enabling sites to show you relevant ads. Based on your activity, a site you visited can suggest related ads as you continue browsing. You can see a list of these sites and block the ones you don’t want in settings. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Site-suggested ads
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_FLEDGE_LINK_ROW_SUB_LABEL_ENABLED" translateable="false" desc="Description for the fledge preference when enabled.">
|
||||
Enabled Duis scelerisque a mi eget ultricies
|
||||
<message name="IDS_AD_PRIVACY_PAGE_FLEDGE_LINK_ROW_SUB_LABEL_ENABLED" desc="A site can suggest ads for a user based on the user's activity on their site. This setting is described to users in the Notice moment as: Site-suggested ads help protect your browsing history and identity while enabling sites to show you relevant ads. Based on your activity, a site you visited can suggest related ads as you continue browsing. You can see a list of these sites and block the ones you don’t want in settings.">
|
||||
Based on your activity on a site. This setting is on.
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_FLEDGE_LINK_ROW_SUB_LABEL_DISABLED" translateable="false" desc="Description for the fledge preference when enabled.">
|
||||
Disabled Duis scelerisque a mi eget ultricies
|
||||
<message name="IDS_AD_PRIVACY_PAGE_FLEDGE_LINK_ROW_SUB_LABEL_DISABLED" desc="A site can suggest ads for a user based on the user's activity on their site. This setting is described to users in the Notice moment as: Site-suggested ads help protect your browsing history and identity while enabling sites to show you relevant ads. Based on your activity, a site you visited can suggest related ads as you continue browsing. You can see a list of these sites and block the ones you don’t want in settings.">
|
||||
Based on your activity on a site. This setting is off.
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_AD_MEASUREMENT_LINK_ROW_LABEL" translateable="false" desc="Title for the ad measurement preference.">
|
||||
Vestibulum augue erat
|
||||
<message name="IDS_AD_PRIVACY_PAGE_AD_MEASUREMENT_LINK_ROW_LABEL" desc="The name of a new setting. This setting is described to users in the Notice moment as: With ad measurement, limited types of data are shared between sites to measure the performance of their ads, such as the time of day an ad was shown to you. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Ad measurement
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_AD_MEASUREMENT_LINK_ROW_SUB_LABEL_ENABLED" translateable="false" desc="Description for the ad measurement preference when enabled.">
|
||||
Enabled Vivamus id lacus et lacus porttitor vulputate. Sed semper egestas orci vel maximus.
|
||||
<message name="IDS_AD_PRIVACY_PAGE_AD_MEASUREMENT_LINK_ROW_SUB_LABEL_ENABLED" desc="The name of a new setting. This setting is described to users in the Notice moment as: With ad measurement, limited types of data are shared between sites to measure the performance of their ads, such as the time of day an ad was shown to you.">
|
||||
Sites and advertisers can understand how ads perform. This setting is on.
|
||||
</message>
|
||||
<message name="IDS_AD_PRIVACY_PAGE_AD_MEASUREMENT_LINK_ROW_SUB_LABEL_DISABLED" translateable="false" desc="Description for the ad measurement preference when enabled.">
|
||||
Disabled Vivamus id lacus et lacus porttitor vulputate. Sed semper egestas orci vel maximus.
|
||||
<message name="IDS_AD_PRIVACY_PAGE_AD_MEASUREMENT_LINK_ROW_SUB_LABEL_DISABLED" desc="The name of a new setting. This setting is described to users in the Notice moment as: With ad measurement, limited types of data are shared between sites to measure the performance of their ads, such as the time of day an ad was shown to you.">
|
||||
Sites and advertisers can understand how ads perform. This setting is off.
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Topics Page -->
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_TITLE" translateable="false" desc="Title for the Topics preferences page.">
|
||||
Mauris interdum lectus vitae lacinia
|
||||
<!-- Where possible, these strings have been unified on Desktop & Android in privacy_sandox_strings.grdp. The strings here either only appear on one platform, or have platform specific requirements, e.g. the format of placeholders, and so cannot be unified. For the latter case, they have corresponding _CANONICAL representations used when consent is recorded on either platform, and so they must stay in sync -->
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_SUB_PAGE_TITLE" desc="A page title. Topics that the user blocked appear on this page.">
|
||||
Topics you blocked
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_TOGGLE_LABEL" translateable="false" desc="Title for the Topics toggle.">
|
||||
Nunc gravida condimentum consectetur
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION" desc="A description that appear beneath the 'Your topics' label. * 'You can block': There is a 'Block' button (or an X on mobile) that appears next to each topic in the list. * 'auto-deletes': this could also read 'Thorium deletes...' We included the 'auto' to reinforce that this is part of a system and the deletion is done regularly.">
|
||||
You can block topics you don't want shared with sites. Thorium also auto-deletes your topics older than 4 weeks. <ph name="BEGIN_LINK"><link></ph>Learn more<ph name="END_LINK"></link></ph>
|
||||
</message>
|
||||
<!-- TODO(http://b/254412601): Format link.-->
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_TOGGLE_SUB_LABEL" translateable="false" desc="Description for the Topics toggle.">
|
||||
Vivamus nibh turpis, varius quis nisi vel, porta laoreet tellus. <ph name="BEGIN_LINK"><link></ph>Mauris porta imperdiet venenatis<ph name="END_LINK"></link></ph>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_FOOTER" desc="This footer helps the user understand that this setting is just one signal among others that affect whether this user sees personalized ads on a site. We define 'personalize' as 'when Google provides recommendations and other content for users based on their data'. At a high level, there are 4 things that affect whether an ad is personalized in this context: * 'this setting' refers to the 'Ad topics' setting. The user is on this page. * 'Site-suggested ads': this is a link to the other new ad setting Thorium is launching and that sites can use to personalize ads a user sees. * 'cookie settings': this is a link to the cookies control section in Thorium settings. The Privacy Sandbox project deprecates third-party cookies, but it's a process, and we're launching new functionality that will replace important functionality of cookies. Until third-party cookies are deprecated, the two systems remain active in Thorium. * 'site you're viewing personalizes ads': When a user engages with a site, Thorium has no control over whether that site shows the user personalized ads. Imagine you visit www.interesting-site.com and they know a lot about you already based on previous visits. They can personalize content and ads to you if they like. They can use an ad-serving product, like Facebook or Google Ads to deliver personalized ads. They can also use the new Privacy Sandbox APIs (if they so choose) in order to get more information about the user that could be helpful to them in order to personalize ads. Those 2 APIs (settings, from the user's perspective), are 'Ad topics' and 'Site-suggested ads'.">
|
||||
As you browse, whether an ad you see is personalized depends on this setting, <ph name="BEGIN_LINK_1"><link1></ph>Site-suggested ads<ph name="END_LINK_1"></link1></ph>, your <ph name="BEGIN_LINK_2"><link2></ph>cookie settings<ph name="END_LINK_2"></link2></ph>, and if the site you're viewing personalizes ads.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_HEADING" translateable="false" desc="Section title for the current Topics list.">
|
||||
Mauris at lectus
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCK_TOPIC_SNACKBAR" desc="A confirmation that appears after a user blocks a topic. This page is only applicable if the user has the Ad topics setting turned on. If they do, Thorium estimates the user's topics of interests and then sites can ask for topics to help personalize ads. If a user dosn't like a specific topic, they can block it.">
|
||||
Blocked topic
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION" translateable="false" desc="Section description for the current Topics list.">
|
||||
Nulla tincidunt iaculis nulla, sit amet viverra massa luctus nec. Integer eget pellentesque magna, et venenatis lorem. Integer a porta elit, eget bibendum neque.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION_DISABLED" translateable="false" desc="Description which appears when Topics are disabled.">
|
||||
Sed porta viverra lacus ut euismod. Integer a cursus metus, ac ultricies libero.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_CURRENT_TOPICS_DESCRIPTION_EMPTY" translateable="false" desc="Description which appears when the Topics list is empty.">
|
||||
Curabitur sagittis sapien ut turpis interdum, vitae porttitor sem pretium. Vestibulum sem mauris, ultrices ac massa sit amet, sodales aliquet est.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_HEADING" translateable="false" desc="Title for the blocked Topics preference.">
|
||||
Integer faucibus metus
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_DESCRIPTION" translateable="false" desc="">
|
||||
Donec fringilla justo vel ligula finibus, ut rutrum lectus vestibulum. Suspendisse vestibulum lorem lacinia nulla consequat auctor.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_DESCRIPTION_DISABLED" translateable="false" desc="">
|
||||
Donec commodo sem non augue blandit, ullamcorper aliquam enim fermentum
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_DESCRIPTION_EMPTY" translateable="false" desc="">
|
||||
Diam maecenas sed
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_BLOCKED_TOPICS_SUB_PAGE_TITLE" translateable="false" desc="">
|
||||
Integer faucibus metus
|
||||
</message>
|
||||
<!-- TODO(http://b/254412601): Format links.-->
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_FOOTER" translateable="false" desc="Footer for the Topics preference page.">
|
||||
Quisque eu auctor purus, id tempus nulla. Pellentesque porta orci purus. Donec dictum, <ph name="BEGIN_LINK_1"><link1></ph>justo nec ultricies semper<ph name="END_LINK_1"></link1></ph>, <ph name="BEGIN_LINK_2"><link2></ph>eros mauris varius nibh<ph name="END_LINK_2"></link2></ph>, sit amet molestie quam arcu id urna. Donec vulputate dui ut lorem egestas, ac sollicitudin metus fermentum.
|
||||
<message name="IDS_SETTINGS_TOPICS_PAGE_ADD_TOPIC_SNACKBAR" desc="A confirmation that appears after a user un-blocks a topic. This page is only applicable if the user has the Ad topics setting turned on. If they do, Thorium estimates the user's topics of interests and then sites can ask for topics to help personalize ads. If a user dosn't like a specific topic, they can block it. **** The user can also unblock a topic, the language is important, because 'unblocking' doesn't bring the topic back to the list of active topics. It simply adds a topic back to the list of potential topics that Thorium might estimate at a later time as the user continues browsing.">
|
||||
Added topic back to potential topics
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Fledge Page -->
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_TITLE" translateable="false" desc="Title for the Fledge preferences page.">
|
||||
Aenean erat leo
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_TITLE" desc="A page title and the name of a new setting. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Site-suggested ads
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_LABEL" translateable="false" desc="Title for the Fledge toggle.">
|
||||
Nunc aliquam consequat felis non tincidunt
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_LABEL" desc="The label for a new setting.">
|
||||
Site-suggested ads
|
||||
</message>
|
||||
<!-- TODO(http://b/254412044): Format links.-->
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_SUB_LABEL" translateable="false" desc="Description for the Fledge toggle.">
|
||||
Donec pretium non elit vitae ornare. Morbi arcu elit, rutrum nec sapien quis, <ph name="BEGIN_LINK"><link></ph>tristique tristique ante<ph name="END_LINK"></link></ph>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_TOGGLE_SUB_LABEL" desc="A description of the new Site-suggested ads setting. This text appears beneath the name of the new setting, 'Site-suggested ads', and is associated with the control that a user can turn on or off. * 'determine what you like': Based on your interaction with a site, that site can define your interests any way it wants. For example, if you put a pair of red running shoes in a shopping cart, the site might define an interest as 'red_running_shoes_size_36'. * 'suggest ads as you continue browsing': 1) you interact with a site and if defines an interest for you. That information is saved with Thorium. 2) You continue browsing. 3) a new site you visit checks with Thorium if 'Site-suggested ads' is turned on and then can request information related to that user. 4) The site might end up showing ads related to 'red_running_shoes_size_36'. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Sites you visit can determine what you like and then suggest ads as you continue browsing
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_HEADING" translateable="false" desc="Section title for the current Fledge sites list.">
|
||||
Aliquam
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_HEADING" desc="A label for a list of sites the user has visited. The list of sites looks similar to the user's browsing history, but this is a distinct list. * 'browsing history' is a list of the sites the user has visited. See the Help-center definition here: https://support.google.com/chrome/answer/95589 * This list of 'Sites' is a subset of the user's browsing history. 1) Only sites that use the 'Site-suggested ads' API (https://developer.chrome.com/docs/privacy-sandbox/fledge/) can appear on this list. 2) This list is based on recent sites the user has visited and sites older than 4 weeks are regularly deleted.">
|
||||
Sites
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION" translateable="false" desc="Section description for the current Fledge sites list.">
|
||||
Nullam sollicitudin elit vitae hendrerit suscipit. Nunc mi leo, placerat sit amet lorem non, semper convallis sapien.
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION" desc="A paragraph beneath the 'Sites' label. It explains how users can control the sites that appear in the list. * 'block sites': When a user blocks a site, that site may no longer save info with Thorium about the user's visit. As the user continues to browse, they will not see ads suggested by the blocked site. * 'auto-deletes': We included the 'auto' to reinforce that this is part of a system and the deletion is done regularly. ">
|
||||
You can block sites you don’t want. Thorium also auto-deletes sites from the list that are older than 4 weeks. <ph name="BEGIN_LINK"><link></ph>Learn more<ph name="END_LINK"></link></ph>
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_DISABLED" translateable="false" desc="Description which appears when Fledge is disabled.">
|
||||
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_DISABLED" desc="1 of 3 possible descriptions that appear beneath the 'Sites' title. If this setting is off, no sites appear. The link opens a dialog box that provides more information about Site-suggested ads.">
|
||||
When on, a list of sites you visit that guess your interests appears here.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_EMPTY" translateable="false" desc="Description which appears when the Fledge sites list is empty.">
|
||||
Morbi quis orci in mauris tempus rutrum. Curabitur blandit orci tortor, pellentesque tempor turpis lacinia ac.
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_DESCRIPTION_EMPTY" desc="1 of 3 possible descriptions that appear beneath the 'Sites' title. This setting could be on but no topics appear in the list. This text explains why.">
|
||||
It can take up to a week for a list of sites to appear here based on your browsing history.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_SEE_ALL_SITES_LABEL" translateable="false" desc="Title for the all Fledge sites preference.">
|
||||
Donec non mi
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_SEE_ALL_SITES_LABEL" desc="Text that serves as a button. Because the list of sites might be long, we only show the most recent sites. This button allows the user to browse all sites (because sites are auto-deleted every 4 weeks, the list is never older than 4 weeks).">
|
||||
See all sites
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_HEADING" translateable="false" desc="Title for the blocked Fledge sites preference.">
|
||||
Curabitur a pharetra
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_HEADING" desc="A label that serves as a button to open the 'Sites you blocked' page.">
|
||||
Sites you blocked
|
||||
</message>
|
||||
<!-- TODO(http://b/254412044): Format links.-->
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_FOOTER" translateable="false" desc="">
|
||||
Pellentesque sollicitudin purus sit amet felis fringilla blandit. Donec a eleifend ligula, <ph name="BEGIN_LINK_1"><link1></ph>et fringilla nunc<ph name="END_LINK_1"></link1></ph>. Vivamus sit amet <ph name="BEGIN_LINK_2"><link2></ph>cursus quam<ph name="END_LINK_2"></link2></ph>. Etiam ultricies rutrum orci, eget accumsan purus mattis in.
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_FOOTER" desc="This footer helps the user understand that this setting is just one signal among others that affect whether this user sees personalized ads on a site. We define 'personalize' as 'when Google provides recommendations and other content for users based on their data'. At a high level, there are 4 things that affect whether an ad is personalized in this context: * 'this setting' refers to the 'Site-suggested ads' setting. The user is on this page. * 'Ad topics': this is a link to the other new ad setting Thorium is launching and that sites can use to personalize ads a user sees. * 'cookie settings': this is a link to the cookies control section in Thorium settings. The Privacy Sandbox project deprecates third-party cookies, but it's a process, and we're launching new functionality that will replace important functionality of cookies. Until third-party cookies are deprecated, the two systems remain active in Thorium. * 'site you're viewing personalizes ads': When a user engages with a site, Thorium has no control over whether that site shows the user personalized ads. Imagine you visit www.interesting-site.com and they know a lot about you already based on previous visits. They can personalize content and ads to you if they like. They can use an ad-serving product, like Facebook or Google Ads to deliver personalized ads. They can also use the new Privacy Sandbox APIs (if they so choose) in order to get more information about the user that could be helpful to them in order to personalize ads. Those 2 APIs (settings, from the user's perspective), are 'Ad topics' and 'Site-suggested ads'.">
|
||||
As you browse, whether an ad you see is personalized depends on this setting, <ph name="BEGIN_LINK_1"><link1></ph>Ad topics<ph name="END_LINK_1"></link1></ph>, your <ph name="BEGIN_LINK_2"><link2></ph>cookie settings<ph name="END_LINK_2"></link2></ph>, and if the site you’re viewing personalizes ads
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_ALL_SITES_SUB_PAGE_TITLE" desc="The page title that shows all sites. This is a subpage.">
|
||||
All sites
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_SUB_PAGE_TITLE" desc="The page title that shows blocked sites. This is a subpage.">
|
||||
Sites you blocked
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_DESCRIPTION" desc="1 of 2 possible descriptions that appear beneath the 'Sites you blocked' title. In this case, the user has previously blocked sites. * 'pool of sites': We want to express that by clicking 'Add', the user is making a site eligible again for consideration.">
|
||||
Add a site back if you want it in the pool of sites that can guess what you like
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCKED_SITES_DESCRIPTION_EMPTY" desc="1 of 2 possible descriptions beneath the 'Sites you blocked' title. In this case, the list is empty (the user hasn't blocked any sites).">
|
||||
Blocked sites appear here
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_LEARN_MORE_HEADING" desc="The title of a dialog box that explains site-suggested ads in more detail.">
|
||||
More about site-suggested ads
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_LEARN_MORE_BULLET_1" desc="1 of 3 paragraphs on the Learn more page for Site-suggested ads. * 'It's common...' this sentence is intended to be reassuring. Many sites the user visits are retaining some information about the user, such as their preferred language if the site has a language picker. If cookies are allowed, this info might be stored with a first-party cookie on the user's device. Sites can also store limited information with Thorium.">
|
||||
It’s common for sites you visit to remember things you’re interested in, to personalize your experience. Sites can also store information with Thorium about your interests.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_LEARN_MORE_BULLET_2" desc="2 of 3 paragraphs on the Learn more page for Site-suggested ads.">
|
||||
For example, if you visit a site that sells long-distance running shoes, the site might decide that you’re interested in running marathons. Later, if you visit a different site, that site can show you an ad for running shoes suggested by the first site.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_LEARN_MORE_BULLET_3" desc="3 of 3 paragraphs on the Learn more page for Site-suggested ads. * 'Auto-deletes': This could just read 'Thorium deletes...' but we include the 'auto' to suggest that the deletion happens regularly and as part of the system. * 'A site you visit again...': We want to reassure the user. We just told them sites are automatically deleted. And yet, a user might see the same site in the list month after month if they visit that site regularly.">
|
||||
Thorium auto-deletes sites that are older than 4 weeks. A site you visit again might reappear on the list. Or you can block a site from suggesting ads for you.
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_A11Y_LABEL" desc="A button label read by screen readers that indicates which site will get blocked. The list is of sites the user has recently visited and that use the Site-suggested ads API to suggest ads to other sites as the user continues browsing.">
|
||||
Block <ph name="DOMAIN">%1$s<ex>example.com</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_ALLOW_SITE_A11Y_LABEL" desc="A button label read by screen readers that indicates which site will get added back to the pool of potential sites.">
|
||||
Add <ph name="DOMAIN">%1$s<ex>example.com</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_BLOCK_SITE_SNACKBAR" desc="A confirmation that appears after a user blocks a site. This page is only applicable if the user has the Site-suggested ads setting turned on. If they do, a site can choose ads that they later suggest to other sites. If a user dosn't want a site to suggest ads for them, they can block a site.">
|
||||
Blocked site
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_FLEDGE_PAGE_ADD_SITE_SNACKBAR" desc="A confirmation that appears after a user unblocks a site. This page is only applicable if the user has the Site-suggested ads setting turned on. If they do, a site can choose ads that they later suggest to other sites. If a user dosn't want a site to suggest ads for them, they can block a site. **** The user can also unblock a site. The language is important, because 'unblocking' doesn't bring the site back to the list of active sites. It simply makes a site eligible again to suggest ads, but the user would need to visit that site to trigger it again and have it appear in the list.">
|
||||
Added site back to potential sites
|
||||
</message>
|
||||
|
||||
<!-- Privacy Sandbox v4 - Ad Measurement Page -->
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TITLE" translateable="false" desc="Title for the Ad Measurement preferences page.">
|
||||
Vestibulum augue
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TITLE" desc="A page title and the name of a new setting. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Ad measurement
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TOGGLE_LABEL" translateable="false" desc="Title for the Ad Measurement toggle.">
|
||||
Vestibulum augue erat
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TOGGLE_LABEL" desc="The label for a new setting. ">
|
||||
Ad measurement
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TOGGLE_SUB_LABEL" translateable="false" desc="Description for the Ad Measurement toggle.">
|
||||
Vestibulum eleifend nunc a viverra congue. Integer nec mauris rutrum, porta mauris et, pellentesque ligula. Nam et pulvinar eros, in gravida nisl.
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_TOGGLE_SUB_LABEL" desc="A description of the new Ad measurement setting. This text appears beneath the name of the new setting, 'Ad measurement', and is associated with the control that a user can turn on or off. **** CONTEXT PRIVACY SANDBOX **** Thorium’s Privacy Sandbox initiative 1) deprecates third-party cookies in Thorium, 2) supports free and open content on the web (by finding better ways to support ads online), 3) while providing stronger privacy protections for users. You can see a high-level description of this public project at www.privacysanbox.com. **** NEW SETTINGS SECTION IN CHROME **** 3 new ad-specific settings appear on an “Ad privacy” page in Thorium settings. For an equivalent structure, see “Security” on chrome://settings/privacy that opens chrome://settings/security. Likewise, “Ad privacy” on chrome://settings/privacy will open chrome://settings/AdPrivacy.">
|
||||
Sites and advertisers can measure the performance of their ads
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_HEADING" translateable="false" desc="When on section header.">
|
||||
Mauris
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_HEADING" desc="A label above bullet points that explain the functionality of this setting.">
|
||||
When on
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_CONSIDER_HEADING" translateable="false" desc="What to consider section header.">
|
||||
Aenean
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_CONSIDER_HEADING" desc="A label above bullet points that note things the user might want to consider when turning this setting on or off.">
|
||||
Things to consider
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_BULLET_1" translateable="false" desc="When on first bullet point.">
|
||||
Praesent sodales, magna eget volutpat iaculis, justo odio viverra justo, id venenatis est est sit amet ex
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_BULLET_1" desc="1 of 3 bullets in the 'When on' section that describes the Ad measurement setting. * 'Limited types of data': The Ad measurement API (for developers) and the Ad measurement control (for users) is offered by Thorium. But Thorium is a 'pass through', helping one site communicate information to another about the performance of an ad. That's where this passive construction comes from. Thorium facilitates, but shouldn't be seen as a major actor here. And we don't want to suggest anything like 'Thorium limits the types of data shared between sites,' because Thorium can't do that. Any 2 sites can have a side agreement to share as much info as they like. ">
|
||||
Limited types of data are shared between sites to measure the performance of their ads, such as the time of day an ad was shown to you
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_BULLET_2" translateable="false" desc="When on second bullet point.">
|
||||
Nunc metus est, faucibus sit amet lacus sit amet, aliquet rutrum libero. Maecenas vel euismod ante.
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_BULLET_2" desc="2 of 3 bullets in the 'When on' section that describes the Ad measurement setting.">
|
||||
Ad-measurement data is deleted regularly from your device
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_CONSIDER_BULLET_1" translateable="false" desc="What to consider first bullet point.">
|
||||
Mauris mattis urna elit. Phasellus quis erat sapien. Praesent finibus pellentesque iaculis. Mauris hendrerit metus at enim rhoncus bibendum.
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_ENABLED_BULLET_3" desc="3 of 3 bullets in the 'When on' section that describes the Ad measurement setting. If reports were instantaneous, a site could receive a report and then consult which visitors most recently visited the site.">
|
||||
Your browsing history is kept private on your device and reports are sent with a delay to protect your identity
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_CONSIDER_BULLET_1" desc="1 or 3 bullets in the 'Things to consider section that describes the Ad measurement setting.">
|
||||
You can always delete ad-measurement data by deleting your browsing data
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_CONSIDER_BULLET_2" desc="2 or 3 bullets in the 'Things to consider section that describes the Ad measurement setting.">
|
||||
Thorium limits the total amount of data that sites can share through the browser to measure ad performance
|
||||
</message>
|
||||
<message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_CONSIDER_BULLET_3" desc="3 or 3 bullets in the 'Things to consider section that describes the Ad measurement setting.">
|
||||
Your Android device may include a similar setting. If Ad measurement is turned on in Thorium and on your Android device, a company may be able to measure the effectiveness of an ad across web sites you visit and apps you use.
|
||||
</message>
|
||||
|
||||
<!-- Secure DNS Settings. Used by //chrome/browser/privacy. -->
|
||||
|
@ -1587,16 +1427,16 @@ Your Google account may have other forms of browsing history like searches and a
|
|||
<message name="IDS_PRIVACY_GUIDE_MSBB_ITEM_FOUR" desc="Fourth bullet point that describes the details of the MSBB toggle.">
|
||||
If you also share Thorium usage reports, those reports include the URLs you visit
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_GUIDE_SYNC_TOGGLE" desc="Title for the history sync toggle.">
|
||||
<message name="IDS_PRIVACY_GUIDE_HISTORY_SYNC_TOGGLE" desc="Title for the history sync toggle.">
|
||||
History sync
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_GUIDE_SYNC_ITEM_ONE" desc="First bullet point that describes the details of the history sync toggle.">
|
||||
<message name="IDS_PRIVACY_GUIDE_HISTORY_SYNC_ITEM_ONE" desc="First bullet point that describes the details of the history sync toggle.">
|
||||
You’ll have your history on all your synced devices so you can continue what you were doing
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_GUIDE_SYNC_ITEM_TWO" desc="Second bullet point that describes the details of the history sync toggle.">
|
||||
<message name="IDS_PRIVACY_GUIDE_HISTORY_SYNC_ITEM_TWO" desc="Second bullet point that describes the details of the history sync toggle.">
|
||||
If Google is also your default search engine, you’ll see better, contextually relevant suggestions
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_GUIDE_SYNC_ITEM_THREE" desc="Third bullet point that describes the details of the history sync toggle.">
|
||||
<message name="IDS_PRIVACY_GUIDE_HISTORY_SYNC_ITEM_THREE" desc="Third bullet point that describes the details of the history sync toggle.">
|
||||
The URLs you visit are saved to your Google Account
|
||||
</message>
|
||||
<message name="IDS_PRIVACY_GUIDE_COOKIES_INTRO" desc="Text introducing the cookies control.">
|
||||
|
@ -2119,7 +1959,6 @@ Your Google account may have other forms of browsing history like searches and a
|
|||
<message name="IDS_ACCOUNT_MANAGEMENT_NO_PARENTAL_DATA" desc="String saying that we are waiting for family information.">
|
||||
Waiting for details of parents.
|
||||
</message>
|
||||
|
||||
<message name="IDS_ACCOUNT_MANAGEMENT_ONE_PARENT_NAME" desc="String for name of single parent for child account.">
|
||||
This browser is managed by <ph name="PARENT_NAME">%1$s<ex>parent1@gmail.com</ex></ph>.
|
||||
</message>
|
||||
|
@ -2140,13 +1979,16 @@ Your Google account may have other forms of browsing history like searches and a
|
|||
</message>
|
||||
<message name="IDS_ACCOUNT_MANAGEMENT_HEADER_NO_PARENTAL_DATA" desc="String saying that child should go to parent for help for child account.">
|
||||
If you need help, ask your parent
|
||||
</message>
|
||||
</message>
|
||||
<message name="IDS_ACCOUNT_MANAGEMENT_HEADER_ONE_PARENT_NAME" desc="String saying that child should go to parent for help with email of single parent for child account.">
|
||||
If you need help, ask your parent (<ph name="PARENT_NAME">%1$s<ex>parent1@gmail.com</ex></ph>)
|
||||
</message>
|
||||
<message name="IDS_ACCOUNT_MANAGEMENT_HEADER_TWO_PARENT_NAMES" desc="String saying that child should go to parent for help with email of two parents for child account.">
|
||||
If you need help, ask your parent (<ph name="PARENT_NAME_1">%1$s<ex>parent1@gmail.com</ex></ph> or <ph name="PARENT_NAME_2">%2$s<ex>parent2@gmail.com</ex></ph>)
|
||||
</message>
|
||||
<message name="IDS_DEFAULT_GOOGLE_ACCOUNT_USERNAME" desc="Default username for accounts that cannot have the email address displayed.">
|
||||
Google Account user
|
||||
</message>
|
||||
|
||||
<!-- Parent approval widget. -->
|
||||
<message name="IDS_PARENT_WEBSITE_APPROVAL_TITLE" desc="The title text displayed in the bottom sheet asking a parent to allow or not allow a website.">
|
||||
|
@ -2518,11 +2360,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
Loading…
|
||||
</message>
|
||||
|
||||
<!-- InfoBar -->
|
||||
<message name="IDS_TOP_BAR_SCREEN_POSITION" desc="Accessibility label to inform users about the InfoBar location">
|
||||
Options available near top of the screen
|
||||
</message>
|
||||
|
||||
<!-- DuplicateDownloadInfoBar -->
|
||||
<message name="IDS_DUPLICATE_DOWNLOAD_INFOBAR_TEXT" desc="Prompt text for the confirmation dialog asking whether the user really wants to download a file when there already exists a file with the same name">
|
||||
Do you want to download <ph name="FILE_NAME">^1<ex>specialfile.pdf</ex></ph> again?
|
||||
|
@ -2690,6 +2527,12 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_CONTEXTMENU_SEARCH_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens. [CHAR_LIMIT=30]">
|
||||
Search image with Google Lens <ph name="BEGIN_NEW"><new></ph>New<ph name="END_NEW"></new></ph>
|
||||
</message>
|
||||
<message name="IDS_CONTEXTMENU_SEARCH_IMAGE_WITH_GOOGLE_LENS_ALT_TEXT_1" desc="ALT TXT 1: Context sensitive menu item for deep linking into google lens. [CHAR_LIMIT=44]">
|
||||
Search image with Google <ph name="BEGIN_NEW"><new></ph>New<ph name="END_NEW"></new></ph>
|
||||
</message>
|
||||
<message name="IDS_CONTEXTMENU_SEARCH_IMAGE_WITH_GOOGLE_LENS_ALT_TEXT_2" desc="ALT TXT 2: Context sensitive menu item for deep linking into google lens. [CHAR_LIMIT=30]">
|
||||
Search inside image with Google <ph name="BEGIN_NEW"><new></ph>New<ph name="END_NEW"></new></ph>
|
||||
</message>
|
||||
<message name="IDS_CONTEXTMENU_TRANSLATE_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive chip for deep linking into google lens for translate results. [CHAR_LIMIT=30]">
|
||||
Translate image with Google Lens <ph name="BEGIN_NEW"><new></ph>New<ph name="END_NEW"></new></ph>
|
||||
</message>
|
||||
|
@ -2774,6 +2617,15 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_NOTIFICATION_WEBAPK_INSTALLED" desc="Indicates that a WebAPK has been successfully added to Home screen.">
|
||||
App installed
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_WEBAPK_INSTALL_FAILED" desc="Indicates that the WebAPK install was unsuccessful.">
|
||||
Couldn’t install <ph name="WEBAPK_NAME">%1$s<ex>Progressive Web Apps</ex></ph>.
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_WEBAPK_INSTALL_FAILED_CONTENTS_GENERAL" desc="Indicates that the WebAPK install was unsuccessful.">
|
||||
Something went wrong.
|
||||
</message>
|
||||
<message name="IDS_WEBAPK_INSTALL_FAILED_ACTION_OPEN" desc="Indicates that the WebAPK install was unsuccessful.">
|
||||
Go back to site
|
||||
</message>
|
||||
<message name="IDS_IPH_PWA_INSTALL_AVAILABLE_TEXT" desc="The in-product-help message for PWAs that can be installed to the device.">
|
||||
Install this app
|
||||
</message>
|
||||
|
@ -2826,9 +2678,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_NOTIFICATION_MANAGE_BUTTON" desc="Text of a button shown on notifications, that opens the Thorium notifications settings page. This allows users to edit notification settings when a site asks them to allow notifications. [CHAR_LIMIT=9]">
|
||||
Manage
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_WORK_PROFILE_BADGE_CONTENT_DESCRIPTION" desc="Content description of the work profile badge in the notification.">
|
||||
Work profile
|
||||
</message>
|
||||
|
||||
<!-- Download UI -->
|
||||
<message name="IDS_DOWNLOAD_NOTIFICATION_PENDING" desc="Download notification to be displayed when a download has been scheduled but has not started being fetched from the network.">
|
||||
|
@ -3133,6 +2982,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_FRE_BROWSER_MANAGED_BY_ORGANIZATION" desc="Text that indicates the browser is managed by policy">
|
||||
Your browser is managed by your organization
|
||||
</message>
|
||||
<message name="IDS_FRE_BROWSER_MANAGED_BY_PARENTS" desc="Text that indicates the browser is managed by parents">
|
||||
Your browser is managed by your parents
|
||||
</message>
|
||||
|
||||
<!-- Signin First Run strings -->
|
||||
<message name="IDS_SIGNIN_FRE_DISMISS_BUTTON" desc="Button on the very first screen of Thorium to continue without signing into Thorium. Ensure consistency with OneGoogle strings while still omitting “Thorium” (see e.g. TC ID 5336438894576002929).">
|
||||
|
@ -3273,6 +3125,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_SYNC_PROMO_CONTINUE_AS" desc="Button to sign into Thorium with the displayed account and without having to reenter a password. ‘John’ is replaced with the user’s given name, or the user’s full name if the given name is not available. Ensure consistency with related OneGoogle sign-in buttons (see e.g. TC ID 5569230012177947065).">
|
||||
Continue as <ph name="USER_FULL_NAME">%1$s<ex>John</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_CONTINUE" desc="Button to sign into Thorium, similar to IDS_SYNC_PROMO_CONTINUE_AS. Used when the user's display names are not available and the email address cannot be displayed.">
|
||||
Continue
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_CHOOSE_ACCOUNT" desc="Button that the user can press if they are not the profile that Thorium found (opposite of 'Continue as Joe Doe').">
|
||||
Not <ph name="EMAIL">%1$s<ex>john.doe@example.com</ex></ph>?
|
||||
</message>
|
||||
|
@ -3283,66 +3138,30 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_SYNC_PROMO_DESCRIPTION_BOOKMARKS" desc="This string is the body of a card that appears when the user opens Thorium's bookmarks; the user may be signed in to Thorium, but isn't syncing their Thorium data. The headline above this string is 'Get all your bookmarks'. There's no character limit but try to keep the translation under 120 characters." meaning="This message means that the user can get the bookmarks from their computer on their phone, and their phone's bookmarks on their computer. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Sync to get your bookmarks from your other devices
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_BOOKMARKS" desc="Description string for 'Continue as' signin promo shown in Bookmarks screen.">
|
||||
To get your bookmarks on all your devices, turn on sync
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_BOOKMARKS_NO_ACCOUNT" desc="Description string for 'Continue as' signin promo shown in Bookmarks screen. This version of the string is shown when there are no accounts on the device.">
|
||||
To get your bookmarks on all your devices, sign in and turn on sync
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_TITLE_NTP_CONTENT_SUGGESTIONS" desc="This string is the headline of a card that appears when the user visits Thorium's new tab page; the user may be signed in to Thorium, but isn't syncing their Thorium data. The line below this string is 'Sync to get the most relevant content from Google'. [CHAR_LIMIT=70]" meaning="This headline means that the user is missing out on more interesting and relevant news articles. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
See content for you
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_ALTERNATIVE_TITLE_NTP_CONTENT_SUGGESTIONS" desc="This string is the headline of a card that appears when the user visits Thorium's new tab page; the user may be signed in to Thorium, but isn't syncing their Thorium data. The line below this string is 'Sync to get the most relevant content from Google'. [CHAR_LIMIT=70]" meaning="This headline means that the user is missing out on more interesting and relevant news articles. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Get better suggestions
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_DESCRIPTION_NTP_CONTENT_SUGGESTIONS" desc="This string is the body of a card that appears when the user visits Thorium's new tab page; the user may be signed in to Thorium, but isn't syncing their Thorium data. The headline above this string is 'See stories for you'. There's no character limit but try to keep the translation under 120 characters." meaning="This message means that the user is missing out on more interesting and relevant news articles. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Sync to get the most relevant content from Google
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_NTP_CONTENT_SUGGESTIONS" desc="Description string for 'Continue as' signin promo shown in NTP content suggestions screen. This version of the string is shown when there are no accounts on the device.">
|
||||
To get personalized content suggested by Google, turn on sync
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_NTP_CONTENT_SUGGESTIONS_NO_ACCOUNT" desc="Description string for 'Continue as' signin promo shown in NTP content suggestions screen. This version of the string is shown when there are no accounts on the device.">
|
||||
To get personalized content suggested by Google, sign in and turn on sync
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_TITLE_RECENT_TABS" desc="This string is the headline of a card that appears when the user opens Thorium's recent tabs. The user may be signed in to Thorium, but isn't syncing their Thorium data. The line below this string is 'Sync to get your tabs from your other devices'. [CHAR_LIMIT=70]" meaning="This headline means that the user can see some of their recent tabs from their computer on their phone, and their phone's recent tabs on their computer. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Continue from another device
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_ALTERNATIVE_TITLE_RECENT_TABS" desc="This string is the headline of a card that appears when the user opens Thorium's recent tabs. The user may be signed in to Thorium, but isn't syncing their Thorium data. The line below this string is 'Sync to get your tabs from your other devices'. [CHAR_LIMIT=70]" meaning="This headline means that the user can see some of their recent tabs from their computer on their phone, and their phone's recent tabs on their computer. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Get all your tabs
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_DESCRIPTION_RECENT_TABS" desc="This string is the body of a card that appears when the user opens Thorium's recent tabs. The user may be signed in to Thorium, but isn't syncing their Thorium data. There's no character limit but try to keep the translation under 120 characters." meaning="The headline above this string is 'Continue from another device'. This message means that the user can see some of their recent tabs from their computer on their phone, and their phone's recent tabs on their computer. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Sync to get your tabs from your other devices
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_RECENT_TABS" desc="Description string for 'Continue as' signin promo shown in Recent Tabs screen.">
|
||||
To get your tabs from your other devices, turn on sync
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_RECENT_TABS_NO_ACCOUNT" desc="Description string for 'Continue as' signin promo shown in Recent Tabs screen. This version of the string is shown when there are no accounts on the device.">
|
||||
To get your tabs from your other devices, sign in and turn on sync
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_TITLE_SETTINGS" desc="This string is the headline of a card that appears when the user opens Thorium's settings; the user may be signed in to Thorium, but isn't syncing their Thorium data. The line below this string is 'Sync to get your passwords, bookmarks and more on all your devices'. [CHAR_LIMIT=70]" meaning="This headline means that the user can use Thorium more easily by syncing their passwords, bookmarks, settings, and more.. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Browse more easily
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_ALTERNATIVE_TITLE_SETTINGS" desc="This string is the headline of a card that appears when the user opens Thorium's settings; the user may be signed in to Thorium, but isn't syncing their Thorium data. The line below this string is 'Sync to get your passwords, bookmarks and more on all your devices'. [CHAR_LIMIT=70]" meaning="This headline means that the user can use Thorium more easily by syncing their passwords, bookmarks, settings, and more.. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Use Thorium your way
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_DESCRIPTION_SETTINGS" desc="This string is the body of a card that appears when the user opens Thorium's settings; the user may be signed in to Thorium, but isn't syncing their Thorium data. The headline above this string is 'Browse more easily'. There's no character limit but try to keep the translation under 120 characters." meaning="This message means that the user can use Thorium more easily by syncing their passwords, bookmarks, settings, and more.. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting.">
|
||||
Sync to get your passwords, bookmarks and more on your other devices
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_SETTINGS" desc="Description string for 'Continue as' signin promo shown in Settings screen. Turning on sync enables syncing browser settings, autofill data, bookmarks, passwords, history and other data used for browser personalization.">
|
||||
To sync and personalize across devices, turn on sync
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_DESCRIPTION_SETTINGS_NO_ACCOUNT" desc="Description string for 'Continue as' signin promo shown in Settings screen. This version of the string is shown when there are no accounts on the device. Turning on sync enables syncing browser settings, autofill data, bookmarks, passwords, history and other data used for browser personalization.">
|
||||
To sync and personalize across devices, sign in and turn on sync
|
||||
</message>
|
||||
<message name="IDS_SIGNIN_PROMO_CHOOSE_ANOTHER_ACCOUNT" desc="Button that the user can press if they want to select a different account before signing in. This button is shown below 'Continue as Joe Doe' button that signs user in with default account.">
|
||||
Choose another account
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_TURN_ON_SYNC" desc="Button that the user can press if they want to turn on sync with this account.">
|
||||
Turn on sync
|
||||
</message>
|
||||
<message name="IDS_SYNC_PROMO_CONTINUE" desc="This string is the button of a card that asks the user to turn on sync; the user may be signed in to Thorium, but isn't syncing their Thorium data. We want users to read this card and consider tapping the 'Continue' button and turn on sync. [CHAR_LIMIT=30] instead." meaning="Open the screen where the user can turn on sync">
|
||||
Continue
|
||||
</message>
|
||||
|
||||
<message name="IDS_EXTERNAL_APP_RESTRICTED_ACCESS_ERROR" desc="A message shown to the user if Thorium receives a file view request to something Thorium does not have access to view.">
|
||||
Thorium does not have access to the requested resource.
|
||||
|
@ -3433,6 +3252,24 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_CORMORANT_CREATOR_GENERAL_ERROR_DESCRIPTION" desc="Creator page general error description when something goes wrong.">
|
||||
Try again later
|
||||
</message>
|
||||
<message name="IDS_CORMORANT_CREATOR_FOLLOW_SUCCESS_SNACKBAR" desc="Creator page snackbar messsage after successfully following a particular site.">
|
||||
Following <ph name="SITE_NAME">%1$s<ex>Reuters</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_CORMORANT_CREATOR_FOLLOW_FAILURE_SNACKBAR" desc="Creator page snackbar messsage after a failing to follow a particular site but the reason for the failure is unknown.">
|
||||
Can’t follow. Something went wrong.
|
||||
</message>
|
||||
<message name="IDS_CORMORANT_CREATOR_UNFOLLOW_SUCCESS_SNACKBAR" desc="Creator page snackbar messsage after successfully unfollowing a particular site.">
|
||||
Unfollowed <ph name="SITE_NAME">%1$s<ex>Reuters</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_CORMORANT_CREATOR_UNFOLLOW_FAILURE_SNACKBAR" desc="Creator page snackbar messsage after a failing to unfollow a particular site but the reason for the failure is unknown.">
|
||||
Can’t unfollow. Something went wrong.
|
||||
</message>
|
||||
<message name="IDS_CORMORANT_CREATOR_OFFLINE_FAILURE_SNACKBAR" desc="Creator page snackbar messsage after a user take a follow/unfollow action while offline.">
|
||||
You’re offline. Check your internet connection and try again.
|
||||
</message>
|
||||
<message name="IDS_CORMORANT_CREATOR_PREVIEW" desc="Accessibility readout for the title of a Creator feed, informing the user that it's the preview of the feed content from a particular website.">
|
||||
<ph name="SITE_NAME">%1$s<ex>Reuters</ex></ph> Preview
|
||||
</message>
|
||||
<message name="IDS_FEED_MANAGE_ACTIVITY" desc="Menu item to manage my activity from the feed header overflow menu.">
|
||||
Activity
|
||||
</message>
|
||||
|
@ -3561,26 +3398,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
See content you follow here
|
||||
</message>
|
||||
|
||||
<!-- Explore sites strings -->
|
||||
<message name="IDS_EXPLORE_SITES_TITLE" desc="Title of a section showing different categories, each with a number of popular websites">
|
||||
Explore
|
||||
</message>
|
||||
<message name="IDS_EXPLORE_SITES_LOADING_FROM_NET" desc="Caption for an indeterminate loading spinner indicating that we are loading the data from the internet">
|
||||
Finding the best from the web…
|
||||
</message>
|
||||
<message name="IDS_EXPLORE_SITES_LOADING_ERROR" desc="Caption text indicating that a set of site icons and links failed to load.">
|
||||
Can't load this page
|
||||
</message>
|
||||
<message name="IDS_EXPLORE_SITES_LOADING_ERROR_NEXT_STEPS_TAG" desc="Text on an error screen indicating posible steps to resolve the error.">
|
||||
Try:
|
||||
</message>
|
||||
<message name="IDS_EXPLORE_SITES_LOADING_ERROR_NEXT_STEPS_RELOAD" desc="Text on an error screen indicating that reloading the page can fix this error.">
|
||||
Reloading the page
|
||||
</message>
|
||||
<message name="IDS_EXPLORE_SITES_LOADING_ERROR_NEXT_STEPS_CHECK_CONNECTION" desc="Text on an error screen indicating that checking network connection can fix this error.">
|
||||
Checking your internet connection
|
||||
</message>
|
||||
|
||||
<!-- Video tutorials -->
|
||||
<message name="IDS_VIDEO_TUTORIALS_CARD_CHROME_INTRO" desc="Card text prompting user to learn about an introduction to chrome. Tapping on this card will open a video tutorial.">
|
||||
How to use Thorium
|
||||
|
@ -4084,15 +3901,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
Page is ready to view
|
||||
</message>
|
||||
|
||||
<!-- Offline indicator -->
|
||||
<message name="IDS_OFFLINE_INDICATOR_OFFLINE_TITLE" desc="Text to be displayed in the snackbar that lets the users know they are offline.">
|
||||
No connection
|
||||
</message>
|
||||
|
||||
<message name="IDS_OFFLINE_INDICATOR_VIEW_OFFLINE_CONTENT" desc="A text label on the snackbar widget to bring up the list of offline content.">
|
||||
See downloads
|
||||
</message>
|
||||
|
||||
<!-- Offline indicator v2 -->
|
||||
<message name="IDS_OFFLINE_INDICATOR_V2_OFFLINE_TEXT" desc="Text to be displayed in the status indicator above the toolbar that lets the users know they are offline.">
|
||||
No internet connection
|
||||
|
@ -4160,9 +3968,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
</message>
|
||||
|
||||
<!-- Thorium survey -->
|
||||
<message name="IDS_CHROME_SURVEY_PROMPT" desc="Message shown that invites the user to take a survey about Thorium. 'Help' and 'improve' are imperative verbs. 'Take survey' is a tappable link. When tapped, a survey about Thorium opens.">
|
||||
Help improve Thorium. <ph name="BEGIN_LINK"><LINK></ph>Take survey<ph name="END_LINK"></LINK></ph>
|
||||
</message>
|
||||
<message name="IDS_CHROME_SURVEY_MESSAGE_TITLE" desc="Message shown that invites the user to take a survey about Thorium. 'Help' and 'improve' are imperative verbs.">
|
||||
Help improve Thorium?
|
||||
</message>
|
||||
|
@ -4186,6 +3991,15 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_RDS_APP_MENU_USER_EDUCATION_DIALOG_MESSAGE" desc="Message on the dialog shown to educate the user about the desktop site app menu site-level setting.">
|
||||
When you select desktop site once, the setting is applied to the site each time you visit
|
||||
</message>
|
||||
<message name="IDS_RDS_SITE_SETTINGS_GENERIC_IPH_TEXT_DESKTOP" desc="Message on the generic text bubble shown to educate the user about using the desktop site site-level setting to switch to desktop mode.">
|
||||
You can request the desktop site for <ph name="HOST_NAME">%1$s<ex>www.example.com</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_RDS_SITE_SETTINGS_GENERIC_IPH_TEXT_MOBILE" desc="Message on the generic text bubble shown to educate the user about using the desktop site site-level setting to switch to mobile mode.">
|
||||
You can request the mobile site for <ph name="HOST_NAME">%1$s<ex>www.example.com</ex></ph>
|
||||
</message>
|
||||
<message name="IDS_RDS_SITE_SETTINGS_SPECIFIC_IPH_TEXT" desc="Message on the text bubble shown on specific websites more functional in desktop mode to educate the user about using the desktop site site-level setting.">
|
||||
Switch to desktop site for a better view of this site
|
||||
</message>
|
||||
|
||||
<!-- Accessibility -->
|
||||
|
||||
|
@ -4718,9 +4532,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_VR_MODULE_TITLE" desc="Text shown when the VR module is referenced in install start, success, failure UI (e.g. in IDS_MODULE_INSTALL_START_TEXT, which will expand to 'Installing Virtual Reality for Thorium…').">
|
||||
Virtual Reality
|
||||
</message>
|
||||
<message name="IDS_VR_PREPARING_VR_TOAST_STANDALONE_TEXT" desc="Text shown on a toast when Thorium's VR browser could not be started due to the VR module missing.">
|
||||
Thorium is still preparing for VR. Restart Thorium later.
|
||||
</message>
|
||||
<message name="IDS_VR_PREPARING_VR_NOTIFICATION_TITLE" desc="Title of a notifaction shown in VR if VR browser not ready yet. [CHAR_LIMIT=23]">
|
||||
Something went wrong.
|
||||
</message>
|
||||
|
@ -5106,12 +4917,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_NEAR_OOM_INTERVENTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can resume what it was doing.">
|
||||
Resume
|
||||
</message>
|
||||
<message name="IDS_NEAR_OOM_REDUCTION_MESSAGE" desc="The message stating that the browser removed some content of the page using too much memory.">
|
||||
This page uses too much memory, so Thorium removed some content.
|
||||
</message>
|
||||
<message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
|
||||
Show original
|
||||
</message>
|
||||
|
||||
<!-- Autofill Assistant preferences -->
|
||||
<!-- TODO(b/168178344): Move to Assistant settings strings section below. -->
|
||||
|
@ -5392,10 +5197,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
Copy GIF
|
||||
</message>
|
||||
|
||||
<message name="IDS_SHARING_LIGHTWEIGHT_REACTIONS" desc="Label for the Add emotion button in sharing hub.">
|
||||
Add emotion
|
||||
</message>
|
||||
|
||||
<message name="IDS_SHARING_SCREENSHOT" desc="Label for Screenshot button in the sharing hub.">
|
||||
Screenshot
|
||||
</message>
|
||||
|
@ -5548,71 +5349,6 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
Share content only
|
||||
</message>
|
||||
|
||||
<!-- Lightweight Reactions strings -->
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_CREATING_GIF" desc="Message displayed above the progress bar when the reaction GIF is being generated.">
|
||||
Creating GIF <ph name="PERCENT">%1$d<ex>13</ex></ph>%%
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_CREATING_GIF_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when GIF creation begins.">
|
||||
Creating GIF
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_REACTION_MOVED_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when a reaction is moved.">
|
||||
Reaction moved
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_REACTION_DELETED_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when a reaction is deleted.">
|
||||
Reaction deleted
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_REACTION_DUPLICATED_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when a reaction is duplicated.">
|
||||
Reaction duplicated
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_TOOLBAR_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when the lightweight reactions toolbar is selected. The user can then select a reaction from the toolbar to place on the screen.">
|
||||
Choose an emotion
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_REACTION_CHANGED_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when a reaction is selected from the toolbar and the active reaction is changed.">
|
||||
Reaction changed
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_REACTION_ADDED_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when a reaction is added to the scene.">
|
||||
Reaction added
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_RESIZE_AND_ROTATE_BUTTON" is_accessibility_with_no_ui="true" desc="The accessibility text to read when the resize and rotate editing tool is selected. The user can then resize and rotate the reaction on the scene.">
|
||||
Resize and rotate
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_REACTION_ADJUSTED_ANNOUNCEMENT" is_accessibility_with_no_ui="true" desc="The accessibility text to read when a reaction is resized or rotated.">
|
||||
Reaction adjusted
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_DUPLICATE_BUTTON" is_accessibility_with_no_ui="true" desc="The accessibility text to read when the duplicate editing tool is selected. The user can then dupicate the reaction on the scene.">
|
||||
Duplicate
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_TITLE_FOR_SHARE" desc="The title of the shared lightweight reaction.">
|
||||
Emotion GIF <ph name="CURRENT_DATE_ISO">%1$s<ex>2020-09-16</ex></ph>
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_FILENAME_PREFIX" desc="The file name prefix of the shared lightweight reaction. Followed by the timestamp.">
|
||||
chrome_emotion_gif_<ph name="CURRENT_TIMESTAMP_MS">%1$s<ex>1582667748515</ex></ph>
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_ERROR_ASSET_FETCH" desc="Message displayed in a toast when the Lightweight Reactions assets cannot be downloaded from the server.">
|
||||
Can’t download reactions. Try again.
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_ERROR_SCREENSHOT" desc="Message displayed in a toast when taking a screenshot fails during Lightweight Reactions initialization.">
|
||||
Can’t take a screenshot. Try again.
|
||||
</message>
|
||||
|
||||
<message name="IDS_LIGHTWEIGHT_REACTIONS_ERROR_MAX_REACTIONS_REACHED" desc="Message displayed in a toast when the user tries to add more than the maximum allowed reactions to the scene.">
|
||||
You can add up to <ph name="MAX_NUM_REACTIONS">%1$d<ex>10</ex></ph> reactions
|
||||
</message>
|
||||
|
||||
<!-- Share Screenshot strings -->
|
||||
<message name="IDS_SCREENSHOT_EDIT_TITLE" desc="The text shown on the share option for screenshots.">
|
||||
Edit
|
||||
|
@ -5718,18 +5454,21 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_DIALOG_MESSAGE" desc="The body text of a dialog explaining the benefits of enabling Thorium notifications.">
|
||||
You’ll be able to easily manage media controls, Incognito sessions, downloads and more
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_DIALOG_TITLE_VARIATION_2" desc="The title of a dialog shown to users before asking for notification permission.">
|
||||
Manage media controls, Incognito tabs, and more with notifications
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_DIALOG_MESSAGE_VARIATION_2" desc="The body text of a dialog explaining the benefits of enabling Thorium notifications.">
|
||||
You can disable notifications by visiting settings
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_ACCEPT_BUTTON_TEXT" desc="The text of the positive button on the notification permission prompt dialog">
|
||||
Continue
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_REJECT_BUTTON_TEXT" desc="The text of the negative button on the notification permission prompt dialog">
|
||||
No thanks
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_CONTENT_DESCRIPTION" desc="The content description for the notification permission rationale bottom sheet. Read as accessibility string when tapping on the bottom sheet.">
|
||||
Notification permission flow
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_OPENED_FULL" desc="The accessibility string read when the notification permission rationale bottom sheet is fully opened.">
|
||||
Notification permission flow opened at full height
|
||||
</message>
|
||||
<message name="IDS_NOTIFICATION_PERMISSION_RATIONALE_CLOSED_DESCRIPTION" desc="The accessibility string read when the notification permission rationale bottom sheet is closed.">
|
||||
Notification permission flow closed
|
||||
</message>
|
||||
|
||||
<!-- Get Image Descriptions -->
|
||||
<message name="IDS_IMAGE_DESCRIPTIONS_DIALOG_HEADER" desc="Header for confirmation dialog to enable image descriptions.">
|
||||
|
@ -5969,12 +5708,18 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
|||
<message name="IDS_RESTORE_CUSTOM_TAB_TITLE" desc="Appears in pop-up message title when the previous Custom Tab session a user engaged with can be restored.">
|
||||
Resume your last task?
|
||||
</message>
|
||||
<message name="IDS_RESTORE_CUSTOM_TAB_DESCRIPTION" desc="Appears in pop-up message description when the previous Custom Tab session a user engaged with can be restored.">
|
||||
<message name="IDS_RESTORE_CUSTOM_TAB_DESCRIPTION" desc="Appears in pop-up message description when the previous Custom Tab session a user engaged with can be restored and in pop-up which gives the option to undo that restoration.">
|
||||
Easily continue where you left off
|
||||
</message>
|
||||
<message name="IDS_RESTORE_CUSTOM_TAB_BUTTON_TEXT" desc="Appears as pop-up message button text to direct the user to restore a previously engaged with Custom Tab session.">
|
||||
Restore
|
||||
</message>
|
||||
<message name="IDS_UNDO_RESTORATION_TITLE" desc="Appears in pop-up message title when a Custom Tab session is restored, giving the user the option to undo the restoration.">
|
||||
Task resumed
|
||||
</message>
|
||||
<message name="IDS_UNDO_RESTORATION_BUTTON_TEXT" desc="Appears in pop-up message button text when a Custom Tab session is restored, giving the user the option to undo the restoration.">
|
||||
Undo
|
||||
</message>
|
||||
</messages>
|
||||
</release>
|
||||
</grit>
|
||||
|
|
|
@ -12,12 +12,11 @@
|
|||
#include <utility>
|
||||
|
||||
#include "base/base_paths.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/location.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
|
@ -146,7 +145,6 @@
|
|||
#include "chrome/browser/ui/webui/signin/login_ui_service.h"
|
||||
#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
|
||||
#include "chrome/browser/ui/window_sizer/window_sizer.h"
|
||||
#include "chrome/browser/vr/vr_tab_helper.h"
|
||||
#include "chrome/common/chrome_constants.h"
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/chrome_switches.h"
|
||||
|
@ -200,6 +198,7 @@
|
|||
#include "content/public/browser/keyboard_event_processing_result.h"
|
||||
#include "content/public/browser/navigation_controller.h"
|
||||
#include "content/public/browser/navigation_entry.h"
|
||||
#include "content/public/browser/navigation_handle.h"
|
||||
#include "content/public/browser/notification_details.h"
|
||||
#include "content/public/browser/notification_service.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
|
@ -578,6 +577,8 @@ Browser::~Browser() {
|
|||
extension_browser_window_helper_.reset();
|
||||
|
||||
// The tab strip should not have any tabs at this point.
|
||||
//
|
||||
// TODO(crbug.com/1407055): This DCHECK doesn't always pass.
|
||||
DCHECK(tab_strip_model_->empty());
|
||||
|
||||
// Destroy the BrowserCommandController before removing the browser, so that
|
||||
|
@ -905,6 +906,23 @@ void Browser::SetWindowUserTitle(const std::string& user_title) {
|
|||
session_service->SetWindowUserTitle(session_id(), user_title);
|
||||
}
|
||||
|
||||
Browser* Browser::GetBrowserForOpeningWebUi() {
|
||||
if (!is_type_picture_in_picture()) {
|
||||
return this;
|
||||
}
|
||||
|
||||
if (!opener_browser_) {
|
||||
auto* opener_web_contents =
|
||||
PictureInPictureWindowManager::GetInstance()->GetWebContents();
|
||||
// We should always have an opener web contents if the current browser is a
|
||||
// picture-in-picture type.
|
||||
DCHECK(opener_web_contents);
|
||||
opener_browser_ = chrome::FindBrowserWithWebContents(opener_web_contents);
|
||||
}
|
||||
|
||||
return opener_browser_;
|
||||
}
|
||||
|
||||
StatusBubble* Browser::GetStatusBubbleForTesting() {
|
||||
return GetStatusBubble();
|
||||
}
|
||||
|
@ -1444,12 +1462,11 @@ bool Browser::IsBackForwardCacheSupported() {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Browser::IsPrerender2Supported(content::WebContents& web_contents) {
|
||||
content::PreloadingEligibility Browser::IsPrerender2Supported(
|
||||
content::WebContents& web_contents) {
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents.GetBrowserContext());
|
||||
return prefetch::IsSomePreloadingEnabled(*profile->GetPrefs(),
|
||||
&web_contents) ==
|
||||
content::PreloadingEligibility::kEligible;
|
||||
return prefetch::IsSomePreloadingEnabled(*profile->GetPrefs(), &web_contents);
|
||||
}
|
||||
|
||||
std::unique_ptr<content::WebContents> Browser::ActivatePortalWebContents(
|
||||
|
@ -1908,11 +1925,6 @@ void Browser::RendererResponsive(
|
|||
}
|
||||
}
|
||||
|
||||
void Browser::DidNavigatePrimaryMainFramePostCommit(WebContents* web_contents) {
|
||||
if (web_contents == tab_strip_model_->GetActiveWebContents())
|
||||
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
|
||||
}
|
||||
|
||||
content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager(
|
||||
WebContents* source) {
|
||||
return javascript_dialogs::TabModalDialogManager::FromWebContents(source);
|
||||
|
@ -1939,6 +1951,18 @@ std::unique_ptr<content::EyeDropper> Browser::OpenEyeDropper(
|
|||
return window()->OpenEyeDropper(frame, listener);
|
||||
}
|
||||
|
||||
void Browser::DidFinishNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::NavigationHandle* navigation_handle) {
|
||||
if (web_contents != tab_strip_model_->GetActiveWebContents())
|
||||
return;
|
||||
|
||||
if (navigation_handle->IsInPrimaryMainFrame() &&
|
||||
navigation_handle->HasCommitted()) {
|
||||
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
|
||||
}
|
||||
}
|
||||
|
||||
void Browser::RunFileChooser(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
scoped_refptr<content::FileSelectListener> listener,
|
||||
|
@ -2059,11 +2083,6 @@ void Browser::RegisterProtocolHandler(
|
|||
auto* web_contents =
|
||||
content::WebContents::FromRenderFrameHost(requesting_frame);
|
||||
|
||||
// Permission request UI cannot currently be rendered binocularly in VR mode,
|
||||
// so we suppress the UI. crbug.com/736568
|
||||
if (vr::VrTabHelper::IsInVr(web_contents))
|
||||
return;
|
||||
|
||||
ProtocolHandler handler = ProtocolHandler::CreateProtocolHandler(
|
||||
protocol, url, GetProtocolHandlerSecurityLevel(requesting_frame));
|
||||
|
||||
|
@ -2913,10 +2932,12 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
|
|||
zoom::ZoomController::FromWebContents(web_contents)->AddObserver(this);
|
||||
content_translate_driver->AddTranslationObserver(this);
|
||||
BookmarkTabHelper::FromWebContents(web_contents)->AddObserver(this);
|
||||
web_contents_collection_.StartObserving(web_contents);
|
||||
} else {
|
||||
zoom::ZoomController::FromWebContents(web_contents)->RemoveObserver(this);
|
||||
content_translate_driver->RemoveTranslationObserver(this);
|
||||
BookmarkTabHelper::FromWebContents(web_contents)->RemoveObserver(this);
|
||||
web_contents_collection_.StopObserving(web_contents);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "base/callback.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/gtest_prod_util.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/scoped_refptr.h"
|
||||
|
@ -22,6 +22,7 @@
|
|||
#include "base/timer/elapsed_timer.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "chrome/browser/tab_contents/web_contents_collection.h"
|
||||
#include "chrome/browser/themes/theme_service_observer.h"
|
||||
#include "chrome/browser/ui/bookmarks/bookmark_bar.h"
|
||||
#include "chrome/browser/ui/bookmarks/bookmark_tab_helper_observer.h"
|
||||
|
@ -80,6 +81,7 @@ class BrowserCommandController;
|
|||
}
|
||||
|
||||
namespace content {
|
||||
class NavigationHandle;
|
||||
class SessionStorageNamespace;
|
||||
}
|
||||
|
||||
|
@ -105,6 +107,7 @@ class WebContentsModalDialogHost;
|
|||
}
|
||||
|
||||
class Browser : public TabStripModelObserver,
|
||||
public WebContentsCollection::Observer,
|
||||
public content::WebContentsDelegate,
|
||||
public ChromeWebModalDialogManagerDelegate,
|
||||
public base::SupportsUserData,
|
||||
|
@ -204,6 +207,7 @@ class Browser : public TabStripModelObserver,
|
|||
kSessionRestore,
|
||||
kStartupCreator,
|
||||
kLastAndUrlsStartupPref,
|
||||
kDeskTemplate,
|
||||
};
|
||||
|
||||
// The default value for a browser's `restore_id` param.
|
||||
|
@ -309,7 +313,7 @@ class Browser : public TabStripModelObserver,
|
|||
bool can_maximize = true;
|
||||
|
||||
// Aspect ratio parameters specific to TYPE_PICTURE_IN_PICTURE.
|
||||
float initial_aspect_ratio = 1.0f;
|
||||
double initial_aspect_ratio = 1.0;
|
||||
bool lock_aspect_ratio = false;
|
||||
|
||||
private:
|
||||
|
@ -695,7 +699,8 @@ class Browser : public TabStripModelObserver,
|
|||
content::WebContents* web_contents) override;
|
||||
void ExitPictureInPicture() override;
|
||||
bool IsBackForwardCacheSupported() override;
|
||||
bool IsPrerender2Supported(content::WebContents& web_contents) override;
|
||||
content::PreloadingEligibility IsPrerender2Supported(
|
||||
content::WebContents& web_contents) override;
|
||||
std::unique_ptr<content::WebContents> ActivatePortalWebContents(
|
||||
content::WebContents* predecessor_contents,
|
||||
std::unique_ptr<content::WebContents> portal_contents) override;
|
||||
|
@ -749,6 +754,11 @@ class Browser : public TabStripModelObserver,
|
|||
// Sets the browser's user title. Setting it to an empty string clears it.
|
||||
void SetWindowUserTitle(const std::string& user_title);
|
||||
|
||||
// Gets the browser for opening chrome:// pages. This will return the opener
|
||||
// browser if the current browser is in picture-in-picture mode, otherwise
|
||||
// returns the current browser.
|
||||
Browser* GetBrowserForOpeningWebUi();
|
||||
|
||||
StatusBubble* GetStatusBubbleForTesting();
|
||||
|
||||
#if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
|
||||
|
@ -872,8 +882,6 @@ class Browser : public TabStripModelObserver,
|
|||
void RendererResponsive(
|
||||
content::WebContents* source,
|
||||
content::RenderWidgetHost* render_widget_host) override;
|
||||
void DidNavigatePrimaryMainFramePostCommit(
|
||||
content::WebContents* web_contents) override;
|
||||
content::JavaScriptDialogManager* GetJavaScriptDialogManager(
|
||||
content::WebContents* source) override;
|
||||
bool GuestSaveFrame(content::WebContents* guest_web_contents) override;
|
||||
|
@ -955,6 +963,11 @@ class Browser : public TabStripModelObserver,
|
|||
content::RenderFrameHost* render_frame_host) override;
|
||||
#endif
|
||||
|
||||
// WebContentsCollection::Observer:
|
||||
void DidFinishNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::NavigationHandle* navigation_handle) override;
|
||||
|
||||
// Overridden from WebContentsModalDialogManagerDelegate:
|
||||
void SetWebContentsBlocked(content::WebContents* web_contents,
|
||||
bool blocked) override;
|
||||
|
@ -1048,7 +1061,7 @@ class Browser : public TabStripModelObserver,
|
|||
// Returns true if the window can close, false otherwise.
|
||||
bool CanCloseWithInProgressDownloads();
|
||||
|
||||
// Called when the window is closing to check if more than one tab is open
|
||||
// Called when the window is closing to check if more than one tabs are open
|
||||
bool CanCloseWithMultipleTabs();
|
||||
|
||||
// Called when the user has decided whether to proceed or not with the browser
|
||||
|
@ -1309,6 +1322,12 @@ class Browser : public TabStripModelObserver,
|
|||
|
||||
const base::ElapsedTimer creation_timer_;
|
||||
|
||||
// The opener browser of the document picture-in-picture browser. Null if the
|
||||
// current browser is a regular browser.
|
||||
raw_ptr<Browser> opener_browser_ = nullptr;
|
||||
|
||||
WebContentsCollection web_contents_collection_{this};
|
||||
|
||||
// The following factory is used for chrome update coalescing.
|
||||
base::WeakPtrFactory<Browser> chrome_updater_factory_{this};
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "chrome/browser/media/router/media_router_feature.h"
|
||||
#include "chrome/browser/prefs/incognito_mode_prefs.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/reading_list/reading_list_model_factory.h"
|
||||
#include "chrome/browser/search/search.h"
|
||||
#include "chrome/browser/search_engines/template_url_service_factory.h"
|
||||
#include "chrome/browser/sessions/session_service.h"
|
||||
|
@ -71,7 +72,6 @@
|
|||
#include "chrome/browser/ui/location_bar/location_bar.h"
|
||||
#include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
|
||||
#include "chrome/browser/ui/qrcode_generator/qrcode_generator_bubble_controller.h"
|
||||
#include "chrome/browser/ui/read_later/reading_list_model_factory.h"
|
||||
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
|
||||
#include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_bubble.h"
|
||||
#include "chrome/browser/ui/sharing_hub/screenshot/screenshot_captured_bubble_controller.h"
|
||||
|
@ -111,6 +111,7 @@
|
|||
#include "components/find_in_page/find_tab_helper.h"
|
||||
#include "components/find_in_page/find_types.h"
|
||||
#include "components/google/core/common/google_util.h"
|
||||
#include "components/lens/buildflags.h"
|
||||
#include "components/media_router/browser/media_router_dialog_controller.h" // nogncheck
|
||||
#include "components/media_router/browser/media_router_metrics.h"
|
||||
#include "components/omnibox/browser/omnibox_prefs.h"
|
||||
|
@ -119,7 +120,6 @@
|
|||
#include "components/reading_list/core/reading_list_model.h"
|
||||
#include "components/reading_list/core/reading_list_pref_names.h"
|
||||
#include "components/services/app_service/public/cpp/app_launch_util.h"
|
||||
#include "components/services/app_service/public/mojom/types.mojom.h"
|
||||
#include "components/sessions/core/live_tab_context.h"
|
||||
#include "components/sessions/core/tab_restore_service.h"
|
||||
#include "components/tab_groups/tab_group_id.h"
|
||||
|
@ -183,9 +183,10 @@
|
|||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
#include "chrome/browser/apps/intent_helper/supported_links_infobar_delegate.h"
|
||||
#include "chromeos/ui/wm/features.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
#include "chrome/browser/lens/region_search/lens_region_search_controller.h"
|
||||
#include "chrome/browser/lens/region_search/lens_region_search_helper.h"
|
||||
#include "components/lens/lens_features.h"
|
||||
|
@ -487,9 +488,8 @@ void NewEmptyWindow(Profile* profile, bool should_trigger_session_restore) {
|
|||
off_the_record = false;
|
||||
}
|
||||
} else if (profile->IsGuestSession() ||
|
||||
(browser_defaults::kAlwaysOpenIncognitoWindow &&
|
||||
IncognitoModePrefs::ShouldLaunchIncognito(
|
||||
*base::CommandLine::ForCurrentProcess(), prefs))) {
|
||||
IncognitoModePrefs::ShouldOpenSubsequentBrowsersInIncognito(
|
||||
*base::CommandLine::ForCurrentProcess(), prefs)) {
|
||||
off_the_record = true;
|
||||
}
|
||||
|
||||
|
@ -555,6 +555,10 @@ bool CanGoBack(const Browser* browser) {
|
|||
.CanGoBack();
|
||||
}
|
||||
|
||||
bool CanGoBack(content::WebContents* web_contents) {
|
||||
return web_contents->GetController().CanGoBack();
|
||||
}
|
||||
|
||||
void GoBack(Browser* browser, WindowOpenDisposition disposition) {
|
||||
base::RecordAction(UserMetricsAction("Back"));
|
||||
|
||||
|
@ -564,6 +568,14 @@ void GoBack(Browser* browser, WindowOpenDisposition disposition) {
|
|||
}
|
||||
}
|
||||
|
||||
void GoBack(content::WebContents* web_contents) {
|
||||
base::RecordAction(UserMetricsAction("Back"));
|
||||
|
||||
if (CanGoBack(web_contents)) {
|
||||
web_contents->GetController().GoBack();
|
||||
}
|
||||
}
|
||||
|
||||
bool CanGoForward(const Browser* browser) {
|
||||
return browser->tab_strip_model()
|
||||
->GetActiveWebContents()
|
||||
|
@ -571,6 +583,10 @@ bool CanGoForward(const Browser* browser) {
|
|||
.CanGoForward();
|
||||
}
|
||||
|
||||
bool CanGoForward(content::WebContents* web_contents) {
|
||||
return web_contents->GetController().CanGoForward();
|
||||
}
|
||||
|
||||
void GoForward(Browser* browser, WindowOpenDisposition disposition) {
|
||||
base::RecordAction(UserMetricsAction("Forward"));
|
||||
if (CanGoForward(browser)) {
|
||||
|
@ -580,6 +596,13 @@ void GoForward(Browser* browser, WindowOpenDisposition disposition) {
|
|||
}
|
||||
}
|
||||
|
||||
void GoForward(content::WebContents* web_contents) {
|
||||
base::RecordAction(UserMetricsAction("Forward"));
|
||||
if (CanGoForward(web_contents)) {
|
||||
web_contents->GetController().GoForward();
|
||||
}
|
||||
}
|
||||
|
||||
void NavigateToIndexWithDisposition(Browser* browser,
|
||||
int index,
|
||||
WindowOpenDisposition disposition) {
|
||||
|
@ -876,7 +899,8 @@ void DuplicateTab(Browser* browser) {
|
|||
}
|
||||
|
||||
bool CanDuplicateTab(const Browser* browser) {
|
||||
return CanDuplicateTabAt(browser, browser->tab_strip_model()->active_index());
|
||||
return !browser->is_type_picture_in_picture() &&
|
||||
CanDuplicateTabAt(browser, browser->tab_strip_model()->active_index());
|
||||
}
|
||||
|
||||
bool CanDuplicateKeyboardFocusedTab(const Browser* browser) {
|
||||
|
@ -1376,7 +1400,6 @@ bool CanSavePage(const Browser* browser) {
|
|||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void Print(Browser* browser) {
|
||||
#if BUILDFLAG(ENABLE_PRINTING)
|
||||
|
@ -1818,6 +1841,13 @@ void PromptToNameWindow(Browser* browser) {
|
|||
chrome::ShowWindowNamePrompt(browser);
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
void ToggleMultitaskMenu(Browser* browser) {
|
||||
DCHECK(chromeos::wm::features::IsFloatWindowEnabled());
|
||||
browser->window()->ToggleMultitaskMenu();
|
||||
}
|
||||
#endif
|
||||
|
||||
void ToggleCommander(Browser* browser) {
|
||||
commander::Commander::Get()->ToggleForBrowser(browser);
|
||||
}
|
||||
|
@ -1886,7 +1916,7 @@ void RunScreenAIVisualAnnotation(Browser* browser) {
|
|||
#endif // BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
|
||||
|
||||
void ExecLensRegionSearch(Browser* browser) {
|
||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
Profile* profile = browser->profile();
|
||||
TemplateURLService* service =
|
||||
TemplateURLServiceFactory::GetForProfile(profile);
|
||||
|
@ -1904,7 +1934,7 @@ void ExecLensRegionSearch(Browser* browser) {
|
|||
browser->SetUserData(lens::LensRegionSearchControllerData::kDataKey,
|
||||
std::move(lens_region_search_controller_data));
|
||||
}
|
||||
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#endif // BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
}
|
||||
|
||||
} // namespace chrome
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2012 The Chromium Authors
|
||||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
|||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "chrome/app/chrome_command_ids.h"
|
||||
#include "components/lens/buildflags.h"
|
||||
#include "components/lens/lens_features.h"
|
||||
#include "components/services/screen_ai/buildflags/buildflags.h"
|
||||
#include "printing/buildflags/buildflags.h"
|
||||
|
@ -179,6 +180,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
|
|||
{ui::VKEY_BROWSER_STOP, ui::EF_NONE, IDC_STOP},
|
||||
// On Chrome OS, Search + Esc is used to call out task manager.
|
||||
{ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN, IDC_TASK_MANAGER},
|
||||
{ui::VKEY_Z, ui::EF_COMMAND_DOWN, IDC_TOGGLE_MULTITASK_MENU},
|
||||
#else // BUILDFLAG(IS_CHROMEOS)
|
||||
{ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, IDC_TASK_MANAGER},
|
||||
{ui::VKEY_LMENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR},
|
||||
|
@ -264,7 +266,7 @@ const AcceleratorMapping kEnableWithNewMappingAcceleratorMap[] = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
// Accelerators to enable if lens::features::kEnableRegionSearchKeyboardShortcut
|
||||
// is true.
|
||||
constexpr AcceleratorMapping kRegionSearchAcceleratorMap[] = {
|
||||
|
@ -272,7 +274,7 @@ constexpr AcceleratorMapping kRegionSearchAcceleratorMap[] = {
|
|||
{ui::VKEY_E, ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR,
|
||||
IDC_CONTENT_CONTEXT_LENS_REGION_SEARCH},
|
||||
};
|
||||
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#endif // BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
|
||||
constexpr int kDebugModifier =
|
||||
ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN;
|
||||
|
@ -319,14 +321,14 @@ std::vector<AcceleratorMapping> GetAcceleratorList() {
|
|||
}
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#if BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
if (base::FeatureList::IsEnabled(
|
||||
lens::features::kEnableRegionSearchKeyboardShortcut)) {
|
||||
accelerators->insert(accelerators->begin(),
|
||||
std::begin(kRegionSearchAcceleratorMap),
|
||||
std::end(kRegionSearchAcceleratorMap));
|
||||
}
|
||||
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
||||
#endif // BUILDFLAG(ENABLE_LENS_DESKTOP_GOOGLE_BRANDED_FEATURES)
|
||||
|
||||
if (base::FeatureList::IsEnabled(features::kUIDebugTools)) {
|
||||
accelerators->insert(accelerators->begin(),
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -11,9 +11,9 @@
|
|||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/debug/alias.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/i18n/rtl.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/metrics/user_metrics.h"
|
||||
|
@ -545,30 +545,21 @@ void Tab::OnMouseReleased(const ui::MouseEvent& event) {
|
|||
if (closest_tab)
|
||||
controller_->CloseTab(closest_tab, CLOSE_TAB_FROM_MOUSE);
|
||||
}
|
||||
// Close tab on double click, mirror of IsOnlyMiddleMouseButton
|
||||
// Based on gz83's work.
|
||||
} else if (event.IsOnlyLeftMouseButton() && !event.IsShiftDown() &&
|
||||
!IsSelectionModifierDown(event)) {
|
||||
// If the tab was already selected mouse pressed doesn't change the
|
||||
// selection. Reset it now to handle the case where multiple tabs were
|
||||
// selected.
|
||||
controller_->SelectTab(this, event);
|
||||
}
|
||||
// Close tab on double click, mirror of IsOnlyMiddleMouseButton
|
||||
// Based on gz83's work.
|
||||
} else if (base::CommandLine::ForCurrentProcess()->HasSwitch("double-click-close-tab")) {
|
||||
if (event.IsOnlyLeftMouseButton() && event.GetClickCount() == 2) {
|
||||
if (HitTestPoint(event.location())) {
|
||||
controller_->CloseTab(this, CLOSE_TAB_FROM_MOUSE);
|
||||
} else if (closing_) {
|
||||
// We're animating closed and the left mouse button was pushed on us but
|
||||
// we don't contain the mouse anymore. We assume the user is clicking
|
||||
// quicker than the animation and we should close the tab that falls
|
||||
// under the mouse.
|
||||
gfx::Point location_in_parent = event.location();
|
||||
ConvertPointToTarget(this, parent(), &location_in_parent);
|
||||
Tab* closest_tab = controller_->GetTabAt(location_in_parent);
|
||||
if (closest_tab)
|
||||
controller_->CloseTab(closest_tab, CLOSE_TAB_FROM_MOUSE);
|
||||
} else if (event.IsOnlyLeftMouseButton() && !event.IsShiftDown() &&
|
||||
!IsSelectionModifierDown(event)) {
|
||||
// If the tab was already selected mouse pressed doesn't change the
|
||||
// selection. Reset it now to handle the case where multiple tabs were
|
||||
// selected.
|
||||
controller_->SelectTab(this, event);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/containers/fixed_flat_map.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/i18n/number_formatting.h"
|
||||
#include "base/metrics/user_metrics.h"
|
||||
#include "base/ranges/algorithm.h"
|
||||
|
@ -60,7 +60,6 @@
|
|||
#include "chrome/browser/ui/views/page_action/page_action_icon_controller.h"
|
||||
#include "chrome/browser/ui/views/performance_controls/battery_saver_button.h"
|
||||
#include "chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_icon_view.h"
|
||||
#include "chrome/browser/ui/views/side_search/side_search_browser_controller.h"
|
||||
#include "chrome/browser/ui/views/tabs/tab_strip.h"
|
||||
#include "chrome/browser/ui/views/toolbar/app_menu.h"
|
||||
#include "chrome/browser/ui/views/toolbar/back_forward_button.h"
|
||||
|
@ -73,7 +72,6 @@
|
|||
#include "chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h"
|
||||
#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
|
||||
#include "chrome/browser/ui/web_applications/app_browser_controller.h"
|
||||
#include "chrome/browser/upgrade_detector/upgrade_detector.h"
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
#include "chrome/grit/chromium_strings.h"
|
||||
|
@ -116,13 +114,8 @@
|
|||
#include "chrome/browser/recovery/recovery_install_global_error_factory.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
#include "chrome/browser/ui/views/critical_notification_bubble_view.h"
|
||||
#endif
|
||||
|
||||
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
#include "chrome/browser/ui/bookmarks/bookmark_bubble_sign_in_delegate.h"
|
||||
#include "chrome/browser/ui/dialogs/outdated_upgrade_bubble.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
|
||||
|
@ -179,8 +172,6 @@ ToolbarView::ToolbarView(Browser* browser, BrowserView* browser_view)
|
|||
display_mode_(GetDisplayMode(browser)) {
|
||||
SetID(VIEW_ID_TOOLBAR);
|
||||
|
||||
UpgradeDetector::GetInstance()->AddObserver(this);
|
||||
|
||||
if (display_mode_ == DisplayMode::NORMAL) {
|
||||
SetBackground(std::make_unique<TopContainerBackground>(browser_view));
|
||||
|
||||
|
@ -192,8 +183,6 @@ ToolbarView::ToolbarView(Browser* browser, BrowserView* browser_view)
|
|||
}
|
||||
|
||||
ToolbarView::~ToolbarView() {
|
||||
UpgradeDetector::GetInstance()->RemoveObserver(this);
|
||||
|
||||
if (display_mode_ != DisplayMode::NORMAL)
|
||||
return;
|
||||
|
||||
|
@ -294,14 +283,6 @@ void ToolbarView::Init() {
|
|||
reload_ = AddChildView(std::move(reload));
|
||||
home_ = AddChildView(std::move(home));
|
||||
|
||||
// The side search button (if enabled) should sit between the location bar and
|
||||
// the other navigation buttons.
|
||||
if (browser_view_->side_search_controller() &&
|
||||
!side_search::IsDSESupportEnabled(browser_->profile())) {
|
||||
left_side_panel_button_ = AddChildView(
|
||||
browser_view_->side_search_controller()->CreateToolbarButton());
|
||||
}
|
||||
|
||||
location_bar_ = AddChildView(std::move(location_bar));
|
||||
|
||||
if (extensions_container)
|
||||
|
@ -572,20 +553,6 @@ void ToolbarView::EnabledStateChangedForCommand(int id, bool enabled) {
|
|||
button->SetEnabled(enabled);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// ToolbarView, UpgradeObserver implementation:
|
||||
void ToolbarView::OnOutdatedInstall() {
|
||||
ShowOutdatedInstallNotification(true);
|
||||
}
|
||||
|
||||
void ToolbarView::OnOutdatedInstallNoAutoUpdate() {
|
||||
ShowOutdatedInstallNotification(false);
|
||||
}
|
||||
|
||||
void ToolbarView::OnCriticalUpgradeInstalled() {
|
||||
ShowCriticalNotification();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// ToolbarView, ui::AcceleratorProvider implementation:
|
||||
|
||||
|
@ -928,21 +895,6 @@ void ToolbarView::LoadImages() {
|
|||
extensions_container_->UpdateAllIcons();
|
||||
}
|
||||
|
||||
void ToolbarView::ShowCriticalNotification() {
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
views::BubbleDialogDelegateView::CreateBubble(
|
||||
new CriticalNotificationBubbleView(app_menu_button_))
|
||||
->Show();
|
||||
#endif
|
||||
}
|
||||
|
||||
void ToolbarView::ShowOutdatedInstallNotification(bool auto_update_enabled) {
|
||||
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
// TODO(pbos): Can this move outside ToolbarView completely?
|
||||
ShowOutdatedUpgradeBubble(browser_, auto_update_enabled);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ToolbarView::OnShowHomeButtonChanged() {
|
||||
home_->SetVisible(show_home_button_.GetValue());
|
||||
Layout();
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/callback.h"
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/format_macros.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/memory/ref_counted_memory.h"
|
||||
#include "base/strings/escape.h"
|
||||
#include "base/strings/string_split.h"
|
||||
|
@ -98,8 +98,6 @@ constexpr char kStringsJsPath[] = "strings.js";
|
|||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
constexpr char kKeyboardUtilsPath[] = "keyboard_utils.js";
|
||||
|
||||
constexpr char kTerminaCreditsPath[] = "about_os_credits.html";
|
||||
|
||||
// APAC region name.
|
||||
|
@ -147,10 +145,10 @@ CountryRegionMap CreateCountryRegionMap() {
|
|||
// Reads device region from VPD. Returns "us" in case of read or parsing errors.
|
||||
std::string ReadDeviceRegionFromVpd() {
|
||||
std::string region = "us";
|
||||
chromeos::system::StatisticsProvider* provider =
|
||||
chromeos::system::StatisticsProvider::GetInstance();
|
||||
ash::system::StatisticsProvider* provider =
|
||||
ash::system::StatisticsProvider::GetInstance();
|
||||
if (const absl::optional<base::StringPiece> region_statistic =
|
||||
provider->GetMachineStatistic(chromeos::system::kRegionKey)) {
|
||||
provider->GetMachineStatistic(ash::system::kRegionKey)) {
|
||||
// We only need the first part of the complex region codes like ca.ansi.
|
||||
std::vector<std::string> region_pieces =
|
||||
base::SplitString(region_statistic.value(), ".", base::TRIM_WHITESPACE,
|
||||
|
@ -303,13 +301,6 @@ class ChromeOSCreditsHandler
|
|||
|
||||
void StartOnUIThread() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
if (path_ == kKeyboardUtilsPath) {
|
||||
contents_ =
|
||||
ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
|
||||
IDR_KEYBOARD_UTILS_JS);
|
||||
ResponseOnUIThread();
|
||||
return;
|
||||
}
|
||||
// Load local Chrome OS credits from the disk.
|
||||
base::ThreadPool::PostTaskAndReply(
|
||||
FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
|
||||
|
@ -329,7 +320,7 @@ class ChromeOSCreditsHandler
|
|||
void ResponseOnUIThread() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
// If we fail to load Chrome OS credits from disk, load it from resources.
|
||||
if (contents_.empty() && path_ != kKeyboardUtilsPath) {
|
||||
if (contents_.empty()) {
|
||||
contents_ =
|
||||
ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
|
||||
IDR_OS_CREDITS_HTML);
|
||||
|
@ -389,14 +380,6 @@ class CrostiniCreditsHandler
|
|||
|
||||
void StartOnUIThread() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
if (path_ == kKeyboardUtilsPath) {
|
||||
contents_ =
|
||||
ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
|
||||
IDR_KEYBOARD_UTILS_JS);
|
||||
RespondOnUIThread();
|
||||
return;
|
||||
}
|
||||
|
||||
if (crostini::CrostiniFeatures::Get()->IsAllowedNow(profile_)) {
|
||||
crostini::CrostiniManager::GetForProfile(profile_)->GetInstallLocation(
|
||||
base::BindOnce(&CrostiniCreditsHandler::LoadCredits, this));
|
||||
|
@ -435,7 +418,7 @@ class CrostiniCreditsHandler
|
|||
void RespondOnUIThread() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
// If we fail to load Linux credits from disk, use the placeholder.
|
||||
if (contents_.empty() && path_ != kKeyboardUtilsPath) {
|
||||
if (contents_.empty()) {
|
||||
contents_ = l10n_util::GetStringUTF8(IDS_CROSTINI_CREDITS_PLACEHOLDER);
|
||||
}
|
||||
std::move(callback_).Run(
|
||||
|
@ -572,7 +555,7 @@ std::string ChromeURLs() {
|
|||
html += "<li><a href='chrome://" + host + "/'>chrome://" + host +
|
||||
"</a></li>\n";
|
||||
}
|
||||
|
||||
|
||||
html += "<li><a href='chrome://theme/IDR_PRODUCT_YIFF'>chrome://yiff</a></li>\n";
|
||||
|
||||
html +=
|
||||
|
@ -670,10 +653,6 @@ void AboutUIHTMLSource::StartDataRequest(
|
|||
idr = IDR_ABOUT_UI_CREDITS_JS;
|
||||
else if (path == kCreditsCssPath)
|
||||
idr = IDR_ABOUT_UI_CREDITS_CSS;
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
else if (path == kKeyboardUtilsPath)
|
||||
idr = IDR_KEYBOARD_UTILS_JS;
|
||||
#endif
|
||||
if (idr == IDR_ABOUT_UI_CREDITS_HTML) {
|
||||
response = about_ui::GetCredits(true /*include_scripts*/);
|
||||
} else {
|
||||
|
@ -730,11 +709,7 @@ void AboutUIHTMLSource::FinishDataRequest(
|
|||
|
||||
std::string AboutUIHTMLSource::GetMimeType(const GURL& url) {
|
||||
const base::StringPiece path = url.path_piece().substr(1);
|
||||
if (path == kCreditsJsPath ||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
path == kKeyboardUtilsPath ||
|
||||
#endif
|
||||
path == kStatsJsPath || path == kStringsJsPath) {
|
||||
if (path == kCreditsJsPath || path == kStatsJsPath || path == kStringsJsPath) {
|
||||
return "application/javascript";
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2022 The Chromium Authors and Alex313031. All rights reserved.
|
||||
// Copyright (c) 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
|
|
@ -15,11 +15,12 @@ import("//ui/base/ui_features.gni")
|
|||
import("//v8/gni/v8.gni")
|
||||
|
||||
declare_args() {
|
||||
# The Chrome archive is compressed in official builds to reduce the size of
|
||||
# the installer. By default: non-official or component builds, a build mode
|
||||
# targeting developers, do not compress so as to provide quicker build-test
|
||||
# cycles.
|
||||
skip_archive_compression = !is_official_build || is_component_build
|
||||
# The Chrome archive is maximally compressed in official builds to reduce the
|
||||
# size of the installer. By default: non-official or component builds, build
|
||||
# modes targeting developers, use maximum-speed instead of maximum-compression
|
||||
# settings so as to provide quicker build-test cycles. Uncompressed archives
|
||||
# are not supported due to size constraints.
|
||||
fast_archive_compression = !is_official_build || is_component_build
|
||||
}
|
||||
|
||||
config("mini_installer_compiler_flags") {
|
||||
|
@ -59,10 +60,6 @@ source_set("lib") {
|
|||
"//chrome/browser/chrome_for_testing:buildflags",
|
||||
]
|
||||
|
||||
if (skip_archive_compression) {
|
||||
defines = [ "SKIP_ARCHIVE_COMPRESSION" ]
|
||||
}
|
||||
|
||||
# Initialization may insert unexpected memset calls.
|
||||
configs -= [ "//build/config/compiler:default_init_stack_vars" ]
|
||||
configs += [ ":mini_installer_compiler_flags" ]
|
||||
|
@ -131,8 +128,8 @@ action("mini_installer_archive") {
|
|||
]
|
||||
|
||||
outputs = [
|
||||
# See also chrome.packed.7z conditionally added below.
|
||||
"$root_out_dir/chrome.7z",
|
||||
"$root_out_dir/chrome.packed.7z",
|
||||
"$root_out_dir/setup.ex_",
|
||||
packed_files_rc_file,
|
||||
]
|
||||
|
@ -186,10 +183,8 @@ action("mini_installer_archive") {
|
|||
args += [ "--component_ffmpeg_build=1" ]
|
||||
}
|
||||
|
||||
if (skip_archive_compression) {
|
||||
args += [ "--skip_archive_compression" ]
|
||||
} else {
|
||||
outputs += [ "$root_out_dir/chrome.packed.7z" ]
|
||||
if (fast_archive_compression) {
|
||||
args += [ "--fast_archive_compression" ]
|
||||
}
|
||||
|
||||
if (enable_nacl) {
|
||||
|
|
|
@ -18,12 +18,12 @@
|
|||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/enterprise_util.h"
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/process/kill.h"
|
||||
#include "base/process/process_iterator.h"
|
||||
#include "base/logging.h"
|
||||
|
|
|
@ -180,10 +180,6 @@ const char kSystemLevel[] = "system-level";
|
|||
// Signals to setup.exe that it should trigger the active setup command.
|
||||
const char kTriggerActiveSetup[] = "trigger-active-setup";
|
||||
|
||||
// Use the given uncompressed chrome.7z archive as the source of files to
|
||||
// install.
|
||||
const char kUncompressedArchive[] = "uncompressed-archive";
|
||||
|
||||
// If present, setup will uninstall chrome.
|
||||
const char kUninstall[] = "uninstall";
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import("//components/nacl/features.gni")
|
|||
import("//components/optimization_guide/features.gni")
|
||||
import("//components/safe_browsing/buildflags.gni")
|
||||
import("//components/services/screen_ai/buildflags/features.gni")
|
||||
import("//components/supervised_user/buildflags.gni")
|
||||
import("//extensions/buildflags/buildflags.gni")
|
||||
import("//media/media_options.gni")
|
||||
import("//pdf/features.gni")
|
||||
|
@ -22,7 +23,6 @@ import("//tools/grit/repack.gni")
|
|||
if (is_android) {
|
||||
import("//build/config/android/rules.gni")
|
||||
import("//build/config/compiler/compiler.gni")
|
||||
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||||
}
|
||||
|
||||
if (is_ios) {
|
||||
|
@ -158,7 +158,6 @@ test("components_unittests") {
|
|||
"//components/grpc_support/test:unit_tests",
|
||||
"//components/heap_profiling/in_process:unit_tests",
|
||||
"//components/history/core/browser:unit_tests",
|
||||
"//components/history/core/common:unit_tests",
|
||||
"//components/history/metrics:unit_tests",
|
||||
"//components/image_fetcher/core:unit_tests",
|
||||
"//components/keyed_service/core:unit_tests",
|
||||
|
@ -204,7 +203,6 @@ test("components_unittests") {
|
|||
"//components/reporting/metrics:unit_tests",
|
||||
"//components/reporting/storage:unit_tests",
|
||||
"//components/reporting/util:unit_tests",
|
||||
"//components/reputation/core:unit_tests",
|
||||
"//components/safe_browsing/core/browser:safe_browsing_metrics_collector_unittest",
|
||||
"//components/safe_search_api:unit_tests",
|
||||
"//components/saved_tab_groups:unit_tests",
|
||||
|
@ -230,6 +228,7 @@ test("components_unittests") {
|
|||
"//components/subresource_filter/core/browser:unit_tests",
|
||||
"//components/subresource_filter/core/common:unit_tests",
|
||||
"//components/subresource_filter/tools:unit_tests",
|
||||
"//components/supervised_user/core/common:unit_tests",
|
||||
"//components/sync:unit_tests",
|
||||
"//components/sync_bookmarks:unit_tests",
|
||||
"//components/sync_device_info:unit_tests",
|
||||
|
@ -243,6 +242,7 @@ test("components_unittests") {
|
|||
"//components/translate/core/language_detection:unit_tests",
|
||||
"//components/ukm:unit_tests",
|
||||
"//components/undo:unit_tests",
|
||||
"//components/unexportable_keys:unit_tests",
|
||||
"//components/unified_consent:unit_tests",
|
||||
"//components/upload_list:unit_tests",
|
||||
"//components/url_formatter:unit_tests",
|
||||
|
@ -258,6 +258,10 @@ test("components_unittests") {
|
|||
"//components/webdata_services:unit_tests",
|
||||
]
|
||||
|
||||
if (enable_supervised_users) {
|
||||
deps += [ "//components/supervised_user/core/browser:unit_tests" ]
|
||||
}
|
||||
|
||||
if (!is_ios) {
|
||||
deps += [ "//components/file_access:unit_tests" ]
|
||||
}
|
||||
|
@ -373,6 +377,7 @@ test("components_unittests") {
|
|||
"//components/media_router/browser:unit_tests",
|
||||
"//components/media_router/common:unit_tests",
|
||||
"//components/media_router/common/providers/cast/channel:unit_tests",
|
||||
"//components/mirroring:mirroring_tests",
|
||||
"//components/navigation_interception:unit_tests",
|
||||
"//components/network_hints/renderer:unit_tests",
|
||||
"//components/no_state_prefetch/browser:unit_tests",
|
||||
|
@ -409,8 +414,10 @@ test("components_unittests") {
|
|||
"//components/safe_browsing/content/browser/triggers:unit_tests",
|
||||
"//components/safe_browsing/content/browser/web_ui:unit_tests",
|
||||
"//components/safe_browsing/core/browser:token_fetcher_unit_tests",
|
||||
"//components/safe_browsing/core/browser/hashprefix_realtime:unit_tests",
|
||||
"//components/safe_browsing/core/browser/realtime:unit_tests",
|
||||
"//components/safe_browsing/core/browser/tailored_security_service:unit_tests",
|
||||
"//components/safe_browsing/core/browser/utils:unit_tests",
|
||||
"//components/safe_browsing/core/common:unit_tests",
|
||||
"//components/safety_check:unit_tests",
|
||||
"//components/security_interstitials/content:unit_tests",
|
||||
|
@ -476,6 +483,7 @@ test("components_unittests") {
|
|||
"//base:base_java_unittest_support",
|
||||
"//components/android_autofill/browser:unit_tests",
|
||||
"//components/browser_ui/accessibility/android:unit_tests",
|
||||
"//components/browser_ui/site_settings/android:unit_tests",
|
||||
"//components/browser_ui/sms/android:unit_tests",
|
||||
"//components/cdm/browser:unit_tests",
|
||||
"//components/component_updater/android:embedded_component_loader_java",
|
||||
|
@ -513,17 +521,13 @@ test("components_unittests") {
|
|||
"//components/webapps/browser/android:unit_tests",
|
||||
"//content/public/android:content_java",
|
||||
"//content/public/browser",
|
||||
"//gin:v8_snapshot_assets",
|
||||
"//net",
|
||||
"//services/data_decoder/public/cpp/android:safe_json_java",
|
||||
"//ui/android:ui_java",
|
||||
"//ui/base",
|
||||
"//ui/gfx",
|
||||
]
|
||||
if (use_v8_context_snapshot) {
|
||||
deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
|
||||
} else {
|
||||
deps += [ "//v8:v8_external_startup_data_assets" ]
|
||||
}
|
||||
|
||||
if (enable_chrome_android_internal) {
|
||||
data_deps += [ "//clank/build/bot/filters:components_unittests_filters" ]
|
||||
|
@ -554,6 +558,7 @@ test("components_unittests") {
|
|||
|
||||
if (!is_android) {
|
||||
deps += [
|
||||
"//components/commerce/core:account_checker_unittests",
|
||||
"//components/commerce/core:commerce_heuristics_data_unittests",
|
||||
"//components/commerce/core:feature_list_unittests",
|
||||
"//components/commerce/core:heuristics_provider_unittests",
|
||||
|
@ -575,10 +580,12 @@ test("components_unittests") {
|
|||
"//components/arc:unit_tests",
|
||||
"//components/desks_storage:unit_tests",
|
||||
"//components/guest_os:unit_tests",
|
||||
"//components/live_caption:unit_tests",
|
||||
"//components/metrics/structured:unit_tests",
|
||||
"//components/metrics/structured/mojom:unit_tests",
|
||||
"//components/ownership:unit_tests",
|
||||
"//components/user_manager:unit_tests",
|
||||
"//components/variations/cros:unit_tests",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -601,6 +608,7 @@ test("components_unittests") {
|
|||
if (is_win) {
|
||||
deps += [
|
||||
"//components/browser_watcher:unit_tests",
|
||||
"//components/stability_report:unit_tests",
|
||||
"//components/winhttp:unit_tests",
|
||||
]
|
||||
}
|
||||
|
@ -637,6 +645,7 @@ test("components_unittests") {
|
|||
deps += [
|
||||
"//components/safe_browsing/content/renderer:throttles_unittest",
|
||||
"//components/safe_browsing/core/browser:ping_manager_unittest",
|
||||
"//components/safe_browsing/core/browser:safe_browsing_lookup_mechanism_experimenter_unittest",
|
||||
"//components/safe_browsing/core/browser:safe_browsing_url_checker_unittest",
|
||||
"//components/safe_browsing/core/browser:user_population_unittest",
|
||||
"//components/safe_browsing/core/browser:verdict_cache_manager_unittest",
|
||||
|
@ -647,9 +656,6 @@ test("components_unittests") {
|
|||
]
|
||||
} else if (safe_browsing_mode == 2) {
|
||||
deps += [ "//components/safe_browsing/android:unit_tests_mobile" ]
|
||||
|
||||
# Used by real_time_url_checks_allowlist_unittest.cc
|
||||
data += [ "//components/safe_browsing/content/resources/real_time_url_checks_allowlist.pb" ]
|
||||
}
|
||||
|
||||
if (safe_browsing_mode == 1) {
|
||||
|
@ -739,13 +745,9 @@ if (is_android) {
|
|||
deps = [
|
||||
":components_tests_pak",
|
||||
"//content/shell:pak",
|
||||
"//gin:v8_snapshot_assets",
|
||||
"//third_party/icu:icu_assets",
|
||||
]
|
||||
if (use_v8_context_snapshot) {
|
||||
deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
|
||||
} else {
|
||||
deps += [ "//v8:v8_external_startup_data_assets" ]
|
||||
}
|
||||
}
|
||||
|
||||
android_library("components_browsertests_java") {
|
||||
|
@ -1035,12 +1037,10 @@ if (!is_ios) {
|
|||
]
|
||||
|
||||
if (is_android) {
|
||||
deps += [ "//ui/android:ui_java" ]
|
||||
if (use_v8_context_snapshot) {
|
||||
deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
|
||||
} else {
|
||||
deps += [ "//v8:v8_external_startup_data_assets" ]
|
||||
}
|
||||
deps += [
|
||||
"//gin:v8_snapshot_assets",
|
||||
"//ui/android:ui_java",
|
||||
]
|
||||
}
|
||||
|
||||
if (!is_android) {
|
||||
|
@ -1063,6 +1063,7 @@ if (is_android) {
|
|||
"//components/browser_ui/client_certificate/android:junit",
|
||||
"//components/browser_ui/media/android:junit",
|
||||
"//components/browser_ui/photo_picker/android:junit",
|
||||
"//components/browser_ui/settings/android:junit",
|
||||
"//components/browser_ui/util/android:junit",
|
||||
"//components/browser_ui/webshare/android:junit",
|
||||
"//components/browser_ui/widget/android:junit",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 The Chromium Authors and Alex313031
|
||||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -10,9 +10,9 @@
|
|||
#include <unordered_set>
|
||||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/guid.h"
|
||||
#include "base/i18n/case_conversion.h"
|
||||
#include "base/i18n/string_search.h"
|
||||
|
@ -61,7 +61,7 @@ void CloneBookmarkNodeImpl(BookmarkModel* model,
|
|||
Time date_added = reset_node_times ? Time::Now() : element.date_added;
|
||||
DCHECK(!date_added.is_null());
|
||||
|
||||
const BookmarkNode* node = model->AddNewURL(
|
||||
const BookmarkNode* node = model->AddURL(
|
||||
parent, index_to_add_at, element.title, element.url, &meta_info_map);
|
||||
model->SetDateAdded(node, date_added);
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/files/file.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/format_macros.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/metrics/histogram_functions.h"
|
||||
#include "base/numerics/safe_conversions.h"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 The Chromium Authors and Alex313031. All rights reserved.
|
||||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -8,11 +8,11 @@
|
|||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "base/callback.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/containers/span.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/feature_list_buildflags.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/metrics/field_trial.h"
|
||||
#include "base/stl_util.h"
|
||||
|
@ -597,7 +597,7 @@ void FlagsState::GetFlagFeatureEntries(
|
|||
std::string desc = entry.visible_description;
|
||||
if (skip_feature_entry.Run(entry))
|
||||
if (flags::IsFlagExpired(flags_storage, entry.internal_name))
|
||||
desc.insert(0, "!!! NOTE: THIS FLAG IS EXPIRED AND MAY STOP FUNCTIONING OR BE REMOVED SOON !!! ");
|
||||
desc.insert(0, "!¡ NOTE: THIS FLAG IS EXPIRED AND MAY STOP FUNCTIONING OR BE REMOVED SOON ¡! ");
|
||||
else
|
||||
continue;
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
#include "components/omnibox/browser/autocomplete_match.h"
|
||||
#include "components/omnibox/browser/autocomplete_match_type.h"
|
||||
#include "components/omnibox/browser/location_bar_model.h"
|
||||
#include "components/omnibox/browser/omnibox_edit_controller.h"
|
||||
#include "components/omnibox/browser/omnibox_edit_model.h"
|
||||
#include "components/omnibox/browser/omnibox_edit_model_delegate.h"
|
||||
#include "components/omnibox/browser/omnibox_field_trial.h"
|
||||
#include "components/omnibox/common/omnibox_features.h"
|
||||
#include "extensions/buildflags/buildflags.h"
|
||||
|
@ -208,7 +208,8 @@ ui::ImageModel OmniboxView::GetIcon(int dip_size,
|
|||
}
|
||||
|
||||
if (model_->ShouldShowCurrentPageIcon()) {
|
||||
LocationBarModel* location_bar_model = controller_->GetLocationBarModel();
|
||||
LocationBarModel* location_bar_model =
|
||||
edit_model_delegate_->GetLocationBarModel();
|
||||
return ui::ImageModel::FromVectorIcon(location_bar_model->GetVectorIcon(),
|
||||
color_current_page_icon, dip_size);
|
||||
}
|
||||
|
@ -331,13 +332,13 @@ OmniboxView::StateChanges OmniboxView::GetStateChanges(const State& before,
|
|||
return state_changes;
|
||||
}
|
||||
|
||||
OmniboxView::OmniboxView(OmniboxEditController* controller,
|
||||
OmniboxView::OmniboxView(OmniboxEditModelDelegate* edit_model_delegate,
|
||||
std::unique_ptr<OmniboxClient> client)
|
||||
: controller_(controller) {
|
||||
: edit_model_delegate_(edit_model_delegate) {
|
||||
// |client| can be null in tests.
|
||||
if (client) {
|
||||
model_ =
|
||||
std::make_unique<OmniboxEditModel>(this, controller, std::move(client));
|
||||
model_ = std::make_unique<OmniboxEditModel>(this, edit_model_delegate,
|
||||
std::move(client));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
#include <vector>
|
||||
|
||||
#include "base/base64.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/callback.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/metrics/histogram_functions.h"
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/observer_list.h"
|
||||
|
@ -935,7 +935,7 @@ bool VariationsService::SetUpFieldTrials(
|
|||
return field_trial_creator_.SetUpFieldTrials(
|
||||
variation_ids, command_line_variation_ids, extra_overrides,
|
||||
std::move(feature_list), state_manager_, platform_field_trials,
|
||||
&safe_seed_manager_, state_manager_->GetLowEntropySource());
|
||||
&safe_seed_manager_, /*add_entropy_source_to_variations_ids=*/true);
|
||||
}
|
||||
|
||||
void VariationsService::OverrideCachedUIStrings() {
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("//base/allocator/partition_allocator/partition_alloc.gni")
|
||||
import("//build/buildflag_header.gni")
|
||||
import("//build/config/chromeos/ui_mode.gni")
|
||||
import("//build/config/chromeos/ui_mode.gni")
|
||||
|
@ -23,6 +24,9 @@ import("//printing/buildflags/buildflags.gni")
|
|||
import("//testing/libfuzzer/fuzzer_test.gni")
|
||||
import("//third_party/blink/public/public_features.gni")
|
||||
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
|
||||
if (is_mac) {
|
||||
import("//content/public/app/mac_helpers.gni")
|
||||
}
|
||||
|
||||
buildflag_header("buildflags") {
|
||||
header = "buildflags.h"
|
||||
|
@ -255,7 +259,6 @@ source_set("browser") {
|
|||
"//ui/base:buildflags",
|
||||
"//ui/base:data_exchange",
|
||||
"//ui/base/clipboard",
|
||||
"//ui/base/cursor",
|
||||
"//ui/base/cursor/mojom:cursor_type",
|
||||
"//ui/base/dragdrop:types",
|
||||
"//ui/base/dragdrop/mojom",
|
||||
|
@ -297,6 +300,7 @@ source_set("browser") {
|
|||
"//third_party/blink/public/mojom:embedded_frame_sink_mojo_bindings",
|
||||
"//third_party/blink/public/mojom:mojom_broadcastchannel_bindings",
|
||||
"//third_party/leveldatabase",
|
||||
"//ui/base/cursor",
|
||||
"//ui/base/dragdrop/mojom:mojom_headers",
|
||||
]
|
||||
|
||||
|
@ -416,8 +420,6 @@ source_set("browser") {
|
|||
"attribution_reporting/attribution_data_host_manager_impl.h",
|
||||
"attribution_reporting/attribution_debug_report.cc",
|
||||
"attribution_reporting/attribution_debug_report.h",
|
||||
"attribution_reporting/attribution_default_random_generator.cc",
|
||||
"attribution_reporting/attribution_default_random_generator.h",
|
||||
"attribution_reporting/attribution_header_utils.cc",
|
||||
"attribution_reporting/attribution_header_utils.h",
|
||||
"attribution_reporting/attribution_host.cc",
|
||||
|
@ -439,7 +441,6 @@ source_set("browser") {
|
|||
"attribution_reporting/attribution_observer.h",
|
||||
"attribution_reporting/attribution_observer_types.cc",
|
||||
"attribution_reporting/attribution_observer_types.h",
|
||||
"attribution_reporting/attribution_random_generator.h",
|
||||
"attribution_reporting/attribution_report.cc",
|
||||
"attribution_reporting/attribution_report.h",
|
||||
"attribution_reporting/attribution_report_network_sender.cc",
|
||||
|
@ -469,6 +470,7 @@ source_set("browser") {
|
|||
"attribution_reporting/rate_limit_table.cc",
|
||||
"attribution_reporting/rate_limit_table.h",
|
||||
"attribution_reporting/send_result.h",
|
||||
"attribution_reporting/sql_queries.h",
|
||||
"attribution_reporting/sql_utils.cc",
|
||||
"attribution_reporting/sql_utils.h",
|
||||
"attribution_reporting/storable_source.cc",
|
||||
|
@ -695,6 +697,8 @@ source_set("browser") {
|
|||
"cache_storage/cache_storage_trace_utils.h",
|
||||
"cache_storage/scoped_writable_entry.h",
|
||||
"can_commit_status.h",
|
||||
"child_process_host_impl.cc",
|
||||
"child_process_host_impl.h",
|
||||
"child_process_launcher.cc",
|
||||
"child_process_launcher.h",
|
||||
"child_process_launcher_helper.cc",
|
||||
|
@ -713,8 +717,6 @@ source_set("browser") {
|
|||
"code_cache/simple_lru_cache.h",
|
||||
"compositor/surface_utils.cc",
|
||||
"compositor/surface_utils.h",
|
||||
"compute_pressure/pressure_service_impl.cc",
|
||||
"compute_pressure/pressure_service_impl.h",
|
||||
"contacts/contacts_manager_impl.cc",
|
||||
"contacts/contacts_manager_impl.h",
|
||||
"contacts/contacts_provider.h",
|
||||
|
@ -896,6 +898,8 @@ source_set("browser") {
|
|||
"fenced_frame/fenced_frame.h",
|
||||
"fenced_frame/fenced_frame_config.cc",
|
||||
"fenced_frame/fenced_frame_config.h",
|
||||
"fenced_frame/fenced_frame_reporter.cc",
|
||||
"fenced_frame/fenced_frame_reporter.h",
|
||||
"fenced_frame/fenced_frame_url_mapping.cc",
|
||||
"fenced_frame/fenced_frame_url_mapping.h",
|
||||
"field_trial_recorder.cc",
|
||||
|
@ -1032,6 +1036,8 @@ source_set("browser") {
|
|||
"indexed_db/indexed_db_callbacks.h",
|
||||
"indexed_db/indexed_db_class_factory.cc",
|
||||
"indexed_db/indexed_db_class_factory.h",
|
||||
"indexed_db/indexed_db_client_state_checker_wrapper.cc",
|
||||
"indexed_db/indexed_db_client_state_checker_wrapper.h",
|
||||
"indexed_db/indexed_db_compaction_task.cc",
|
||||
"indexed_db/indexed_db_compaction_task.h",
|
||||
"indexed_db/indexed_db_connection.cc",
|
||||
|
@ -1059,9 +1065,8 @@ source_set("browser") {
|
|||
"indexed_db/indexed_db_external_object.h",
|
||||
"indexed_db/indexed_db_external_object_storage.cc",
|
||||
"indexed_db/indexed_db_external_object_storage.h",
|
||||
"indexed_db/indexed_db_factory.cc",
|
||||
"indexed_db/indexed_db_factory.h",
|
||||
"indexed_db/indexed_db_factory_impl.cc",
|
||||
"indexed_db/indexed_db_factory_impl.h",
|
||||
"indexed_db/indexed_db_index_writer.cc",
|
||||
"indexed_db/indexed_db_index_writer.h",
|
||||
"indexed_db/indexed_db_internals_ui.cc",
|
||||
|
@ -1124,6 +1129,8 @@ source_set("browser") {
|
|||
"interest_group/interest_group_k_anonymity_manager.h",
|
||||
"interest_group/interest_group_manager_impl.cc",
|
||||
"interest_group/interest_group_manager_impl.h",
|
||||
"interest_group/interest_group_pa_report_util.cc",
|
||||
"interest_group/interest_group_pa_report_util.h",
|
||||
"interest_group/interest_group_permissions_cache.cc",
|
||||
"interest_group/interest_group_permissions_cache.h",
|
||||
"interest_group/interest_group_permissions_checker.cc",
|
||||
|
@ -1180,6 +1187,8 @@ source_set("browser") {
|
|||
"loader/prefetch_url_loader.h",
|
||||
"loader/prefetch_url_loader_service.cc",
|
||||
"loader/prefetch_url_loader_service.h",
|
||||
"loader/resource_timing_utils.cc",
|
||||
"loader/resource_timing_utils.h",
|
||||
"loader/shared_cors_origin_access_list_impl.cc",
|
||||
"loader/shared_cors_origin_access_list_impl.h",
|
||||
"loader/url_loader_throttles.cc",
|
||||
|
@ -1305,16 +1314,6 @@ source_set("browser") {
|
|||
"mojo_binder_policy_applier.h",
|
||||
"mojo_binder_policy_map_impl.cc",
|
||||
"mojo_binder_policy_map_impl.h",
|
||||
"native_io/native_io_context_impl.cc",
|
||||
"native_io/native_io_context_impl.h",
|
||||
"native_io/native_io_file_host.cc",
|
||||
"native_io/native_io_file_host.h",
|
||||
"native_io/native_io_host.cc",
|
||||
"native_io/native_io_host.h",
|
||||
"native_io/native_io_manager.cc",
|
||||
"native_io/native_io_manager.h",
|
||||
"native_io/native_io_quota_client.cc",
|
||||
"native_io/native_io_quota_client.h",
|
||||
"navigation_or_document_handle.cc",
|
||||
"navigation_or_document_handle.h",
|
||||
"navigation_subresource_loader_params.cc",
|
||||
|
@ -1460,7 +1459,6 @@ source_set("browser") {
|
|||
"preloading/prefetch/proxy_lookup_client_impl.h",
|
||||
"preloading/prefetcher.cc",
|
||||
"preloading/prefetcher.h",
|
||||
"preloading/preloading.cc",
|
||||
"preloading/preloading.h",
|
||||
"preloading/preloading_attempt_impl.cc",
|
||||
"preloading/preloading_attempt_impl.h",
|
||||
|
@ -1474,6 +1472,7 @@ source_set("browser") {
|
|||
"preloading/prerender/prerender_attributes.h",
|
||||
"preloading/prerender/prerender_commit_deferring_condition.cc",
|
||||
"preloading/prerender/prerender_commit_deferring_condition.h",
|
||||
"preloading/prerender/prerender_final_status.cc",
|
||||
"preloading/prerender/prerender_final_status.h",
|
||||
"preloading/prerender/prerender_handle_impl.cc",
|
||||
"preloading/prerender/prerender_handle_impl.h",
|
||||
|
@ -1554,6 +1553,8 @@ source_set("browser") {
|
|||
"renderer_host/back_forward_cache_metrics.h",
|
||||
"renderer_host/blocked_scheme_navigation_throttle.cc",
|
||||
"renderer_host/blocked_scheme_navigation_throttle.h",
|
||||
"renderer_host/browsing_context_group_swap.cc",
|
||||
"renderer_host/browsing_context_group_swap.h",
|
||||
"renderer_host/browsing_context_state.cc",
|
||||
"renderer_host/browsing_context_state.h",
|
||||
"renderer_host/clipboard_host_impl.cc",
|
||||
|
@ -1600,6 +1601,8 @@ source_set("browser") {
|
|||
"renderer_host/global_routing_id.cc",
|
||||
"renderer_host/http_error_navigation_throttle.cc",
|
||||
"renderer_host/http_error_navigation_throttle.h",
|
||||
"renderer_host/indexed_db_client_state_checker_factory.cc",
|
||||
"renderer_host/indexed_db_client_state_checker_factory.h",
|
||||
"renderer_host/input/fling_controller.cc",
|
||||
"renderer_host/input/fling_controller.h",
|
||||
"renderer_host/input/fling_scheduler.cc",
|
||||
|
@ -1829,6 +1832,7 @@ source_set("browser") {
|
|||
"renderer_host/render_view_host_delegate.h",
|
||||
"renderer_host/render_view_host_delegate_view.cc",
|
||||
"renderer_host/render_view_host_delegate_view.h",
|
||||
"renderer_host/render_view_host_enums.h",
|
||||
"renderer_host/render_view_host_factory.cc",
|
||||
"renderer_host/render_view_host_factory.h",
|
||||
"renderer_host/render_view_host_impl.cc",
|
||||
|
@ -1858,6 +1862,8 @@ source_set("browser") {
|
|||
"renderer_host/renderer_cancellation_throttle.h",
|
||||
"renderer_host/renderer_sandboxed_process_launcher_delegate.cc",
|
||||
"renderer_host/renderer_sandboxed_process_launcher_delegate.h",
|
||||
"renderer_host/runtime_feature_state_controller_impl.cc",
|
||||
"renderer_host/runtime_feature_state_controller_impl.h",
|
||||
"renderer_host/should_swap_browsing_instance.h",
|
||||
"renderer_host/stored_page.cc",
|
||||
"renderer_host/stored_page.h",
|
||||
|
@ -1869,6 +1875,8 @@ source_set("browser") {
|
|||
"renderer_host/ui_events_helper.h",
|
||||
"renderer_host/view_transition_commit_deferring_condition.cc",
|
||||
"renderer_host/view_transition_commit_deferring_condition.h",
|
||||
"renderer_host/view_transition_opt_in_state.cc",
|
||||
"renderer_host/view_transition_opt_in_state.h",
|
||||
"renderer_host/visible_time_request_trigger.cc",
|
||||
"renderer_host/visible_time_request_trigger.h",
|
||||
"resource_context_impl.cc",
|
||||
|
@ -1898,8 +1906,8 @@ source_set("browser") {
|
|||
"scheduler/responsiveness/watcher.h",
|
||||
"scoped_active_url.cc",
|
||||
"scoped_active_url.h",
|
||||
"screen_enumeration/screen_change_monitor.cc",
|
||||
"screen_enumeration/screen_change_monitor.h",
|
||||
"screen_details/screen_change_monitor.cc",
|
||||
"screen_details/screen_change_monitor.h",
|
||||
"screen_orientation/screen_orientation_provider.cc",
|
||||
"screen_orientation/screen_orientation_provider.h",
|
||||
"screenlock_monitor/screenlock_monitor.cc",
|
||||
|
@ -2064,8 +2072,6 @@ source_set("browser") {
|
|||
"ssl/ssl_manager.h",
|
||||
"ssl_private_key_impl.cc",
|
||||
"ssl_private_key_impl.h",
|
||||
"starscan_load_observer.cc",
|
||||
"starscan_load_observer.h",
|
||||
"startup_data_impl.cc",
|
||||
"startup_data_impl.h",
|
||||
"startup_helper.cc",
|
||||
|
@ -2116,8 +2122,6 @@ source_set("browser") {
|
|||
"utility_process_host_receiver_bindings.cc",
|
||||
"utility_sandbox_delegate.cc",
|
||||
"utility_sandbox_delegate.h",
|
||||
"v8_snapshot_files.cc",
|
||||
"v8_snapshot_files.h",
|
||||
"video_capture_service.cc",
|
||||
"wake_lock/wake_lock_context_host.cc",
|
||||
"wake_lock/wake_lock_context_host.h",
|
||||
|
@ -2148,8 +2152,6 @@ source_set("browser") {
|
|||
"web_package/prefetched_signed_exchange_cache_adapter.h",
|
||||
"web_package/prefetched_signed_exchange_cache_entry.cc",
|
||||
"web_package/prefetched_signed_exchange_cache_entry.h",
|
||||
"web_package/save_as_web_bundle_job.cc",
|
||||
"web_package/save_as_web_bundle_job.h",
|
||||
"web_package/signed_exchange_cert_fetcher.cc",
|
||||
"web_package/signed_exchange_cert_fetcher.h",
|
||||
"web_package/signed_exchange_cert_fetcher_factory.cc",
|
||||
|
@ -2234,6 +2236,8 @@ source_set("browser") {
|
|||
"webid/federated_auth_request_impl.h",
|
||||
"webid/federated_auth_request_page_data.cc",
|
||||
"webid/federated_auth_request_page_data.h",
|
||||
"webid/federated_auth_user_info_request.cc",
|
||||
"webid/federated_auth_user_info_request.h",
|
||||
"webid/federated_provider_fetcher.cc",
|
||||
"webid/federated_provider_fetcher.h",
|
||||
"webid/flags.cc",
|
||||
|
@ -2306,6 +2310,13 @@ source_set("browser") {
|
|||
"worker_host/worker_script_loader_factory.h",
|
||||
]
|
||||
|
||||
if (use_starscan) {
|
||||
sources += [
|
||||
"starscan_load_observer.cc",
|
||||
"starscan_load_observer.h",
|
||||
]
|
||||
}
|
||||
|
||||
if (!is_android && !is_fuchsia) {
|
||||
sources += [
|
||||
"smart_card/smart_card_service.cc",
|
||||
|
@ -2336,6 +2347,13 @@ source_set("browser") {
|
|||
deps += [ "//ui/events" ]
|
||||
}
|
||||
|
||||
if (is_posix && !is_mac) {
|
||||
sources += [
|
||||
"v8_snapshot_files.cc",
|
||||
"v8_snapshot_files.h",
|
||||
]
|
||||
}
|
||||
|
||||
if (is_linux || is_chromeos) {
|
||||
sources += [
|
||||
"child_process_launcher_helper_linux.cc",
|
||||
|
@ -2408,7 +2426,6 @@ source_set("browser") {
|
|||
"tracing/cros_tracing_agent.h",
|
||||
]
|
||||
deps += [
|
||||
"//ash/constants",
|
||||
"//chromeos/ash/components/assistant:buildflags",
|
||||
"//chromeos/ash/components/audio",
|
||||
"//chromeos/ash/components/dbus",
|
||||
|
@ -2521,7 +2538,6 @@ source_set("browser") {
|
|||
"media/desktop_media_window_registry_mac.mm",
|
||||
"memory/swap_metrics_driver_impl_mac.cc",
|
||||
"memory/swap_metrics_driver_impl_mac.h",
|
||||
"native_io/native_io_file_host_mac.cc",
|
||||
"renderer_host/browser_compositor_view_mac.h",
|
||||
"renderer_host/browser_compositor_view_mac.mm",
|
||||
"renderer_host/clipboard_host_impl_mac.mm",
|
||||
|
@ -2563,11 +2579,11 @@ source_set("browser") {
|
|||
"web_contents/web_drag_dest_mac.mm",
|
||||
]
|
||||
deps += [
|
||||
":mac_helpers",
|
||||
"//components/remote_cocoa/app_shim",
|
||||
"//components/remote_cocoa/browser",
|
||||
"//components/remote_cocoa/common:mojo",
|
||||
"//media",
|
||||
"//third_party/mozilla",
|
||||
"//ui/accelerated_widget_mac",
|
||||
"//ui/events:dom_keyboard_layout",
|
||||
]
|
||||
|
@ -2689,8 +2705,6 @@ source_set("browser") {
|
|||
"renderer_host/direct_manipulation_helper_win.h",
|
||||
"renderer_host/dwrite_font_file_util_win.cc",
|
||||
"renderer_host/dwrite_font_file_util_win.h",
|
||||
"renderer_host/dwrite_font_lookup_table_builder_win.cc",
|
||||
"renderer_host/dwrite_font_lookup_table_builder_win.h",
|
||||
"renderer_host/dwrite_font_proxy_impl_win.cc",
|
||||
"renderer_host/dwrite_font_proxy_impl_win.h",
|
||||
"renderer_host/dwrite_font_uma_logging_win.cc",
|
||||
|
@ -3002,6 +3016,8 @@ source_set("browser") {
|
|||
"media/android/media_resource_getter_impl.h",
|
||||
"media/capture/screen_capture_device_android.cc",
|
||||
"media/capture/screen_capture_device_android.h",
|
||||
"media/key_system_support_android.cc",
|
||||
"media/key_system_support_android.h",
|
||||
"media/session/audio_focus_delegate_android.cc",
|
||||
"media/session/audio_focus_delegate_android.h",
|
||||
"media/session/media_session_android.cc",
|
||||
|
@ -3094,8 +3110,6 @@ source_set("browser") {
|
|||
# The Direct Sockets API is not implemented on Android.
|
||||
"direct_sockets/direct_sockets_service_impl.cc",
|
||||
"direct_sockets/direct_sockets_service_impl.h",
|
||||
"direct_sockets/direct_udp_socket_impl.cc",
|
||||
"direct_sockets/direct_udp_socket_impl.h",
|
||||
"direct_sockets/resolve_host_and_open_socket.cc",
|
||||
"direct_sockets/resolve_host_and_open_socket.h",
|
||||
|
||||
|
@ -3318,6 +3332,36 @@ if (is_android) {
|
|||
}
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
source_set("mac_helpers") {
|
||||
_lines = [
|
||||
"// This file is generated by " +
|
||||
get_label_info(target_name, "label_no_toolchain"),
|
||||
"",
|
||||
"#ifndef GEN_CONTENT_BROWSER_MAC_HELPERS_H_",
|
||||
"#define GEN_CONTENT_BROWSER_MAC_HELPERS_H_",
|
||||
"",
|
||||
"namespace content {",
|
||||
"",
|
||||
]
|
||||
foreach(helper_params, content_mac_helpers) {
|
||||
_lines += [ "const char kMacHelperSuffix_${helper_params[0]}[] = \"${helper_params[2]}\";" ]
|
||||
}
|
||||
_lines += [
|
||||
"",
|
||||
"} // namespace content",
|
||||
"",
|
||||
"#endif // GEN_CONTENT_BROWSER_MAC_HELPERS_H_",
|
||||
]
|
||||
|
||||
_file = "$target_gen_dir/mac_helpers.h"
|
||||
|
||||
write_file(_file, _lines)
|
||||
|
||||
sources = [ _file ]
|
||||
}
|
||||
}
|
||||
|
||||
fuzzer_test("content_sms_parser_fuzzer") {
|
||||
sources = [ "sms/sms_parser_fuzzer.cc" ]
|
||||
deps = [
|
||||
|
|
|
@ -206,12 +206,6 @@ bool FileSystemAccessSafeMoveHelper::RequireAfterWriteChecks() const {
|
|||
return true;
|
||||
}
|
||||
|
||||
// TODO(https://crbug.com/1396116): Fix FileSystemURL comparison operators
|
||||
// that use a StorageKey.
|
||||
//
|
||||
// This check is held together by a hack in `CreateFileSystemURLFromPath()` in
|
||||
// the FSA manager which ensures all non-sandboxed FileSystemURLs have the
|
||||
// same opaque origin.
|
||||
if (!source_url().IsInSameFileSystem(dest_url()))
|
||||
return true;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 The Chromium Authors and Alex313031. All rights reserved.
|
||||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -6,10 +6,10 @@
|
|||
|
||||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/callback.h"
|
||||
#include "base/callback_forward.h"
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/functional/callback_forward.h"
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "base/task/sequenced_task_runner.h"
|
||||
#include "base/task/thread_pool.h"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 The Chromium Authors and Alex313031. All rights reserved.
|
||||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -7,10 +7,10 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "base/callback_forward.h"
|
||||
#include "base/callback_helpers.h"
|
||||
#include "base/files/file.h"
|
||||
#include "base/files/file_proxy.h"
|
||||
#include "base/functional/callback_forward.h"
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
|
|
|
@ -430,6 +430,8 @@ repack("pak") {
|
|||
|
||||
sources = [
|
||||
"$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak",
|
||||
"$root_gen_dir/content/aggregation_service_internals_resources.pak",
|
||||
"$root_gen_dir/content/attribution_internals_resources.pak",
|
||||
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
|
||||
"$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
|
||||
"$root_gen_dir/content/content_resources.pak",
|
||||
|
@ -445,7 +447,7 @@ repack("pak") {
|
|||
"$root_gen_dir/third_party/blink/public/strings/blink_accessibility_strings_en-US.pak",
|
||||
"$root_gen_dir/third_party/blink/public/strings/blink_strings_en-US.pak",
|
||||
"$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
|
||||
"$root_gen_dir/ui/resources/webui_generated_resources.pak",
|
||||
"$root_gen_dir/ui/resources/webui_resources.pak",
|
||||
"$root_gen_dir/ui/strings/app_locale_settings_en-US.pak",
|
||||
"$root_gen_dir/ui/strings/ax_strings_en-US.pak",
|
||||
"$root_gen_dir/ui/strings/ui_strings_en-US.pak",
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "build/build_config.h"
|
||||
|
@ -367,8 +367,8 @@ void ShellPlatformDelegate::CreatePlatformWindow(
|
|||
views::Widget::InitParams params;
|
||||
params.bounds = gfx::Rect(initial_size);
|
||||
params.delegate = delegate.release();
|
||||
params.wm_class_class = "Thorium Shell";
|
||||
params.wm_class_name = params.wm_class_class;
|
||||
params.wm_class_class = "thorium_shell";
|
||||
params.wm_class_name = "Thorium Shell";
|
||||
shell_data.window_widget->Init(std::move(params));
|
||||
#endif
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@ import("//third_party/closure_compiler/compile_js.gni")
|
|||
import("//tools/grit/grit_rule.gni")
|
||||
import("//tools/grit/preprocess_if_expr.gni")
|
||||
import("//tools/typescript/ts_library.gni")
|
||||
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||||
import("//v8/gni/v8.gni")
|
||||
|
||||
if (is_android) {
|
||||
|
@ -47,8 +46,6 @@ static_library("test_support") {
|
|||
"../browser/accessibility/test_browser_accessibility_delegate.h",
|
||||
"../browser/aggregation_service/aggregation_service_test_utils.cc",
|
||||
"../browser/aggregation_service/aggregation_service_test_utils.h",
|
||||
"../browser/attribution_reporting/attribution_insecure_random_generator.cc",
|
||||
"../browser/attribution_reporting/attribution_insecure_random_generator.h",
|
||||
"../browser/attribution_reporting/attribution_interop_parser.cc",
|
||||
"../browser/attribution_reporting/attribution_interop_parser.h",
|
||||
"../browser/attribution_reporting/attribution_parser_test_utils.cc",
|
||||
|
@ -95,8 +92,8 @@ static_library("test_support") {
|
|||
"../browser/renderer_host/input/mock_input_router.h",
|
||||
"../browser/renderer_host/mock_render_widget_host.cc",
|
||||
"../browser/renderer_host/mock_render_widget_host.h",
|
||||
"../browser/screen_enumeration/screen_details_test_utils.cc",
|
||||
"../browser/screen_enumeration/screen_details_test_utils.h",
|
||||
"../browser/screen_details/screen_details_test_utils.cc",
|
||||
"../browser/screen_details/screen_details_test_utils.h",
|
||||
"../browser/service_worker/embedded_worker_test_helper.cc",
|
||||
"../browser/service_worker/embedded_worker_test_helper.h",
|
||||
"../browser/service_worker/fake_embedded_worker_instance_client.cc",
|
||||
|
@ -143,6 +140,8 @@ static_library("test_support") {
|
|||
"../public/test/browser_test.h",
|
||||
"../public/test/browser_test_base.cc",
|
||||
"../public/test/browser_test_base.h",
|
||||
"../public/test/browser_test_switches.cc",
|
||||
"../public/test/browser_test_switches.h",
|
||||
"../public/test/browser_test_utils.cc",
|
||||
"../public/test/browser_test_utils.h",
|
||||
"../public/test/browsing_data_remover_test_util.cc",
|
||||
|
@ -194,6 +193,8 @@ static_library("test_support") {
|
|||
"../public/test/mock_browsing_data_remover_delegate.cc",
|
||||
"../public/test/mock_browsing_data_remover_delegate.h",
|
||||
"../public/test/mock_client_hints_controller_delegate.h",
|
||||
"../public/test/mock_devtools_agent_host.cc",
|
||||
"../public/test/mock_devtools_agent_host.h",
|
||||
"../public/test/mock_download_manager.cc",
|
||||
"../public/test/mock_download_manager.h",
|
||||
"../public/test/mock_media_session.cc",
|
||||
|
@ -453,7 +454,6 @@ static_library("test_support") {
|
|||
":test_interfaces",
|
||||
"//components/attribution_reporting:test_support",
|
||||
"//components/download/public/common:test_support",
|
||||
"//components/enterprise/common:download_item_reroute_info",
|
||||
"//components/services/filesystem/public/mojom",
|
||||
"//components/services/storage/public/cpp",
|
||||
"//components/services/storage/public/mojom",
|
||||
|
@ -770,6 +770,7 @@ if (is_fuchsia) {
|
|||
":fuchsia_telemetry_test_data",
|
||||
":telemetry_gpu_integration_test_data",
|
||||
"//base:base_perftests",
|
||||
"//chrome/test:sync_performance_tests",
|
||||
"//testing:run_perf_test",
|
||||
"//tools/perf/:perf",
|
||||
]
|
||||
|
@ -1335,7 +1336,6 @@ test("content_browsertests") {
|
|||
"../browser/media/webaudio/audio_context_manager_browsertest.cc",
|
||||
"../browser/message_port_provider_browsertest.cc",
|
||||
"../browser/mojo_sandbox_browsertest.cc",
|
||||
"../browser/native_io/native_io_manager_browsertest.cc",
|
||||
"../browser/navigation_browsertest.cc",
|
||||
"../browser/navigation_mhtml_browsertest.cc",
|
||||
"../browser/net_info_browsertest.cc",
|
||||
|
@ -1373,6 +1373,7 @@ test("content_browsertests") {
|
|||
"../browser/renderer_host/ancestor_throttle_browsertest.cc",
|
||||
"../browser/renderer_host/back_forward_cache_metrics_browsertest.cc",
|
||||
"../browser/renderer_host/blocked_scheme_navigation_browsertest.cc",
|
||||
"../browser/renderer_host/browsing_context_group_swap_browsertest.cc",
|
||||
"../browser/renderer_host/close_listener_host_browsertest.cc",
|
||||
"../browser/renderer_host/cookie_browsertest.cc",
|
||||
"../browser/renderer_host/document_service_browsertest.cc",
|
||||
|
@ -1426,9 +1427,10 @@ test("content_browsertests") {
|
|||
"../browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc",
|
||||
"../browser/renderer_host/scroll_into_view_browsertest.cc",
|
||||
"../browser/renderer_host/sec_fetch_browsertest.cc",
|
||||
"../browser/renderer_host/speculative_render_view_host_browsertest.cc",
|
||||
"../browser/renderer_host/unassigned_site_instance_browsertest.cc",
|
||||
"../browser/resource_loading_browsertest.cc",
|
||||
"../browser/screen_enumeration/screen_details_browsertest.cc",
|
||||
"../browser/screen_details/screen_details_browsertest.cc",
|
||||
"../browser/screen_orientation/screen_orientation_browsertest.cc",
|
||||
"../browser/security_exploit_browsertest.cc",
|
||||
"../browser/service_process_host_browsertest.cc",
|
||||
|
@ -1473,7 +1475,6 @@ test("content_browsertests") {
|
|||
"../browser/web_contents/web_contents_impl_browsertest.cc",
|
||||
"../browser/web_contents/web_contents_observer_browsertest.cc",
|
||||
"../browser/web_contents/web_contents_view_aura_browsertest.cc",
|
||||
"../browser/web_package/save_page_as_web_bundle_browsertest.cc",
|
||||
"../browser/web_package/signed_exchange_request_handler_browsertest.cc",
|
||||
"../browser/web_package/signed_exchange_subresource_prefetch_browsertest.cc",
|
||||
"../browser/web_package/web_bundle_browsertest_base.cc",
|
||||
|
@ -1517,7 +1518,6 @@ test("content_browsertests") {
|
|||
"../browser/worker_host/worker_browsertest.cc",
|
||||
"../browser/worker_network_isolation_key_browsertest.cc",
|
||||
"../child/webthemeengine_impl_default_browsertest.cc",
|
||||
"../renderer/accessibility/ax_tree_distiller_browsertest.cc",
|
||||
"../renderer/accessibility/render_accessibility_impl_browsertest.cc",
|
||||
"../renderer/blink_platform_audio_hardware_browsertest.cc",
|
||||
"../renderer/gin_browsertest.cc",
|
||||
|
@ -1859,7 +1859,6 @@ test("content_browsertests") {
|
|||
"../shell/android/browsertests_apk/content_browser_tests_jni_onload.cc",
|
||||
]
|
||||
sources -= [
|
||||
"../browser/keyboard_lock_browsertest.cc",
|
||||
"../browser/media/session/audio_focus_delegate_default_browsertest.cc",
|
||||
"../browser/pointer_lock_browsertest.cc",
|
||||
"../browser/pointer_lock_browsertest.h",
|
||||
|
@ -1892,6 +1891,7 @@ test("content_browsertests") {
|
|||
"../browser/direct_sockets/direct_sockets_udp_browsertest.cc",
|
||||
"../browser/file_system_access/file_system_access_clipboard_browsertest.cc",
|
||||
"../browser/file_system_access/file_system_access_drag_drop_browsertest.cc",
|
||||
"../browser/file_system_access/file_system_access_file_handle_move_browsertest.cc",
|
||||
"../browser/file_system_access/file_system_access_file_writer_impl_browsertest.cc",
|
||||
"../browser/file_system_access/file_system_chooser_browsertest.cc",
|
||||
"../browser/font_preferences_browsertest.cc",
|
||||
|
@ -1914,6 +1914,10 @@ test("content_browsertests") {
|
|||
deps += [ "//services/tracing:test_utils" ]
|
||||
}
|
||||
|
||||
if (!is_android && !is_fuchsia) {
|
||||
sources += [ "../browser/smart_card/smart_card_browsertest.cc" ]
|
||||
}
|
||||
|
||||
# HID support is not available without udev.
|
||||
is_linux_without_udev = (is_linux || is_chromeos) && !use_udev
|
||||
if (!is_linux_without_udev && !is_android) {
|
||||
|
@ -2046,6 +2050,14 @@ test("content_browsertests") {
|
|||
]
|
||||
}
|
||||
|
||||
# KeyboardLock is currently not supported in Android, Fuchsia and
|
||||
# Chromecast builds. TODO(crbug.com/1414160): Re-enable on Fuchsia
|
||||
# once its platform support is available.
|
||||
if (is_android || is_fuchsia || is_castos) {
|
||||
sources -= [ "../browser/keyboard_lock_browsertest.cc" ]
|
||||
}
|
||||
|
||||
|
||||
if (use_ozone) {
|
||||
deps += [ "//ui/ozone" ]
|
||||
}
|
||||
|
@ -2129,7 +2141,6 @@ test("content_unittests") {
|
|||
"../browser/attribution_reporting/attribution_data_host_manager_impl_unittest.cc",
|
||||
"../browser/attribution_reporting/attribution_debug_report_unittest.cc",
|
||||
"../browser/attribution_reporting/attribution_host_unittest.cc",
|
||||
"../browser/attribution_reporting/attribution_insecure_random_generator_unittest.cc",
|
||||
"../browser/attribution_reporting/attribution_interop_parser_unittest.cc",
|
||||
"../browser/attribution_reporting/attribution_interop_unittest.cc",
|
||||
"../browser/attribution_reporting/attribution_manager_impl_unittest.cc",
|
||||
|
@ -2196,7 +2207,7 @@ test("content_unittests") {
|
|||
"../browser/client_hints/client_hints_unittest.cc",
|
||||
"../browser/code_cache/generated_code_cache_unittest.cc",
|
||||
"../browser/code_cache/simple_lru_cache_unittest.cc",
|
||||
"../browser/compute_pressure/pressure_service_impl_unittest.cc",
|
||||
"../browser/compute_pressure/compute_pressure_unittest.cc",
|
||||
"../browser/content_index/content_index_database_unittest.cc",
|
||||
"../browser/content_index/content_index_service_impl_unittest.cc",
|
||||
"../browser/cookie_store/cookie_store_manager_unittest.cc",
|
||||
|
@ -2209,6 +2220,7 @@ test("content_unittests") {
|
|||
"../browser/dom_storage/dom_storage_context_wrapper_unittest.cc",
|
||||
"../browser/download/download_manager_impl_unittest.cc",
|
||||
"../browser/download/save_package_unittest.cc",
|
||||
"../browser/fenced_frame/fenced_frame_reporter_unittest.cc",
|
||||
"../browser/fenced_frame/fenced_frame_unittest.cc",
|
||||
"../browser/fenced_frame/fenced_frame_url_mapping_unittest.cc",
|
||||
"../browser/fenced_frame/redacted_fenced_frame_config_mojom_traits_unittest.cc",
|
||||
|
@ -2264,8 +2276,6 @@ test("content_unittests") {
|
|||
"../browser/indexed_db/mock_indexed_db_callbacks.h",
|
||||
"../browser/indexed_db/mock_indexed_db_database_callbacks.cc",
|
||||
"../browser/indexed_db/mock_indexed_db_database_callbacks.h",
|
||||
"../browser/indexed_db/mock_indexed_db_factory.cc",
|
||||
"../browser/indexed_db/mock_indexed_db_factory.h",
|
||||
"../browser/indexed_db/mock_mojo_indexed_db_callbacks.cc",
|
||||
"../browser/indexed_db/mock_mojo_indexed_db_callbacks.h",
|
||||
"../browser/indexed_db/mock_mojo_indexed_db_database_callbacks.cc",
|
||||
|
@ -2276,6 +2286,7 @@ test("content_unittests") {
|
|||
"../browser/interest_group/auction_url_loader_factory_proxy_unittest.cc",
|
||||
"../browser/interest_group/auction_worklet_manager_unittest.cc",
|
||||
"../browser/interest_group/interest_group_k_anonymity_manager_unittest.cc",
|
||||
"../browser/interest_group/interest_group_pa_report_util_unittest.cc",
|
||||
"../browser/interest_group/interest_group_permissions_cache_unittest.cc",
|
||||
"../browser/interest_group/interest_group_permissions_checker_unittest.cc",
|
||||
"../browser/interest_group/interest_group_priority_util_unittest.cc",
|
||||
|
@ -2314,7 +2325,6 @@ test("content_unittests") {
|
|||
"../browser/metrics/histograms_monitor_unittest.cc",
|
||||
"../browser/mojo_binder_policy_applier_unittest.cc",
|
||||
"../browser/mojo_binder_policy_map_impl_unittest.cc",
|
||||
"../browser/native_io/native_io_manager_unittest.cc",
|
||||
"../browser/network/cross_origin_embedder_policy_reporter_unittest.cc",
|
||||
"../browser/network/cross_origin_opener_policy_reporter_unittest.cc",
|
||||
"../browser/network/network_quality_observer_impl_unittest.cc",
|
||||
|
@ -2355,6 +2365,7 @@ test("content_unittests") {
|
|||
"../browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc",
|
||||
"../browser/preloading/prefetch/proxy_lookup_client_impl_unittest.cc",
|
||||
"../browser/preloading/prefetcher_unittest.cc",
|
||||
"../browser/preloading/preloading_attempt_impl_unittest.cc",
|
||||
"../browser/preloading/preloading_decider_unittest.cc",
|
||||
"../browser/preloading/prerender/prerender_host_registry_unittest.cc",
|
||||
"../browser/preloading/prerender/prerender_host_unittest.cc",
|
||||
|
@ -2372,6 +2383,7 @@ test("content_unittests") {
|
|||
"../browser/renderer_host/ancestor_throttle_unittest.cc",
|
||||
"../browser/renderer_host/back_forward_cache_impl_unittest.cc",
|
||||
"../browser/renderer_host/back_forward_cache_metrics_unittest.cc",
|
||||
"../browser/renderer_host/browsing_context_group_swap_unittest.cc",
|
||||
"../browser/renderer_host/clipboard_host_impl_unittest.cc",
|
||||
"../browser/renderer_host/commit_deferring_condition_runner_unittest.cc",
|
||||
"../browser/renderer_host/cross_origin_opener_policy_status_unittest.cc",
|
||||
|
@ -2380,6 +2392,7 @@ test("content_unittests") {
|
|||
"../browser/renderer_host/embedded_frame_sink_provider_impl_unittest.cc",
|
||||
"../browser/renderer_host/frame_token_message_queue_unittest.cc",
|
||||
"../browser/renderer_host/frame_tree_unittest.cc",
|
||||
"../browser/renderer_host/indexed_db_client_state_checker_factory_unittest.cc",
|
||||
"../browser/renderer_host/input/fling_controller_unittest.cc",
|
||||
"../browser/renderer_host/input/fling_scheduler_unittest.cc",
|
||||
"../browser/renderer_host/input/gesture_event_queue_unittest.cc",
|
||||
|
@ -2450,6 +2463,7 @@ test("content_unittests") {
|
|||
"../browser/renderer_host/render_widget_host_view_child_frame_unittest.cc",
|
||||
"../browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc",
|
||||
"../browser/renderer_host/transient_allow_popup_unittest.cc",
|
||||
"../browser/renderer_host/view_transition_commit_deferring_condition_unittest.cc",
|
||||
"../browser/renderer_host/visible_time_request_trigger_unittest.cc",
|
||||
"../browser/scheduler/browser_io_thread_delegate_unittest.cc",
|
||||
"../browser/scheduler/browser_task_executor_unittest.cc",
|
||||
|
@ -2523,10 +2537,14 @@ test("content_unittests") {
|
|||
"../browser/web_package/web_bundle_url_loader_factory_unittest.cc",
|
||||
"../browser/web_package/web_bundle_utils_unittest.cc",
|
||||
"../browser/webid/federated_auth_request_impl_logout_unittest.cc",
|
||||
"../browser/webid/federated_auth_request_impl_multiple_frames_unittest.cc",
|
||||
"../browser/webid/federated_auth_request_impl_unittest.cc",
|
||||
"../browser/webid/federated_auth_user_info_request_unittest.cc",
|
||||
"../browser/webid/idp_network_request_manager_unittest.cc",
|
||||
"../browser/webid/test/delegated_idp_network_request_manager.cc",
|
||||
"../browser/webid/test/delegated_idp_network_request_manager.h",
|
||||
"../browser/webid/test/federated_auth_request_request_token_callback_helper.cc",
|
||||
"../browser/webid/test/federated_auth_request_request_token_callback_helper.h",
|
||||
"../browser/webid/test/mock_api_permission_delegate.cc",
|
||||
"../browser/webid/test/mock_api_permission_delegate.h",
|
||||
"../browser/webid/test/mock_identity_request_dialog_controller.cc",
|
||||
|
@ -2570,6 +2588,7 @@ test("content_unittests") {
|
|||
"../common/input/event_with_latency_info_unittest.cc",
|
||||
"../common/input/gesture_event_stream_validator_unittest.cc",
|
||||
"../common/input/touch_event_stream_validator_unittest.cc",
|
||||
"../common/pseudonymization_salt_unittest.cc",
|
||||
"../common/url_utils_unittest.cc",
|
||||
"../common/user_agent_unittest.cc",
|
||||
"../common/webid/identity_url_loader_throttle_unittest.cc",
|
||||
|
@ -2583,6 +2602,7 @@ test("content_unittests") {
|
|||
"../renderer/accessibility/ax_image_stopwords_unittest.cc",
|
||||
"../renderer/content_security_policy_util_unittest.cc",
|
||||
"../renderer/media/batching_media_log_unittest.cc",
|
||||
"../renderer/media/gpu/gpu_video_accelerator_factories_impl_unittest.cc",
|
||||
"../renderer/media/inspector_media_event_handler_unittest.cc",
|
||||
"../renderer/media/renderer_webaudiodevice_impl_unittest.cc",
|
||||
"../renderer/render_thread_impl_unittest.cc",
|
||||
|
@ -2614,7 +2634,6 @@ test("content_unittests") {
|
|||
"../browser/renderer_host/text_input_client_mac_unittest.mm",
|
||||
"../browser/sandbox_mac_unittest.mm",
|
||||
"../browser/speech/tts_mac_unittest.mm",
|
||||
"../browser/web_contents/web_contents_view_mac_unittest.mm",
|
||||
"../browser/web_contents/web_drag_dest_mac_unittest.mm",
|
||||
"../browser/web_contents/web_drag_source_mac_unittest.mm",
|
||||
"../common/mac/attributed_string_type_converters_unittest.mm",
|
||||
|
@ -2753,6 +2772,7 @@ test("content_unittests") {
|
|||
"//gin",
|
||||
"//gpu",
|
||||
"//gpu:test_support",
|
||||
"//gpu/ipc/common:test_support",
|
||||
"//gpu/ipc/host",
|
||||
"//gpu/ipc/service",
|
||||
"//ipc:test_support",
|
||||
|
@ -2784,6 +2804,7 @@ test("content_unittests") {
|
|||
"//services/video_capture/public/cpp:mocks",
|
||||
"//services/video_capture/public/mojom",
|
||||
"//services/video_capture/public/mojom:constants",
|
||||
"//services/viz/public/cpp/gpu",
|
||||
"//skia",
|
||||
"//sql",
|
||||
"//sql:test_support",
|
||||
|
@ -2839,6 +2860,12 @@ test("content_unittests") {
|
|||
"//third_party/mesa_headers",
|
||||
]
|
||||
|
||||
# Platforms where sqlite_dev_shell is defined.
|
||||
if (is_win || is_mac || is_linux || is_chromeos) {
|
||||
sources += [ "../browser/attribution_reporting/attribution_storage_sql_query_plans_unittest.cc" ]
|
||||
deps += [ "../browser/attribution_reporting:sqlite_test_utils" ]
|
||||
}
|
||||
|
||||
if (is_chromeos_lacros) {
|
||||
deps += [
|
||||
"//chromeos/crosapi/mojom",
|
||||
|
@ -2884,6 +2911,7 @@ test("content_unittests") {
|
|||
"../renderer/pepper/event_conversion_unittest.cc",
|
||||
"../renderer/pepper/host_var_tracker_unittest.cc",
|
||||
"../renderer/pepper/mock_resource.h",
|
||||
"../renderer/pepper/resource_creation_impl_unittest.cc",
|
||||
"../renderer/pepper/v8_var_converter_unittest.cc",
|
||||
]
|
||||
deps += [
|
||||
|
@ -2935,7 +2963,6 @@ test("content_unittests") {
|
|||
"../browser/renderer_host/direct_manipulation_test_helper_win.cc",
|
||||
"../browser/renderer_host/direct_manipulation_test_helper_win.h",
|
||||
"../browser/renderer_host/direct_manipulation_win_unittest.cc",
|
||||
"../browser/renderer_host/dwrite_font_lookup_table_builder_win_unittest.cc",
|
||||
"../browser/renderer_host/dwrite_font_proxy_impl_win_unittest.cc",
|
||||
"../browser/screenlock_monitor/screenlock_monitor_device_source_win_unittest.cc",
|
||||
"../child/dwrite_font_proxy/dwrite_font_proxy_win_unittest.cc",
|
||||
|
@ -2960,7 +2987,6 @@ test("content_unittests") {
|
|||
if (is_mac) {
|
||||
deps += [
|
||||
"//sandbox/mac:seatbelt",
|
||||
"//third_party/mozilla",
|
||||
"//third_party/ocmock",
|
||||
"//ui/accelerated_widget_mac",
|
||||
"//ui/base/mojom",
|
||||
|
@ -3017,6 +3043,7 @@ test("content_unittests") {
|
|||
"//build/config/freetype",
|
||||
"//components/download/internal/common:internal_java",
|
||||
"//content/public/android:content_java",
|
||||
"//gin:v8_snapshot_assets",
|
||||
"//gpu/command_buffer/service:android_texture_owner_test_support",
|
||||
"//services/data_decoder/public/cpp/android:safe_json_java",
|
||||
"//third_party/blink/public/common",
|
||||
|
@ -3024,19 +3051,11 @@ test("content_unittests") {
|
|||
"//ui/android:android",
|
||||
]
|
||||
|
||||
if (use_v8_context_snapshot) {
|
||||
deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
|
||||
} else {
|
||||
deps += [ "//v8:v8_external_startup_data_assets" ]
|
||||
}
|
||||
|
||||
defines += [ "APPCACHE_USE_SIMPLE_CACHE" ]
|
||||
} else {
|
||||
# Non-Android.
|
||||
sources += [
|
||||
"../browser/devtools/protocol/webauthn_handler_unittest.cc",
|
||||
"../browser/direct_sockets/direct_sockets_udp_unittest.cc",
|
||||
"../browser/direct_sockets/direct_sockets_unittest.cc",
|
||||
"../browser/host_zoom_map_impl_unittest.cc",
|
||||
"../browser/serial/serial_unittest.cc",
|
||||
"../browser/speech/endpointer/endpointer_unittest.cc",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2023 The Chromium Authors and Alex313031
|
||||
// Copyright 2023 The Chromium Authors, Alex313031, and Midzer
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
|||
#include "media/base/media_switches.h"
|
||||
#include "media/media_buildflags.h"
|
||||
#include "ui/display/display_switches.h"
|
||||
#include "ui/gfx/hdr_metadata.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_LIBVPX)
|
||||
// TODO(dalecurtis): This technically should not be allowed in media/base. See
|
||||
|
@ -64,6 +65,8 @@ bool IsSupportedHdrMetadata(const gfx::HdrMetadataType& hdr_metadata_type) {
|
|||
return true;
|
||||
|
||||
case gfx::HdrMetadataType::kSmpteSt2086:
|
||||
return base::FeatureList::IsEnabled(kSupportSmpteSt2086HdrMetadata);
|
||||
|
||||
case gfx::HdrMetadataType::kSmpteSt2094_10:
|
||||
case gfx::HdrMetadataType::kSmpteSt2094_40:
|
||||
return false;
|
||||
|
|
|
@ -636,9 +636,20 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
|
|||
break;
|
||||
}
|
||||
break;
|
||||
#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
case VideoCodec::kAV1:
|
||||
profile = AV1PROFILE_PROFILE_MAIN;
|
||||
if (codec_context->extradata && codec_context->extradata_size) {
|
||||
mp4::AV1CodecConfigurationRecord av1_config;
|
||||
if (av1_config.Parse(codec_context->extradata,
|
||||
codec_context->extradata_size)) {
|
||||
profile = av1_config.profile;
|
||||
} else {
|
||||
DLOG(WARNING) << "Failed to parse AV1 extra data for profile.";
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif // BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
case VideoCodec::kTheora:
|
||||
profile = THEORAPROFILE_ANY;
|
||||
break;
|
||||
|
|
|
@ -307,9 +307,13 @@ declare_args() {
|
|||
}
|
||||
|
||||
declare_args() {
|
||||
# Currently it is available on Win, Mac and Linux, since it requires the audio
|
||||
# service to run in a separate process.
|
||||
chrome_wide_echo_cancellation_supported = is_win || is_mac || is_linux
|
||||
# Currently it is available on Win, Mac, Linux and ChromeOS since it requires
|
||||
# the audio service to run in a separate process.
|
||||
# ChromeOS(http://crbug/1407588):
|
||||
# On CromeOS we are experimenting with the same set of systems CRAS runs on
|
||||
# ie. is_chromeos_device.
|
||||
chrome_wide_echo_cancellation_supported =
|
||||
is_win || is_mac || is_linux || is_chromeos_device
|
||||
}
|
||||
|
||||
# Do not expand this list without double-checking with OWNERS, this is a list of
|
||||
|
|
|
@ -123,6 +123,10 @@ BASE_FEATURE(kTLS13KeyUpdate,
|
|||
|
||||
BASE_FEATURE(kPermuteTLSExtensions,
|
||||
"PermuteTLSExtensions",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kPostQuantumKyber,
|
||||
"PostQuantumKyber",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kPostQuantumCECPQ2,
|
||||
|
@ -182,6 +186,12 @@ const base::FeatureParam<int> kChromeRootStoreSysImpl{&kChromeRootStoreUsed,
|
|||
#endif /* BUILDFLAG(IS_MAC) */
|
||||
#endif /* BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) */
|
||||
|
||||
#if BUILDFLAG(IS_MAC) || BUILDFLAG(USE_NSS_CERTS) || BUILDFLAG(IS_WIN)
|
||||
BASE_FEATURE(kTrustStoreTrustedLeafSupport,
|
||||
"TrustStoreTrustedLeafSupport",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
#endif
|
||||
|
||||
BASE_FEATURE(kTurnOffStreamingMediaCachingOnBattery,
|
||||
"TurnOffStreamingMediaCachingOnBattery",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
@ -238,10 +248,6 @@ BASE_FEATURE(kCookieSameSiteConsidersRedirectChain,
|
|||
"CookieSameSiteConsidersRedirectChain",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kSamePartyCookiesConsideredFirstParty,
|
||||
"SamePartyCookiesConsideredFirstParty",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
BASE_FEATURE(kSamePartyAttributeEnabled,
|
||||
"SamePartyAttributeEnabled",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
@ -280,40 +286,6 @@ BASE_FEATURE(kOptimisticBlockfileWrite,
|
|||
"OptimisticBlockfileWrite",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
// Read as much of the net::URLRequest as there is space in the Mojo data pipe.
|
||||
BASE_FEATURE(kOptimizeNetworkBuffers,
|
||||
"OptimizeNetworkBuffers2",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
const base::FeatureParam<int> kOptimizeNetworkBuffersBytesReadLimit{
|
||||
&kOptimizeNetworkBuffers, "bytes_read_limit", 64 * 1024};
|
||||
|
||||
// If InputStream.available() returns less than this,
|
||||
// kOptimizeNetworkBuffersMinInputStreamReadSize will be used instead.
|
||||
const base::FeatureParam<int>
|
||||
kOptimizeNetworkBuffersMinInputStreamAvailableValueToIgnore{
|
||||
&kOptimizeNetworkBuffers, "min_input_stream_available_value_to_ignore",
|
||||
16};
|
||||
|
||||
// The smallest amount we'll try to read at a time if InputStream.available()
|
||||
// returned less than
|
||||
// kOptimizeNetworkBuffersMinInputStreamAvailableValueToIgnore.
|
||||
const base::FeatureParam<int> kOptimizeNetworkBuffersMinInputStreamReadSize{
|
||||
&kOptimizeNetworkBuffers, "min_input_stream_read_size", 1024};
|
||||
|
||||
const base::FeatureParam<int>
|
||||
kOptimizeNetworkBuffersMaxInputStreamBytesToReadWhenAvailableUnknown{
|
||||
&kOptimizeNetworkBuffers, "max_input_stream_bytes_available_unknown",
|
||||
2 * 1024};
|
||||
|
||||
const base::FeatureParam<int>
|
||||
kOptimizeNetworkBuffersFilterSourceStreamBufferSize{
|
||||
&kOptimizeNetworkBuffers, "filter_source_stream_buffer_size",
|
||||
32 * 1024};
|
||||
|
||||
const base::FeatureParam<bool> kOptimizeNetworkBuffersInputStreamCheckAvailable{
|
||||
&kOptimizeNetworkBuffers, "input_stream_check_available", true};
|
||||
|
||||
BASE_FEATURE(kStorageAccessAPI,
|
||||
"StorageAccessAPI",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
@ -376,4 +348,15 @@ BASE_FEATURE(kPlatformKeyProbeSHA256,
|
|||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
#endif
|
||||
|
||||
// Enable support for HTTP extensible priorities (RFC 9218)
|
||||
BASE_FEATURE(kPriorityIncremental,
|
||||
"PriorityIncremental",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// Prefetch to follow normal semantics instead of 5-minute rule
|
||||
// https://crbug.com/1345207
|
||||
BASE_FEATURE(kPrefetchFollowsNormalCacheSemantics,
|
||||
"PrefetchFollowsNormalCacheSemantics",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
} // namespace net::features
|
||||
|
|
|
@ -36,32 +36,11 @@ buildflag_header("buildflags") {
|
|||
}
|
||||
|
||||
if (use_v8_context_snapshot) {
|
||||
if (is_android && enable_java_templates) {
|
||||
android_assets("v8_context_snapshot_assets") {
|
||||
deps = [ ":v8_context_snapshot" ]
|
||||
default_toolchain_root_out_dir =
|
||||
get_label_info(":v8_context_snapshot_generator($default_toolchain)",
|
||||
"root_out_dir")
|
||||
snapshot_file =
|
||||
"$default_toolchain_root_out_dir/$v8_context_snapshot_filename"
|
||||
renaming_sources = [ snapshot_file ]
|
||||
renaming_destinations = [ "$v8_context_snapshot_filename" ]
|
||||
disable_compression = true
|
||||
}
|
||||
}
|
||||
|
||||
if (v8_snapshot_toolchain == current_toolchain) {
|
||||
action("generate_v8_context_snapshot") {
|
||||
script = "//build/gn_run_binary.py"
|
||||
|
||||
# When cross compiling this target runs in a toolchain other than the
|
||||
# default_toolchain. Code depending on this expect the snapshot to be
|
||||
# generated in root_out_dir for the default toolchain.
|
||||
default_toolchain_root_out_dir =
|
||||
get_label_info(":v8_context_snapshot_generator($default_toolchain)",
|
||||
"root_out_dir")
|
||||
output_file =
|
||||
"$default_toolchain_root_out_dir/$v8_context_snapshot_filename"
|
||||
output_file = "$root_build_dir/$v8_context_snapshot_filename"
|
||||
output_path = rebase_path(output_file, root_build_dir)
|
||||
|
||||
args = [
|
||||
|
@ -110,7 +89,7 @@ if (use_v8_context_snapshot) {
|
|||
"//v8",
|
||||
]
|
||||
|
||||
if (is_linux) {
|
||||
if (is_linux || is_posix) {
|
||||
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 The Chromium Authors, Alex313031, qcasey and icepie. All rights reserved.
|
||||
// Copyright 2023 The Chromium Authors, Alex313031, qcasey and icepie.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
|
@ -210,19 +210,19 @@ void NativeThemeGtk::OnThemeChanged(GtkSettings* settings,
|
|||
SetPreferredContrast(
|
||||
high_contrast ? ui::NativeThemeBase::PreferredContrast::kMore
|
||||
: ui::NativeThemeBase::PreferredContrast::kNoPreference);
|
||||
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch("auto-dark-mode")) {
|
||||
// Brute force NativeUI to update
|
||||
ui::NativeTheme::GetInstanceForNativeUi()->set_use_dark_colors(color_utils::IsDark(window_bg_color));
|
||||
ui::NativeTheme::GetInstanceForNativeUi()->set_preferred_color_scheme(CalculatePreferredColorScheme());
|
||||
ui::NativeTheme::GetInstanceForNativeUi()->NotifyOnNativeThemeUpdated();
|
||||
|
||||
// Brute force Web to update
|
||||
ui::NativeTheme::GetInstanceForWeb()->set_use_dark_colors(color_utils::IsDark(window_bg_color));
|
||||
ui::NativeTheme::GetInstanceForWeb()->set_preferred_color_scheme(CalculatePreferredColorScheme());
|
||||
ui::NativeTheme::GetInstanceForWeb()->NotifyOnNativeThemeUpdated();
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch("auto-dark-mode")) {
|
||||
// Brute force NativeUI to update
|
||||
ui::NativeTheme::GetInstanceForNativeUi()->set_use_dark_colors(color_utils::IsDark(window_bg_color));
|
||||
ui::NativeTheme::GetInstanceForNativeUi()->set_preferred_color_scheme(CalculatePreferredColorScheme());
|
||||
ui::NativeTheme::GetInstanceForNativeUi()->NotifyOnNativeThemeUpdated();
|
||||
|
||||
// Brute force Web to update
|
||||
ui::NativeTheme::GetInstanceForWeb()->set_use_dark_colors(color_utils::IsDark(window_bg_color));
|
||||
ui::NativeTheme::GetInstanceForWeb()->set_preferred_color_scheme(CalculatePreferredColorScheme());
|
||||
ui::NativeTheme::GetInstanceForWeb()->NotifyOnNativeThemeUpdated();
|
||||
}
|
||||
|
||||
|
||||
NotifyOnNativeThemeUpdated();
|
||||
}
|
||||
|
||||
|
@ -336,8 +336,10 @@ void NativeThemeGtk::PaintFrameTopArea(
|
|||
? GTK_STATE_FLAG_NORMAL
|
||||
: GTK_STATE_FLAG_BACKDROP);
|
||||
|
||||
SkBitmap bitmap =
|
||||
GetWidgetBitmap(rect.size(), context, BG_RENDER_RECURSIVE, false);
|
||||
SkBitmap bitmap = GetWidgetBitmap(
|
||||
rect.size(), context,
|
||||
frame_top_area.use_custom_frame ? BG_RENDER_NORMAL : BG_RENDER_RECURSIVE,
|
||||
false);
|
||||
bitmap.setImmutable();
|
||||
canvas->drawImage(cc::PaintImage::CreateFromBitmap(std::move(bitmap)),
|
||||
rect.x(), rect.y());
|
||||
|
|
|
@ -1,313 +0,0 @@
|
|||
// Copyright 2023 The Chromium Authors and Alex313031.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "ui/native_theme/native_theme.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/containers/fixed_flat_map.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/observer_list.h"
|
||||
#include "base/timer/elapsed_timer.h"
|
||||
#include "build/build_config.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
#include "ui/base/ui_base_switches.h"
|
||||
#include "ui/color/color_id.h"
|
||||
#include "ui/color/color_metrics.h"
|
||||
#include "ui/color/color_provider.h"
|
||||
#include "ui/color/color_provider_manager.h"
|
||||
#include "ui/color/color_provider_utils.h"
|
||||
#include "ui/native_theme/common_theme.h"
|
||||
#include "ui/native_theme/native_theme_utils.h"
|
||||
|
||||
namespace ui {
|
||||
|
||||
NativeTheme::ExtraParams::ExtraParams() {
|
||||
memset(this, 0, sizeof(*this));
|
||||
}
|
||||
|
||||
NativeTheme::ExtraParams::ExtraParams(const ExtraParams& other) {
|
||||
memcpy(this, &other, sizeof(*this));
|
||||
}
|
||||
|
||||
#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_APPLE)
|
||||
// static
|
||||
bool NativeTheme::SystemDarkModeSupported() {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
ColorProviderManager::Key NativeTheme::GetColorProviderKey(
|
||||
scoped_refptr<ColorProviderManager::ThemeInitializerSupplier> custom_theme,
|
||||
bool use_custom_frame) const {
|
||||
return ColorProviderManager::Key(
|
||||
(GetDefaultSystemColorScheme() == ColorScheme::kDark)
|
||||
? ColorProviderManager::ColorMode::kDark
|
||||
: ColorProviderManager::ColorMode::kLight,
|
||||
UserHasContrastPreference() ? ColorProviderManager::ContrastMode::kHigh
|
||||
: ColorProviderManager::ContrastMode::kNormal,
|
||||
system_theme_,
|
||||
use_custom_frame ? ui::ColorProviderManager::FrameType::kChromium
|
||||
: ui::ColorProviderManager::FrameType::kNative,
|
||||
user_color_, std::move(custom_theme));
|
||||
}
|
||||
|
||||
SkColor NativeTheme::GetSystemButtonPressedColor(SkColor base_color) const {
|
||||
return base_color;
|
||||
}
|
||||
|
||||
SkColor NativeTheme::FocusRingColorForBaseColor(SkColor base_color) const {
|
||||
return base_color;
|
||||
}
|
||||
|
||||
float NativeTheme::GetBorderRadiusForPart(Part part,
|
||||
float width,
|
||||
float height) const {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void NativeTheme::AddObserver(NativeThemeObserver* observer) {
|
||||
native_theme_observers_.AddObserver(observer);
|
||||
}
|
||||
|
||||
void NativeTheme::RemoveObserver(NativeThemeObserver* observer) {
|
||||
native_theme_observers_.RemoveObserver(observer);
|
||||
}
|
||||
|
||||
void NativeTheme::NotifyOnNativeThemeUpdated() {
|
||||
base::ElapsedTimer timer;
|
||||
auto& color_provider_manager = ui::ColorProviderManager::Get();
|
||||
const size_t initial_providers_initialized =
|
||||
color_provider_manager.num_providers_initialized();
|
||||
|
||||
// This specific method is prone to being mistakenly called on the wrong
|
||||
// sequence, because it is often invoked from a platform-specific event
|
||||
// listener, and those events may be delivered on unexpected sequences.
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
// Reset the ColorProviderManager's cache so that ColorProviders requested
|
||||
// from this point onwards incorporate the changes to the system theme.
|
||||
color_provider_manager.ResetColorProviderCache();
|
||||
for (NativeThemeObserver& observer : native_theme_observers_)
|
||||
observer.OnNativeThemeUpdated(this);
|
||||
|
||||
RecordNumColorProvidersInitializedDuringOnNativeThemeUpdated(
|
||||
color_provider_manager.num_providers_initialized() -
|
||||
initial_providers_initialized);
|
||||
RecordTimeSpentProcessingOnNativeThemeUpdatedEvent(timer.Elapsed());
|
||||
}
|
||||
|
||||
void NativeTheme::NotifyOnCaptionStyleUpdated() {
|
||||
// This specific method is prone to being mistakenly called on the wrong
|
||||
// sequence, because it is often invoked from a platform-specific event
|
||||
// listener, and those events may be delivered on unexpected sequences.
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
for (NativeThemeObserver& observer : native_theme_observers_)
|
||||
observer.OnCaptionStyleUpdated();
|
||||
}
|
||||
|
||||
void NativeTheme::NotifyOnPreferredContrastUpdated() {
|
||||
// This specific method is prone to being mistakenly called on the wrong
|
||||
// sequence, because it is often invoked from a platform-specific event
|
||||
// listener, and those events may be delivered on unexpected sequences.
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
for (NativeThemeObserver& observer : native_theme_observers_)
|
||||
observer.OnPreferredContrastChanged();
|
||||
}
|
||||
|
||||
float NativeTheme::AdjustBorderWidthByZoom(float border_width,
|
||||
float zoom_level) const {
|
||||
float zoomed = floorf(border_width * zoom_level);
|
||||
return std::max(1.0f, zoomed);
|
||||
}
|
||||
|
||||
float NativeTheme::AdjustBorderRadiusByZoom(Part part,
|
||||
float border_radius,
|
||||
float zoom) const {
|
||||
if (part == kCheckbox || part == kTextField || part == kPushButton) {
|
||||
float zoomed = floorf(border_radius * zoom);
|
||||
return std::max(1.0f, zoomed);
|
||||
}
|
||||
return border_radius;
|
||||
}
|
||||
|
||||
NativeTheme::NativeTheme(bool should_use_dark_colors,
|
||||
ui::SystemTheme system_theme)
|
||||
: should_use_dark_colors_(should_use_dark_colors || IsForcedDarkMode()),
|
||||
system_theme_(system_theme),
|
||||
forced_colors_(IsForcedHighContrast()),
|
||||
preferred_color_scheme_(CalculatePreferredColorScheme()),
|
||||
preferred_contrast_(CalculatePreferredContrast()) {}
|
||||
|
||||
NativeTheme::~NativeTheme() = default;
|
||||
|
||||
bool NativeTheme::ShouldUseDarkColors() const {
|
||||
return should_use_dark_colors_;
|
||||
}
|
||||
|
||||
bool NativeTheme::UserHasContrastPreference() const {
|
||||
return GetPreferredContrast() !=
|
||||
NativeTheme::PreferredContrast::kNoPreference;
|
||||
}
|
||||
|
||||
bool NativeTheme::InForcedColorsMode() const {
|
||||
return forced_colors_;
|
||||
}
|
||||
|
||||
NativeTheme::PlatformHighContrastColorScheme
|
||||
NativeTheme::GetPlatformHighContrastColorScheme() const {
|
||||
if (GetDefaultSystemColorScheme() != ColorScheme::kPlatformHighContrast)
|
||||
return PlatformHighContrastColorScheme::kNone;
|
||||
return (GetPreferredColorScheme() == PreferredColorScheme::kDark)
|
||||
? PlatformHighContrastColorScheme::kDark
|
||||
: PlatformHighContrastColorScheme::kLight;
|
||||
}
|
||||
|
||||
NativeTheme::PageColors NativeTheme::GetPageColors() const {
|
||||
return page_colors_;
|
||||
}
|
||||
|
||||
NativeTheme::PreferredColorScheme NativeTheme::GetPreferredColorScheme() const {
|
||||
return preferred_color_scheme_;
|
||||
}
|
||||
|
||||
NativeTheme::PreferredContrast NativeTheme::GetPreferredContrast() const {
|
||||
return preferred_contrast_;
|
||||
}
|
||||
|
||||
void NativeTheme::SetPreferredContrast(
|
||||
NativeTheme::PreferredContrast preferred_contrast) {
|
||||
if (preferred_contrast_ == preferred_contrast)
|
||||
return;
|
||||
preferred_contrast_ = preferred_contrast;
|
||||
NotifyOnPreferredContrastUpdated();
|
||||
}
|
||||
|
||||
bool NativeTheme::IsForcedDarkMode() {
|
||||
static bool kIsForcedDarkMode =
|
||||
base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kForceDarkMode);
|
||||
return kIsForcedDarkMode;
|
||||
}
|
||||
|
||||
bool NativeTheme::IsForcedHighContrast() {
|
||||
static bool kIsForcedHighContrast =
|
||||
base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kForceHighContrast);
|
||||
return kIsForcedHighContrast;
|
||||
}
|
||||
|
||||
NativeTheme::PreferredColorScheme NativeTheme::CalculatePreferredColorScheme()
|
||||
const {
|
||||
return ShouldUseDarkColors() ? NativeTheme::PreferredColorScheme::kDark
|
||||
: NativeTheme::PreferredColorScheme::kLight;
|
||||
}
|
||||
|
||||
NativeTheme::PreferredContrast NativeTheme::CalculatePreferredContrast() const {
|
||||
return IsForcedHighContrast() ? PreferredContrast::kMore
|
||||
: PreferredContrast::kNoPreference;
|
||||
}
|
||||
|
||||
absl::optional<CaptionStyle> NativeTheme::GetSystemCaptionStyle() const {
|
||||
return CaptionStyle::FromSystemSettings();
|
||||
}
|
||||
|
||||
const std::map<NativeTheme::SystemThemeColor, SkColor>&
|
||||
NativeTheme::GetSystemColors() const {
|
||||
return system_colors_;
|
||||
}
|
||||
|
||||
absl::optional<SkColor> NativeTheme::GetSystemThemeColor(
|
||||
SystemThemeColor theme_color) const {
|
||||
auto color = system_colors_.find(theme_color);
|
||||
if (color != system_colors_.end())
|
||||
return color->second;
|
||||
|
||||
return absl::nullopt;
|
||||
}
|
||||
|
||||
bool NativeTheme::HasDifferentSystemColors(
|
||||
const std::map<NativeTheme::SystemThemeColor, SkColor>& colors) const {
|
||||
return system_colors_ != colors;
|
||||
}
|
||||
|
||||
void NativeTheme::set_system_colors(
|
||||
const std::map<NativeTheme::SystemThemeColor, SkColor>& colors) {
|
||||
system_colors_ = colors;
|
||||
}
|
||||
|
||||
bool NativeTheme::UpdateSystemColorInfo(
|
||||
bool is_dark_mode,
|
||||
bool forced_colors,
|
||||
const base::flat_map<SystemThemeColor, uint32_t>& colors) {
|
||||
bool did_system_color_info_change = false;
|
||||
if (is_dark_mode != ShouldUseDarkColors()) {
|
||||
did_system_color_info_change = true;
|
||||
set_use_dark_colors(is_dark_mode);
|
||||
}
|
||||
if (forced_colors != InForcedColorsMode()) {
|
||||
did_system_color_info_change = true;
|
||||
set_forced_colors(forced_colors);
|
||||
}
|
||||
for (const auto& color : colors) {
|
||||
if (color.second != GetSystemThemeColor(color.first)) {
|
||||
did_system_color_info_change = true;
|
||||
system_colors_[color.first] = color.second;
|
||||
}
|
||||
}
|
||||
return did_system_color_info_change;
|
||||
}
|
||||
|
||||
NativeTheme::ColorSchemeNativeThemeObserver::ColorSchemeNativeThemeObserver(
|
||||
NativeTheme* theme_to_update)
|
||||
: theme_to_update_(theme_to_update) {}
|
||||
|
||||
NativeTheme::ColorSchemeNativeThemeObserver::~ColorSchemeNativeThemeObserver() =
|
||||
default;
|
||||
|
||||
void NativeTheme::ColorSchemeNativeThemeObserver::OnNativeThemeUpdated(
|
||||
ui::NativeTheme* observed_theme) {
|
||||
bool should_use_dark_colors = observed_theme->ShouldUseDarkColors();
|
||||
bool forced_colors = observed_theme->InForcedColorsMode();
|
||||
PreferredColorScheme preferred_color_scheme =
|
||||
observed_theme->GetPreferredColorScheme();
|
||||
PreferredContrast preferred_contrast = observed_theme->GetPreferredContrast();
|
||||
bool notify_observers = false;
|
||||
|
||||
if (theme_to_update_->ShouldUseDarkColors() != should_use_dark_colors) {
|
||||
theme_to_update_->set_use_dark_colors(should_use_dark_colors);
|
||||
notify_observers = true;
|
||||
}
|
||||
if (theme_to_update_->InForcedColorsMode() != forced_colors) {
|
||||
theme_to_update_->set_forced_colors(forced_colors);
|
||||
notify_observers = true;
|
||||
}
|
||||
if (theme_to_update_->GetPreferredColorScheme() != preferred_color_scheme) {
|
||||
theme_to_update_->set_preferred_color_scheme(preferred_color_scheme);
|
||||
notify_observers = true;
|
||||
}
|
||||
if (theme_to_update_->GetPreferredContrast() != preferred_contrast) {
|
||||
theme_to_update_->SetPreferredContrast(preferred_contrast);
|
||||
notify_observers = true;
|
||||
}
|
||||
|
||||
const auto& system_colors = observed_theme->GetSystemColors();
|
||||
if (theme_to_update_->HasDifferentSystemColors(system_colors)) {
|
||||
theme_to_update_->set_system_colors(system_colors);
|
||||
notify_observers = true;
|
||||
}
|
||||
|
||||
if (notify_observers) {
|
||||
DCHECK(theme_to_update_->UserHasContrastPreference() ||
|
||||
!theme_to_update_->InForcedColorsMode());
|
||||
theme_to_update_->NotifyOnNativeThemeUpdated();
|
||||
}
|
||||
}
|
||||
|
||||
NativeTheme::ColorScheme NativeTheme::GetDefaultSystemColorScheme() const {
|
||||
return ShouldUseDarkColors() ? ColorScheme::kDark : ColorScheme::kLight;
|
||||
}
|
||||
|
||||
} // namespace ui
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
#include <components/exo/wayland/protocol/aura-shell-client-protocol.h>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/memory/ptr_util.h"
|
||||
#include "base/message_loop/message_pump_type.h"
|
||||
#include "base/no_destructor.h"
|
||||
|
@ -31,6 +31,7 @@
|
|||
#include "ui/gfx/buffer_format_util.h"
|
||||
#include "ui/gfx/linux/client_native_pixmap_dmabuf.h"
|
||||
#include "ui/gfx/native_widget_types.h"
|
||||
#include "ui/ozone/common/base_keyboard_hook.h"
|
||||
#include "ui/ozone/common/features.h"
|
||||
#include "ui/ozone/platform/wayland/common/wayland_util.h"
|
||||
#include "ui/ozone/platform/wayland/gpu/wayland_buffer_manager_gpu.h"
|
||||
|
@ -46,7 +47,9 @@
|
|||
#include "ui/ozone/platform/wayland/host/wayland_input_method_context.h"
|
||||
#include "ui/ozone/platform/wayland/host/wayland_menu_utils.h"
|
||||
#include "ui/ozone/platform/wayland/host/wayland_output_manager.h"
|
||||
#include "ui/ozone/platform/wayland/host/wayland_seat.h"
|
||||
#include "ui/ozone/platform/wayland/host/wayland_window.h"
|
||||
#include "ui/ozone/platform/wayland/host/wayland_window_manager.h"
|
||||
#include "ui/ozone/platform/wayland/host/wayland_zaura_shell.h"
|
||||
#include "ui/ozone/platform/wayland/wayland_utils.h"
|
||||
#include "ui/ozone/public/gpu_platform_support_host.h"
|
||||
|
@ -308,7 +311,7 @@ class OzonePlatformWayland : public OzonePlatform,
|
|||
// arbitrary position.
|
||||
properties->supports_global_screen_coordinates =
|
||||
features::IsWaylandScreenCoordinatesEnabled();
|
||||
|
||||
|
||||
// Let the media know this platform supports va-api.
|
||||
properties->supports_vaapi = true;
|
||||
|
||||
|
@ -353,7 +356,7 @@ class OzonePlatformWayland : public OzonePlatform,
|
|||
(wl::get_version_of_object(
|
||||
connection_->zaura_shell()->wl_object()) >=
|
||||
ZAURA_SURFACE_SHOW_TOOLTIP_SINCE_VERSION) &&
|
||||
connection_->zaura_shell()->HasBugFix(1400226);
|
||||
connection_->zaura_shell()->HasBugFix(1402158);
|
||||
}
|
||||
|
||||
if (surface_factory_) {
|
||||
|
@ -410,6 +413,26 @@ class OzonePlatformWayland : public OzonePlatform,
|
|||
connection_->SetShutdownCb(std::move(shutdown_cb));
|
||||
}
|
||||
|
||||
std::unique_ptr<PlatformKeyboardHook> CreateKeyboardHook(
|
||||
PlatformKeyboardHookTypes type,
|
||||
base::RepeatingCallback<void(KeyEvent* event)> callback,
|
||||
absl::optional<base::flat_set<DomCode>> dom_codes,
|
||||
gfx::AcceleratedWidget accelerated_widget) override {
|
||||
DCHECK(connection_);
|
||||
auto* seat = connection_->seat();
|
||||
auto* window = connection_->window_manager()->GetWindow(accelerated_widget);
|
||||
if (!seat || !seat->keyboard() || !window) {
|
||||
return nullptr;
|
||||
}
|
||||
switch (type) {
|
||||
case PlatformKeyboardHookTypes::kModifier:
|
||||
return seat->keyboard()->CreateKeyboardHook(
|
||||
window, std::move(dom_codes), std::move(callback));
|
||||
case PlatformKeyboardHookTypes::kMedia:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// OSExchangeDataProviderFactoryOzone:
|
||||
std::unique_ptr<OSExchangeDataProvider> CreateProvider() override {
|
||||
return std::make_unique<WaylandExchangeDataProvider>();
|
||||
|
|
Loading…
Reference in a new issue