| OLD | NEW |
| 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 webViewHelper.initializeAndLoad(baseURL + fileName, true); | 114 webViewHelper.initializeAndLoad(baseURL + fileName, true); |
| 115 webViewImpl->settings()->setViewportEnabled(true); | 115 webViewImpl->settings()->setViewportEnabled(true); |
| 116 int pageWidth = 640; | 116 int pageWidth = 640; |
| 117 int pageHeight = 480; | 117 int pageHeight = 480; |
| 118 webViewImpl->resize(WebSize(pageWidth, pageHeight)); | 118 webViewImpl->resize(WebSize(pageWidth, pageHeight)); |
| 119 webViewImpl->updateAllLifecyclePhases(); | 119 webViewImpl->updateAllLifecyclePhases(); |
| 120 | 120 |
| 121 webViewImpl->setPageScaleFactor(2); | 121 webViewImpl->setPageScaleFactor(2); |
| 122 | 122 |
| 123 FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view(); | 123 FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view(); |
| 124 Document* document = | |
| 125 toLocalFrame(webViewImpl->page()->mainFrame())->document(); | |
| 126 LocalDOMWindow* domWindow = document->domWindow(); | |
| 127 LayoutViewItem documentLayoutView = document->layoutViewItem(); | |
| 128 | 124 |
| 129 { | 125 { |
| 130 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, | 126 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, |
| 131 WebInputEvent::NoModifiers, | 127 WebInputEvent::NoModifiers, |
| 132 WebInputEvent::TimeStampForTesting); | 128 WebInputEvent::TimeStampForTesting); |
| 133 webMouseEvent.x = 10; | 129 webMouseEvent.x = 10; |
| 134 webMouseEvent.y = 10; | 130 webMouseEvent.y = 10; |
| 135 webMouseEvent.windowX = 10; | 131 webMouseEvent.windowX = 10; |
| 136 webMouseEvent.windowY = 10; | 132 webMouseEvent.windowY = 10; |
| 137 webMouseEvent.globalX = 10; | 133 webMouseEvent.globalX = 10; |
| 138 webMouseEvent.globalY = 10; | 134 webMouseEvent.globalY = 10; |
| 139 webMouseEvent.movementX = 10; | 135 webMouseEvent.movementX = 10; |
| 140 webMouseEvent.movementY = 10; | 136 webMouseEvent.movementY = 10; |
| 141 | 137 |
| 142 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 138 WebMouseEvent transformedEvent = |
| 143 EXPECT_EQ(5, platformMouseBuilder.position().x()); | 139 TransformWebMouseEvent(view, webMouseEvent); |
| 144 EXPECT_EQ(5, platformMouseBuilder.position().y()); | 140 IntPoint position = flooredIntPoint(transformedEvent.positionInRootFrame()); |
| 145 EXPECT_EQ(10, platformMouseBuilder.globalPosition().x()); | 141 EXPECT_EQ(5, position.x()); |
| 146 EXPECT_EQ(10, platformMouseBuilder.globalPosition().y()); | 142 EXPECT_EQ(5, position.y()); |
| 147 EXPECT_EQ(5, platformMouseBuilder.movementDelta().x()); | 143 EXPECT_EQ(10, transformedEvent.globalX); |
| 148 EXPECT_EQ(5, platformMouseBuilder.movementDelta().y()); | 144 EXPECT_EQ(10, transformedEvent.globalY); |
| 145 |
| 146 IntPoint movement = flooredIntPoint(transformedEvent.movementInRootFrame()); |
| 147 EXPECT_EQ(5, movement.x()); |
| 148 EXPECT_EQ(5, movement.y()); |
| 149 } | 149 } |
| 150 | 150 |
| 151 { | 151 { |
| 152 WebGestureEvent webGestureEvent(WebInputEvent::GestureScrollUpdate, | 152 WebGestureEvent webGestureEvent(WebInputEvent::GestureScrollUpdate, |
| 153 WebInputEvent::NoModifiers, | 153 WebInputEvent::NoModifiers, |
| 154 WebInputEvent::TimeStampForTesting); | 154 WebInputEvent::TimeStampForTesting); |
| 155 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; | 155 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; |
| 156 webGestureEvent.x = 10; | 156 webGestureEvent.x = 10; |
| 157 webGestureEvent.y = 12; | 157 webGestureEvent.y = 12; |
| 158 webGestureEvent.globalX = 20; | 158 webGestureEvent.globalX = 20; |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 WebTouchEvent transformedEvent = | 319 WebTouchEvent transformedEvent = |
| 320 TransformWebTouchEvent(view, webTouchEvent); | 320 TransformWebTouchEvent(view, webTouchEvent); |
| 321 WebTouchPoint transformedPoint = transformedEvent.touchPointInRootFrame(0); | 321 WebTouchPoint transformedPoint = transformedEvent.touchPointInRootFrame(0); |
| 322 EXPECT_FLOAT_EQ(10.6f, transformedPoint.screenPosition.x); | 322 EXPECT_FLOAT_EQ(10.6f, transformedPoint.screenPosition.x); |
| 323 EXPECT_FLOAT_EQ(10.4f, transformedPoint.screenPosition.y); | 323 EXPECT_FLOAT_EQ(10.4f, transformedPoint.screenPosition.y); |
| 324 EXPECT_FLOAT_EQ(5.3f, transformedPoint.position.x); | 324 EXPECT_FLOAT_EQ(5.3f, transformedPoint.position.x); |
| 325 EXPECT_FLOAT_EQ(5.2f, transformedPoint.position.y); | 325 EXPECT_FLOAT_EQ(5.2f, transformedPoint.position.y); |
| 326 EXPECT_FLOAT_EQ(5.3f, transformedPoint.radiusX); | 326 EXPECT_FLOAT_EQ(5.3f, transformedPoint.radiusX); |
| 327 EXPECT_FLOAT_EQ(5.2f, transformedPoint.radiusY); | 327 EXPECT_FLOAT_EQ(5.2f, transformedPoint.radiusY); |
| 328 } | 328 } |
| 329 | |
| 330 // Reverse builders should *not* go back to physical pixels, as they are used | |
| 331 // for plugins which expect CSS pixel coordinates. | |
| 332 { | |
| 333 PlatformMouseEvent platformMouseEvent( | |
| 334 IntPoint(10, 10), IntPoint(10, 10), WebPointerProperties::Button::Left, | |
| 335 PlatformEvent::MouseMoved, 1, PlatformEvent::NoModifiers, | |
| 336 PlatformMouseEvent::RealOrIndistinguishable, TimeTicks()); | |
| 337 MouseEvent* mouseEvent = MouseEvent::create( | |
| 338 EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); | |
| 339 WebMouseEventBuilder webMouseBuilder(view, documentLayoutView, *mouseEvent); | |
| 340 | |
| 341 EXPECT_EQ(10, webMouseBuilder.x); | |
| 342 EXPECT_EQ(10, webMouseBuilder.y); | |
| 343 EXPECT_EQ(10, webMouseBuilder.globalX); | |
| 344 EXPECT_EQ(10, webMouseBuilder.globalY); | |
| 345 EXPECT_EQ(10, webMouseBuilder.windowX); | |
| 346 EXPECT_EQ(10, webMouseBuilder.windowY); | |
| 347 } | |
| 348 | |
| 349 { | |
| 350 PlatformMouseEvent platformMouseEvent( | |
| 351 IntPoint(10, 10), IntPoint(10, 10), | |
| 352 WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 1, | |
| 353 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, | |
| 354 TimeTicks()); | |
| 355 MouseEvent* mouseEvent = MouseEvent::create( | |
| 356 EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); | |
| 357 WebMouseEventBuilder webMouseBuilder(view, documentLayoutView, *mouseEvent); | |
| 358 EXPECT_EQ(WebMouseEvent::Button::NoButton, webMouseBuilder.button); | |
| 359 } | |
| 360 } | 329 } |
| 361 | 330 |
| 362 TEST(WebInputEventConversionTest, InputEventsTransform) { | 331 TEST(WebInputEventConversionTest, InputEventsTransform) { |
| 363 const std::string baseURL("http://www.test2.com/"); | 332 const std::string baseURL("http://www.test2.com/"); |
| 364 const std::string fileName("fixed_layout.html"); | 333 const std::string fileName("fixed_layout.html"); |
| 365 | 334 |
| 366 URLTestHelpers::registerMockedURLFromBaseURL( | 335 URLTestHelpers::registerMockedURLFromBaseURL( |
| 367 WebString::fromUTF8(baseURL.c_str()), | 336 WebString::fromUTF8(baseURL.c_str()), |
| 368 WebString::fromUTF8("fixed_layout.html")); | 337 WebString::fromUTF8("fixed_layout.html")); |
| 369 FrameTestHelpers::WebViewHelper webViewHelper; | 338 FrameTestHelpers::WebViewHelper webViewHelper; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 387 WebInputEvent::TimeStampForTesting); | 356 WebInputEvent::TimeStampForTesting); |
| 388 webMouseEvent.x = 100; | 357 webMouseEvent.x = 100; |
| 389 webMouseEvent.y = 110; | 358 webMouseEvent.y = 110; |
| 390 webMouseEvent.windowX = 100; | 359 webMouseEvent.windowX = 100; |
| 391 webMouseEvent.windowY = 110; | 360 webMouseEvent.windowY = 110; |
| 392 webMouseEvent.globalX = 100; | 361 webMouseEvent.globalX = 100; |
| 393 webMouseEvent.globalY = 110; | 362 webMouseEvent.globalY = 110; |
| 394 webMouseEvent.movementX = 60; | 363 webMouseEvent.movementX = 60; |
| 395 webMouseEvent.movementY = 60; | 364 webMouseEvent.movementY = 60; |
| 396 | 365 |
| 397 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 366 WebMouseEvent transformedEvent = |
| 398 EXPECT_EQ(30, platformMouseBuilder.position().x()); | 367 TransformWebMouseEvent(view, webMouseEvent); |
| 399 EXPECT_EQ(30, platformMouseBuilder.position().y()); | 368 FloatPoint position = transformedEvent.positionInRootFrame(); |
| 400 EXPECT_EQ(100, platformMouseBuilder.globalPosition().x()); | 369 |
| 401 EXPECT_EQ(110, platformMouseBuilder.globalPosition().y()); | 370 EXPECT_FLOAT_EQ(30, position.x()); |
| 402 EXPECT_EQ(20, platformMouseBuilder.movementDelta().x()); | 371 EXPECT_FLOAT_EQ(30, position.y()); |
| 403 EXPECT_EQ(20, platformMouseBuilder.movementDelta().y()); | 372 EXPECT_EQ(100, transformedEvent.globalX); |
| 373 EXPECT_EQ(110, transformedEvent.globalY); |
| 374 |
| 375 IntPoint movement = flooredIntPoint(transformedEvent.movementInRootFrame()); |
| 376 EXPECT_EQ(20, movement.x()); |
| 377 EXPECT_EQ(20, movement.y()); |
| 404 } | 378 } |
| 405 | 379 |
| 406 { | 380 { |
| 407 WebMouseEvent webMouseEvent1(WebInputEvent::MouseMove, | 381 WebMouseEvent webMouseEvent1(WebInputEvent::MouseMove, |
| 408 WebInputEvent::NoModifiers, | 382 WebInputEvent::NoModifiers, |
| 409 WebInputEvent::TimeStampForTesting); | 383 WebInputEvent::TimeStampForTesting); |
| 410 webMouseEvent1.x = 100; | 384 webMouseEvent1.x = 100; |
| 411 webMouseEvent1.y = 110; | 385 webMouseEvent1.y = 110; |
| 412 webMouseEvent1.windowX = 100; | 386 webMouseEvent1.windowX = 100; |
| 413 webMouseEvent1.windowY = 110; | 387 webMouseEvent1.windowY = 110; |
| 414 webMouseEvent1.globalX = 100; | 388 webMouseEvent1.globalX = 100; |
| 415 webMouseEvent1.globalY = 110; | 389 webMouseEvent1.globalY = 110; |
| 416 webMouseEvent1.movementX = 60; | 390 webMouseEvent1.movementX = 60; |
| 417 webMouseEvent1.movementY = 60; | 391 webMouseEvent1.movementY = 60; |
| 418 | 392 |
| 419 WebMouseEvent webMouseEvent2 = webMouseEvent1; | 393 WebMouseEvent webMouseEvent2 = webMouseEvent1; |
| 420 webMouseEvent2.y = 140; | 394 webMouseEvent2.y = 140; |
| 421 webMouseEvent2.windowY = 140; | 395 webMouseEvent2.windowY = 140; |
| 422 webMouseEvent2.globalY = 140; | 396 webMouseEvent2.globalY = 140; |
| 423 webMouseEvent2.movementY = 30; | 397 webMouseEvent2.movementY = 30; |
| 424 | 398 |
| 425 std::vector<const WebInputEvent*> events; | 399 std::vector<const WebInputEvent*> events; |
| 426 events.push_back(&webMouseEvent1); | 400 events.push_back(&webMouseEvent1); |
| 427 events.push_back(&webMouseEvent2); | 401 events.push_back(&webMouseEvent2); |
| 428 | 402 |
| 429 Vector<PlatformMouseEvent> coalescedevents = | 403 Vector<WebMouseEvent> coalescedevents = |
| 430 createPlatformMouseEventVector(view, events); | 404 TransformWebMouseEventVector(view, events); |
| 431 EXPECT_EQ(events.size(), coalescedevents.size()); | 405 EXPECT_EQ(events.size(), coalescedevents.size()); |
| 432 | 406 |
| 433 EXPECT_EQ(30, coalescedevents[0].position().x()); | 407 FloatPoint position = coalescedevents[0].positionInRootFrame(); |
| 434 EXPECT_EQ(30, coalescedevents[0].position().y()); | 408 EXPECT_FLOAT_EQ(30, position.x()); |
| 435 EXPECT_EQ(100, coalescedevents[0].globalPosition().x()); | 409 EXPECT_FLOAT_EQ(30, position.y()); |
| 436 EXPECT_EQ(110, coalescedevents[0].globalPosition().y()); | 410 EXPECT_EQ(100, coalescedevents[0].globalX); |
| 437 EXPECT_EQ(20, coalescedevents[0].movementDelta().x()); | 411 EXPECT_EQ(110, coalescedevents[0].globalY); |
| 438 EXPECT_EQ(20, coalescedevents[0].movementDelta().y()); | |
| 439 | 412 |
| 440 EXPECT_EQ(30, coalescedevents[1].position().x()); | 413 IntPoint movement = |
| 441 EXPECT_EQ(40, coalescedevents[1].position().y()); | 414 flooredIntPoint(coalescedevents[0].movementInRootFrame()); |
| 442 EXPECT_EQ(100, coalescedevents[1].globalPosition().x()); | 415 EXPECT_EQ(20, movement.x()); |
| 443 EXPECT_EQ(140, coalescedevents[1].globalPosition().y()); | 416 EXPECT_EQ(20, movement.y()); |
| 444 EXPECT_EQ(20, coalescedevents[1].movementDelta().x()); | 417 |
| 445 EXPECT_EQ(10, coalescedevents[1].movementDelta().y()); | 418 position = coalescedevents[1].positionInRootFrame(); |
| 419 EXPECT_FLOAT_EQ(30, position.x()); |
| 420 EXPECT_FLOAT_EQ(40, position.y()); |
| 421 EXPECT_EQ(100, coalescedevents[1].globalX); |
| 422 EXPECT_EQ(140, coalescedevents[1].globalY); |
| 423 |
| 424 movement = flooredIntPoint(coalescedevents[1].movementInRootFrame()); |
| 425 EXPECT_EQ(20, movement.x()); |
| 426 EXPECT_EQ(10, movement.y()); |
| 446 } | 427 } |
| 447 | 428 |
| 448 { | 429 { |
| 449 WebGestureEvent webGestureEvent(WebInputEvent::GestureScrollUpdate, | 430 WebGestureEvent webGestureEvent(WebInputEvent::GestureScrollUpdate, |
| 450 WebInputEvent::NoModifiers, | 431 WebInputEvent::NoModifiers, |
| 451 WebInputEvent::TimeStampForTesting); | 432 WebInputEvent::TimeStampForTesting); |
| 452 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; | 433 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; |
| 453 webGestureEvent.x = 100; | 434 webGestureEvent.x = 100; |
| 454 webGestureEvent.y = 110; | 435 webGestureEvent.y = 110; |
| 455 webGestureEvent.globalX = 100; | 436 webGestureEvent.globalX = 100; |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 696 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, | 677 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, |
| 697 WebInputEvent::NoModifiers, | 678 WebInputEvent::NoModifiers, |
| 698 WebInputEvent::TimeStampForTesting); | 679 WebInputEvent::TimeStampForTesting); |
| 699 webMouseEvent.x = 10; | 680 webMouseEvent.x = 10; |
| 700 webMouseEvent.y = 10; | 681 webMouseEvent.y = 10; |
| 701 webMouseEvent.windowX = 10; | 682 webMouseEvent.windowX = 10; |
| 702 webMouseEvent.windowY = 10; | 683 webMouseEvent.windowY = 10; |
| 703 webMouseEvent.globalX = 10; | 684 webMouseEvent.globalX = 10; |
| 704 webMouseEvent.globalY = 10; | 685 webMouseEvent.globalY = 10; |
| 705 | 686 |
| 706 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 687 WebMouseEvent transformedMouseEvent = |
| 707 EXPECT_EQ(5 + visualOffset.x(), platformMouseBuilder.position().x()); | 688 TransformWebMouseEvent(view, webMouseEvent); |
| 708 EXPECT_EQ(5 + visualOffset.y(), platformMouseBuilder.position().y()); | 689 IntPoint position = |
| 709 EXPECT_EQ(10, platformMouseBuilder.globalPosition().x()); | 690 flooredIntPoint(transformedMouseEvent.positionInRootFrame()); |
| 710 EXPECT_EQ(10, platformMouseBuilder.globalPosition().y()); | 691 EXPECT_EQ(5 + visualOffset.x(), position.x()); |
| 692 EXPECT_EQ(5 + visualOffset.y(), position.y()); |
| 693 EXPECT_EQ(10, transformedMouseEvent.globalX); |
| 694 EXPECT_EQ(10, transformedMouseEvent.globalY); |
| 711 } | 695 } |
| 712 | 696 |
| 713 { | 697 { |
| 714 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, | 698 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, |
| 715 WebInputEvent::NoModifiers, | 699 WebInputEvent::NoModifiers, |
| 716 WebInputEvent::TimeStampForTesting); | 700 WebInputEvent::TimeStampForTesting); |
| 717 webMouseWheelEvent.x = 10; | 701 webMouseWheelEvent.x = 10; |
| 718 webMouseWheelEvent.y = 10; | 702 webMouseWheelEvent.y = 10; |
| 719 webMouseWheelEvent.windowX = 10; | 703 webMouseWheelEvent.windowX = 10; |
| 720 webMouseWheelEvent.windowY = 10; | 704 webMouseWheelEvent.windowY = 10; |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 804 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, | 788 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, |
| 805 WebInputEvent::NoModifiers, | 789 WebInputEvent::NoModifiers, |
| 806 WebInputEvent::TimeStampForTesting); | 790 WebInputEvent::TimeStampForTesting); |
| 807 webMouseEvent.x = 10; | 791 webMouseEvent.x = 10; |
| 808 webMouseEvent.y = 50; | 792 webMouseEvent.y = 50; |
| 809 webMouseEvent.windowX = 10; | 793 webMouseEvent.windowX = 10; |
| 810 webMouseEvent.windowY = 50; | 794 webMouseEvent.windowY = 50; |
| 811 webMouseEvent.globalX = 10; | 795 webMouseEvent.globalX = 10; |
| 812 webMouseEvent.globalY = 50; | 796 webMouseEvent.globalY = 50; |
| 813 | 797 |
| 814 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 798 WebMouseEvent transformedMouseEvent = |
| 815 EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), | 799 TransformWebMouseEvent(view, webMouseEvent); |
| 816 platformMouseBuilder.position().x()); | 800 IntPoint position = |
| 817 EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), | 801 flooredIntPoint(transformedMouseEvent.positionInRootFrame()); |
| 818 platformMouseBuilder.position().y()); | 802 |
| 819 EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x()); | 803 EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), position.x()); |
| 820 EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y()); | 804 EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), position.y()); |
| 805 EXPECT_EQ(webMouseEvent.globalX, transformedMouseEvent.globalX); |
| 806 EXPECT_EQ(webMouseEvent.globalY, transformedMouseEvent.globalY); |
| 821 } | 807 } |
| 822 | 808 |
| 823 // Elastic overscroll and pinch-zoom (this doesn't actually ever happen, | 809 // Elastic overscroll and pinch-zoom (this doesn't actually ever happen, |
| 824 // but ensure that if it were to, the overscroll would be applied after the | 810 // but ensure that if it were to, the overscroll would be applied after the |
| 825 // pinch-zoom). | 811 // pinch-zoom). |
| 826 float pageScale = 2; | 812 float pageScale = 2; |
| 827 webViewImpl->setPageScaleFactor(pageScale); | 813 webViewImpl->setPageScaleFactor(pageScale); |
| 828 IntPoint visualOffset(35, 60); | 814 IntPoint visualOffset(35, 60); |
| 829 webViewImpl->page()->frameHost().visualViewport().setLocation(visualOffset); | 815 webViewImpl->page()->frameHost().visualViewport().setLocation(visualOffset); |
| 830 { | 816 { |
| 831 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, | 817 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, |
| 832 WebInputEvent::NoModifiers, | 818 WebInputEvent::NoModifiers, |
| 833 WebInputEvent::TimeStampForTesting); | 819 WebInputEvent::TimeStampForTesting); |
| 834 webMouseEvent.x = 10; | 820 webMouseEvent.x = 10; |
| 835 webMouseEvent.y = 10; | 821 webMouseEvent.y = 10; |
| 836 webMouseEvent.windowX = 10; | 822 webMouseEvent.windowX = 10; |
| 837 webMouseEvent.windowY = 10; | 823 webMouseEvent.windowY = 10; |
| 838 webMouseEvent.globalX = 10; | 824 webMouseEvent.globalX = 10; |
| 839 webMouseEvent.globalY = 10; | 825 webMouseEvent.globalY = 10; |
| 840 | 826 |
| 841 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 827 WebMouseEvent transformedMouseEvent = |
| 828 TransformWebMouseEvent(view, webMouseEvent); |
| 829 IntPoint position = |
| 830 flooredIntPoint(transformedMouseEvent.positionInRootFrame()); |
| 831 |
| 842 EXPECT_EQ(webMouseEvent.x / pageScale + visualOffset.x() + | 832 EXPECT_EQ(webMouseEvent.x / pageScale + visualOffset.x() + |
| 843 elasticOverscroll.width(), | 833 elasticOverscroll.width(), |
| 844 platformMouseBuilder.position().x()); | 834 position.x()); |
| 845 EXPECT_EQ(webMouseEvent.y / pageScale + visualOffset.y() + | 835 EXPECT_EQ(webMouseEvent.y / pageScale + visualOffset.y() + |
| 846 elasticOverscroll.height(), | 836 elasticOverscroll.height(), |
| 847 platformMouseBuilder.position().y()); | 837 position.y()); |
| 848 EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x()); | 838 EXPECT_EQ(webMouseEvent.globalX, transformedMouseEvent.globalX); |
| 849 EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y()); | 839 EXPECT_EQ(webMouseEvent.globalY, transformedMouseEvent.globalY); |
| 850 } | 840 } |
| 851 } | 841 } |
| 852 | 842 |
| 853 // Page reload/navigation should not reset elastic overscroll. | 843 // Page reload/navigation should not reset elastic overscroll. |
| 854 TEST(WebInputEventConversionTest, ElasticOverscrollWithPageReload) { | 844 TEST(WebInputEventConversionTest, ElasticOverscrollWithPageReload) { |
| 855 const std::string baseURL("http://www.test6.com/"); | 845 const std::string baseURL("http://www.test6.com/"); |
| 856 const std::string fileName("fixed_layout.html"); | 846 const std::string fileName("fixed_layout.html"); |
| 857 | 847 |
| 858 URLTestHelpers::registerMockedURLFromBaseURL( | 848 URLTestHelpers::registerMockedURLFromBaseURL( |
| 859 WebString::fromUTF8(baseURL.c_str()), | 849 WebString::fromUTF8(baseURL.c_str()), |
| (...skipping 17 matching lines...) Expand all Loading... |
| 877 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, | 867 WebMouseEvent webMouseEvent(WebInputEvent::MouseMove, |
| 878 WebInputEvent::NoModifiers, | 868 WebInputEvent::NoModifiers, |
| 879 WebInputEvent::TimeStampForTesting); | 869 WebInputEvent::TimeStampForTesting); |
| 880 webMouseEvent.x = 10; | 870 webMouseEvent.x = 10; |
| 881 webMouseEvent.y = 50; | 871 webMouseEvent.y = 50; |
| 882 webMouseEvent.windowX = 10; | 872 webMouseEvent.windowX = 10; |
| 883 webMouseEvent.windowY = 50; | 873 webMouseEvent.windowY = 50; |
| 884 webMouseEvent.globalX = 10; | 874 webMouseEvent.globalX = 10; |
| 885 webMouseEvent.globalY = 50; | 875 webMouseEvent.globalY = 50; |
| 886 | 876 |
| 887 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 877 WebMouseEvent transformedMouseEvent = |
| 888 EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), | 878 TransformWebMouseEvent(view, webMouseEvent); |
| 889 platformMouseBuilder.position().x()); | 879 IntPoint position = |
| 890 EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), | 880 flooredIntPoint(transformedMouseEvent.positionInRootFrame()); |
| 891 platformMouseBuilder.position().y()); | 881 |
| 892 EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x()); | 882 EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), position.x()); |
| 893 EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y()); | 883 EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), position.y()); |
| 884 EXPECT_EQ(webMouseEvent.globalX, transformedMouseEvent.globalX); |
| 885 EXPECT_EQ(webMouseEvent.globalY, transformedMouseEvent.globalY); |
| 894 } | 886 } |
| 895 } | 887 } |
| 896 | 888 |
| 897 } // namespace blink | 889 } // namespace blink |
| OLD | NEW |