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 |