[chromium] move most of the remaining mocks to TestRunner library
[WebKit-https.git] / Tools / DumpRenderTree / chromium / TestRunner / public / WebTestProxy.h
1 /*
2  * Copyright (C) 2012 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  *     * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *     * Redistributions in binary form must reproduce the above
11  * copyright notice, this list of conditions and the following disclaimer
12  * in the documentation and/or other materials provided with the
13  * distribution.
14  *     * Neither the name of Google Inc. nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30
31 #ifndef WebTestProxy_h
32 #define WebTestProxy_h
33
34 #include "Platform/chromium/public/WebRect.h"
35 #include "Platform/chromium/public/WebURLError.h"
36 #include "WebKit/chromium/public/WebAccessibilityNotification.h"
37 #include "WebKit/chromium/public/WebDOMMessageEvent.h"
38 #include "WebKit/chromium/public/WebDragOperation.h"
39 #include "WebKit/chromium/public/WebEditingAction.h"
40 #include "WebKit/chromium/public/WebNavigationPolicy.h"
41 #include "WebKit/chromium/public/WebNavigationType.h"
42 #include "WebKit/chromium/public/WebSecurityOrigin.h"
43 #include "WebKit/chromium/public/WebTextAffinity.h"
44 #include "WebKit/chromium/public/WebTextDirection.h"
45 #include "WebTestCommon.h"
46 #include <map>
47 #include <memory>
48 #include <string>
49
50 namespace WebKit {
51 class WebAccessibilityObject;
52 class WebCachedURLRequest;
53 class WebDataSource;
54 class WebDeviceOrientationClient;
55 class WebDeviceOrientationClientMock;
56 class WebDragData;
57 class WebFrame;
58 class WebGeolocationClient;
59 class WebGeolocationClientMock;
60 class WebImage;
61 class WebNode;
62 class WebNotificationPresenter;
63 class WebPlugin;
64 class WebRange;
65 class WebSerializedScriptValue;
66 class WebSpeechInputController;
67 class WebSpeechInputListener;
68 class WebSpeechRecognizer;
69 class WebSpellCheckClient;
70 class WebString;
71 class WebURL;
72 class WebURLRequest;
73 class WebURLResponse;
74 class WebUserMediaClient;
75 class WebView;
76 struct WebConsoleMessage;
77 struct WebContextMenuData;
78 struct WebPluginParams;
79 struct WebPoint;
80 struct WebSize;
81 struct WebWindowFeatures;
82 }
83
84 class SkCanvas;
85
86 namespace WebTestRunner {
87
88 class MockWebSpeechInputController;
89 class MockWebSpeechRecognizer;
90 class SpellCheckClient;
91 class TestInterfaces;
92 class WebTestDelegate;
93 class WebTestInterfaces;
94 class WebTestRunner;
95 class WebUserMediaClientMock;
96
97 class WEBTESTRUNNER_EXPORT WebTestProxyBase {
98 public:
99     void setInterfaces(WebTestInterfaces*);
100     void setDelegate(WebTestDelegate*);
101
102     void reset();
103
104     WebKit::WebSpellCheckClient *spellCheckClient() const;
105
106     std::string captureTree(bool debugRenderTree);
107     SkCanvas* capturePixels();
108
109     void setLogConsoleOutput(bool enabled);
110
111 #if WEBTESTRUNNER_IMPLEMENTATION
112     void display();
113     void displayInvalidatedRegion();
114     void discardBackingStore();
115
116     WebKit::WebDeviceOrientationClientMock* deviceOrientationClientMock();
117     WebKit::WebGeolocationClientMock* geolocationClientMock();
118     MockWebSpeechInputController* speechInputControllerMock();
119     MockWebSpeechRecognizer* speechRecognizerMock();
120 #endif
121
122 protected:
123     WebTestProxyBase();
124     ~WebTestProxyBase();
125
126     void didInvalidateRect(const WebKit::WebRect&);
127     void didScrollRect(int, int, const WebKit::WebRect&);
128     void scheduleComposite();
129     void scheduleAnimation();
130     void setWindowRect(const WebKit::WebRect&);
131     void show(WebKit::WebNavigationPolicy);
132     void didAutoResize(const WebKit::WebSize&);
133     void postAccessibilityNotification(const WebKit::WebAccessibilityObject&, WebKit::WebAccessibilityNotification);
134     void startDragging(WebKit::WebFrame*, const WebKit::WebDragData&, WebKit::WebDragOperationsMask, const WebKit::WebImage&, const WebKit::WebPoint&);
135     bool shouldBeginEditing(const WebKit::WebRange&);
136     bool shouldEndEditing(const WebKit::WebRange&);
137     bool shouldInsertNode(const WebKit::WebNode&, const WebKit::WebRange&, WebKit::WebEditingAction);
138     bool shouldInsertText(const WebKit::WebString& text, const WebKit::WebRange&, WebKit::WebEditingAction);
139     bool shouldChangeSelectedRange(const WebKit::WebRange& fromRange, const WebKit::WebRange& toRange, WebKit::WebTextAffinity, bool stillSelecting);
140     bool shouldDeleteRange(const WebKit::WebRange&);
141     bool shouldApplyStyle(const WebKit::WebString& style, const WebKit::WebRange&);
142     void didBeginEditing();
143     void didChangeSelection(bool isEmptySelection);
144     void didChangeContents();
145     void didEndEditing();
146     bool createView(WebKit::WebFrame* creator, const WebKit::WebURLRequest&, const WebKit::WebWindowFeatures&, const WebKit::WebString& frameName, WebKit::WebNavigationPolicy);
147     WebKit::WebPlugin* createPlugin(WebKit::WebFrame*, const WebKit::WebPluginParams&);
148     void setStatusText(const WebKit::WebString&);
149     void didStopLoading();
150     bool isSmartInsertDeleteEnabled();
151     bool isSelectTrailingWhitespaceEnabled();
152     void showContextMenu(WebKit::WebFrame*, const WebKit::WebContextMenuData&);
153     WebKit::WebUserMediaClient* userMediaClient();
154     void printPage(WebKit::WebFrame*);
155     WebKit::WebNotificationPresenter* notificationPresenter();
156     WebKit::WebGeolocationClient* geolocationClient();
157     WebKit::WebSpeechInputController* speechInputController(WebKit::WebSpeechInputListener*);
158     WebKit::WebSpeechRecognizer* speechRecognizer();
159     WebKit::WebDeviceOrientationClient* deviceOrientationClient();
160     bool requestPointerLock();
161     void requestPointerUnlock();
162     bool isPointerLocked();
163
164     void willPerformClientRedirect(WebKit::WebFrame*, const WebKit::WebURL& from, const WebKit::WebURL& to, double interval, double fire_time);
165     void didCancelClientRedirect(WebKit::WebFrame*);
166     void didStartProvisionalLoad(WebKit::WebFrame*);
167     void didReceiveServerRedirectForProvisionalLoad(WebKit::WebFrame*);
168     void didFailProvisionalLoad(WebKit::WebFrame*, const WebKit::WebURLError&);
169     void didCommitProvisionalLoad(WebKit::WebFrame*, bool isNewNavigation);
170     void didReceiveTitle(WebKit::WebFrame*, const WebKit::WebString& title, WebKit::WebTextDirection);
171     void didFinishDocumentLoad(WebKit::WebFrame*);
172     void didHandleOnloadEvents(WebKit::WebFrame*);
173     void didFailLoad(WebKit::WebFrame*, const WebKit::WebURLError&);
174     void didFinishLoad(WebKit::WebFrame*);
175     void didChangeLocationWithinPage(WebKit::WebFrame*);
176     void didDisplayInsecureContent(WebKit::WebFrame*);
177     void didRunInsecureContent(WebKit::WebFrame*, const WebKit::WebSecurityOrigin&, const WebKit::WebURL& insecureURL);
178     void didDetectXSS(WebKit::WebFrame*, const WebKit::WebURL& insecureURL, bool didBlockEntirePage);
179     void assignIdentifierToRequest(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLRequest&);
180     void willRequestResource(WebKit::WebFrame*, const WebKit::WebCachedURLRequest&);
181     bool canHandleRequest(WebKit::WebFrame*, const WebKit::WebURLRequest&);
182     WebKit::WebURLError cannotHandleRequestError(WebKit::WebFrame*, const WebKit::WebURLRequest&);
183     void didCreateDataSource(WebKit::WebFrame*, WebKit::WebDataSource*);
184     void willSendRequest(WebKit::WebFrame*, unsigned identifier, WebKit::WebURLRequest&, const WebKit::WebURLResponse& redirectResponse);
185     void didReceiveResponse(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLResponse&);
186     void didFinishResourceLoad(WebKit::WebFrame*, unsigned identifier);
187     void didFailResourceLoad(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLError&);
188     void unableToImplementPolicyWithError(WebKit::WebFrame*, const WebKit::WebURLError&);
189     void didAddMessageToConsole(const WebKit::WebConsoleMessage&, const WebKit::WebString& sourceName, unsigned sourceLine);
190     void runModalAlertDialog(WebKit::WebFrame*, const WebKit::WebString&);
191     bool runModalConfirmDialog(WebKit::WebFrame*, const WebKit::WebString&);
192     bool runModalPromptDialog(WebKit::WebFrame*, const WebKit::WebString& message, const WebKit::WebString& defaultValue, WebKit::WebString* actualValue);
193     bool runModalBeforeUnloadDialog(WebKit::WebFrame*, const WebKit::WebString&);
194     WebKit::WebNavigationPolicy decidePolicyForNavigation(WebKit::WebFrame*, const WebKit::WebURLRequest&, WebKit::WebNavigationType, const WebKit::WebNode& originatingNode, WebKit::WebNavigationPolicy defaultPolicy, bool isRedirect);
195     bool willCheckAndDispatchMessageEvent(WebKit::WebFrame* sourceFrame, WebKit::WebFrame* targetFrame, WebKit::WebSecurityOrigin target, WebKit::WebDOMMessageEvent);
196
197 private:
198     void locationChangeDone(WebKit::WebFrame*);
199     void paintRect(const WebKit::WebRect&);
200     void paintInvalidatedRegion();
201     void paintPagesWithBoundaries();
202     SkCanvas* canvas();
203     void displayRepaintMask();
204
205     TestInterfaces* m_testInterfaces;
206     WebTestDelegate* m_delegate;
207
208     std::auto_ptr<SpellCheckClient> m_spellcheck;
209     std::auto_ptr<WebUserMediaClientMock> m_userMediaClient;
210
211     // Painting.
212     std::auto_ptr<SkCanvas> m_canvas;
213     WebKit::WebRect m_paintRect;
214     bool m_isPainting;
215     std::map<unsigned, std::string> m_resourceIdentifierMap;
216
217     bool m_logConsoleOutput;
218
219     std::auto_ptr<WebKit::WebGeolocationClientMock> m_geolocationClient;
220     std::auto_ptr<WebKit::WebDeviceOrientationClientMock> m_deviceOrientationClient;
221     std::auto_ptr<MockWebSpeechRecognizer> m_speechRecognizer;
222     std::auto_ptr<MockWebSpeechInputController> m_speechInputController;
223
224 private:
225     WebTestProxyBase(WebTestProxyBase&);
226     WebTestProxyBase& operator=(const WebTestProxyBase&);
227 };
228
229 // Use this template to inject methods into your WebViewClient/WebFrameClient
230 // implementation required for the running layout tests.
231 template<class Base, typename T>
232 class WebTestProxy : public Base, public WebTestProxyBase {
233 public:
234     explicit WebTestProxy(T t)
235         : Base(t)
236     {
237     }
238
239     virtual ~WebTestProxy() { }
240
241     // WebViewClient implementation.
242     virtual void didInvalidateRect(const WebKit::WebRect& rect)
243     {
244         WebTestProxyBase::didInvalidateRect(rect);
245         Base::didInvalidateRect(rect);
246     }
247     virtual void didScrollRect(int dx, int dy, const WebKit::WebRect& clipRect)
248     {
249         WebTestProxyBase::didScrollRect(dx, dy, clipRect);
250         Base::didScrollRect(dx, dy, clipRect);
251     }
252     virtual void scheduleComposite()
253     {
254         WebTestProxyBase::scheduleComposite();
255         Base::scheduleComposite();
256     }
257     virtual void scheduleAnimation()
258     {
259         WebTestProxyBase::scheduleAnimation();
260         Base::scheduleAnimation();
261     }
262     virtual void setWindowRect(const WebKit::WebRect& rect)
263     {
264         WebTestProxyBase::setWindowRect(rect);
265         Base::setWindowRect(rect);
266     }
267     virtual void show(WebKit::WebNavigationPolicy policy)
268     {
269         WebTestProxyBase::show(policy);
270         Base::show(policy);
271     }
272     virtual void didAutoResize(const WebKit::WebSize& newSize)
273     {
274         WebTestProxyBase::didAutoResize(newSize);
275         Base::didAutoResize(newSize);
276     }
277     virtual void postAccessibilityNotification(const WebKit::WebAccessibilityObject& object, WebKit::WebAccessibilityNotification notification)
278     {
279         WebTestProxyBase::postAccessibilityNotification(object, notification);
280         Base::postAccessibilityNotification(object, notification);
281     }
282     virtual void startDragging(WebKit::WebFrame* frame, const WebKit::WebDragData& data, WebKit::WebDragOperationsMask mask, const WebKit::WebImage& image, const WebKit::WebPoint& point)
283     {
284         WebTestProxyBase::startDragging(frame, data, mask, image, point);
285         Base::startDragging(frame, data, mask, image, point);
286     }
287     virtual bool shouldBeginEditing(const WebKit::WebRange& range)
288     {
289         WebTestProxyBase::shouldBeginEditing(range);
290         return Base::shouldBeginEditing(range);
291     }
292     virtual bool shouldEndEditing(const WebKit::WebRange& range)
293     {
294         WebTestProxyBase::shouldEndEditing(range);
295         return Base::shouldEndEditing(range);
296     }
297     virtual bool shouldInsertNode(const WebKit::WebNode& node, const WebKit::WebRange& range, WebKit::WebEditingAction action)
298     {
299         WebTestProxyBase::shouldInsertNode(node, range, action);
300         return Base::shouldInsertNode(node, range, action);
301     }
302     virtual bool shouldInsertText(const WebKit::WebString& text, const WebKit::WebRange& range, WebKit::WebEditingAction action)
303     {
304         WebTestProxyBase::shouldInsertText(text, range, action);
305         return Base::shouldInsertText(text, range, action);
306     }
307     virtual bool shouldChangeSelectedRange(const WebKit::WebRange& fromRange, const WebKit::WebRange& toRange, WebKit::WebTextAffinity affinity, bool stillSelecting)
308     {
309         WebTestProxyBase::shouldChangeSelectedRange(fromRange, toRange, affinity, stillSelecting);
310         return Base::shouldChangeSelectedRange(fromRange, toRange, affinity, stillSelecting);
311     }
312     virtual bool shouldDeleteRange(const WebKit::WebRange& range)
313     {
314         WebTestProxyBase::shouldDeleteRange(range);
315         return Base::shouldDeleteRange(range);
316     }
317     virtual bool shouldApplyStyle(const WebKit::WebString& style, const WebKit::WebRange& range)
318     {
319         WebTestProxyBase::shouldApplyStyle(style, range);
320         return Base::shouldApplyStyle(style, range);
321     }
322     virtual void didBeginEditing()
323     {
324         WebTestProxyBase::didBeginEditing();
325         Base::didBeginEditing();
326     }
327     virtual void didChangeSelection(bool isEmptySelection)
328     {
329         WebTestProxyBase::didChangeSelection(isEmptySelection);
330         Base::didChangeSelection(isEmptySelection);
331     }
332     virtual void didChangeContents()
333     {
334         WebTestProxyBase::didChangeContents();
335         Base::didChangeContents();
336     }
337     virtual void didEndEditing()
338     {
339         WebTestProxyBase::didEndEditing();
340         Base::didEndEditing();
341     }
342     virtual WebKit::WebView* createView(WebKit::WebFrame* creator, const WebKit::WebURLRequest& request, const WebKit::WebWindowFeatures& features, const WebKit::WebString& frameName, WebKit::WebNavigationPolicy policy)
343     {
344         if (!WebTestProxyBase::createView(creator, request, features, frameName, policy))
345             return 0;
346         return Base::createView(creator, request, features, frameName, policy);
347     }
348     WebKit::WebPlugin* createPlugin(WebKit::WebFrame* frame, const WebKit::WebPluginParams& params)
349     {
350         WebKit::WebPlugin* plugin = WebTestProxyBase::createPlugin(frame, params);
351         if (plugin)
352             return plugin;
353         return Base::createPlugin(frame, params);
354     }
355     virtual void setStatusText(const WebKit::WebString& text)
356     {
357         WebTestProxyBase::setStatusText(text);
358         Base::setStatusText(text);
359     }
360     virtual void didStopLoading()
361     {
362         WebTestProxyBase::didStopLoading();
363         Base::didStopLoading();
364     }
365     virtual bool isSmartInsertDeleteEnabled()
366     {
367         return WebTestProxyBase::isSmartInsertDeleteEnabled();
368     }
369     virtual bool isSelectTrailingWhitespaceEnabled()
370     {
371         return WebTestProxyBase::isSelectTrailingWhitespaceEnabled();
372     }
373     virtual void showContextMenu(WebKit::WebFrame* frame, const WebKit::WebContextMenuData& contextMenuData)
374     {
375         WebTestProxyBase::showContextMenu(frame, contextMenuData);
376         Base::showContextMenu(frame, contextMenuData);
377     }
378     virtual WebKit::WebUserMediaClient* userMediaClient()
379     {
380         return WebTestProxyBase::userMediaClient();
381     }
382     virtual void printPage(WebKit::WebFrame* frame)
383     {
384         WebTestProxyBase::printPage(frame);
385     }
386     virtual WebKit::WebNotificationPresenter* notificationPresenter()
387     {
388         return WebTestProxyBase::notificationPresenter();
389     }
390     virtual WebKit::WebGeolocationClient* geolocationClient()
391     {
392         return WebTestProxyBase::geolocationClient();
393     }
394     virtual WebKit::WebSpeechInputController* speechInputController(WebKit::WebSpeechInputListener* listener)
395     {
396         return WebTestProxyBase::speechInputController(listener);
397     }
398     virtual WebKit::WebSpeechRecognizer* speechRecognizer()
399     {
400         return WebTestProxyBase::speechRecognizer();
401     }
402     virtual WebKit::WebDeviceOrientationClient* deviceOrientationClient()
403     {
404         return WebTestProxyBase::deviceOrientationClient();
405     }
406     virtual bool requestPointerLock()
407     {
408         return WebTestProxyBase::requestPointerLock();
409     }
410     virtual void requestPointerUnlock()
411     {
412         WebTestProxyBase::requestPointerUnlock();
413     }
414     virtual bool isPointerLocked()
415     {
416         return WebTestProxyBase::isPointerLocked();
417     }
418
419     // WebFrameClient implementation.
420     virtual void willPerformClientRedirect(WebKit::WebFrame* frame, const WebKit::WebURL& from, const WebKit::WebURL& to, double interval, double fireTime)
421     {
422         WebTestProxyBase::willPerformClientRedirect(frame, from, to, interval, fireTime);
423         Base::willPerformClientRedirect(frame, from, to, interval, fireTime);
424     }
425     virtual void didCancelClientRedirect(WebKit::WebFrame* frame)
426     {
427         WebTestProxyBase::didCancelClientRedirect(frame);
428         Base::didCancelClientRedirect(frame);
429     }
430     virtual void didStartProvisionalLoad(WebKit::WebFrame* frame)
431     {
432         WebTestProxyBase::didStartProvisionalLoad(frame);
433         Base::didStartProvisionalLoad(frame);
434     }
435     virtual void didReceiveServerRedirectForProvisionalLoad(WebKit::WebFrame* frame)
436     {
437         WebTestProxyBase::didReceiveServerRedirectForProvisionalLoad(frame);
438         Base::didReceiveServerRedirectForProvisionalLoad(frame);
439     }
440     virtual void didFailProvisionalLoad(WebKit::WebFrame* frame, const WebKit::WebURLError& error)
441     {
442         WebTestProxyBase::didFailProvisionalLoad(frame, error);
443         Base::didFailProvisionalLoad(frame, error);
444     }
445     virtual void didCommitProvisionalLoad(WebKit::WebFrame* frame, bool isNewNavigation)
446     {
447         WebTestProxyBase::didCommitProvisionalLoad(frame, isNewNavigation);
448         Base::didCommitProvisionalLoad(frame, isNewNavigation);
449     }
450     virtual void didReceiveTitle(WebKit::WebFrame* frame, const WebKit::WebString& title, WebKit::WebTextDirection direction)
451     {
452         WebTestProxyBase::didReceiveTitle(frame, title, direction);
453         Base::didReceiveTitle(frame, title, direction);
454     }
455     virtual void didFinishDocumentLoad(WebKit::WebFrame* frame)
456     {
457         WebTestProxyBase::didFinishDocumentLoad(frame);
458         Base::didFinishDocumentLoad(frame);
459     }
460     virtual void didHandleOnloadEvents(WebKit::WebFrame* frame)
461     {
462         WebTestProxyBase::didHandleOnloadEvents(frame);
463         Base::didHandleOnloadEvents(frame);
464     }
465     virtual void didFailLoad(WebKit::WebFrame* frame, const WebKit::WebURLError& error)
466     {
467         WebTestProxyBase::didFailLoad(frame, error);
468         Base::didFailLoad(frame, error);
469     }
470     virtual void didFinishLoad(WebKit::WebFrame* frame)
471     {
472         WebTestProxyBase::didFinishLoad(frame);
473         Base::didFinishLoad(frame);
474     }
475     virtual void didChangeLocationWithinPage(WebKit::WebFrame* frame)
476     {
477         WebTestProxyBase::didChangeLocationWithinPage(frame);
478         Base::didChangeLocationWithinPage(frame);
479     }
480     virtual void didDisplayInsecureContent(WebKit::WebFrame* frame)
481     {
482         WebTestProxyBase::didDisplayInsecureContent(frame);
483         Base::didDisplayInsecureContent(frame);
484     }
485     virtual void didRunInsecureContent(WebKit::WebFrame* frame, const WebKit::WebSecurityOrigin& origin, const WebKit::WebURL& insecureURL)
486     {
487         WebTestProxyBase::didRunInsecureContent(frame, origin, insecureURL);
488         Base::didRunInsecureContent(frame, origin, insecureURL);
489     }
490     virtual void didDetectXSS(WebKit::WebFrame* frame, const WebKit::WebURL& insecureURL, bool didBlockEntirePage)
491     {
492         WebTestProxyBase::didDetectXSS(frame, insecureURL, didBlockEntirePage);
493         Base::didDetectXSS(frame, insecureURL, didBlockEntirePage);
494     }
495     virtual void assignIdentifierToRequest(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLRequest& request)
496     {
497         WebTestProxyBase::assignIdentifierToRequest(frame, identifier, request);
498         Base::assignIdentifierToRequest(frame, identifier, request);
499     }
500     virtual void willRequestResource(WebKit::WebFrame* frame, const WebKit::WebCachedURLRequest& request)
501     {
502         WebTestProxyBase::willRequestResource(frame, request);
503         Base::willRequestResource(frame, request);
504     }
505     virtual bool canHandleRequest(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request)
506     {
507         if (!WebTestProxyBase::canHandleRequest(frame, request))
508             return false;
509         return Base::canHandleRequest(frame, request);
510     }
511     virtual WebKit::WebURLError cannotHandleRequestError(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request)
512     {
513         return WebTestProxyBase::cannotHandleRequestError(frame, request);
514     }
515     virtual void didCreateDataSource(WebKit::WebFrame* frame, WebKit::WebDataSource* ds)
516     {
517         WebTestProxyBase::didCreateDataSource(frame, ds);
518         Base::didCreateDataSource(frame, ds);
519     }
520     virtual void willSendRequest(WebKit::WebFrame* frame, unsigned identifier, WebKit::WebURLRequest& request, const WebKit::WebURLResponse& redirectResponse)
521     {
522         WebTestProxyBase::willSendRequest(frame, identifier, request, redirectResponse);
523         Base::willSendRequest(frame, identifier, request, redirectResponse);
524     }
525     virtual void didReceiveResponse(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLResponse& response)
526     {
527         WebTestProxyBase::didReceiveResponse(frame, identifier, response);
528         Base::didReceiveResponse(frame, identifier, response);
529     }
530     virtual void didFinishResourceLoad(WebKit::WebFrame* frame, unsigned identifier)
531     {
532         WebTestProxyBase::didFinishResourceLoad(frame, identifier);
533         Base::didFinishResourceLoad(frame, identifier);
534     }
535     virtual void didFailResourceLoad(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLError& error)
536     {
537         WebTestProxyBase::didFailResourceLoad(frame, identifier, error);
538         Base::didFailResourceLoad(frame, identifier, error);
539     }
540     virtual void unableToImplementPolicyWithError(WebKit::WebFrame* frame, const WebKit::WebURLError& error)
541     {
542         WebTestProxyBase::unableToImplementPolicyWithError(frame, error);
543         Base::unableToImplementPolicyWithError(frame, error);
544     }
545     virtual void didAddMessageToConsole(const WebKit::WebConsoleMessage& message, const WebKit::WebString& sourceName, unsigned sourceLine)
546     {
547         WebTestProxyBase::didAddMessageToConsole(message, sourceName, sourceLine);
548         Base::didAddMessageToConsole(message, sourceName, sourceLine);
549     }
550     virtual void runModalAlertDialog(WebKit::WebFrame* frame, const WebKit::WebString& message)
551     {
552         WebTestProxyBase::runModalAlertDialog(frame, message);
553         Base::runModalAlertDialog(frame, message);
554     }
555     virtual bool runModalConfirmDialog(WebKit::WebFrame* frame, const WebKit::WebString& message)
556     {
557         WebTestProxyBase::runModalConfirmDialog(frame, message);
558         return Base::runModalConfirmDialog(frame, message);
559     }
560     virtual bool runModalPromptDialog(WebKit::WebFrame* frame, const WebKit::WebString& message, const WebKit::WebString& defaultValue, WebKit::WebString* actualValue)
561     {
562         WebTestProxyBase::runModalPromptDialog(frame, message, defaultValue, actualValue);
563         return Base::runModalPromptDialog(frame, message, defaultValue, actualValue);
564     }
565     virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, const WebKit::WebString& message)
566     {
567         return WebTestProxyBase::runModalBeforeUnloadDialog(frame, message);
568     }
569     virtual WebKit::WebNavigationPolicy decidePolicyForNavigation(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request, WebKit::WebNavigationType type, const WebKit::WebNode& originatingNode, WebKit::WebNavigationPolicy defaultPolicy, bool isRedirect)
570     {
571         WebKit::WebNavigationPolicy policy = WebTestProxyBase::decidePolicyForNavigation(frame, request, type, originatingNode, defaultPolicy, isRedirect);
572         if (policy == WebKit::WebNavigationPolicyIgnore)
573             return policy;
574         return Base::decidePolicyForNavigation(frame, request, type, originatingNode, defaultPolicy, isRedirect);
575     }
576     virtual bool willCheckAndDispatchMessageEvent(WebKit::WebFrame* sourceFrame, WebKit::WebFrame* targetFrame, WebKit::WebSecurityOrigin target, WebKit::WebDOMMessageEvent event)
577     {
578         if (WebTestProxyBase::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame, target, event))
579             return true;
580         return Base::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame, target, event);
581     }
582 };
583
584 }
585
586 #endif // WebTestProxy_h