M117 stage 1

This commit is contained in:
Alexander Frick 2023-10-08 05:39:27 -05:00
parent d26d1a9354
commit 4c8a8a5ce7
18 changed files with 925 additions and 4881 deletions

View File

@ -1,680 +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.
import("//build/config/c++/c++.gni")
import("//build/config/chrome_build.gni")
import("//build/config/clang/clang.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/win/control_flow_guard.gni")
import("//build/config/win/visual_studio_version.gni")
import("//build/timestamp.gni")
import("//build/toolchain/goma.gni")
import("//build/toolchain/rbe.gni")
import("//build/toolchain/toolchain.gni")
assert(is_win)
declare_args() {
# Turn this on to have the linker output extra timing information.
win_linker_timing = false
# possible values for target_winuwp_version:
# "10" - Windows UWP 10
# "8.1" - Windows RT 8.1
# "8.0" - Windows RT 8.0
target_winuwp_version = "10"
# possible values:
# "app" - Windows Store Applications
# "phone" - Windows Phone Applications
# "system" - Windows Drivers and Tools
# "server" - Windows Server Applications
# "desktop" - Windows Desktop Applications
target_winuwp_family = "app"
# Set this to use clang-style diagnostics format instead of MSVC-style, which
# is useful in e.g. Emacs compilation mode.
# E.g.:
# Without this, clang emits a diagnostic message like this:
# foo/bar.cc(12,34): error: something went wrong
# and with this switch, clang emits it like this:
# foo/bar.cc:12:34: error: something went wrong
use_clang_diagnostics_format = false
}
# This is included by reference in the //build/config/compiler config that
# is applied to all targets. It is here to separate out the logic that is
# Windows-only.
config("compiler") {
if (current_cpu == "x86") {
asmflags = [
# When /safeseh is specified, the linker will only produce an image if it
# can also produce a table of the image's safe exception handlers. This
# table specifies for the operating system which exception handlers are
# valid for the image. Note that /SAFESEH isn't accepted on the command
# line, only /safeseh. This is only accepted by ml.exe, not ml64.exe.
"/safeseh",
]
}
cflags = [
"/Gy", # Enable function-level linking.
"/FS", # Preserve previous PDB behavior.
"/bigobj", # Some of our files are bigger than the regular limits.
"/utf-8", # Assume UTF-8 by default to avoid code page dependencies.
]
if (is_clang) {
cflags += [
"/Zc:twoPhase",
# Consistently use backslash as the path separator when expanding the
# __FILE__ macro when targeting Windows regardless of the build
# environment.
"-ffile-reproducible",
]
}
# Force C/C++ mode for the given GN detected file type. This is necessary
# for precompiled headers where the same source file is compiled in both
# modes.
cflags_c = [ "/TC" ]
cflags_cc = [ "/TP" ]
cflags += [
# Work around crbug.com/526851, bug in VS 2015 RTM compiler.
# "/Zc:sizedDealloc-",
]
if (is_clang) {
# Required to make the 19041 SDK compatible with clang-cl.
# See https://crbug.com/1089996 issue #2 for details.
cflags += [ "/D__WRL_ENABLE_FUNCTION_STATICS__" ]
# Tell clang which version of MSVC to emulate.
cflags += [ "-fmsc-version=1934" ]
if (is_component_build) {
cflags += [
# Do not export inline member functions. This makes component builds
# faster. This is similar to -fvisibility-inlines-hidden.
"/Zc:dllexportInlines-",
]
}
if (current_cpu == "x86") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m32" ]
} else {
cflags += [ "--target=i386-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
}
} else if (current_cpu == "x64") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m64" ]
} else {
cflags += [ "--target=x86_64-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
}
} else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-pc-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
} else {
assert(false, "unknown current_cpu " + current_cpu)
}
# Chrome currently requires SSE3. Clang supports targeting any Intel
# microarchitecture. MSVC only supports a subset of architectures, and the
# next step after SSE2 will be AVX.
# "/fp:fast", enables FMA.
if (current_cpu == "x86" || current_cpu == "x64") {
cflags += [
"/O2",
"-mavx",
"-maes",
"-mpclmul",
"/clang:-O3",
"/clang:-mavx",
"/clang:-maes",
"/clang:-mpclmul",
"-Xclang", "-O3",
"-Wno-unused-command-line-argument",
]
}
# Enable ANSI escape codes if something emulating them is around (cmd.exe
# doesn't understand ANSI escape codes by default). Make sure to not enable
# this if goma/remoteexec is in use, because this will lower cache hits.
if (!use_goma && !use_remoteexec &&
exec_script("//build/win/use_ansi_codes.py", [], "trim string") ==
"True") {
cflags += [ "-fansi-escape-codes" ]
}
if (use_clang_diagnostics_format) {
cflags += [ "/clang:-fdiagnostics-format=clang" ]
}
}
# Disabled with cc_wrapper because of https://github.com/mozilla/sccache/issues/264
if (use_lld && !use_thin_lto && (is_clang || !use_goma) && cc_wrapper == "") {
# /Brepro lets the compiler not write the mtime field in the .obj output.
# link.exe /incremental relies on this field to work correctly, but lld
# never looks at this timestamp, so it's safe to pass this flag with
# lld and get more deterministic compiler output in return.
# In LTO builds, the compiler doesn't write .obj files containing mtimes,
# so /Brepro is ignored there.
cflags += [ "/Brepro" ]
}
ldflags = []
if (use_lld) {
# lld defaults to writing the current time in the pe/coff header.
# For build reproducibility, pass an explicit timestamp. See
# build/compute_build_timestamp.py for how the timestamp is chosen.
# (link.exe also writes the current time, but it doesn't have a flag to
# override that behavior.)
ldflags += [ "/TIMESTAMP:" + build_timestamp ]
# Don't look for libpaths in %LIB%, similar to /X in cflags above.
ldflags += [ "/lldignoreenv" ]
ldflags += [ "/opt:lldlto=3", ]
}
# Some binaries create PDBs larger than 4 GiB. Increasing the PDB page size
# to 8 KiB allows 8 GiB PDBs. The larger page size also allows larger block maps
# which is a PDB limit that was hit in https://crbug.com/1406510. The page size
# can easily be increased in the future to allow even larger PDBs or larger
# block maps.
# This flag requires lld-link.exe or link.exe from VS 2022 or later to create
# the PDBs, and tools from circa 22H2 or later to consume the PDBs.
ldflags += [ "/pdbpagesize:8192" ]
if (!is_debug && !is_component_build) {
# Enable standard linker optimizations like GC (/OPT:REF) and ICF in static
# release builds.
# Release builds always want these optimizations, so enable them explicitly.
ldflags += [
"/OPT:REF",
"/OPT:ICF",
"/INCREMENTAL:NO",
"/FIXED:NO",
"/OPT:lldlto=3",
]
if (use_lld) {
# String tail merging leads to smaller binaries, but they don't compress
# as well, leading to increased mini_installer size (crbug.com/838449).
# ldflags += [ "/OPT:NOLLDTAILMERGE" ]
ldflags += [ "/OPT:LLDTAILMERGE" ]
}
# TODO(siggi): Is this of any use anymore?
# /PROFILE ensures that the PDB file contains FIXUP information (growing the
# PDB file by about 5%) but does not otherwise alter the output binary. It
# is enabled opportunistically for builds where it is not prohibited (not
# supported when incrementally linking, or using /debug:fastlink).
# ldflags += [ "/PROFILE" ]
}
# arflags apply only to static_libraries. The normal linker configs are only
# set for executable and shared library targets so arflags must be set
# elsewhere. Since this is relatively contained, we just apply them in this
# more general config and they will only have an effect on static libraries.
arflags = [
# "No public symbols found; archive member will be inaccessible." This
# means that one or more object files in the library can never be
# pulled in to targets that link to this library. It's just a warning that
# the source file is a no-op.
"/ignore:4221",
]
}
# This is included by reference in the //build/config/compiler:runtime_library
# config that is applied to all targets. It is here to separate out the logic
# that is Windows-only. Please see that target for advice on what should go in
# :runtime_library vs. :compiler.
config("runtime_library") {
cflags = []
cflags_cc = []
# Defines that set up the CRT.
defines = [
"__STD_C",
"_CRT_RAND_S",
"_CRT_SECURE_NO_DEPRECATE",
"_SCL_SECURE_NO_DEPRECATE",
]
# Defines that set up the Windows SDK.
defines += [
"_ATL_NO_OPENGL",
"_WINDOWS",
"CERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
"PSAPI_VERSION=2",
"WIN32",
"_SECURE_ATL",
]
if (current_os == "winuwp") {
# When targeting Windows Runtime, certain compiler/linker flags are
# necessary.
defines += [
"WINUWP",
"__WRL_NO_DEFAULT_LIB__",
]
if (target_winuwp_family == "app") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_PC_APP" ]
} else if (target_winuwp_family == "phone") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP" ]
} else if (target_winuwp_family == "system") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM" ]
} else if (target_winuwp_family == "server") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_SERVER" ]
} else {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" ]
}
cflags_cc += [ "/EHsc" ]
# This warning is given because the linker cannot tell the difference
# between consuming WinRT APIs versus authoring WinRT within static
# libraries as such this warning is always given by the linker. Since
# consuming WinRT APIs within a library is legitimate but authoring
# WinRT APis is not allowed, this warning is disabled to ignore the
# legitimate consumption of WinRT APIs within static library builds.
arflags = [ "/IGNORE:4264" ]
if (target_winuwp_version == "10") {
defines += [ "WIN10=_WIN32_WINNT_WIN10" ]
} else if (target_winuwp_version == "8.1") {
defines += [ "WIN8_1=_WIN32_WINNT_WINBLUE" ]
} else if (target_winuwp_version == "8.0") {
defines += [ "WIN8=_WIN32_WINNT_WIN8" ]
}
} else {
# When not targeting Windows Runtime, make sure the WINAPI family is set
# to desktop.
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" ]
}
}
# Chromium only supports Windowes 10+.
# Some third-party libraries assume that these defines set what version of
# Windows is available at runtime. Targets using these libraries need to
# manually override this config for their compiles.
config("winver") {
defines = [
"NTDDI_VERSION=NTDDI_WIN10_NI",
# We can't say `=_WIN32_WINNT_WIN10` here because some files do
# `#if WINVER < 0x0600` without including windows.h before,
# and then _WIN32_WINNT_WIN10 isn't yet known to be 0x0A00.
"_WIN32_WINNT=0x0A00",
"WINVER=0x0A00",
]
}
# Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs.
config("sdk_link") {
if (current_cpu == "x86") {
ldflags = [
"/SAFESEH", # Not compatible with x64 so use only for x86.
"/largeaddressaware",
]
}
}
# This default linker setup is provided separately from the SDK setup so
# targets who want different library configurations can remove this and specify
# their own.
config("common_linker_setup") {
ldflags = [
"/FIXED:NO",
"/ignore:4199",
"/ignore:4221",
"/NXCOMPAT",
"/DYNAMICBASE",
]
if (win_linker_timing) {
ldflags += [
"/time",
"/verbose:incr",
]
}
}
config("default_cfg_compiler") {
# Emit table of address-taken functions for Control-Flow Guard (CFG).
# This is needed to allow functions to be called by code that is built
# with CFG enabled, such as system libraries.
# The CFG guards are only emitted if |win_enable_cfg_guards| is enabled.
if (win_enable_cfg_guards) {
if (is_clang) {
cflags = [ "/guard:cf" ]
}
rustflags = [ "-Ccontrol-flow-guard" ]
} else {
if (is_clang) {
cflags = [ "/guard:cf,nochecks" ]
}
rustflags = [ "-Ccontrol-flow-guard=nochecks" ]
}
}
# To disable CFG guards for a target, remove the "default_cfg_compiler"
# config, and add "disable_guards_cfg_compiler" config.
config("disable_guards_cfg_compiler") {
# Emit table of address-taken functions for Control-Flow Guard (CFG).
# This is needed to allow functions to be called by code that is built
# with CFG enabled, such as system libraries.
if (is_clang) {
cflags = [ "/guard:cf,nochecks" ]
}
rustflags = [ "-Ccontrol-flow-guard=nochecks" ]
}
config("cfi_linker") {
# Control Flow Guard (CFG)
# https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065.aspx
# /DYNAMICBASE (ASLR) is turned off in debug builds, therefore CFG cannot be
# turned on either.
# ASan and CFG leads to slow process startup. Chromium's test runner uses
# lots of child processes, so this means things are really slow. Disable CFG
# for now. https://crbug.com/846966
if (!is_debug && !is_asan) {
# Turn on CFG bitmap generation and CFG load config.
ldflags = [ "/guard:cf" ]
}
}
# This is a superset of all the delayloads needed for chrome.exe, chrome.dll,
# chrome_child.dll, and chrome_elf.dll. The linker will automatically ignore
# anything which is not linked to the binary at all.
# Most of the dlls are simply not required at startup (or at all, depending
# on how the browser is used). The following dlls are interconnected and need to
# be delayloaded together to ensure user32 does not load too early or at all,
# depending on the process type: user32, gdi32, comctl32, comdlg32, cryptui,
# d3d9, dwmapi, imm32, msi, ole32, oleacc, rstrtmgr, shell32, shlwapi, and
# uxtheme.
# There are some exceptions to this list which need to be declared separately.
# Some dlls cannot be delayloaded by chrome_child.dll due to the sandbox
# restrictions that prevent them from being loaded properly. Those dlls are
# specified in the separate config below.
# This config should also be used for any test binary whose goal is to run
# tests with the full browser.
config("delayloads") {
ldflags = [
"/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll",
"/DELAYLOAD:comctl32.dll",
"/DELAYLOAD:comdlg32.dll",
"/DELAYLOAD:credui.dll",
"/DELAYLOAD:cryptui.dll",
"/DELAYLOAD:d3d11.dll",
"/DELAYLOAD:d3d9.dll",
"/DELAYLOAD:dwmapi.dll",
"/DELAYLOAD:dxgi.dll",
"/DELAYLOAD:dxva2.dll",
"/DELAYLOAD:esent.dll",
"/DELAYLOAD:gdi32.dll",
"/DELAYLOAD:hid.dll",
"/DELAYLOAD:imagehlp.dll",
"/DELAYLOAD:imm32.dll",
"/DELAYLOAD:msi.dll",
"/DELAYLOAD:netapi32.dll",
"/DELAYLOAD:ncrypt.dll",
"/DELAYLOAD:ole32.dll",
"/DELAYLOAD:oleacc.dll",
"/DELAYLOAD:propsys.dll",
"/DELAYLOAD:psapi.dll",
"/DELAYLOAD:rpcrt4.dll",
"/DELAYLOAD:rstrtmgr.dll",
"/DELAYLOAD:setupapi.dll",
"/DELAYLOAD:shell32.dll",
"/DELAYLOAD:shlwapi.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:urlmon.dll",
"/DELAYLOAD:user32.dll",
"/DELAYLOAD:usp10.dll",
"/DELAYLOAD:uxtheme.dll",
"/DELAYLOAD:wer.dll",
"/DELAYLOAD:wevtapi.dll",
"/DELAYLOAD:wininet.dll",
"/DELAYLOAD:winusb.dll",
"/DELAYLOAD:wsock32.dll",
"/DELAYLOAD:wtsapi32.dll",
]
}
config("delayloads_not_for_child_dll") {
ldflags = [
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:crypt32.dll",
"/DELAYLOAD:dbghelp.dll",
"/DELAYLOAD:dhcpcsvc.dll",
"/DELAYLOAD:dwrite.dll",
"/DELAYLOAD:iphlpapi.dll",
"/DELAYLOAD:oleaut32.dll",
"/DELAYLOAD:secur32.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:userenv.dll",
"/DELAYLOAD:winhttp.dll",
"/DELAYLOAD:winmm.dll",
"/DELAYLOAD:winspool.drv",
"/DELAYLOAD:wintrust.dll",
"/DELAYLOAD:ws2_32.dll",
]
}
# CRT --------------------------------------------------------------------------
# Configures how the runtime library (CRT) is going to be used.
# See https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx for a reference of
# what each value does.
config("default_crt") {
if (is_component_build) {
# Component mode: dynamic CRT. Since the library is shared, it requires
# exceptions or will give errors about things not matching, so keep
# exceptions on.
configs = [ ":dynamic_crt" ]
} else {
if (current_os == "winuwp") {
# https://blogs.msdn.microsoft.com/vcblog/2014/06/10/the-great-c-runtime-crt-refactoring/
# contains a details explanation of what is happening with the Windows
# CRT in Visual Studio releases related to Windows store applications.
configs = [ ":dynamic_crt" ]
} else {
# Desktop Windows: static CRT.
configs = [ ":static_crt" ]
}
}
}
# Use this to force use of the release CRT when building perf-critical build
# tools that need to be fully optimized even in debug builds, for those times
# when the debug CRT is part of the bottleneck. This also avoids *implicitly*
# defining _DEBUG.
config("release_crt") {
if (is_component_build) {
cflags = [ "/MD" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=-crt-static" ]
} else {
# /MD specifies msvcrt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly. Once
# https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug).
rustflags = [ "-Clink-arg=msvcrt.lib" ]
}
if (use_custom_libcxx) {
# On Windows, including libcpmt[d]/msvcprt[d] explicitly links the C++
# standard library, which libc++ needs for exception_ptr internals.
ldflags = [ "/DEFAULTLIB:msvcprt.lib" ]
}
} else {
cflags = [ "/MT" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=+crt-static" ]
} else {
# /MT specifies libcmt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly. Once
# https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug).
rustflags = [ "-Clink-arg=libcmt.lib" ]
}
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:libcpmt.lib" ]
}
}
}
config("dynamic_crt") {
if (is_debug) {
# This pulls in the DLL debug CRT and defines _DEBUG
cflags = [ "/MDd" ]
# /MDd specifies msvcrtd.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug). We
# can't support prebuilt stdlib in this path until then.
rustflags = [ "-Clink-arg=msvcrtd.lib" ]
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:msvcprtd.lib" ]
}
} else {
cflags = [ "/MD" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=-crt-static" ]
} else {
# /MD specifies msvcrt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we
# should instead tell rustc which CRT to use (static/dynamic +
# release/debug).
rustflags = [ "-Clink-arg=msvcrt.lib" ]
}
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:msvcprt.lib" ]
}
}
}
config("static_crt") {
if (is_debug) {
# This pulls in the static debug CRT and defines _DEBUG
cflags = [ "/MTd" ]
# /MTd specifies libcmtd.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug). We
# can't support prebuilt stdlib in this path until then.
rustflags = [ "-Clink-arg=libcmtd.lib" ]
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:libcpmtd.lib" ]
}
} else {
cflags = [ "/MT" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=+crt-static" ]
} else {
# /MT specifies libcmt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we
# should instead tell rustc which CRT to use (static/dynamic +
# release/debug).
rustflags = [ "-Clink-arg=libcmt.lib" ]
}
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:libcpmt.lib" ]
}
}
}
# Subsystem --------------------------------------------------------------------
# This is appended to the subsystem to specify a minimum version.
if (current_cpu == "x64") {
# The number after the comma is the minimum required OS version.
# 5.02 = Windows Server 2003.
subsystem_version_suffix = ",10.0"
} else if (current_cpu == "arm64") {
# Windows ARM64 requires Windows 10.
subsystem_version_suffix = ",10.0"
} else {
# 5.01 = Windows XP.
subsystem_version_suffix = ",10.0"
}
config("console") {
ldflags = [ "/SUBSYSTEM:CONSOLE$subsystem_version_suffix" ]
}
config("windowed") {
ldflags = [ "/SUBSYSTEM:WINDOWS$subsystem_version_suffix" ]
}
# Incremental linking ----------------------------------------------------------
# Applies incremental linking or not depending on the current configuration.
config("default_incremental_linking") {
# Enable incremental linking for debug builds and all component builds - any
# builds where performance is not job one.
# TODO(thakis): Always turn this on with lld, no reason not to.
if (is_debug || is_component_build) {
ldflags = [ "/INCREMENTAL" ]
if (use_lld) {
# lld doesn't use ilk files and doesn't really have an incremental link
# mode; the only effect of the flag is that the .lib file timestamp isn't
# updated if the .lib doesn't change.
# TODO(thakis): Why pass /OPT:NOREF for lld, but not otherwise?
# TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in
# lld.
ldflags += [ "/OPT:NOREF" ]
}
} else {
ldflags = [ "/INCREMENTAL:NO" ]
}
}
# Character set ----------------------------------------------------------------
# Not including this config means "ansi" (8-bit system codepage).
config("unicode") {
defines = [
"_UNICODE",
"UNICODE",
]
}
# Lean and mean ----------------------------------------------------------------
# Some third party code might not compile with WIN32_LEAN_AND_MEAN so we have
# to have a separate config for it. Remove this config from your target to
# get the "bloaty and accommodating" version of windows.h.
config("lean_and_mean") {
defines = [ "WIN32_LEAN_AND_MEAN" ]
}
# Nominmax --------------------------------------------------------------------
# Some third party code defines NOMINMAX before including windows.h, which
# then causes warnings when it's been previously defined on the command line.
# For such targets, this config can be removed.
config("nominmax") {
defines = [ "NOMINMAX" ]
}

View File

@ -109,16 +109,16 @@ config("compiler") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m32" ]
} else {
cflags += [ "--target=i386-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=i386-windows" ]
}
} else if (current_cpu == "x64") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m64" ]
} else {
cflags += [ "--target=x86_64-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=x86_64-windows" ]
}
} else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-pc-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=aarch64-pc-windows" ]
} else {
assert(false, "unknown current_cpu " + current_cpu)
}
@ -397,18 +397,32 @@ config("cfi_linker") {
}
# This is a superset of all the delayloads needed for chrome.exe, chrome.dll,
# chrome_child.dll, and chrome_elf.dll. The linker will automatically ignore
# anything which is not linked to the binary at all.
# Most of the dlls are simply not required at startup (or at all, depending
# on how the browser is used). The following dlls are interconnected and need to
# be delayloaded together to ensure user32 does not load too early or at all,
# depending on the process type: user32, gdi32, comctl32, comdlg32, cryptui,
# d3d9, dwmapi, imm32, msi, ole32, oleacc, rstrtmgr, shell32, shlwapi, and
# uxtheme.
# There are some exceptions to this list which need to be declared separately.
# Some dlls cannot be delayloaded by chrome_child.dll due to the sandbox
# restrictions that prevent them from being loaded properly. Those dlls are
# specified in the separate config below.
# and chrome_elf.dll. The linker will automatically ignore anything which is not
# linked to the binary at all (it is harmless to have an unmatched /delayload).
#
# We delayload most libraries as the dlls are simply not required at startup (or
# at all, depending on the process type). In unsandboxed process they will load
# when first needed.
#
# Some dlls open handles when they are loaded, and we may not want them to be
# loaded in renderers or other sandboxed processes. Conversely, some dlls must
# be loaded before sandbox lockdown.
#
# Some dlls themselves load others - in particular, to avoid unconditionally
# loading user32.dll - we require that the following dlls are all delayloaded:
# user32, gdi32, comctl32, comdlg32, cryptui, d3d9, dwmapi, imm32, msi, ole32,
# oleacc, rstrtmgr, shell32, shlwapi, and uxtheme.
#
# Advapi32.dll is unconditionally loaded at process startup on Windows 10, but
# on Windows 11 it is not, which makes it worthwhile to delay load it.
# Additionally, advapi32.dll exports several functions that are forwarded to
# other DLLs such as cryptbase.dll. If calls to those functions are present but
# there are some processes where the functions are never called then delay
# loading of advapi32.dll avoids pulling in those DLLs (such as cryptbase.dll)
# unnecessarily, even if advapi32.dll itself is loaded.
#
# This config applies to chrome.exe, chrome.dll, chrome_elf.dll (& others).
#
# This config should also be used for any test binary whose goal is to run
# tests with the full browser.
config("delayloads") {
@ -416,6 +430,7 @@ config("delayloads") {
"/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll",
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:comctl32.dll",
"/DELAYLOAD:comdlg32.dll",
"/DELAYLOAD:credui.dll",
@ -456,9 +471,10 @@ config("delayloads") {
]
}
# This config (along with `:delayloads`) applies to chrome.exe & chrome_elf.dll.
# Entries should not appear in both configs.
config("delayloads_not_for_child_dll") {
ldflags = [
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:crypt32.dll",
"/DELAYLOAD:dbghelp.dll",
"/DELAYLOAD:dhcpcsvc.dll",
@ -466,7 +482,6 @@ config("delayloads_not_for_child_dll") {
"/DELAYLOAD:iphlpapi.dll",
"/DELAYLOAD:oleaut32.dll",
"/DELAYLOAD:secur32.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:userenv.dll",
"/DELAYLOAD:winhttp.dll",
"/DELAYLOAD:winmm.dll",
@ -651,6 +666,10 @@ config("default_incremental_linking") {
# TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in
# lld.
ldflags += [ "/OPT:NOREF" ]
# TODO(crbug.com/1444129): Mixing incremental and icf produces an error
# in lld-link.
ldflags += [ "/OPT:NOICF" ]
}
} else {
ldflags = [ "/INCREMENTAL:NO" ]

View File

@ -1,4 +0,0 @@
# Thorium AVX2
This directory contains build config files for compiling __32 Bit__ Thorium/Chromium with [SSE2](https://en.wikipedia.org/wiki/SSE2)

File diff suppressed because it is too large Load Diff

View File

@ -1,680 +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.
import("//build/config/c++/c++.gni")
import("//build/config/chrome_build.gni")
import("//build/config/clang/clang.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/win/control_flow_guard.gni")
import("//build/config/win/visual_studio_version.gni")
import("//build/timestamp.gni")
import("//build/toolchain/goma.gni")
import("//build/toolchain/rbe.gni")
import("//build/toolchain/toolchain.gni")
assert(is_win)
declare_args() {
# Turn this on to have the linker output extra timing information.
win_linker_timing = false
# possible values for target_winuwp_version:
# "10" - Windows UWP 10
# "8.1" - Windows RT 8.1
# "8.0" - Windows RT 8.0
target_winuwp_version = "10"
# possible values:
# "app" - Windows Store Applications
# "phone" - Windows Phone Applications
# "system" - Windows Drivers and Tools
# "server" - Windows Server Applications
# "desktop" - Windows Desktop Applications
target_winuwp_family = "app"
# Set this to use clang-style diagnostics format instead of MSVC-style, which
# is useful in e.g. Emacs compilation mode.
# E.g.:
# Without this, clang emits a diagnostic message like this:
# foo/bar.cc(12,34): error: something went wrong
# and with this switch, clang emits it like this:
# foo/bar.cc:12:34: error: something went wrong
use_clang_diagnostics_format = false
}
# This is included by reference in the //build/config/compiler config that
# is applied to all targets. It is here to separate out the logic that is
# Windows-only.
config("compiler") {
if (current_cpu == "x86") {
asmflags = [
# When /safeseh is specified, the linker will only produce an image if it
# can also produce a table of the image's safe exception handlers. This
# table specifies for the operating system which exception handlers are
# valid for the image. Note that /SAFESEH isn't accepted on the command
# line, only /safeseh. This is only accepted by ml.exe, not ml64.exe.
"/safeseh",
]
}
cflags = [
"/Gy", # Enable function-level linking.
"/FS", # Preserve previous PDB behavior.
"/bigobj", # Some of our files are bigger than the regular limits.
"/utf-8", # Assume UTF-8 by default to avoid code page dependencies.
]
if (is_clang) {
cflags += [
"/Zc:twoPhase",
# Consistently use backslash as the path separator when expanding the
# __FILE__ macro when targeting Windows regardless of the build
# environment.
"-ffile-reproducible",
]
}
# Force C/C++ mode for the given GN detected file type. This is necessary
# for precompiled headers where the same source file is compiled in both
# modes.
cflags_c = [ "/TC" ]
cflags_cc = [ "/TP" ]
cflags += [
# Work around crbug.com/526851, bug in VS 2015 RTM compiler.
# "/Zc:sizedDealloc-",
]
if (is_clang) {
# Required to make the 19041 SDK compatible with clang-cl.
# See https://crbug.com/1089996 issue #2 for details.
cflags += [ "/D__WRL_ENABLE_FUNCTION_STATICS__" ]
# Tell clang which version of MSVC to emulate.
cflags += [ "-fmsc-version=1934" ]
if (is_component_build) {
cflags += [
# Do not export inline member functions. This makes component builds
# faster. This is similar to -fvisibility-inlines-hidden.
"/Zc:dllexportInlines-",
]
}
if (current_cpu == "x86") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m32" ]
} else {
cflags += [ "--target=i386-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
}
} else if (current_cpu == "x64") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m64" ]
} else {
cflags += [ "--target=x86_64-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
}
} else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-pc-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
} else {
assert(false, "unknown current_cpu " + current_cpu)
}
# Chrome currently requires SSE3. Clang supports targeting any Intel
# microarchitecture. MSVC only supports a subset of architectures, and the
# next step after SSE2 will be AVX.
# "/fp:fast", enables FMA.
if (current_cpu == "x86" || current_cpu == "x64") {
cflags += [
"/O2",
"-mmmx",
"-mfxsr",
"-msse2",
"/clang:-O3",
"/clang:-mmmx",
"/clang:-mfxsr",
"/clang:-msse2",
"-Xclang", "-O3",
"-Wno-unused-command-line-argument",
]
}
# Enable ANSI escape codes if something emulating them is around (cmd.exe
# doesn't understand ANSI escape codes by default). Make sure to not enable
# this if goma/remoteexec is in use, because this will lower cache hits.
if (!use_goma && !use_remoteexec &&
exec_script("//build/win/use_ansi_codes.py", [], "trim string") ==
"True") {
cflags += [ "-fansi-escape-codes" ]
}
if (use_clang_diagnostics_format) {
cflags += [ "/clang:-fdiagnostics-format=clang" ]
}
}
# Disabled with cc_wrapper because of https://github.com/mozilla/sccache/issues/264
if (use_lld && !use_thin_lto && (is_clang || !use_goma) && cc_wrapper == "") {
# /Brepro lets the compiler not write the mtime field in the .obj output.
# link.exe /incremental relies on this field to work correctly, but lld
# never looks at this timestamp, so it's safe to pass this flag with
# lld and get more deterministic compiler output in return.
# In LTO builds, the compiler doesn't write .obj files containing mtimes,
# so /Brepro is ignored there.
cflags += [ "/Brepro" ]
}
ldflags = []
if (use_lld) {
# lld defaults to writing the current time in the pe/coff header.
# For build reproducibility, pass an explicit timestamp. See
# build/compute_build_timestamp.py for how the timestamp is chosen.
# (link.exe also writes the current time, but it doesn't have a flag to
# override that behavior.)
ldflags += [ "/TIMESTAMP:" + build_timestamp ]
# Don't look for libpaths in %LIB%, similar to /X in cflags above.
ldflags += [ "/lldignoreenv" ]
ldflags += [ "/opt:lldlto=3", ]
}
# Some binaries create PDBs larger than 4 GiB. Increasing the PDB page size
# to 8 KiB allows 8 GiB PDBs. The larger page size also allows larger block maps
# which is a PDB limit that was hit in https://crbug.com/1406510. The page size
# can easily be increased in the future to allow even larger PDBs or larger
# block maps.
# This flag requires lld-link.exe or link.exe from VS 2022 or later to create
# the PDBs, and tools from circa 22H2 or later to consume the PDBs.
ldflags += [ "/pdbpagesize:8192" ]
if (!is_debug && !is_component_build) {
# Enable standard linker optimizations like GC (/OPT:REF) and ICF in static
# release builds.
# Release builds always want these optimizations, so enable them explicitly.
ldflags += [
"/OPT:REF",
"/OPT:ICF",
"/INCREMENTAL:NO",
"/FIXED:NO",
"/OPT:lldlto=3",
]
if (use_lld) {
# String tail merging leads to smaller binaries, but they don't compress
# as well, leading to increased mini_installer size (crbug.com/838449).
# ldflags += [ "/OPT:NOLLDTAILMERGE" ]
ldflags += [ "/OPT:LLDTAILMERGE" ]
}
# TODO(siggi): Is this of any use anymore?
# /PROFILE ensures that the PDB file contains FIXUP information (growing the
# PDB file by about 5%) but does not otherwise alter the output binary. It
# is enabled opportunistically for builds where it is not prohibited (not
# supported when incrementally linking, or using /debug:fastlink).
# ldflags += [ "/PROFILE" ]
}
# arflags apply only to static_libraries. The normal linker configs are only
# set for executable and shared library targets so arflags must be set
# elsewhere. Since this is relatively contained, we just apply them in this
# more general config and they will only have an effect on static libraries.
arflags = [
# "No public symbols found; archive member will be inaccessible." This
# means that one or more object files in the library can never be
# pulled in to targets that link to this library. It's just a warning that
# the source file is a no-op.
"/ignore:4221",
]
}
# This is included by reference in the //build/config/compiler:runtime_library
# config that is applied to all targets. It is here to separate out the logic
# that is Windows-only. Please see that target for advice on what should go in
# :runtime_library vs. :compiler.
config("runtime_library") {
cflags = []
cflags_cc = []
# Defines that set up the CRT.
defines = [
"__STD_C",
"_CRT_RAND_S",
"_CRT_SECURE_NO_DEPRECATE",
"_SCL_SECURE_NO_DEPRECATE",
]
# Defines that set up the Windows SDK.
defines += [
"_ATL_NO_OPENGL",
"_WINDOWS",
"CERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
"PSAPI_VERSION=2",
"WIN32",
"_SECURE_ATL",
]
if (current_os == "winuwp") {
# When targeting Windows Runtime, certain compiler/linker flags are
# necessary.
defines += [
"WINUWP",
"__WRL_NO_DEFAULT_LIB__",
]
if (target_winuwp_family == "app") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_PC_APP" ]
} else if (target_winuwp_family == "phone") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP" ]
} else if (target_winuwp_family == "system") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM" ]
} else if (target_winuwp_family == "server") {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_SERVER" ]
} else {
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" ]
}
cflags_cc += [ "/EHsc" ]
# This warning is given because the linker cannot tell the difference
# between consuming WinRT APIs versus authoring WinRT within static
# libraries as such this warning is always given by the linker. Since
# consuming WinRT APIs within a library is legitimate but authoring
# WinRT APis is not allowed, this warning is disabled to ignore the
# legitimate consumption of WinRT APIs within static library builds.
arflags = [ "/IGNORE:4264" ]
if (target_winuwp_version == "10") {
defines += [ "WIN10=_WIN32_WINNT_WIN10" ]
} else if (target_winuwp_version == "8.1") {
defines += [ "WIN8_1=_WIN32_WINNT_WINBLUE" ]
} else if (target_winuwp_version == "8.0") {
defines += [ "WIN8=_WIN32_WINNT_WIN8" ]
}
} else {
# When not targeting Windows Runtime, make sure the WINAPI family is set
# to desktop.
defines += [ "WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP" ]
}
}
# Chromium only supports Windowes 10+.
# Some third-party libraries assume that these defines set what version of
# Windows is available at runtime. Targets using these libraries need to
# manually override this config for their compiles.
config("winver") {
defines = [
"NTDDI_VERSION=NTDDI_WIN10_NI",
# We can't say `=_WIN32_WINNT_WIN10` here because some files do
# `#if WINVER < 0x0600` without including windows.h before,
# and then _WIN32_WINNT_WIN10 isn't yet known to be 0x0A00.
"_WIN32_WINNT=0x0A00",
"WINVER=0x0A00",
]
}
# Linker flags for Windows SDK setup, this is applied only to EXEs and DLLs.
config("sdk_link") {
if (current_cpu == "x86") {
ldflags = [
"/SAFESEH", # Not compatible with x64 so use only for x86.
"/largeaddressaware",
]
}
}
# This default linker setup is provided separately from the SDK setup so
# targets who want different library configurations can remove this and specify
# their own.
config("common_linker_setup") {
ldflags = [
"/FIXED:NO",
"/ignore:4199",
"/ignore:4221",
"/NXCOMPAT",
"/DYNAMICBASE",
]
if (win_linker_timing) {
ldflags += [
"/time",
"/verbose:incr",
]
}
}
config("default_cfg_compiler") {
# Emit table of address-taken functions for Control-Flow Guard (CFG).
# This is needed to allow functions to be called by code that is built
# with CFG enabled, such as system libraries.
# The CFG guards are only emitted if |win_enable_cfg_guards| is enabled.
if (win_enable_cfg_guards) {
if (is_clang) {
cflags = [ "/guard:cf" ]
}
rustflags = [ "-Ccontrol-flow-guard" ]
} else {
if (is_clang) {
cflags = [ "/guard:cf,nochecks" ]
}
rustflags = [ "-Ccontrol-flow-guard=nochecks" ]
}
}
# To disable CFG guards for a target, remove the "default_cfg_compiler"
# config, and add "disable_guards_cfg_compiler" config.
config("disable_guards_cfg_compiler") {
# Emit table of address-taken functions for Control-Flow Guard (CFG).
# This is needed to allow functions to be called by code that is built
# with CFG enabled, such as system libraries.
if (is_clang) {
cflags = [ "/guard:cf,nochecks" ]
}
rustflags = [ "-Ccontrol-flow-guard=nochecks" ]
}
config("cfi_linker") {
# Control Flow Guard (CFG)
# https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065.aspx
# /DYNAMICBASE (ASLR) is turned off in debug builds, therefore CFG cannot be
# turned on either.
# ASan and CFG leads to slow process startup. Chromium's test runner uses
# lots of child processes, so this means things are really slow. Disable CFG
# for now. https://crbug.com/846966
if (!is_debug && !is_asan) {
# Turn on CFG bitmap generation and CFG load config.
ldflags = [ "/guard:cf" ]
}
}
# This is a superset of all the delayloads needed for chrome.exe, chrome.dll,
# chrome_child.dll, and chrome_elf.dll. The linker will automatically ignore
# anything which is not linked to the binary at all.
# Most of the dlls are simply not required at startup (or at all, depending
# on how the browser is used). The following dlls are interconnected and need to
# be delayloaded together to ensure user32 does not load too early or at all,
# depending on the process type: user32, gdi32, comctl32, comdlg32, cryptui,
# d3d9, dwmapi, imm32, msi, ole32, oleacc, rstrtmgr, shell32, shlwapi, and
# uxtheme.
# There are some exceptions to this list which need to be declared separately.
# Some dlls cannot be delayloaded by chrome_child.dll due to the sandbox
# restrictions that prevent them from being loaded properly. Those dlls are
# specified in the separate config below.
# This config should also be used for any test binary whose goal is to run
# tests with the full browser.
config("delayloads") {
ldflags = [
"/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll",
"/DELAYLOAD:comctl32.dll",
"/DELAYLOAD:comdlg32.dll",
"/DELAYLOAD:credui.dll",
"/DELAYLOAD:cryptui.dll",
"/DELAYLOAD:d3d11.dll",
"/DELAYLOAD:d3d9.dll",
"/DELAYLOAD:dwmapi.dll",
"/DELAYLOAD:dxgi.dll",
"/DELAYLOAD:dxva2.dll",
"/DELAYLOAD:esent.dll",
"/DELAYLOAD:gdi32.dll",
"/DELAYLOAD:hid.dll",
"/DELAYLOAD:imagehlp.dll",
"/DELAYLOAD:imm32.dll",
"/DELAYLOAD:msi.dll",
"/DELAYLOAD:netapi32.dll",
"/DELAYLOAD:ncrypt.dll",
"/DELAYLOAD:ole32.dll",
"/DELAYLOAD:oleacc.dll",
"/DELAYLOAD:propsys.dll",
"/DELAYLOAD:psapi.dll",
"/DELAYLOAD:rpcrt4.dll",
"/DELAYLOAD:rstrtmgr.dll",
"/DELAYLOAD:setupapi.dll",
"/DELAYLOAD:shell32.dll",
"/DELAYLOAD:shlwapi.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:urlmon.dll",
"/DELAYLOAD:user32.dll",
"/DELAYLOAD:usp10.dll",
"/DELAYLOAD:uxtheme.dll",
"/DELAYLOAD:wer.dll",
"/DELAYLOAD:wevtapi.dll",
"/DELAYLOAD:wininet.dll",
"/DELAYLOAD:winusb.dll",
"/DELAYLOAD:wsock32.dll",
"/DELAYLOAD:wtsapi32.dll",
]
}
config("delayloads_not_for_child_dll") {
ldflags = [
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:crypt32.dll",
"/DELAYLOAD:dbghelp.dll",
"/DELAYLOAD:dhcpcsvc.dll",
"/DELAYLOAD:dwrite.dll",
"/DELAYLOAD:iphlpapi.dll",
"/DELAYLOAD:oleaut32.dll",
"/DELAYLOAD:secur32.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:userenv.dll",
"/DELAYLOAD:winhttp.dll",
"/DELAYLOAD:winmm.dll",
"/DELAYLOAD:winspool.drv",
"/DELAYLOAD:wintrust.dll",
"/DELAYLOAD:ws2_32.dll",
]
}
# CRT --------------------------------------------------------------------------
# Configures how the runtime library (CRT) is going to be used.
# See https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx for a reference of
# what each value does.
config("default_crt") {
if (is_component_build) {
# Component mode: dynamic CRT. Since the library is shared, it requires
# exceptions or will give errors about things not matching, so keep
# exceptions on.
configs = [ ":dynamic_crt" ]
} else {
if (current_os == "winuwp") {
# https://blogs.msdn.microsoft.com/vcblog/2014/06/10/the-great-c-runtime-crt-refactoring/
# contains a details explanation of what is happening with the Windows
# CRT in Visual Studio releases related to Windows store applications.
configs = [ ":dynamic_crt" ]
} else {
# Desktop Windows: static CRT.
configs = [ ":static_crt" ]
}
}
}
# Use this to force use of the release CRT when building perf-critical build
# tools that need to be fully optimized even in debug builds, for those times
# when the debug CRT is part of the bottleneck. This also avoids *implicitly*
# defining _DEBUG.
config("release_crt") {
if (is_component_build) {
cflags = [ "/MD" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=-crt-static" ]
} else {
# /MD specifies msvcrt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly. Once
# https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug).
rustflags = [ "-Clink-arg=msvcrt.lib" ]
}
if (use_custom_libcxx) {
# On Windows, including libcpmt[d]/msvcprt[d] explicitly links the C++
# standard library, which libc++ needs for exception_ptr internals.
ldflags = [ "/DEFAULTLIB:msvcprt.lib" ]
}
} else {
cflags = [ "/MT" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=+crt-static" ]
} else {
# /MT specifies libcmt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly. Once
# https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug).
rustflags = [ "-Clink-arg=libcmt.lib" ]
}
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:libcpmt.lib" ]
}
}
}
config("dynamic_crt") {
if (is_debug) {
# This pulls in the DLL debug CRT and defines _DEBUG
cflags = [ "/MDd" ]
# /MDd specifies msvcrtd.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug). We
# can't support prebuilt stdlib in this path until then.
rustflags = [ "-Clink-arg=msvcrtd.lib" ]
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:msvcprtd.lib" ]
}
} else {
cflags = [ "/MD" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=-crt-static" ]
} else {
# /MD specifies msvcrt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we
# should instead tell rustc which CRT to use (static/dynamic +
# release/debug).
rustflags = [ "-Clink-arg=msvcrt.lib" ]
}
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:msvcprt.lib" ]
}
}
}
config("static_crt") {
if (is_debug) {
# This pulls in the static debug CRT and defines _DEBUG
cflags = [ "/MTd" ]
# /MTd specifies libcmtd.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we should
# instead tell rustc which CRT to use (static/dynamic + release/debug). We
# can't support prebuilt stdlib in this path until then.
rustflags = [ "-Clink-arg=libcmtd.lib" ]
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:libcpmtd.lib" ]
}
} else {
cflags = [ "/MT" ]
if (rust_prebuilt_stdlib) {
rustflags = [ "-Ctarget-feature=+crt-static" ]
} else {
# /MT specifies libcmt.lib as the CRT library. Rust needs to agree, so
# we specify it explicitly.
# Once https://github.com/rust-lang/rust/issues/39016 is resolved we
# should instead tell rustc which CRT to use (static/dynamic +
# release/debug).
rustflags = [ "-Clink-arg=libcmt.lib" ]
}
if (use_custom_libcxx) {
ldflags = [ "/DEFAULTLIB:libcpmt.lib" ]
}
}
}
# Subsystem --------------------------------------------------------------------
# This is appended to the subsystem to specify a minimum version.
if (current_cpu == "x64") {
# The number after the comma is the minimum required OS version.
# 5.02 = Windows Server 2003.
subsystem_version_suffix = ",10.0"
} else if (current_cpu == "arm64") {
# Windows ARM64 requires Windows 10.
subsystem_version_suffix = ",10.0"
} else {
# 5.01 = Windows XP.
subsystem_version_suffix = ",10.0"
}
config("console") {
ldflags = [ "/SUBSYSTEM:CONSOLE$subsystem_version_suffix" ]
}
config("windowed") {
ldflags = [ "/SUBSYSTEM:WINDOWS$subsystem_version_suffix" ]
}
# Incremental linking ----------------------------------------------------------
# Applies incremental linking or not depending on the current configuration.
config("default_incremental_linking") {
# Enable incremental linking for debug builds and all component builds - any
# builds where performance is not job one.
# TODO(thakis): Always turn this on with lld, no reason not to.
if (is_debug || is_component_build) {
ldflags = [ "/INCREMENTAL" ]
if (use_lld) {
# lld doesn't use ilk files and doesn't really have an incremental link
# mode; the only effect of the flag is that the .lib file timestamp isn't
# updated if the .lib doesn't change.
# TODO(thakis): Why pass /OPT:NOREF for lld, but not otherwise?
# TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in
# lld.
ldflags += [ "/OPT:NOREF" ]
}
} else {
ldflags = [ "/INCREMENTAL:NO" ]
}
}
# Character set ----------------------------------------------------------------
# Not including this config means "ansi" (8-bit system codepage).
config("unicode") {
defines = [
"_UNICODE",
"UNICODE",
]
}
# Lean and mean ----------------------------------------------------------------
# Some third party code might not compile with WIN32_LEAN_AND_MEAN so we have
# to have a separate config for it. Remove this config from your target to
# get the "bloaty and accommodating" version of windows.h.
config("lean_and_mean") {
defines = [ "WIN32_LEAN_AND_MEAN" ]
}
# Nominmax --------------------------------------------------------------------
# Some third party code defines NOMINMAX before including windows.h, which
# then causes warnings when it's been previously defined on the command line.
# For such targets, this config can be removed.
config("nominmax") {
defines = [ "NOMINMAX" ]
}

View File

@ -1 +0,0 @@
SSE2

View File

@ -1,84 +0,0 @@
google_api_key = ""
google_default_client_id = ""
google_default_client_secret = ""
visual_studio_version = "2022"
msvc_use_sse2 = true
# clang_base_path = "/usr/lib/llvm-16"
# clang_version = "16"
# use_polly = true
target_os = "win"
target_cpu = "x86"
is_official_build = true
is_debug = false
enable_stripping = true
dcheck_always_on = false
exclude_unwind_tables = true
# enable_debugallocation = false
enable_iterator_debugging = false
disable_fieldtrial_testing_config = true
enable_reporting = false
enable_resource_allowlist_generation = false
enable_profiling = false
is_component_build = false
symbol_level = 0
enable_nacl = false
optimize_webui = true
enable_webui_tab_strip = true
is_clang = true
treat_warnings_as_errors = false
# llvm_force_head_revision = true
use_lld = true
v8_symbol_level = 0
v8_enable_fast_torque = true
v8_enable_builtins_optimization = true
v8_enable_maglev = true
v8_enable_turbofan = true
use_v8_context_snapshot = true
blink_symbol_level = 0
enable_precompiled_headers = false
media_use_ffmpeg = true
media_use_libvpx = true
# enable_hls_sample_aes = true
enable_hls_demuxer = true
enable_ink = false
enable_discovery = false
enable_cros_media_app = false
proprietary_codecs = true
ffmpeg_branding = "Chrome"
# Set to false for Polly build
clang_use_chrome_plugins = true
enable_ffmpeg_video_decoders = true
is_component_ffmpeg = false
use_webaudio_ffmpeg = false
use_webaudio_pffft = true
# enable_av1_decoder = true
# enable_dav1d_decoder = true
enable_library_cdms = true
enable_widevine = true
bundle_widevine_cdm = true
# enable_widevine_cdm_component = true
# enable_media_foundation_widevine_cdm = true
ignore_missing_widevine_signing_cert = true
enable_media_drm_storage = true
# enable_media_overlay = true
enable_hangout_services_extension = true
rtc_use_h264 = true
rtc_include_ilbc = true
# rtc_build_with_neon = true
rtc_build_examples = false
rtc_enable_avx2 = false
enable_vr = true
use_vr_assets_component = true
enable_platform_hevc = true
enable_hevc_parser_and_hw_decoder = true
enable_platform_ac3_eac3_audio = true
enable_platform_dolby_vision = true
enable_platform_encrypted_dolby_vision = true
enable_platform_mpeg_h_audio = true
enable_platform_dts_audio = true
enable_mse_mpeg2ts_stream_parser = true
use_text_section_splitting = true
use_thin_lto = true
thin_lto_enable_optimizations = true
chrome_pgo_phase = 2
pgo_data_path = "/home/alex/chromium/src/chrome/build/pgo_profiles/chrome-win32-5845-1692121706-2bf741a507a4b74a6fe504d4b652b559596b90f8.profdata"

View File

@ -109,16 +109,16 @@ config("compiler") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m32" ]
} else {
cflags += [ "--target=i386-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=i386-windows" ]
}
} else if (current_cpu == "x64") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m64" ]
} else {
cflags += [ "--target=x86_64-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=x86_64-windows" ]
}
} else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-pc-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=aarch64-pc-windows" ]
} else {
assert(false, "unknown current_cpu " + current_cpu)
}
@ -386,18 +386,32 @@ config("cfi_linker") {
}
# This is a superset of all the delayloads needed for chrome.exe, chrome.dll,
# chrome_child.dll, and chrome_elf.dll. The linker will automatically ignore
# anything which is not linked to the binary at all.
# Most of the dlls are simply not required at startup (or at all, depending
# on how the browser is used). The following dlls are interconnected and need to
# be delayloaded together to ensure user32 does not load too early or at all,
# depending on the process type: user32, gdi32, comctl32, comdlg32, cryptui,
# d3d9, dwmapi, imm32, msi, ole32, oleacc, rstrtmgr, shell32, shlwapi, and
# uxtheme.
# There are some exceptions to this list which need to be declared separately.
# Some dlls cannot be delayloaded by chrome_child.dll due to the sandbox
# restrictions that prevent them from being loaded properly. Those dlls are
# specified in the separate config below.
# and chrome_elf.dll. The linker will automatically ignore anything which is not
# linked to the binary at all (it is harmless to have an unmatched /delayload).
#
# We delayload most libraries as the dlls are simply not required at startup (or
# at all, depending on the process type). In unsandboxed process they will load
# when first needed.
#
# Some dlls open handles when they are loaded, and we may not want them to be
# loaded in renderers or other sandboxed processes. Conversely, some dlls must
# be loaded before sandbox lockdown.
#
# Some dlls themselves load others - in particular, to avoid unconditionally
# loading user32.dll - we require that the following dlls are all delayloaded:
# user32, gdi32, comctl32, comdlg32, cryptui, d3d9, dwmapi, imm32, msi, ole32,
# oleacc, rstrtmgr, shell32, shlwapi, and uxtheme.
#
# Advapi32.dll is unconditionally loaded at process startup on Windows 10, but
# on Windows 11 it is not, which makes it worthwhile to delay load it.
# Additionally, advapi32.dll exports several functions that are forwarded to
# other DLLs such as cryptbase.dll. If calls to those functions are present but
# there are some processes where the functions are never called then delay
# loading of advapi32.dll avoids pulling in those DLLs (such as cryptbase.dll)
# unnecessarily, even if advapi32.dll itself is loaded.
#
# This config applies to chrome.exe, chrome.dll, chrome_elf.dll (& others).
#
# This config should also be used for any test binary whose goal is to run
# tests with the full browser.
config("delayloads") {
@ -405,6 +419,7 @@ config("delayloads") {
"/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll",
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:comctl32.dll",
"/DELAYLOAD:comdlg32.dll",
"/DELAYLOAD:credui.dll",
@ -445,9 +460,10 @@ config("delayloads") {
]
}
# This config (along with `:delayloads`) applies to chrome.exe & chrome_elf.dll.
# Entries should not appear in both configs.
config("delayloads_not_for_child_dll") {
ldflags = [
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:crypt32.dll",
"/DELAYLOAD:dbghelp.dll",
"/DELAYLOAD:dhcpcsvc.dll",
@ -455,7 +471,6 @@ config("delayloads_not_for_child_dll") {
"/DELAYLOAD:iphlpapi.dll",
"/DELAYLOAD:oleaut32.dll",
"/DELAYLOAD:secur32.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:userenv.dll",
"/DELAYLOAD:winhttp.dll",
"/DELAYLOAD:winmm.dll",
@ -640,6 +655,10 @@ config("default_incremental_linking") {
# TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in
# lld.
ldflags += [ "/OPT:NOREF" ]
# TODO(crbug.com/1444129): Mixing incremental and icf produces an error
# in lld-link.
ldflags += [ "/OPT:NOICF" ]
}
} else {
ldflags = [ "/INCREMENTAL:NO" ]

View File

@ -109,16 +109,16 @@ config("compiler") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m32" ]
} else {
cflags += [ "--target=i386-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=i386-windows" ]
}
} else if (current_cpu == "x64") {
if (host_cpu == "x86" || host_cpu == "x64") {
cflags += [ "-m64" ]
} else {
cflags += [ "--target=x86_64-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=x86_64-windows" ]
}
} else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-pc-windows", "/clang:-O3", "-Xclang", "-O3", "-Wno-unused-command-line-argument", ]
cflags += [ "--target=aarch64-pc-windows" ]
} else {
assert(false, "unknown current_cpu " + current_cpu)
}
@ -390,18 +390,32 @@ config("cfi_linker") {
}
# This is a superset of all the delayloads needed for chrome.exe, chrome.dll,
# chrome_child.dll, and chrome_elf.dll. The linker will automatically ignore
# anything which is not linked to the binary at all.
# Most of the dlls are simply not required at startup (or at all, depending
# on how the browser is used). The following dlls are interconnected and need to
# be delayloaded together to ensure user32 does not load too early or at all,
# depending on the process type: user32, gdi32, comctl32, comdlg32, cryptui,
# d3d9, dwmapi, imm32, msi, ole32, oleacc, rstrtmgr, shell32, shlwapi, and
# uxtheme.
# There are some exceptions to this list which need to be declared separately.
# Some dlls cannot be delayloaded by chrome_child.dll due to the sandbox
# restrictions that prevent them from being loaded properly. Those dlls are
# specified in the separate config below.
# and chrome_elf.dll. The linker will automatically ignore anything which is not
# linked to the binary at all (it is harmless to have an unmatched /delayload).
#
# We delayload most libraries as the dlls are simply not required at startup (or
# at all, depending on the process type). In unsandboxed process they will load
# when first needed.
#
# Some dlls open handles when they are loaded, and we may not want them to be
# loaded in renderers or other sandboxed processes. Conversely, some dlls must
# be loaded before sandbox lockdown.
#
# Some dlls themselves load others - in particular, to avoid unconditionally
# loading user32.dll - we require that the following dlls are all delayloaded:
# user32, gdi32, comctl32, comdlg32, cryptui, d3d9, dwmapi, imm32, msi, ole32,
# oleacc, rstrtmgr, shell32, shlwapi, and uxtheme.
#
# Advapi32.dll is unconditionally loaded at process startup on Windows 10, but
# on Windows 11 it is not, which makes it worthwhile to delay load it.
# Additionally, advapi32.dll exports several functions that are forwarded to
# other DLLs such as cryptbase.dll. If calls to those functions are present but
# there are some processes where the functions are never called then delay
# loading of advapi32.dll avoids pulling in those DLLs (such as cryptbase.dll)
# unnecessarily, even if advapi32.dll itself is loaded.
#
# This config applies to chrome.exe, chrome.dll, chrome_elf.dll (& others).
#
# This config should also be used for any test binary whose goal is to run
# tests with the full browser.
config("delayloads") {
@ -409,6 +423,7 @@ config("delayloads") {
"/DELAYLOAD:api-ms-win-core-winrt-error-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll",
"/DELAYLOAD:api-ms-win-core-winrt-string-l1-1-0.dll",
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:comctl32.dll",
"/DELAYLOAD:comdlg32.dll",
"/DELAYLOAD:credui.dll",
@ -449,9 +464,10 @@ config("delayloads") {
]
}
# This config (along with `:delayloads`) applies to chrome.exe & chrome_elf.dll.
# Entries should not appear in both configs.
config("delayloads_not_for_child_dll") {
ldflags = [
"/DELAYLOAD:advapi32.dll",
"/DELAYLOAD:crypt32.dll",
"/DELAYLOAD:dbghelp.dll",
"/DELAYLOAD:dhcpcsvc.dll",
@ -459,7 +475,6 @@ config("delayloads_not_for_child_dll") {
"/DELAYLOAD:iphlpapi.dll",
"/DELAYLOAD:oleaut32.dll",
"/DELAYLOAD:secur32.dll",
"/DELAYLOAD:uiautomationcore.dll",
"/DELAYLOAD:userenv.dll",
"/DELAYLOAD:winhttp.dll",
"/DELAYLOAD:winmm.dll",
@ -644,6 +659,10 @@ config("default_incremental_linking") {
# TODO(thakis): /INCREMENTAL is on by default in link.exe, but not in
# lld.
ldflags += [ "/OPT:NOREF" ]
# TODO(crbug.com/1444129): Mixing incremental and icf produces an error
# in lld-link.
ldflags += [ "/OPT:NOICF" ]
}
} else {
ldflags = [ "/INCREMENTAL:NO" ]

View File

@ -425,9 +425,18 @@ If you update this file, be sure also to update google_chrome_strings.grd. -->
Not used in Thorium. Placeholder to keep resource maps in sync.
</message>
</if>
<message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box." translateable="false">
Not used in Thorium. Placeholder to keep resource maps in sync.
</message>
<if expr="_is_chrome_for_testing_branded">
<then>
<message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box.">
Terms of Service
</message>
</then>
<else>
<message name="IDS_ABOUT_TERMS_OF_SERVICE" desc="The terms of service label in the About box." translateable="false">
Not used in Thorium. Placeholder to keep resource maps in sync.
</message>
</else>
</if>
<if expr="is_macosx">
<message name="IDS_MAC_10_13_OBSOLETE" desc="A message displayed on an at-launch infobar and About (Help) page warning the user that the OS version they are using will soon be or is already unsupported.">
To get future Thorium updates, you'll need macOS 10.15 or later. This computer is using macOS 10.13.
@ -683,11 +692,9 @@ Permissions you've already given to websites and apps may apply to this account.
desc="Subpage summary of warning for Deep Scanning.">
Thorium recommends scanning this file because it may be dangerous
</message>
<!-- Tailored Warning in Download Bubble Items -->
<message name="IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_SUSPICIOUS_ARCHIVE"
desc="Subpage summary for suspicious archive warning.">
Thorium blocked this archive file because it may hide malware
<message name="IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_WARNING_BLOCKED_LEARN_MORE_LINK"
desc="Text for the link to the help page about why Thorium blocks some downloaded files. This string will be embedded in a longer sentence that makes up the whole label.">
Thorium blocks some downloads
</message>
<!-- Download Shelf Items -->
@ -770,11 +777,14 @@ Permissions you've already given to websites and apps may apply to this account.
<message name="IDS_SAFETY_CHECK_EXTENSIONS_MALWARE" desc="The text explaining the reason for disabling extension. The extension in question contains malware.">
This extension contains malware and is unsafe. Remove it from Thorium so it can no longer see and change your data on sites you visit, including your personal info.
</message>
<message name="IDS_SAFETY_CHECK_EXTENSIONS_POLICY_VIOLATION" desc="The text explaining the reason for disabling extension. The extension in question violates Thorium Web Store policy.">
This extension violates the Chrome Web Store policy, and might be unsafe. Remove it from Thorium so it can no longer see and change your data on sites you visit, including your personal info.
<message name="IDS_SAFETY_CHECK_EXTENSIONS_POLICY_VIOLATION" desc="The text explaining the reason for disabling extension. The extension in question violates Thorium Web Store policy.">
This extension violates the Thorium Web Store policy, and might be unsafe. Remove it from Thorium so it can no longer see and change your data on sites you visit, including your personal info.
</message>
<message name="IDS_SAFETY_CHECK_EXTENSIONS_UNPUBLISHED" desc="The text explaining the reason for disabling extension. The extension in question was unpublished by the developer.">
This extension was unpublished by its developer, and might be unsafe. Remove it from Thorium so it can no longer see and change your data on sites you visit, including your personal info.
This extension was unpublished by its developer, and might be unsafe. Remove it from Thorium so it can no longer see and change your data on sites you visit, including your personal info.
</message>
<message name="IDS_EXTENSIONS_SAFETY_CHECK_PRIMARY_LABEL" desc="Alerts the user that the extension should be reviewed.">
Thorium recommends you review this extension
</message>
<!-- chrome://settings/extensions page -->
@ -945,9 +955,18 @@ Permissions you've already given to websites and apps may apply to this account.
</if>
<!-- NTP strings -->
<message name="IDS_NTP_CUSTOMIZE_BUTTON_LABEL" desc="Label for button on the New Tab Page that opens dialog to customize Thorium browser.">
Customize Thorium
</message>
<if expr="_is_chrome_for_testing_branded">
<then>
<message name="IDS_NTP_CUSTOMIZE_BUTTON_LABEL" desc="Label for button on the New Tab Page that opens dialog to customize Thorium for Testing browser.">
Customize Thorium for Testing
</message>
</then>
<else>
<message name="IDS_NTP_CUSTOMIZE_BUTTON_LABEL" desc="Label for button on the New Tab Page that opens dialog to customize Thorium browser.">
Customize Thorium
</message>
</else>
</if>
<!-- Signin Email Confirmation tab modal dialog -->
<if expr="not chromeos_ash">
@ -1057,17 +1076,19 @@ Permissions you've already given to websites and apps may apply to this account.
<if expr="not is_android">
<!-- WebHID system tray icon -->
<message name="IDS_WEBHID_SYSTEM_TRAY_ICON_TITLE_SINGLE_EXTENSION" desc="Title for the WebHID system tray icon when one or more HID devices are being accessed by an extension.">
<message name="IDS_WEBHID_SYSTEM_TRAY_ICON_TITLE" desc="Title for the WebHID system tray icon">
{NUM_DEVICES, plural,
=0 {A Thorium extension was accessing HID devices}
=1 {A Thorium extension is accessing 1 HID device}
other {A Thorium extension is accessing # HID devices}}
=0 {1 HID device was being accessed by one or more Thorium extensions}
=1 {1 HID device is being accessed by one or more Thorium extensions}
other {# HID devices are being accessed by one or more Thorium extensions}}
</message>
<message name="IDS_WEBHID_SYSTEM_TRAY_ICON_TITLE_MULTIPLE_EXTENSIONS" desc="Title for the WebHID system tray icon when HID devices are being accessed by multiple extensions.">
<!-- WebUSB system tray icon -->
<message name="IDS_WEBUSB_SYSTEM_TRAY_ICON_TITLE" desc="Title for the WebUSB system tray icon">
{NUM_DEVICES, plural,
=0 {Thorium extensions were accessing HID devices}
=1 {Thorium extensions are accessing HID devices}
other {Thorium extensions are accessing # HID devices}}
=0 {1 USB device was being accessed by one or more Thorium extensions}
=1 {1 USB device is being accessed by one or more Thorium extensions}
other {# USB devices are being accessed by one or more Thorium extensions}}
</message>
</if>
@ -1473,8 +1494,8 @@ Permissions you've already given to websites and apps may apply to this account.
</message>
<message name="IDS_IDLE_TIMEOUT_CLEAR_BODY" desc="First sentence in the Idle Timeout dialog, warning the user that Thorium is going to clear data automatically.">
{COUNT, plural,
=1 {Your organization automatically deletes browsing data when Thorium isn't used for 1 minute. This could include history, autofill, and downloads. Your existing tabs will remain open.}
other {Your organization automatically deletes browsing data when Thorium isn't used for # minutes. This could include history, autofill, and downloads. Your existing tabs will remain open.}}
=1 {Your organization automatically deletes browsing data when Thorium isn't used for 1 minute. This could include history, autofill, and downloads. Your tabs will stay open.}
other {Your organization automatically deletes browsing data when Thorium isn't used for # minutes. This could include history, autofill, and downloads. Your tabs will stay open.}}
</message>
<message name="IDS_IDLE_TIMEOUT_CLOSE_AND_CLEAR_BODY" desc="First sentence in the Idle Timeout dialog, warning the user that Thorium is going to close and clear data automatically.">
{COUNT, plural,
@ -1491,13 +1512,11 @@ Permissions you've already given to websites and apps may apply to this account.
Help us improve Thorium
</message>
</if>
<!-- Thorium parent extension/app install blocking dialog. -->
<if expr="enable_extensions and enable_supervised_users">
<message name="IDS_EXTENSION_INSTALL_BLOCKED_BY_PARENT_PROMPT_MESSAGE" desc="Text for the dialog indicating that a parent has blocked extensions and apps.">
Your parent has turned off "Permissions for sites, apps and extensions" for Thorium. Adding this <ph name="EXTENSION_TYPE_PARAMETER">$1<ex>extension</ex></ph> is not allowed.
</message>
<message name="IDS_EXTENSION_ENABLE_BLOCKED_BY_PARENT_PROMPT_MESSAGE" desc="Text for the dialog indicating that a parent has blocked extensions and apps.">
Your parent has turned off "Permissions for sites, apps and extensions" for Thorium. Enabling this <ph name="EXTENSION_TYPE_PARAMETER">$1<ex>extension</ex></ph> is not allowed.
<message name="IDS_EXTENSION_PERMISSIONS_BLOCKED_BY_PARENT_PROMPT_MESSAGE" desc="Text for the dialog indicating that a parent has blocked extensions and apps.">
Your parent has turned off "Permissions for sites, apps and extensions" for Thorium
</message>
</if>
@ -1534,9 +1553,6 @@ Permissions you've already given to websites and apps may apply to this account.
<message name="IDS_PROFILE_PICKER_PROFILE_CREATION_FLOW_PROFILE_TYPE_CHOICE_TITLE" desc="Profile picker profile type choice title">
Set up your new Thorium profile
</message>
<message name="IDS_PROFILE_PICKER_PROFILE_CREATION_FLOW_LOCAL_PROFILE_CREATION_TITLE" desc="Title for the local profile customiztion screen on the picker.">
Customize your Thorium profile
</message>
<message name="IDS_PROFILE_PICKER_IPH_FOR_PROFILES_TEXT" desc="Text of the IPH bubble for introducing profiles.">
Each profile holds its own Thorium info like bookmarks, history, passwords, and more
</message>
@ -1580,6 +1596,17 @@ Permissions you've already given to websites and apps may apply to this account.
</message>
</if>
<!-- Default Browser Promo -->
<message name="IDS_FRE_DEFAULT_BROWSER_TITLE" desc="Title for the page that prompts user to set Thorium as their default browser in the first run experience.">
Set Thorium as your default browser
</message>
<message name="IDS_FRE_DEFAULT_BROWSER_SUBTITLE_NEW" desc="Subtitle for the page that prompts user to set Thorium as their default browser in the first run experience.">
Use Thorium anytime you click links in messages, documents, and other apps
</message>
<message name="IDS_FRE_DEFAULT_BROWSER_ILLUSTRATION_ALT_TEXT" desc="Alt text for the illustration in the page that prompts user to set Thorium as their default browser.">
Thorium logo inside a computer screen.
</message>
<!-- Profile switch IPH -->
<message name="IDS_PROFILE_SWITCH_PROMO" desc="Text of the In-Product-Help bubble for profile switching.">
You can switch between Thorium profiles here

File diff suppressed because it is too large Load Diff

View File

@ -108,7 +108,7 @@
</then>
<else>
<message name="IDS_SETTINGS_DEFAULT_BROWSER_SECONDARY" desc="The text displayed when Thorium is installed in side-by-side mode, which does not support setting as the default browser.">
This is a secondary installation of Chromium, and cannot be made your default browser.
This is a secondary installation of Thorium, and cannot be made your default browser.
</message>
</else>
</if>
@ -145,8 +145,8 @@
<message name="IDS_SETTINGS_SITE_DATA_PAGE_CLEAR_ON_EXIT_RADIO_SUBLABEL" desc="A description of the benefit/cost of choosing 'Sites can save content on your device. In short, a site will remember your preferences, shopping cart content, etc. during this browser session. But once you close all open windows, and then visit the site again, it's as if you're coming to the site for the first time.">
Sites will probably work as you expect but won't remember you after you close all Thorium windows
</message>
<message name="IDS_SETTINGS_SITE_DATA_PAGE_CLEAR_ON_EXIT_EXCEPTIONS_SUB_HEADING" desc="2 of 3. A label within 'Customized behaviors' that allows for exceptions to the 'On-device site data' setting. This label and the list of sites that can appear beneath it is only relevant if the user has chosen to allow 'on-device site data' as the default value above.">
Always clear site data from your device when you close Thorium
<message name="IDS_SETTINGS_SITE_DATA_PAGE_DELETE_ON_EXIT_EXCEPTIONS_SUB_HEADING" desc="2 of 3. A label within 'Customized behaviors' that allows for exceptions to the 'On-device site data' setting. This label and the list of sites that can appear beneath it is only relevant if the user has chosen to allow 'on-device site data' as the default value above.">
Always delete site data from your device when you close Thorium
</message>
<!-- Privacy Guide -->
@ -165,9 +165,15 @@
<message name="IDS_SETTINGS_PRIVACY_GUIDE_COMPLETION_CARD_WAA_SUB_LABEL" desc="Text of the Web and App Activity sublabel in the completion card of the 'Privacy Guide'.">
Choose whether to include Thorium history for more personalized experiences in Google services
</message>
<message name="IDS_SETTINGS_PRIVACY_GUIDE_MSBB_FEATURE_DESCRIPTION3" desc="A part of the feature description of 'make searches and browsing better' in the 'Privacy Guide'.">
If you also save your bookmarks in your Google Account, you can track product prices in Thorium and get notified when the price drops
</message>
<message name="IDS_SETTINGS_PRIVACY_GUIDE_MSBB_PRIVACY_DESCRIPTION2" desc="A part of the privacy description of 'make searches and browsing better' in the 'Privacy Guide'.">
If you also share Thorium usage reports, those reports include the URLs you visit
</message>
<message name="IDS_SETTINGS_PRIVACY_SEARCH_SUGGESTIONS_PRIVACY_DESCRIPTION2" desc="A part of the privacy description of 'search suggestions' in the 'Privacy Guide'.">
Depending on your settings, Thorium may also send cookies and your current URL
</message>
<!-- Privacy Sandbox -->
<message name="IDS_SETTINGS_PRIVACY_SANDBOX_LEARN_MORE_DIALOG_TOPICS_TITLE" 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.">
@ -330,4 +336,9 @@
Information about how Thorium manages its root certificates
</message>
</if>
<!-- Safety Hub -->
<message name="IDS_SETTINGS_SAFETY_HUB_ENTRY_POINT_NOTHING_TO_DO" desc="This text describes what Safety Hub does (regularly checking whether Thorium settings are safe) and indicates whether the user should take action. This text is shown when Safety Hub has not identified any issues at this time. There is nothing to do for the user. As future checks of Safety Hub may identify issues, this state may change. This text is shown on a card in privacy settings next to a button that leads to Safety Hub.">
Thorium regularly checks to make sure your browser has the safest settings. We'll let you know if anything needs your review.
</message>
</grit-part>

View File

@ -47,6 +47,10 @@
<message name="IDS_SETTINGS_ABOUT_PAGE_REPORT_AN_ISSUE" desc="Text of the button which allows the user to report an issue with Thorium.">
Report an issue
</message>
<message name="IDS_SETTINGS_ABOUT_PAGE_PRIVACY_POLICY" desc="Text of the button which allows the user to open the privacy policy.">
Privacy policy
</message>
<message name="IDS_SETTINGS_ABOUT_PAGE_SEND_FEEDBACK" desc="Text of the button which allows the user to send feedback with Thorium.">
Send feedback
</message>
@ -128,21 +132,19 @@
Automatically translates captions
</message>
<if expr="chromeos_ash">
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE_ENGLISH_ONLY" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen. Only works in Thorium browser initially. Currently only works for English media.">
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE_BROWSER_ONLY_ENGLISH_ONLY" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen. Only works in Thorium browser initially. Currently only works for English media.">
Automatically creates captions for media in Thorium browser (currently available in English). Audio and captions are processed locally and never leave the device.
</message>
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen. Only works in Thorium browser initially.">
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE_BROWSER_ONLY" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen. Only works in Thorium browser initially.">
Automatically creates captions for media in Thorium browser. Audio and captions are processed locally and never leave the device.
</message>
</if>
<if expr="not chromeos_ash">
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE_ENGLISH_ONLY" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen. Currently only works for English media.">
Automatically creates captions for English audio and video. Audio and captions never leave your device.
</message>
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen.">
Automatically creates captions for audio and video. Audio and captions never leave your device.
</message>
</if>
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE_ENGLISH_ONLY" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen. Currently only works for English media.">
Automatically creates captions for English audio and video. Audio and captions never leave your device.
</message>
<message name="IDS_SETTINGS_CAPTIONS_ENABLE_LIVE_CAPTION_SUBTITLE" desc="Description text for Live Caption feature. When audio or video is playing, the user will see captions on the screen.">
Automatically creates captions for audio and video. Audio and captions never leave your device.
</message>
<message name="IDS_SETTINGS_CAPTIONS_LIVE_CAPTION_DOWNLOAD_PROGRESS" desc="Download progress indicator after Live Caption is enabled. The user needs to download certain files for the feature to work.">
Downloading speech recognition files... <ph name="PERCENT">$1<ex>17</ex></ph>%
</message>
@ -155,6 +157,9 @@
<message name="IDS_SETTINGS_CAPTIONS_LIVE_CAPTION_DOWNLOAD_ERROR_REBOOT_REQUIRED" desc="Error message shown when a OS reboot is required to install the Live Caption files.">
Can't install speech files. Your device needs to be updated. Restart your device and try again.
</message>
<message name="IDS_SETTINGS_CAPTIONS_MASK_OFFENSIVE_WORDS_TITLE" desc="Name of the setting to hide profanity (offensive words) for the Live Caption feature.">
Hide profanity
</message>
<message name="IDS_SETTINGS_ENABLE_CARET_BROWSING_TITLE" desc="Name of the setting to enable Caret Browsing, which allows you to move around any web page using a text caret.">
Navigate pages with a text cursor
</message>
@ -230,6 +235,9 @@
<message name="IDS_SETTINGS_CHROME_COLORS" desc="Text of the label describing 'Thorium Colors' theme.">
Thorium Colors
</message>
<message name="IDS_SETTINGS_COLOR_SCHEME_MODE" desc="Text of the label for selecting a color scheme mode for the browser.">
Mode
</message>
<message name="IDS_SETTINGS_SHOW_HOME_BUTTON" desc="Label for the checkbox which enables or disables showing the home button in the toolbar.">
Show home button
</message>
@ -387,9 +395,6 @@
<message name="IDS_SETTINGS_AUTOFILL_ADDRESS_HONORIFIC_LABEL" desc="This is the label for the field that lets the user modify the title that will be used when auto-filling forms on the web. A 'Title' field in a web form could be a prefix like Ms., Mx., or Dr. or a position held, like Captain or Rabbi." meaning="Honorific">
Title
</message>
<message name="IDS_SETTINGS_AUTOFILL_CREDIT_CARD_TYPE_COLUMN_LABEL" desc="Label for the column containing the type of credit card that is saved. The type is in the format: `Visa ****1234`.">
Type
</message>
<message name="IDS_SETTINGS_AUTOFILL_DETAIL" desc="Description of what toggling the 'Autofill' setting does. Immediately underneath IDS_SETTINGS_AUTOFILL">
Enable Autofill to fill out forms in a single click
</message>
@ -417,9 +422,6 @@
<message name="IDS_AUTOFILL_EDIT_SERVER_CREDIT_CARD" desc="The text shown in the secondary action menu button to direct users to pay.google.com to edit the information of credit cards stored in Google Payments.">
Edit in Google Pay
</message>
<message name="IDS_AUTOFILL_VIRTUAL_CARD_ENABLED_LABEL" desc="The text shown next to the card summary to indicate that a virtual card has been generated for the credit card and is enabled. Virtual cards are credit cards generated from the actual cards and provide extra security.">
(Virtual card enabled)
</message>
<message name="IDS_AUTOFILL_VIRTUAL_CARD_TURNED_ON_LABEL" desc="The text shown next to the card summary to indicate that a virtual card has been enabled for the credit card. Virtual cards are credit cards generated from the actual cards and provide extra security.">
Virtual card turned on
</message>
@ -684,9 +686,12 @@
<message name="IDS_SETTINGS_PASSWORDS_AUTOSIGNIN_CHECKBOX_DESC" desc="Text that describes the 'Auto Sign-in' functionality to users.">
Automatically sign in to sites and apps using saved credentials. If turned off, you'll be asked for confirmation every time before signing in to a site or app.
</message>
<message name="IDS_SETTINGS_PASSWORDS_LEAK_DETECTION_LABEL" desc="Label for a checkbox that allows users to choose whether chrome should check that credentials have been part of a leak.">
<message name="IDS_SETTINGS_PASSWORDS_LEAK_DETECTION_LABEL" desc="Label for a checkbox that allows users to choose whether Thorium should check that credentials have been part of a leak.">
Warn you if passwords are exposed in a data breach
</message>
<message name="IDS_SETTINGS_PASSWORDS_LEAK_DETECTION_LABEL_UPDATED" desc="Label for a checkbox that allows users to choose whether chrome should check that credentials have been part of a leak.">
Warn you if a password was compromised in a data breach
</message>
<message name="IDS_SETTINGS_PASSWORDS_LEAK_DETECTION_SIGNED_OUT_ENABLED_DESC" desc="Text that describes the 'Password Leak Detection' functionality to signed-out users who have not disabled the feature. This text always follows a sentence describing the feature.">
When you sign in to your Google Account, this feature is turned on.
</message>
@ -1408,7 +1413,7 @@
Browsing history
</message>
<message name="IDS_SETTINGS_CLEAR_COOKIES_AND_SITE_DATA_SUMMARY_BASIC" desc="A summary for the 'Cookies and site data' option in the 'Clear Browsing Data' screen, explaining that deleting cookies and site data will sign the user out of most websites.">
Signs you out of most sites.
Signs you out of most sites
</message>
<message name="IDS_SETTINGS_CLEAR_COOKIES_AND_SITE_DATA_SUMMARY_BASIC_WITH_EXCEPTION" desc="A summary for the 'Cookies and site data' option in the 'Clear Browsing Data' screen, explaining that deleting cookies and site data will sign the user out of most websites but your Google sign in will stay.">
Signs you out of most sites. You'll stay signed in to your Google Account so your synced data can be cleared.
@ -1644,9 +1649,6 @@
<message name="IDS_SETTINGS_LANGUAGES_PREFERRED_LANGUAGES_DESC" desc="Explanatory message about the list of preferred languages.">
Websites will show content in your preferred languages, when possible
</message>
<message name="IDS_SETTINGS_LANGUAGES_OFFER_TO_TRANSLATE_IN_THIS_LANGUAGE" desc="The label for a checkbox which indicates whether or not pages in this language should be translated by default.">
Offer to translate pages in this language
</message>
<message name="IDS_SETTINGS_LANGUAGES_OFFER_TO_ENABLE_TRANSLATE" desc="The label of the check-box that enables the prompt to translate a page.">
Use Google Translate
</message>
@ -2074,7 +2076,7 @@
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" desc="1 of 2 descriptions that appear if there are no sites in the list. This string is for the case that the Site-suggested ads setting IS on, but the user hasn't browsed any sites that have called the Site-suggested ads API.">
It can take up to a week for a list of sites to appear here based on your browsing history
No sites to show right now
</message>
<message name="IDS_SETTINGS_FLEDGE_PAGE_CURRENT_SITES_REGION_A11Y_DESCRIPTION" desc="Read by screen readers to describe a list of sites that appear on the page.">
List of recent sites you visited that can suggest ads to other sites as you keep browsing
@ -2225,10 +2227,10 @@
You'll browse faster because content is proactively loaded based on your current webpage visit
</message>
<message name="IDS_SETTINGS_PRIVACY_GUIDE_MSBB_FEATURE_DESCRIPTION2" desc="A part of the feature description of 'make searches and browsing better' in the 'Privacy Guide'.">
You'll get improved suggestions in the address bar
From the address bar, you can open page info to see additional info about the page you're visiting
</message>
<message name="IDS_SETTINGS_PRIVACY_GUIDE_MSBB_PRIVACY_DESCRIPTION1" desc="A part of the privacy description of 'make searches and browsing better' in the 'Privacy Guide'.">
URLs you visit are sent to Google to predict what sites you might visit next
URLs you visit are sent to Google to predict what sites you might visit next and to show you additional info about the page you're visiting
</message>
<message name="IDS_SETTINGS_PRIVACY_GUIDE_HISTORY_SYNC_CARD_HEADER" desc="Header of the history sync card in the 'Privacy Guide'.">
Choose whether to sync history
@ -2290,6 +2292,15 @@
<message name="IDS_SETTINGS_PRIVACY_GUIDE_SAFE_BROWSING_CARD_STANDARD_PROTECTION_FEATURE_DESCRIPTION1" desc="A part of the feature description of the standard protection section of the safe browsing card in the 'Privacy guide'.">
Detects and warns you about dangerous events when they happen
</message>
<message name="IDS_SETTINGS_PRIVACY_GUIDE_SEARCH_SUGGESTIONS_CARD_HEADER" desc="Header of the 'search suggestions' card in the 'Privacy Guide'.">
Choose whether to get additional search suggestions
</message>
<message name="IDS_SETTINGS_PRIVACY_SEARCH_SUGGESTIONS_FEATURE_DESCRIPTION1" desc="A part of the feature description of 'search suggestions' in the 'Privacy Guide'.">
When you click or type in the address bar or search box, you'll see suggestions from your default search engine. This is off in Incognito.
</message>
<message name="IDS_SETTINGS_PRIVACY_SEARCH_SUGGESTIONS_PRIVACY_DESCRIPTION1" desc="A part of the privacy description of 'search suggestions' in the 'Privacy Guide'.">
What you type in the address bar or search box is sent to your default search engine
</message>
<!-- Safety check -->
<message name="IDS_SETTINGS_SAFETY_CHECK_SECTION_TITLE" desc="'Safety check' is a noun phrase (sentence case). 'Safety check' refers to an area of the Settings page where users can quickly check whether their safety-related settings are fully protecting them.">
@ -2402,6 +2413,14 @@
<message name="IDS_SETTINGS_SAFETY_CHECK_UNUSED_SITE_PERMISSIONS_TOAST_LABEL" desc="'Unused Site Permissions' shows unused websites for which permissions have been revoked. This label is shown after a user has taken action to allow some permissions again.">
Permissions allowed again for <ph name="WEBSITE">$1<ex>www.example.com</ex></ph>
</message>
<!-- TODO(crbug/1443466): Change the string to translatable once it's final. -->
<message name="IDS_SETTINGS_SAFETY_CHECK_UNUSED_SITE_PERMISSIONS_SETTING_LABEL" translateable="false" desc="By default Thorium auto-revokes (disables) permissions (e.g. Camera, Location, etc.) for websites that were not visited for a while. This label is for the toggle that allows users to switch off/on this functionality.">
Automatically remove permissions from unused sites
</message>
<!-- TODO(crbug/1443466): Change the string to translatable once it's final. -->
<message name="IDS_SETTINGS_SAFETY_CHECK_UNUSED_SITE_PERMISSIONS_SETTING_SUBLABEL" translateable="false" desc="By default Thorium auto-revokes (disables) permissions (e.g. Camera, Location, etc.) for websites that were not visited for a while. This sublabel is for the toggle that allows users to switch off/on this functionality.">
To protect your data, remove permissions from sites you haven't visited in 2 months. Doesn't stop notifications.
</message>
<message name="IDS_SETTINGS_SAFETY_CHECK_UPDATES_PRIMARY_LABEL" desc="'Updates' is an element in safety check that shows the update status of Thorium.">
Updates
</message>
@ -2585,6 +2604,9 @@
<message name="IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC" desc="Description for safe browsing standard protection mode">
Standard protection against websites, downloads, and extensions that are known to be dangerous
</message>
<message name="IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC_UPDATED" desc="Description for safe browsing standard protection mode">
Protects against sites, downloads, and extensions that are known to be dangerous. If a page does something suspicious, URLs and bits of page content are sent to Google Safe Browsing.
</message>
<message name="IDS_SETTINGS_SAFEBROWSING_STANDARD_EXPAND_ACCESSIBILITY_LABEL" desc="Label for the button that toggles showing the detailed description of safe browsing standard protection. Only visible by screen reader software.">
Show standard protection details
</message>
@ -3241,7 +3263,7 @@
Not allowed to use your microphone
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_MIDI_DESCRIPTION" desc="Description of the MIDI devices content setting.">
Sites usually connect to MIDI devices for features for creating and editing music
Sites usually connect to MIDI devices for creating and editing music
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_MIDI_ALLOWED" desc="Label for the enabled option of the MIDI devices content setting.">
Sites can ask to connect to MIDI devices
@ -3722,7 +3744,7 @@
Remove
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SESSION_ONLY_MENU" desc="Label for the menu item to set cookies to be deleted on browser exit.">
Clear on exit
Delete on exit
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_USAGE" desc="The Usage header, used to group disk and battery usage information on the Site Details page.">
Usage
@ -3761,19 +3783,16 @@
Reset permissions
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE" desc="The clear storage button label, used to delete non-cookie storage on the Site Details page.">
Clear data
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_GROUP_DELETE" desc="The clear storage button label, used to delete storage data for a group of sites.">
Clear data
Delete data
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_THIRD_PARTY_COOKIES_EXCEPTION_LABEL" desc="Label for site exceptions that affect third party cookies.">
Including third-party cookies on this site
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_ALL_STORAGE_DIALOG_TITLE" desc="Title of the dialog that warns about deleting all site data.">
Clear all data?
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_ALL_STORAGE_DIALOG_TITLE" desc="Title of the dialog that warns about deleting all site data.">
Delete all data?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_DISPLAYED_STORAGE_DIALOG_TITLE" desc="Title of the dialog that warns about deleting displayed site data.">
Clear displayed data?
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_DISPLAYED_STORAGE_DIALOG_TITLE" desc="Title of the dialog that warns about deleting displayed site data.">
Delete displayed data?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_FIRST_PARTY_SETS_LEARN_MORE" desc="Label for first-party sets explainer with a learn more link shown when sites are filtered by first-party set owner">
These sites are in a group defined by <ph name="FPS_OWNER">$1<ex>google.com</ex></ph>. Sites in a group can see your activity in the group.
@ -3787,11 +3806,11 @@
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_DISPLAYED_STORAGE_DESCRIPTION" desc="Label describing how much total disk space chrome is using from displayed sites, next to the clear displayed button">
Total storage used by displayed sites: <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph>
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_ALL_STORAGE_LABEL" desc="Label for button to clear all site data">
Clear all data
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_ALL_STORAGE_LABEL" desc="Label for button to delete all site data">
Delete all data
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_DISPLAYED_STORAGE_LABEL" desc="Label for button to clear displayed site data">
Clear displayed data
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_DISPLAYED_STORAGE_LABEL" desc="Label for button to delete displayed site data">
Delete displayed data
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_DETAILS_SUBPAGE_ACCESSIBILITY_LABEL" desc="The (accessibility) label for subpage button that navigates to site details from all sites page.">
Show site details for <ph name="SITE_GROUP">$1<ex>google.com</ex></ph>
@ -3807,20 +3826,20 @@
<message name="IDS_SETTINGS_SITE_SETTINGS_FIRST_PARTY_SETS_SHOW_RELATED_SITES_BUTTON" desc="Label for the button on the first-party sets more actions menu to allow users to filter sites by the first-party set owner.">
Show sites in same group
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_FIRST_PARTY_SETS_SITE_CLEAR_STORAGE_BUTTON" desc="Label for the button on the first-party sets more actions menu to allow users to clear data and permissions for a specific site entry.">
Clear data and permissions
<message name="IDS_SETTINGS_SITE_SETTINGS_FIRST_PARTY_SETS_SITE_DELETE_STORAGE_BUTTON" desc="Label for the button on the first-party sets more actions menu to allow users to clear data and permissions for a specific site entry.">
Delete data and permissions
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_ALL_STORAGE_CONFIRMATION" desc="Text for the dialog that warns about clearing storage used by all sites.">
This will clear <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by sites
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_ALL_STORAGE_CONFIRMATION" desc="Text for the dialog that warns about deleting storage used by all sites.">
This will delete <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by sites
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_DISPLAYED_STORAGE_CONFIRMATION" desc="Text for the dialog that warns about clearing storage used by displayed sites.">
This will clear <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by displayed sites
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_DISPLAYED_STORAGE_CONFIRMATION" desc="Text for the dialog that warns about deleting storage used by displayed sites.">
This will delete <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by displayed sites
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_ALL_STORAGE_CONFIRMATION_INSTALLED" desc="Text for the dialog that warns about clearing storage used by all sites, shown when there are installed apps.">
This will clear <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by sites and installed apps
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_ALL_STORAGE_CONFIRMATION_INSTALLED" desc="Text for the dialog that warns about deleting storage used by all sites, shown when there are installed apps.">
This will delete <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by sites and installed apps
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_DISPLAYED_STORAGE_CONFIRMATION_INSTALLED" desc="Text for the dialog that warns about clearing storage used by displayed sites, shown when there are installed apps.">
This will clear <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by displayed sites and installed apps
<message name="IDS_SETTINGS_SITE_SETTINGS_DELETE_DISPLAYED_STORAGE_CONFIRMATION_INSTALLED" desc="Text for the dialog that warns about deleting storage used by displayed sites, shown when there are installed apps.">
This will delete <ph name="TOTAL_USAGE">$1<ex>8 GB</ex></ph> of data stored by displayed sites and installed apps
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_CLEAR_ALL_STORAGE_SIGN_OUT" desc="Text for the dialog that warns about being signed out when clearing storage used by all sites.">
You'll be signed out of all sites, including in open tabs
@ -3831,8 +3850,8 @@
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_RESET_CONFIRMATION" desc="Text for the dialog that warns about resetting all permissions for a site.">
Reset site permissions for <ph name="SITE">$1<ex>www.example.com</ex></ph>?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_CLEAR_STORAGE_DIALOG_TITLE" desc="Title of the dialog that warns about clearing storage used by a site.">
Clear site data?
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_DELETE_STORAGE_DIALOG_TITLE" desc="Title of the dialog that warns about deleting storage used by a site.">
Delete site data?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_CLEAR_STORAGE_CONFIRMATION" desc="Text for the dialog that warns about clearing storage used by a site.">
All data stored by <ph name="SITE">$1<ex>www.example.com</ex></ph> will be deleted.
@ -3843,32 +3862,32 @@
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_CLEAR_STORAGE_SIGN_OUT" desc="Text for the dialog that warns about being signed out of site when clearing storage used by a site.">
Youll be signed out of this site, including in open tabs
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_CLEAR_STORAGE_OFFLINE_DATA" desc="Text for the dialog that warns about loss of offline data when clearing all storage data.">
Any offline data will be cleared
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_DELETE_STORAGE_OFFLINE_DATA" desc="Text for the dialog that warns about loss of offline data when deleting all storage data.">
Any offline data will be deleted
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_AD_PERSONALIZATION" desc="A bullet in a list of data that gets deleted from the user's device when they choose 'Clear data' for a specific site. 1) Go to chrome://settings/content. 2) From the 'Recent activity' list, choose a site. 3) Click the 'Clear data' button. The 'Clear site data?' dialog appears. This string will appear as a new bullet at the bottom of the dialog.">
Data that affects ad personalization is deleted
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_GROUP_DELETE_OFFLINE_DATA" desc="Text for the dialog that warns about loss of offline data when clearing all storage data.">
Any offline data will be cleared
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_GROUP_DELETE_OFFLINE_DATA" desc="Text for the dialog that warns about loss of offline data when deleting all storage data.">
Any offline data will be deleted
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_DIALOG_TITLE" desc="Title of the confirmation dialog when a user selects to remove a specific origin">
Clear site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph>?
Delete site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph>?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_APP_DIALOG_TITLE" desc="Title of the confirmation dialog when a user selects to remove a specific origin, and that origin also has an installed web app">
Clear site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph> and its installed app?
Delete site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph> and its installed app?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_PARTITIONED_DIALOG_TITLE" desc="Title of the confirmation dialog when a user selects to remove a specific origins partitioned data. That data will be partitioned on a specific eTLD +1.">
Clear site data for <ph name="SITE_NAME">$1<ex>www.ad-tech.com</ex></ph> partitioned on <ph name="PARTITION_SITE_NAME">$2<ex>www.publisher.com</ex></ph>?
Delete site data for <ph name="SITE_NAME">$1<ex>www.ad-tech.com</ex></ph> partitioned on <ph name="PARTITION_SITE_NAME">$2<ex>www.publisher.com</ex></ph>?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_DIALOG_TITLE" desc="Title of the confirmation dialog when a user selects to remove a group of sites">
Clear site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph> and all sites under it?
Delete site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph> and all sites under it?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_APP_DIALOG_TITLE" desc="Title of the confirmation dialog when a user selects to remove a group of sites, and one of those sites has an installed web app">
Clear site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph>, all sites under it, and its installed app?
Delete site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph>, all sites under it, and its installed app?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_GROUP_APP_PLURAL_DIALOG_TITLE" desc="Title of the confirmation dialog when a user selects to remove a group of sites, and multiple of those sites have installed web apps">
Clear site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph>, all sites under it, and installed apps?
Delete site data and permissions for <ph name="SITE_NAME">$1<ex>www.example.com</ex></ph>, all sites under it, and installed apps?
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_ORIGIN_LOGOUT" desc="Bullet point which indicates that the user will be signed out of the site they are remove">
You'll be signed out of this site, including in open tabs
@ -3877,13 +3896,13 @@
You'll be signed out of these sites, including in open tabs
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_OFFLINE_DATA" desc="Bullet point which indicates that any offline data will be cleared when the users removes the site">
Any offline data will be cleared
Any offline data will be deleted
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_PERMISSIONS" desc="Bullet point which indicates that the users chosen permissions will be reset when they remove a site">
Your chosen permissions will be reset
Your chosen permissions will be removed
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_REMOVE_SITE_CONFIRM" desc="Text on the button to confirm removing a site">
Clear
Delete
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_COOKIE_REMOVE_SITE" desc="Label for the trashcan button to delete all cookies and site data for a specific site (ex: all the cookies set on google.com).">
Remove <ph name="SITE">$1<ex>google.com</ex></ph>
@ -3892,7 +3911,7 @@
Reset
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_SITE_CLEAR_STORAGE" desc="Text for the button that clears the storage used by a site, excluding cookies.">
Clear
Delete
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_HANDLER_IS_DEFAULT" desc="A label showing that a certain handler for a given protocol is the default.">
Default
@ -3948,8 +3967,14 @@
<message name="IDS_SETTINGS_SITE_SETTINGS_PAGE_SITE_DATA_BLOCKED_SUB_LABEL" desc="2 of 3 possible states for the On-device site data setting. This text appears beneath the 'On-device site data' label and shows the user the state of the setting. With this status, sites have the least flexibility.">
Sites aren't allowed to save data on your device
</message>
<message name="IDS_SETTINGS_SITE_SETTINGS_PAGE_SITE_DATA_CLEAR_ON_EXIT_SUB_LABEL" desc="3 of 3 possible states for the On-device site data setting. This text appears beneath the 'On-device site data' label and shows the user the state of the setting. With this status, data stored on the user's device is deleted each time the user closes all Thorium windows.">
Site data is cleared from your device when you close all windows
<message name="IDS_SETTINGS_SITE_SETTINGS_PAGE_SITE_DATA_DELETE_ON_EXIT_SUB_LABEL" desc="3 of 3 possible states for the On-device site data setting. This text appears beneath the 'On-device site data' label and shows the user the state of the setting. With this status, data stored on the user's device is deleted each time the user closes all Thorium windows.">
Site data is deleted from your device when you close all windows
</message>
<message name="IDS_SETTINGS_EXPIRES_AFTER_TIME_LABEL" desc="Text after a url (e.g. google.com) that explains that that a website permission is allowed or blocked until a set date in the future.">
{COUNT, plural,
=0 {Expires today}
=1 {Expires tomorrow}
other {Expires in # days}}
</message>
<!-- Site Settings - Site Data Page-->
@ -4006,21 +4031,38 @@
</message>
<!-- Site Settings - Storage Access Page -->
<!-- TODO(https://crbug.com/1433644): Replace with the final SAA strings. -->
<message name="IDS_SETTINGS_STORAGE_ACCESS_DESCRIPTION" translateable="false" desc="It explains that an embedded site can request access to its unpartitioned cookies that it would normally only have access to in a first-party context (i.e. when loaded directly in a browser tab).">
Sites you visit can embed content from other sites, for example images, ads, and text. These other sites can ask for permission to use info theyve saved about you as you browse the site.
<message name="IDS_SETTINGS_STORAGE_ACCESS_DESCRIPTION" desc="The body description on the Embedded content settings page.">
Sites you visit can embed content from other sites, for example images, ads, and text. These other sites can ask for permission to use info they've saved about you as you browse the site.
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_ALLOWED" translateable="false" desc="It explains that an embedded site can request access to its unpartitioned cookies that it would normally only have access to in a first-party context (i.e. when loaded directly in a browser tab).">
Sites can ask to use info theyve saved about you
<message name="IDS_SETTINGS_STORAGE_ACCESS_ALLOWED" desc="One of two radio buttons on the Embedded content settings page. If a user chooses this option, they're allowing a new permission prompt that may get shown as the user browses sites. In the description below, “Google Docs” is just used as an example. 1) “use info” means retrieve existing info and save additional info. 2) “they've' saved about you”: Google Docs can only prompt the user for permission on www.myfavoritesite.com if the user has previously used Google Docs.">
Sites can ask to use info they've saved about you
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_BLOCKED" translateable="false" desc="It explains that an embedded site is blocked from accessing its unpartitioned cookies that it would normally only have access to in a first-party context (i.e. when loaded directly in a browser tab) ">
Sites are blocked from asking you to use info theyve saved about you
<message name="IDS_SETTINGS_STORAGE_ACCESS_BLOCKED" desc="The second of two radio buttons on the Embedded content settings page. If a user chooses this option, they're not allowing a new permission prompt that may get shown as the user browses sites. In the description below, “www.myfavoritesite.com” and “Google Docs” are just used as examples. 1) “use info” means retrieve existing info and save additional info. 2) “they've' saved about you”: Google Docs can only prompt the user for permission on www.myfavoritesite.com if the user has previously used Google Docs.">
Sites are blocked from asking you to use info they've saved about you
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_ALLOWED_EXCEPTIONS" translateable="false" desc="It explains that an embedded site is allowed to access its unpartitioned cookies that it would normally only have access to in a first-party context (i.e. when loaded directly in a browser tab) ">
Allowed to access info they've about you while embedded in another site
<message name="IDS_SETTINGS_STORAGE_ACCESS_ALLOWED_EXCEPTIONS" desc="A sub title on the Embedded content settings page. When a user grants a site permission, that site appears in this list of sites.">
You allowed these sites to use info they've saved about you
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_BLOCKED_EXCEPTIONS" translateable="false" desc="It explains that an embedded site is blocked from accessing its unpartitioned cookies that it would normally only have access to in a first-party context (i.e. when loaded directly in a browser tab) ">
Not allowed to access info they've about you while embedded in another site
<message name="IDS_SETTINGS_STORAGE_ACCESS_BLOCKED_EXCEPTIONS" desc="A sub title on the Embedded content settings page. When a user denies a site permission, that site appears in this list of sites.">
You blocked these sites from using info they've saved about you
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_RESET_ALL" desc="Label for the trashcan button to reset the permission for allowing or blocking a website to access its unpartitioned cookies while embedded in all other sites.">
Remove <ph name="SITE">$1<ex>google.com</ex></ph>
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_RESET_SITE" desc="Label for the trashcan button to reset all the permissions for allowing or blocking a website (embedded.com) to “use their info“ while on another website (top-level.com).">
Remove <ph name="EMBEDDED_SITE">$1<ex>embedding.com</ex></ph> from <ph name="SITE">$2<ex>top-level.com</ex></ph>
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_OPEN_EXPAND" desc="Label for an expand button to open a collapse row with the websites an origin website (top-level.com) is allowed or blocked to “use their info“ on">
Show sites
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_CLOSE_EXPAND" desc="Label for an expand button to close a collapse row with the websites an origin website (top-level.com) is allowed or blocked to “use their info“ on.">
Show less
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_ALLOWED_SITE_LABEL" desc="Text after a url (e.g. google.com) that explains that a webite is allowed to “use their info“ on one or more sites that follow this text. Previously, the user 1) visited a site, such as www.myfavoritesite.com 2) www.myfavoritesite.com embeds content and services, such as Google Docs. 3) Google Docs prompted the user for permission to use data Google Docs has previously saved related to the user. 4) The user says yes. 5) Later in settings, the user sees the site exception with this text and can revoke its access.">
can use your info as you browse
</message>
<message name="IDS_SETTINGS_STORAGE_ACCESS_BLOCKED_SITE_LABEL" desc="Text after a url (e.g. google.com) that explains that a webite is not allowed to “use their info“ on one or more sites that follow this text. Previously, the user 1) visited a site, such as www.myfavoritesite.com 2) www.myfavoritesite.com embeds content and services, such as Google Docs. 3) Google Docs prompted the user for permission to use data Google Docs has previously saved related to the user. 4) The user says yes. 5) Later in settings, the user sees the site exception with this text and can unblock the site.">
is blocked from using your info on
</message>
<message name="IDS_SETTINGS_NO_BLUETOOTH_DEVICES_FOUND" desc="Explanation for not showing Bluetooth devices in site settings.">
@ -4604,4 +4646,21 @@
<message name="IDS_SETTINGS_EXTENSION_OR_APP_DISPLAY_NAME" desc="The title of a page containing site settings for an extension or Isolated Web App (IWA). The display name contains a human-readable extension/IWA name followed by the extension/IWA ID.">
<ph name="EXTENSION_OR_APP_NAME">$1<ex>Google Docs Offline</ex></ph> (ID: <ph name="EXTENSION_OR_APP_ID">$2<ex>ghbmnnjooekpmoecnnnilnnbdlolhkhi</ex></ph>)
</message>
<!-- Safety Hub -->
<message name="IDS_SETTINGS_SAFETY_HUB" desc="Name of a page in settings that gives users an overview over their safety status and where users can take action to improve their safety.">
Safety Hub
</message>
<message name="IDS_SETTINGS_SAFETY_HUB_ENTRY_POINT_BUTTON" desc="This is the label of a button that takes users to the Safety Hub page in Thorium settings. This button appears in a section in privacy settings next to a text that gives more details on Safety Hub.">
Go to Safety Hub
</message>
<message name="IDS_SETTINGS_SAFETY_HUB_PAGE_CARD_SECTION_HEADER" desc="The title of the first section in the Safety Hub page. The 'Safety at a glance' section gives an overview about the current state of passwords, browser version and safe browsing setting of the browser. ">
Safety at a glance
</message>
<message name="IDS_SETTINGS_SAFETY_HUB_PAGE_MODULE_SECTION_HEADER" desc="The title of the second section in the Safety Hub page. The 'Safety recommendation' section shows actionable modules about permissions and extensions based on the current state of the browser.">
Safety recommendation
</message>
<message name="IDS_SETTINGS_SAFETY_HUB_PAGE_USER_EDU_SECTION_HEADER" desc="The title of the last section in the Safety Hub page. The 'Safety tips' section shows three safety related features to provide user education on how Thorium keeps the user safe.">
Safety tips
</message>
</grit-part>

View File

@ -304,6 +304,9 @@
<message name="IDS_SETTINGS_OPEN_TABS_CHECKBOX_LABEL" desc="Label for the checkbox which enables or disables syncing open tabs between multiple browser instances.">
Open tabs
</message>
<message name="IDS_SETTINGS_SAVED_TAB_GROUPS_CHECKBOX_LABEL" desc="Label for the checkbox which enables or disables syncing saved tab groups between multiple browser instances.">
Saved tab groups
</message>
<message name="IDS_SETTINGS_WIFI_CONFIGURATIONS_CHECKBOX_LABEL" desc="Label for the checkbox which enables syncing of Wi-Fi networks across devices.">
Wi-Fi networks
</message>

View File

@ -688,7 +688,7 @@ void BackgroundModeManager::StartBackgroundMode() {
if (in_background_mode_)
return;
startup_metric_utils::SetBackgroundModeEnabled();
startup_metric_utils::GetBrowser().SetBackgroundModeEnabled();
// Mark ourselves as running in background mode.
in_background_mode_ = true;

View File

@ -167,4 +167,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterListPref(prefs::kHttpAllowlist);
registry->RegisterBooleanPref(prefs::kHttpsUpgradesEnabled, true);
registry->RegisterDictionaryPref(prefs::kHttpsUpgradeFallbacks);
registry->RegisterBooleanPref(prefs::kHttpsOnlyModeAutoEnabled, false);
}

View File

@ -15,6 +15,7 @@
#include "chrome/browser/ui/session_crashed_bubble.h"
#include "chrome/browser/ui/startup/automation_infobar_delegate.h"
#include "chrome/browser/ui/startup/bad_flags_prompt.h"
#include "chrome/browser/ui/startup/bidding_and_auction_consented_debugging_infobar_delegate.h"
#include "chrome/browser/ui/startup/default_browser_prompt.h"
#include "chrome/browser/ui/startup/google_api_keys_infobar_delegate.h"
#include "chrome/browser/ui/startup/obsolete_system_infobar_delegate.h"
@ -96,6 +97,11 @@ void AddInfoBarsIfNecessary(Browser* browser,
if (IsAutomationEnabled())
AutomationInfoBarDelegate::Create();
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kProtectedAudiencesConsentedDebugToken)) {
BiddingAndAuctionConsentedDebuggingDelegate::Create(web_contents);
}
}
// Do not show any other info bars in Kiosk mode, because it's unlikely that

View File

@ -1,174 +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 "components/privacy_sandbox/privacy_sandbox_prefs.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/pref_registry_simple.h"
namespace prefs {
const char kPrivacySandboxM1ConsentDecisionMade[] =
"privacy_sandbox.m1.consent_decision_made";
const char kPrivacySandboxM1EEANoticeAcknowledged[] =
"privacy_sandbox.m1.eea_notice_acknowledged";
const char kPrivacySandboxM1RowNoticeAcknowledged[] =
"privacy_sandbox.m1.row_notice_acknowledged";
const char kPrivacySandboxM1RestrictedNoticeAcknowledged[] =
"privacy_sandbox.m1.restricted_notice_acknowledged";
const char kPrivacySandboxM1PromptSuppressed[] =
"privacy_sandbox.m1.prompt_suppressed";
const char kPrivacySandboxM1TopicsEnabled[] =
"privacy_sandbox.m1.topics_enabled";
const char kPrivacySandboxM1FledgeEnabled[] =
"privacy_sandbox.m1.fledge_enabled";
const char kPrivacySandboxM1AdMeasurementEnabled[] =
"privacy_sandbox.m1.ad_measurement_enabled";
const char kPrivacySandboxM1Restricted[] = "privacy_sandbox.m1.restricted";
const char kPrivacySandboxM1Unrestricted[] = "privacy_sandbox.m1.unrestricted";
const char kPrivacySandboxApisEnabled[] = "privacy_sandbox.apis_enabled";
const char kPrivacySandboxApisEnabledV2[] = "privacy_sandbox.apis_enabled_v2";
const char kPrivacySandboxManuallyControlled[] =
"privacy_sandbox.manually_controlled";
const char kPrivacySandboxManuallyControlledV2[] =
"privacy_sandbox.manually_controlled_v2";
const char kPrivacySandboxPageViewed[] = "privacy_sandbox.page_viewed";
const char kPrivacySandboxTopicsDataAccessibleSince[] =
"privacy_sandbox.topics_data_accessible_since";
const char kPrivacySandboxBlockedTopics[] = "privacy_sandbox.blocked_topics";
extern const char kPrivacySandboxFledgeJoinBlocked[] =
"privacy_sandbox.fledge_join_blocked";
extern const char kPrivacySandboxNoticeDisplayed[] =
"privacy_sandbox.notice_displayed";
extern const char kPrivacySandboxConsentDecisionMade[] =
"privacy_sandbox.consent_decision_made";
extern const char kPrivacySandboxNoConfirmationSandboxDisabled[] =
"privacy_sandbox.no_confirmation_sandbox_disabled";
extern const char kPrivacySandboxNoConfirmationSandboxRestricted[] =
"privacy_sandbox.no_confirmation_sandbox_restricted";
extern const char kPrivacySandboxNoConfirmationSandboxManaged[] =
"privacy_sandbox.no_confirmation_sandbox_managed";
extern const char kPrivacySandboxNoConfirmationThirdPartyCookiesBlocked[] =
"privacy_sandbox.no_confirmation_3PC_blocked";
extern const char kPrivacySandboxNoConfirmationManuallyControlled[] =
"privacy_sandbox.no_confirmation_manually_controlled";
extern const char kPrivacySandboxDisabledInsufficientConfirmation[] =
"privacy_sandbox.disabled_insufficient_confirmation";
extern const char kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized[] =
"privacy_sandbox.first_party_sets_data_access_allowed_initialized";
extern const char kPrivacySandboxFirstPartySetsEnabled[] =
"privacy_sandbox.first_party_sets_enabled";
extern const char kPrivacySandboxTopicsConsentGiven[] =
"privacy_sandbox.topics_consent.consent_given";
extern const char kPrivacySandboxTopicsConsentLastUpdateTime[] =
"privacy_sandbox.topics_consent.last_update_time";
extern const char kPrivacySandboxTopicsConsentLastUpdateReason[] =
"privacy_sandbox.topics_consent.last_update_reason";
extern const char kPrivacySandboxTopicsConsentTextAtLastUpdate[] =
"privacy_sandbox.topics_consent.text_at_last_update";
extern const char kPrivacySandboxAntiAbuseInitialized[] =
"privacy_sandbox.anti_abuse_initialized";
} // namespace prefs
namespace privacy_sandbox {
void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kPrivacySandboxApisEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(prefs::kPrivacySandboxApisEnabledV2, true);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1ConsentDecisionMade,
false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1EEANoticeAcknowledged,
false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1RowNoticeAcknowledged,
false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxM1RestrictedNoticeAcknowledged, false);
registry->RegisterIntegerPref(prefs::kPrivacySandboxM1PromptSuppressed, 0);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1TopicsEnabled, false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled,
false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1Restricted, false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1Unrestricted, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxManuallyControlled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(prefs::kPrivacySandboxManuallyControlledV2,
false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxPageViewed, false);
registry->RegisterTimePref(prefs::kPrivacySandboxTopicsDataAccessibleSince,
base::Time());
registry->RegisterListPref(prefs::kPrivacySandboxBlockedTopics);
registry->RegisterDictionaryPref(prefs::kPrivacySandboxFledgeJoinBlocked);
registry->RegisterBooleanPref(prefs::kPrivacySandboxNoticeDisplayed, false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxConsentDecisionMade,
false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxNoConfirmationSandboxDisabled, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxNoConfirmationSandboxRestricted, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxNoConfirmationSandboxManaged, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxNoConfirmationThirdPartyCookiesBlocked, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxNoConfirmationManuallyControlled, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxDisabledInsufficientConfirmation, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false);
registry->RegisterBooleanPref(
prefs::kPrivacySandboxFirstPartySetsEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(prefs::kPrivacySandboxTopicsConsentGiven,
false);
registry->RegisterTimePref(prefs::kPrivacySandboxTopicsConsentLastUpdateTime,
base::Time());
registry->RegisterIntegerPref(
prefs::kPrivacySandboxTopicsConsentLastUpdateReason,
static_cast<int>(TopicsConsentUpdateSource::kDefaultValue));
registry->RegisterStringPref(
prefs::kPrivacySandboxTopicsConsentTextAtLastUpdate, "");
registry->RegisterBooleanPref(prefs::kPrivacySandboxAntiAbuseInitialized,
false);
}
} // namespace privacy_sandbox