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

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 1056983004: OverscrollGlow for mainThread-{BLINK CHANGES} (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 7323 matching lines...) Expand 10 before | Expand all | Expand 10 after
7334 EXPECT_EQ(fourthFrame, parent->lastChild()); 7334 EXPECT_EQ(fourthFrame, parent->lastChild());
7335 7335
7336 EXPECT_EQ(parent, firstFrame->parent()); 7336 EXPECT_EQ(parent, firstFrame->parent());
7337 EXPECT_EQ(parent, secondFrame->parent()); 7337 EXPECT_EQ(parent, secondFrame->parent());
7338 EXPECT_EQ(parent, thirdFrame->parent()); 7338 EXPECT_EQ(parent, thirdFrame->parent());
7339 EXPECT_EQ(parent, fourthFrame->parent()); 7339 EXPECT_EQ(parent, fourthFrame->parent());
7340 7340
7341 view->close(); 7341 view->close();
7342 } 7342 }
7343 7343
7344 class WebFrameOverscrollTest : public WebFrameTest {
7345 protected:
7346 WebGestureEvent generateEvent(WebInputEvent::Type type, int deltaX = 0, int deltaY = 0)
7347 {
7348 WebGestureEvent event;
7349 event.type = type;
7350 event.x = 100;
7351 event.y = 100;
7352 if (type == WebInputEvent::GestureScrollUpdate) {
7353 event.data.scrollUpdate.deltaX = deltaX;
7354 event.data.scrollUpdate.deltaY = deltaY;
7355 }
7356 return event;
7357 }
7358
7359 void ScrollBegin(FrameTestHelpers::WebViewHelper* webViewHelper)
7360 {
7361 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollBegin));
7362 }
7363
7364 void ScrollUpdate(FrameTestHelpers::WebViewHelper* webViewHelper, float delt aX, float deltaY)
7365 {
7366 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollUpdate, deltaX, deltaY));
7367 }
7368
7369 void ScrollEnd(FrameTestHelpers::WebViewHelper* webViewHelper)
7370 {
7371 webViewHelper->webViewImpl()->handleInputEvent(generateEvent(WebInputEve nt::GestureScrollEnd));
7372 }
7373
7374 void CompareUnusedDeltaAndAccumulatedRootOverscroll(FrameTestHelpers::WebVie wHelper* webViewHelper, float unUsedWidth, float unUsedHeight, float accumulated Width, float accumulatedHeight)
7375 {
7376 FloatSize unUsedDelta = webViewHelper->webViewImpl()->mainFrameImpl()->f rame()->eventHandler().unusedDeltaForTesting();
7377 FloatSize accumulatedRootOverscroll = webViewHelper->webViewImpl()->main FrameImpl()->frame()->eventHandler().accumulatedRootOverscrollForTesting();
7378 EXPECT_FLOAT_EQ(unUsedWidth, unUsedDelta.width());
majidvp 2015/05/29 19:14:19 Having the assertions in this function which is ca
MuVen 2015/06/01 13:29:26 Done.
majidvp 2015/06/01 15:58:29 Thanks.
7379 EXPECT_FLOAT_EQ(unUsedHeight, unUsedDelta.height());
7380 EXPECT_FLOAT_EQ(accumulatedWidth, accumulatedRootOverscroll.width());
7381 EXPECT_FLOAT_EQ(accumulatedHeight, accumulatedRootOverscroll.height());
7382 }
7383 };
7384
7385 TEST_F(WebFrameOverscrollTest, AccumulatedRootOverscrollAndUnsedDeltaSetAndUnset )
7386 {
7387 FakeCompositingWebViewClient client;
7388 registerMockedHttpURLLoad("overscroll/overscroll.html");
7389 FrameTestHelpers::WebViewHelper webViewHelper;
7390 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/overscroll.html", true, 0, &client, configureAndroid);
7391 webViewImpl->layout();
7392
7393 // Resets accumulatedRootOverscroll and unusedDelta on scroll end.
7394 ScrollBegin(&webViewHelper);
7395 ScrollUpdate(&webViewHelper, 0, -13);
7396 ScrollEnd(&webViewHelper);
7397 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7398
7399 // Calculation of accumulatedRootOverscroll and unusedDelta on Single scroll Update.
7400 ScrollBegin(&webViewHelper);
7401 ScrollUpdate(&webViewHelper, 0, -13);
7402 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13) ;
7403 ScrollEnd(&webViewHelper);
7404
7405 // Calculation of accumulatedRootOverscroll and unusedDelta on multiple scro llUpdate.
7406 ScrollBegin(&webViewHelper);
7407 ScrollUpdate(&webViewHelper, 0, -13);
7408 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 13, 0, 13) ;
7409 ScrollUpdate(&webViewHelper, -20, -13);
7410 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 20, 13, 20, 2 6);
7411 ScrollUpdate(&webViewHelper, 0, 26);
7412 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -26, 20, 0 );
majidvp 2015/05/29 19:14:19 Why is the unused value not 0? If the frame is bei
MuVen 2015/06/01 13:29:26 the current reset logic fixes the issue.
MuVen 2015/06/01 13:29:26 current reset logic fixes this.
majidvp 2015/06/01 15:58:29 Maybe the issue is fixed but this test is not veri
MuVen 2015/06/02 09:04:00 Done.
7413 ScrollUpdate(&webViewHelper, 20, 0);
7414 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -20, 0, 0, 0) ;
7415 ScrollEnd(&webViewHelper);
7416 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7417 }
7418
7419 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerDivOverScroll)
7420 {
7421 FakeCompositingWebViewClient client;
7422 registerMockedHttpURLLoad("overscroll/div-overscroll.html");
7423 FrameTestHelpers::WebViewHelper webViewHelper;
7424 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/div-overscroll.html", true, 0, &client, configureAndroid);
7425 webViewImpl->layout();
7426
7427 ScrollBegin(&webViewHelper);
7428
7429 // Scroll the Div to the end.
7430 ScrollUpdate(&webViewHelper, 0, -316);
7431 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7432
7433 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled.
7434 ScrollUpdate(&webViewHelper, 0, -50);
7435 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 50, 0, 50) ;
7436
7437 ScrollEnd(&webViewHelper);
7438 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7439 }
7440
7441 TEST_F(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerIFrameOverScroll)
7442 {
7443 FakeCompositingWebViewClient client;
7444 registerMockedHttpURLLoad("overscroll/iframe-overscroll.html");
7445 registerMockedHttpURLLoad("overscroll/scrollable-iframe.html");
7446 FrameTestHelpers::WebViewHelper webViewHelper;
7447 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/iframe-overscroll.html", true, 0, &client, configureAndroid);
7448 webViewImpl->layout();
7449
7450 ScrollBegin(&webViewHelper);
7451
7452 // Scroll the IFrame to the end.
7453 ScrollUpdate(&webViewHelper, 0, -320);
7454 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7455
7456 // Now On Scrolling IFrame, scroll is bubbled and root layer is over-scrolle d.
7457 ScrollUpdate(&webViewHelper, 0, -50);
7458 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 50, 0, 50) ;
7459 }
7460
7461 TEST_F(WebFrameOverscrollTest, ScaledPageRootLayerOverscrolled)
7462 {
7463 FakeCompositingWebViewClient client;
7464 registerMockedHttpURLLoad("overscroll/overscroll.html");
7465 FrameTestHelpers::WebViewHelper webViewHelper;
7466 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "over scroll/overscroll.html", true, 0, &client, configureAndroid);
7467 webViewImpl->setPageScaleFactor(3.f);
7468 webViewImpl->layout();
7469
7470 // Calculation of accumulatedRootOverscroll and unusedDelta on scaled page.
7471 ScrollBegin(&webViewHelper);
7472 ScrollUpdate(&webViewHelper, 0, 30);
7473 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -10, 0, -1 0);
7474
7475 ScrollUpdate(&webViewHelper, 0, 30);
7476 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, -10, 0, -2 0);
7477
7478 ScrollUpdate(&webViewHelper, 30, 30);
7479 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -10, -10, -10 , -30);
7480
7481 ScrollUpdate(&webViewHelper, 30, 0);
7482 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, -10, 0, -20, -30);
7483
7484 ScrollEnd(&webViewHelper);
7485 CompareUnusedDeltaAndAccumulatedRootOverscroll(&webViewHelper, 0, 0, 0, 0);
7486 }
7487
7344 } // namespace blink 7488 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698