Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / browser / devtools / ipc_devtools_agent_host.cc
index 18c362e..9218d58 100644 (file)
@@ -29,6 +29,10 @@ void IPCDevToolsAgentHost::InspectElement(int x, int y) {
                                                          GetId(), x, y));
 }
 
+IPCDevToolsAgentHost::IPCDevToolsAgentHost()
+    : message_buffer_size_(0) {
+}
+
 IPCDevToolsAgentHost::~IPCDevToolsAgentHost() {
 }
 
@@ -38,4 +42,29 @@ void IPCDevToolsAgentHost::Reattach(const std::string& saved_agent_state) {
   OnClientAttached();
 }
 
+void IPCDevToolsAgentHost::ProcessChunkedMessageFromAgent(
+    const std::string& message, uint32 total_size) {
+  if (total_size && total_size == message.length()) {
+    DCHECK(message_buffer_size_ == 0);
+    SendMessageToClient(message);
+    return;
+  }
+
+  if (total_size) {
+    DCHECK(message_buffer_size_ == 0);
+    message_buffer_ = std::string();
+    message_buffer_.reserve(total_size);
+    message_buffer_size_ = total_size;
+  }
+
+  message_buffer_.append(message);
+
+  if (message_buffer_.size() >= message_buffer_size_) {
+    DCHECK(message_buffer_.size() == message_buffer_size_);
+    SendMessageToClient(message_buffer_);
+    message_buffer_ = std::string();
+    message_buffer_size_ = 0;
+  }
+}
+
 }  // namespace content