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

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

Issue 1865813002: Remove RawPtr from Source/web/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 4 years, 8 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 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 webView->resize(WebSize(300, 300)); 332 webView->resize(WebSize(300, 300));
333 webView->updateAllLifecyclePhases(); 333 webView->updateAllLifecyclePhases();
334 runPendingTasks(); 334 runPendingTasks();
335 335
336 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE lementById(WebString::fromUTF8("translated-plugin")); 336 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE lementById(WebString::fromUTF8("translated-plugin"));
337 PlatformEvent::Modifiers modifierKey = static_cast<PlatformEvent::Modifiers> (PlatformEvent::CtrlKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft); 337 PlatformEvent::Modifiers modifierKey = static_cast<PlatformEvent::Modifiers> (PlatformEvent::CtrlKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft);
338 #if OS(MACOSX) 338 #if OS(MACOSX)
339 modifierKey = static_cast<PlatformEvent::Modifiers>(PlatformEvent::MetaKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft); 339 modifierKey = static_cast<PlatformEvent::Modifiers>(PlatformEvent::MetaKey | PlatformEvent::NumLockOn | PlatformEvent::IsLeft);
340 #endif 340 #endif
341 PlatformKeyboardEvent platformKeyboardEventC(PlatformEvent::RawKeyDown, "", "", "67", "", "", 67, 0, false, modifierKey, 0.0); 341 PlatformKeyboardEvent platformKeyboardEventC(PlatformEvent::RawKeyDown, "", "", "67", "", "", 67, 0, false, modifierKey, 0.0);
342 RawPtr<KeyboardEvent> keyEventC = KeyboardEvent::create(platformKeyboardEven tC, 0); 342 KeyboardEvent* keyEventC = KeyboardEvent::create(platformKeyboardEventC, 0);
343 toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handl eEvent(keyEventC.get()); 343 toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handl eEvent(keyEventC);
344 EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(We bClipboard::Buffer())); 344 EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(We bClipboard::Buffer()));
345 345
346 // Clearing |Clipboard::Buffer()|. 346 // Clearing |Clipboard::Buffer()|.
347 Platform::current()->clipboard()->writePlainText(WebString("")); 347 Platform::current()->clipboard()->writePlainText(WebString(""));
348 EXPECT_EQ(WebString(""), Platform::current()->clipboard()->readPlainText(Web Clipboard::Buffer())); 348 EXPECT_EQ(WebString(""), Platform::current()->clipboard()->readPlainText(Web Clipboard::Buffer()));
349 349
350 PlatformKeyboardEvent platformKeyboardEventInsert(PlatformEvent::RawKeyDown, "", "", "45", "", "", 45, 0, false, modifierKey, 0.0); 350 PlatformKeyboardEvent platformKeyboardEventInsert(PlatformEvent::RawKeyDown, "", "", "45", "", "", 45, 0, false, modifierKey, 0.0);
351 RawPtr<KeyboardEvent> keyEventInsert = KeyboardEvent::create(platformKeyboar dEventInsert, 0); 351 KeyboardEvent* keyEventInsert = KeyboardEvent::create(platformKeyboardEventI nsert, 0);
352 toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handl eEvent(keyEventInsert.get()); 352 toWebPluginContainerImpl(pluginContainerOneElement.pluginContainer())->handl eEvent(keyEventInsert);
353 EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(We bClipboard::Buffer())); 353 EXPECT_EQ(WebString("x"), Platform::current()->clipboard()->readPlainText(We bClipboard::Buffer()));
354 } 354 }
355 355
356 // A class to facilitate testing that events are correctly received by plugins. 356 // A class to facilitate testing that events are correctly received by plugins.
357 class EventTestPlugin : public FakeWebPlugin { 357 class EventTestPlugin : public FakeWebPlugin {
358 public: 358 public:
359 EventTestPlugin(WebFrame* frame, const WebPluginParams& params) 359 EventTestPlugin(WebFrame* frame, const WebPluginParams& params)
360 : FakeWebPlugin(frame, params) 360 : FakeWebPlugin(frame, params)
361 , m_lastEventType(WebInputEvent::Undefined) 361 , m_lastEventType(WebInputEvent::Undefined)
362 { 362 {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("plugin_container.html")); 422 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("plugin_container.html"));
423 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper . 423 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper .
424 FrameTestHelpers::WebViewHelper webViewHelper; 424 FrameTestHelpers::WebViewHelper webViewHelper;
425 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta iner.html", true, &pluginWebFrameClient); 425 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta iner.html", true, &pluginWebFrameClient);
426 DCHECK(webView); 426 DCHECK(webView);
427 webView->settings()->setPluginsEnabled(true); 427 webView->settings()->setPluginsEnabled(true);
428 webView->resize(WebSize(300, 300)); 428 webView->resize(WebSize(300, 300));
429 webView->updateAllLifecyclePhases(); 429 webView->updateAllLifecyclePhases();
430 runPendingTasks(); 430 runPendingTasks();
431 431
432 RawPtr<WebPluginContainerImpl> pluginContainerImpl = 432 WebPluginContainerImpl* pluginContainerImpl =
433 toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromU TF8("translated-plugin"))); 433 toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromU TF8("translated-plugin")));
434 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300)); 434 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
435 435
436 WebRect rect = pluginContainerImpl->element().boundsInViewport(); 436 WebRect rect = pluginContainerImpl->element().boundsInViewport();
437 EXPECT_TRUE(pluginContainerImpl->isRectTopmost(rect)); 437 EXPECT_TRUE(pluginContainerImpl->isRectTopmost(rect));
438 438
439 // Cause the plugin's frame to be detached. 439 // Cause the plugin's frame to be detached.
440 webViewHelper.reset(); 440 webViewHelper.reset();
441 441
442 EXPECT_FALSE(pluginContainerImpl->isRectTopmost(rect)); 442 EXPECT_FALSE(pluginContainerImpl->isRectTopmost(rect));
(...skipping 16 matching lines...) Expand all
459 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper . 459 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper .
460 FrameTestHelpers::WebViewHelper webViewHelper; 460 FrameTestHelpers::WebViewHelper webViewHelper;
461 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta ining_page.html", true, &pluginWebFrameClient); 461 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta ining_page.html", true, &pluginWebFrameClient);
462 DCHECK(webView); 462 DCHECK(webView);
463 webView->settings()->setPluginsEnabled(true); 463 webView->settings()->setPluginsEnabled(true);
464 webView->resize(WebSize(300, 300)); 464 webView->resize(WebSize(300, 300));
465 webView->updateAllLifecyclePhases(); 465 webView->updateAllLifecyclePhases();
466 runPendingTasks(); 466 runPendingTasks();
467 467
468 WebElement pluginElement = webView->mainFrame()->firstChild()->document().ge tElementById("translated-plugin"); 468 WebElement pluginElement = webView->mainFrame()->firstChild()->document().ge tElementById("translated-plugin");
469 RawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImp l(pluginElement.pluginContainer()); 469 WebPluginContainerImpl* pluginContainerImpl = toWebPluginContainerImpl(plugi nElement.pluginContainer());
470 470
471 DCHECK(pluginContainerImpl.get()); 471 DCHECK(pluginContainerImpl);
472 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300)); 472 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
473 473
474 IntRect windowRect, clipRect, unobscuredRect; 474 IntRect windowRect, clipRect, unobscuredRect;
475 Vector<IntRect> cutOutRects; 475 Vector<IntRect> cutOutRects;
476 calculateGeometry(pluginContainerImpl.get(), windowRect, clipRect, unobscure dRect, cutOutRects); 476 calculateGeometry(pluginContainerImpl, windowRect, clipRect, unobscuredRect, cutOutRects);
477 EXPECT_RECT_EQ(IntRect(10, 210, 300, 300), windowRect); 477 EXPECT_RECT_EQ(IntRect(10, 210, 300, 300), windowRect);
478 EXPECT_RECT_EQ(IntRect(0, 0, 240, 90), clipRect); 478 EXPECT_RECT_EQ(IntRect(0, 0, 240, 90), clipRect);
479 EXPECT_RECT_EQ(IntRect(0, 0, 240, 160), unobscuredRect); 479 EXPECT_RECT_EQ(IntRect(0, 0, 240, 160), unobscuredRect);
480 480
481 // Cause the plugin's frame to be detached. 481 // Cause the plugin's frame to be detached.
482 webViewHelper.reset(); 482 webViewHelper.reset();
483 } 483 }
484 484
485 TEST_F(WebPluginContainerTest, ClippedRectsForSubpixelPositionedPlugin) 485 TEST_F(WebPluginContainerTest, ClippedRectsForSubpixelPositionedPlugin)
486 { 486 {
487 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("plugin_container.html")); 487 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("plugin_container.html"));
488 488
489 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper . 489 TestPluginWebFrameClient pluginWebFrameClient; // Must outlive webViewHelper .
490 FrameTestHelpers::WebViewHelper webViewHelper; 490 FrameTestHelpers::WebViewHelper webViewHelper;
491 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta iner.html", true, &pluginWebFrameClient); 491 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta iner.html", true, &pluginWebFrameClient);
492 DCHECK(webView); 492 DCHECK(webView);
493 webView->settings()->setPluginsEnabled(true); 493 webView->settings()->setPluginsEnabled(true);
494 webView->resize(WebSize(300, 300)); 494 webView->resize(WebSize(300, 300));
495 webView->updateAllLifecyclePhases(); 495 webView->updateAllLifecyclePhases();
496 runPendingTasks(); 496 runPendingTasks();
497 497
498 WebElement pluginElement = webView->mainFrame()->document().getElementById(" subpixel-positioned-plugin"); 498 WebElement pluginElement = webView->mainFrame()->document().getElementById(" subpixel-positioned-plugin");
499 RawPtr<WebPluginContainerImpl> pluginContainerImpl = toWebPluginContainerImp l(pluginElement.pluginContainer()); 499 WebPluginContainerImpl* pluginContainerImpl = toWebPluginContainerImpl(plugi nElement.pluginContainer());
500 500
501 DCHECK(pluginContainerImpl.get()); 501 DCHECK(pluginContainerImpl);
502 502
503 IntRect windowRect, clipRect, unobscuredRect; 503 IntRect windowRect, clipRect, unobscuredRect;
504 Vector<IntRect> cutOutRects; 504 Vector<IntRect> cutOutRects;
505 505
506 calculateGeometry(pluginContainerImpl.get(), windowRect, clipRect, unobscure dRect, cutOutRects); 506 calculateGeometry(pluginContainerImpl, windowRect, clipRect, unobscuredRect, cutOutRects);
507 // TODO(chrishtr): these values should not be -1, they should be 0. They are -1 because WebPluginContainerImpl currently uses an IntRect for 507 // TODO(chrishtr): these values should not be -1, they should be 0. They are -1 because WebPluginContainerImpl currently uses an IntRect for
508 // frameRect() to determine the position of the plugin, which results in a l oss of precision if it is actually subpixel positioned. 508 // frameRect() to determine the position of the plugin, which results in a l oss of precision if it is actually subpixel positioned.
509 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), windowRect); 509 EXPECT_RECT_EQ(IntRect(0, 0, 40, 40), windowRect);
510 EXPECT_RECT_EQ(IntRect(-1, -1, 41, 41), clipRect); 510 EXPECT_RECT_EQ(IntRect(-1, -1, 41, 41), clipRect);
511 EXPECT_RECT_EQ(IntRect(-1, -1, 41, 41), unobscuredRect); 511 EXPECT_RECT_EQ(IntRect(-1, -1, 41, 41), unobscuredRect);
512 512
513 // Cause the plugin's frame to be detached. 513 // Cause the plugin's frame to be detached.
514 webViewHelper.reset(); 514 webViewHelper.reset();
515 } 515 }
516 516
(...skipping 23 matching lines...) Expand all
540 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("plugin_container.html")); 540 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c _str()), WebString::fromUTF8("plugin_container.html"));
541 CustomPluginWebFrameClient<TopmostPlugin> pluginWebFrameClient; // Must outl ive webViewHelper. 541 CustomPluginWebFrameClient<TopmostPlugin> pluginWebFrameClient; // Must outl ive webViewHelper.
542 FrameTestHelpers::WebViewHelper webViewHelper; 542 FrameTestHelpers::WebViewHelper webViewHelper;
543 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta iner.html", true, &pluginWebFrameClient); 543 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin_conta iner.html", true, &pluginWebFrameClient);
544 DCHECK(webView); 544 DCHECK(webView);
545 webView->settings()->setPluginsEnabled(true); 545 webView->settings()->setPluginsEnabled(true);
546 webView->resize(WebSize(300, 300)); 546 webView->resize(WebSize(300, 300));
547 webView->updateAllLifecyclePhases(); 547 webView->updateAllLifecyclePhases();
548 runPendingTasks(); 548 runPendingTasks();
549 549
550 RawPtr<WebPluginContainerImpl> pluginContainerImpl = 550 WebPluginContainerImpl* pluginContainerImpl =
551 toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromU TF8("translated-plugin"))); 551 toWebPluginContainerImpl(getWebPluginContainer(webView, WebString::fromU TF8("translated-plugin")));
552 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300)); 552 pluginContainerImpl->setFrameRect(IntRect(0, 0, 300, 300));
553 553
554 EXPECT_TRUE(pluginContainerImpl->isRectTopmost(topmostRect)); 554 EXPECT_TRUE(pluginContainerImpl->isRectTopmost(topmostRect));
555 555
556 TopmostPlugin* testPlugin = static_cast<TopmostPlugin*>(pluginContainerImpl- >plugin()); 556 TopmostPlugin* testPlugin = static_cast<TopmostPlugin*>(pluginContainerImpl- >plugin());
557 EXPECT_TRUE(testPlugin->isRectTopmost()); 557 EXPECT_TRUE(testPlugin->isRectTopmost());
558 558
559 // Cause the plugin's frame to be detached. 559 // Cause the plugin's frame to be detached.
560 webViewHelper.reset(); 560 webViewHelper.reset();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 FrameTestHelpers::WebViewHelper webViewHelper; 612 FrameTestHelpers::WebViewHelper webViewHelper;
613 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin.html" , true, &webFrameClient); 613 WebView* webView = webViewHelper.initializeAndLoad(m_baseURL + "plugin.html" , true, &webFrameClient);
614 ASSERT_TRUE(webView); 614 ASSERT_TRUE(webView);
615 webView->settings()->setPluginsEnabled(true); 615 webView->settings()->setPluginsEnabled(true);
616 webView->resize(WebSize(800, 600)); 616 webView->resize(WebSize(800, 600));
617 webView->updateAllLifecyclePhases(); 617 webView->updateAllLifecyclePhases();
618 runPendingTasks(); 618 runPendingTasks();
619 619
620 WebPluginContainerImpl* container = static_cast<WebPluginContainerImpl*>(get WebPluginContainer(webView, WebString::fromUTF8("plugin"))); 620 WebPluginContainerImpl* container = static_cast<WebPluginContainerImpl*>(get WebPluginContainer(webView, WebString::fromUTF8("plugin")));
621 ASSERT_TRUE(container); 621 ASSERT_TRUE(container);
622 RawPtr<Element> element = static_cast<RawPtr<Element>>(container->element()) ; 622 Element* element = static_cast<Element*>(container->element());
623 const auto* plugin = static_cast<const CompositedPlugin*>(container->plugin( )); 623 const auto* plugin = static_cast<const CompositedPlugin*>(container->plugin( ));
624 624
625 OwnPtr<PaintController> paintController = PaintController::create(); 625 OwnPtr<PaintController> paintController = PaintController::create();
626 GraphicsContext graphicsContext(*paintController); 626 GraphicsContext graphicsContext(*paintController);
627 container->paint(graphicsContext, CullRect(IntRect(10, 10, 400, 300))); 627 container->paint(graphicsContext, CullRect(IntRect(10, 10, 400, 300)));
628 paintController->commitNewDisplayItems(); 628 paintController->commitNewDisplayItems();
629 629
630 const auto& displayItems = paintController->paintArtifact().getDisplayItemLi st(); 630 const auto& displayItems = paintController->paintArtifact().getDisplayItemLi st();
631 ASSERT_EQ(1u, displayItems.size()); 631 ASSERT_EQ(1u, displayItems.size());
632 EXPECT_EQ(element->layoutObject(), &displayItems[0].client()); 632 EXPECT_EQ(element->layoutObject(), &displayItems[0].client());
(...skipping 17 matching lines...) Expand all
650 runPendingTasks(); 650 runPendingTasks();
651 651
652 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE lementById(WebString::fromUTF8("translated-plugin")); 652 WebElement pluginContainerOneElement = webView->mainFrame()->document().getE lementById(WebString::fromUTF8("translated-plugin"));
653 pluginContainerOneElement.pluginContainer()->setWantsWheelEvents(true); 653 pluginContainerOneElement.pluginContainer()->setWantsWheelEvents(true);
654 654
655 runPendingTasks(); 655 runPendingTasks();
656 EXPECT_TRUE(webView->page()->frameHost().eventHandlerRegistry().hasEventHand lers(EventHandlerRegistry::WheelEventBlocking)); 656 EXPECT_TRUE(webView->page()->frameHost().eventHandlerRegistry().hasEventHand lers(EventHandlerRegistry::WheelEventBlocking));
657 } 657 }
658 658
659 } // namespace blink 659 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698