Index: content/browser/devtools/devtools_agent_host_impl.cc |
diff --git a/content/browser/devtools/devtools_agent_host_impl.cc b/content/browser/devtools/devtools_agent_host_impl.cc |
index 1c7f9a641a74442f6a45f90ea00acce50375067a..109dccd0976b10575a2da8af4ef673ccac31e8f5 100644 |
--- a/content/browser/devtools/devtools_agent_host_impl.cc |
+++ b/content/browser/devtools/devtools_agent_host_impl.cc |
@@ -287,7 +287,7 @@ DevToolsMessageChunkProcessor::DevToolsMessageChunkProcessor( |
DevToolsMessageChunkProcessor::~DevToolsMessageChunkProcessor() { |
} |
-void DevToolsMessageChunkProcessor::ProcessChunkedMessageFromAgent( |
+bool DevToolsMessageChunkProcessor::ProcessChunkedMessageFromAgent( |
const DevToolsMessageChunk& chunk) { |
if (chunk.is_last && !chunk.post_state.empty()) |
state_cookie_ = chunk.post_state; |
@@ -295,9 +295,10 @@ void DevToolsMessageChunkProcessor::ProcessChunkedMessageFromAgent( |
last_call_id_ = chunk.call_id; |
if (chunk.is_first && chunk.is_last) { |
- CHECK(message_buffer_size_ == 0); |
+ if (message_buffer_size_ != 0) |
+ return false; |
callback_.Run(chunk.session_id, chunk.data); |
- return; |
+ return true; |
} |
if (chunk.is_first) { |
@@ -306,16 +307,18 @@ void DevToolsMessageChunkProcessor::ProcessChunkedMessageFromAgent( |
message_buffer_size_ = chunk.message_size; |
} |
- CHECK(message_buffer_.size() + chunk.data.size() <= |
- message_buffer_size_); |
+ if (message_buffer_.size() + chunk.data.size() > message_buffer_size_) |
+ return false; |
message_buffer_.append(chunk.data); |
if (chunk.is_last) { |
- CHECK(message_buffer_.size() == message_buffer_size_); |
+ if (message_buffer_.size() != message_buffer_size_) |
+ return false; |
callback_.Run(chunk.session_id, message_buffer_); |
message_buffer_ = std::string(); |
message_buffer_size_ = 0; |
} |
+ return true; |
} |
} // namespace content |