From 30a321b1ce4484bf0bd2643026efc75b1c6ffd45 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Wed, 16 Nov 2022 14:30:07 -0500 Subject: [PATCH] win: Add ENABLE_BASE_TRACING check to fix cef_sandbox build --- patch/patch.cfg | 10 ++ patch/patches/base_process_4016554.patch | 207 +++++++++++++++++++++++ patch/patches/base_task_4015625.patch | 17 ++ 3 files changed, 234 insertions(+) create mode 100644 patch/patches/base_process_4016554.patch create mode 100644 patch/patches/base_task_4015625.patch diff --git a/patch/patch.cfg b/patch/patch.cfg index c88a77f85..c3ae35fd3 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -609,5 +609,15 @@ patches = [ # use_sysroot=false on Ubuntu 18.04. # https://chromium-review.googlesource.com/c/chromium/src/+/3960017 'name': 'linux_glib_deprecated_volatile' + }, + { + # Windows: Add ENABLE_BASE_TRACING check to fix cef_sandbox build. + # https://chromium-review.googlesource.com/c/chromium/src/+/4016554 + 'name': 'base_process_4016554' + }, + { + # Windows: Add ENABLE_BASE_TRACING check to fix cef_sandbox build. + # https://chromium-review.googlesource.com/c/chromium/src/+/4015625 + 'name': 'base_task_4015625' } ] diff --git a/patch/patches/base_process_4016554.patch b/patch/patches/base_process_4016554.patch new file mode 100644 index 000000000..e1746391d --- /dev/null +++ b/patch/patches/base_process_4016554.patch @@ -0,0 +1,207 @@ +diff --git base/process/current_process.cc base/process/current_process.cc +index d7d705b78bc6b..71e08439a6855 100644 +--- base/process/current_process.cc ++++ base/process/current_process.cc +@@ -8,84 +8,96 @@ namespace base { + + namespace { + +-struct ProcessName { +- CurrentProcessType type; +- const char* name; +-}; +- +-constexpr ProcessName kProcessNames[] = { +- {CurrentProcessType::PROCESS_UNSPECIFIED, "Null"}, +- {CurrentProcessType::PROCESS_BROWSER, "Browser"}, +- {CurrentProcessType::PROCESS_RENDERER, "Renderer"}, +- {CurrentProcessType::PROCESS_UTILITY, "Utility"}, +- {CurrentProcessType::PROCESS_ZYGOTE, "SandboxHelper"}, +- {CurrentProcessType::PROCESS_GPU, "Gpu"}, +- {CurrentProcessType::PROCESS_PPAPI_PLUGIN, "PpapiPlugin"}, +- {CurrentProcessType::PROCESS_PPAPI_BROKER, "PpapiBroker"}, +- {CurrentProcessType::PROCESS_SERVICE_NETWORK, +- "Service: network.mojom.NetworkService"}, +- {CurrentProcessType::PROCESS_SERVICE_TRACING, +- "Service: tracing.mojom.TracingService"}, +- {CurrentProcessType::PROCESS_SERVICE_STORAGE, +- "Service: storage.mojom.StorageService"}, +- {CurrentProcessType::PROCESS_SERVICE_AUDIO, +- "Service: audio.mojom.AudioService"}, +- {CurrentProcessType::PROCESS_SERVICE_DATA_DECODER, +- "Service: data_decoder.mojom.DataDecoderService"}, +- {CurrentProcessType::PROCESS_SERVICE_UTIL_WIN, +- "Service: chrome.mojom.UtilWin"}, +- {CurrentProcessType::PROCESS_SERVICE_PROXY_RESOLVER, +- "Service: proxy_resolver.mojom.ProxyResolverFactory"}, +- {CurrentProcessType::PROCESS_SERVICE_CDM, +- "Service: media.mojom.CdmService"}, +- {CurrentProcessType::PROCESS_SERVICE_VIDEO_CAPTURE, +- "Service: video_capture.mojom.VideoCaptureService"}, +- {CurrentProcessType::PROCESS_SERVICE_UNZIPPER, +- "Service: unzip.mojom.Unzipper"}, +- {CurrentProcessType::PROCESS_SERVICE_MIRRORING, +- "Service: mirroring.mojom.MirroringService"}, +- {CurrentProcessType::PROCESS_SERVICE_FILEPATCHER, +- "Service: patch.mojom.FilePatcher"}, +- {CurrentProcessType::PROCESS_SERVICE_TTS, +- "Service: chromeos.tts.mojom.TtsService"}, +- {CurrentProcessType::PROCESS_SERVICE_PRINTING, +- "Service: printing.mojom.PrintingService"}, +- {CurrentProcessType::PROCESS_SERVICE_QUARANTINE, +- "Service: quarantine.mojom.Quarantine"}, +- {CurrentProcessType::PROCESS_SERVICE_CROS_LOCALSEARCH, +- "Service: chromeos.local_search_service.mojom.LocalSearchService"}, +- {CurrentProcessType::PROCESS_SERVICE_CROS_ASSISTANT_AUDIO_DECODER, +- "Service: chromeos.assistant.mojom.AssistantAudioDecoderFactory"}, +- {CurrentProcessType::PROCESS_SERVICE_FILEUTIL, +- "Service: chrome.mojom.FileUtilService"}, +- {CurrentProcessType::PROCESS_SERVICE_PRINTCOMPOSITOR, +- "Service: printing.mojom.PrintCompositor"}, +- {CurrentProcessType::PROCESS_SERVICE_PAINTPREVIEW, +- "Service: paint_preview.mojom.PaintPreviewCompositorCollection"}, +- {CurrentProcessType::PROCESS_SERVICE_SPEECHRECOGNITION, +- "Service: media.mojom.SpeechRecognitionService"}, +- {CurrentProcessType::PROCESS_SERVICE_XRDEVICE, +- "Service: device.mojom.XRDeviceService"}, +- {CurrentProcessType::PROCESS_SERVICE_READICON, +- "Service: chrome.mojom.UtilReadIcon"}, +- {CurrentProcessType::PROCESS_SERVICE_LANGUAGEDETECTION, +- "Service: language_detection.mojom.LanguageDetectionService"}, +- {CurrentProcessType::PROCESS_SERVICE_SHARING, +- "Service: sharing.mojom.Sharing"}, +- {CurrentProcessType::PROCESS_SERVICE_MEDIAPARSER, +- "Service: chrome.mojom.MediaParserFactory"}, +- {CurrentProcessType::PROCESS_SERVICE_QRCODEGENERATOR, +- "Service: qrcode_generator.mojom.QRCodeGeneratorService"}, +- {CurrentProcessType::PROCESS_SERVICE_PROFILEIMPORT, +- "Service: chrome.mojom.ProfileImport"}, +- {CurrentProcessType::PROCESS_SERVICE_IME, +- "Service: chromeos.ime.mojom.ImeService"}, +- {CurrentProcessType::PROCESS_SERVICE_RECORDING, +- "Service: recording.mojom.RecordingService"}, +- {CurrentProcessType::PROCESS_SERVICE_SHAPEDETECTION, +- "Service: shape_detection.mojom.ShapeDetectionService"}, +- {CurrentProcessType::PROCESS_RENDERER_EXTENSION, "Extension Renderer"}, +-}; ++const char* GetNameForProcessType(CurrentProcessType process_type) { ++#if BUILDFLAG(ENABLE_BASE_TRACING) ++ switch (process_type) { ++ case CurrentProcessType::PROCESS_UNSPECIFIED: ++ return "Null"; ++ case CurrentProcessType::PROCESS_BROWSER: ++ return "Browser"; ++ case CurrentProcessType::PROCESS_RENDERER: ++ return "Renderer"; ++ case CurrentProcessType::PROCESS_UTILITY: ++ return "Utility"; ++ case CurrentProcessType::PROCESS_ZYGOTE: ++ return "Zygote"; ++ case CurrentProcessType::PROCESS_SANDBOX_HELPER: ++ return "SandboxHelper"; ++ case CurrentProcessType::PROCESS_GPU: ++ return "Gpu"; ++ case CurrentProcessType::PROCESS_PPAPI_PLUGIN: ++ return "PpapiPlugin"; ++ case CurrentProcessType::PROCESS_PPAPI_BROKER: ++ return "PpapiBroker"; ++ case CurrentProcessType::PROCESS_SERVICE_NETWORK: ++ return "Service: network.mojom.NetworkService"; ++ case CurrentProcessType::PROCESS_SERVICE_TRACING: ++ return "Service: tracing.mojom.TracingService"; ++ case CurrentProcessType::PROCESS_SERVICE_STORAGE: ++ return "Service: storage.mojom.StorageService"; ++ case CurrentProcessType::PROCESS_SERVICE_AUDIO: ++ return "Service: audio.mojom.AudioService"; ++ case CurrentProcessType::PROCESS_SERVICE_DATA_DECODER: ++ return "Service: data_decoder.mojom.DataDecoderService"; ++ case CurrentProcessType::PROCESS_SERVICE_UTIL_WIN: ++ return "Service: chrome.mojom.UtilWin"; ++ case CurrentProcessType::PROCESS_SERVICE_PROXY_RESOLVER: ++ return "Service: proxy_resolver.mojom.ProxyResolverFactory"; ++ case CurrentProcessType::PROCESS_SERVICE_CDM: ++ return "Service: media.mojom.CdmService"; ++ case CurrentProcessType::PROCESS_SERVICE_VIDEO_CAPTURE: ++ return "Service: video_capture.mojom.VideoCaptureService"; ++ case CurrentProcessType::PROCESS_SERVICE_UNZIPPER: ++ return "Service: unzip.mojom.Unzipper"; ++ case CurrentProcessType::PROCESS_SERVICE_MIRRORING: ++ return "Service: mirroring.mojom.MirroringService"; ++ case CurrentProcessType::PROCESS_SERVICE_FILEPATCHER: ++ return "Service: patch.mojom.FilePatcher"; ++ case CurrentProcessType::PROCESS_SERVICE_TTS: ++ return "Service: chromeos.tts.mojom.TtsService"; ++ case CurrentProcessType::PROCESS_SERVICE_PRINTING: ++ return "Service: printing.mojom.PrintingService"; ++ case CurrentProcessType::PROCESS_SERVICE_QUARANTINE: ++ return "Service: quarantine.mojom.Quarantine"; ++ case CurrentProcessType::PROCESS_SERVICE_CROS_LOCALSEARCH: ++ return "Service: chromeos.local_search_service.mojom.LocalSearchService"; ++ case CurrentProcessType::PROCESS_SERVICE_CROS_ASSISTANT_AUDIO_DECODER: ++ return "Service: chromeos.assistant.mojom.AssistantAudioDecoderFactory"; ++ case CurrentProcessType::PROCESS_SERVICE_FILEUTIL: ++ return "Service: chrome.mojom.FileUtilService"; ++ case CurrentProcessType::PROCESS_SERVICE_PRINTCOMPOSITOR: ++ return "Service: printing.mojom.PrintCompositor"; ++ case CurrentProcessType::PROCESS_SERVICE_PAINTPREVIEW: ++ return "Service: paint_preview.mojom.PaintPreviewCompositorCollection"; ++ case CurrentProcessType::PROCESS_SERVICE_SPEECHRECOGNITION: ++ return "Service: media.mojom.SpeechRecognitionService"; ++ case CurrentProcessType::PROCESS_SERVICE_XRDEVICE: ++ return "Service: device.mojom.XRDeviceService"; ++ case CurrentProcessType::PROCESS_SERVICE_READICON: ++ return "Service: chrome.mojom.UtilReadIcon"; ++ case CurrentProcessType::PROCESS_SERVICE_LANGUAGEDETECTION: ++ return "Service: language_detection.mojom.LanguageDetectionService"; ++ case CurrentProcessType::PROCESS_SERVICE_SHARING: ++ return "Service: sharing.mojom.Sharing"; ++ case CurrentProcessType::PROCESS_SERVICE_MEDIAPARSER: ++ return "Service: chrome.mojom.MediaParserFactory"; ++ case CurrentProcessType::PROCESS_SERVICE_QRCODEGENERATOR: ++ return "Service: qrcode_generator.mojom.QRCodeGeneratorService"; ++ case CurrentProcessType::PROCESS_SERVICE_PROFILEIMPORT: ++ return "Service: chrome.mojom.ProfileImport"; ++ case CurrentProcessType::PROCESS_SERVICE_IME: ++ return "Service: chromeos.ime.mojom.ImeService"; ++ case CurrentProcessType::PROCESS_SERVICE_RECORDING: ++ return "Service: recording.mojom.RecordingService"; ++ case CurrentProcessType::PROCESS_SERVICE_SHAPEDETECTION: ++ return "Service: shape_detection.mojom.ShapeDetectionService"; ++ case CurrentProcessType::PROCESS_RENDERER_EXTENSION: ++ return "Extension Renderer"; ++ } ++#else ++ return "Null"; ++#endif // BUILDFLAG(ENABLE_BASE_TRACING) ++} + + } // namespace + +@@ -96,12 +108,7 @@ CurrentProcess& CurrentProcess::GetInstance() { + } + + void CurrentProcess::SetProcessType(CurrentProcessType process_type) { +- std::string process_name; +- for (size_t i = 0; i < std::size(kProcessNames); ++i) { +- if (process_type == kProcessNames[i].type) { +- process_name = kProcessNames[i].name; +- } +- } ++ std::string process_name = GetNameForProcessType(process_type); + CurrentProcess::GetInstance().SetProcessNameAndType(process_name, + process_type); + } +diff --git base/trace_event/trace_event_stub.h base/trace_event/trace_event_stub.h +index adb407d72b8e5..1ced7d3903ff1 100644 +--- base/trace_event/trace_event_stub.h ++++ base/trace_event/trace_event_stub.h +@@ -256,9 +256,6 @@ inline const char* QueueName_Name(QueueName value) { + namespace ChromeProcessDescriptor { + + enum ProcessType {}; +-inline const char* ProcessType_Name(ProcessType process_type) { +- return ""; +-} + + } // namespace ChromeProcessDescriptor + diff --git a/patch/patches/base_task_4015625.patch b/patch/patches/base_task_4015625.patch new file mode 100644 index 000000000..66552017f --- /dev/null +++ b/patch/patches/base_task_4015625.patch @@ -0,0 +1,17 @@ +diff --git base/task/common/task_annotator.cc base/task/common/task_annotator.cc +index 289d1d1f1bd88..b9ed6e32fdc44 100644 +--- base/task/common/task_annotator.cc ++++ base/task/common/task_annotator.cc +@@ -292,6 +292,12 @@ TaskAnnotator::LongTaskTracker::~LongTaskTracker() { + perfetto::Track::ThreadScoped(task_annotator_), + task_end_time); + } ++#if !BUILDFLAG(ENABLE_BASE_TRACING) ++ // Suppress the unused variable warning when TRACE_EVENT macros are turned ++ // into no-op. ++ (void)pending_task_; ++ (void)task_annotator_; ++#endif // !BUILDFLAG(ENABLE_BASE_TRACING) + } + + void TaskAnnotator::LongTaskTracker::SetIpcDetails(const char* interface_name,