| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #ifndef WEBKIT_GLUE_WEBDEVTOOLSAGENT_IMPL_H_ | 5 #ifndef WEBKIT_GLUE_WEBDEVTOOLSAGENT_IMPL_H_ |
| 6 #define WEBKIT_GLUE_WEBDEVTOOLSAGENT_IMPL_H_ | 6 #define WEBKIT_GLUE_WEBDEVTOOLSAGENT_IMPL_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include <wtf/OwnPtr.h> | 10 #include <wtf/OwnPtr.h> |
| 11 #include <wtf/Vector.h> | |
| 12 | 11 |
| 13 #include "v8.h" | 12 #include "v8.h" |
| 14 #include "webkit/glue/devtools/devtools_rpc.h" | 13 #include "webkit/glue/devtools/devtools_rpc.h" |
| 15 #include "webkit/glue/devtools/dom_agent.h" | 14 #include "webkit/glue/devtools/dom_agent.h" |
| 16 #include "webkit/glue/devtools/net_agent.h" | |
| 17 #include "webkit/glue/devtools/tools_agent.h" | 15 #include "webkit/glue/devtools/tools_agent.h" |
| 18 #include "webkit/glue/webdevtoolsagent.h" | 16 #include "webkit/glue/webdevtoolsagent.h" |
| 19 | 17 |
| 20 namespace WebCore { | 18 namespace WebCore { |
| 21 class Document; | 19 class Document; |
| 22 class Node; | 20 class Node; |
| 23 class String; | 21 class String; |
| 24 } | 22 } |
| 25 | 23 |
| 24 class BoundObject; |
| 26 class DebuggerAgentDelegateStub; | 25 class DebuggerAgentDelegateStub; |
| 27 class DebuggerAgentImpl; | 26 class DebuggerAgentImpl; |
| 28 class DomAgentImpl; | 27 class DomAgentImpl; |
| 29 class NetAgentImpl; | 28 class NetAgentImpl; |
| 30 class Value; | 29 class Value; |
| 31 class WebDevToolsAgentDelegate; | 30 class WebDevToolsAgentDelegate; |
| 32 class WebFrame; | 31 class WebFrame; |
| 33 class WebFrameImpl; | 32 class WebFrameImpl; |
| 34 class WebViewImpl; | 33 class WebViewImpl; |
| 35 | 34 |
| 36 class WebDevToolsAgentImpl | 35 class WebDevToolsAgentImpl |
| 37 : public WebDevToolsAgent, | 36 : public WebDevToolsAgent, |
| 38 public ToolsAgent, | 37 public ToolsAgent, |
| 39 public DevToolsRpc::Delegate { | 38 public DevToolsRpc::Delegate { |
| 40 public: | 39 public: |
| 41 WebDevToolsAgentImpl(WebViewImpl* web_view_impl, | 40 WebDevToolsAgentImpl(WebViewImpl* web_view_impl, |
| 42 WebDevToolsAgentDelegate* delegate); | 41 WebDevToolsAgentDelegate* delegate); |
| 43 virtual ~WebDevToolsAgentImpl(); | 42 virtual ~WebDevToolsAgentImpl(); |
| 44 | 43 |
| 45 // ToolsAgent implementation. | 44 // ToolsAgent implementation. |
| 46 virtual void HighlightDOMNode(int node_id); | 45 virtual void HighlightDOMNode(int node_id); |
| 47 virtual void HideDOMNodeHighlight(); | 46 virtual void HideDOMNodeHighlight(); |
| 48 virtual void EvaluateJavaScript(int call_id, const String& js); | 47 virtual void EvaluateJavaScript(int call_id, const String& js); |
| 49 virtual void ExecuteUtilityFunction( | 48 virtual void ExecuteUtilityFunction( |
| 50 int call_id, | 49 int call_id, |
| 51 const WebCore::String& function_name, | 50 const WebCore::String& function_name, |
| 52 int node_id, | 51 int node_id, |
| 53 const WebCore::String& json_args); | 52 const WebCore::String& json_args); |
| 54 virtual void ClearConsoleMessages(); | 53 virtual void ClearConsoleMessages(); |
| 54 virtual void GetResourceContent( |
| 55 int call_id, |
| 56 int identifier); |
| 55 | 57 |
| 56 // WebDevToolsAgent implementation. | 58 // WebDevToolsAgent implementation. |
| 57 virtual void Attach(); | 59 virtual void Attach(); |
| 58 virtual void Detach(); | 60 virtual void Detach(); |
| 59 virtual void DispatchMessageFromClient(const std::string& raw_msg); | 61 virtual void DispatchMessageFromClient(const std::string& raw_msg); |
| 60 virtual void InspectElement(int x, int y); | 62 virtual void InspectElement(int x, int y); |
| 61 | 63 |
| 62 // DevToolsRpc::Delegate implementation. | 64 // DevToolsRpc::Delegate implementation. |
| 63 void SendRpcMessage(const std::string& raw_msg); | 65 void SendRpcMessage(const std::string& raw_msg); |
| 64 | 66 |
| 65 // Methods called by the glue. | 67 // Methods called by the glue. |
| 66 void SetMainFrameDocumentReady(bool ready); | 68 void SetMainFrameDocumentReady(bool ready); |
| 67 void DidCommitLoadForFrame(WebViewImpl* webview, | 69 void DidCommitLoadForFrame(WebViewImpl* webview, |
| 68 WebFrame* frame, | 70 WebFrame* frame, |
| 69 bool is_new_navigation); | 71 bool is_new_navigation); |
| 70 void AddMessageToConsole( | |
| 71 int source, | |
| 72 int level, | |
| 73 const WebCore::String& message, | |
| 74 unsigned int line_no, | |
| 75 const WebCore::String& source_id); | |
| 76 | 72 |
| 77 void WindowObjectCleared(WebFrameImpl* webframe); | 73 void WindowObjectCleared(WebFrameImpl* webframe); |
| 78 | 74 |
| 79 void ForceRepaint(); | 75 void ForceRepaint(); |
| 80 | 76 |
| 81 int host_id() { return host_id_; } | 77 int host_id() { return host_id_; } |
| 82 NetAgentImpl* net_agent_impl() { return net_agent_impl_.get(); } | |
| 83 | 78 |
| 84 private: | 79 private: |
| 85 struct ConsoleMessage { | 80 static v8::Handle<v8::Value> JsDispatchOnClient(const v8::Arguments& args); |
| 86 ConsoleMessage( | |
| 87 int src, int lvl, const String& m, unsigned li, const String& sid) | |
| 88 : source(src), | |
| 89 level(lvl), | |
| 90 text(m), | |
| 91 line_no(li), | |
| 92 source_id(sid) { | |
| 93 } | |
| 94 int source; | |
| 95 int level; | |
| 96 WebCore::String text; | |
| 97 WebCore::String source_id; | |
| 98 unsigned int line_no; | |
| 99 }; | |
| 100 | |
| 101 static void Serialize(const ConsoleMessage& message, DictionaryValue* value); | |
| 102 | 81 |
| 103 int host_id_; | 82 int host_id_; |
| 104 WebDevToolsAgentDelegate* delegate_; | 83 WebDevToolsAgentDelegate* delegate_; |
| 105 WebViewImpl* web_view_impl_; | 84 WebViewImpl* web_view_impl_; |
| 106 WebCore::Document* document_; | 85 WebCore::Document* document_; |
| 107 OwnPtr<DebuggerAgentDelegateStub> debugger_agent_delegate_stub_; | 86 OwnPtr<DebuggerAgentDelegateStub> debugger_agent_delegate_stub_; |
| 108 OwnPtr<DomAgentDelegateStub> dom_agent_delegate_stub_; | 87 OwnPtr<DomAgentDelegateStub> dom_agent_delegate_stub_; |
| 109 OwnPtr<NetAgentDelegateStub> net_agent_delegate_stub_; | |
| 110 OwnPtr<ToolsAgentDelegateStub> tools_agent_delegate_stub_; | 88 OwnPtr<ToolsAgentDelegateStub> tools_agent_delegate_stub_; |
| 111 OwnPtr<DebuggerAgentImpl> debugger_agent_impl_; | 89 OwnPtr<DebuggerAgentImpl> debugger_agent_impl_; |
| 112 OwnPtr<DomAgentImpl> dom_agent_impl_; | 90 OwnPtr<DomAgentImpl> dom_agent_impl_; |
| 113 OwnPtr<NetAgentImpl> net_agent_impl_; | |
| 114 Vector<ConsoleMessage> console_log_; | |
| 115 bool attached_; | 91 bool attached_; |
| 116 // TODO(pfeldman): This should not be needed once GC styles issue is fixed | 92 // TODO(pfeldman): This should not be needed once GC styles issue is fixed |
| 117 // for matching rules. | 93 // for matching rules. |
| 118 v8::Persistent<v8::Context> utility_context_; | 94 v8::Persistent<v8::Context> utility_context_; |
| 95 OwnPtr<BoundObject> web_inspector_stub_; |
| 119 DISALLOW_COPY_AND_ASSIGN(WebDevToolsAgentImpl); | 96 DISALLOW_COPY_AND_ASSIGN(WebDevToolsAgentImpl); |
| 120 }; | 97 }; |
| 121 | 98 |
| 122 #endif // WEBKIT_GLUE_WEBDEVTOOLSAGENT_IMPL_H_ | 99 #endif // WEBKIT_GLUE_WEBDEVTOOLSAGENT_IMPL_H_ |
| OLD | NEW |