[chromium] Lower priority of preloaded images
[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 "Platform/chromium/public/WebURLRequest.h"
37 #include "WebKit/chromium/public/WebAccessibilityNotification.h"
38 #include "WebKit/chromium/public/WebDOMMessageEvent.h"
39 #include "WebKit/chromium/public/WebDragOperation.h"
40 #include "WebKit/chromium/public/WebEditingAction.h"
41 #include "WebKit/chromium/public/WebNavigationPolicy.h"
42 #include "WebKit/chromium/public/WebNavigationType.h"
43 #include "WebKit/chromium/public/WebSecurityOrigin.h"
44 #include "WebKit/chromium/public/WebTextAffinity.h"
45 #include "WebKit/chromium/public/WebTextDirection.h"
46 #include "WebTestCommon.h"
47 #include <map>
48 #include <memory>
49 #include <string>
50
51 namespace WebKit {
52 class WebAccessibilityObject;
53 class WebCachedURLRequest;
54 class WebDataSource;
55 class WebDeviceOrientationClient;
56 class WebDeviceOrientationClientMock;
57 class WebDragData;
58 class WebFrame;
59 class WebGeolocationClient;
60 class WebGeolocationClientMock;
61 class WebImage;
62 class WebNode;
63 class WebNotificationPresenter;
64 class WebPlugin;
65 class WebRange;
66 class WebSerializedScriptValue;
67 class WebSpeechInputController;
68 class WebSpeechInputListener;
69 class WebSpeechRecognizer;
70 class WebSpellCheckClient;
71 class WebString;
72 class WebURL;
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 didChangeResourcePriority(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLRequest::Priority&);
187     void didFinishResourceLoad(WebKit::WebFrame*, unsigned identifier);
188     void didFailResourceLoad(WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLError&);
189     void unableToImplementPolicyWithError(WebKit::WebFrame*, const WebKit::WebURLError&);
190     void didAddMessageToConsole(const WebKit::WebConsoleMessage&, const WebKit::WebString& sourceName, unsigned sourceLine);
191     void runModalAlertDialog(WebKit::WebFrame*, const WebKit::WebString&);
192     bool runModalConfirmDialog(WebKit::WebFrame*, const WebKit::WebString&);
193     bool runModalPromptDialog(WebKit::WebFrame*, const WebKit::WebString& message, const WebKit::WebString& defaultValue, WebKit::WebString* actualValue);
194     bool runModalBeforeUnloadDialog(WebKit::WebFrame*, const WebKit::WebString&);
195     WebKit::WebNavigationPolicy decidePolicyForNavigation(WebKit::WebFrame*, const WebKit::WebURLRequest&, WebKit::WebNavigationType, const WebKit::WebNode& originatingNode, WebKit::WebNavigationPolicy defaultPolicy, bool isRedirect);
196     bool willCheckAndDispatchMessageEvent(WebKit::WebFrame* sourceFrame, WebKit::WebFrame* targetFrame, WebKit::WebSecurityOrigin target, WebKit::WebDOMMessageEvent);
197
198 private:
199     void locationChangeDone(WebKit::WebFrame*);
200     void paintRect(const WebKit::WebRect&);
201     void paintInvalidatedRegion();
202     void paintPagesWithBoundaries();
203     SkCanvas* canvas();
204     void displayRepaintMask();
205
206     TestInterfaces* m_testInterfaces;
207     WebTestDelegate* m_delegate;
208
209     std::auto_ptr<SpellCheckClient> m_spellcheck;
210     std::auto_ptr<WebUserMediaClientMock> m_userMediaClient;
211
212     // Painting.
213     std::auto_ptr<SkCanvas> m_canvas;
214     WebKit::WebRect m_paintRect;
215     bool m_isPainting;
216     std::map<unsigned, std::string> m_resourceIdentifierMap;
217     std::map<unsigned, WebKit::WebURLRequest> m_requestMap;
218
219     bool m_logConsoleOutput;
220
221     std::auto_ptr<WebKit::WebGeolocationClientMock> m_geolocationClient;
222     std::auto_ptr<WebKit::WebDeviceOrientationClientMock> m_deviceOrientationClient;
223     std::auto_ptr<MockWebSpeechRecognizer> m_speechRecognizer;
224     std::auto_ptr<MockWebSpeechInputController> m_speechInputController;
225
226 private:
227     WebTestProxyBase(WebTestProxyBase&);
228     WebTestProxyBase& operator=(const WebTestProxyBase&);
229 };
230
231 // Use this template to inject methods into your WebViewClient/WebFrameClient
232 // implementation required for the running layout tests.
233 template<class Base, typename T>
234 class WebTestProxy : public Base, public WebTestProxyBase {
235 public:
236     explicit WebTestProxy(T t)
237         : Base(t)
238     {
239     }
240
241     virtual ~WebTestProxy() { }
242
243     // WebViewClient implementation.
244     virtual void didInvalidateRect(const WebKit::WebRect& rect)
245     {
246         WebTestProxyBase::didInvalidateRect(rect);
247         Base::didInvalidateRect(rect);
248     }
249     virtual void didScrollRect(int dx, int dy, const WebKit::WebRect& clipRect)
250     {
251         WebTestProxyBase::didScrollRect(dx, dy, clipRect);
252         Base::didScrollRect(dx, dy, clipRect);
253     }
254     virtual void scheduleComposite()
255     {
256         WebTestProxyBase::scheduleComposite();
257         Base::scheduleComposite();
258     }
259     virtual void scheduleAnimation()
260     {
261         WebTestProxyBase::scheduleAnimation();
262         Base::scheduleAnimation();
263     }
264     virtual void setWindowRect(const WebKit::WebRect& rect)
265     {
266         WebTestProxyBase::setWindowRect(rect);
267         Base::setWindowRect(rect);
268     }
269     virtual void show(WebKit::WebNavigationPolicy policy)
270     {
271         WebTestProxyBase::show(policy);
272         Base::show(policy);
273     }
274     virtual void didAutoResize(const WebKit::WebSize& newSize)
275     {
276         WebTestProxyBase::didAutoResize(newSize);
277         Base::didAutoResize(newSize);
278     }
279     virtual void postAccessibilityNotification(const WebKit::WebAccessibilityObject& object, WebKit::WebAccessibilityNotification notification)
280     {
281         WebTestProxyBase::postAccessibilityNotification(object, notification);
282         Base::postAccessibilityNotification(object, notification);
283     }
284     virtual void startDragging(WebKit::WebFrame* frame, const WebKit::WebDragData& data, WebKit::WebDragOperationsMask mask, const WebKit::WebImage& image, const WebKit::WebPoint& point)
285     {
286         WebTestProxyBase::startDragging(frame, data, mask, image, point);
287         Base::startDragging(frame, data, mask, image, point);
288     }
289     virtual bool shouldBeginEditing(const WebKit::WebRange& range)
290     {
291         WebTestProxyBase::shouldBeginEditing(range);
292         return Base::shouldBeginEditing(range);
293     }
294     virtual bool shouldEndEditing(const WebKit::WebRange& range)
295     {
296         WebTestProxyBase::shouldEndEditing(range);
297         return Base::shouldEndEditing(range);
298     }
299     virtual bool shouldInsertNode(const WebKit::WebNode& node, const WebKit::WebRange& range, WebKit::WebEditingAction action)
300     {
301         WebTestProxyBase::shouldInsertNode(node, range, action);
302         return Base::shouldInsertNode(node, range, action);
303     }
304     virtual bool shouldInsertText(const WebKit::WebString& text, const WebKit::WebRange& range, WebKit::WebEditingAction action)
305     {
306         WebTestProxyBase::shouldInsertText(text, range, action);
307         return Base::shouldInsertText(text, range, action);
308     }
309     virtual bool shouldChangeSelectedRange(const WebKit::WebRange& fromRange, const WebKit::WebRange& toRange, WebKit::WebTextAffinity affinity, bool stillSelecting)
310     {
311         WebTestProxyBase::shouldChangeSelectedRange(fromRange, toRange, affinity, stillSelecting);
312         return Base::shouldChangeSelectedRange(fromRange, toRange, affinity, stillSelecting);
313     }
314     virtual bool shouldDeleteRange(const WebKit::WebRange& range)
315     {
316         WebTestProxyBase::shouldDeleteRange(range);
317         return Base::shouldDeleteRange(range);
318     }
319     virtual bool shouldApplyStyle(const WebKit::WebString& style, const WebKit::WebRange& range)
320     {
321         WebTestProxyBase::shouldApplyStyle(style, range);
322         return Base::shouldApplyStyle(style, range);
323     }
324     virtual void didBeginEditing()
325     {
326         WebTestProxyBase::didBeginEditing();
327         Base::didBeginEditing();
328     }
329     virtual void didChangeSelection(bool isEmptySelection)
330     {
331         WebTestProxyBase::didChangeSelection(isEmptySelection);
332         Base::didChangeSelection(isEmptySelection);
333     }
334     virtual void didChangeContents()
335     {
336         WebTestProxyBase::didChangeContents();
337         Base::didChangeContents();
338     }
339     virtual void didEndEditing()
340     {
341         WebTestProxyBase::didEndEditing();
342         Base::didEndEditing();
343     }
344     virtual WebKit::WebView* createView(WebKit::WebFrame* creator, const WebKit::WebURLRequest& request, const WebKit::WebWindowFeatures& features, const WebKit::WebString& frameName, WebKit::WebNavigationPolicy policy)
345     {
346         if (!WebTestProxyBase::createView(creator, request, features, frameName, policy))
347             return 0;
348         return Base::createView(creator, request, features, frameName, policy);
349     }
350     WebKit::WebPlugin* createPlugin(WebKit::WebFrame* frame, const WebKit::WebPluginParams& params)
351     {
352         WebKit::WebPlugin* plugin = WebTestProxyBase::createPlugin(frame, params);
353         if (plugin)
354             return plugin;
355         return Base::createPlugin(frame, params);
356     }
357     virtual void setStatusText(const WebKit::WebString& text)
358     {
359         WebTestProxyBase::setStatusText(text);
360         Base::setStatusText(text);
361     }
362     virtual void didStopLoading()
363     {
364         WebTestProxyBase::didStopLoading();
365         Base::didStopLoading();
366     }
367     virtual bool isSmartInsertDeleteEnabled()
368     {
369         return WebTestProxyBase::isSmartInsertDeleteEnabled();
370     }
371     virtual bool isSelectTrailingWhitespaceEnabled()
372     {
373         return WebTestProxyBase::isSelectTrailingWhitespaceEnabled();
374     }
375     virtual void showContextMenu(WebKit::WebFrame* frame, const WebKit::WebContextMenuData& contextMenuData)
376     {
377         WebTestProxyBase::showContextMenu(frame, contextMenuData);
378         Base::showContextMenu(frame, contextMenuData);
379     }
380     virtual WebKit::WebUserMediaClient* userMediaClient()
381     {
382         return WebTestProxyBase::userMediaClient();
383     }
384     virtual void printPage(WebKit::WebFrame* frame)
385     {
386         WebTestProxyBase::printPage(frame);
387     }
388     virtual WebKit::WebNotificationPresenter* notificationPresenter()
389     {
390         return WebTestProxyBase::notificationPresenter();
391     }
392     virtual WebKit::WebGeolocationClient* geolocationClient()
393     {
394         return WebTestProxyBase::geolocationClient();
395     }
396     virtual WebKit::WebSpeechInputController* speechInputController(WebKit::WebSpeechInputListener* listener)
397     {
398         return WebTestProxyBase::speechInputController(listener);
399     }
400     virtual WebKit::WebSpeechRecognizer* speechRecognizer()
401     {
402         return WebTestProxyBase::speechRecognizer();
403     }
404     virtual WebKit::WebDeviceOrientationClient* deviceOrientationClient()
405     {
406         return WebTestProxyBase::deviceOrientationClient();
407     }
408     virtual bool requestPointerLock()
409     {
410         return WebTestProxyBase::requestPointerLock();
411     }
412     virtual void requestPointerUnlock()
413     {
414         WebTestProxyBase::requestPointerUnlock();
415     }
416     virtual bool isPointerLocked()
417     {
418         return WebTestProxyBase::isPointerLocked();
419     }
420
421     // WebFrameClient implementation.
422     virtual void willPerformClientRedirect(WebKit::WebFrame* frame, const WebKit::WebURL& from, const WebKit::WebURL& to, double interval, double fireTime)
423     {
424         WebTestProxyBase::willPerformClientRedirect(frame, from, to, interval, fireTime);
425         Base::willPerformClientRedirect(frame, from, to, interval, fireTime);
426     }
427     virtual void didCancelClientRedirect(WebKit::WebFrame* frame)
428     {
429         WebTestProxyBase::didCancelClientRedirect(frame);
430         Base::didCancelClientRedirect(frame);
431     }
432     virtual void didStartProvisionalLoad(WebKit::WebFrame* frame)
433     {
434         WebTestProxyBase::didStartProvisionalLoad(frame);
435         Base::didStartProvisionalLoad(frame);
436     }
437     virtual void didReceiveServerRedirectForProvisionalLoad(WebKit::WebFrame* frame)
438     {
439         WebTestProxyBase::didReceiveServerRedirectForProvisionalLoad(frame);
440         Base::didReceiveServerRedirectForProvisionalLoad(frame);
441     }
442     virtual void didFailProvisionalLoad(WebKit::WebFrame* frame, const WebKit::WebURLError& error)
443     {
444         WebTestProxyBase::didFailProvisionalLoad(frame, error);
445         Base::didFailProvisionalLoad(frame, error);
446     }
447     virtual void didCommitProvisionalLoad(WebKit::WebFrame* frame, bool isNewNavigation)
448     {
449         WebTestProxyBase::didCommitProvisionalLoad(frame, isNewNavigation);
450         Base::didCommitProvisionalLoad(frame, isNewNavigation);
451     }
452     virtual void didReceiveTitle(WebKit::WebFrame* frame, const WebKit::WebString& title, WebKit::WebTextDirection direction)
453     {
454         WebTestProxyBase::didReceiveTitle(frame, title, direction);
455         Base::didReceiveTitle(frame, title, direction);
456     }
457     virtual void didFinishDocumentLoad(WebKit::WebFrame* frame)
458     {
459         WebTestProxyBase::didFinishDocumentLoad(frame);
460         Base::didFinishDocumentLoad(frame);
461     }
462     virtual void didHandleOnloadEvents(WebKit::WebFrame* frame)
463     {
464         WebTestProxyBase::didHandleOnloadEvents(frame);
465         Base::didHandleOnloadEvents(frame);
466     }
467     virtual void didFailLoad(WebKit::WebFrame* frame, const WebKit::WebURLError& error)
468     {
469         WebTestProxyBase::didFailLoad(frame, error);
470         Base::didFailLoad(frame, error);
471     }
472     virtual void didFinishLoad(WebKit::WebFrame* frame)
473     {
474         WebTestProxyBase::didFinishLoad(frame);
475         Base::didFinishLoad(frame);
476     }
477     virtual void didChangeLocationWithinPage(WebKit::WebFrame* frame)
478     {
479         WebTestProxyBase::didChangeLocationWithinPage(frame);
480         Base::didChangeLocationWithinPage(frame);
481     }
482     virtual void didDisplayInsecureContent(WebKit::WebFrame* frame)
483     {
484         WebTestProxyBase::didDisplayInsecureContent(frame);
485         Base::didDisplayInsecureContent(frame);
486     }
487     virtual void didRunInsecureContent(WebKit::WebFrame* frame, const WebKit::WebSecurityOrigin& origin, const WebKit::WebURL& insecureURL)
488     {
489         WebTestProxyBase::didRunInsecureContent(frame, origin, insecureURL);
490         Base::didRunInsecureContent(frame, origin, insecureURL);
491     }
492     virtual void didDetectXSS(WebKit::WebFrame* frame, const WebKit::WebURL& insecureURL, bool didBlockEntirePage)
493     {
494         WebTestProxyBase::didDetectXSS(frame, insecureURL, didBlockEntirePage);
495         Base::didDetectXSS(frame, insecureURL, didBlockEntirePage);
496     }
497     virtual void assignIdentifierToRequest(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLRequest& request)
498     {
499         WebTestProxyBase::assignIdentifierToRequest(frame, identifier, request);
500         Base::assignIdentifierToRequest(frame, identifier, request);
501     }
502     virtual void willRequestResource(WebKit::WebFrame* frame, const WebKit::WebCachedURLRequest& request)
503     {
504         WebTestProxyBase::willRequestResource(frame, request);
505         Base::willRequestResource(frame, request);
506     }
507     virtual bool canHandleRequest(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request)
508     {
509         if (!WebTestProxyBase::canHandleRequest(frame, request))
510             return false;
511         return Base::canHandleRequest(frame, request);
512     }
513     virtual WebKit::WebURLError cannotHandleRequestError(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request)
514     {
515         return WebTestProxyBase::cannotHandleRequestError(frame, request);
516     }
517     virtual void didCreateDataSource(WebKit::WebFrame* frame, WebKit::WebDataSource* ds)
518     {
519         WebTestProxyBase::didCreateDataSource(frame, ds);
520         Base::didCreateDataSource(frame, ds);
521     }
522     virtual void willSendRequest(WebKit::WebFrame* frame, unsigned identifier, WebKit::WebURLRequest& request, const WebKit::WebURLResponse& redirectResponse)
523     {
524         WebTestProxyBase::willSendRequest(frame, identifier, request, redirectResponse);
525         Base::willSendRequest(frame, identifier, request, redirectResponse);
526     }
527     virtual void didReceiveResponse(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLResponse& response)
528     {
529         WebTestProxyBase::didReceiveResponse(frame, identifier, response);
530         Base::didReceiveResponse(frame, identifier, response);
531     }
532     virtual void didChangeResourcePriority(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLRequest::Priority& priority)
533     {
534         WebTestProxyBase::didChangeResourcePriority(frame, identifier, priority);
535         Base::didChangeResourcePriority(frame, identifier, priority);
536     }
537     virtual void didFinishResourceLoad(WebKit::WebFrame* frame, unsigned identifier)
538     {
539         WebTestProxyBase::didFinishResourceLoad(frame, identifier);
540         Base::didFinishResourceLoad(frame, identifier);
541     }
542     virtual void didFailResourceLoad(WebKit::WebFrame* frame, unsigned identifier, const WebKit::WebURLError& error)
543     {
544         WebTestProxyBase::didFailResourceLoad(frame, identifier, error);
545         Base::didFailResourceLoad(frame, identifier, error);
546     }
547     virtual void unableToImplementPolicyWithError(WebKit::WebFrame* frame, const WebKit::WebURLError& error)
548     {
549         WebTestProxyBase::unableToImplementPolicyWithError(frame, error);
550         Base::unableToImplementPolicyWithError(frame, error);
551     }
552     virtual void didAddMessageToConsole(const WebKit::WebConsoleMessage& message, const WebKit::WebString& sourceName, unsigned sourceLine)
553     {
554         WebTestProxyBase::didAddMessageToConsole(message, sourceName, sourceLine);
555         Base::didAddMessageToConsole(message, sourceName, sourceLine);
556     }
557     virtual void runModalAlertDialog(WebKit::WebFrame* frame, const WebKit::WebString& message)
558     {
559         WebTestProxyBase::runModalAlertDialog(frame, message);
560         Base::runModalAlertDialog(frame, message);
561     }
562     virtual bool runModalConfirmDialog(WebKit::WebFrame* frame, const WebKit::WebString& message)
563     {
564         WebTestProxyBase::runModalConfirmDialog(frame, message);
565         return Base::runModalConfirmDialog(frame, message);
566     }
567     virtual bool runModalPromptDialog(WebKit::WebFrame* frame, const WebKit::WebString& message, const WebKit::WebString& defaultValue, WebKit::WebString* actualValue)
568     {
569         WebTestProxyBase::runModalPromptDialog(frame, message, defaultValue, actualValue);
570         return Base::runModalPromptDialog(frame, message, defaultValue, actualValue);
571     }
572     virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, const WebKit::WebString& message)
573     {
574         return WebTestProxyBase::runModalBeforeUnloadDialog(frame, message);
575     }
576     virtual WebKit::WebNavigationPolicy decidePolicyForNavigation(WebKit::WebFrame* frame, const WebKit::WebURLRequest& request, WebKit::WebNavigationType type, const WebKit::WebNode& originatingNode, WebKit::WebNavigationPolicy defaultPolicy, bool isRedirect)
577     {
578         WebKit::WebNavigationPolicy policy = WebTestProxyBase::decidePolicyForNavigation(frame, request, type, originatingNode, defaultPolicy, isRedirect);
579         if (policy == WebKit::WebNavigationPolicyIgnore)
580             return policy;
581         return Base::decidePolicyForNavigation(frame, request, type, originatingNode, defaultPolicy, isRedirect);
582     }
583     virtual bool willCheckAndDispatchMessageEvent(WebKit::WebFrame* sourceFrame, WebKit::WebFrame* targetFrame, WebKit::WebSecurityOrigin target, WebKit::WebDOMMessageEvent event)
584     {
585         if (WebTestProxyBase::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame, target, event))
586             return true;
587         return Base::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame, target, event);
588     }
589 };
590
591 }
592
593 #endif // WebTestProxy_h