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

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

Issue 1844013002: Fix main thread top controls scrolling to mirror CC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@propertyTreesBoundsDelta
Patch Set: Build fix after rebase Created 4 years, 7 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 6402 matching lines...) Expand 10 before | Expand all | Expand 10 after
6413 { 6413 {
6414 FakeCompositingWebViewClient client; 6414 FakeCompositingWebViewClient client;
6415 registerMockedHttpURLLoad("long_scroll.html"); 6415 registerMockedHttpURLLoad("long_scroll.html");
6416 FrameTestHelpers::WebViewHelper webViewHelper; 6416 FrameTestHelpers::WebViewHelper webViewHelper;
6417 webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, 0, &cl ient, configureAndroid); 6417 webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, 0, &cl ient, configureAndroid);
6418 6418
6419 WebViewImpl* webView = webViewHelper.webViewImpl(); 6419 WebViewImpl* webView = webViewHelper.webViewImpl();
6420 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew(); 6420 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew();
6421 6421
6422 float topControlsHeight = 40; 6422 float topControlsHeight = 40;
6423 webView->setTopControlsHeight(topControlsHeight, false); 6423 webView->resizeWithTopControls(WebSize(100, 100), topControlsHeight, false);
6424 webViewHelper.resize(WebSize(100, 100));
6425 webView->setPageScaleFactor(2.0f); 6424 webView->setPageScaleFactor(2.0f);
6426 webView->updateAllLifecyclePhases(); 6425 webView->updateAllLifecyclePhases();
6427 6426
6428 webView->mainFrame()->setScrollOffset(WebSize(0, 2000)); 6427 webView->mainFrame()->setScrollOffset(WebSize(0, 2000));
6429 EXPECT_POINT_EQ(IntPoint(0, 1900), IntPoint(frameView->scrollOffset())); 6428 EXPECT_POINT_EQ(IntPoint(0, 1900), IntPoint(frameView->scrollOffset()));
6430 6429
6431 // Simulate the top controls showing by 20px, thus shrinking the viewport 6430 // Simulate the top controls showing by 20px, thus shrinking the viewport
6432 // and allowing it to scroll an additional 20px. 6431 // and allowing it to scroll an additional 20px.
6433 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 20.0f / topControlsHeight); 6432 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 20.0f / topControlsHeight);
6434 EXPECT_POINT_EQ(IntPoint(0, 1920), frameView->maximumScrollPosition()); 6433 EXPECT_POINT_EQ(IntPoint(0, 1920), frameView->maximumScrollPosition());
6435 6434
6436 // Show more, make sure the scroll actually gets clamped. 6435 // Show more, make sure the scroll actually gets clamped.
6437 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 20.0f / topControlsHeight); 6436 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 20.0f / topControlsHeight);
6438 webView->mainFrame()->setScrollOffset(WebSize(0, 2000)); 6437 webView->mainFrame()->setScrollOffset(WebSize(0, 2000));
6439 EXPECT_POINT_EQ(IntPoint(0, 1940), IntPoint(frameView->scrollOffset())); 6438 EXPECT_POINT_EQ(IntPoint(0, 1940), IntPoint(frameView->scrollOffset()));
6440 6439
6441 // Hide until there's 10px showing. 6440 // Hide until there's 10px showing.
6442 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -30.0f / topControlsHeight); 6441 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -30.0f / topControlsHeight);
6443 EXPECT_POINT_EQ(IntPoint(0, 1910), frameView->maximumScrollPosition()); 6442 EXPECT_POINT_EQ(IntPoint(0, 1910), frameView->maximumScrollPosition());
6444 6443
6445 // Simulate a LayoutPart::resize. The frame is resized to accomodate 6444 // Simulate a LayoutPart::resize. The frame is resized to accomodate
6446 // the top controls and Blink's view of the top controls matches that of 6445 // the top controls and Blink's view of the top controls matches that of
6447 // the CC 6446 // the CC
6448 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 30.0f / topControlsHeight); 6447 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 30.0f / topControlsHeight);
6449 webView->setTopControlsHeight(40.0f, true); 6448 webView->resizeWithTopControls(WebSize(100, 60), 40.0f, true);
6450 webViewHelper.resize(WebSize(100, 60));
6451 webView->updateAllLifecyclePhases(); 6449 webView->updateAllLifecyclePhases();
6452 EXPECT_POINT_EQ(IntPoint(0, 1940), frameView->maximumScrollPosition()); 6450 EXPECT_POINT_EQ(IntPoint(0, 1940), frameView->maximumScrollPosition());
6453 6451
6454 // Now simulate hiding. 6452 // Now simulate hiding.
6455 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -10.0f / topControlsHeight); 6453 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -10.0f / topControlsHeight);
6456 EXPECT_POINT_EQ(IntPoint(0, 1930), frameView->maximumScrollPosition()); 6454 EXPECT_POINT_EQ(IntPoint(0, 1930), frameView->maximumScrollPosition());
6457 6455
6458 // Reset to original state: 100px widget height, top controls fully hidden. 6456 // Reset to original state: 100px widget height, top controls fully hidden.
6459 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -30.0f / topControlsHeight); 6457 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -30.0f / topControlsHeight);
6460 webView->setTopControlsHeight(topControlsHeight, false); 6458 webView->resizeWithTopControls(WebSize(100, 100), topControlsHeight, false);
6461 webViewHelper.resize(WebSize(100, 100));
6462 webView->updateAllLifecyclePhases(); 6459 webView->updateAllLifecyclePhases();
6463 EXPECT_POINT_EQ(IntPoint(0, 1900), frameView->maximumScrollPosition()); 6460 EXPECT_POINT_EQ(IntPoint(0, 1900), frameView->maximumScrollPosition());
6464 6461
6465 // Show the top controls by just 1px, since we're zoomed in to 2X, that 6462 // Show the top controls by just 1px, since we're zoomed in to 2X, that
6466 // should allow an extra 0.5px of scrolling in the visual viewport. Make 6463 // should allow an extra 0.5px of scrolling in the visual viewport. Make
6467 // sure we're not losing any pixels when applying the adjustment on the 6464 // sure we're not losing any pixels when applying the adjustment on the
6468 // main frame. 6465 // main frame.
6469 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 1.0f / topControlsHeight); 6466 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 1.0f / topControlsHeight);
6470 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition()); 6467 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition());
6471 6468
(...skipping 2184 matching lines...) Expand 10 before | Expand all | Expand 10 after
8656 WebLocalFrame* mainFrame = helper.webView()->mainFrame()->toWebLocalFrame(); 8653 WebLocalFrame* mainFrame = helper.webView()->mainFrame()->toWebLocalFrame();
8657 v8::HandleScope scope(v8::Isolate::GetCurrent()); 8654 v8::HandleScope scope(v8::Isolate::GetCurrent());
8658 mainFrame->executeScript(WebScriptSource("hello = 'world';")); 8655 mainFrame->executeScript(WebScriptSource("hello = 'world';"));
8659 FrameTestHelpers::loadFrame(mainFrame, "data:text/html,new page"); 8656 FrameTestHelpers::loadFrame(mainFrame, "data:text/html,new page");
8660 v8::Local<v8::Value> result = mainFrame->executeScriptAndReturnValue(WebScri ptSource("hello")); 8657 v8::Local<v8::Value> result = mainFrame->executeScriptAndReturnValue(WebScri ptSource("hello"));
8661 ASSERT_TRUE(result->IsString()); 8658 ASSERT_TRUE(result->IsString());
8662 EXPECT_EQ("world", toCoreString(result->ToString(mainFrame->mainWorldScriptC ontext()).ToLocalChecked())); 8659 EXPECT_EQ("world", toCoreString(result->ToString(mainFrame->mainWorldScriptC ontext()).ToLocalChecked()));
8663 } 8660 }
8664 8661
8665 } // namespace blink 8662 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/tests/VisualViewportTest.cpp ('k') | third_party/WebKit/public/web/WebView.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698