Convert raw pointers to scoped_ptr in net module.
[chromium-blink-merge.git] / content / shell / renderer / test_runner / web_frame_test_proxy.h
blob058a27313426a69b8561f7766d22c7d0fac281ff
1 // Copyright 2014 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.
5 #ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_FRAME_TEST_PROXY_H_
6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_FRAME_TEST_PROXY_H_
8 #include "base/basictypes.h"
9 #include "content/shell/renderer/test_runner/mock_screen_orientation_client.h"
10 #include "content/shell/renderer/test_runner/test_interfaces.h"
11 #include "content/shell/renderer/test_runner/test_runner.h"
12 #include "content/shell/renderer/test_runner/web_test_delegate.h"
13 #include "content/shell/renderer/test_runner/web_test_proxy.h"
14 #include "content/test/test_media_stream_renderer_factory.h"
15 #include "third_party/WebKit/public/platform/WebString.h"
17 namespace content {
19 // Templetized wrapper around RenderFrameImpl objects, which implement
20 // the WebFrameClient interface.
21 template <class Base, typename P, typename R>
22 class WebFrameTestProxy : public Base {
23 public:
24 WebFrameTestProxy(P p, R r) : Base(p, r), base_proxy_(NULL) {}
26 virtual ~WebFrameTestProxy() {}
28 void set_base_proxy(WebTestProxyBase* proxy) { base_proxy_ = proxy; }
30 // WebFrameClient implementation.
31 virtual blink::WebPlugin* createPlugin(blink::WebLocalFrame* frame,
32 const blink::WebPluginParams& params) {
33 blink::WebPlugin* plugin = base_proxy_->CreatePlugin(frame, params);
34 if (plugin)
35 return plugin;
36 return Base::createPlugin(frame, params);
39 virtual blink::WebScreenOrientationClient* webScreenOrientationClient() {
40 return base_proxy_->GetScreenOrientationClientMock();
43 virtual void didAddMessageToConsole(const blink::WebConsoleMessage& message,
44 const blink::WebString& source_name,
45 unsigned source_line,
46 const blink::WebString& stack_trace) {
47 base_proxy_->DidAddMessageToConsole(message, source_name, source_line);
48 Base::didAddMessageToConsole(
49 message, source_name, source_line, stack_trace);
52 virtual bool canCreatePluginWithoutRenderer(
53 const blink::WebString& mime_type) {
54 using blink::WebString;
56 const CR_DEFINE_STATIC_LOCAL(
57 WebString, suffix, ("-can-create-without-renderer"));
58 return mime_type.utf8().find(suffix.utf8()) != std::string::npos;
61 virtual void loadURLExternally(blink::WebLocalFrame* frame,
62 const blink::WebURLRequest& request,
63 blink::WebNavigationPolicy policy,
64 const blink::WebString& suggested_name) {
65 base_proxy_->LoadURLExternally(frame, request, policy, suggested_name);
66 Base::loadURLExternally(frame, request, policy, suggested_name);
69 virtual void didStartProvisionalLoad(blink::WebLocalFrame* frame,
70 double triggeringEventTime) {
71 base_proxy_->DidStartProvisionalLoad(frame);
72 Base::didStartProvisionalLoad(
73 frame, triggeringEventTime);
76 virtual void didReceiveServerRedirectForProvisionalLoad(
77 blink::WebLocalFrame* frame) {
78 base_proxy_->DidReceiveServerRedirectForProvisionalLoad(frame);
79 Base::didReceiveServerRedirectForProvisionalLoad(frame);
82 virtual void didFailProvisionalLoad(
83 blink::WebLocalFrame* frame,
84 const blink::WebURLError& error,
85 blink::WebHistoryCommitType commit_type) {
86 // If the test finished, don't notify the embedder of the failed load,
87 // as we already destroyed the document loader.
88 if (base_proxy_->DidFailProvisionalLoad(frame, error, commit_type))
89 return;
90 Base::didFailProvisionalLoad(frame, error, commit_type);
93 virtual void didCommitProvisionalLoad(
94 blink::WebLocalFrame* frame,
95 const blink::WebHistoryItem& item,
96 blink::WebHistoryCommitType commit_type) {
97 base_proxy_->DidCommitProvisionalLoad(frame, item, commit_type);
98 Base::didCommitProvisionalLoad(frame, item, commit_type);
101 virtual void didReceiveTitle(blink::WebLocalFrame* frame,
102 const blink::WebString& title,
103 blink::WebTextDirection direction) {
104 base_proxy_->DidReceiveTitle(frame, title, direction);
105 Base::didReceiveTitle(frame, title, direction);
108 virtual void didChangeIcon(blink::WebLocalFrame* frame,
109 blink::WebIconURL::Type icon_type) {
110 base_proxy_->DidChangeIcon(frame, icon_type);
111 Base::didChangeIcon(frame, icon_type);
114 virtual void didFinishDocumentLoad(blink::WebLocalFrame* frame) {
115 base_proxy_->DidFinishDocumentLoad(frame);
116 Base::didFinishDocumentLoad(frame);
119 virtual void didHandleOnloadEvents(blink::WebLocalFrame* frame) {
120 base_proxy_->DidHandleOnloadEvents(frame);
121 Base::didHandleOnloadEvents(frame);
124 virtual void didFailLoad(blink::WebLocalFrame* frame,
125 const blink::WebURLError& error,
126 blink::WebHistoryCommitType commit_type) {
127 base_proxy_->DidFailLoad(frame, error, commit_type);
128 Base::didFailLoad(frame, error, commit_type);
131 virtual void didFinishLoad(blink::WebLocalFrame* frame) {
132 Base::didFinishLoad(frame);
133 base_proxy_->DidFinishLoad(frame);
136 virtual void didChangeSelection(bool is_selection_empty) {
137 base_proxy_->DidChangeSelection(is_selection_empty);
138 Base::didChangeSelection(is_selection_empty);
141 virtual blink::WebColorChooser* createColorChooser(
142 blink::WebColorChooserClient* client,
143 const blink::WebColor& initial_color,
144 const blink::WebVector<blink::WebColorSuggestion>& suggestions) {
145 return base_proxy_->CreateColorChooser(client, initial_color, suggestions);
148 virtual void runModalAlertDialog(const blink::WebString& message) {
149 base_proxy_->delegate_->PrintMessage(std::string("ALERT: ") +
150 message.utf8().data() + "\n");
153 virtual bool runModalConfirmDialog(const blink::WebString& message) {
154 base_proxy_->delegate_->PrintMessage(std::string("CONFIRM: ") +
155 message.utf8().data() + "\n");
156 return true;
159 virtual bool runModalPromptDialog(const blink::WebString& message,
160 const blink::WebString& default_value,
161 blink::WebString*) {
162 base_proxy_->delegate_->PrintMessage(
163 std::string("PROMPT: ") + message.utf8().data() + ", default text: " +
164 default_value.utf8().data() + "\n");
165 return true;
168 virtual bool runModalBeforeUnloadDialog(bool is_reload,
169 const blink::WebString& message) {
170 base_proxy_->delegate_->PrintMessage(std::string("CONFIRM NAVIGATION: ") +
171 message.utf8().data() + "\n");
172 return !base_proxy_->test_interfaces_->GetTestRunner()
173 ->shouldStayOnPageAfterHandlingBeforeUnload();
176 virtual void showContextMenu(
177 const blink::WebContextMenuData& context_menu_data) {
178 base_proxy_->ShowContextMenu(Base::GetWebFrame(),
179 context_menu_data);
180 Base::showContextMenu(context_menu_data);
183 virtual void didDetectXSS(blink::WebLocalFrame* frame,
184 const blink::WebURL& insecure_url,
185 bool did_block_entire_page) {
186 // This is not implemented in RenderFrameImpl, so need to explicitly call
187 // into the base proxy.
188 base_proxy_->DidDetectXSS(frame, insecure_url, did_block_entire_page);
189 Base::didDetectXSS(frame, insecure_url, did_block_entire_page);
192 virtual void didDispatchPingLoader(blink::WebLocalFrame* frame,
193 const blink::WebURL& url) {
194 // This is not implemented in RenderFrameImpl, so need to explicitly call
195 // into the base proxy.
196 base_proxy_->DidDispatchPingLoader(frame, url);
197 Base::didDispatchPingLoader(frame, url);
200 virtual void willRequestResource(blink::WebLocalFrame* frame,
201 const blink::WebCachedURLRequest& request) {
202 // This is not implemented in RenderFrameImpl, so need to explicitly call
203 // into the base proxy.
204 base_proxy_->WillRequestResource(frame, request);
205 Base::willRequestResource(frame, request);
208 virtual void didCreateDataSource(blink::WebLocalFrame* frame,
209 blink::WebDataSource* ds) {
210 Base::didCreateDataSource(frame, ds);
213 virtual void willSendRequest(blink::WebLocalFrame* frame,
214 unsigned identifier,
215 blink::WebURLRequest& request,
216 const blink::WebURLResponse& redirect_response) {
217 Base::willSendRequest(frame, identifier, request, redirect_response);
218 base_proxy_->WillSendRequest(frame, identifier, request, redirect_response);
221 virtual void didReceiveResponse(blink::WebLocalFrame* frame,
222 unsigned identifier,
223 const blink::WebURLResponse& response) {
224 base_proxy_->DidReceiveResponse(frame, identifier, response);
225 Base::didReceiveResponse(frame, identifier, response);
228 virtual void didChangeResourcePriority(
229 blink::WebLocalFrame* frame,
230 unsigned identifier,
231 const blink::WebURLRequest::Priority& priority,
232 int intra_priority_value) {
233 // This is not implemented in RenderFrameImpl, so need to explicitly call
234 // into the base proxy.
235 base_proxy_->DidChangeResourcePriority(
236 frame, identifier, priority, intra_priority_value);
237 Base::didChangeResourcePriority(
238 frame, identifier, priority, intra_priority_value);
241 virtual void didFinishResourceLoad(blink::WebLocalFrame* frame,
242 unsigned identifier) {
243 base_proxy_->DidFinishResourceLoad(frame, identifier);
244 Base::didFinishResourceLoad(frame, identifier);
247 virtual blink::WebNavigationPolicy decidePolicyForNavigation(
248 const blink::WebFrameClient::NavigationPolicyInfo& info) {
249 blink::WebNavigationPolicy policy = base_proxy_->DecidePolicyForNavigation(
250 info);
251 if (policy == blink::WebNavigationPolicyIgnore)
252 return policy;
254 return Base::decidePolicyForNavigation(info);
257 virtual void willStartUsingPeerConnectionHandler(
258 blink::WebLocalFrame* frame,
259 blink::WebRTCPeerConnectionHandler* handler) {
260 // RenderFrameImpl::willStartUsingPeerConnectionHandler can not be mocked.
261 // See http://crbug/363285.
264 virtual blink::WebUserMediaClient* userMediaClient() {
265 return base_proxy_->GetUserMediaClient();
268 virtual bool willCheckAndDispatchMessageEvent(
269 blink::WebLocalFrame* source_frame,
270 blink::WebFrame* target_frame,
271 blink::WebSecurityOrigin target,
272 blink::WebDOMMessageEvent event) {
273 if (base_proxy_->WillCheckAndDispatchMessageEvent(
274 source_frame, target_frame, target, event))
275 return true;
276 return Base::willCheckAndDispatchMessageEvent(
277 source_frame, target_frame, target, event);
280 virtual void didStopLoading() {
281 base_proxy_->DidStopLoading();
282 Base::didStopLoading();
285 private:
286 #if defined(ENABLE_WEBRTC)
287 scoped_ptr<MediaStreamRendererFactory> CreateRendererFactory() override {
288 return scoped_ptr<MediaStreamRendererFactory>(
289 new TestMediaStreamRendererFactory());
291 #endif
293 WebTestProxyBase* base_proxy_;
295 DISALLOW_COPY_AND_ASSIGN(WebFrameTestProxy);
298 } // namespace content
300 #endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_FRAME_TEST_PROXY_H_