| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_WEBFRAMETESTPROXY_H_ | |
| 6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_WEBFRAMETESTPROXY_H_ | |
| 7 | |
| 8 #include "base/basictypes.h" | |
| 9 #include "content/shell/renderer/test_runner/test_runner.h" | |
| 10 #include "content/shell/renderer/test_runner/TestInterfaces.h" | |
| 11 #include "content/shell/renderer/test_runner/WebTestDelegate.h" | |
| 12 #include "content/shell/renderer/test_runner/WebTestProxy.h" | |
| 13 #include "third_party/WebKit/public/platform/WebString.h" | |
| 14 | |
| 15 namespace content { | |
| 16 | |
| 17 // Templetized wrapper around RenderFrameImpl objects, which implement | |
| 18 // the WebFrameClient interface. | |
| 19 template<class Base, typename P, typename R> | |
| 20 class WebFrameTestProxy : public Base { | |
| 21 public: | |
| 22 WebFrameTestProxy(P p, R r) | |
| 23 : Base(p, r) | |
| 24 , m_baseProxy(0) { } | |
| 25 | |
| 26 virtual ~WebFrameTestProxy() { } | |
| 27 | |
| 28 void setBaseProxy(WebTestProxyBase* proxy) | |
| 29 { | |
| 30 m_baseProxy = proxy; | |
| 31 } | |
| 32 | |
| 33 blink::WebPlugin* createPlugin(blink::WebLocalFrame* frame, const blink::Web
PluginParams& params) | |
| 34 { | |
| 35 blink::WebPlugin* plugin = m_baseProxy->createPlugin(frame, params); | |
| 36 if (plugin) | |
| 37 return plugin; | |
| 38 return Base::createPlugin(frame, params); | |
| 39 } | |
| 40 | |
| 41 // WebFrameClient implementation. | |
| 42 virtual void didAddMessageToConsole(const blink::WebConsoleMessage& message,
const blink::WebString& sourceName, unsigned sourceLine, const blink::WebString
& stackTrace) | |
| 43 { | |
| 44 m_baseProxy->didAddMessageToConsole(message, sourceName, sourceLine); | |
| 45 Base::didAddMessageToConsole(message, sourceName, sourceLine, stackTrace
); | |
| 46 } | |
| 47 virtual bool canCreatePluginWithoutRenderer(const blink::WebString& mimeType
) | |
| 48 { | |
| 49 using blink::WebString; | |
| 50 | |
| 51 const CR_DEFINE_STATIC_LOCAL(WebString, suffix, ("-can-create-without-re
nderer")); | |
| 52 return mimeType.utf8().find(suffix.utf8()) != std::string::npos; | |
| 53 } | |
| 54 virtual void loadURLExternally(blink::WebLocalFrame* frame, const blink::Web
URLRequest& request, blink::WebNavigationPolicy policy, const blink::WebString&
suggested_name) | |
| 55 { | |
| 56 m_baseProxy->loadURLExternally(frame, request, policy, suggested_name); | |
| 57 Base::loadURLExternally(frame, request, policy, suggested_name); | |
| 58 } | |
| 59 virtual void didStartProvisionalLoad(blink::WebLocalFrame* frame) | |
| 60 { | |
| 61 m_baseProxy->didStartProvisionalLoad(frame); | |
| 62 Base::didStartProvisionalLoad(frame); | |
| 63 } | |
| 64 virtual void didReceiveServerRedirectForProvisionalLoad(blink::WebLocalFrame
* frame) | |
| 65 { | |
| 66 m_baseProxy->didReceiveServerRedirectForProvisionalLoad(frame); | |
| 67 Base::didReceiveServerRedirectForProvisionalLoad(frame); | |
| 68 } | |
| 69 virtual void didFailProvisionalLoad(blink::WebLocalFrame* frame, const blink
::WebURLError& error) | |
| 70 { | |
| 71 // If the test finished, don't notify the embedder of the failed load, | |
| 72 // as we already destroyed the document loader. | |
| 73 if (m_baseProxy->didFailProvisionalLoad(frame, error)) | |
| 74 return; | |
| 75 Base::didFailProvisionalLoad(frame, error); | |
| 76 } | |
| 77 virtual void didCommitProvisionalLoad(blink::WebLocalFrame* frame, const bli
nk::WebHistoryItem& item, blink::WebHistoryCommitType commit_type) | |
| 78 { | |
| 79 m_baseProxy->didCommitProvisionalLoad(frame, item, commit_type); | |
| 80 Base::didCommitProvisionalLoad(frame, item, commit_type); | |
| 81 } | |
| 82 virtual void didReceiveTitle(blink::WebLocalFrame* frame, const blink::WebSt
ring& title, blink::WebTextDirection direction) | |
| 83 { | |
| 84 m_baseProxy->didReceiveTitle(frame, title, direction); | |
| 85 Base::didReceiveTitle(frame, title, direction); | |
| 86 } | |
| 87 virtual void didChangeIcon(blink::WebLocalFrame* frame, blink::WebIconURL::T
ype iconType) | |
| 88 { | |
| 89 m_baseProxy->didChangeIcon(frame, iconType); | |
| 90 Base::didChangeIcon(frame, iconType); | |
| 91 } | |
| 92 virtual void didFinishDocumentLoad(blink::WebLocalFrame* frame) | |
| 93 { | |
| 94 m_baseProxy->didFinishDocumentLoad(frame); | |
| 95 Base::didFinishDocumentLoad(frame); | |
| 96 } | |
| 97 virtual void didHandleOnloadEvents(blink::WebLocalFrame* frame) | |
| 98 { | |
| 99 m_baseProxy->didHandleOnloadEvents(frame); | |
| 100 Base::didHandleOnloadEvents(frame); | |
| 101 } | |
| 102 virtual void didFailLoad(blink::WebLocalFrame* frame, const blink::WebURLErr
or& error) | |
| 103 { | |
| 104 m_baseProxy->didFailLoad(frame, error); | |
| 105 Base::didFailLoad(frame, error); | |
| 106 } | |
| 107 virtual void didFinishLoad(blink::WebLocalFrame* frame) | |
| 108 { | |
| 109 m_baseProxy->didFinishLoad(frame); | |
| 110 Base::didFinishLoad(frame); | |
| 111 } | |
| 112 virtual blink::WebNotificationPresenter* notificationPresenter() | |
| 113 { | |
| 114 return m_baseProxy->notificationPresenter(); | |
| 115 } | |
| 116 virtual void didChangeSelection(bool is_selection_empty) { | |
| 117 m_baseProxy->didChangeSelection(is_selection_empty); | |
| 118 Base::didChangeSelection(is_selection_empty); | |
| 119 } | |
| 120 virtual blink::WebColorChooser* createColorChooser( | |
| 121 blink::WebColorChooserClient* client, | |
| 122 const blink::WebColor& initial_color, | |
| 123 const blink::WebVector<blink::WebColorSuggestion>& suggestions) { | |
| 124 return m_baseProxy->createColorChooser(client, initial_color, suggestions)
; | |
| 125 } | |
| 126 virtual void runModalAlertDialog(const blink::WebString& message) { | |
| 127 m_baseProxy->m_delegate->printMessage(std::string("ALERT: ") + message.u
tf8().data() + "\n"); | |
| 128 } | |
| 129 virtual bool runModalConfirmDialog(const blink::WebString& message) { | |
| 130 m_baseProxy->m_delegate->printMessage(std::string("CONFIRM: ") + message
.utf8().data() + "\n"); | |
| 131 return true; | |
| 132 } | |
| 133 virtual bool runModalPromptDialog(const blink::WebString& message, const bli
nk::WebString& defaultValue, blink::WebString*) { | |
| 134 m_baseProxy->m_delegate->printMessage(std::string("PROMPT: ") + message.
utf8().data() + ", default text: " + defaultValue.utf8().data() + "\n"); | |
| 135 return true; | |
| 136 } | |
| 137 virtual bool runModalBeforeUnloadDialog(bool is_reload, const blink::WebStri
ng& message) { | |
| 138 m_baseProxy->m_delegate->printMessage(std::string("CONFIRM NAVIGATION: "
) + message.utf8().data() + "\n"); | |
| 139 return !m_baseProxy->m_testInterfaces->testRunner()->shouldStayOnPageAft
erHandlingBeforeUnload(); | |
| 140 } | |
| 141 virtual void showContextMenu(const blink::WebContextMenuData& contextMenuDat
a) { | |
| 142 m_baseProxy->showContextMenu(Base::GetWebFrame()->toWebLocalFrame(), con
textMenuData); | |
| 143 Base::showContextMenu(contextMenuData); | |
| 144 } | |
| 145 virtual void didDetectXSS(blink::WebLocalFrame* frame, const blink::WebURL&
insecureURL, bool didBlockEntirePage) | |
| 146 { | |
| 147 // This is not implemented in RenderFrameImpl, so need to explicitly cal
l | |
| 148 // into the base proxy. | |
| 149 m_baseProxy->didDetectXSS(frame, insecureURL, didBlockEntirePage); | |
| 150 Base::didDetectXSS(frame, insecureURL, didBlockEntirePage); | |
| 151 } | |
| 152 virtual void didDispatchPingLoader(blink::WebLocalFrame* frame, const blink:
:WebURL& url) | |
| 153 { | |
| 154 // This is not implemented in RenderFrameImpl, so need to explicitly cal
l | |
| 155 // into the base proxy. | |
| 156 m_baseProxy->didDispatchPingLoader(frame, url); | |
| 157 Base::didDispatchPingLoader(frame, url); | |
| 158 } | |
| 159 virtual void willRequestResource(blink::WebLocalFrame* frame, const blink::W
ebCachedURLRequest& request) | |
| 160 { | |
| 161 // This is not implemented in RenderFrameImpl, so need to explicitly cal
l | |
| 162 // into the base proxy. | |
| 163 m_baseProxy->willRequestResource(frame, request); | |
| 164 Base::willRequestResource(frame, request); | |
| 165 } | |
| 166 virtual void didCreateDataSource(blink::WebLocalFrame* frame, blink::WebData
Source* ds) | |
| 167 { | |
| 168 Base::didCreateDataSource(frame, ds); | |
| 169 } | |
| 170 virtual void willSendRequest(blink::WebLocalFrame* frame, unsigned identifie
r, blink::WebURLRequest& request, const blink::WebURLResponse& redirectResponse) | |
| 171 { | |
| 172 m_baseProxy->willSendRequest(frame, identifier, request, redirectRespons
e); | |
| 173 Base::willSendRequest(frame, identifier, request, redirectResponse); | |
| 174 } | |
| 175 virtual void didReceiveResponse(blink::WebLocalFrame* frame, unsigned identi
fier, const blink::WebURLResponse& response) | |
| 176 { | |
| 177 m_baseProxy->didReceiveResponse(frame, identifier, response); | |
| 178 Base::didReceiveResponse(frame, identifier, response); | |
| 179 } | |
| 180 virtual void didChangeResourcePriority(blink::WebLocalFrame* frame, unsigned
identifier, const blink::WebURLRequest::Priority& priority, int intra_priority_
value) | |
| 181 { | |
| 182 // This is not implemented in RenderFrameImpl, so need to explicitly cal
l | |
| 183 // into the base proxy. | |
| 184 m_baseProxy->didChangeResourcePriority(frame, identifier, priority, intr
a_priority_value); | |
| 185 Base::didChangeResourcePriority(frame, identifier, priority, intra_prior
ity_value); | |
| 186 } | |
| 187 virtual void didFinishResourceLoad(blink::WebLocalFrame* frame, unsigned ide
ntifier) | |
| 188 { | |
| 189 m_baseProxy->didFinishResourceLoad(frame, identifier); | |
| 190 Base::didFinishResourceLoad(frame, identifier); | |
| 191 } | |
| 192 virtual blink::WebNavigationPolicy decidePolicyForNavigation(blink::WebLocal
Frame* frame, blink::WebDataSource::ExtraData* extraData, const blink::WebURLReq
uest& request, blink::WebNavigationType type, blink::WebNavigationPolicy default
Policy, bool isRedirect) | |
| 193 { | |
| 194 blink::WebNavigationPolicy policy = m_baseProxy->decidePolicyForNavigati
on(frame, extraData, request, type, defaultPolicy, isRedirect); | |
| 195 if (policy == blink::WebNavigationPolicyIgnore) | |
| 196 return policy; | |
| 197 | |
| 198 return Base::decidePolicyForNavigation(frame, extraData, request, type,
defaultPolicy, isRedirect); | |
| 199 } | |
| 200 virtual void willStartUsingPeerConnectionHandler(blink::WebLocalFrame* frame
, blink::WebRTCPeerConnectionHandler* handler) | |
| 201 { | |
| 202 // RenderFrameImpl::willStartUsingPeerConnectionHandler can not be mocke
d. | |
| 203 // See http://crbug/363285. | |
| 204 } | |
| 205 virtual blink::WebUserMediaClient* userMediaClient() | |
| 206 { | |
| 207 return m_baseProxy->userMediaClient(); | |
| 208 } | |
| 209 virtual bool willCheckAndDispatchMessageEvent(blink::WebLocalFrame* sourceFr
ame, blink::WebFrame* targetFrame, blink::WebSecurityOrigin target, blink::WebDO
MMessageEvent event) | |
| 210 { | |
| 211 if (m_baseProxy->willCheckAndDispatchMessageEvent(sourceFrame, targetFra
me, target, event)) | |
| 212 return true; | |
| 213 return Base::willCheckAndDispatchMessageEvent(sourceFrame, targetFrame,
target, event); | |
| 214 } | |
| 215 virtual void didStopLoading() | |
| 216 { | |
| 217 m_baseProxy->didStopLoading(); | |
| 218 Base::didStopLoading(); | |
| 219 } | |
| 220 | |
| 221 private: | |
| 222 WebTestProxyBase* m_baseProxy; | |
| 223 | |
| 224 DISALLOW_COPY_AND_ASSIGN(WebFrameTestProxy); | |
| 225 }; | |
| 226 | |
| 227 } // namespace content | |
| 228 | |
| 229 #endif // WebTestProxy_h | |
| OLD | NEW |