1 diff --git a/mojo/core/core.cc b/mojo/core/core.cc 2 index 8422ec2..3ffa640 100644 3 --- a/mojo/core/core.cc 4 +++ b/mojo/core/core.cc 5 @@ -21,7 +21,7 @@ 6 #include "base/strings/string_piece.h" 7 #include "base/threading/thread_task_runner_handle.h" 8 #include "base/time/time.h" 9 -#include "base/trace_event/memory_dump_manager.h" 10 +// #include "base/trace_event/memory_dump_manager.h" 11 #include "build/build_config.h" 12 #include "mojo/core/channel.h" 13 #include "mojo/core/configuration.h" 14 @@ -127,8 +127,8 @@ void RunMojoProcessErrorHandler(ProcessDisconnectHandler* disconnect_handler, 15 16 Core::Core() { 17 handles_.reset(new HandleTable); 18 - base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( 19 - handles_.get(), "MojoHandleTable", nullptr); 20 + // base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( 21 + // handles_.get(), "MojoHandleTable", nullptr); 22 } 23 24 Core::~Core() { 25 @@ -142,8 +142,8 @@ Core::~Core() { 26 base::BindOnce(&Core::PassNodeControllerToIOThread, 27 base::Passed(&node_controller_))); 28 } 29 - base::trace_event::MemoryDumpManager::GetInstance() 30 - ->UnregisterAndDeleteDumpProviderSoon(std::move(handles_)); 31 + // base::trace_event::MemoryDumpManager::GetInstance() 32 + // ->UnregisterAndDeleteDumpProviderSoon(std::move(handles_)); 33 } 34 35 void Core::SetIOTaskRunner(scoped_refptr<base::TaskRunner> io_task_runner) { 36 diff --git a/mojo/core/user_message_impl.cc b/mojo/core/user_message_impl.cc 37 index d4a4da1..9cb8284 100644 38 --- a/mojo/core/user_message_impl.cc 39 +++ b/mojo/core/user_message_impl.cc 40 @@ -13,10 +13,10 @@ 41 #include "base/no_destructor.h" 42 #include "base/numerics/safe_conversions.h" 43 #include "base/numerics/safe_math.h" 44 -#include "base/trace_event/memory_allocator_dump.h" 45 -#include "base/trace_event/memory_dump_manager.h" 46 -#include "base/trace_event/memory_dump_provider.h" 47 -#include "base/trace_event/trace_event.h" 48 +// #include "base/trace_event/memory_allocator_dump.h" 49 +// #include "base/trace_event/memory_dump_manager.h" 50 +// #include "base/trace_event/memory_dump_provider.h" 51 +// #include "base/trace_event/trace_event.h" 52 #include "mojo/core/core.h" 53 #include "mojo/core/node_channel.h" 54 #include "mojo/core/node_controller.h" 55 @@ -271,36 +271,36 @@ void DecrementMessageCount() { 56 base::subtle::NoBarrier_AtomicIncrement(&g_message_count, -1); 57 } 58 59 -class MessageMemoryDumpProvider : public base::trace_event::MemoryDumpProvider { 60 - public: 61 - MessageMemoryDumpProvider() { 62 - base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( 63 - this, "MojoMessages", nullptr); 64 - } 65 - 66 - ~MessageMemoryDumpProvider() override { 67 - base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( 68 - this); 69 - } 70 - 71 - private: 72 - // base::trace_event::MemoryDumpProvider: 73 - bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, 74 - base::trace_event::ProcessMemoryDump* pmd) override { 75 - auto* dump = pmd->CreateAllocatorDump("mojo/messages"); 76 - dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount, 77 - base::trace_event::MemoryAllocatorDump::kUnitsObjects, 78 - base::subtle::NoBarrier_Load(&g_message_count)); 79 - return true; 80 - } 81 - 82 - DISALLOW_COPY_AND_ASSIGN(MessageMemoryDumpProvider); 83 -}; 84 - 85 -void EnsureMemoryDumpProviderExists() { 86 - static base::NoDestructor<MessageMemoryDumpProvider> provider; 87 - ALLOW_UNUSED_LOCAL(provider); 88 -} 89 +// class MessageMemoryDumpProvider : public base::trace_event::MemoryDumpProvider { 90 +// public: 91 +// MessageMemoryDumpProvider() { 92 +// base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( 93 +// this, "MojoMessages", nullptr); 94 +// } 95 + 96 +// ~MessageMemoryDumpProvider() override { 97 +// base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( 98 +// this); 99 +// } 100 + 101 +// private: 102 +// // base::trace_event::MemoryDumpProvider: 103 +// bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, 104 +// base::trace_event::ProcessMemoryDump* pmd) override { 105 +// auto* dump = pmd->CreateAllocatorDump("mojo/messages"); 106 +// dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameObjectCount, 107 +// base::trace_event::MemoryAllocatorDump::kUnitsObjects, 108 +// base::subtle::NoBarrier_Load(&g_message_count)); 109 +// return true; 110 +// } 111 + 112 +// DISALLOW_COPY_AND_ASSIGN(MessageMemoryDumpProvider); 113 +// }; 114 + 115 +// void EnsureMemoryDumpProviderExists() { 116 +// static base::NoDestructor<MessageMemoryDumpProvider> provider; 117 +// ALLOW_UNUSED_LOCAL(provider); 118 +// } 119 120 } // namespace 121 122 @@ -648,7 +648,7 @@ void UserMessageImpl::FailHandleSerializationForTesting(bool fail) { 123 124 UserMessageImpl::UserMessageImpl(ports::UserMessageEvent* message_event) 125 : ports::UserMessage(&kUserMessageTypeInfo), message_event_(message_event) { 126 - EnsureMemoryDumpProviderExists(); 127 + // EnsureMemoryDumpProviderExists(); 128 IncrementMessageCount(); 129 } 130 131 @@ -667,7 +667,7 @@ UserMessageImpl::UserMessageImpl(ports::UserMessageEvent* message_event, 132 header_size_(header_size), 133 user_payload_(user_payload), 134 user_payload_size_(user_payload_size) { 135 - EnsureMemoryDumpProviderExists(); 136 + // EnsureMemoryDumpProviderExists(); 137 IncrementMessageCount(); 138 } 139 140 diff --git a/mojo/public/cpp/bindings/lib/message_dumper.cc b/mojo/public/cpp/bindings/lib/message_dumper.cc 141 index f187e45..35696bb 100644 142 --- a/mojo/public/cpp/bindings/lib/message_dumper.cc 143 +++ b/mojo/public/cpp/bindings/lib/message_dumper.cc 144 @@ -22,33 +22,33 @@ base::FilePath& DumpDirectory() { 145 return *dump_directory; 146 } 147 148 -void WriteMessage(uint32_t identifier, 149 - const mojo::MessageDumper::MessageEntry& entry) { 150 - static uint64_t num = 0; 151 - 152 - if (!entry.interface_name) 153 - return; 154 - 155 - base::FilePath message_directory = 156 - DumpDirectory() 157 - .AppendASCII(entry.interface_name) 158 - .AppendASCII(base::NumberToString(identifier)); 159 - 160 - if (!base::DirectoryExists(message_directory) && 161 - !base::CreateDirectory(message_directory)) { 162 - LOG(ERROR) << "Failed to create" << message_directory.value(); 163 - return; 164 - } 165 - 166 - std::string filename = 167 - base::NumberToString(num++) + "." + entry.method_name + ".mojomsg"; 168 - base::FilePath path = message_directory.AppendASCII(filename); 169 - base::File file(path, 170 - base::File::FLAG_WRITE | base::File::FLAG_CREATE_ALWAYS); 171 - 172 - file.WriteAtCurrentPos(reinterpret_cast<const char*>(entry.data_bytes.data()), 173 - static_cast<int>(entry.data_bytes.size())); 174 -} 175 +// void WriteMessage(uint32_t identifier, 176 +// const mojo::MessageDumper::MessageEntry& entry) { 177 +// static uint64_t num = 0; 178 + 179 +// if (!entry.interface_name) 180 +// return; 181 + 182 +// base::FilePath message_directory = 183 +// DumpDirectory() 184 +// .AppendASCII(entry.interface_name) 185 +// .AppendASCII(base::NumberToString(identifier)); 186 + 187 +// if (!base::DirectoryExists(message_directory) && 188 +// !base::CreateDirectory(message_directory)) { 189 +// LOG(ERROR) << "Failed to create" << message_directory.value(); 190 +// return; 191 +// } 192 + 193 +// std::string filename = 194 +// base::NumberToString(num++) + "." + entry.method_name + ".mojomsg"; 195 +// base::FilePath path = message_directory.AppendASCII(filename); 196 +// base::File file(path, 197 +// base::File::FLAG_WRITE | base::File::FLAG_CREATE_ALWAYS); 198 + 199 +// file.WriteAtCurrentPos(reinterpret_cast<const char*>(entry.data_bytes.data()), 200 +// static_cast<int>(entry.data_bytes.size())); 201 +// } 202 203 } // namespace 204 205 @@ -71,17 +71,17 @@ MessageDumper::MessageDumper() : identifier_(base::RandUint64()) {} 206 MessageDumper::~MessageDumper() {} 207 208 bool MessageDumper::Accept(mojo::Message* message) { 209 - MessageEntry entry(message->data(), message->data_num_bytes(), 210 - message->interface_name(), message->method_name()); 211 + // MessageEntry entry(message->data(), message->data_num_bytes(), 212 + // "unknown interface", "unknown name"); 213 214 - static base::NoDestructor<scoped_refptr<base::TaskRunner>> task_runner( 215 - base::CreateSequencedTaskRunnerWithTraits( 216 - {base::MayBlock(), base::TaskPriority::USER_BLOCKING, 217 - base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})); 218 + // static base::NoDestructor<scoped_refptr<base::TaskRunner>> task_runner( 219 + // base::CreateSequencedTaskRunnerWithTraits( 220 + // {base::MayBlock(), base::TaskPriority::USER_BLOCKING, 221 + // base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})); 222 223 - (*task_runner) 224 - ->PostTask(FROM_HERE, 225 - base::BindOnce(&WriteMessage, identifier_, std::move(entry))); 226 + // (*task_runner) 227 + // ->PostTask(FROM_HERE, 228 + // base::BindOnce(&WriteMessage, identifier_, std::move(entry))); 229 return true; 230 } 231 232 diff --git a/mojo/public/cpp/system/file_data_pipe_producer.cc b/mojo/public/cpp/system/file_data_pipe_producer.cc 233 index 842fe8f..6038bbe 100644 234 --- a/mojo/public/cpp/system/file_data_pipe_producer.cc 235 +++ b/mojo/public/cpp/system/file_data_pipe_producer.cc 236 @@ -266,13 +266,15 @@ void FileDataPipeProducer::WriteFromPath(const base::FilePath& path, 237 238 void FileDataPipeProducer::InitializeNewRequest(CompletionCallback callback) { 239 DCHECK(!file_sequence_state_); 240 - auto file_task_runner = base::CreateSequencedTaskRunnerWithTraits( 241 - {base::MayBlock(), base::TaskPriority::BACKGROUND}); 242 - file_sequence_state_ = new FileSequenceState( 243 - std::move(producer_), file_task_runner, 244 - base::BindOnce(&FileDataPipeProducer::OnWriteComplete, 245 - weak_factory_.GetWeakPtr(), std::move(callback)), 246 - base::SequencedTaskRunnerHandle::Get(), std::move(observer_)); 247 + 248 + LOG(FATAL) << "unsupported in libchrome"; 249 + // auto file_task_runner = base::CreateSequencedTaskRunnerWithTraits( 250 + // {base::MayBlock(), base::TaskPriority::BACKGROUND}); 251 + // file_sequence_state_ = new FileSequenceState( 252 + // std::move(producer_), file_task_runner, 253 + // base::BindOnce(&FileDataPipeProducer::OnWriteComplete, 254 + // weak_factory_.GetWeakPtr(), std::move(callback)), 255 + // base::SequencedTaskRunnerHandle::Get(), std::move(observer_)); 256 } 257 258 void FileDataPipeProducer::OnWriteComplete( 259 diff --git a/mojo/public/tools/bindings/mojom_bindings_generator.py b/mojo/public/tools/bindings/mojom_bindings_generator.py 260 index affbe79..57a8031 100755 261 --- a/mojo/public/tools/bindings/mojom_bindings_generator.py 262 +++ b/mojo/public/tools/bindings/mojom_bindings_generator.py 263 @@ -174,7 +174,8 @@ class MojomProcessor(object): 264 MakeImportStackMessage(imported_filename_stack + [rel_filename.path]) 265 sys.exit(1) 266 267 - tree = _UnpickleAST(_GetPicklePath(rel_filename, args.output_dir)) 268 + tree = _UnpickleAST(_FindPicklePath(rel_filename, args.gen_directories + 269 + [args.output_dir])) 270 dirname = os.path.dirname(rel_filename.path) 271 272 # Process all our imports first and collect the module object for each. 273 @@ -256,6 +257,16 @@ def _Generate(args, remaining_args): 274 return 0 275 276 277 +def _FindPicklePath(rel_filename, search_dirs): 278 + filename, _ = os.path.splitext(rel_filename.relative_path()) 279 + pickle_path = filename + '.p' 280 + for search_dir in search_dirs: 281 + path = os.path.join(search_dir, pickle_path) 282 + if os.path.isfile(path): 283 + return path 284 + raise Exception("%s: Error: Could not find file in %r" % (pickle_path, search_dirs)) 285 + 286 + 287 def _GetPicklePath(rel_filename, output_dir): 288 filename, _ = os.path.splitext(rel_filename.relative_path()) 289 pickle_path = filename + '.p' 290 @@ -402,6 +413,9 @@ def main(): 291 metavar="GENERATORS", 292 default="c++,javascript,java", 293 help="comma-separated list of generators") 294 + generate_parser.add_argument( 295 + "--gen_dir", dest="gen_directories", action="append", metavar="directory", 296 + default=[], help="add a directory to be searched for the syntax trees.") 297 generate_parser.add_argument( 298 "-I", dest="import_directories", action="append", metavar="directory", 299 default=[], 300