WebKitTools:
[WebKit-https.git] / WebKitTools / Drosera / win / ServerConnection.cpp
1 /*
2  * Copyright (C) 2007 Apple Inc.  All rights reserved.
3  * Copyright (C) 2006, 2007 Vladimir Olexa (vladimir.olexa@gmail.com)
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1.  Redistributions of source code must retain the above copyright
10  *     notice, this list of conditions and the following disclaimer. 
11  * 2.  Redistributions in binary form must reproduce the above copyright
12  *     notice, this list of conditions and the following disclaimer in the
13  *     documentation and/or other materials provided with the distribution. 
14  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15  *     its contributors may be used to endorse or promote products derived
16  *     from this software without specific prior written permission. 
17  *
18  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 #include "config.h"
31 #include "ServerConnection.h"
32
33 #include "DebuggerDocument.h"
34
35 #include <JavaScriptCore/JSContextRef.h>
36 #include <JavaScriptCore/JSRetainPtr.h>
37 #include <JavaScriptCore/JSStringRefCF.h>
38 #include <JavaScriptCore/RetainPtr.h>
39
40 // FIXME: Some of the below functionality cannot be implemented until the WebScriptDebug Server works on windows.
41 ServerConnection::ServerConnection()
42     : m_globalContext(0)
43 {
44 }
45
46 ServerConnection::~ServerConnection()
47 {
48     if (m_globalContext)
49         JSGlobalContextRelease(m_globalContext);
50 }
51
52 void ServerConnection::setGlobalContext(JSGlobalContextRef globalContextRef)
53 {
54     m_globalContext = JSGlobalContextRetain(globalContextRef);
55 }
56
57 void ServerConnection::pause()
58 {
59 }
60
61 void ServerConnection::resume()
62 {
63 }
64
65 void ServerConnection::stepInto()
66 {
67 }
68
69 // Connection Handling
70
71 void ServerConnection::applicationTerminating()
72 {
73 }
74
75 void ServerConnection::serverConnectionDidDie()
76 {
77 }
78
79 // Stack & Variables
80
81 WebScriptCallFrame* ServerConnection::currentFrame() const
82 {
83     return m_currentFrame;
84 }
85
86
87 // IUnknown --------------------------------------------------
88 HRESULT STDMETHODCALLTYPE ServerConnection::QueryInterface(REFIID riid, void** ppvObject)
89 {
90     *ppvObject = 0;
91     if (IsEqualGUID(riid, IID_IUnknown))
92         *ppvObject = this;
93     else if (IsEqualGUID(riid, IID_IWebScriptDebugListener))
94         *ppvObject = static_cast<IWebScriptDebugListener*>(this);
95     else
96         return E_NOINTERFACE;
97
98     AddRef();
99     return S_OK;
100 }
101
102 ULONG STDMETHODCALLTYPE ServerConnection::AddRef(void)
103 {
104     // COM ref-counting isn't useful to us because we're in charge of the lifetime of the WebView.
105     return 1;
106 }
107
108 ULONG STDMETHODCALLTYPE ServerConnection::Release(void)
109 {
110     // COM ref-counting isn't useful to us because we're in charge of the lifetime of the WebView.
111     return 1;
112 }
113 // IWebScriptDebugListener -----------------------------------
114 HRESULT STDMETHODCALLTYPE ServerConnection::didLoadMainResourceForDataSource(
115     /* [in] */ IWebView* /*view*/,
116     /* [in] */ IWebDataSource* /*dataSource*/)
117 {
118     return S_OK;
119 }
120
121 HRESULT STDMETHODCALLTYPE ServerConnection::didParseSource(
122     /* [in] */ IWebView* /*view*/,
123     /* [in] */ BSTR /*sourceCode*/,
124     /* [in] */ UINT /*baseLineNumber*/,
125     /* [in] */ BSTR /*url*/,
126     /* [in] */ int /*sourceID*/,
127     /* [in] */ IWebFrame* /*forWebFrame*/)
128 {
129     return S_OK;
130 }
131
132 HRESULT STDMETHODCALLTYPE ServerConnection::failedToParseSource(
133     /* [in] */ IWebView* /*view*/,
134     /* [in] */ BSTR /*sourceCode*/,
135     /* [in] */ UINT /*baseLineNumber*/,
136     /* [in] */ BSTR /*url*/,
137     /* [in] */ BSTR /*error*/,
138     /* [in] */ IWebFrame* /*forWebFrame*/)
139 {
140     return S_OK;
141 }
142
143 HRESULT STDMETHODCALLTYPE ServerConnection::didEnterCallFrame(
144     /* [in] */ IWebView* /*view*/,
145     /* [in] */ IWebScriptCallFrame* /*frame*/,
146     /* [in] */ int /*sourceID*/,
147     /* [in] */ int /*lineNumber*/,
148     /* [in] */ IWebFrame* /*forWebFrame*/)
149 {
150     return S_OK;
151 }
152
153 HRESULT STDMETHODCALLTYPE ServerConnection::willExecuteStatement(
154     /* [in] */ IWebView* /*view*/,
155     /* [in] */ IWebScriptCallFrame* /*frame*/,
156     /* [in] */ int /*sourceID*/,
157     /* [in] */ int /*lineNumber*/,
158     /* [in] */ IWebFrame* /*forWebFrame*/)
159 {
160     return S_OK;
161 }
162
163 HRESULT STDMETHODCALLTYPE ServerConnection::willLeaveCallFrame(
164     /* [in] */ IWebView* /*view*/,
165     /* [in] */ IWebScriptCallFrame* /*frame*/,
166     /* [in] */ int /*sourceID*/,
167     /* [in] */ int /*lineNumber*/,
168     /* [in] */ IWebFrame* /*forWebFrame*/)
169 {
170     return S_OK;
171 }
172
173 HRESULT STDMETHODCALLTYPE ServerConnection::exceptionWasRaised(
174     /* [in] */ IWebView* /*view*/,
175     /* [in] */ IWebScriptCallFrame* /*frame*/,
176     /* [in] */ int /*sourceID*/,
177     /* [in] */ int /*lineNumber*/,
178     /* [in] */ IWebFrame* /*forWebFrame*/)
179 {
180     return S_OK;
181 }