Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: content/browser/devtools/devtools_agent_host_impl.cc

Issue 2198503002: DevTools: do not CHECK devtools messages received from renderer in the browser, issue bad_message i… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebaselined Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "content/browser/devtools/devtools_agent_host_impl.h" 5 #include "content/browser/devtools/devtools_agent_host_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/guid.h" 10 #include "base/guid.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 DevToolsMessageChunkProcessor::DevToolsMessageChunkProcessor( 280 DevToolsMessageChunkProcessor::DevToolsMessageChunkProcessor(
281 const SendMessageCallback& callback) 281 const SendMessageCallback& callback)
282 : callback_(callback), 282 : callback_(callback),
283 message_buffer_size_(0), 283 message_buffer_size_(0),
284 last_call_id_(0) { 284 last_call_id_(0) {
285 } 285 }
286 286
287 DevToolsMessageChunkProcessor::~DevToolsMessageChunkProcessor() { 287 DevToolsMessageChunkProcessor::~DevToolsMessageChunkProcessor() {
288 } 288 }
289 289
290 void DevToolsMessageChunkProcessor::ProcessChunkedMessageFromAgent( 290 bool DevToolsMessageChunkProcessor::ProcessChunkedMessageFromAgent(
291 const DevToolsMessageChunk& chunk) { 291 const DevToolsMessageChunk& chunk) {
292 if (chunk.is_last && !chunk.post_state.empty()) 292 if (chunk.is_last && !chunk.post_state.empty())
293 state_cookie_ = chunk.post_state; 293 state_cookie_ = chunk.post_state;
294 if (chunk.is_last) 294 if (chunk.is_last)
295 last_call_id_ = chunk.call_id; 295 last_call_id_ = chunk.call_id;
296 296
297 if (chunk.is_first && chunk.is_last) { 297 if (chunk.is_first && chunk.is_last) {
298 CHECK(message_buffer_size_ == 0); 298 if (message_buffer_size_ != 0)
299 return false;
299 callback_.Run(chunk.session_id, chunk.data); 300 callback_.Run(chunk.session_id, chunk.data);
300 return; 301 return true;
301 } 302 }
302 303
303 if (chunk.is_first) { 304 if (chunk.is_first) {
304 message_buffer_ = std::string(); 305 message_buffer_ = std::string();
305 message_buffer_.reserve(chunk.message_size); 306 message_buffer_.reserve(chunk.message_size);
306 message_buffer_size_ = chunk.message_size; 307 message_buffer_size_ = chunk.message_size;
307 } 308 }
308 309
309 CHECK(message_buffer_.size() + chunk.data.size() <= 310 if (message_buffer_.size() + chunk.data.size() > message_buffer_size_)
310 message_buffer_size_); 311 return false;
311 message_buffer_.append(chunk.data); 312 message_buffer_.append(chunk.data);
312 313
313 if (chunk.is_last) { 314 if (chunk.is_last) {
314 CHECK(message_buffer_.size() == message_buffer_size_); 315 if (message_buffer_.size() != message_buffer_size_)
316 return false;
315 callback_.Run(chunk.session_id, message_buffer_); 317 callback_.Run(chunk.session_id, message_buffer_);
316 message_buffer_ = std::string(); 318 message_buffer_ = std::string();
317 message_buffer_size_ = 0; 319 message_buffer_size_ = 0;
318 } 320 }
321 return true;
319 } 322 }
320 323
321 } // namespace content 324 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/devtools/devtools_agent_host_impl.h ('k') | content/browser/devtools/render_frame_devtools_agent_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698