1--- a/base/trace_event/trace_event.h 2+++ b/base/trace_event/trace_event.h 3@@ -5,6 +5,43 @@ 4 #ifndef BASE_TRACE_EVENT_TRACE_EVENT_H_ 5 #define BASE_TRACE_EVENT_TRACE_EVENT_H_ 6 7+// Replace with stub implementation. 8+#if 1 9+#include "base/trace_event/common/trace_event_common.h" 10+#include "base/trace_event/heap_profiler.h" 11+ 12+// To avoid -Wunused-* errors, eat expression by macro. 13+namespace libchrome_internal { 14+template <typename... Args> void Ignore(Args&&... args) {} 15+} 16+#define INTERNAL_IGNORE(...) \ 17+ (false ? libchrome_internal::Ignore(__VA_ARGS__) : (void) 0) 18+ 19+// Body is effectively empty. 20+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...) INTERNAL_IGNORE(__VA_ARGS__) 21+#define INTERNAL_TRACE_TASK_EXECUTION(...) 22+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...) \ 23+ INTERNAL_IGNORE(__VA_ARGS__) 24+#define TRACE_ID_MANGLE(val) (val) 25+ 26+namespace base { 27+namespace trace_event { 28+ 29+class TraceLog { 30+ public: 31+ static TraceLog* GetInstance() { 32+ static TraceLog instance; 33+ return &instance; 34+ } 35+ 36+ pid_t process_id() { return 0; } 37+ void SetCurrentThreadBlocksMessageLoop() {} 38+}; 39+ 40+} // namespace trace_event 41+} // namespace base 42+#else 43+ 44 // This header file defines implementation details of how the trace macros in 45 // trace_event_common.h collect and store trace events. Anything not 46 // implementation-specific should go in trace_event_common.h instead of here. 47@@ -1115,4 +1152,5 @@ template<typename IDType> class TraceSco 48 } // namespace trace_event 49 } // namespace base 50 51+#endif 52 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_ 53--- a/base/trace_event/heap_profiler.h 54+++ b/base/trace_event/heap_profiler.h 55@@ -5,6 +5,22 @@ 56 #ifndef BASE_TRACE_EVENT_HEAP_PROFILER_H 57 #define BASE_TRACE_EVENT_HEAP_PROFILER_H 58 59+// Replace with stub implementation. 60+#if 1 61+#define TRACE_HEAP_PROFILER_API_SCOPED_TASK_EXECUTION \ 62+ trace_event_internal::HeapProfilerScopedTaskExecutionTracker 63+ 64+namespace trace_event_internal { 65+ 66+class HeapProfilerScopedTaskExecutionTracker { 67+ public: 68+ explicit HeapProfilerScopedTaskExecutionTracker(const char*) {} 69+}; 70+ 71+} // namespace trace_event_internal 72+ 73+#else 74+ 75 #include "base/compiler_specific.h" 76 #include "base/trace_event/heap_profiler_allocation_context_tracker.h" 77 78@@ -86,4 +102,5 @@ class BASE_EXPORT HeapProfilerScopedIgno 79 80 } // namespace trace_event_internal 81 82+#endif 83 #endif // BASE_TRACE_EVENT_HEAP_PROFILER_H 84--- a/base/test/test_pending_task.h 85+++ b/base/test/test_pending_task.h 86@@ -10,7 +10,8 @@ 87 #include "base/callback.h" 88 #include "base/location.h" 89 #include "base/time/time.h" 90-#include "base/trace_event/trace_event_argument.h" 91+// Unsupported in libchrome. 92+// #include "base/trace_event/trace_event_argument.h" 93 94 namespace base { 95 96@@ -58,10 +59,13 @@ struct TestPendingTask { 97 TimeDelta delay; 98 TestNestability nestability; 99 100+// Unsupported in libchrome. 101+#if 0 102 // Functions for using test pending task with tracing, useful in unit 103 // testing. 104 void AsValueInto(base::trace_event::TracedValue* state) const; 105 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> AsValue() const; 106+#endif 107 std::string ToString() const; 108 109 private: 110--- a/base/test/test_pending_task.cc 111+++ b/base/test/test_pending_task.cc 112@@ -38,6 +38,8 @@ bool TestPendingTask::ShouldRunBefore(co 113 114 TestPendingTask::~TestPendingTask() {} 115 116+// Unsupported in libchrome. 117+#if 0 118 void TestPendingTask::AsValueInto(base::trace_event::TracedValue* state) const { 119 state->SetInteger("run_at", GetTimeToRun().ToInternalValue()); 120 state->SetString("posting_function", location.ToString()); 121@@ -61,10 +63,14 @@ TestPendingTask::AsValue() const { 122 AsValueInto(state.get()); 123 return std::move(state); 124 } 125+#endif 126 127 std::string TestPendingTask::ToString() const { 128 std::string output("TestPendingTask("); 129+// Unsupported in libchrome. 130+#if 0 131 AsValue()->AppendAsTraceFormat(&output); 132+#endif 133 output += ")"; 134 return output; 135 } 136---- a/base/threading/thread_id_name_manager.cc 137+++ b/base/threading/thread_id_name_manager.cc 138@@ -12,7 +12,8 @@ 139 #include "base/no_destructor.h" 140 #include "base/strings/string_util.h" 141 #include "base/threading/thread_local.h" 142-#include "base/trace_event/heap_profiler_allocation_context_tracker.h" 143+// Unsupported in libchrome. 144+// #include "base/trace_event/heap_profiler_allocation_context_tracker.h" 145 146 namespace base { 147 namespace { 148@@ -94,8 +95,9 @@ void ThreadIdNameManager::SetName(const std::string& name) { 149 // call GetName(which holds a lock) during the first allocation because it can 150 // cause a deadlock when the first allocation happens in the 151 // ThreadIdNameManager itself when holding the lock. 152- trace_event::AllocationContextTracker::SetCurrentThreadName( 153- leaked_str->c_str()); 154+ // Unsupported in libchrome. 155+ // trace_event::AllocationContextTracker::SetCurrentThreadName( 156+ // leaked_str->c_str()); 157 } 158 159 const char* ThreadIdNameManager::GetName(PlatformThreadId id) { 160--- a/base/memory/shared_memory_posix.cc 161+++ b/base/memory/shared_memory_posix.cc 162@@ -16,7 +16,8 @@ 163 #include "base/logging.h" 164 #include "base/macros.h" 165 #include "base/memory/shared_memory_helper.h" 166-#include "base/memory/shared_memory_tracker.h" 167+// Unsupported in libchrome. 168+// #include "base/memory/shared_memory_tracker.h" 169 #include "base/posix/eintr_wrapper.h" 170 #include "base/posix/safe_strerror.h" 171 #include "base/process/process_metrics.h" 172@@ -302,7 +305,8 @@ bool SharedMemory::MapAt(off_t offset, size_t bytes) { 173 DCHECK_EQ(0U, 174 reinterpret_cast<uintptr_t>(memory_) & 175 (SharedMemory::MAP_MINIMUM_ALIGNMENT - 1)); 176- SharedMemoryTracker::GetInstance()->IncrementMemoryUsage(*this); 177+ // Unsupported in libchrome. 178+ // SharedMemoryTracker::GetInstance()->IncrementMemoryUsage(*this); 179 } else { 180 memory_ = nullptr; 181 } 182@@ -314,7 +318,8 @@ bool SharedMemory::Unmap() { 183 if (!memory_) 184 return false; 185 186- SharedMemoryTracker::GetInstance()->DecrementMemoryUsage(*this); 187+ // Unsupported in libchrome. 188+ // SharedMemoryTracker::GetInstance()->DecrementMemoryUsage(*this); 189 munmap(memory_, mapped_size_); 190 memory_ = nullptr; 191 mapped_size_ = 0; 192