OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ipc/ipc_channel_reader.h" | 5 #include "ipc/ipc_channel_reader.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
13 #include "base/threading/thread_task_runner_handle.h" | 13 #include "base/threading/thread_task_runner_handle.h" |
14 #include "ipc/ipc_listener.h" | 14 #include "ipc/ipc_listener.h" |
15 #include "ipc/ipc_logging.h" | 15 #include "ipc/ipc_logging.h" |
16 #include "ipc/ipc_message.h" | 16 #include "ipc/ipc_message.h" |
17 #include "ipc/ipc_message_attachment_set.h" | 17 #include "ipc/ipc_message_attachment_set.h" |
18 #include "ipc/ipc_message_macros.h" | 18 #include "ipc/ipc_message_macros.h" |
19 | 19 |
20 namespace IPC { | 20 namespace IPC { |
21 namespace internal { | 21 namespace internal { |
22 | 22 |
23 #ifdef IPC_MESSAGE_LOG_ENABLED | 23 #if BUILDFLAG(IPC_MESSAGE_LOG_ENABLED) |
24 | 24 |
25 namespace { | 25 namespace { |
26 std::string GetMessageText(const Message& message) { | 26 std::string GetMessageText(const Message& message) { |
27 std::string name; | 27 std::string name; |
28 Logging::GetInstance()->GetMessageText( | 28 Logging::GetInstance()->GetMessageText( |
29 message.type(), &name, &message, nullptr); | 29 message.type(), &name, &message, nullptr); |
30 return name; | 30 return name; |
31 } | 31 } |
32 } // namespace | 32 } // namespace |
33 | 33 |
34 #define EMIT_TRACE_EVENT(message) \ | 34 #define EMIT_TRACE_EVENT(message) \ |
35 TRACE_EVENT_WITH_FLOW1( \ | 35 TRACE_EVENT_WITH_FLOW1( \ |
36 "ipc,toplevel", "ChannelReader::DispatchInputData", \ | 36 "ipc,toplevel", "ChannelReader::DispatchInputData", \ |
37 (message).flags(), TRACE_EVENT_FLAG_FLOW_IN, "name", \ | 37 (message).flags(), TRACE_EVENT_FLAG_FLOW_IN, "name", \ |
38 GetMessageText(message)); | 38 GetMessageText(message)); |
39 #else | 39 #else |
40 #define EMIT_TRACE_EVENT(message) \ | 40 #define EMIT_TRACE_EVENT(message) \ |
41 TRACE_EVENT_WITH_FLOW2("ipc,toplevel", "ChannelReader::DispatchInputData", \ | 41 TRACE_EVENT_WITH_FLOW2("ipc,toplevel", "ChannelReader::DispatchInputData", \ |
42 (message).flags(), TRACE_EVENT_FLAG_FLOW_IN, "class", \ | 42 (message).flags(), TRACE_EVENT_FLAG_FLOW_IN, "class", \ |
43 IPC_MESSAGE_ID_CLASS((message).type()), "line", \ | 43 IPC_MESSAGE_ID_CLASS((message).type()), "line", \ |
44 IPC_MESSAGE_ID_LINE((message).type())); | 44 IPC_MESSAGE_ID_LINE((message).type())); |
45 #endif // IPC_MESSAGE_LOG_ENABLED | 45 #endif // BUILDFLAG(IPC_MESSAGE_LOG_ENABLED) |
46 | 46 |
47 ChannelReader::ChannelReader(Listener* listener) | 47 ChannelReader::ChannelReader(Listener* listener) |
48 : listener_(listener), | 48 : listener_(listener), |
49 max_input_buffer_size_(Channel::kMaximumReadBufferSize) { | 49 max_input_buffer_size_(Channel::kMaximumReadBufferSize) { |
50 memset(input_buf_, 0, sizeof(input_buf_)); | 50 memset(input_buf_, 0, sizeof(input_buf_)); |
51 } | 51 } |
52 | 52 |
53 ChannelReader::~ChannelReader() { | 53 ChannelReader::~ChannelReader() { |
54 } | 54 } |
55 | 55 |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 if (size <= Channel::kMaximumMessageSize) { | 208 if (size <= Channel::kMaximumMessageSize) { |
209 return true; | 209 return true; |
210 } | 210 } |
211 input_overflow_buf_.clear(); | 211 input_overflow_buf_.clear(); |
212 LOG(ERROR) << "IPC message is too big: " << size; | 212 LOG(ERROR) << "IPC message is too big: " << size; |
213 return false; | 213 return false; |
214 } | 214 } |
215 | 215 |
216 } // namespace internal | 216 } // namespace internal |
217 } // namespace IPC | 217 } // namespace IPC |
OLD | NEW |