OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/browser_plugin/test_browser_plugin_guest.h" | 5 #include "content/browser/browser_plugin/test_browser_plugin_guest.h" |
6 | 6 |
7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
8 #include "content/browser/renderer_host/render_view_host_impl.h" | 8 #include "content/browser/renderer_host/render_view_host_impl.h" |
9 #include "content/browser/web_contents/web_contents_impl.h" | 9 #include "content/browser/web_contents/web_contents_impl.h" |
10 #include "content/common/browser_plugin/browser_plugin_messages.h" | 10 #include "content/common/browser_plugin/browser_plugin_messages.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 } | 46 } |
47 | 47 |
48 void TestBrowserPluginGuest::Observe(int type, | 48 void TestBrowserPluginGuest::Observe(int type, |
49 const NotificationSource& source, | 49 const NotificationSource& source, |
50 const NotificationDetails& details) { | 50 const NotificationDetails& details) { |
51 switch (type) { | 51 switch (type) { |
52 case NOTIFICATION_WEB_CONTENTS_VISIBILITY_CHANGED: { | 52 case NOTIFICATION_WEB_CONTENTS_VISIBILITY_CHANGED: { |
53 bool visible = *Details<bool>(details).ptr(); | 53 bool visible = *Details<bool>(details).ptr(); |
54 if (!visible) { | 54 if (!visible) { |
55 was_hidden_observed_ = true; | 55 was_hidden_observed_ = true; |
56 if (was_hidden_message_loop_runner_) | 56 if (was_hidden_message_loop_runner_.get()) |
57 was_hidden_message_loop_runner_->Quit(); | 57 was_hidden_message_loop_runner_->Quit(); |
58 } | 58 } |
59 return; | 59 return; |
60 } | 60 } |
61 } | 61 } |
62 | 62 |
63 BrowserPluginGuest::Observe(type, source, details); | 63 BrowserPluginGuest::Observe(type, source, details); |
64 } | 64 } |
65 | 65 |
66 void TestBrowserPluginGuest::SendMessageToEmbedder(IPC::Message* msg) { | 66 void TestBrowserPluginGuest::SendMessageToEmbedder(IPC::Message* msg) { |
67 if (msg->type() == BrowserPluginMsg_UpdateRect::ID) { | 67 if (msg->type() == BrowserPluginMsg_UpdateRect::ID) { |
68 update_rect_count_++; | 68 update_rect_count_++; |
69 int instance_id = 0; | 69 int instance_id = 0; |
70 BrowserPluginMsg_UpdateRect_Params params; | 70 BrowserPluginMsg_UpdateRect_Params params; |
71 BrowserPluginMsg_UpdateRect::Read(msg, &instance_id, ¶ms); | 71 BrowserPluginMsg_UpdateRect::Read(msg, &instance_id, ¶ms); |
72 last_view_size_observed_ = params.view_size; | 72 last_view_size_observed_ = params.view_size; |
73 if (!expected_auto_view_size_.IsEmpty() && | 73 if (!expected_auto_view_size_.IsEmpty() && |
74 expected_auto_view_size_ == params.view_size) { | 74 expected_auto_view_size_ == params.view_size) { |
75 if (auto_view_size_message_loop_runner_) | 75 if (auto_view_size_message_loop_runner_.get()) |
76 auto_view_size_message_loop_runner_->Quit(); | 76 auto_view_size_message_loop_runner_->Quit(); |
77 } | 77 } |
78 if (send_message_loop_runner_) | 78 if (send_message_loop_runner_.get()) |
79 send_message_loop_runner_->Quit(); | 79 send_message_loop_runner_->Quit(); |
80 } | 80 } |
81 BrowserPluginGuest::SendMessageToEmbedder(msg); | 81 BrowserPluginGuest::SendMessageToEmbedder(msg); |
82 } | 82 } |
83 | 83 |
84 void TestBrowserPluginGuest::WaitForUpdateRectMsg() { | 84 void TestBrowserPluginGuest::WaitForUpdateRectMsg() { |
85 // Check if we already got any UpdateRect message. | 85 // Check if we already got any UpdateRect message. |
86 if (update_rect_count_ > 0) | 86 if (update_rect_count_ > 0) |
87 return; | 87 return; |
88 send_message_loop_runner_ = new MessageLoopRunner(); | 88 send_message_loop_runner_ = new MessageLoopRunner(); |
(...skipping 13 matching lines...) Expand all Loading... |
102 waiting_for_damage_buffer_with_size_ = true; | 102 waiting_for_damage_buffer_with_size_ = true; |
103 damage_buffer_message_loop_runner_ = new MessageLoopRunner(); | 103 damage_buffer_message_loop_runner_ = new MessageLoopRunner(); |
104 damage_buffer_message_loop_runner_->Run(); | 104 damage_buffer_message_loop_runner_->Run(); |
105 } | 105 } |
106 | 106 |
107 void TestBrowserPluginGuest::RenderViewGone(base::TerminationStatus status) { | 107 void TestBrowserPluginGuest::RenderViewGone(base::TerminationStatus status) { |
108 exit_observed_ = true; | 108 exit_observed_ = true; |
109 if (status != base::TERMINATION_STATUS_NORMAL_TERMINATION && | 109 if (status != base::TERMINATION_STATUS_NORMAL_TERMINATION && |
110 status != base::TERMINATION_STATUS_STILL_RUNNING) | 110 status != base::TERMINATION_STATUS_STILL_RUNNING) |
111 LOG(INFO) << "Guest crashed status: " << status; | 111 LOG(INFO) << "Guest crashed status: " << status; |
112 if (crash_message_loop_runner_) | 112 if (crash_message_loop_runner_.get()) |
113 crash_message_loop_runner_->Quit(); | 113 crash_message_loop_runner_->Quit(); |
114 BrowserPluginGuest::RenderViewGone(status); | 114 BrowserPluginGuest::RenderViewGone(status); |
115 } | 115 } |
116 | 116 |
117 void TestBrowserPluginGuest::OnHandleInputEvent( | 117 void TestBrowserPluginGuest::OnHandleInputEvent( |
118 int instance_id, | 118 int instance_id, |
119 const gfx::Rect& guest_window_rect, | 119 const gfx::Rect& guest_window_rect, |
120 const WebKit::WebInputEvent* event) { | 120 const WebKit::WebInputEvent* event) { |
121 BrowserPluginGuest::OnHandleInputEvent(instance_id, | 121 BrowserPluginGuest::OnHandleInputEvent(instance_id, |
122 guest_window_rect, | 122 guest_window_rect, |
123 event); | 123 event); |
124 input_observed_ = true; | 124 input_observed_ = true; |
125 if (input_message_loop_runner_) | 125 if (input_message_loop_runner_.get()) |
126 input_message_loop_runner_->Quit(); | 126 input_message_loop_runner_->Quit(); |
127 } | 127 } |
128 | 128 |
129 void TestBrowserPluginGuest::WaitForExit() { | 129 void TestBrowserPluginGuest::WaitForExit() { |
130 // Check if we already observed a guest crash, return immediately if so. | 130 // Check if we already observed a guest crash, return immediately if so. |
131 if (exit_observed_) | 131 if (exit_observed_) |
132 return; | 132 return; |
133 | 133 |
134 crash_message_loop_runner_ = new MessageLoopRunner(); | 134 crash_message_loop_runner_ = new MessageLoopRunner(); |
135 crash_message_loop_runner_->Run(); | 135 crash_message_loop_runner_->Run(); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 | 224 |
225 expected_auto_view_size_ = view_size; | 225 expected_auto_view_size_ = view_size; |
226 auto_view_size_message_loop_runner_ = new MessageLoopRunner(); | 226 auto_view_size_message_loop_runner_ = new MessageLoopRunner(); |
227 auto_view_size_message_loop_runner_->Run(); | 227 auto_view_size_message_loop_runner_->Run(); |
228 last_view_size_observed_ = gfx::Size(); | 228 last_view_size_observed_ = gfx::Size(); |
229 } | 229 } |
230 | 230 |
231 void TestBrowserPluginGuest::OnSetFocus(int instance_id, bool focused) { | 231 void TestBrowserPluginGuest::OnSetFocus(int instance_id, bool focused) { |
232 if (focused) { | 232 if (focused) { |
233 focus_observed_ = true; | 233 focus_observed_ = true; |
234 if (focus_message_loop_runner_) | 234 if (focus_message_loop_runner_.get()) |
235 focus_message_loop_runner_->Quit(); | 235 focus_message_loop_runner_->Quit(); |
236 } else { | 236 } else { |
237 blur_observed_ = true; | 237 blur_observed_ = true; |
238 if (blur_message_loop_runner_) | 238 if (blur_message_loop_runner_.get()) |
239 blur_message_loop_runner_->Quit(); | 239 blur_message_loop_runner_->Quit(); |
240 } | 240 } |
241 BrowserPluginGuest::OnSetFocus(instance_id, focused); | 241 BrowserPluginGuest::OnSetFocus(instance_id, focused); |
242 } | 242 } |
243 | 243 |
244 void TestBrowserPluginGuest::OnTakeFocus(bool reverse) { | 244 void TestBrowserPluginGuest::OnTakeFocus(bool reverse) { |
245 advance_focus_observed_ = true; | 245 advance_focus_observed_ = true; |
246 if (advance_focus_message_loop_runner_) | 246 if (advance_focus_message_loop_runner_.get()) |
247 advance_focus_message_loop_runner_->Quit(); | 247 advance_focus_message_loop_runner_->Quit(); |
248 BrowserPluginGuest::OnTakeFocus(reverse); | 248 BrowserPluginGuest::OnTakeFocus(reverse); |
249 } | 249 } |
250 | 250 |
251 void TestBrowserPluginGuest::OnReload(int instance_id) { | 251 void TestBrowserPluginGuest::OnReload(int instance_id) { |
252 reload_observed_ = true; | 252 reload_observed_ = true; |
253 if (reload_message_loop_runner_) | 253 if (reload_message_loop_runner_.get()) |
254 reload_message_loop_runner_->Quit(); | 254 reload_message_loop_runner_->Quit(); |
255 BrowserPluginGuest::OnReload(instance_id); | 255 BrowserPluginGuest::OnReload(instance_id); |
256 } | 256 } |
257 | 257 |
258 void TestBrowserPluginGuest::OnStop(int instance_id) { | 258 void TestBrowserPluginGuest::OnStop(int instance_id) { |
259 stop_observed_ = true; | 259 stop_observed_ = true; |
260 if (stop_message_loop_runner_) | 260 if (stop_message_loop_runner_.get()) |
261 stop_message_loop_runner_->Quit(); | 261 stop_message_loop_runner_->Quit(); |
262 BrowserPluginGuest::OnStop(instance_id); | 262 BrowserPluginGuest::OnStop(instance_id); |
263 } | 263 } |
264 | 264 |
265 void TestBrowserPluginGuest::SetDamageBuffer( | 265 void TestBrowserPluginGuest::SetDamageBuffer( |
266 const BrowserPluginHostMsg_ResizeGuest_Params& params) { | 266 const BrowserPluginHostMsg_ResizeGuest_Params& params) { |
267 ++damage_buffer_call_count_; | 267 ++damage_buffer_call_count_; |
268 last_damage_buffer_size_ = params.view_rect.size(); | 268 last_damage_buffer_size_ = params.view_rect.size(); |
269 | 269 |
270 if (waiting_for_damage_buffer_with_size_ && | 270 if (waiting_for_damage_buffer_with_size_ && |
271 expected_damage_buffer_size_ == params.view_rect.size() && | 271 expected_damage_buffer_size_ == params.view_rect.size() && |
272 damage_buffer_message_loop_runner_) { | 272 damage_buffer_message_loop_runner_.get()) { |
273 damage_buffer_message_loop_runner_->Quit(); | 273 damage_buffer_message_loop_runner_->Quit(); |
274 waiting_for_damage_buffer_with_size_ = false; | 274 waiting_for_damage_buffer_with_size_ = false; |
275 } | 275 } |
276 | 276 |
277 BrowserPluginGuest::SetDamageBuffer(params); | 277 BrowserPluginGuest::SetDamageBuffer(params); |
278 } | 278 } |
279 | 279 |
280 void TestBrowserPluginGuest::DidStopLoading( | 280 void TestBrowserPluginGuest::DidStopLoading( |
281 RenderViewHost* render_view_host) { | 281 RenderViewHost* render_view_host) { |
282 BrowserPluginGuest::DidStopLoading(render_view_host); | 282 BrowserPluginGuest::DidStopLoading(render_view_host); |
283 load_stop_observed_ = true; | 283 load_stop_observed_ = true; |
284 if (load_stop_message_loop_runner_) | 284 if (load_stop_message_loop_runner_.get()) |
285 load_stop_message_loop_runner_->Quit(); | 285 load_stop_message_loop_runner_->Quit(); |
286 } | 286 } |
287 | 287 |
288 } // namespace content | 288 } // namespace content |
OLD | NEW |