Index: content/renderer/devtools/devtools_agent_filter.cc |
diff --git a/content/renderer/devtools/devtools_agent_filter.cc b/content/renderer/devtools/devtools_agent_filter.cc |
index 76062d9070a20f14e0dc9c87d61318d495b410ea..40a4b08fb2a6859e8a85422a4df8b50754da94c3 100644 |
--- a/content/renderer/devtools/devtools_agent_filter.cc |
+++ b/content/renderer/devtools/devtools_agent_filter.cc |
@@ -7,6 +7,8 @@ |
#include "base/bind.h" |
#include "base/message_loop.h" |
#include "content/common/devtools_messages.h" |
+#include "content/common/resource_dispatcher.h" |
+#include "content/common/resource_messages.h" |
#include "content/renderer/devtools/devtools_agent.h" |
#include "content/renderer/plugin_channel_host.h" |
#include "third_party/WebKit/Source/Platform/chromium/public/WebString.h" |
@@ -40,12 +42,25 @@ class MessageImpl : public WebDevToolsAgent::MessageDescriptor { |
} // namespace |
-DevToolsAgentFilter::DevToolsAgentFilter() |
- : message_handled_(false), |
+DevToolsAgentFilter::DevToolsAgentFilter( |
+ ResourceDispatcher* resource_dispatcher) |
+ : resource_dispatcher_(resource_dispatcher), |
+ message_handled_(false), |
render_thread_loop_(base::MessageLoop::current()), |
current_routing_id_(0) {} |
bool DevToolsAgentFilter::OnMessageReceived(const IPC::Message& message) { |
+ // Supply resource messages with IO timestamp. |
+ if (message.type() == ResourceMsg_RequestComplete::ID || |
+ message.type() == ResourceMsg_ReceivedResponse::ID || |
+ message.type() == ResourceMsg_ReceivedRedirect::ID) { |
+ render_thread_loop_->PostTask(FROM_HERE, base::Bind( |
+ &ResourceDispatcher::set_io_timestamp, |
+ base::Unretained(resource_dispatcher_), |
+ base::TimeTicks::Now())); |
+ return false; |
+ } |
+ |
// Dispatch debugger commands directly from IO. |
message_handled_ = true; |
current_routing_id_ = message.routing_id(); |