summaryrefslogtreecommitdiffstats
path: root/content/shell/renderer/test_runner/WebTestProxy.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/shell/renderer/test_runner/WebTestProxy.h')
-rw-r--r--content/shell/renderer/test_runner/WebTestProxy.h539
1 files changed, 539 insertions, 0 deletions
diff --git a/content/shell/renderer/test_runner/WebTestProxy.h b/content/shell/renderer/test_runner/WebTestProxy.h
new file mode 100644
index 0000000..4f406fbd
--- /dev/null
+++ b/content/shell/renderer/test_runner/WebTestProxy.h
@@ -0,0 +1,539 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WebTestProxy_h
+#define WebTestProxy_h
+
+#include <map>
+#include <string>
+
+#include "content/shell/renderer/test_runner/WebScopedPtr.h"
+#include "content/shell/renderer/test_runner/WebTask.h"
+#include "third_party/WebKit/public/platform/WebNonCopyable.h"
+#include "third_party/WebKit/public/platform/WebRect.h"
+#include "third_party/WebKit/public/platform/WebURLError.h"
+#include "third_party/WebKit/public/platform/WebURLRequest.h"
+#include "third_party/WebKit/public/web/WebAXEnums.h"
+#include "third_party/WebKit/public/web/WebDOMMessageEvent.h"
+#include "third_party/WebKit/public/web/WebDataSource.h"
+#include "third_party/WebKit/public/web/WebDragOperation.h"
+#include "third_party/WebKit/public/web/WebIconURL.h"
+#include "third_party/WebKit/public/web/WebNavigationPolicy.h"
+#include "third_party/WebKit/public/web/WebNavigationType.h"
+#include "third_party/WebKit/public/web/WebSecurityOrigin.h"
+#include "third_party/WebKit/public/web/WebTextAffinity.h"
+#include "third_party/WebKit/public/web/WebTextDirection.h"
+
+namespace blink {
+class WebAXObject;
+class WebAudioDevice;
+class WebCachedURLRequest;
+class WebColorChooser;
+class WebColorChooserClient;
+class WebDataSource;
+class WebDragData;
+class WebFileChooserCompletion;
+class WebFrame;
+class WebGeolocationClient;
+class WebGeolocationClientMock;
+class WebImage;
+class WebMIDIAccessor;
+class WebMIDIAccessorClient;
+class WebMIDIClient;
+class WebMIDIClientMock;
+class WebNode;
+class WebNotificationPresenter;
+class WebPlugin;
+class WebRange;
+class WebSerializedScriptValue;
+class WebSpeechInputController;
+class WebSpeechInputListener;
+class WebSpeechRecognizer;
+class WebSpellCheckClient;
+class WebString;
+class WebURL;
+class WebURLResponse;
+class WebUserMediaClient;
+class WebView;
+class WebWidget;
+struct WebColorSuggestion;
+struct WebConsoleMessage;
+struct WebContextMenuData;
+struct WebFileChooserParams;
+struct WebPluginParams;
+struct WebPoint;
+struct WebSize;
+struct WebWindowFeatures;
+typedef unsigned WebColor;
+}
+
+class SkCanvas;
+
+namespace WebTestRunner {
+
+class MockWebSpeechInputController;
+class MockWebSpeechRecognizer;
+class SpellCheckClient;
+class TestInterfaces;
+class WebTestDelegate;
+class WebTestInterfaces;
+class WebTestRunner;
+class WebUserMediaClientMock;
+
+class WebTestProxyBase {
+public:
+ void setInterfaces(WebTestInterfaces*);
+ void setDelegate(WebTestDelegate*);
+ void setWidget(blink::WebWidget*);
+
+ void reset();
+
+ blink::WebSpellCheckClient *spellCheckClient() const;
+ blink::WebColorChooser* createColorChooser(blink::WebColorChooserClient*, const blink::WebColor&);
+ blink::WebColorChooser* createColorChooser(blink::WebColorChooserClient*, const blink::WebColor&, const blink::WebVector<blink::WebColorSuggestion>& suggestions);
+ bool runFileChooser(const blink::WebFileChooserParams&, blink::WebFileChooserCompletion*);
+ void showValidationMessage(const blink::WebRect& anchorInRootView, const blink::WebString& mainText, const blink::WebString& supplementalText, blink::WebTextDirection);
+ void hideValidationMessage();
+ void moveValidationMessage(const blink::WebRect& anchorInRootView);
+
+ std::string captureTree(bool debugRenderTree);
+ SkCanvas* capturePixels();
+
+ void setLogConsoleOutput(bool enabled);
+
+ // FIXME: Make this private again.
+ void scheduleComposite();
+
+ void didOpenChooser();
+ void didCloseChooser();
+ bool isChooserShown();
+
+ void display();
+ void displayInvalidatedRegion();
+ void discardBackingStore();
+
+ blink::WebGeolocationClientMock* geolocationClientMock();
+ blink::WebMIDIClientMock* midiClientMock();
+ MockWebSpeechInputController* speechInputControllerMock();
+ MockWebSpeechRecognizer* speechRecognizerMock();
+
+ WebTaskList* taskList() { return &m_taskList; }
+
+ blink::WebView* webView();
+
+ void didForceResize();
+
+ void postSpellCheckEvent(const blink::WebString& eventName);
+
+protected:
+ WebTestProxyBase();
+ ~WebTestProxyBase();
+
+ void didInvalidateRect(const blink::WebRect&);
+ void didScrollRect(int, int, const blink::WebRect&);
+ void scheduleAnimation();
+ // FIXME: Remove once we switch to use didForceResize.
+ void setWindowRect(const blink::WebRect&);
+ void show(blink::WebNavigationPolicy);
+ void didAutoResize(const blink::WebSize&);
+ void postAccessibilityEvent(const blink::WebAXObject&, blink::WebAXEvent);
+ void startDragging(blink::WebFrame*, const blink::WebDragData&, blink::WebDragOperationsMask, const blink::WebImage&, const blink::WebPoint&);
+ void didChangeSelection(bool isEmptySelection);
+ void didChangeContents();
+ void didEndEditing();
+ bool createView(blink::WebFrame* creator, const blink::WebURLRequest&, const blink::WebWindowFeatures&, const blink::WebString& frameName, blink::WebNavigationPolicy, bool suppressOpener);
+ blink::WebPlugin* createPlugin(blink::WebFrame*, const blink::WebPluginParams&);
+ void setStatusText(const blink::WebString&);
+ void didStopLoading();
+ void showContextMenu(blink::WebFrame*, const blink::WebContextMenuData&);
+ blink::WebUserMediaClient* userMediaClient();
+ void printPage(blink::WebFrame*);
+ blink::WebNotificationPresenter* notificationPresenter();
+ blink::WebGeolocationClient* geolocationClient();
+ blink::WebMIDIClient* webMIDIClient();
+ blink::WebSpeechInputController* speechInputController(blink::WebSpeechInputListener*);
+ blink::WebSpeechRecognizer* speechRecognizer();
+ bool requestPointerLock();
+ void requestPointerUnlock();
+ bool isPointerLocked();
+ void didFocus();
+ void didBlur();
+ void setToolTipText(const blink::WebString&, blink::WebTextDirection);
+ void didAddMessageToConsole(const blink::WebConsoleMessage&, const blink::WebString& sourceName, unsigned sourceLine);
+ void runModalAlertDialog(blink::WebFrame*, const blink::WebString&);
+ bool runModalConfirmDialog(blink::WebFrame*, const blink::WebString&);
+ bool runModalPromptDialog(blink::WebFrame*, const blink::WebString& message, const blink::WebString& defaultValue, blink::WebString* actualValue);
+ bool runModalBeforeUnloadDialog(blink::WebFrame*, const blink::WebString&);
+
+ void didStartProvisionalLoad(blink::WebFrame*);
+ void didReceiveServerRedirectForProvisionalLoad(blink::WebFrame*);
+ bool didFailProvisionalLoad(blink::WebFrame*, const blink::WebURLError&);
+ void didCommitProvisionalLoad(blink::WebFrame*, bool isNewNavigation);
+ void didReceiveTitle(blink::WebFrame*, const blink::WebString& title, blink::WebTextDirection);
+ void didChangeIcon(blink::WebFrame*, blink::WebIconURL::Type);
+ void didFinishDocumentLoad(blink::WebFrame*);
+ void didHandleOnloadEvents(blink::WebFrame*);
+ void didFailLoad(blink::WebFrame*, const blink::WebURLError&);
+ void didFinishLoad(blink::WebFrame*);
+ void didChangeLocationWithinPage(blink::WebFrame*);
+ void didDetectXSS(blink::WebFrame*, const blink::WebURL& insecureURL, bool didBlockEntirePage);
+ void didDispatchPingLoader(blink::WebFrame*, const blink::WebURL&);
+ void willRequestResource(blink::WebFrame*, const blink::WebCachedURLRequest&);
+ void willSendRequest(blink::WebFrame*, unsigned identifier, blink::WebURLRequest&, const blink::WebURLResponse& redirectResponse);
+ void didReceiveResponse(blink::WebFrame*, unsigned identifier, const blink::WebURLResponse&);
+ void didChangeResourcePriority(blink::WebFrame*, unsigned identifier, const blink::WebURLRequest::Priority&);
+ void didFinishResourceLoad(blink::WebFrame*, unsigned identifier);
+ blink::WebNavigationPolicy decidePolicyForNavigation(blink::WebFrame*, blink::WebDataSource::ExtraData*, const blink::WebURLRequest&, blink::WebNavigationType, blink::WebNavigationPolicy defaultPolicy, bool isRedirect);
+ bool willCheckAndDispatchMessageEvent(blink::WebFrame* sourceFrame, blink::WebFrame* targetFrame, blink::WebSecurityOrigin target, blink::WebDOMMessageEvent);
+ void resetInputMethod();
+
+private:
+ template<class, typename, typename> friend class WebFrameTestProxy;
+ void locationChangeDone(blink::WebFrame*);
+ void paintRect(const blink::WebRect&);
+ void paintInvalidatedRegion();
+ void paintPagesWithBoundaries();
+ SkCanvas* canvas();
+ void displayRepaintMask();
+ void invalidateAll();
+ void animateNow();
+
+ blink::WebWidget* webWidget();
+
+ TestInterfaces* m_testInterfaces;
+ WebTestDelegate* m_delegate;
+ blink::WebWidget* m_webWidget;
+
+ WebTaskList m_taskList;
+
+ WebScopedPtr<SpellCheckClient> m_spellcheck;
+ WebScopedPtr<WebUserMediaClientMock> m_userMediaClient;
+
+ // Painting.
+ WebScopedPtr<SkCanvas> m_canvas;
+ blink::WebRect m_paintRect;
+ bool m_isPainting;
+ bool m_animateScheduled;
+ std::map<unsigned, std::string> m_resourceIdentifierMap;
+ std::map<unsigned, blink::WebURLRequest> m_requestMap;
+
+ bool m_logConsoleOutput;
+ int m_chooserCount;
+
+ WebScopedPtr<blink::WebGeolocationClientMock> m_geolocationClient;
+ WebScopedPtr<blink::WebMIDIClientMock> m_midiClient;
+ WebScopedPtr<MockWebSpeechRecognizer> m_speechRecognizer;
+ WebScopedPtr<MockWebSpeechInputController> m_speechInputController;
+
+ // FIXME:: We want to move away from this pattern and mark classes
+ // as Noncopyable, but this class is marked as WEBTESTRUNNER_EXPORT
+ // while WebNonCopyable is not, so we cannot inherit from WebNonCopyable.
+ // To overcome the problem, for now not inheriting from WebNonCopyable
+ // but plan to fix it when we make the change of making WebNonCopyable
+ // a macro rather than class. We will have a single way to mark all classes
+ // as Noncopyable.
+ // Tracked under: http://code.google.com/p/chromium/issues/detail?id=229178
+private:
+ WebTestProxyBase(WebTestProxyBase&);
+ WebTestProxyBase& operator=(const WebTestProxyBase&);
+};
+
+// Use this template to inject methods into your WebViewClient/WebFrameClient
+// implementation required for the running layout tests.
+template<class Base, typename T>
+class WebTestProxy : public Base, public WebTestProxyBase, public blink::WebNonCopyable {
+public:
+ explicit WebTestProxy(T t)
+ : Base(t)
+ {
+ }
+
+ virtual ~WebTestProxy() { }
+
+ // WebViewClient implementation.
+ virtual void didInvalidateRect(const blink::WebRect& rect)
+ {
+ WebTestProxyBase::didInvalidateRect(rect);
+ }
+ virtual void didScrollRect(int dx, int dy, const blink::WebRect& clipRect)
+ {
+ WebTestProxyBase::didScrollRect(dx, dy, clipRect);
+ }
+ virtual void scheduleComposite()
+ {
+ WebTestProxyBase::scheduleComposite();
+ }
+ virtual void scheduleAnimation()
+ {
+ WebTestProxyBase::scheduleAnimation();
+ }
+ virtual void setWindowRect(const blink::WebRect& rect)
+ {
+ WebTestProxyBase::setWindowRect(rect);
+ Base::setWindowRect(rect);
+ }
+ virtual void show(blink::WebNavigationPolicy policy)
+ {
+ WebTestProxyBase::show(policy);
+ Base::show(policy);
+ }
+ virtual void didAutoResize(const blink::WebSize& newSize)
+ {
+ WebTestProxyBase::didAutoResize(newSize);
+ Base::didAutoResize(newSize);
+ }
+ virtual void postAccessibilityEvent(const blink::WebAXObject& object, blink::WebAXEvent event)
+ {
+ WebTestProxyBase::postAccessibilityEvent(object, event);
+ Base::postAccessibilityEvent(object, event);
+ }
+ virtual void startDragging(blink::WebFrame* frame, const blink::WebDragData& data, blink::WebDragOperationsMask mask, const blink::WebImage& image, const blink::WebPoint& point)
+ {
+ WebTestProxyBase::startDragging(frame, data, mask, image, point);
+ // Don't forward this call to Base because we don't want to do a real drag-and-drop.
+ }
+ virtual void didChangeSelection(bool isEmptySelection)
+ {
+ WebTestProxyBase::didChangeSelection(isEmptySelection);
+ Base::didChangeSelection(isEmptySelection);
+ }
+ virtual void didChangeContents()
+ {
+ WebTestProxyBase::didChangeContents();
+ Base::didChangeContents();
+ }
+ virtual blink::WebView* createView(blink::WebFrame* creator, const blink::WebURLRequest& request, const blink::WebWindowFeatures& features, const blink::WebString& frameName, blink::WebNavigationPolicy policy, bool suppressOpener)
+ {
+ if (!WebTestProxyBase::createView(creator, request, features, frameName, policy, suppressOpener))
+ return 0;
+ return Base::createView(creator, request, features, frameName, policy, suppressOpener);
+ }
+ virtual void setStatusText(const blink::WebString& text)
+ {
+ WebTestProxyBase::setStatusText(text);
+ Base::setStatusText(text);
+ }
+ virtual void didStopLoading()
+ {
+ WebTestProxyBase::didStopLoading();
+ Base::didStopLoading();
+ }
+ virtual void showContextMenu(blink::WebFrame* frame, const blink::WebContextMenuData& contextMenuData)
+ {
+ WebTestProxyBase::showContextMenu(frame, contextMenuData);
+ Base::showContextMenu(frame, contextMenuData);
+ }
+ virtual blink::WebUserMediaClient* userMediaClient()
+ {
+ return WebTestProxyBase::userMediaClient();
+ }
+ virtual void printPage(blink::WebFrame* frame)
+ {
+ WebTestProxyBase::printPage(frame);
+ }
+ virtual blink::WebNotificationPresenter* notificationPresenter()
+ {
+ return WebTestProxyBase::notificationPresenter();
+ }
+ virtual blink::WebGeolocationClient* geolocationClient()
+ {
+ return WebTestProxyBase::geolocationClient();
+ }
+ virtual blink::WebMIDIClient* webMIDIClient()
+ {
+ return WebTestProxyBase::webMIDIClient();
+ }
+ virtual blink::WebSpeechInputController* speechInputController(blink::WebSpeechInputListener* listener)
+ {
+ return WebTestProxyBase::speechInputController(listener);
+ }
+ virtual blink::WebSpeechRecognizer* speechRecognizer()
+ {
+ return WebTestProxyBase::speechRecognizer();
+ }
+ virtual bool requestPointerLock()
+ {
+ return WebTestProxyBase::requestPointerLock();
+ }
+ virtual void requestPointerUnlock()
+ {
+ WebTestProxyBase::requestPointerUnlock();
+ }
+ virtual bool isPointerLocked()
+ {
+ return WebTestProxyBase::isPointerLocked();
+ }
+ virtual void didFocus()
+ {
+ WebTestProxyBase::didFocus();
+ Base::didFocus();
+ }
+ virtual void didBlur()
+ {
+ WebTestProxyBase::didBlur();
+ Base::didBlur();
+ }
+ virtual void setToolTipText(const blink::WebString& text, blink::WebTextDirection hint)
+ {
+ WebTestProxyBase::setToolTipText(text, hint);
+ Base::setToolTipText(text, hint);
+ }
+ virtual void resetInputMethod()
+ {
+ WebTestProxyBase::resetInputMethod();
+ }
+
+ virtual void didStartProvisionalLoad(blink::WebFrame* frame)
+ {
+ WebTestProxyBase::didStartProvisionalLoad(frame);
+ Base::didStartProvisionalLoad(frame);
+ }
+ virtual void didReceiveServerRedirectForProvisionalLoad(blink::WebFrame* frame)
+ {
+ WebTestProxyBase::didReceiveServerRedirectForProvisionalLoad(frame);
+ Base::didReceiveServerRedirectForProvisionalLoad(frame);
+ }
+ virtual void didFailProvisionalLoad(blink::WebFrame* frame, const blink::WebURLError& error)
+ {
+ // If the test finished, don't notify the embedder of the failed load,
+ // as we already destroyed the document loader.
+ if (WebTestProxyBase::didFailProvisionalLoad(frame, error))
+ return;
+ Base::didFailProvisionalLoad(frame, error);
+ }
+ virtual void didCommitProvisionalLoad(blink::WebFrame* frame, bool isNewNavigation)
+ {
+ WebTestProxyBase::didCommitProvisionalLoad(frame, isNewNavigation);
+ Base::didCommitProvisionalLoad(frame, isNewNavigation);
+ }
+ virtual void didReceiveTitle(blink::WebFrame* frame, const blink::WebString& title, blink::WebTextDirection direction)
+ {
+ WebTestProxyBase::didReceiveTitle(frame, title, direction);
+ Base::didReceiveTitle(frame, title, direction);
+ }
+ virtual void didChangeIcon(blink::WebFrame* frame, blink::WebIconURL::Type iconType)
+ {
+ WebTestProxyBase::didChangeIcon(frame, iconType);
+ Base::didChangeIcon(frame, iconType);
+ }
+ virtual void didFinishDocumentLoad(blink::WebFrame* frame)
+ {
+ WebTestProxyBase::didFinishDocumentLoad(frame);
+ Base::didFinishDocumentLoad(frame);
+ }
+ virtual void didHandleOnloadEvents(blink::WebFrame* frame)
+ {
+ WebTestProxyBase::didHandleOnloadEvents(frame);
+ Base::didHandleOnloadEvents(frame);
+ }
+ virtual void didFailLoad(blink::WebFrame* frame, const blink::WebURLError& error)
+ {
+ WebTestProxyBase::didFailLoad(frame, error);
+ Base::didFailLoad(frame, error);
+ }
+ virtual void didFinishLoad(blink::WebFrame* frame)
+ {
+ WebTestProxyBase::didFinishLoad(frame);
+ Base::didFinishLoad(frame);
+ }
+ virtual void didDetectXSS(blink::WebFrame* frame, const blink::WebURL& insecureURL, bool didBlockEntirePage)
+ {
+ WebTestProxyBase::didDetectXSS(frame, insecureURL, didBlockEntirePage);
+ Base::didDetectXSS(frame, insecureURL, didBlockEntirePage);
+ }
+ virtual void willRequestResource(blink::WebFrame* frame, const blink::WebCachedURLRequest& request)
+ {
+ WebTestProxyBase::willRequestResource(frame, request);
+ Base::willRequestResource(frame, request);
+ }
+ virtual void willSendRequest(blink::WebFrame* frame, unsigned identifier, blink::WebURLRequest& request, const blink::WebURLResponse& redirectResponse)
+ {
+ WebTestProxyBase::willSendRequest(frame, identifier, request, redirectResponse);
+ Base::willSendRequest(frame, identifier, request, redirectResponse);
+ }
+ virtual void didReceiveResponse(blink::WebFrame* frame, unsigned identifier, const blink::WebURLResponse& response)
+ {
+ WebTestProxyBase::didReceiveResponse(frame, identifier, response);
+ Base::didReceiveResponse(frame, identifier, response);
+ }
+ virtual void didChangeResourcePriority(blink::WebFrame* frame, unsigned identifier, const blink::WebURLRequest::Priority& priority)
+ {
+ WebTestProxyBase::didChangeResourcePriority(frame, identifier, priority);
+ Base::didChangeResourcePriority(frame, identifier, priority);
+ }
+ virtual void didFinishResourceLoad(blink::WebFrame* frame, unsigned identifier)
+ {
+ WebTestProxyBase::didFinishResourceLoad(frame, identifier);
+ Base::didFinishResourceLoad(frame, identifier);
+ }
+ virtual void didAddMessageToConsole(const blink::WebConsoleMessage& message, const blink::WebString& sourceName, unsigned sourceLine, const blink::WebString& stackTrace)
+ {
+ WebTestProxyBase::didAddMessageToConsole(message, sourceName, sourceLine);
+ Base::didAddMessageToConsole(message, sourceName, sourceLine, stackTrace);
+ }
+ virtual void runModalAlertDialog(blink::WebFrame* frame, const blink::WebString& message)
+ {
+ WebTestProxyBase::runModalAlertDialog(frame, message);
+ Base::runModalAlertDialog(frame, message);
+ }
+ virtual bool runModalConfirmDialog(blink::WebFrame* frame, const blink::WebString& message)
+ {
+ WebTestProxyBase::runModalConfirmDialog(frame, message);
+ return Base::runModalConfirmDialog(frame, message);
+ }
+ virtual bool runModalPromptDialog(blink::WebFrame* frame, const blink::WebString& message, const blink::WebString& defaultValue, blink::WebString* actualValue)
+ {
+ WebTestProxyBase::runModalPromptDialog(frame, message, defaultValue, actualValue);
+ return Base::runModalPromptDialog(frame, message, defaultValue, actualValue);
+ }
+ virtual bool runModalBeforeUnloadDialog(blink::WebFrame* frame, const blink::WebString& message)
+ {
+ return WebTestProxyBase::runModalBeforeUnloadDialog(frame, message);
+ }
+ virtual blink::WebNavigationPolicy decidePolicyForNavigation(blink::WebFrame* frame, blink::WebDataSource::ExtraData* extraData, const blink::WebURLRequest& request, blink::WebNavigationType type, blink::WebNavigationPolicy defaultPolicy, bool isRedirect)
+ {
+ blink::WebNavigationPolicy policy = WebTestProxyBase::decidePolicyForNavigation(frame, extraData, request, type, defaultPolicy, isRedirect);
+ if (policy == blink::WebNavigationPolicyIgnore)
+ return policy;
+ return Base::decidePolicyForNavigation(frame, extraData, request, type, defaultPolicy, isRedirect);
+ }
+ virtual bool willCheckAndDispatchMessageEvent(blink::WebFrame* sourceFrame, blink::WebFrame* targetFrame, blink::WebSecurityOrigin target, blink::WebDOMMessageEvent event)
+ {
+ if (WebTestProxyBase::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame, target, event))
+ return true;
+ return Base::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame, target, event);
+ }
+ virtual blink::WebColorChooser* createColorChooser(blink::WebColorChooserClient* client, const blink::WebColor& color)
+ {
+ return WebTestProxyBase::createColorChooser(client, color);
+ }
+ virtual blink::WebColorChooser* createColorChooser(blink::WebColorChooserClient* client, const blink::WebColor& color, const blink::WebVector<blink::WebColorSuggestion>& suggestions)
+ {
+ return WebTestProxyBase::createColorChooser(client, color, suggestions);
+ }
+ virtual bool runFileChooser(const blink::WebFileChooserParams& params, blink::WebFileChooserCompletion* completion)
+ {
+ return WebTestProxyBase::runFileChooser(params, completion);
+ }
+ virtual void showValidationMessage(const blink::WebRect& anchorInRootView, const blink::WebString& mainText, const blink::WebString& supplementalText, blink::WebTextDirection hint)
+ {
+ WebTestProxyBase::showValidationMessage(anchorInRootView, mainText, supplementalText, hint);
+ }
+ virtual void hideValidationMessage()
+ {
+ WebTestProxyBase::hideValidationMessage();
+ }
+ virtual void moveValidationMessage(const blink::WebRect& anchorInRootView)
+ {
+ WebTestProxyBase::moveValidationMessage(anchorInRootView);
+ }
+ virtual void postSpellCheckEvent(const blink::WebString& eventName)
+ {
+ WebTestProxyBase::postSpellCheckEvent(eventName);
+ }
+};
+
+}
+
+#endif // WebTestProxy_h