tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

moz.build (9300B)


      1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
      2 # vim: set filetype=python:
      3 # This Source Code Form is subject to the terms of the Mozilla Public
      4 # License, v. 2.0. If a copy of the MPL was not distributed with this
      5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      6 
      7 BROWSER_CHROME_MANIFESTS += [
      8     "test/browser.toml",
      9     "test/browser_bug1717599_XDG-CONFIG-DIRS.toml",
     10     "test/browser_bug1717599_XDG-CONFIG-HOME.toml",
     11     "test/browser_profiler.toml",
     12     "test/browser_snap.toml",
     13     "test/browser_xdg_default.toml",
     14     "test/browser_xdg_mozLegacyHome.toml",
     15     "test/browser_xdg_xdgConfigHome.toml",
     16 ]
     17 
     18 with Files("**"):
     19     BUG_COMPONENT = ("Core", "Security: Process Sandboxing")
     20 
     21 DIRS += ["common"]
     22 
     23 if CONFIG["OS_ARCH"] == "Linux":
     24     DIRS += ["linux"]
     25 elif CONFIG["TARGET_OS"] == "OSX":
     26     DIRS += ["mac"]
     27 elif CONFIG["OS_ARCH"] == "WINNT":
     28     Library("sandbox_s")
     29     FORCE_STATIC_LIB = True
     30 
     31     DIRS += [
     32         "win/src/sandboxbroker",
     33         "win/src/sandboxtarget",
     34     ]
     35 
     36     TEST_DIRS += [
     37         "win/gtest",
     38     ]
     39 
     40     EXPORTS.mozilla.sandboxing += [
     41         "chromium-shim/sandbox/win/loggingCallbacks.h",
     42         "chromium-shim/sandbox/win/loggingTypes.h",
     43         "chromium-shim/sandbox/win/sandboxLogging.h",
     44         "win/SandboxInitialization.h",
     45     ]
     46 
     47     SOURCES += [
     48         "chromium-shim/base/debug/stack_trace.cpp",
     49         "chromium-shim/base/file_version_info_win.cpp",
     50         "chromium-shim/base/files/file_path.cpp",
     51         "chromium-shim/base/logging.cpp",
     52         "chromium-shim/base/win/win_util.cpp",
     53         "chromium-shim/sandbox/win/sandboxLogging.cpp",
     54         "chromium-shim/sandbox/win/src/line_break_dispatcher.cc",
     55         "chromium-shim/sandbox/win/src/line_break_interception.cc",
     56         "chromium-shim/sandbox/win/src/line_break_policy.cc",
     57         "chromium-shim/sandbox/win/src/registry_dispatcher.cc",
     58         "chromium-shim/sandbox/win/src/registry_interception.cc",
     59         "chromium-shim/sandbox/win/src/registry_policy.cc",
     60         "chromium/base/at_exit.cc",
     61         "chromium/base/check.cc",
     62         "chromium/base/check_op.cc",
     63         "chromium/base/cpu.cc",
     64         "chromium/base/debug/alias.cc",
     65         "chromium/base/debug/crash_logging.cc",
     66         "chromium/base/environment.cc",
     67         "chromium/base/functional/callback_internal.cc",
     68         "chromium/base/hash/hash.cc",
     69         "chromium/base/lazy_instance_helpers.cc",
     70         "chromium/base/location.cc",
     71         "chromium/base/memory/ref_counted.cc",
     72         "chromium/base/process/environment_internal.cc",
     73         "chromium/base/rand_util.cc",
     74         "chromium/base/rand_util_win.cc",
     75         "chromium/base/scoped_clear_last_error_win.cc",
     76         "chromium/base/strings/string_number_conversions.cc",
     77         "chromium/base/strings/string_split.cc",
     78         "chromium/base/strings/string_util.cc",
     79         "chromium/base/strings/string_util_constants.cc",
     80         "chromium/base/strings/string_util_win.cc",
     81         "chromium/base/strings/stringprintf.cc",
     82         "chromium/base/strings/utf_ostream_operators.cc",
     83         "chromium/base/strings/utf_string_conversions.cc",
     84         "chromium/base/synchronization/lock.cc",
     85         "chromium/base/synchronization/lock_impl_win.cc",
     86         "chromium/base/third_party/cityhash/city.cc",
     87         "chromium/base/third_party/superfasthash/superfasthash.c",
     88         "chromium/base/threading/platform_thread.cc",
     89         "chromium/base/threading/platform_thread_ref.cc",
     90         "chromium/base/threading/platform_thread_win.cc",
     91         "chromium/base/threading/thread_id_name_manager.cc",
     92         "chromium/base/threading/thread_local_storage.cc",
     93         "chromium/base/threading/thread_local_storage_win.cc",
     94         "chromium/base/threading/thread_restrictions.cc",
     95         "chromium/base/time/time.cc",
     96         "chromium/base/time/time_win.cc",
     97         "chromium/base/trace_event/trace_event_stub.cc",
     98         "chromium/base/version.cc",
     99         "chromium/base/win/access_control_list.cc",
    100         "chromium/base/win/access_token.cc",
    101         "chromium/base/win/pe_image.cc",
    102         "chromium/base/win/scoped_handle.cc",
    103         "chromium/base/win/scoped_handle_verifier.cc",
    104         "chromium/base/win/scoped_process_information.cc",
    105         "chromium/base/win/security_descriptor.cc",
    106         "chromium/base/win/security_util.cc",
    107         "chromium/base/win/sid.cc",
    108         "chromium/base/win/startup_information.cc",
    109         "chromium/base/win/static_constants.cc",
    110         "chromium/base/win/windows_version.cc",
    111         "chromium/sandbox/features.cc",
    112         "chromium/sandbox/win/src/acl.cc",
    113         "chromium/sandbox/win/src/alternate_desktop.cc",
    114         "chromium/sandbox/win/src/app_container_base.cc",
    115         "chromium/sandbox/win/src/broker_services.cc",
    116         "chromium/sandbox/win/src/crosscall_server.cc",
    117         "chromium/sandbox/win/src/eat_resolver.cc",
    118         "chromium/sandbox/win/src/filesystem_dispatcher.cc",
    119         "chromium/sandbox/win/src/filesystem_interception.cc",
    120         "chromium/sandbox/win/src/filesystem_policy.cc",
    121         "chromium/sandbox/win/src/handle_closer.cc",
    122         "chromium/sandbox/win/src/handle_closer_agent.cc",
    123         "chromium/sandbox/win/src/heap_helper.cc",
    124         "chromium/sandbox/win/src/interception.cc",
    125         "chromium/sandbox/win/src/interception_agent.cc",
    126         "chromium/sandbox/win/src/ipc_args.cc",
    127         "chromium/sandbox/win/src/job.cc",
    128         "chromium/sandbox/win/src/named_pipe_dispatcher.cc",
    129         "chromium/sandbox/win/src/named_pipe_interception.cc",
    130         "chromium/sandbox/win/src/named_pipe_policy.cc",
    131         "chromium/sandbox/win/src/policy_broker.cc",
    132         "chromium/sandbox/win/src/policy_engine_opcodes.cc",
    133         "chromium/sandbox/win/src/policy_engine_processor.cc",
    134         "chromium/sandbox/win/src/policy_low_level.cc",
    135         "chromium/sandbox/win/src/policy_target.cc",
    136         "chromium/sandbox/win/src/process_mitigations.cc",
    137         "chromium/sandbox/win/src/process_mitigations_win32k_dispatcher.cc",
    138         "chromium/sandbox/win/src/process_mitigations_win32k_interception.cc",
    139         "chromium/sandbox/win/src/process_mitigations_win32k_policy.cc",
    140         "chromium/sandbox/win/src/process_thread_dispatcher.cc",
    141         "chromium/sandbox/win/src/process_thread_interception.cc",
    142         "chromium/sandbox/win/src/process_thread_policy.cc",
    143         "chromium/sandbox/win/src/resolver.cc",
    144         "chromium/sandbox/win/src/restricted_token.cc",
    145         "chromium/sandbox/win/src/restricted_token_utils.cc",
    146         "chromium/sandbox/win/src/sandbox.cc",
    147         "chromium/sandbox/win/src/sandbox_globals.cc",
    148         "chromium/sandbox/win/src/sandbox_nt_util.cc",
    149         "chromium/sandbox/win/src/sandbox_policy_base.cc",
    150         "chromium/sandbox/win/src/security_capabilities.cc",
    151         "chromium/sandbox/win/src/service_resolver.cc",
    152         "chromium/sandbox/win/src/sharedmem_ipc_client.cc",
    153         "chromium/sandbox/win/src/sharedmem_ipc_server.cc",
    154         "chromium/sandbox/win/src/signed_dispatcher.cc",
    155         "chromium/sandbox/win/src/signed_interception.cc",
    156         "chromium/sandbox/win/src/signed_policy.cc",
    157         "chromium/sandbox/win/src/startup_information_helper.cc",
    158         "chromium/sandbox/win/src/target_interceptions.cc",
    159         "chromium/sandbox/win/src/target_process.cc",
    160         "chromium/sandbox/win/src/target_services.cc",
    161         "chromium/sandbox/win/src/threadpool.cc",
    162         "chromium/sandbox/win/src/top_level_dispatcher.cc",
    163         "chromium/sandbox/win/src/win_utils.cc",
    164         "chromium/sandbox/win/src/window.cc",
    165         "win/SandboxInitialization.cpp",
    166     ]
    167     # Sandbox interceptors can be called before the process's import table
    168     # is populated.  Don't let the compiler insert any instrumentation that
    169     # might call an import.
    170     SOURCES["chromium/sandbox/win/src/process_thread_interception.cc"].no_pgo = True
    171 
    172     if CONFIG["TARGET_CPU"] in ("x86_64", "aarch64"):
    173         SOURCES += [
    174             "chromium/sandbox/win/src/interceptors_64.cc",
    175             "chromium/sandbox/win/src/resolver_64.cc",
    176             "chromium/sandbox/win/src/service_resolver_64.cc",
    177         ]
    178     else:
    179         SOURCES += [
    180             "chromium/sandbox/win/src/resolver_32.cc",
    181             "chromium/sandbox/win/src/service_resolver_32.cc",
    182         ]
    183 
    184     for var in (
    185         "UNICODE",
    186         "_UNICODE",
    187         "NS_NO_XPCOM",
    188         "_CRT_RAND_S",
    189         "CHROMIUM_SANDBOX_BUILD",
    190     ):
    191         DEFINES[var] = True
    192     if CONFIG["CC_TYPE"] not in ("gcc", "clang"):
    193         DEFINES["SANDBOX_EXPORTS"] = True
    194 
    195     LOCAL_INCLUDES += ["/security/sandbox/chromium-shim"]
    196     LOCAL_INCLUDES += ["/security/sandbox/chromium"]
    197     LOCAL_INCLUDES += [
    198         "/security/sandbox/chromium-shim/base/allocator/partition_allocator/src"
    199     ]
    200     LOCAL_INCLUDES += [
    201         "/security/sandbox/chromium/base/allocator/partition_allocator/src"
    202     ]
    203     LOCAL_INCLUDES += ["/third_party/abseil-cpp"]
    204     LOCAL_INCLUDES += ["/nsprpub"]
    205 
    206     OS_LIBS += ["userenv", "usp10"]
    207 
    208     DisableStlWrapping()
    209 
    210     # Suppress warnings in third-party code.
    211     if CONFIG["CC_TYPE"] == "clang-cl":
    212         CXXFLAGS += [
    213             "-Wno-deprecated-declarations",  # 'GetVersionExW': was declared deprecated
    214         ]