15e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block/*
25e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * Copyright (C) 2010 Google Inc. All rights reserved.
35e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *
45e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * Redistribution and use in source and binary forms, with or without
55e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * modification, are permitted provided that the following conditions are
65e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * met:
75e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *
85e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *     * Redistributions of source code must retain the above copyright
95e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * notice, this list of conditions and the following disclaimer.
105e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *     * Redistributions in binary form must reproduce the above
115e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * copyright notice, this list of conditions and the following disclaimer
125e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * in the documentation and/or other materials provided with the
135e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * distribution.
145e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *     * Neither the name of Google Inc. nor the names of its
155e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * contributors may be used to endorse or promote products derived from
165e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * this software without specific prior written permission.
175e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *
185e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
195e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
205e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
215e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
225e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
235e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
245e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
255e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
265e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
275e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
285e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
295e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block */
305e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
315e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#ifndef DebuggerAgentImpl_h
325e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#define DebuggerAgentImpl_h
335e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
34dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include <wtf/Forward.h>
355e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
365e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blocknamespace WebCore {
375e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blockclass Page;
385e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block}
395e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
405e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blocknamespace WebKit {
415e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass WebDevToolsAgentClient;
435e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blockclass WebDevToolsAgentImpl;
445e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blockclass WebViewImpl;
455e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
46dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochclass DebuggerAgentImpl {
475e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blockpublic:
485e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    DebuggerAgentImpl(WebKit::WebViewImpl* webViewImpl,
49dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch                      WebDevToolsAgentImpl* webdevtoolsAgent,
50dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch                      WebDevToolsAgentClient* webdevtoolsAgentClient);
515e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    virtual ~DebuggerAgentImpl();
525e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
53dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    void debuggerOutput(const WTF::String& out);
545e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
555e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    void setAutoContinueOnException(bool autoContinue) { m_autoContinueOnException = autoContinue; }
565e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
575e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    bool autoContinueOnException() { return m_autoContinueOnException; }
585e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
595e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    WebCore::Page* page();
605e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    WebDevToolsAgentImpl* webdevtoolsAgent() { return m_webdevtoolsAgent; }
615e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
625e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    WebKit::WebViewImpl* webView() { return m_webViewImpl; }
635e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
645e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blockprivate:
655e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    WebKit::WebViewImpl* m_webViewImpl;
665e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    WebDevToolsAgentImpl* m_webdevtoolsAgent;
67dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    WebDevToolsAgentClient* m_webdevtoolsAgentClient;
685e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    bool m_autoContinueOnException;
695e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block};
705e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
715e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block} // namespace WebKit
725e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
735e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#endif
74