Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp

Issue 2928033002: Move GetDocument method from WebFrame to WebLocalFrame. (Closed)
Patch Set: Split a DCHECK in two as suggested by boliu@. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 private: 160 private:
161 bool printed_page_ = false; 161 bool printed_page_ = false;
162 }; 162 };
163 163
164 void TestPlugin::PrintPage(int page_number, WebCanvas* canvas) { 164 void TestPlugin::PrintPage(int page_number, WebCanvas* canvas) {
165 DCHECK(test_client_); 165 DCHECK(test_client_);
166 test_client_->OnPrintPage(); 166 test_client_->OnPrintPage();
167 } 167 }
168 168
169 WebPluginContainer* GetWebPluginContainer(WebView* web_view, 169 WebPluginContainer* GetWebPluginContainer(WebViewBase* web_view,
170 const WebString& id) { 170 const WebString& id) {
171 WebElement element = web_view->MainFrame()->GetDocument().GetElementById(id); 171 WebElement element =
172 web_view->MainFrameImpl()->GetDocument().GetElementById(id);
172 return element.PluginContainer(); 173 return element.PluginContainer();
173 } 174 }
174 175
175 } // namespace 176 } // namespace
176 177
177 TEST_F(WebPluginContainerTest, WindowToLocalPointTest) { 178 TEST_F(WebPluginContainerTest, WindowToLocalPointTest) {
178 RegisterMockedURL("plugin_container.html"); 179 RegisterMockedURL("plugin_container.html");
179 TestPluginWebFrameClient 180 TestPluginWebFrameClient
180 plugin_web_frame_client; // Must outlive webViewHelper. 181 plugin_web_frame_client; // Must outlive webViewHelper.
181 FrameTestHelpers::WebViewHelper web_view_helper; 182 FrameTestHelpers::WebViewHelper web_view_helper;
182 WebView* web_view = web_view_helper.InitializeAndLoad( 183 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
183 base_url_ + "plugin_container.html", &plugin_web_frame_client); 184 base_url_ + "plugin_container.html", &plugin_web_frame_client);
184 DCHECK(web_view); 185 DCHECK(web_view);
185 web_view->GetSettings()->SetPluginsEnabled(true); 186 web_view->GetSettings()->SetPluginsEnabled(true);
186 web_view->Resize(WebSize(300, 300)); 187 web_view->Resize(WebSize(300, 300));
187 web_view->UpdateAllLifecyclePhases(); 188 web_view->UpdateAllLifecyclePhases();
188 RunPendingTasks(); 189 RunPendingTasks();
189 190
190 WebPluginContainer* plugin_container_one = 191 WebPluginContainer* plugin_container_one =
191 GetWebPluginContainer(web_view, WebString::FromUTF8("translated-plugin")); 192 GetWebPluginContainer(web_view, WebString::FromUTF8("translated-plugin"));
192 DCHECK(plugin_container_one); 193 DCHECK(plugin_container_one);
(...skipping 18 matching lines...) Expand all
211 ASSERT_EQ(10, point4.x); 212 ASSERT_EQ(10, point4.x);
212 ASSERT_EQ(10, point4.y); 213 ASSERT_EQ(10, point4.y);
213 } 214 }
214 215
215 TEST_F(WebPluginContainerTest, PluginDocumentPluginIsFocused) { 216 TEST_F(WebPluginContainerTest, PluginDocumentPluginIsFocused) {
216 RegisterMockedURL("test.pdf", "application/pdf"); 217 RegisterMockedURL("test.pdf", "application/pdf");
217 218
218 TestPluginWebFrameClient 219 TestPluginWebFrameClient
219 plugin_web_frame_client; // Must outlive webViewHelper. 220 plugin_web_frame_client; // Must outlive webViewHelper.
220 FrameTestHelpers::WebViewHelper web_view_helper; 221 FrameTestHelpers::WebViewHelper web_view_helper;
221 WebView* web_view = web_view_helper.InitializeAndLoad( 222 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
222 base_url_ + "test.pdf", &plugin_web_frame_client); 223 base_url_ + "test.pdf", &plugin_web_frame_client);
223 DCHECK(web_view); 224 DCHECK(web_view);
224 web_view->UpdateAllLifecyclePhases(); 225 web_view->UpdateAllLifecyclePhases();
225 226
226 WebDocument document = web_view->MainFrame()->GetDocument(); 227 WebDocument document = web_view->MainFrameImpl()->GetDocument();
227 EXPECT_TRUE(document.IsPluginDocument()); 228 EXPECT_TRUE(document.IsPluginDocument());
228 WebPluginContainer* plugin_container = 229 WebPluginContainer* plugin_container =
229 GetWebPluginContainer(web_view, "plugin"); 230 GetWebPluginContainer(web_view, "plugin");
230 EXPECT_EQ(document.FocusedElement(), plugin_container->GetElement()); 231 EXPECT_EQ(document.FocusedElement(), plugin_container->GetElement());
231 } 232 }
232 233
233 TEST_F(WebPluginContainerTest, IFramePluginDocumentNotFocused) { 234 TEST_F(WebPluginContainerTest, IFramePluginDocumentNotFocused) {
234 RegisterMockedURL("test.pdf", "application/pdf"); 235 RegisterMockedURL("test.pdf", "application/pdf");
235 RegisterMockedURL("iframe_pdf.html", "text/html"); 236 RegisterMockedURL("iframe_pdf.html", "text/html");
236 237
237 TestPluginWebFrameClient 238 TestPluginWebFrameClient
238 plugin_web_frame_client; // Must outlive webViewHelper. 239 plugin_web_frame_client; // Must outlive webViewHelper.
239 FrameTestHelpers::WebViewHelper web_view_helper; 240 FrameTestHelpers::WebViewHelper web_view_helper;
240 WebView* web_view = web_view_helper.InitializeAndLoad( 241 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
241 base_url_ + "iframe_pdf.html", &plugin_web_frame_client); 242 base_url_ + "iframe_pdf.html", &plugin_web_frame_client);
242 DCHECK(web_view); 243 DCHECK(web_view);
243 web_view->UpdateAllLifecyclePhases(); 244 web_view->UpdateAllLifecyclePhases();
244 245
245 WebDocument document = web_view->MainFrame()->GetDocument(); 246 WebDocument document = web_view->MainFrameImpl()->GetDocument();
246 WebFrame* iframe = web_view->MainFrame()->FirstChild(); 247 WebLocalFrame* iframe =
248 web_view->MainFrame()->FirstChild()->ToWebLocalFrame();
247 EXPECT_TRUE(iframe->GetDocument().IsPluginDocument()); 249 EXPECT_TRUE(iframe->GetDocument().IsPluginDocument());
248 WebPluginContainer* plugin_container = 250 WebPluginContainer* plugin_container =
249 iframe->GetDocument().GetElementById("plugin").PluginContainer(); 251 iframe->GetDocument().GetElementById("plugin").PluginContainer();
250 EXPECT_NE(document.FocusedElement(), plugin_container->GetElement()); 252 EXPECT_NE(document.FocusedElement(), plugin_container->GetElement());
251 EXPECT_NE(iframe->GetDocument().FocusedElement(), 253 EXPECT_NE(iframe->GetDocument().FocusedElement(),
252 plugin_container->GetElement()); 254 plugin_container->GetElement());
253 } 255 }
254 256
255 TEST_F(WebPluginContainerTest, PrintOnePage) { 257 TEST_F(WebPluginContainerTest, PrintOnePage) {
256 RegisterMockedURL("test.pdf", "application/pdf"); 258 RegisterMockedURL("test.pdf", "application/pdf");
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 frame->PrintPagesForTesting(recorder.beginRecording(IntRect()), WebSize()); 300 frame->PrintPagesForTesting(recorder.beginRecording(IntRect()), WebSize());
299 frame->PrintEnd(); 301 frame->PrintEnd();
300 DCHECK(plugin_web_frame_client.PrintedAtLeastOnePage()); 302 DCHECK(plugin_web_frame_client.PrintedAtLeastOnePage());
301 } 303 }
302 304
303 TEST_F(WebPluginContainerTest, LocalToWindowPointTest) { 305 TEST_F(WebPluginContainerTest, LocalToWindowPointTest) {
304 RegisterMockedURL("plugin_container.html"); 306 RegisterMockedURL("plugin_container.html");
305 TestPluginWebFrameClient 307 TestPluginWebFrameClient
306 plugin_web_frame_client; // Must outlive webViewHelper. 308 plugin_web_frame_client; // Must outlive webViewHelper.
307 FrameTestHelpers::WebViewHelper web_view_helper; 309 FrameTestHelpers::WebViewHelper web_view_helper;
308 WebView* web_view = web_view_helper.InitializeAndLoad( 310 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
309 base_url_ + "plugin_container.html", &plugin_web_frame_client); 311 base_url_ + "plugin_container.html", &plugin_web_frame_client);
310 DCHECK(web_view); 312 DCHECK(web_view);
311 web_view->GetSettings()->SetPluginsEnabled(true); 313 web_view->GetSettings()->SetPluginsEnabled(true);
312 web_view->Resize(WebSize(300, 300)); 314 web_view->Resize(WebSize(300, 300));
313 web_view->UpdateAllLifecyclePhases(); 315 web_view->UpdateAllLifecyclePhases();
314 RunPendingTasks(); 316 RunPendingTasks();
315 317
316 WebPluginContainer* plugin_container_one = 318 WebPluginContainer* plugin_container_one =
317 GetWebPluginContainer(web_view, WebString::FromUTF8("translated-plugin")); 319 GetWebPluginContainer(web_view, WebString::FromUTF8("translated-plugin"));
318 DCHECK(plugin_container_one); 320 DCHECK(plugin_container_one);
(...skipping 17 matching lines...) Expand all
336 ASSERT_EQ(-10, point4.x); 338 ASSERT_EQ(-10, point4.x);
337 ASSERT_EQ(10, point4.y); 339 ASSERT_EQ(10, point4.y);
338 } 340 }
339 341
340 // Verifies executing the command 'Copy' results in copying to the clipboard. 342 // Verifies executing the command 'Copy' results in copying to the clipboard.
341 TEST_F(WebPluginContainerTest, Copy) { 343 TEST_F(WebPluginContainerTest, Copy) {
342 RegisterMockedURL("plugin_container.html"); 344 RegisterMockedURL("plugin_container.html");
343 TestPluginWebFrameClient 345 TestPluginWebFrameClient
344 plugin_web_frame_client; // Must outlive webViewHelper. 346 plugin_web_frame_client; // Must outlive webViewHelper.
345 FrameTestHelpers::WebViewHelper web_view_helper; 347 FrameTestHelpers::WebViewHelper web_view_helper;
346 WebView* web_view = web_view_helper.InitializeAndLoad( 348 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
347 base_url_ + "plugin_container.html", &plugin_web_frame_client); 349 base_url_ + "plugin_container.html", &plugin_web_frame_client);
348 DCHECK(web_view); 350 DCHECK(web_view);
349 web_view->GetSettings()->SetPluginsEnabled(true); 351 web_view->GetSettings()->SetPluginsEnabled(true);
350 web_view->Resize(WebSize(300, 300)); 352 web_view->Resize(WebSize(300, 300));
351 web_view->UpdateAllLifecyclePhases(); 353 web_view->UpdateAllLifecyclePhases();
352 RunPendingTasks(); 354 RunPendingTasks();
353 355
354 web_view->MainFrame() 356 web_view->MainFrameImpl()
355 ->GetDocument() 357 ->GetDocument()
356 .Unwrap<Document>() 358 .Unwrap<Document>()
357 ->body() 359 ->body()
358 ->getElementById("translated-plugin") 360 ->getElementById("translated-plugin")
359 ->focus(); 361 ->focus();
360 EXPECT_TRUE(web_view->MainFrame()->ToWebLocalFrame()->ExecuteCommand("Copy")); 362 EXPECT_TRUE(web_view->MainFrame()->ToWebLocalFrame()->ExecuteCommand("Copy"));
361 EXPECT_EQ(WebString("x"), Platform::Current()->Clipboard()->ReadPlainText( 363 EXPECT_EQ(WebString("x"), Platform::Current()->Clipboard()->ReadPlainText(
362 WebClipboard::Buffer())); 364 WebClipboard::Buffer()));
363 } 365 }
364 366
365 TEST_F(WebPluginContainerTest, CopyFromContextMenu) { 367 TEST_F(WebPluginContainerTest, CopyFromContextMenu) {
366 RegisterMockedURL("plugin_container.html"); 368 RegisterMockedURL("plugin_container.html");
367 TestPluginWebFrameClient 369 TestPluginWebFrameClient
368 plugin_web_frame_client; // Must outlive webViewHelper. 370 plugin_web_frame_client; // Must outlive webViewHelper.
369 FrameTestHelpers::WebViewHelper web_view_helper; 371 FrameTestHelpers::WebViewHelper web_view_helper;
370 WebView* web_view = web_view_helper.InitializeAndLoad( 372 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
371 base_url_ + "plugin_container.html", &plugin_web_frame_client); 373 base_url_ + "plugin_container.html", &plugin_web_frame_client);
372 DCHECK(web_view); 374 DCHECK(web_view);
373 web_view->GetSettings()->SetPluginsEnabled(true); 375 web_view->GetSettings()->SetPluginsEnabled(true);
374 web_view->Resize(WebSize(300, 300)); 376 web_view->Resize(WebSize(300, 300));
375 web_view->UpdateAllLifecyclePhases(); 377 web_view->UpdateAllLifecyclePhases();
376 RunPendingTasks(); 378 RunPendingTasks();
377 379
378 auto event = FrameTestHelpers::CreateMouseEvent(WebMouseEvent::kMouseDown, 380 auto event = FrameTestHelpers::CreateMouseEvent(WebMouseEvent::kMouseDown,
379 WebMouseEvent::Button::kRight, 381 WebMouseEvent::Button::kRight,
380 WebPoint(30, 30), 0); 382 WebPoint(30, 30), 0);
(...skipping 10 matching lines...) Expand all
391 EXPECT_EQ(WebString(""), Platform::Current()->Clipboard()->ReadPlainText( 393 EXPECT_EQ(WebString(""), Platform::Current()->Clipboard()->ReadPlainText(
392 WebClipboard::Buffer())); 394 WebClipboard::Buffer()));
393 395
394 // Now, let's try a more complex scenario: 396 // Now, let's try a more complex scenario:
395 // 1) open the context menu. This will focus the plugin. 397 // 1) open the context menu. This will focus the plugin.
396 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 398 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
397 // 2) document blurs the plugin, because it can. 399 // 2) document blurs the plugin, because it can.
398 web_view->ClearFocusedElement(); 400 web_view->ClearFocusedElement();
399 // 3) Copy should still operate on the context node, even though the focus had 401 // 3) Copy should still operate on the context node, even though the focus had
400 // shifted. 402 // shifted.
401 EXPECT_TRUE(web_view->MainFrame()->ToWebLocalFrame()->ExecuteCommand("Copy")); 403 EXPECT_TRUE(web_view->MainFrameImpl()->ExecuteCommand("Copy"));
402 EXPECT_EQ(WebString("x"), Platform::Current()->Clipboard()->ReadPlainText( 404 EXPECT_EQ(WebString("x"), Platform::Current()->Clipboard()->ReadPlainText(
403 WebClipboard::Buffer())); 405 WebClipboard::Buffer()));
404 } 406 }
405 407
406 // Verifies |Ctrl-C| and |Ctrl-Insert| keyboard events, results in copying to 408 // Verifies |Ctrl-C| and |Ctrl-Insert| keyboard events, results in copying to
407 // the clipboard. 409 // the clipboard.
408 TEST_F(WebPluginContainerTest, CopyInsertKeyboardEventsTest) { 410 TEST_F(WebPluginContainerTest, CopyInsertKeyboardEventsTest) {
409 RegisterMockedURL("plugin_container.html"); 411 RegisterMockedURL("plugin_container.html");
410 TestPluginWebFrameClient 412 TestPluginWebFrameClient
411 plugin_web_frame_client; // Must outlive webViewHelper. 413 plugin_web_frame_client; // Must outlive webViewHelper.
412 FrameTestHelpers::WebViewHelper web_view_helper; 414 FrameTestHelpers::WebViewHelper web_view_helper;
413 WebView* web_view = web_view_helper.InitializeAndLoad( 415 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
414 base_url_ + "plugin_container.html", &plugin_web_frame_client); 416 base_url_ + "plugin_container.html", &plugin_web_frame_client);
415 DCHECK(web_view); 417 DCHECK(web_view);
416 web_view->GetSettings()->SetPluginsEnabled(true); 418 web_view->GetSettings()->SetPluginsEnabled(true);
417 web_view->Resize(WebSize(300, 300)); 419 web_view->Resize(WebSize(300, 300));
418 web_view->UpdateAllLifecyclePhases(); 420 web_view->UpdateAllLifecyclePhases();
419 RunPendingTasks(); 421 RunPendingTasks();
420 422
421 WebElement plugin_container_one_element = 423 WebElement plugin_container_one_element =
422 web_view->MainFrame()->GetDocument().GetElementById( 424 web_view->MainFrameImpl()->GetDocument().GetElementById(
423 WebString::FromUTF8("translated-plugin")); 425 WebString::FromUTF8("translated-plugin"));
424 WebInputEvent::Modifiers modifier_key = static_cast<WebInputEvent::Modifiers>( 426 WebInputEvent::Modifiers modifier_key = static_cast<WebInputEvent::Modifiers>(
425 WebInputEvent::kControlKey | WebInputEvent::kNumLockOn | 427 WebInputEvent::kControlKey | WebInputEvent::kNumLockOn |
426 WebInputEvent::kIsLeft); 428 WebInputEvent::kIsLeft);
427 #if OS(MACOSX) 429 #if OS(MACOSX)
428 modifier_key = static_cast<WebInputEvent::Modifiers>( 430 modifier_key = static_cast<WebInputEvent::Modifiers>(
429 WebInputEvent::kMetaKey | WebInputEvent::kNumLockOn | 431 WebInputEvent::kMetaKey | WebInputEvent::kNumLockOn |
430 WebInputEvent::kIsLeft); 432 WebInputEvent::kIsLeft);
431 #endif 433 #endif
432 WebKeyboardEvent web_keyboard_event_c(WebInputEvent::kRawKeyDown, 434 WebKeyboardEvent web_keyboard_event_c(WebInputEvent::kRawKeyDown,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 size_t coalesced_event_count_; 502 size_t coalesced_event_count_;
501 WebInputEvent::Type last_event_type_; 503 WebInputEvent::Type last_event_type_;
502 IntPoint last_event_location_; 504 IntPoint last_event_location_;
503 }; 505 };
504 506
505 TEST_F(WebPluginContainerTest, GestureLongPressReachesPlugin) { 507 TEST_F(WebPluginContainerTest, GestureLongPressReachesPlugin) {
506 RegisterMockedURL("plugin_container.html"); 508 RegisterMockedURL("plugin_container.html");
507 CustomPluginWebFrameClient<EventTestPlugin> 509 CustomPluginWebFrameClient<EventTestPlugin>
508 plugin_web_frame_client; // Must outlive webViewHelper. 510 plugin_web_frame_client; // Must outlive webViewHelper.
509 FrameTestHelpers::WebViewHelper web_view_helper; 511 FrameTestHelpers::WebViewHelper web_view_helper;
510 WebView* web_view = web_view_helper.InitializeAndLoad( 512 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
511 base_url_ + "plugin_container.html", &plugin_web_frame_client); 513 base_url_ + "plugin_container.html", &plugin_web_frame_client);
512 DCHECK(web_view); 514 DCHECK(web_view);
513 web_view->GetSettings()->SetPluginsEnabled(true); 515 web_view->GetSettings()->SetPluginsEnabled(true);
514 web_view->Resize(WebSize(300, 300)); 516 web_view->Resize(WebSize(300, 300));
515 web_view->UpdateAllLifecyclePhases(); 517 web_view->UpdateAllLifecyclePhases();
516 RunPendingTasks(); 518 RunPendingTasks();
517 519
518 WebElement plugin_container_one_element = 520 WebElement plugin_container_one_element =
519 web_view->MainFrame()->GetDocument().GetElementById( 521 web_view->MainFrameImpl()->GetDocument().GetElementById(
520 WebString::FromUTF8("translated-plugin")); 522 WebString::FromUTF8("translated-plugin"));
521 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 523 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
522 plugin_container_one_element.PluginContainer()) 524 plugin_container_one_element.PluginContainer())
523 ->Plugin(); 525 ->Plugin();
524 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 526 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
525 527
526 WebGestureEvent event(WebInputEvent::kGestureLongPress, 528 WebGestureEvent event(WebInputEvent::kGestureLongPress,
527 WebInputEvent::kNoModifiers, 529 WebInputEvent::kNoModifiers,
528 WebInputEvent::kTimeStampForTesting); 530 WebInputEvent::kTimeStampForTesting);
529 event.source_device = kWebGestureDeviceTouchscreen; 531 event.source_device = kWebGestureDeviceTouchscreen;
(...skipping 19 matching lines...) Expand all
549 551
550 EXPECT_EQ(WebInputEvent::kGestureLongPress, 552 EXPECT_EQ(WebInputEvent::kGestureLongPress,
551 test_plugin->GetLastInputEventType()); 553 test_plugin->GetLastInputEventType());
552 } 554 }
553 555
554 TEST_F(WebPluginContainerTest, MouseWheelEventTranslated) { 556 TEST_F(WebPluginContainerTest, MouseWheelEventTranslated) {
555 RegisterMockedURL("plugin_container.html"); 557 RegisterMockedURL("plugin_container.html");
556 CustomPluginWebFrameClient<EventTestPlugin> 558 CustomPluginWebFrameClient<EventTestPlugin>
557 plugin_web_frame_client; // Must outlive webViewHelper. 559 plugin_web_frame_client; // Must outlive webViewHelper.
558 FrameTestHelpers::WebViewHelper web_view_helper; 560 FrameTestHelpers::WebViewHelper web_view_helper;
559 WebView* web_view = web_view_helper.InitializeAndLoad( 561 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
560 base_url_ + "plugin_container.html", &plugin_web_frame_client); 562 base_url_ + "plugin_container.html", &plugin_web_frame_client);
561 DCHECK(web_view); 563 DCHECK(web_view);
562 web_view->GetSettings()->SetPluginsEnabled(true); 564 web_view->GetSettings()->SetPluginsEnabled(true);
563 web_view->Resize(WebSize(300, 300)); 565 web_view->Resize(WebSize(300, 300));
564 web_view->UpdateAllLifecyclePhases(); 566 web_view->UpdateAllLifecyclePhases();
565 RunPendingTasks(); 567 RunPendingTasks();
566 568
567 WebElement plugin_container_one_element = 569 WebElement plugin_container_one_element =
568 web_view->MainFrame()->GetDocument().GetElementById( 570 web_view->MainFrameImpl()->GetDocument().GetElementById(
569 WebString::FromUTF8("translated-plugin")); 571 WebString::FromUTF8("translated-plugin"));
570 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 572 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
571 plugin_container_one_element.PluginContainer()) 573 plugin_container_one_element.PluginContainer())
572 ->Plugin(); 574 ->Plugin();
573 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 575 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
574 576
575 WebMouseWheelEvent event(WebInputEvent::kMouseWheel, 577 WebMouseWheelEvent event(WebInputEvent::kMouseWheel,
576 WebInputEvent::kNoModifiers, 578 WebInputEvent::kNoModifiers,
577 WebInputEvent::kTimeStampForTesting); 579 WebInputEvent::kTimeStampForTesting);
578 580
579 WebRect rect = plugin_container_one_element.BoundsInViewport(); 581 WebRect rect = plugin_container_one_element.BoundsInViewport();
580 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2); 582 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2);
581 583
582 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 584 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
583 RunPendingTasks(); 585 RunPendingTasks();
584 586
585 EXPECT_EQ(WebInputEvent::kMouseWheel, test_plugin->GetLastInputEventType()); 587 EXPECT_EQ(WebInputEvent::kMouseWheel, test_plugin->GetLastInputEventType());
586 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X()); 588 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X());
587 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y()); 589 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y());
588 } 590 }
589 591
590 TEST_F(WebPluginContainerTest, TouchEventScrolled) { 592 TEST_F(WebPluginContainerTest, TouchEventScrolled) {
591 RegisterMockedURL("plugin_scroll.html"); 593 RegisterMockedURL("plugin_scroll.html");
592 CustomPluginWebFrameClient<EventTestPlugin> 594 CustomPluginWebFrameClient<EventTestPlugin>
593 plugin_web_frame_client; // Must outlive webViewHelper. 595 plugin_web_frame_client; // Must outlive webViewHelper.
594 FrameTestHelpers::WebViewHelper web_view_helper; 596 FrameTestHelpers::WebViewHelper web_view_helper;
595 WebView* web_view = web_view_helper.InitializeAndLoad( 597 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
596 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 598 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
597 DCHECK(web_view); 599 DCHECK(web_view);
598 web_view->GetSettings()->SetPluginsEnabled(true); 600 web_view->GetSettings()->SetPluginsEnabled(true);
599 web_view->Resize(WebSize(300, 300)); 601 web_view->Resize(WebSize(300, 300));
600 web_view->UpdateAllLifecyclePhases(); 602 web_view->UpdateAllLifecyclePhases();
601 RunPendingTasks(); 603 RunPendingTasks();
602 web_view->SmoothScroll(0, 200, 0); 604 web_view->SmoothScroll(0, 200, 0);
603 web_view->UpdateAllLifecyclePhases(); 605 web_view->UpdateAllLifecyclePhases();
604 RunPendingTasks(); 606 RunPendingTasks();
605 607
606 WebElement plugin_container_one_element = 608 WebElement plugin_container_one_element =
607 web_view->MainFrame()->GetDocument().GetElementById( 609 web_view->MainFrameImpl()->GetDocument().GetElementById(
608 WebString::FromUTF8("scrolled-plugin")); 610 WebString::FromUTF8("scrolled-plugin"));
609 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 611 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
610 WebPluginContainer::kTouchEventRequestTypeRaw); 612 WebPluginContainer::kTouchEventRequestTypeRaw);
611 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 613 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
612 plugin_container_one_element.PluginContainer()) 614 plugin_container_one_element.PluginContainer())
613 ->Plugin(); 615 ->Plugin();
614 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 616 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
615 617
616 WebTouchEvent event(WebInputEvent::kTouchStart, WebInputEvent::kNoModifiers, 618 WebTouchEvent event(WebInputEvent::kTouchStart, WebInputEvent::kNoModifiers,
617 WebInputEvent::kTimeStampForTesting); 619 WebInputEvent::kTimeStampForTesting);
618 event.touches_length = 1; 620 event.touches_length = 1;
619 WebRect rect = plugin_container_one_element.BoundsInViewport(); 621 WebRect rect = plugin_container_one_element.BoundsInViewport();
620 event.touches[0].state = WebTouchPoint::kStatePressed; 622 event.touches[0].state = WebTouchPoint::kStatePressed;
621 event.touches[0].SetPositionInWidget(rect.x + rect.width / 2, 623 event.touches[0].SetPositionInWidget(rect.x + rect.width / 2,
622 rect.y + rect.height / 2); 624 rect.y + rect.height / 2);
623 625
624 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 626 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
625 RunPendingTasks(); 627 RunPendingTasks();
626 628
627 EXPECT_EQ(WebInputEvent::kTouchStart, test_plugin->GetLastInputEventType()); 629 EXPECT_EQ(WebInputEvent::kTouchStart, test_plugin->GetLastInputEventType());
628 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X()); 630 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X());
629 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y()); 631 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y());
630 } 632 }
631 633
632 TEST_F(WebPluginContainerTest, TouchEventScrolledWithCoalescedTouches) { 634 TEST_F(WebPluginContainerTest, TouchEventScrolledWithCoalescedTouches) {
633 RegisterMockedURL("plugin_scroll.html"); 635 RegisterMockedURL("plugin_scroll.html");
634 CustomPluginWebFrameClient<EventTestPlugin> 636 CustomPluginWebFrameClient<EventTestPlugin>
635 plugin_web_frame_client; // Must outlive webViewHelper. 637 plugin_web_frame_client; // Must outlive webViewHelper.
636 FrameTestHelpers::WebViewHelper web_view_helper; 638 FrameTestHelpers::WebViewHelper web_view_helper;
637 WebView* web_view = web_view_helper.InitializeAndLoad( 639 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
638 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 640 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
639 DCHECK(web_view); 641 DCHECK(web_view);
640 web_view->GetSettings()->SetPluginsEnabled(true); 642 web_view->GetSettings()->SetPluginsEnabled(true);
641 web_view->Resize(WebSize(300, 300)); 643 web_view->Resize(WebSize(300, 300));
642 web_view->UpdateAllLifecyclePhases(); 644 web_view->UpdateAllLifecyclePhases();
643 RunPendingTasks(); 645 RunPendingTasks();
644 web_view->SmoothScroll(0, 200, 0); 646 web_view->SmoothScroll(0, 200, 0);
645 web_view->UpdateAllLifecyclePhases(); 647 web_view->UpdateAllLifecyclePhases();
646 RunPendingTasks(); 648 RunPendingTasks();
647 649
648 WebElement plugin_container_one_element = 650 WebElement plugin_container_one_element =
649 web_view->MainFrame()->GetDocument().GetElementById( 651 web_view->MainFrameImpl()->GetDocument().GetElementById(
650 WebString::FromUTF8("scrolled-plugin")); 652 WebString::FromUTF8("scrolled-plugin"));
651 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 653 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
652 WebPluginContainer::kTouchEventRequestTypeRawLowLatency); 654 WebPluginContainer::kTouchEventRequestTypeRawLowLatency);
653 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 655 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
654 plugin_container_one_element.PluginContainer()) 656 plugin_container_one_element.PluginContainer())
655 ->Plugin(); 657 ->Plugin();
656 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 658 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
657 659
658 WebTouchEvent event(WebInputEvent::kTouchStart, WebInputEvent::kNoModifiers, 660 WebTouchEvent event(WebInputEvent::kTouchStart, WebInputEvent::kNoModifiers,
659 WebInputEvent::kTimeStampForTesting); 661 WebInputEvent::kTimeStampForTesting);
(...skipping 25 matching lines...) Expand all
685 EXPECT_EQ(WebInputEvent::kTouchStart, test_plugin->GetLastInputEventType()); 687 EXPECT_EQ(WebInputEvent::kTouchStart, test_plugin->GetLastInputEventType());
686 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X()); 688 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X());
687 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y()); 689 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y());
688 } 690 }
689 691
690 TEST_F(WebPluginContainerTest, MouseWheelEventScrolled) { 692 TEST_F(WebPluginContainerTest, MouseWheelEventScrolled) {
691 RegisterMockedURL("plugin_scroll.html"); 693 RegisterMockedURL("plugin_scroll.html");
692 CustomPluginWebFrameClient<EventTestPlugin> 694 CustomPluginWebFrameClient<EventTestPlugin>
693 plugin_web_frame_client; // Must outlive webViewHelper. 695 plugin_web_frame_client; // Must outlive webViewHelper.
694 FrameTestHelpers::WebViewHelper web_view_helper; 696 FrameTestHelpers::WebViewHelper web_view_helper;
695 WebView* web_view = web_view_helper.InitializeAndLoad( 697 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
696 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 698 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
697 DCHECK(web_view); 699 DCHECK(web_view);
698 web_view->GetSettings()->SetPluginsEnabled(true); 700 web_view->GetSettings()->SetPluginsEnabled(true);
699 web_view->Resize(WebSize(300, 300)); 701 web_view->Resize(WebSize(300, 300));
700 web_view->UpdateAllLifecyclePhases(); 702 web_view->UpdateAllLifecyclePhases();
701 RunPendingTasks(); 703 RunPendingTasks();
702 web_view->SmoothScroll(0, 200, 0); 704 web_view->SmoothScroll(0, 200, 0);
703 web_view->UpdateAllLifecyclePhases(); 705 web_view->UpdateAllLifecyclePhases();
704 RunPendingTasks(); 706 RunPendingTasks();
705 707
706 WebElement plugin_container_one_element = 708 WebElement plugin_container_one_element =
707 web_view->MainFrame()->GetDocument().GetElementById( 709 web_view->MainFrameImpl()->GetDocument().GetElementById(
708 WebString::FromUTF8("scrolled-plugin")); 710 WebString::FromUTF8("scrolled-plugin"));
709 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 711 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
710 WebPluginContainer::kTouchEventRequestTypeRaw); 712 WebPluginContainer::kTouchEventRequestTypeRaw);
711 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 713 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
712 plugin_container_one_element.PluginContainer()) 714 plugin_container_one_element.PluginContainer())
713 ->Plugin(); 715 ->Plugin();
714 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 716 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
715 717
716 WebMouseWheelEvent event(WebInputEvent::kMouseWheel, 718 WebMouseWheelEvent event(WebInputEvent::kMouseWheel,
717 WebInputEvent::kNoModifiers, 719 WebInputEvent::kNoModifiers,
718 WebInputEvent::kTimeStampForTesting); 720 WebInputEvent::kTimeStampForTesting);
719 721
720 WebRect rect = plugin_container_one_element.BoundsInViewport(); 722 WebRect rect = plugin_container_one_element.BoundsInViewport();
721 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2); 723 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2);
722 724
723 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 725 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
724 RunPendingTasks(); 726 RunPendingTasks();
725 727
726 EXPECT_EQ(WebInputEvent::kMouseWheel, test_plugin->GetLastInputEventType()); 728 EXPECT_EQ(WebInputEvent::kMouseWheel, test_plugin->GetLastInputEventType());
727 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X()); 729 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X());
728 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y()); 730 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y());
729 } 731 }
730 732
731 TEST_F(WebPluginContainerTest, MouseEventScrolled) { 733 TEST_F(WebPluginContainerTest, MouseEventScrolled) {
732 RegisterMockedURL("plugin_scroll.html"); 734 RegisterMockedURL("plugin_scroll.html");
733 CustomPluginWebFrameClient<EventTestPlugin> 735 CustomPluginWebFrameClient<EventTestPlugin>
734 plugin_web_frame_client; // Must outlive webViewHelper. 736 plugin_web_frame_client; // Must outlive webViewHelper.
735 FrameTestHelpers::WebViewHelper web_view_helper; 737 FrameTestHelpers::WebViewHelper web_view_helper;
736 WebView* web_view = web_view_helper.InitializeAndLoad( 738 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
737 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 739 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
738 DCHECK(web_view); 740 DCHECK(web_view);
739 web_view->GetSettings()->SetPluginsEnabled(true); 741 web_view->GetSettings()->SetPluginsEnabled(true);
740 web_view->Resize(WebSize(300, 300)); 742 web_view->Resize(WebSize(300, 300));
741 web_view->UpdateAllLifecyclePhases(); 743 web_view->UpdateAllLifecyclePhases();
742 RunPendingTasks(); 744 RunPendingTasks();
743 web_view->SmoothScroll(0, 200, 0); 745 web_view->SmoothScroll(0, 200, 0);
744 web_view->UpdateAllLifecyclePhases(); 746 web_view->UpdateAllLifecyclePhases();
745 RunPendingTasks(); 747 RunPendingTasks();
746 748
747 WebElement plugin_container_one_element = 749 WebElement plugin_container_one_element =
748 web_view->MainFrame()->GetDocument().GetElementById( 750 web_view->MainFrameImpl()->GetDocument().GetElementById(
749 WebString::FromUTF8("scrolled-plugin")); 751 WebString::FromUTF8("scrolled-plugin"));
750 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 752 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
751 WebPluginContainer::kTouchEventRequestTypeRaw); 753 WebPluginContainer::kTouchEventRequestTypeRaw);
752 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 754 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
753 plugin_container_one_element.PluginContainer()) 755 plugin_container_one_element.PluginContainer())
754 ->Plugin(); 756 ->Plugin();
755 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 757 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
756 758
757 WebMouseEvent event(WebInputEvent::kMouseMove, WebInputEvent::kNoModifiers, 759 WebMouseEvent event(WebInputEvent::kMouseMove, WebInputEvent::kNoModifiers,
758 WebInputEvent::kTimeStampForTesting); 760 WebInputEvent::kTimeStampForTesting);
759 761
760 WebRect rect = plugin_container_one_element.BoundsInViewport(); 762 WebRect rect = plugin_container_one_element.BoundsInViewport();
761 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2); 763 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2);
762 764
763 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 765 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
764 RunPendingTasks(); 766 RunPendingTasks();
765 767
766 EXPECT_EQ(WebInputEvent::kMouseMove, test_plugin->GetLastInputEventType()); 768 EXPECT_EQ(WebInputEvent::kMouseMove, test_plugin->GetLastInputEventType());
767 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X()); 769 EXPECT_EQ(rect.width / 2, test_plugin->GetLastEventLocation().X());
768 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y()); 770 EXPECT_EQ(rect.height / 2, test_plugin->GetLastEventLocation().Y());
769 } 771 }
770 772
771 TEST_F(WebPluginContainerTest, MouseEventZoomed) { 773 TEST_F(WebPluginContainerTest, MouseEventZoomed) {
772 RegisterMockedURL("plugin_scroll.html"); 774 RegisterMockedURL("plugin_scroll.html");
773 CustomPluginWebFrameClient<EventTestPlugin> 775 CustomPluginWebFrameClient<EventTestPlugin>
774 plugin_web_frame_client; // Must outlive webViewHelper. 776 plugin_web_frame_client; // Must outlive webViewHelper.
775 FrameTestHelpers::WebViewHelper web_view_helper; 777 FrameTestHelpers::WebViewHelper web_view_helper;
776 WebView* web_view = web_view_helper.InitializeAndLoad( 778 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
777 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 779 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
778 DCHECK(web_view); 780 DCHECK(web_view);
779 web_view->GetSettings()->SetPluginsEnabled(true); 781 web_view->GetSettings()->SetPluginsEnabled(true);
780 web_view->Resize(WebSize(300, 300)); 782 web_view->Resize(WebSize(300, 300));
781 web_view->SetPageScaleFactor(2); 783 web_view->SetPageScaleFactor(2);
782 web_view->SmoothScroll(0, 300, 0); 784 web_view->SmoothScroll(0, 300, 0);
783 web_view->UpdateAllLifecyclePhases(); 785 web_view->UpdateAllLifecyclePhases();
784 RunPendingTasks(); 786 RunPendingTasks();
785 787
786 WebElement plugin_container_one_element = 788 WebElement plugin_container_one_element =
787 web_view->MainFrame()->GetDocument().GetElementById( 789 web_view->MainFrameImpl()->GetDocument().GetElementById(
788 WebString::FromUTF8("scrolled-plugin")); 790 WebString::FromUTF8("scrolled-plugin"));
789 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 791 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
790 WebPluginContainer::kTouchEventRequestTypeRaw); 792 WebPluginContainer::kTouchEventRequestTypeRaw);
791 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 793 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
792 plugin_container_one_element.PluginContainer()) 794 plugin_container_one_element.PluginContainer())
793 ->Plugin(); 795 ->Plugin();
794 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 796 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
795 797
796 WebMouseEvent event(WebInputEvent::kMouseMove, WebInputEvent::kNoModifiers, 798 WebMouseEvent event(WebInputEvent::kMouseMove, WebInputEvent::kNoModifiers,
797 WebInputEvent::kTimeStampForTesting); 799 WebInputEvent::kTimeStampForTesting);
798 800
799 WebRect rect = plugin_container_one_element.BoundsInViewport(); 801 WebRect rect = plugin_container_one_element.BoundsInViewport();
800 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2); 802 event.SetPositionInWidget(rect.x + rect.width / 2, rect.y + rect.height / 2);
801 803
802 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 804 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
803 RunPendingTasks(); 805 RunPendingTasks();
804 806
805 // rect.width/height divided by 4 because the rect is in viewport bounds and 807 // rect.width/height divided by 4 because the rect is in viewport bounds and
806 // there is a scale of 2 set. 808 // there is a scale of 2 set.
807 EXPECT_EQ(WebInputEvent::kMouseMove, test_plugin->GetLastInputEventType()); 809 EXPECT_EQ(WebInputEvent::kMouseMove, test_plugin->GetLastInputEventType());
808 EXPECT_EQ(rect.width / 4, test_plugin->GetLastEventLocation().X()); 810 EXPECT_EQ(rect.width / 4, test_plugin->GetLastEventLocation().X());
809 EXPECT_EQ(rect.height / 4, test_plugin->GetLastEventLocation().Y()); 811 EXPECT_EQ(rect.height / 4, test_plugin->GetLastEventLocation().Y());
810 } 812 }
811 813
812 TEST_F(WebPluginContainerTest, MouseWheelEventZoomed) { 814 TEST_F(WebPluginContainerTest, MouseWheelEventZoomed) {
813 RegisterMockedURL("plugin_scroll.html"); 815 RegisterMockedURL("plugin_scroll.html");
814 CustomPluginWebFrameClient<EventTestPlugin> 816 CustomPluginWebFrameClient<EventTestPlugin>
815 plugin_web_frame_client; // Must outlive webViewHelper. 817 plugin_web_frame_client; // Must outlive webViewHelper.
816 FrameTestHelpers::WebViewHelper web_view_helper; 818 FrameTestHelpers::WebViewHelper web_view_helper;
817 WebView* web_view = web_view_helper.InitializeAndLoad( 819 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
818 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 820 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
819 DCHECK(web_view); 821 DCHECK(web_view);
820 web_view->GetSettings()->SetPluginsEnabled(true); 822 web_view->GetSettings()->SetPluginsEnabled(true);
821 web_view->Resize(WebSize(300, 300)); 823 web_view->Resize(WebSize(300, 300));
822 web_view->SetPageScaleFactor(2); 824 web_view->SetPageScaleFactor(2);
823 web_view->SmoothScroll(0, 300, 0); 825 web_view->SmoothScroll(0, 300, 0);
824 web_view->UpdateAllLifecyclePhases(); 826 web_view->UpdateAllLifecyclePhases();
825 RunPendingTasks(); 827 RunPendingTasks();
826 828
827 WebElement plugin_container_one_element = 829 WebElement plugin_container_one_element =
828 web_view->MainFrame()->GetDocument().GetElementById( 830 web_view->MainFrameImpl()->GetDocument().GetElementById(
829 WebString::FromUTF8("scrolled-plugin")); 831 WebString::FromUTF8("scrolled-plugin"));
830 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 832 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
831 WebPluginContainer::kTouchEventRequestTypeRaw); 833 WebPluginContainer::kTouchEventRequestTypeRaw);
832 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 834 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
833 plugin_container_one_element.PluginContainer()) 835 plugin_container_one_element.PluginContainer())
834 ->Plugin(); 836 ->Plugin();
835 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 837 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
836 838
837 WebMouseWheelEvent event(WebInputEvent::kMouseWheel, 839 WebMouseWheelEvent event(WebInputEvent::kMouseWheel,
838 WebInputEvent::kNoModifiers, 840 WebInputEvent::kNoModifiers,
(...skipping 10 matching lines...) Expand all
849 EXPECT_EQ(WebInputEvent::kMouseWheel, test_plugin->GetLastInputEventType()); 851 EXPECT_EQ(WebInputEvent::kMouseWheel, test_plugin->GetLastInputEventType());
850 EXPECT_EQ(rect.width / 4, test_plugin->GetLastEventLocation().X()); 852 EXPECT_EQ(rect.width / 4, test_plugin->GetLastEventLocation().X());
851 EXPECT_EQ(rect.height / 4, test_plugin->GetLastEventLocation().Y()); 853 EXPECT_EQ(rect.height / 4, test_plugin->GetLastEventLocation().Y());
852 } 854 }
853 855
854 TEST_F(WebPluginContainerTest, TouchEventZoomed) { 856 TEST_F(WebPluginContainerTest, TouchEventZoomed) {
855 RegisterMockedURL("plugin_scroll.html"); 857 RegisterMockedURL("plugin_scroll.html");
856 CustomPluginWebFrameClient<EventTestPlugin> 858 CustomPluginWebFrameClient<EventTestPlugin>
857 plugin_web_frame_client; // Must outlive webViewHelper. 859 plugin_web_frame_client; // Must outlive webViewHelper.
858 FrameTestHelpers::WebViewHelper web_view_helper; 860 FrameTestHelpers::WebViewHelper web_view_helper;
859 WebView* web_view = web_view_helper.InitializeAndLoad( 861 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
860 base_url_ + "plugin_scroll.html", &plugin_web_frame_client); 862 base_url_ + "plugin_scroll.html", &plugin_web_frame_client);
861 DCHECK(web_view); 863 DCHECK(web_view);
862 web_view->GetSettings()->SetPluginsEnabled(true); 864 web_view->GetSettings()->SetPluginsEnabled(true);
863 web_view->Resize(WebSize(300, 300)); 865 web_view->Resize(WebSize(300, 300));
864 web_view->SetPageScaleFactor(2); 866 web_view->SetPageScaleFactor(2);
865 web_view->SmoothScroll(0, 300, 0); 867 web_view->SmoothScroll(0, 300, 0);
866 web_view->UpdateAllLifecyclePhases(); 868 web_view->UpdateAllLifecyclePhases();
867 RunPendingTasks(); 869 RunPendingTasks();
868 870
869 WebElement plugin_container_one_element = 871 WebElement plugin_container_one_element =
870 web_view->MainFrame()->GetDocument().GetElementById( 872 web_view->MainFrameImpl()->GetDocument().GetElementById(
871 WebString::FromUTF8("scrolled-plugin")); 873 WebString::FromUTF8("scrolled-plugin"));
872 plugin_container_one_element.PluginContainer()->RequestTouchEventType( 874 plugin_container_one_element.PluginContainer()->RequestTouchEventType(
873 WebPluginContainer::kTouchEventRequestTypeRaw); 875 WebPluginContainer::kTouchEventRequestTypeRaw);
874 WebPlugin* plugin = static_cast<WebPluginContainerBase*>( 876 WebPlugin* plugin = static_cast<WebPluginContainerBase*>(
875 plugin_container_one_element.PluginContainer()) 877 plugin_container_one_element.PluginContainer())
876 ->Plugin(); 878 ->Plugin();
877 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin); 879 EventTestPlugin* test_plugin = static_cast<EventTestPlugin*>(plugin);
878 880
879 WebTouchEvent event(WebInputEvent::kTouchStart, WebInputEvent::kNoModifiers, 881 WebTouchEvent event(WebInputEvent::kTouchStart, WebInputEvent::kNoModifiers,
880 WebInputEvent::kTimeStampForTesting); 882 WebInputEvent::kTimeStampForTesting);
(...skipping 13 matching lines...) Expand all
894 EXPECT_EQ(rect.width / 4, test_plugin->GetLastEventLocation().X()); 896 EXPECT_EQ(rect.width / 4, test_plugin->GetLastEventLocation().X());
895 EXPECT_EQ(rect.height / 4, test_plugin->GetLastEventLocation().Y()); 897 EXPECT_EQ(rect.height / 4, test_plugin->GetLastEventLocation().Y());
896 } 898 }
897 899
898 // Verify that isRectTopmost returns false when the document is detached. 900 // Verify that isRectTopmost returns false when the document is detached.
899 TEST_F(WebPluginContainerTest, IsRectTopmostTest) { 901 TEST_F(WebPluginContainerTest, IsRectTopmostTest) {
900 RegisterMockedURL("plugin_container.html"); 902 RegisterMockedURL("plugin_container.html");
901 TestPluginWebFrameClient 903 TestPluginWebFrameClient
902 plugin_web_frame_client; // Must outlive webViewHelper. 904 plugin_web_frame_client; // Must outlive webViewHelper.
903 FrameTestHelpers::WebViewHelper web_view_helper; 905 FrameTestHelpers::WebViewHelper web_view_helper;
904 WebView* web_view = web_view_helper.InitializeAndLoad( 906 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
905 base_url_ + "plugin_container.html", &plugin_web_frame_client); 907 base_url_ + "plugin_container.html", &plugin_web_frame_client);
906 DCHECK(web_view); 908 DCHECK(web_view);
907 web_view->GetSettings()->SetPluginsEnabled(true); 909 web_view->GetSettings()->SetPluginsEnabled(true);
908 web_view->Resize(WebSize(300, 300)); 910 web_view->Resize(WebSize(300, 300));
909 web_view->UpdateAllLifecyclePhases(); 911 web_view->UpdateAllLifecyclePhases();
910 RunPendingTasks(); 912 RunPendingTasks();
911 913
912 WebPluginContainerBase* plugin_container_impl = 914 WebPluginContainerBase* plugin_container_impl =
913 ToWebPluginContainerBase(GetWebPluginContainer( 915 ToWebPluginContainerBase(GetWebPluginContainer(
914 web_view, WebString::FromUTF8("translated-plugin"))); 916 web_view, WebString::FromUTF8("translated-plugin")));
(...skipping 25 matching lines...) Expand all
940 plugin_web_frame_client; // Must outlive webViewHelper. 942 plugin_web_frame_client; // Must outlive webViewHelper.
941 FrameTestHelpers::WebViewHelper web_view_helper; 943 FrameTestHelpers::WebViewHelper web_view_helper;
942 WebView* web_view = web_view_helper.InitializeAndLoad( 944 WebView* web_view = web_view_helper.InitializeAndLoad(
943 base_url_ + "plugin_containing_page.html", &plugin_web_frame_client); 945 base_url_ + "plugin_containing_page.html", &plugin_web_frame_client);
944 DCHECK(web_view); 946 DCHECK(web_view);
945 web_view->GetSettings()->SetPluginsEnabled(true); 947 web_view->GetSettings()->SetPluginsEnabled(true);
946 web_view->Resize(WebSize(300, 300)); 948 web_view->Resize(WebSize(300, 300));
947 web_view->UpdateAllLifecyclePhases(); 949 web_view->UpdateAllLifecyclePhases();
948 RunPendingTasks(); 950 RunPendingTasks();
949 951
950 WebElement plugin_element = 952 WebElement plugin_element = web_view->MainFrame()
951 web_view->MainFrame()->FirstChild()->GetDocument().GetElementById( 953 ->FirstChild()
952 "translated-plugin"); 954 ->ToWebLocalFrame()
955 ->GetDocument()
956 .GetElementById("translated-plugin");
953 WebPluginContainerBase* plugin_container_impl = 957 WebPluginContainerBase* plugin_container_impl =
954 ToWebPluginContainerBase(plugin_element.PluginContainer()); 958 ToWebPluginContainerBase(plugin_element.PluginContainer());
955 959
956 DCHECK(plugin_container_impl); 960 DCHECK(plugin_container_impl);
957 961
958 IntRect window_rect, clip_rect, unobscured_rect; 962 IntRect window_rect, clip_rect, unobscured_rect;
959 CalculateGeometry(plugin_container_impl, window_rect, clip_rect, 963 CalculateGeometry(plugin_container_impl, window_rect, clip_rect,
960 unobscured_rect); 964 unobscured_rect);
961 EXPECT_RECT_EQ(IntRect(20, 220, 40, 40), window_rect); 965 EXPECT_RECT_EQ(IntRect(20, 220, 40, 40), window_rect);
962 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), clip_rect); 966 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), clip_rect);
963 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), unobscured_rect); 967 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), unobscured_rect);
964 968
965 // Cause the plugin's frame to be detached. 969 // Cause the plugin's frame to be detached.
966 web_view_helper.Reset(); 970 web_view_helper.Reset();
967 } 971 }
968 972
969 TEST_F(WebPluginContainerTest, ClippedRectsForSubpixelPositionedPlugin) { 973 TEST_F(WebPluginContainerTest, ClippedRectsForSubpixelPositionedPlugin) {
970 RegisterMockedURL("plugin_container.html"); 974 RegisterMockedURL("plugin_container.html");
971 975
972 TestPluginWebFrameClient 976 TestPluginWebFrameClient
973 plugin_web_frame_client; // Must outlive webViewHelper. 977 plugin_web_frame_client; // Must outlive webViewHelper.
974 FrameTestHelpers::WebViewHelper web_view_helper; 978 FrameTestHelpers::WebViewHelper web_view_helper;
975 WebView* web_view = web_view_helper.InitializeAndLoad( 979 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
976 base_url_ + "plugin_container.html", &plugin_web_frame_client); 980 base_url_ + "plugin_container.html", &plugin_web_frame_client);
977 DCHECK(web_view); 981 DCHECK(web_view);
978 web_view->GetSettings()->SetPluginsEnabled(true); 982 web_view->GetSettings()->SetPluginsEnabled(true);
979 web_view->Resize(WebSize(300, 300)); 983 web_view->Resize(WebSize(300, 300));
980 web_view->UpdateAllLifecyclePhases(); 984 web_view->UpdateAllLifecyclePhases();
981 RunPendingTasks(); 985 RunPendingTasks();
982 986
983 WebElement plugin_element = 987 WebElement plugin_element =
984 web_view->MainFrame()->GetDocument().GetElementById( 988 web_view->MainFrameImpl()->GetDocument().GetElementById(
985 "subpixel-positioned-plugin"); 989 "subpixel-positioned-plugin");
986 WebPluginContainerBase* plugin_container_impl = 990 WebPluginContainerBase* plugin_container_impl =
987 ToWebPluginContainerBase(plugin_element.PluginContainer()); 991 ToWebPluginContainerBase(plugin_element.PluginContainer());
988 992
989 DCHECK(plugin_container_impl); 993 DCHECK(plugin_container_impl);
990 994
991 IntRect window_rect, clip_rect, unobscured_rect; 995 IntRect window_rect, clip_rect, unobscured_rect;
992 CalculateGeometry(plugin_container_impl, window_rect, clip_rect, 996 CalculateGeometry(plugin_container_impl, window_rect, clip_rect,
993 unobscured_rect); 997 unobscured_rect);
994 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), window_rect); 998 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), window_rect);
(...skipping 19 matching lines...) Expand all
1014 // In destroy, IsRectTopmost is no longer valid. 1018 // In destroy, IsRectTopmost is no longer valid.
1015 EXPECT_FALSE(Container()->IsRectTopmost(topmost_rect)); 1019 EXPECT_FALSE(Container()->IsRectTopmost(topmost_rect));
1016 FakeWebPlugin::Destroy(); 1020 FakeWebPlugin::Destroy();
1017 } 1021 }
1018 }; 1022 };
1019 1023
1020 RegisterMockedURL("plugin_container.html"); 1024 RegisterMockedURL("plugin_container.html");
1021 // The client must outlive WebViewHelper. 1025 // The client must outlive WebViewHelper.
1022 CustomPluginWebFrameClient<TopmostPlugin> plugin_web_frame_client; 1026 CustomPluginWebFrameClient<TopmostPlugin> plugin_web_frame_client;
1023 FrameTestHelpers::WebViewHelper web_view_helper; 1027 FrameTestHelpers::WebViewHelper web_view_helper;
1024 WebView* web_view = web_view_helper.InitializeAndLoad( 1028 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
1025 base_url_ + "plugin_container.html", &plugin_web_frame_client); 1029 base_url_ + "plugin_container.html", &plugin_web_frame_client);
1026 DCHECK(web_view); 1030 DCHECK(web_view);
1027 web_view->GetSettings()->SetPluginsEnabled(true); 1031 web_view->GetSettings()->SetPluginsEnabled(true);
1028 web_view->Resize(WebSize(300, 300)); 1032 web_view->Resize(WebSize(300, 300));
1029 web_view->UpdateAllLifecyclePhases(); 1033 web_view->UpdateAllLifecyclePhases();
1030 RunPendingTasks(); 1034 RunPendingTasks();
1031 1035
1032 WebPluginContainerBase* plugin_container_impl = 1036 WebPluginContainerBase* plugin_container_impl =
1033 ToWebPluginContainerBase(GetWebPluginContainer( 1037 ToWebPluginContainerBase(GetWebPluginContainer(
1034 web_view, WebString::FromUTF8("translated-plugin"))); 1038 web_view, WebString::FromUTF8("translated-plugin")));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 std::unique_ptr<WebLayer> layer_; 1078 std::unique_ptr<WebLayer> layer_;
1075 }; 1079 };
1076 1080
1077 } // namespace 1081 } // namespace
1078 1082
1079 TEST_F(WebPluginContainerTest, CompositedPluginSPv2) { 1083 TEST_F(WebPluginContainerTest, CompositedPluginSPv2) {
1080 ScopedSlimmingPaintV2ForTest enable_s_pv2(true); 1084 ScopedSlimmingPaintV2ForTest enable_s_pv2(true);
1081 RegisterMockedURL("plugin.html"); 1085 RegisterMockedURL("plugin.html");
1082 CustomPluginWebFrameClient<CompositedPlugin> web_frame_client; 1086 CustomPluginWebFrameClient<CompositedPlugin> web_frame_client;
1083 FrameTestHelpers::WebViewHelper web_view_helper; 1087 FrameTestHelpers::WebViewHelper web_view_helper;
1084 WebView* web_view = web_view_helper.InitializeAndLoad( 1088 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
1085 base_url_ + "plugin.html", &web_frame_client); 1089 base_url_ + "plugin.html", &web_frame_client);
1086 ASSERT_TRUE(web_view); 1090 ASSERT_TRUE(web_view);
1087 web_view->GetSettings()->SetPluginsEnabled(true); 1091 web_view->GetSettings()->SetPluginsEnabled(true);
1088 web_view->Resize(WebSize(800, 600)); 1092 web_view->Resize(WebSize(800, 600));
1089 web_view->UpdateAllLifecyclePhases(); 1093 web_view->UpdateAllLifecyclePhases();
1090 RunPendingTasks(); 1094 RunPendingTasks();
1091 1095
1092 WebPluginContainerBase* container = static_cast<WebPluginContainerBase*>( 1096 WebPluginContainerBase* container = static_cast<WebPluginContainerBase*>(
1093 GetWebPluginContainer(web_view, WebString::FromUTF8("plugin"))); 1097 GetWebPluginContainer(web_view, WebString::FromUTF8("plugin")));
1094 ASSERT_TRUE(container); 1098 ASSERT_TRUE(container);
(...skipping 30 matching lines...) Expand all
1125 FrameTestHelpers::WebViewHelper web_view_helper; 1129 FrameTestHelpers::WebViewHelper web_view_helper;
1126 WebViewBase* web_view = web_view_helper.InitializeAndLoad( 1130 WebViewBase* web_view = web_view_helper.InitializeAndLoad(
1127 base_url_ + "plugin_container.html", &plugin_web_frame_client); 1131 base_url_ + "plugin_container.html", &plugin_web_frame_client);
1128 DCHECK(web_view); 1132 DCHECK(web_view);
1129 web_view->GetSettings()->SetPluginsEnabled(true); 1133 web_view->GetSettings()->SetPluginsEnabled(true);
1130 web_view->Resize(WebSize(300, 300)); 1134 web_view->Resize(WebSize(300, 300));
1131 web_view->UpdateAllLifecyclePhases(); 1135 web_view->UpdateAllLifecyclePhases();
1132 RunPendingTasks(); 1136 RunPendingTasks();
1133 1137
1134 WebElement plugin_container_one_element = 1138 WebElement plugin_container_one_element =
1135 web_view->MainFrame()->GetDocument().GetElementById( 1139 web_view->MainFrameImpl()->GetDocument().GetElementById(
1136 WebString::FromUTF8("translated-plugin")); 1140 WebString::FromUTF8("translated-plugin"));
1137 plugin_container_one_element.PluginContainer()->SetWantsWheelEvents(true); 1141 plugin_container_one_element.PluginContainer()->SetWantsWheelEvents(true);
1138 1142
1139 RunPendingTasks(); 1143 RunPendingTasks();
1140 EXPECT_TRUE(web_view->GetPage()->GetEventHandlerRegistry().HasEventHandlers( 1144 EXPECT_TRUE(web_view->GetPage()->GetEventHandlerRegistry().HasEventHandlers(
1141 EventHandlerRegistry::kWheelEventBlocking)); 1145 EventHandlerRegistry::kWheelEventBlocking));
1142 } 1146 }
1143 1147
1144 } // namespace blink 1148 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698