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 ]