M121 stage 7

This commit is contained in:
Alexander Frick 2024-02-12 12:57:09 -06:00
parent 5f55c6cedf
commit 3769614a38
18 changed files with 238 additions and 255 deletions

View file

@ -1,6 +1,6 @@
#!/bin/bash
# Copyright (c) 2024 Alex313031 and Midzer.
# Copyright (c) 2024 Alex313031 and midzer.
YEL='\033[1;33m' # Yellow
CYA='\033[1;96m' # Cyan

View file

@ -15,7 +15,7 @@ FIXED | Nov. 30, Bug that shows starting with M98.0.4738.0; bookmark folders in
FIXED | Dec. 2, The Google API Keys InfoBar patch doesn't work following an upstream update to startup_browser_creator_impl.cc, will evaluate a fix. - Me | Fixed by me on Dec. 5.
FIXED | Dec. 6, The Default Browser InfoBar persists even after setting Thorium as the default browser. Until this is fixed upstream, it will be mitigated with the --no-default-browser-check cmdline flag in the .desktop file. - Midzer on GitHub | Fixed by me May. 2022
FIXED | Dec. 6, The Default Browser InfoBar persists even after setting Thorium as the default browser. Until this is fixed upstream, it will be mitigated with the --no-default-browser-check cmdline flag in the .desktop file. - midzer on GitHub | Fixed by me May. 2022
**2022**

View file

@ -171,7 +171,7 @@ Allow all HEVC Video Profiles to Play Patch - https://github.com/StaZhu/enable-c
Enable multi-threaded HEVC decoding - https://github.com/RobRich999/Chromium_Clang/blob/649f66dc041a72467c02d76e8d1fe00ee06d8276/Linux/linux64-avx.patch#L295
Enable AC3 and EAC3 for HEVC Patch - https://github.com/Muril-o/electron-chromium-codecs/tree/main/v25.1.0
- Modified by Midzer and me.
- Modified by midzer and me.
- https://github.com/Alex313031/thorium/commit/a2e49dd2fe00e4c6fa882a41e8a1a27f93bedfff AND
- https://github.com/Alex313031/thorium/commit/7d0b4f045ce0e16ea9edb05a4dc056a1d4583752#diff-09b3d55a8198fc42186bfd6bf5869fe78b8edad6f67e75b78228446f1d7cf66f

View file

@ -1,6 +1,6 @@
#!/bin/bash
# Copyright (c) 2024 Alex313031 and Midzer.
# Copyright (c) 2024 Alex313031 and midzer.
YEL='\033[1;33m' # Yellow
CYA='\033[1;96m' # Cyan

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# Copyright 2023 The Chromium Authors, Alex313031, and Midzer. All rights reserved.
# Copyright 2023 The Chromium Authors, Alex313031, and midzer. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

View file

@ -34,20 +34,24 @@ config("compiler") {
"ANDROID_NDK_VERSION_ROLL=${android_ndk_version}_1",
]
if (android_64bit_current_cpu) {
_max_page_size = 16384
} else {
_max_page_size = 4096
}
ldflags = [
# Don't allow visible symbols from libraries that contain
# assembly code with symbols that aren't hidden properly.
# http://crbug.com/448386
"-Wl,--exclude-libs=libvpx_assembly_arm.a",
"-Wl,-O3",
]
if (current_cpu == "arm64") {
# Reduce the page size from 65536 in order to reduce binary size slightly
# by shrinking the alignment gap between segments. This also causes all
# segments to be mapped adjacently, which breakpad relies on.
ldflags += [ "-Wl,-z,max-page-size=4096" ]
}
"-Wl,-z,max-page-size=$_max_page_size",
"-Wl,-O3",
]
if (current_cpu == "arm64") {
if (arm_control_flow_integrity == "standard") {

View file

@ -30,6 +30,7 @@ import("//chrome/browser/share/android/java_sources.gni")
import("//chrome/chrome_paks.gni")
import("//chrome/common/features.gni")
import("//chrome/version.gni")
import("//components/plus_addresses/buildflags.gni")
import("//device/vr/buildflags/buildflags.gni")
import("//printing/buildflags/buildflags.gni")
import("//testing/test.gni")
@ -209,6 +210,7 @@ if (current_toolchain == default_toolchain) {
"//components/browser_ui/strings/android:browser_ui_strings_grd",
"//components/browser_ui/styles/android:java_resources",
"//components/browser_ui/theme/android:java_resources",
"//components/browser_ui/util/android:java_resources",
"//components/browser_ui/widget/android:java_resources",
"//components/find_in_page/android:java_resources",
"//components/javascript_dialogs/android:java_resources",
@ -229,6 +231,12 @@ if (current_toolchain == default_toolchain) {
"//third_party/androidx:androidx_gridlayout_gridlayout_java",
"//third_party/androidx:androidx_preference_preference_java",
]
if (plus_addresses_use_internal_android_resources) {
deps += [ "//clank/components/plus_addresses:java_resources" ]
} else {
deps += [ "//components/plus_addresses/android:java_resources" ]
}
}
android_library("app_hooks_java") {
@ -252,11 +260,10 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/policy/android:delegate_public_impl_java",
"//chrome/browser/readaloud/android:hooks_public_impl_java",
"//chrome/browser/supervised_user:parent_auth_delegate_impl_java",
"//chrome/browser/touch_to_fill/android/internal:resource_provider_public_impl_java",
"//chrome/browser/touch_to_fill/password_manager/android/internal:resource_provider_public_impl_java",
"//chrome/browser/ui/android/cars:delegate_public_impl_java",
"//chrome/browser/ui/android/hats/internal:provider_public_impl_java",
"//chrome/browser/xsurface_provider:hooks_public_impl_java",
"//components/environment_integrity/android:integrity_service_bridge_public_impl_java",
"//components/externalauth/android:google_delegate_public_impl_java",
"//components/language/android:ulp_delegate_public_java",
"//components/signin/public/android:account_email_domain_displayability_java",
@ -359,7 +366,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/language/android:java",
"//chrome/browser/lens:java",
"//chrome/browser/locale:java",
"//chrome/browser/metrics_settings/android:java",
"//chrome/browser/notifications/chime/android:java",
"//chrome/browser/omaha/android:java",
"//chrome/browser/optimization_guide/android:java",
@ -442,6 +448,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/user_education:java",
"//chrome/browser/util:java",
"//chrome/browser/version:java",
"//chrome/browser/wallet/android:java",
"//chrome/browser/webapps/android:java",
"//chrome/browser/webauthn/android:java",
"//chrome/browser/xsurface:java",
@ -502,7 +509,6 @@ if (current_toolchain == default_toolchain) {
"//components/embedder_support/android:simple_factory_key_java",
"//components/embedder_support/android:util_java",
"//components/embedder_support/android:web_contents_delegate_java",
"//components/environment_integrity/android:java",
"//components/external_intents/android:java",
"//components/externalauth/android:java",
"//components/favicon/android:java",
@ -672,7 +678,7 @@ if (current_toolchain == default_toolchain) {
"//components/dom_distiller/core:distiller_type_java",
"//components/ntp_tiles:ntp_tiles_enums_java",
"//components/offline_pages/core:offline_page_model_enums_java",
"//components/supervised_user/core/browser:supervised_user_url_filter_enum_javagen",
"//components/supervised_user/core/common:supervised_user_utils_enum_javagen",
"//net:effective_connection_type_java",
]
@ -737,6 +743,8 @@ if (current_toolchain == default_toolchain) {
deps += commerce_subscriptions_java_deps
if (enable_printing) {
sources +=
[ "java/src/org/chromium/chrome/browser/printing/TabPrinter.java" ]
deps += [ "//printing:printing_java" ]
}
@ -799,11 +807,11 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/password_manager/android/add_username_dialog:java",
"//chrome/browser/recent_tabs/internal:java",
"//chrome/browser/tabmodel/internal:java",
"//chrome/browser/touch_to_fill/android/internal:java",
"//chrome/browser/touch_to_fill/autofill/android/internal:java",
"//chrome/browser/touch_to_fill/common/android:java",
"//chrome/browser/touch_to_fill/no_passkeys/internal/android:java",
"//chrome/browser/touch_to_fill/password_generation/android/internal:java",
"//chrome/browser/touch_to_fill/payments/android/internal:java",
"//chrome/browser/touch_to_fill/password_manager/android/internal:java",
"//chrome/browser/touch_to_fill/password_manager/no_passkeys/internal/android:java",
"//chrome/browser/touch_to_fill/password_manager/password_generation/android/internal:java",
"//chrome/browser/ui/android/appmenu/internal:java",
"//chrome/browser/ui/android/autofill/internal:java",
"//chrome/browser/ui/android/edge_to_edge/internal:java",
@ -1010,6 +1018,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/preferences:preferences_junit_tests",
"//chrome/browser/privacy_guide/android:java",
"//chrome/browser/privacy_guide/android:junit",
"//chrome/browser/privacy_sandbox/android:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/profiles/android:junit",
"//chrome/browser/quick_delete:java",
@ -1042,10 +1051,10 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/tabmodel/internal:java",
"//chrome/browser/tabpersistence:junit",
"//chrome/browser/thumbnail:java",
"//chrome/browser/touch_to_fill/autofill/android/internal:junit",
"//chrome/browser/touch_to_fill/common/android:junit",
"//chrome/browser/touch_to_fill/no_passkeys/internal/android:junit",
"//chrome/browser/touch_to_fill/password_generation/android/internal:junit",
"//chrome/browser/touch_to_fill/payments/android/internal:junit",
"//chrome/browser/touch_to_fill/password_manager/no_passkeys/internal/android:junit",
"//chrome/browser/touch_to_fill/password_manager/password_generation/android/internal:junit",
"//chrome/browser/translate/android:junit",
"//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/appmenu/internal:junit",
@ -1094,6 +1103,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/util:java",
"//chrome/browser/util:junit_tests",
"//chrome/browser/version:java",
"//chrome/browser/wallet/android:junit",
"//chrome/browser/webapps/android:java",
"//chrome/browser/xsurface:java",
"//chrome/browser/xsurface_provider:junit",
@ -1171,6 +1181,7 @@ if (current_toolchain == default_toolchain) {
"//components/profile_metrics:browser_profile_type_enum_java",
"//components/schema_org/common:mojom_java",
"//components/search_engines/android:java",
"//components/search_engines/android:test_utils_java",
"//components/security_state/content/android:java",
"//components/security_state/core:security_state_enums_java",
"//components/segmentation_platform/public:junit",
@ -1231,6 +1242,7 @@ if (current_toolchain == default_toolchain) {
"//third_party/google-truth:google_truth_java",
"//third_party/hamcrest:hamcrest_java",
"//ui/accessibility:ax_base_java",
"//ui/accessibility:ui_accessibility_features_java",
"//ui/android:ui_java",
"//ui/android:ui_java_test_support",
"//ui/android:ui_junit_test_support",
@ -1281,6 +1293,7 @@ if (current_toolchain == default_toolchain) {
testonly = true
sources = [
"javatests/src/org/chromium/chrome/browser/FederatedIdentityTestUtils.java",
"javatests/src/org/chromium/chrome/browser/PwaRestoreBottomSheetTestUtils.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsTestUtils.java",
]
}
@ -1293,9 +1306,9 @@ if (current_toolchain == default_toolchain) {
srcjar_deps = [ ":chrome_test_util_jni" ]
sources = [
"javatests/src/org/chromium/chrome/browser/FederatedIdentityTestUtils.java",
"javatests/src/org/chromium/chrome/browser/PwaRestoreBottomSheetTestUtils.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestRule.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsTestUtils.java",
"javatests/src/org/chromium/chrome/browser/directactions/FakeDirectActionReporter.java",
"javatests/src/org/chromium/chrome/browser/modaldialog/ChromeModalDialogTestUtils.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java",
"javatests/src/org/chromium/chrome/browser/webapps/TestFetchStorageCallback.java",
@ -1373,7 +1386,7 @@ if (current_toolchain == default_toolchain) {
"javatests/src/org/chromium/chrome/browser/crypto/CipherFactoryTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabBottomBarViewUnitTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabLaunchCauseMetricsTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/features/minimizedcustomtab/MinimizedCardDialogFragmentTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/features/minimizedcustomtab/MinimizedCardCoordinatorTest.java",
"javatests/src/org/chromium/chrome/browser/customtabs/features/minimizedcustomtab/MinimizedCardViewBinderTest.java",
"javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java",
"javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java",
@ -1390,6 +1403,7 @@ if (current_toolchain == default_toolchain) {
"javatests/src/org/chromium/chrome/browser/ntp/TitleUtilTest.java",
"javatests/src/org/chromium/chrome/browser/payments/CurrencyFormatterTest.java",
"javatests/src/org/chromium/chrome/browser/screenshot_monitor/ScreenshotMonitorTest.java",
"javatests/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettingsRenderTest.java",
"javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java",
"javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorViewBinderTest.java",
"javatests/src/org/chromium/chrome/browser/tab/WebContentsStateBridgeTest.java",
@ -1430,6 +1444,8 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/preferences:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/settings:test_support_java",
"//chrome/browser/tab:java",
"//chrome/browser/tab_group:java",
"//chrome/browser/tabmodel:java",
@ -1467,6 +1483,7 @@ if (current_toolchain == default_toolchain) {
"//components/power_bookmarks/core:proto_java",
"//components/prefs/android:java",
"//components/search_engines/android:java",
"//components/search_engines/android:test_utils_java",
"//components/security_state/content/android:java",
"//components/security_state/core:security_state_enums_java",
"//components/signin/public/android:java",
@ -1600,6 +1617,8 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/fullscreen/android:java",
"//chrome/browser/gsa:java",
"//chrome/browser/history_clusters:java",
"//chrome/browser/hub:factory_java",
"//chrome/browser/hub:java",
"//chrome/browser/image_descriptions:javatests",
"//chrome/browser/incognito:incognito_java_tests",
"//chrome/browser/incognito:java",
@ -1631,6 +1650,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/privacy_guide/android:java",
"//chrome/browser/privacy_guide/android:javatests",
"//chrome/browser/privacy_sandbox/android:java",
"//chrome/browser/privacy_sandbox/android:java_resources",
"//chrome/browser/privacy_sandbox/android:javatests",
"//chrome/browser/profiles/android:java",
"//chrome/browser/quick_delete:java",
@ -1661,8 +1681,8 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/tabpersistence:java",
"//chrome/browser/thumbnail:java",
"//chrome/browser/thumbnail:javatests",
"//chrome/browser/touch_to_fill/no_passkeys/internal/android:java_resources",
"//chrome/browser/touch_to_fill/payments/android/internal:java_resources",
"//chrome/browser/touch_to_fill/autofill/android/internal:java_resources",
"//chrome/browser/touch_to_fill/password_manager/no_passkeys/internal/android:java_resources",
"//chrome/browser/translate/android:java",
"//chrome/browser/translate/android:javatests",
"//chrome/browser/ui/android/appmenu:java",
@ -1670,6 +1690,8 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/ui/android/device_lock:java",
"//chrome/browser/ui/android/device_lock:java_resources",
"//chrome/browser/ui/android/device_lock:javatests",
"//chrome/browser/ui/android/edge_to_edge:java",
"//chrome/browser/ui/android/edge_to_edge/internal:java",
"//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/android/hats:java",
"//chrome/browser/ui/android/hats/test:test_support_java",
@ -1749,7 +1771,6 @@ if (current_toolchain == default_toolchain) {
"//components/embedder_support/android:simple_factory_key_java",
"//components/embedder_support/android:util_java",
"//components/embedder_support/android:web_contents_delegate_java",
"//components/environment_integrity/android:java",
"//components/external_intents/android:java",
"//components/external_intents/android:test_support_java",
"//components/externalauth/android:java",
@ -1787,7 +1808,6 @@ if (current_toolchain == default_toolchain) {
"//components/paint_preview/player/android:java",
"//components/paint_preview/player/android:javatests",
"//components/password_manager/core/browser:password_manager_java_enums",
"//components/password_manager/core/browser:unified_password_manager_proto_java",
"//components/payments/content/android:java",
"//components/payments/content/android:payments_java_test_support",
"//components/payments/content/android:service_java",
@ -1848,7 +1868,6 @@ if (current_toolchain == default_toolchain) {
"//services/service_manager/public/java:service_manager_java",
"//third_party/android_deps:com_google_code_findbugs_jsr305_java",
"//third_party/android_deps:espresso_java",
"//third_party/android_deps:guava_android_java",
"//third_party/android_deps:material_design_java",
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/android_deps/local_modifications/preconditions/javatests",
@ -2090,6 +2109,7 @@ if (current_toolchain == default_toolchain) {
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrCardboardDeviceTest.java",
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrCardboardInputTest.java",
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrCardboardPermissionTest.java",
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrCardboardQrCodeTest.java",
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrCardboardTabTest.java",
"javatests/src/org/chromium/chrome/browser/vr/WebXrVrCardboardTransitionTest.java",
"javatests/src/org/chromium/chrome/browser/vr/rules/ChromeTabbedActivityVrCardboardTestRule.java",
@ -2504,7 +2524,7 @@ if (current_toolchain == default_toolchain) {
}
chrome_public_bundle("chrome_public_bundle") {
bundle_name = "Thorium_Public"
bundle_name = "Thorium_Public_Bundle"
}
android_library("monochrome_java") {
@ -2853,12 +2873,11 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/password_manager/android/pwd_migration:javatests",
"//chrome/browser/recent_tabs/internal:recent_tabs_javatests",
"//chrome/browser/subresource_filter:subresource_filter_javatests",
"//chrome/browser/touch_to_fill/android:test_java",
"//chrome/browser/touch_to_fill/no_passkeys/internal/android:javatests",
"//chrome/browser/touch_to_fill/password_generation/android/internal:javatests",
"//chrome/browser/touch_to_fill/payments/android/internal:javatests",
"//chrome/browser/touch_to_fill/autofill/android/internal:javatests",
"//chrome/browser/touch_to_fill/password_manager/android:test_java",
"//chrome/browser/touch_to_fill/password_manager/no_passkeys/internal/android:javatests",
"//chrome/browser/touch_to_fill/password_manager/password_generation/android/internal:javatests",
"//chrome/browser/ui/android/fast_checkout/internal:javatests",
"//chrome/browser/ui/android/omnibox:javatests",
"//chrome/browser/ui/android/webid/internal:javatests",
]
@ -3124,20 +3143,16 @@ if (current_toolchain == default_toolchain) {
]
}
script_test("monochrome_webview_finch_smoke_tests") {
script = "//testing/scripts/run_finch_smoke_tests_android.py"
data_deps = [
"//android_webview/tools/system_webview_shell:system_webview_shell_apk",
"//chrome/android:monochrome_public_apk",
"//third_party/blink/tools:wpt_tests_android_isolate",
]
}
script_test("chrome_public_wpt") {
script = "//third_party/blink/tools/run_wpt_tests.py"
args = [
"--product",
"chrome_android",
"--test-type",
"testharness",
"reftest",
"crashtest",
"print-reftest",
"--zero-tests-executed-ok",
"--browser-apk",
"@WrappedPath(apks/ChromePublic.apk)",
@ -3687,6 +3702,7 @@ source_set("chrome_test_util") {
sources = [
"javatests/src/custom_tabs_test_utils.cc",
"javatests/src/federated_identity_test_utils.cc",
"javatests/src/pwa_restore_bottom_sheet_test_utils.cc",
]
deps = [
":chrome_test_util_jni",
@ -3729,8 +3745,8 @@ group("jni_headers") {
"//chrome/browser/search_engines/android:jni_headers",
"//chrome/browser/segmentation_platform:jni_headers",
"//chrome/browser/tab:jni_headers",
"//chrome/browser/touch_to_fill/android:jni_headers",
"//chrome/browser/touch_to_fill/payments/android:jni_headers",
"//chrome/browser/touch_to_fill/autofill/android:jni_headers",
"//chrome/browser/touch_to_fill/password_manager/android:jni_headers",
"//chrome/browser/ui/android/fast_checkout:jni_headers",
"//chrome/browser/ui/android/favicon:jni_headers",
"//chrome/browser/ui/android/hats:jni_headers",

View file

@ -480,7 +480,6 @@ template("chrome_common_apk_or_module_tmpl") {
if (_is_monochrome) {
# WebView needs these in the base module.
deps += [
"//components/environment_integrity/android:integrity_service_bridge_public_impl_java",
"//content/public/android:identity_credentials_public_impl_java",
]
}

View file

@ -100,6 +100,14 @@ const FeatureEntry::Choice kForceGpuMemAvailableMbChoices[] = {
"force-gpu-mem-available-mb", "1024"},
};
const FeatureEntry::Choice kGtkVersionChoices[] = {
{flags_ui::kGenericExperimentChoiceDefault, "", ""},
{"3",
kGtkVersionFlag, "3"},
{"4",
kGtkVersionFlag, "4"},
};
const FeatureEntry::Choice kTabHoverCardChoices[] = {
{flags_ui::kGenericExperimentChoiceDefault, "", ""},
{"None",

View file

@ -111,6 +111,10 @@
"Toggle whether the GL backend is used for VAAPI video decode acceleration. "
"Enabled by default, but may break some configurations. Thorium flag.",
kOsLinux, FEATURE_VALUE_TYPE(media::kVaapiVideoDecodeLinuxGL)},
{"gtk-version",
"Choose the GTK Version",
"Choose whether to use the GTK3 or GTK4 backend. It should match the default GTK used by the system.",
kOsLinux, MULTI_VALUE_TYPE(kGtkVersionChoices)},
{"vaapi-on-nvidia-gpus",
"VAAPI on Nvidia GPUs",
"Toggle whether VAAPI is enabled when proprietary Nvidia Drivers are installed. "

View file

@ -438,35 +438,6 @@ CHAR_LIMIT guidelines:
Automatically sends usage statistics and crash reports to Google
</message>
<!-- Metrics settings -->
<message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Thorium uploads. [CHAR_LIMIT=32]">
Usage data
</message>
<message name="IDS_MANAGE_METRICS_SETTINGS" desc="The text for a preferences row to open metrics settings.">
Manage usage data sharing
</message>
<message name="IDS_METRICS_SETTINGS_DESCRIPTION" desc="The text describing what the metrics settings page controls.">
Choose what youre comfortable to share with Thorium. The metrics you share will be used to help improve Thoriums features, performance, and stability.
</message>
<message name="IDS_METRICS_SETTINGS_EXTENDED_TITLE" desc="Title for the extended metrics option.">
Extended usage data
</message>
<message name="IDS_METRICS_SETTINGS_EXTENDED_SUMMARY" desc="Description text for 'Extended usage data' option in Usage data settings that enables extended metrics collection. Other options are 'Basic usage data' and 'No usage data'.">
Basic data plus information about the websites you visit and apps you use
</message>
<message name="IDS_METRICS_SETTINGS_BASIC_TITLE" desc="Title for the basic metrics option.">
Basic usage data
</message>
<message name="IDS_METRICS_SETTINGS_BASIC_SUMMARY" desc="Description text for 'Basic usage data' option in Usage data settings that enables basic metrics collection. Other options are 'Extended usage data' and 'No usage data'.">
How you interact with Thorium, settings youve selected, details of Thorium crashes
</message>
<message name="IDS_METRICS_SETTINGS_NONE_TITLE" desc="Title for no metrics option.">
No usage data
</message>
<message name="IDS_METRICS_SETTINGS_NONE_SUMMARY" desc="Description text for 'No usage data' option in Usage data settings that disables metrics collection. Other options are 'Extended usage data' and 'Basic usage data'.">
No statistics or crash reports are sent to Google
</message>
<!-- Search engine settings -->
<message name="IDS_SEARCH_ENGINE_SETTINGS" desc="Title for Search Engine settings. [CHAR_LIMIT=32]">
Search engine
@ -595,6 +566,15 @@ CHAR_LIMIT guidelines:
<message translateable="false" name="IDS_AUTOFILL_OPTIONS_TITLE" desc="Description below switch toggling the use of third-party autofill in Thorium." formatter_data="android_java">
Autofill Options
</message>
<message name="IDS_AUTOFILL_DELETE_SAVED_CVCS_CONFIRMATION_DIALOG_TITLE" desc="Title for the dialog where the user confirms their intention to delete their saved CVCs.">
Delete saved security codes?
</message>
<message name="IDS_AUTOFILL_DELETE_SAVED_CVCS_CONFIRMATION_DIALOG_MESSAGE" desc="Message for the dialog where the user confirms their intention to delete their saved CVCs.">
All security codes saved on your device and in your Google Account will be deleted
</message>
<message name="IDS_AUTOFILL_DELETE_SAVED_CVCS_CONFIRMATION_DIALOG_DELETE_BUTTON_LABEL" desc="Label shown on the button that the user clicks on to delete their saved CVCs.">
Delete
</message>
<!-- Payment Request section preview strings -->
<message name="IDS_PAYMENT_REQUEST_PAYMENT_METHODS_PREVIEW" desc="This is a snippet of a payment method a user has saved to Thorium, plus an indication of the number of additional payment methods the user has saved.
@ -961,24 +941,6 @@ For example, some websites may respond to this request by showing you ads that a
<message name="IDS_SETTINGS_AD_PRIVACY_RESTRICTED_LINK_ROW_SUB_LABEL" desc="A string that describes 'Ad privacy', the label that appears just above it. This is the version of IDS_SETTINGS_AD_PRIVACY_PAGE_TOPICS_LINK_ROW_LABEL for restricted users.">
Manage info used by sites to measure ad performance
</message>
<message name="IDS_PRIVACY_SANDBOX_LEARN_MORE_DESCRIPTION_TOPICS_1" desc="TOPICS API Bullet 1 of 3 that appear beneath the “Your interests as estimated by Thorium” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “What data is used:” is bold and serves as a label to help people skimming the page. * “Your browsing history”: The users browsing history is available beneath the “History” menu at Thoriums top level. The Topics API estimates topics of interest based on sites in the users browsing history that are participating in the trials.">
<ph name="BEGIN_BOLD">&lt;b&gt;</ph>What data is used:<ph name="END_BOLD">&lt;/b&gt;</ph> Your browsing history, a record of sites youve visited using Thorium on this device.
</message>
<message name="IDS_PRIVACY_SANDBOX_LEARN_MORE_DESCRIPTION_TOPICS_2" desc="TOPICS API Bullet 2 of 3 that appear beneath the “Your interests as estimated by Thorium” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How we use this data:” is bold and serves as a label to help people skimming the page. * “estimate your interests”: Topics of interest include things like “Live comedy” and “Rock music”. Thorium estimates these interests based on the sites users visit. Its an “estimation”, and we dont want to suggest that we know with certainty the users interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”).">
<ph name="BEGIN_BOLD">&lt;b&gt;</ph>How we use this data:<ph name="END_BOLD">&lt;/b&gt;</ph> Thorium can estimate your interests. Later, a site you visit can ask Thorium to see your interests in order to personalize the ads you see.
</message>
<message name="IDS_PRIVACY_SANDBOX_LEARN_MORE_DESCRIPTION_TOPICS_3" desc="TOPICS API Bullet 3 of 3 that appear beneath the “Your interests as estimated by Thorium” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How you can manage your data:” is bold and serves as a label to help people skimming the page. * “To protect your privacy”: Today, most data is kept for long periods of time. This new Topics API doesnt retain estimated topics for more than 3 weeks. The only reason for this feature is to protect the users privacy. * “auto”: isnt strictly necessary, but it conveys that this feature is an ongoing part of the service. This isnt describing, for example, a one-time deletion. * “older than 4 weeks”: Were trying to convey a rolling delete. Imagine a user opens a browser for the very first time. As the user browses, Thorium will estimate up to 5 topics of interest in the first week. In the second week, Thorium will estimate up to 5 additional topics of interest. The same for the third week, for a total of 15 potential interests. In week 4, Thorium will automatically delete the 5 interests from week 1 so that there arent ever more than 15 topics associated with a user at any given time. * “interests can refresh”: If a user loves horror films and reads about them for months on end, the interest “Horror movies” might get deleted and refreshed in the same week, so that “Horror movies” doesnt ever disappear from the users list of interests. * “Or you can…”: A user might love horror movies but cant stand the idea of seeing ads about horror movies (because even the visuals will ruin the surprise of opening night). In this case, the user can remove “Horror movies” from the list of interests Thorium will consider. This removal remains in place indefinitely. Note that the user might still see ads about Horror movies from different ad networks or by other means than Thoriums “Browser-based ad personalization” setting.">
<ph name="BEGIN_BOLD">&lt;b&gt;</ph>How you can manage your data:<ph name="END_BOLD">&lt;/b&gt;</ph> To protect your privacy, we auto-delete your interests that are older than 4 weeks. As you keep browsing, an interest might appear on the list again. Or you can remove interests you dont want Thorium to consider.
</message>
<message name="IDS_PRIVACY_SANDBOX_LEARN_MORE_DESCRIPTION_FLEDGE_1" desc="FLEDGE APIBullet 1 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “What data is used:” is bold and serves as a label to help people skimming the page. * “Your browsing history”: The users browsing history is available beneath the “History” menu at Thoriums top level. This content taken in isolation is somewhat misleading. With FLEDGE, a site can store information in Thorium about the users visit to their site. For example, the site might store “running_shoes_red_size_35” to indicate that the user showed interest in a particular shoe. Were OK with the simplification in this bullet because 1) we explain it in the next bullet and 2) we want the user to understand that at the top level, both Topics &amp; Fledge are based on the same thing and that is the users browsing history.">
<ph name="BEGIN_BOLD">&lt;b&gt;</ph>What data is used:<ph name="END_BOLD">&lt;/b&gt;</ph> Your browsing history, a record of sites youve visited using Thorium on this device.
</message>
<message name="IDS_PRIVACY_SANDBOX_LEARN_MORE_DESCRIPTION_FLEDGE_2" desc="FLEDGE API Bullet 2 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How we use this data:” is bold and serves as a label to help people skimming the page.">
<ph name="BEGIN_BOLD">&lt;b&gt;</ph>How we use this data:<ph name="END_BOLD">&lt;/b&gt;</ph> Sites can store information with Thorium about your interests. For example, if you visit a site to buy shoes for a marathon, the site might define your interest as running marathons. Later, if you visit a different site to register for a race, that site can show you an ad for running shoes based on your interests.
</message>
<message name="IDS_PRIVACY_SANDBOX_LEARN_MORE_DESCRIPTION_FLEDGE_3" desc="FLEDGE API Bullet 3 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How you can manage your data:” is bold and serves as a label to help people skimming the page. * “To protect your privacy”: Today, most data is kept for long periods of time. This new Topics API doesnt retain estimated topics for more than 3 weeks. The only reason for this feature is to protect the users privacy. * “auto”: isnt strictly necessary, but it conveys that this feature is an ongoing part of the service. This isnt describing, for example, a one-time deletion. * “older than 4 weeks”: Were trying to convey a rolling delete. Imagine a user opens a browser for the very first time. As the user browses, sites can store info with Thorium for up to 4 weeks. So in week 1, the user visits site A. When week 5 starts, site A is removed from the list of sites. * “a site you visit…”: If a user visits site A every week for months on end, that site will remain on the users list of sites for months on end. * “Or you can…”: Say a user strongly dislikes www.siteB.com. But that user might visit siteB.com as part of their job, or just to see how bad it really is. The user can stop siteB from defining interests for them. This block lasts indefinitely.">
<ph name="BEGIN_BOLD">&lt;b&gt;</ph>How you can manage your data:<ph name="END_BOLD">&lt;/b&gt;</ph> To protect your privacy, we auto-delete sites from the list that are older than 4 weeks. A site you visit again might appear on the list again. Or you can remove a site if you dont want that site to ever define interests for you.
</message>
<message name="IDS_PRIVACY_SANDBOX_ADD_INTEREST_BUTTON_DESCRIPTION" desc="Content description for button that adds an ad interest for the Topics API of the Privacy Sandbox.">
Add <ph name="INTEREST">%1$s<ex>Acting and Theater</ex></ph>
</message>
@ -986,65 +948,6 @@ For example, some websites may respond to this request by showing you ads that a
Remove <ph name="INTEREST">%1$s<ex>Acting and Theater</ex></ph>
</message>
<!-- Privacy Sandbox dialog. -->
<message name="IDS_PRIVACY_SANDBOX_DIALOG_NO_BUTTON" desc="A button that allows the user to decline joining the Privacy Sandbox trials. If the user chooses “No thanks” this consent page disappears and the flow is complete.">
No thanks
</message>
<message name="IDS_PRIVACY_SANDBOX_DIALOG_YES_BUTTON" desc="A button that allows the user to accept joining the Privacy Sandbox trials. If the user chooses “Yes, Im in”: 1) this consent page disappears and the flow is complete 2) The Privacy Sandbox trials are turned on for this user. These features include everything described above. The page that hosts the settings will appear at chrome://settings/privacySandbox. Saying “Yes, Im in” is like turning the toggle on. “No thanks” is like keeping the toggle off.">
Yes, Im in
</message>
<message name="IDS_PRIVACY_SANDBOX_DIALOG_ACKNOWLEDGE_BUTTON" desc="The user can acknowledge the changes with “Got it”. This consent page disappears and the flow is complete.">
Got it
</message>
<message name="IDS_PRIVACY_SANDBOX_DIALOG_SETTINGS_BUTTON" desc="The user can choose “Settings” to visit chrome://settings/privacySandbox. If they do, theyll find the toggle on for Sandbox trials, which include everything theyve read above. They can leave trials on or turn them off on this page. Choosing “Settings”, the user will navigate away from this page and wont be able to return here.">
Settings
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_TITLE" desc="CONTEXT: there are updates to the Thorium browser each month. Just after the user accepts the latest update, this message will appear. The user must make a choice, and this page cant be dismissed until they do. The title of the page. * The title needs to be framed so that clicking the accept button makes sense * “Help us” is intended to convey a sense of collaboration. Privacy Sandbox is an ongoing multi-year effort. There are sites participating to help us and we also need users to agree to these trials so that we can measure the effectiveness of the features we're building. * “build” is intended to convey that this is a process. The user is agreeing to an effort rather than a stable set of features. Something like “make” doesn't have the same nuance. * “private web” is the promise of privacy sandbox.">
Help us build a more private web
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_SUBTITLE" desc="A subtitle on the consent page. Consider this a tagline for the Privacy Sandbox project. * “exploring” conveys that this is a work in progress. * “new features” include settings that the user can turn on/off and also backend features that change the way Thorium works for everyone * “allow sites to deliver”: Privacy Sandbox is proposed by Google as a collaborative effort with the browser industry. Were building and testing functionality that will live in the Thorium browser. In order to land the full promise of Privacy Sandbox, websites &amp; advertisers need to adopt the new APIs / functionality that were developing. So “allow sites…” makes it clear to the user that were building something for the ecosystem. Typically a Google product builds something for the user, and thats true in this case, but its bigger than that. * “same browsing experience using less of your info”: Another definition of the promise of Privacy Sandbox. Third-party cookies are going away. In this new world, the user will have essentially the same browsing experience but its more private because it doesnt expose so much of the users info.">
Thorium is exploring new features that allow sites to deliver the same browsing experience using less of your info
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_HEADING_ONE" desc="1 of 2 subtitles on the page. We want to write for users who skim the page. That means that the page title, the sub titles, and the button label all work well together as a mini story: 1) Help us build a more private web How? 2) Limit sharing between sites 3) More control over the ads you see 4) Yes, Ill try it">
Limited sharing between sites
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_DESCRIPTION_ONE" desc="The description beneath the “Limited sharing between sites” subtitle. * “exploring” conveys that this is a work in progress. * “restrict” means to lessen. We dont want to suggest that were “eliminating” cross-site tracking. * “tracking”: An example: a user visits site A and then site B. Based on how third-party cookies work today, when that user later visits site C, site C can be aware that the user visited sites A and B, and can even have some sense for what they did on those sites. * “stop ad spam and fraud”: This feature isnt really related to restricting cross-site tracking but we combined these features in the same sentence / section for structural reasons.">
Were exploring ways to restrict tracking while enabling sites to stop ad spam and fraud.
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_HEADING_TWO" desc="2 of 2 subtitles on the page. We want to write for users who skim the page. That means that the page title, the sub titles, and the button label all work well together as a mini story: 1) Help us build a more private web How? 2) Limit sharing between sites 3) More control over the ads you see 4) Yes, Ill try it">
More control over the ads you see
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_DESCRIPTION_TWO" desc="A paragraph beneath the “More control over the ads you see” subtitle. * “see and remove topics of interests”: we want to stress the element of control * “estimate topics”: Topics of interest include things like “Live comedy” and “Rock music”. Thorium estimates these interests based on the sites users visit. Its an “estimation”, and we dont want to suggest that we know with certainty the users interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “recent browsing history”: Later in the UI, we define this as “a record of sites youve visited using Thorium on this device.” By “recent”, we mean the last 3 weeks (also defined later in the UI).">
You can see and remove topics of interest sites use to show you ads. Thorium estimates your interests based on your recent browsing history.
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_DROPDOWN_BUTTON" desc="Learn more link * Unfolds content within the page * The text that appears describes 2 ways in which a site can target ads: the “Topics API” and the “FLEDGE API”. You can see what those are at www.privacysanbox.com or theyre described for the users benefit in other text. * “ad personalization” can mean different things in different contexts. Here, were using it as a simple noun. In other words, its not the name of a control but a descriptive term used to describe the personalization of ads in the Thorium browser. This “ad personalization” shouldnt be confused with the setting in the Google Account called “Ad personalization”.">
Learn more about ad personalization in Thorium
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_DROPDOWN_TOPICS_HEADING" desc="TOPICS API A sub title that describes the first of 2 ways a site can get info from Thorium in order to target ads to the user. Topics of interest include things like “Live comedy” and “Rock music”. Thorium estimates these interests based on the sites users visit. * “Your”: we need to convey a sense of ownership, even if the user didnt explicitly choose the interests were talking about. Without the “your”, it could sound like Thorium is simply building a generic library of interests. * “estimated”: Its an “estimation”, and we dont want to suggest that we know with certainty the users interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “by Thorium”: This is new behavior for a browser (Thorium) to take an active role in processing user data for the purposes of showing ads. Its important to convey “chrome”, the actor in this case.">
Your interests as estimated by Thorium
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_DROPDOWN_FLEDGE_HEADING" desc="FLEDGE API. A sub title that describes the second of 2 ways a site can get info from Thorium in order to target ads to the user.">
Sites you visit that define your interests
</message>
<message name="IDS_PRIVACY_SANDBOX_CONSENT_DESCRIPTION_THREE" desc="A conclusion paragraph for the entire page. It sits beneath the “More control over the ads you see” subtitle but its no more associated with that topic than “Limit sharing between sites”. * “You can change your mind”: When writing a consent moment, we have a legal obligation to inform the user how they can “revoke their consent” or “opt out”. A friendlier way to say this is “change your mind”. * “in Thorium settings”: The URL is chrome://settings/privacySandbox. We dont make it a live link because we need the users to stay in this moment until they make a choice. * “The trials run alongside…”: The trials happen in addition to todays current system based on third-party cookies. In other words, even by accepting in this consent moment, the users core experience doesnt change much. This is an experiment, and we need the user to understand as much.">
You can change your mind at any time in Thorium settings. The trials run alongside the current way ads get served, so you wont see changes right away.
</message>
<message name="IDS_PRIVACY_SANDBOX_NOTICE_DESCRIPTION_THREE" desc="A conclusion paragraph for the entire page. It sits beneath the “More control over the ads you see” subtitle but its no more associated with that topic than “Limit sharing between sites”.* “in Thorium settings”: The URL is chrome://settings/privacySandbox. We dont make it a live link because we need the users to stay in this moment until they make a choice.">
You can learn more about these features in Thorium settings.
</message>
<message name="IDS_PRIVACY_SANDBOX_NOTICE_SHEET_OPENED_HALF" desc="The accessibility string read when the Privacy Sandbox prompt bottom sheet is half opened.">
Privacy Sandbox prompt opened at half height
</message>
<message name="IDS_PRIVACY_SANDBOX_NOTICE_SHEET_OPENED_FULL" desc="The accessibility string read when the Privacy Sandbox prompt bottom sheet is fully opened.">
Privacy Sandbox prompt opened at full height
</message>
<message name="IDS_PRIVACY_SANDBOX_NOTICE_SHEET_CLOSED_DESCRIPTION" desc="The accessibility string read when the Privacy Sandbox prompt bottom sheet is closed.">
Privacy Sandbox prompt closed
</message>
<message name="IDS_PRIVACY_SANDBOX_NOTICE_SHEET_TITLE" desc="CONTEXT: there are updates to the Thorium browser each month. Just after the user accepts the latest update, this message will appear. The title of the page. * “Help us” is intended to convey a sense of collaboration. Privacy Sandbox is an ongoing multi-year effort. There are sites participating to help us and we also need users to agree to these trials so that we can measure the effectiveness of the features we're building. * “build” is intended to convey that this is a process. The user is agreeing to an effort rather than a stable set of features. Something like “make” doesn't have the same nuance. * See www.privacysandbox.com for more context.">
Help us build a better web
</message>
<!-- 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: 'Were 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 **** Thoriums 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. ">
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.
@ -1557,7 +1460,7 @@ Your Google account may have other forms of browsing history like searches and a
<!-- Tracking protection -->
<message name="IDS_TRACKING_PROTECTION_TITLE" desc="Tracking Protection preference item title.">
Tracking protection
Tracking Protection
</message>
<message name="IDS_TRACKING_PROTECTION_SUMMARY" desc="Tracking Protection preference item summary.">
Manage third-party cookies and tracking protections
@ -2882,27 +2785,27 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_DOWNLOAD_MANAGER_UI_OTHER" desc="Indicates that clicking on this button shows any downloads that don't fit in the other categories.">
Other
</message>
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_GENERIC" desc="Content description for the All chip, clicking on which will show all of your downloads.">
{FILE_COUNT, plural, =1 {# File} other {# Files}}
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_ALL" desc="Content description for the All chip, clicking on which will show all of your downloads.">
{FILE_COUNT, plural, =1 {All files, 1 file in list} other {All files, # files in list}}
</message>
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_OTHER" desc="Content description for the Other chip, clicking on which will show all the downloaded files that aren't images, videos, audios or offline pages.">
{FILE_COUNT, plural, =1 {Other 1 file in list} other {Other # files in list}}
</message>
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_IMAGES" desc="Content description for the Images chip, clicking on which will show all the downloaded images.">
{FILE_COUNT, plural, =1 {# Image} other {# Images}}
{FILE_COUNT, plural, =1 {Images, 1 image in list} other {Images, # images in list}}
</message>
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_VIDEO" desc="Content description for the Video chip, clicking on which will show all the downloaded videos.">
{FILE_COUNT, plural, =1 {# Video} other {# Videos}}
{FILE_COUNT, plural, =1 {Videos, 1 video in list} other {Videos, # videos in list}}
</message>
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_AUDIO" desc="Content description for the Audio chip, clicking on which will show all the downloaded audio files.">
{FILE_COUNT, plural, =1 {# Audio file} other {# Audio files}}
{FILE_COUNT, plural, =1 {Audio files, 1 audio file in list} other {Audio files, # audio files in list}}
</message>
<message name="IDS_ACCESSIBILITY_DOWNLOAD_MANAGER_UI_PAGES" desc="Content description for the Pages chip, clicking on which will show all the downloaded offline pages.">
{FILE_COUNT, plural, =1 {# Page} other {# Pages}}
{FILE_COUNT, plural, =1 {Pages, 1 page in list} other {Pages, # pages in list}}
</message>
<message name="IDS_DOWNLOAD_PAGE" desc="Download this page.">
Download this page
</message>
<message name="IDS_DOWNLOAD_MANAGER_NO_DOWNLOADS" desc="Text appearing on an empty tab that indicates that downloaded files appear on this tab.">
Files that you download appear here
</message>
<message name="IDS_DOWNLOAD_MANAGER_NO_DOWNLOADS_EMPTY_STATE" desc="Text appearing on an empty tab that indicates that downloaded files appear on this tab.">
Youll find your downloads here
</message>
@ -3030,10 +2933,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Thorium First Run Experience
</message>
<message name="IDS_LIGHTWEIGHT_FRE_ASSOCIATED_APP_TOS" desc="Message explaining that use of Thorium is governed by Thorium's terms of service.">
<ph name="APP_NAME">%1$s<ex>Google Maps</ex></ph> will open in Thorium. By continuing, you agree to the <ph name="BEGIN_LINK1">&lt;LINK1&gt;</ph>Google Terms of Service<ph name="END_LINK1">&lt;/LINK1&gt;</ph>, and the <ph name="BEGIN_LINK2">&lt;LINK2&gt;</ph>Thorium and ThoriumOS Additional Terms of Service<ph name="END_LINK2">&lt;/LINK2&gt;</ph>.
<ph name="APP_NAME">%1$s<ex>Google Maps</ex></ph> will open in Thorium. By continuing, you agree to the <ph name="BEGIN_LINK1">&lt;LINK1&gt;</ph>Google Terms of Service<ph name="END_LINK1">&lt;/LINK1&gt;</ph>, and the <ph name="BEGIN_LINK2">&lt;LINK2&gt;</ph>Google Thorium and ThoriumOS Additional Terms of Service<ph name="END_LINK2">&lt;/LINK2&gt;</ph>.
</message>
<message name="IDS_LIGHTWEIGHT_FRE_ASSOCIATED_APP_TOS_AND_PRIVACY_CHILD_ACCOUNT" desc="Message explaining that use of Thorium is governed by Thorium's terms of service, and the Google Privacy Policy.">
<ph name="APP_NAME">%1$s<ex>Google Maps</ex></ph> will open in Thorium. By continuing, you agree to the <ph name="BEGIN_LINK1">&lt;LINK1&gt;</ph>Google Terms of Service<ph name="END_LINK1">&lt;/LINK1&gt;</ph>, and the <ph name="BEGIN_LINK2">&lt;LINK2&gt;</ph>Thorium and ThoriumOS Additional Terms of Service<ph name="END_LINK2">&lt;/LINK2&gt;</ph>. The <ph name="BEGIN_LINK3">&lt;LINK3&gt;</ph>Privacy Policy<ph name="END_LINK3">&lt;/LINK3&gt;</ph> also applies.
<ph name="APP_NAME">%1$s<ex>Google Maps</ex></ph> will open in Thorium. By continuing, you agree to the <ph name="BEGIN_LINK1">&lt;LINK1&gt;</ph>Google Terms of Service<ph name="END_LINK1">&lt;/LINK1&gt;</ph>, and the <ph name="BEGIN_LINK2">&lt;LINK2&gt;</ph>Google Thorium and ThoriumOS Additional Terms of Service<ph name="END_LINK2">&lt;/LINK2&gt;</ph>. The <ph name="BEGIN_LINK3">&lt;LINK3&gt;</ph>Privacy Policy<ph name="END_LINK3">&lt;/LINK3&gt;</ph> also applies.
</message>
<message name="IDS_FRE_ACCEPT_CONTINUE" desc="Text for first page accept and continue button [CHAR_LIMIT=20]">
Accept &amp; continue
@ -3076,21 +2979,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SIGNIN_FRE_UMA_DIALOG_SECOND_SECTION_BODY" desc="Text with info about the data that users share with Google if they turn on the metric sharing option.">
Info is sent to Google about your Thorium usage, but it isn\u2019t tied to you\n\nIf Thorium crashes, details about the crash may include some personal info\n\nIf you turn on sync, metrics may also include info about URLs you visit
</message>
<message name="IDS_SIGNIN_FRE_SUBTITLE_VARIATION_1" desc="Subtitle shown below a welcoming title on the very first screen after opening Thorium for the first time. Asks the user to sign in to Thorium with their Google Account to use additional features that are only available to signed-in users. Try to limit translations to 50 characters. Do not exceed 75 characters.">
Sign in to get the most out of Thorium
</message>
<message name="IDS_SIGNIN_FRE_SUBTITLE_VARIATION_2" desc="Subtitle shown below a welcoming title on the very first screen after opening Thorium for the first time. Asks the user to sign in to Thorium with their Google Account to use additional features that are only available to signed-in users. Try to limit translations to 50 characters. Do not exceed 75 characters.">
Sign in for additional features
</message>
<message name="IDS_SIGNIN_FRE_SUBTITLE_VARIATION_3" desc="Subtitle shown below a welcoming title on the very first screen after opening Thorium for the first time. Asks the user to sign in to Thorium with their Google Account to get more useful features when they're signed in across multiple devices (like phones and computers). Try to limit translations to 50 characters. Do not exceed 75 characters.">
<message name="IDS_SIGNIN_FRE_SUBTITLE" desc="Subtitle shown below a welcoming title on the very first screen after opening Thorium for the first time. Asks the user to sign in to Thorium with their Google Account to get more useful features when they're signed in across multiple devices (like phones and computers). Try to limit translations to 50 characters. Do not exceed 75 characters.">
Sign in to browse easier across devices
</message>
<message name="IDS_SIGNIN_FRE_TITLE_VARIATION_1" desc="Title shown on the very first screen after opening Thorium for the first time. Asks the user to sign in to Thorium with their Google Account to use additional features that are only available to signed-in users. Try to limit translations to 40 characters. Do not exceed 50 characters.">
Sign in to get the most out of Thorium
</message>
<message name="IDS_SIGNIN_FRE_TITLE_VARIATION_2" desc="Title shown on the very first screen after opening Thorium for the first time. Asks the user to sign in to Thorium with their Google Account, so they can personalize and customize Thorium and remember their settings in their Google Account. Try to limit translations to 40 characters. Do not exceed 50 characters.">
Sign in to make Thorium your own
</message>
<message name="IDS_FRE_SIGNING_IN" desc="Text to show below a progress spinner in the signin FRE to notify the user that signing in is in progress.">
Signing in\u2026
</message>
@ -3189,6 +3080,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SIGNIN_ACCEPT_BUTTON" desc="Text for the confirmation button in the sign-in screen. By clicking this button users signs in and turns on Sync. [CHAR_LIMIT=20]">
Yes, I'm in
</message>
<message name="IDS_SIGNIN_SYNC_DECLINE_BUTTON" desc="Text for the decline button in the sign-in and sync screen. By clicking this button the user refuses to sign in and turn on Sync. [CHAR_LIMIT=20]" meaning= "This text means that the user refuses to sign in and turn on sync by clicking on this button.">
No thanks
</message>
<message name="IDS_SIGNIN_ACCOUNT_PICKER_DIALOG_TITLE" desc="The title for the dialog that shows the list of accounts on the device and asks the user to select one of these accounts. [CHAR_LIMIT=27]">
Choose an account
</message>
@ -3790,9 +3684,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_BOOKMARKS" desc="Title of the bookmarks page, which shows a list of the user's bookmarks. [CHAR_LIMIT=18]">
Bookmarks
</message>
<message name="IDS_BOOKMARKS_FOLDER_EMPTY" desc="Text explaining that the currently selected bookmarks folder is empty.">
Pages that you bookmark appear here
</message>
<message name="IDS_NO_BOOKMARKS" desc="Text describing that there is no bookmarks in a bookmark folder.">
No bookmarks
</message>
@ -4053,9 +3944,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_READING_LIST_FIND_IN_BOOKMARKS" desc="The text to inform the user to find the reading list in bookmarks UI.">
Find your reading list in Bookmarks
</message>
<message name="IDS_READING_LIST_EMPTY_LIST_TITLE" desc="The text on reading list page when there are no reading list items informing user that reading list is supposed to appear on this surface.">
Youll find your reading list here
</message>
<!-- Offline pages -->
<message name="IDS_OFFLINE_PAGES_VIEWING_OFFLINE_PAGE" desc="Text explaining that the user is viewing an offline copy of a web page.">
@ -4286,6 +4174,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_ACCESSIBILITY_OMNIBOX_MOST_VISITED_TILE_NAVIGATE" desc="Announces that interacting with a Tile takes the user to specific website.">
Navigate: <ph name="WEBSITE_TITLE">%1$s<ex>Crater Lake National Park (U.S. National Park Service)</ex></ph>: <ph name="WEBSITE_URL">%2$s<ex>https://www.nps.gov/crla</ex></ph>
</message>
<message name="IDS_ACCESSIBILITY_OMNIBOX_MOST_VISITED_LIST" desc="Category name of the most visited sites. Announced as: 'amazon.com, 1 of 10 in list Most Visited Sites, 10 items.'">
Most visited sites
</message>
<message name="IDS_ACCESSIBILITY_OMNIBOX_QUERY_TILES_LIST" desc="Category name of the most visited sites. Announced as: 'News, 1 of 10 in list Query Tiles, 10 items.'">
Query tiles
</message>
<message name="IDS_ACCESSIBILITY_SHARE_SELECTED_ITEMS" desc="Content description for the button to share selected items. [ICU Syntax]">
{NUM_SELECTED, plural,
@ -4473,7 +4367,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Page insights Loading Indicator
</message>
<message name="IDS_PAGE_INSIGHTS_HUB_PRIVACY_NOTICE" desc="Text that displays privacy notice for page insights hub">
Your activity is saved in your <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google Account<ph name="END_LINK">&lt;/link&gt;</ph>.
Your activity in Page Insights is saved in your <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google Account<ph name="END_LINK">&lt;/link&gt;</ph>.
</message>
<message name="IDS_PAGE_INSIGHTS_HUB_MY_ACTIVITY_LOGO" desc="Logo of privacy notice for page insights hub">
Logo of privacy notice for page insights hub which redirects to my activity page.
@ -4636,9 +4530,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_WEBAPP_TAP_TO_COPY_URL" desc="Message on the notification that indicates that taping it will copy a Web App's URL into the clipboard.">
Tap to copy the URL for this app
</message>
<message name="IDS_WEBAPK_OFFLINE_DIALOG" desc="The message on the dialog shown when launching a WebAPK needs network connection.">
To use <ph name="APP_NAME">%1$s<ex>PWA List</ex></ph> for the first time, please connect to the internet.
</message>
<message name="IDS_WEBAPK_NOTIFICATION_CHANNEL_NAME" desc="The visible name of the notification channel of WebAPKs on Android O+.">
General
</message>
@ -4704,14 +4595,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_KEYBOARD_SHORTCUT_RELOAD_NO_CACHE" desc="A text label that appears next to the keyboard shortcut that will reload the current page without a cache. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
Reload the current page, ignoring cached content
</message>
<message name="IDS_KEYBOARD_SHORTCUT_HELP_CENTER" desc="A text label that appears next to the keyboard shortcut that will open the Thorium Help Center in a new tab. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
<message name="IDS_KEYBOARD_SHORTCUT_HELP_CENTER" desc="A text label that appears next to the keyboard shortcut that will open the Google Thorium Help Center in a new tab. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
Open the Thorium Help Center in a new tab
</message>
<message name="IDS_KEYBOARD_SHORTCUT_TAB_GROUP_HEADER" desc="A text label that appears above a list of shortcuts that are related to the tab window. This group is part of several groups of keyboard shortcuts all shown in a dialog.">
Tab and window shortcuts
</message>
<message name="IDS_KEYBOARD_SHORTCUT_CHROME_FEATURE_GROUP_HEADER" desc="A text label that appears above a list of shortcuts that are related to the Thorium app features. This group is part of several groups of keyboard shortcuts all shown in a dialog.">
Thorium feature shortcuts
Google Thorium feature shortcuts
</message>
<message name="IDS_KEYBOARD_SHORTCUT_WEBPAGE_GROUP_HEADER" desc="A text label that appears above a list of shortcuts that are related to manipulation of the current tab window. This group is part of several groups of keyboard shortcuts all shown in a dialog.">
Webpage shortcuts
@ -5162,7 +5053,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_CABLEV2_ACTIVITY_TITLE"
desc="The label of the Activity for using your phone as a security key. A 'security key' in this context is generally a small USB device that is used for logging into websites. This feature allows Thorium on an Android phone to act as a security key. A user may see it in Android permissions prompts (see screenshot).">
Thorium as a Security Key
Google Thorium as a Security Key
</message>
<message name="IDS_CABLEV2_REGISTRATION_SUCCEEDED"
@ -5574,10 +5465,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Save up to 60% data
</message>
<message name="IDS_CHROME_REENGAGEMENT_NOTIFICATION_2_DESCRIPTION" desc="The body text of a notification shown to suggest that users use Thorium. Users probably have not opened Thorium in a while. Promotes data savings.">
Use Lite mode on Thorium
Use Lite mode on Google Thorium
</message>
<message name="IDS_CHROME_REENGAGEMENT_NOTIFICATION_3_TITLE" desc="The title of a notification shown to suggest that users use Thorium. Users probably have not opened Thorium in a while.">
Alex313031 recommends Thorium
Google recommends Thorium
</message>
<message name="IDS_CHROME_REENGAGEMENT_NOTIFICATION_3_DESCRIPTION" desc="The title of a notification shown to suggest that users use Thorium. Users probably have not opened Thorium in a while. Promotes data savings and relevant news.">
Save up to 60% data, read today's news
@ -6013,6 +5904,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_PLUS_ADDRESS_BOTTOM_SHEET_CONTENT_DESCRIPTION" desc="Accessibility string read when the plus address bottom sheet is opened." is_accessibility_with_no_ui="true">
Lorem Ipsum
</message>
<message name="IDS_READALOUD_VOICE_PREVIEW_MESSAGE" desc="String to be read aloud when a voice's preview button is clicked as a demonstration of how that voice sounds. It also explains how to select the voice by clicking the menu item.">
Here are the voices you can pick for reading out your web pages. If you like this voice and want me to keep using it just tap the voice name.
</message>
</messages>
</release>
</grit>

View file

@ -963,11 +963,11 @@ void VariationsService::OverridePlatform(
osname_server_param_override_ = osname_server_param_override;
}
std::string VariationsService::GetOverriddenPermanentCountry() {
std::string VariationsService::GetOverriddenPermanentCountry() const {
return local_state_->GetString(prefs::kVariationsPermanentOverriddenCountry);
}
std::string VariationsService::GetStoredPermanentCountry() {
std::string VariationsService::GetStoredPermanentCountry() const {
const std::string variations_overridden_country =
GetOverriddenPermanentCountry();
if (!variations_overridden_country.empty())

View file

@ -1,4 +1,4 @@
// Copyright 2024 The Chromium Authors, Alex313031, and Midzer
// Copyright 2024 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.
@ -69,15 +69,21 @@ SupplementalProfileCache<AudioType>* GetSupplementalAudioTypeCache() {
return cache.get();
}
bool IsSupportedHdrMetadata(const gfx::HdrMetadataType& hdr_metadata_type) {
switch (hdr_metadata_type) {
bool IsSupportedHdrMetadata(const VideoType& type) {
switch (type.hdr_metadata_type) {
case gfx::HdrMetadataType::kNone:
return true;
case gfx::HdrMetadataType::kSmpteSt2086:
return base::FeatureList::IsEnabled(kSupportSmpteSt2086HdrMetadata);
// HDR metadata is currently only used with the PQ transfer function.
// See gfx::ColorTransform for more details.
return type.color_space.transfer ==
VideoColorSpace::TransferID::SMPTEST2084;
case gfx::HdrMetadataType::kSmpteSt2094_10:
#if BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
return type.codec == VideoCodec::kDolbyVision;
#endif
case gfx::HdrMetadataType::kSmpteSt2094_40:
return false;
}
@ -316,8 +322,9 @@ bool IsSupportedVideoType(const VideoType& type) {
// TODO(chcunningham): Add platform specific logic for Android (move from
// MimeUtilInternal).
bool IsDefaultSupportedVideoType(const VideoType& type) {
if (!IsSupportedHdrMetadata(type.hdr_metadata_type))
if (!IsSupportedHdrMetadata(type)) {
return false;
}
#if !BUILDFLAG(USE_PROPRIETARY_CODECS)
if (IsVideoCodecProprietary(type.codec))

View file

@ -1,4 +1,4 @@
// Copyright 2024 The Chromium Authors, Alex313031, and Midzer
// Copyright 2024 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.
@ -14,6 +14,7 @@
#include "media/base/decoder_buffer.h"
#include "media/base/encryption_scheme.h"
#include "media/base/media_util.h"
#include "media/base/supported_types.h"
#include "media/base/video_aspect_ratio.h"
#include "media/base/video_color_space.h"
#include "media/base/video_decoder_config.h"
@ -54,14 +55,6 @@ VideoColorSpace GetGuessedColorSpace(const VideoColorSpace& color_space) {
} // namespace
// Alignment requirement by FFmpeg for input and output buffers. This need to
// be updated to match FFmpeg when it changes.
#if defined(ARCH_CPU_ARM_FAMILY)
static const int kFFmpegBufferAddressAlignment = 16;
#else
static const int kFFmpegBufferAddressAlignment = 32;
#endif
// Allows faster SIMD YUV convert. Also, FFmpeg overreads/-writes occasionally.
// See video_get_buffer() in libavcodec/utils.c.
static const int kFFmpegOutputBufferPaddingSize = 16;
@ -664,15 +657,6 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
profile = ProfileIDToVideoCodecProfile(codec_context->profile);
}
void* display_matrix =
av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
VideoTransformation video_transformation = VideoTransformation();
if (display_matrix) {
video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
static_cast<int32_t*>(display_matrix));
}
if (!color_space.IsSpecified()) {
// VP9 frames may have color information, but that information cannot
// express new color spaces, like HDR. For that reason, color space
@ -728,6 +712,99 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
extra_data.assign(codec_context->extradata,
codec_context->extradata + codec_context->extradata_size);
}
VideoTransformation video_transformation = VideoTransformation();
for (int i = 0; i < stream->codecpar->nb_coded_side_data; ++i) {
const auto& side_data = stream->codecpar->coded_side_data[i];
switch (side_data.type) {
case AV_PKT_DATA_DISPLAYMATRIX: {
CHECK_EQ(side_data.size, sizeof(int32_t) * 3 * 3);
video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
reinterpret_cast<int32_t*>(side_data.data));
break;
}
case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
AVMasteringDisplayMetadata* mdcv =
reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
if (mdcv->has_primaries) {
smpte_st_2086.primaries = {
static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
static_cast<float>(av_q2d(mdcv->white_point[0])),
static_cast<float>(av_q2d(mdcv->white_point[1])),
};
}
if (mdcv->has_luminance) {
smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
}
// TODO(https://crbug.com/1446302): Consider rejecting metadata that
// does not specify all values.
if (mdcv->has_primaries || mdcv->has_luminance) {
hdr_metadata.smpte_st_2086 = smpte_st_2086;
}
break;
}
case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
AVContentLightMetadata* clli =
reinterpret_cast<AVContentLightMetadata*>(side_data.data);
hdr_metadata.cta_861_3 =
gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
break;
}
#if BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
case AV_PKT_DATA_DOVI_CONF: {
AVDOVIDecoderConfigurationRecord* dovi =
reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(side_data.data);
VideoType type;
type.codec = VideoCodec::kDolbyVision;
type.level = dovi->dv_level;
type.color_space = color_space;
type.hdr_metadata_type = gfx::HdrMetadataType::kSmpteSt2094_10;
switch (dovi->dv_profile) {
case 0:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
break;
case 4:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE4;
break;
case 5:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
break;
case 7:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
break;
case 8:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
break;
case 9:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
break;
default:
type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
break;
}
// Treat dolby vision contents as dolby vision codec only if the
// device support clear DV decoding, otherwise use the original
// HEVC or AVC codec and profile.
if (media::IsSupportedVideoType(type)) {
codec = type.codec;
profile = type.profile;
}
break;
}
#endif // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
default:
break;
}
}
// TODO(tmathmeyer) ffmpeg can't provide us with an actual video rotation yet.
config->Initialize(codec, profile, alpha_mode, color_space,
video_transformation, coded_size, visible_rect,
@ -735,40 +812,6 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
// Set the aspect ratio explicitly since our version hasn't been rounded.
config->set_aspect_ratio(aspect_ratio);
if (stream->nb_side_data) {
for (int i = 0; i < stream->nb_side_data; ++i) {
AVPacketSideData side_data = stream->side_data[i];
if (side_data.type != AV_PKT_DATA_MASTERING_DISPLAY_METADATA)
continue;
AVMasteringDisplayMetadata* metadata =
reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
if (metadata->has_primaries) {
smpte_st_2086.primaries = {
static_cast<float>(av_q2d(metadata->display_primaries[0][0])),
static_cast<float>(av_q2d(metadata->display_primaries[0][1])),
static_cast<float>(av_q2d(metadata->display_primaries[1][0])),
static_cast<float>(av_q2d(metadata->display_primaries[1][1])),
static_cast<float>(av_q2d(metadata->display_primaries[2][0])),
static_cast<float>(av_q2d(metadata->display_primaries[2][1])),
static_cast<float>(av_q2d(metadata->white_point[0])),
static_cast<float>(av_q2d(metadata->white_point[1])),
};
}
if (metadata->has_luminance) {
smpte_st_2086.luminance_max = av_q2d(metadata->max_luminance);
smpte_st_2086.luminance_min = av_q2d(metadata->min_luminance);
}
// TODO(https://crbug.com/1446302): Consider rejecting metadata that does
// not specify all values.
if (metadata->has_primaries || metadata->has_luminance) {
hdr_metadata.smpte_st_2086 = smpte_st_2086;
}
}
}
if (hdr_metadata.IsValid()) {
config->set_hdr_metadata(hdr_metadata);
}

View file

@ -2,8 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/cast.gni")
import("//build/config/chrome_build.gni")
import("//build/config/chromecast_build.gni")
import("//build/config/chromeos/args.gni")
import("//build/config/chromeos/ui_mode.gni")
import("//build/config/features.gni")

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# Copyright 2024 The Chromium Authors, Alex313031, and Midzer. All rights reserved.
# Copyright 2024 The Chromium Authors, Alex313031, and midzer. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

View file

@ -163,6 +163,13 @@ fun:*AddTraceEvent*
# Dawn, calls to OpenGL and Vulkan function pointers from shared library.
src:*third_party/dawn/src/dawn/native/*
# liboptimization_guide_internal.so calls into the main binary for the Dawn
# procs and Dawn uses std::function for callbacks back to the lib.
# TODO(crbug.com/1511050): See if we can avoid disabling CFI for std::function.
src:*third_party/dawn/src/dawn/dawn_proc.c
src:*third_party/libc*/invoke.h
src:*third_party/libc*/function.h
# PPAPI
src:*ppapi/*
src:*content/renderer/pepper*

View file

@ -1,6 +1,6 @@
#!/bin/bash
# Copyright (c) 2024 Alex313031 and Midzer.
# Copyright (c) 2024 Alex313031, midzer, and gz83.
YEL='\033[1;33m' # Yellow
CYA='\033[1;96m' # Cyan