Index: webkit/glue/webdevtoolsagent_impl.cc |
=================================================================== |
--- webkit/glue/webdevtoolsagent_impl.cc (revision 13234) |
+++ webkit/glue/webdevtoolsagent_impl.cc (working copy) |
@@ -35,6 +35,9 @@ |
using WebCore::ScriptValue; |
using WebCore::String; |
+// Maximum size of the console message cache. |
+static const size_t kMaxConsoleMessages = 200; |
+ |
WebDevToolsAgentImpl::WebDevToolsAgentImpl( |
WebViewImpl* web_view_impl, |
WebDevToolsAgentDelegate* delegate) |
@@ -69,6 +72,16 @@ |
dom_agent_impl_->SetDocument(doc, true); |
net_agent_impl_->SetDocument(doc); |
} |
+ |
+ // Populate console. |
+ for (Vector<ConsoleMessage>::iterator it = console_log_.begin(); |
+ it != console_log_.end(); ++it) { |
+ tools_agent_delegate_stub_->AddMessageToConsole( |
+ it->message, |
+ it->source_id, |
+ it->line_no); |
+ } |
+ |
attached_ = true; |
} |
@@ -114,6 +127,24 @@ |
webview->GetMainFrame() == frame); |
} |
+void WebDevToolsAgentImpl::AddMessageToConsole( |
+ const String& message, |
+ const String& source_id, |
+ unsigned int line_no) { |
+ ConsoleMessage cm(message, source_id, line_no); |
+ console_log_.append(cm); |
+ if (console_log_.size() >= kMaxConsoleMessages) { |
+ // Batch shifts to save ticks. |
+ console_log_.remove(0, kMaxConsoleMessages / 5); |
+ } |
+ if (attached_) { |
+ tools_agent_delegate_stub_->AddMessageToConsole( |
+ message, |
+ source_id, |
+ line_no); |
+ } |
+} |
+ |
void WebDevToolsAgentImpl::HighlightDOMNode(int node_id) { |
if (!attached_) { |
return; |
@@ -159,6 +190,10 @@ |
result); |
} |
+void WebDevToolsAgentImpl::ClearConsoleMessages() { |
+ console_log_.clear(); |
+} |
+ |
void WebDevToolsAgentImpl::DispatchMessageFromClient( |
const std::string& raw_msg) { |
OwnPtr<ListValue> message( |