diff options
author | chrishtr <chrishtr@chromium.org> | 2016-01-20 18:30:15 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-21 02:31:26 +0000 |
commit | 3d35ba88209b8b99c43505abdc796330fd04a6bf (patch) | |
tree | 7bba720bd3d8f11cd84732f439cecefacb6c5394 | |
parent | 86e1eb8755f80ec1d1e20757d3e7bfa6b1f999c1 (diff) | |
download | chromium_src-3d35ba88209b8b99c43505abdc796330fd04a6bf.zip chromium_src-3d35ba88209b8b99c43505abdc796330fd04a6bf.tar.gz chromium_src-3d35ba88209b8b99c43505abdc796330fd04a6bf.tar.bz2 |
Don't schedule additional frames inside WebViewImpl::resize().
Previously, we would schedule additional frames in some cases. This should no
longer be necessary now that we are always synchronously updating all lifecycle
phases after changing layout size of the main frame
(https://codereview.chromium.org/1585793002).
BUG=545039
TBR=tommycli
Review URL: https://codereview.chromium.org/1590433007
Cr-Commit-Position: refs/heads/master@{#370584}
9 files changed, 175 insertions, 210 deletions
diff --git a/components/plugins/renderer/webview_plugin.cc b/components/plugins/renderer/webview_plugin.cc index 2869a77..995ff09 100644 --- a/components/plugins/renderer/webview_plugin.cc +++ b/components/plugins/renderer/webview_plugin.cc @@ -283,11 +283,6 @@ void WebViewPlugin::didInvalidateRect(const WebRect& rect) { container_->invalidateRect(rect); } -void WebViewPlugin::didUpdateLayoutSize(const WebSize&) { - if (container_) - container_->setNeedsLayout(); -} - void WebViewPlugin::didChangeCursor(const WebCursorInfo& cursor) { current_cursor_ = cursor; } diff --git a/components/plugins/renderer/webview_plugin.h b/components/plugins/renderer/webview_plugin.h index 20fa038..b889fc5 100644 --- a/components/plugins/renderer/webview_plugin.h +++ b/components/plugins/renderer/webview_plugin.h @@ -129,7 +129,6 @@ class WebViewPlugin : public blink::WebPlugin, // WebWidgetClient methods: void didInvalidateRect(const blink::WebRect&) override; - void didUpdateLayoutSize(const blink::WebSize&) override; void didChangeCursor(const blink::WebCursorInfo& cursor) override; void scheduleAnimation() override; diff --git a/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp b/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp index 4bb4e35..0a121eb 100644 --- a/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp +++ b/third_party/WebKit/Source/web/LinkHighlightImplTest.cpp @@ -118,7 +118,7 @@ public: FakeWebFrameClient m_fakeWebFrameClient; }; -WebViewClient* compositingWebViewClient() +FakeCompositingWebViewClient* compositingWebViewClient() { DEFINE_STATIC_LOCAL(FakeCompositingWebViewClient, client, ()); return &client; diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp index 1742482..016169a 100644 --- a/third_party/WebKit/Source/web/WebViewImpl.cpp +++ b/third_party/WebKit/Source/web/WebViewImpl.cpp @@ -3338,6 +3338,13 @@ void WebViewImpl::refreshPageScaleFactorAfterLayout() setPageScaleFactor(newPageScaleFactor); updateLayerTreeViewport(); + + // Changes to page-scale during layout may require an additional frame. + // We can't update the lifecycle here because we may be in the middle of layout in the + // caller of this method. + // TODO(chrishtr): clean all this up. All layout should happen in one lifecycle run (crbug.com/578239). + if (mainFrameImpl()->frameView()->needsLayout()) + scheduleAnimation(); } void WebViewImpl::updatePageDefinedViewportConstraints(const ViewportDescription& description) @@ -3401,12 +3408,13 @@ void WebViewImpl::updatePageDefinedViewportConstraints(const ViewportDescription mainFrameImpl()->frameView()->setNeedsLayout(); } - updateMainFrameLayoutSize(); if (LocalFrame* frame = page()->deprecatedLocalMainFrame()) { if (TextAutosizer* textAutosizer = frame->document()->textAutosizer()) textAutosizer->updatePageInfoInAllFrames(); } + + updateMainFrameLayoutSize(); } void WebViewImpl::updateMainFrameLayoutSize() @@ -3427,12 +3435,6 @@ void WebViewImpl::updateMainFrameLayoutSize() layoutSize.height = 0; view->setLayoutSize(layoutSize); - - // Resizing marks the frame as needsLayout. Inform clients so that they - // will perform the layout. Widgets held by WebPluginContainerImpl do not otherwise - // see this resize layout invalidation. - if (client()) - client()->didUpdateLayoutSize(layoutSize); } IntSize WebViewImpl::contentsSize() const @@ -3467,7 +3469,6 @@ void WebViewImpl::disableViewport() { settings()->setViewportEnabled(false); pageScaleConstraintsSet().clearPageDefinedConstraints(); - updateMainFrameLayoutSize(); } float WebViewImpl::defaultMinimumPageScaleFactor() const diff --git a/third_party/WebKit/Source/web/WebViewImplPaintArtifactCompositorTest.cpp b/third_party/WebKit/Source/web/WebViewImplPaintArtifactCompositorTest.cpp index e33780f..4256840 100644 --- a/third_party/WebKit/Source/web/WebViewImplPaintArtifactCompositorTest.cpp +++ b/third_party/WebKit/Source/web/WebViewImplPaintArtifactCompositorTest.cpp @@ -27,9 +27,9 @@ public: MOCK_METHOD0(clearRootLayer, void()); }; -class TestWebViewClient : public WebViewClient { +class TestWebViewClientWithLayerTreeView : public FrameTestHelpers::TestWebViewClient { public: - TestWebViewClient(WebLayerTreeView* layerTreeView) + TestWebViewClientWithLayerTreeView(WebLayerTreeView* layerTreeView) : m_layerTreeView(layerTreeView) { } // WebViewClient @@ -62,7 +62,7 @@ protected: private: RuntimeEnabledFeatures::Backup m_featuresBackup; MockWebLayerTreeView m_webLayerTreeView; - TestWebViewClient m_webViewClient; + TestWebViewClientWithLayerTreeView m_webViewClient; FrameTestHelpers::WebViewHelper m_helper; }; diff --git a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp index cf7e4da..9ea93f7 100644 --- a/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp +++ b/third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp @@ -182,7 +182,7 @@ TestWebFrameClient* defaultWebFrameClient() return &client; } -WebViewClient* defaultWebViewClient() +TestWebViewClient* defaultWebViewClient() { DEFINE_STATIC_LOCAL(TestWebViewClient, client, ()); return &client; @@ -241,7 +241,7 @@ WebViewHelper::~WebViewHelper() reset(); } -WebViewImpl* WebViewHelper::initialize(bool enableJavascript, TestWebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) +WebViewImpl* WebViewHelper::initialize(bool enableJavascript, TestWebFrameClient* webFrameClient, TestWebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) { reset(); @@ -272,10 +272,12 @@ WebViewImpl* WebViewHelper::initialize(bool enableJavascript, TestWebFrameClient // Eliminate this once WebView is no longer a WebWidget. m_webViewWidget = blink::WebFrameWidget::create(webViewClient, m_webView, frame); + m_testWebViewClient = webViewClient; + return m_webView; } -WebViewImpl* WebViewHelper::initializeAndLoad(const std::string& url, bool enableJavascript, TestWebFrameClient* webFrameClient, WebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) +WebViewImpl* WebViewHelper::initializeAndLoad(const std::string& url, bool enableJavascript, TestWebFrameClient* webFrameClient, TestWebViewClient* webViewClient, void (*updateSettingsFunc)(WebSettings*)) { initialize(enableJavascript, webFrameClient, webViewClient, updateSettingsFunc); @@ -298,6 +300,14 @@ void WebViewHelper::reset() } } +void WebViewHelper::resize(WebSize size) +{ + m_testWebViewClient->clearAnimationScheduled(); + webViewImpl()->resize(size); + EXPECT_FALSE(m_testWebViewClient->animationScheduled()); + m_testWebViewClient->clearAnimationScheduled(); +} + TestWebFrameClient::TestWebFrameClient() : m_loadsInProgress(0) { } diff --git a/third_party/WebKit/Source/web/tests/FrameTestHelpers.h b/third_party/WebKit/Source/web/tests/FrameTestHelpers.h index 3f91ae3..5850282 100644 --- a/third_party/WebKit/Source/web/tests/FrameTestHelpers.h +++ b/third_party/WebKit/Source/web/tests/FrameTestHelpers.h @@ -102,6 +102,22 @@ private: bool m_originalOverlayScrollbarsEnabled; }; +class TestWebViewClient : public WebViewClient { +public: + TestWebViewClient() : m_animationScheduled(false) { } + virtual ~TestWebViewClient() { } + void initializeLayerTreeView() override; + WebLayerTreeView* layerTreeView() override { return m_layerTreeView.get(); } + + void scheduleAnimation() override { m_animationScheduled = true; } + bool animationScheduled() { return m_animationScheduled; } + void clearAnimationScheduled() { m_animationScheduled = false; } + +private: + OwnPtr<WebLayerTreeView> m_layerTreeView; + bool m_animationScheduled; +}; + // Convenience class for handling the lifetime of a WebView and its associated mainframe in tests. class WebViewHelper { WTF_MAKE_NONCOPYABLE(WebViewHelper); @@ -112,11 +128,13 @@ public: // Creates and initializes the WebView. Implicitly calls reset() first. IF a // WebFrameClient or a WebViewClient are passed in, they must outlive the // WebViewHelper. - WebViewImpl* initialize(bool enableJavascript = false, TestWebFrameClient* = 0, WebViewClient* = 0, void (*updateSettingsFunc)(WebSettings*) = 0); + WebViewImpl* initialize(bool enableJavascript = false, TestWebFrameClient* = 0, TestWebViewClient* = 0, void (*updateSettingsFunc)(WebSettings*) = 0); // Same as initialize() but also performs the initial load of the url. Only // returns once the load is complete. - WebViewImpl* initializeAndLoad(const std::string& url, bool enableJavascript = false, TestWebFrameClient* = 0, WebViewClient* = 0, void (*updateSettingsFunc)(WebSettings*) = 0); + WebViewImpl* initializeAndLoad(const std::string& url, bool enableJavascript = false, TestWebFrameClient* = 0, TestWebViewClient* = 0, void (*updateSettingsFunc)(WebSettings*) = 0); + + void resize(WebSize); void reset(); @@ -128,6 +146,7 @@ private: WebFrameWidget* m_webViewWidget; SettingOverrider* m_settingOverrider; UseMockScrollbarSettings m_mockScrollbarSettings; + TestWebViewClient* m_testWebViewClient; }; // Minimal implementation of WebFrameClient needed for unit tests that load frames. Tests that load @@ -168,16 +187,6 @@ private: RawPtrWillBePersistent<WebRemoteFrameImpl> const m_frame; }; -class TestWebViewClient : public WebViewClient { -public: - virtual ~TestWebViewClient() { } - void initializeLayerTreeView() override; - WebLayerTreeView* layerTreeView() override { return m_layerTreeView.get(); } - -private: - OwnPtr<WebLayerTreeView> m_layerTreeView; -}; - } // namespace FrameTestHelpers } // namespace blink diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp index e821c3b..8f71f28 100644 --- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp +++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp @@ -247,15 +247,14 @@ protected: { webViewHelper->initializeAndLoad(url, true); webViewHelper->webView()->settings()->setDefaultFontSize(12); - webViewHelper->webView()->resize(WebSize(640, 480)); + webViewHelper->resize(WebSize(640, 480)); } PassOwnPtr<DragImage> nodeImageTestSetup(FrameTestHelpers::WebViewHelper* webViewHelper, const std::string& testcase) { registerMockedHttpURLLoad("nodeimage.html"); webViewHelper->initializeAndLoad(m_baseURL + "nodeimage.html"); - webViewHelper->webView()->resize(WebSize(640, 480)); - webViewHelper->webView()->updateAllLifecyclePhases(); + webViewHelper->resize(WebSize(640, 480)); RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper->webViewImpl()->page()->mainFrame()); ASSERT(frame); Element* element = frame->document()->getElementById(testcase.c_str()); @@ -922,8 +921,7 @@ TEST_P(ParameterizedWebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipl Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->document(); document->settings()->setTextAutosizingEnabled(true); EXPECT_TRUE(document->settings()->textAutosizingEnabled()); - webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webViewImpl()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_TRUE(setTextAutosizingMultiplier(document, 2)); @@ -950,7 +948,7 @@ TEST_P(ParameterizedWebFrameTest, WorkingTextAutosizingMultipliers_VirtualViewpo document->settings()->setTextAutosizingEnabled(true); EXPECT_TRUE(document->settings()->textAutosizingEnabled()); - webViewHelper.webView()->resize(WebSize(490, 800)); + webViewHelper.resize(WebSize(490, 800)); // Multiplier: 980 / 490 = 2.0 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 2.0)); @@ -973,8 +971,7 @@ TEST_P(ParameterizedWebFrameTest, VisualViewportSetSizeInvalidatesTextAutosizing FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); document->settings()->setTextAutosizingEnabled(true); EXPECT_TRUE(document->settings()->textAutosizingEnabled()); - webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webViewImpl()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext()) { if (!frame->isLocalFrame()) @@ -1007,7 +1004,7 @@ TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initialize(true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width()); EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); @@ -1026,8 +1023,7 @@ TEST_P(ParameterizedWebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(2, webViewHelper.webViewImpl()->page()->deviceScaleFactor()); @@ -1056,7 +1052,7 @@ TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) webViewHelper.initialize(true, 0, &client, enableViewportSettings); webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "fixed_layout.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); int defaultFixedLayoutWidth = 980; float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWidth; @@ -1074,7 +1070,7 @@ TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); // Make sure we don't reset to initial scale if the viewport size changes. - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight + 100)); EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); } @@ -1093,7 +1089,7 @@ TEST_P(ParameterizedWebFrameTest, WideDocumentInitializeAtMinimumScale) webViewHelper.initialize(true, 0, &client, enableViewportSettings); webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "wide_document.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); int wideDocumentWidth = 1500; float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; @@ -1111,7 +1107,7 @@ TEST_P(ParameterizedWebFrameTest, WideDocumentInitializeAtMinimumScale) EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); // Make sure we don't reset to initial scale if the viewport size changes. - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight + 100)); EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); } @@ -1126,7 +1122,7 @@ TEST_P(ParameterizedWebFrameTest, DelayedViewportInitialScale) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor()); @@ -1151,7 +1147,7 @@ TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse) webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // The page must be displayed at 100% zoom. EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); @@ -1171,7 +1167,7 @@ TEST_P(ParameterizedWebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewpor webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // The page must be displayed at 100% zoom, despite that it hosts a wide div element. EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); @@ -1190,7 +1186,7 @@ TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // The page sets viewport width to 3000, but with UseWideViewport == false is must be ignored. EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width()); @@ -1210,7 +1206,7 @@ TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccou webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // The page sets viewport width to 3000, but with UseWideViewport == false it must be ignored. // While the initial scale specified by the page must be accounted. @@ -1232,7 +1228,7 @@ TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) applyViewportStyleOverride(&webViewHelper); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width()); EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height()); @@ -1254,7 +1250,7 @@ TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) webViewHelper.webView()->settings()->setUseWideViewport(true); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport/viewport-legacy-xhtmlmp.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width()); EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height()); } @@ -1272,7 +1268,7 @@ TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta) webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width()); } @@ -1291,7 +1287,7 @@ TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) applyViewportStyleOverride(&webViewHelper); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width()); EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().height()); @@ -1309,7 +1305,7 @@ TEST_P(ParameterizedWebFrameTest, PageViewportInitialScaleOverridesLoadWithOverv FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // The page must be displayed at 200% zoom, as specified in its viewport meta tag. EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor()); @@ -1335,8 +1331,7 @@ TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently) int viewportWidth = 640; int viewportHeight = 480; - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); @@ -1359,7 +1354,7 @@ TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWi webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); } @@ -1377,7 +1372,7 @@ TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesPageVi FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); } @@ -1409,7 +1404,7 @@ TEST_P(ParameterizedWebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbere applyViewportStyleOverride(&webViewHelper); webViewHelper.webView()->settings()->setClobberUserAgentInitialScaleQuirk(quirkEnabled); webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); float expectedPageScaleFactor = quirkEnabled && i < WTF_ARRAY_LENGTH(pageScaleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor; EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); @@ -1431,7 +1426,7 @@ TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWi webViewHelper.webView()->settings()->setUseWideViewport(false); webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->contentsSize().width()); EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); @@ -1450,7 +1445,7 @@ TEST_P(ParameterizedWebFrameTest, DocumentElementClientHeightWorksWithWrapConten webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client, configureAndroid); webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); Document* document = frame->document(); @@ -1477,7 +1472,7 @@ TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMo EXPECT_EQ(0.0, compositor->containerLayer()->size().width()); EXPECT_EQ(0.0, compositor->containerLayer()->size().height()); - webViewHelper.webView()->resize(WebSize(viewportWidth, 0)); + webViewHelper.resize(WebSize(viewportWidth, 0)); EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width()); EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); @@ -1486,7 +1481,7 @@ TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMo // The flag ForceZeroLayoutHeight will cause the following resize of viewport // height to be ignored by the outer viewport (the container layer of // LayerCompositor). The height of the visualViewport, however, is not affected. - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needsLayout()); EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width()); EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); @@ -1512,8 +1507,7 @@ TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_LE(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); @@ -1521,12 +1515,11 @@ TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight * 2)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight * 2)); EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needsLayout()); EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); - webViewHelper.webView()->resize(WebSize(viewportWidth * 2, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth * 2, viewportHeight)); EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); webViewHelper.webView()->settings()->setForceZeroLayoutHeight(false); @@ -1554,11 +1547,10 @@ TEST_F(WebFrameTest, SetForceZeroLayoutHeightWorksWithRelayoutsWhenHeightChanged // set view height to zero so that if the height of the view is not // successfully updated during later resizes touch events will fail // (as in not hit content included in the view) - webViewHelper.webView()->resize(WebSize(viewportWidth, 0)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, 0)); webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); IntPoint hitPoint = IntPoint(30, 30); // button size is 100x100 @@ -1653,8 +1645,7 @@ TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksAcrossNavigations webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "large-div.html"); webViewHelper.webView()->updateAllLifecyclePhases(); @@ -1677,8 +1668,7 @@ TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWithWideViewportQuirk) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(true); webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); } @@ -1698,10 +1688,10 @@ TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(true); webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "wide_document_width_viewport.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); int wideDocumentWidth = 800; float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; @@ -1723,10 +1713,10 @@ TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-height-1000.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); @@ -1746,10 +1736,10 @@ TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(true); webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport/viewport-30.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(600, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width()); EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height()); @@ -1798,7 +1788,7 @@ TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-zero-values.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width()); EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); @@ -1821,7 +1811,7 @@ TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initialize(true, 0, &client); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "body-overflow-hidden.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); EXPECT_FALSE(view->userInputScrollable(VerticalScrollbar)); @@ -1840,7 +1830,7 @@ TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrollingWithSetCanHaveS FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initialize(true, 0, &client); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "body-overflow-hidden-short.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); EXPECT_FALSE(view->userInputScrollable(VerticalScrollbar)); @@ -1864,7 +1854,7 @@ TEST_F(WebFrameTest, IgnoreOverflowHiddenQuirk) webViewHelper.initialize(true, 0, &client); webViewHelper.webView()->settings()->setIgnoreMainFrameOverflowHiddenQuirk(true); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "body-overflow-hidden.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); EXPECT_TRUE(view->userInputScrollable(VerticalScrollbar)); @@ -1885,7 +1875,7 @@ TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-nonzero-values.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width()); EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor()); @@ -1908,8 +1898,7 @@ TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutCount(); webViewHelper.webViewImpl()->setPageScaleFactor(3); @@ -1928,8 +1917,7 @@ TEST_P(ParameterizedWebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNot FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutCount(); webViewHelper.webViewImpl()->setPageScaleFactor(30); @@ -1949,8 +1937,7 @@ TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setPageScaleFactor(3); EXPECT_EQ(3, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().currentItem()->pageScaleFactor()); @@ -1969,8 +1956,7 @@ TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) webViewHelper.initialize(true, 0, &client, enableViewportSettings); webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "fixed_layout.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); int defaultFixedLayoutWidth = 980; float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWidth; @@ -1989,8 +1975,7 @@ TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); int viewportWidthMinusScrollbar = viewportWidth; @@ -2028,8 +2013,7 @@ TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesNotApplyCssTransform) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setPageScaleFactor(2); @@ -2057,7 +2041,7 @@ TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh) webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-high.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // We need to account for the fact that logical pixels are unconditionally multiplied by deviceScaleFactor to produce // physical pixels. @@ -2085,7 +2069,7 @@ TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice) webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-device.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2111,7 +2095,7 @@ TEST_P(ParameterizedWebFrameTest, targetDensityDpiDeviceAndFixedWidth) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true); webViewHelper.webView()->settings()->setUseWideViewport(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2133,8 +2117,7 @@ TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne) webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2155,8 +2138,7 @@ TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWid webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(true); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); const float pageZoom = 0.25f; EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); @@ -2179,8 +2161,7 @@ TEST_P(ParameterizedWebFrameTest, NoWideViewportAndNoViewportWithInitialPageScal webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2198,8 +2179,7 @@ TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2221,8 +2201,7 @@ TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonW webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(true); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2242,7 +2221,7 @@ TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWide webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(true); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); @@ -2262,7 +2241,7 @@ TEST_P(ParameterizedWebFrameTest, DesktopPageCanBeZoomedInWhenWideViewportIsTurn webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setUseWideViewport(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_NEAR(1.0f, webViewHelper.webViewImpl()->pageScaleFactor(), 0.01f); EXPECT_NEAR(1.0f, webViewHelper.webViewImpl()->minimumPageScaleFactor(), 0.01f); @@ -2294,11 +2273,11 @@ protected: // Origin scrollOffsets preserved under resize. { - webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, viewportSize.height)); + webViewHelper.resize(WebSize(viewportSize.width, viewportSize.height)); webViewHelper.webViewImpl()->setPageScaleFactor(initialPageScaleFactor); ASSERT_EQ(viewportSize, webViewHelper.webViewImpl()->size()); ASSERT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFactor()); - webViewHelper.webViewImpl()->resize(WebSize(viewportSize.height, viewportSize.width)); + webViewHelper.resize(WebSize(viewportSize.height, viewportSize.width)); float expectedPageScaleFactor = initialPageScaleFactor * (shouldScaleRelativeToViewportWidth ? 1 / aspectRatio : 1); EXPECT_NEAR(expectedPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFactor(), 0.05f); EXPECT_EQ(WebSize(), webViewHelper.webViewImpl()->mainFrame()->scrollOffset()); @@ -2306,15 +2285,15 @@ protected: // Resizing just the height should not affect pageScaleFactor or scrollOffset. { - webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, viewportSize.height)); + webViewHelper.resize(WebSize(viewportSize.width, viewportSize.height)); webViewHelper.webViewImpl()->setPageScaleFactor(initialPageScaleFactor); webViewHelper.webViewImpl()->mainFrame()->setScrollOffset(scrollOffset); webViewHelper.webViewImpl()->updateAllLifecyclePhases(); const WebSize expectedScrollOffset = webViewHelper.webViewImpl()->mainFrame()->scrollOffset(); - webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, viewportSize.height * 0.8f)); + webViewHelper.resize(WebSize(viewportSize.width, viewportSize.height * 0.8f)); EXPECT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFactor()); EXPECT_EQ(expectedScrollOffset, webViewHelper.webViewImpl()->mainFrame()->scrollOffset()); - webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, viewportSize.height * 0.8f)); + webViewHelper.resize(WebSize(viewportSize.width, viewportSize.height * 0.8f)); EXPECT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFactor()); EXPECT_EQ(expectedScrollOffset, webViewHelper.webViewImpl()->mainFrame()->scrollOffset()); } @@ -2392,8 +2371,7 @@ TEST_P(ParameterizedWebFrameTest, pageScaleFactorUpdatesScrollbars) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width() - view->visibleContentRect().width()); @@ -2417,7 +2395,7 @@ TEST_P(ParameterizedWebFrameTest, CanOverrideScaleLimits) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0, &client, enableViewportSettings); webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); EXPECT_EQ(2.0f, webViewHelper.webViewImpl()->minimumPageScaleFactor()); EXPECT_EQ(2.0f, webViewHelper.webViewImpl()->maximumPageScaleFactor()); @@ -2451,15 +2429,14 @@ TEST_F(WebFrameTest, updateOverlayScrollbarLayers) FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initialize(true, 0, fakeCompositingWebViewClient.get(), &configueCompositingWebView); - webViewHelper.webView()->resize(WebSize(viewWidth, viewHeight)); + webViewHelper.resize(WebSize(viewWidth, viewHeight)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "large-div.html"); FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); EXPECT_TRUE(view->layoutView()->compositor()->layerForHorizontalScrollbar()); EXPECT_TRUE(view->layoutView()->compositor()->layerForVerticalScrollbar()); - webViewHelper.webView()->resize(WebSize(viewWidth * 10, viewHeight * 10)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewWidth * 10, viewHeight * 10)); EXPECT_FALSE(view->layoutView()->compositor()->layerForHorizontalScrollbar()); EXPECT_FALSE(view->layoutView()->compositor()->layerForVerticalScrollbar()); } @@ -2505,8 +2482,7 @@ TEST_P(ParameterizedWebFrameTest, DivAutoZoomParamsTest) webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); webViewHelper.webView()->setDefaultPageScaleLimits(0.01f, 4); webViewHelper.webView()->setPageScaleFactor(0.5f); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); WebRect wideDiv(200, 100, 400, 150); WebRect tallDiv(200, 300, 400, 800); @@ -2555,7 +2531,7 @@ TEST_P(ParameterizedWebFrameTest, DivAutoZoomWideDivTest) float doubleTapZoomAlreadyLegibleRatio = 1.2f; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test.html", false, 0, 0, configureAndroid); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); webViewHelper.webView()->setPageScaleFactor(1.0f); webViewHelper.webView()->updateAllLifecyclePhases(); @@ -2587,7 +2563,7 @@ TEST_P(ParameterizedWebFrameTest, DivAutoZoomVeryTallTest) int viewportHeight = 1280 / deviceScaleFactor; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "very_tall_div.html", true, 0, 0, configureAndroid); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); webViewHelper.webView()->setPageScaleFactor(1.0f); webViewHelper.webView()->updateAllLifecyclePhases(); @@ -2613,7 +2589,7 @@ TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest) float doubleTapZoomAlreadyLegibleRatio = 1.2f; FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom_test.html", false, 0, 0, configureAndroid); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDefaultPageScaleLimits(0.5f, 4); webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); webViewHelper.webView()->setPageScaleFactor(0.5f); @@ -2662,7 +2638,7 @@ TEST_F(WebFrameTest, DivAutoZoomScaleBoundsTest) float doubleTapZoomAlreadyLegibleRatio = 1.2f; FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto_zoom_test.html", false, 0, 0, configureAndroid); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDeviceScaleFactor(1.5f); webViewHelper.webView()->setMaximumLegibleScale(1.f); webViewHelper.webView()->updateAllLifecyclePhases(); @@ -2725,7 +2701,7 @@ TEST_F(WebFrameTest, DivAutoZoomScaleLegibleScaleTest) float maximumLegibleScaleFactor = 1.13f; FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto_zoom_test.html", false, 0, 0, configureAndroid); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setMaximumLegibleScale(maximumLegibleScaleFactor); webViewHelper.webView()->updateAllLifecyclePhases(); @@ -2804,7 +2780,7 @@ TEST_F(WebFrameTest, DivAutoZoomScaleFontScaleFactorTest) float accessibilityFontScaleFactor = 1.13f; FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto_zoom_test.html", false, 0, 0, configureAndroid); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setMaximumLegibleScale(1.f); webViewHelper.webView()->updateAllLifecyclePhases(); @@ -2917,7 +2893,7 @@ TEST_P(ParameterizedWebFrameTest, DivMultipleTargetZoomMultipleDivsTest) float doubleTapZoomAlreadyLegibleRatio = 1.2f; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom_test.html"); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDefaultPageScaleLimits(0.5f, 4); webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); webViewHelper.webView()->setPageScaleFactor(0.5f); @@ -2956,7 +2932,7 @@ TEST_F(WebFrameTest, DontZoomInOnFocusedInTouchAction) webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); webViewHelper.webViewImpl()->page()->settings().setTextAutosizingEnabled(false); webViewHelper.webViewImpl()->settings()->setAutoZoomFocusedNodeToLegibleScale(true); - webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); float initialScale = webViewHelper.webViewImpl()->pageScaleFactor(); @@ -3000,7 +2976,7 @@ TEST_F(WebFrameTest, DivScrollIntoEditableTest) FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_zoom_into_editable_test.html"); webViewHelper.webViewImpl()->page()->settings().setTextAutosizingEnabled(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 4); webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); @@ -3036,7 +3012,7 @@ TEST_F(WebFrameTest, DivScrollIntoEditableTest) // The edit box is wider than the viewport when legible. viewportWidth = 200; viewportHeight = 150; - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), initialScale); webViewHelper.webViewImpl()->computeScaleAndScrollForFocusedNode(webViewHelper.webViewImpl()->focusedElement(), autoZoomToLegibleScale, scale, scroll, needAnimation); EXPECT_TRUE(needAnimation); @@ -3080,7 +3056,7 @@ TEST_F(WebFrameTest, DivScrollIntoEditablePreservePageScaleTest) FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_zoom_into_editable_test.html"); webViewHelper.webViewImpl()->page()->settings().setTextAutosizingEnabled(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); const WebRect editBoxWithText(200, 200, 250, 20); @@ -3136,7 +3112,7 @@ TEST_F(WebFrameTest, DivScrollIntoEditableTestZoomToLegibleScaleDisabled) FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_zoom_into_editable_test.html"); webViewHelper.webViewImpl()->page()->settings().setTextAutosizingEnabled(false); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 4); webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); @@ -3189,9 +3165,7 @@ TEST_P(ParameterizedWebFrameTest, CharacterIndexAtPointWithPinchZoom) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "sometext.html"); - webViewHelper.webViewImpl()->resize(WebSize(640, 480)); - webViewHelper.webViewImpl()->updateAllLifecyclePhases(); - + webViewHelper.resize(WebSize(640, 480)); webViewHelper.webViewImpl()->setPageScaleFactor(2); webViewHelper.webViewImpl()->setVisualViewportOffset(WebFloatPoint(50, 60)); @@ -3211,7 +3185,7 @@ TEST_P(ParameterizedWebFrameTest, FirstRectForCharacterRangeWithPinchZoom) FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "textbox.html", true); - webViewHelper.webViewImpl()->resize(WebSize(640, 480)); + webViewHelper.resize(WebSize(640, 480)); WebFrame* mainFrame = webViewHelper.webViewImpl()->mainFrame(); mainFrame->executeScript(WebScriptSource("selectRange();")); @@ -3301,7 +3275,7 @@ TEST_F(WebFrameTest, ReloadWithOverrideURLPreservesState) FrameTestHelpers::WebViewHelper webViewHelper; ClearScrollStateOnCommitWebFrameClient client; webViewHelper.initializeAndLoad(m_baseURL + firstURL, true, &client); - webViewHelper.webViewImpl()->resize(WebSize(pageWidth, pageHeight)); + webViewHelper.resize(WebSize(pageWidth, pageHeight)); webViewHelper.webViewImpl()->mainFrame()->setScrollOffset(WebSize(pageWidth / 4, pageHeight / 4)); webViewHelper.webViewImpl()->setPageScaleFactor(pageScaleFactor); @@ -3646,7 +3620,7 @@ TEST_P(ParameterizedWebFrameTest, GetContentAsPlainText) webViewHelper.initializeAndLoad("about:blank", true); // We set the size because it impacts line wrapping, which changes the // resulting text value. - webViewHelper.webView()->resize(WebSize(640, 480)); + webViewHelper.resize(WebSize(640, 480)); WebFrame* frame = webViewHelper.webView()->mainFrame(); // Generate a simple test case. @@ -3766,7 +3740,7 @@ TEST_P(ParameterizedWebFrameTest, FindInPageMatchRects) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); + webViewHelper.resize(WebSize(640, 480)); webViewHelper.webView()->setMaximumLegibleScale(1.f); webViewHelper.webView()->updateAllLifecyclePhases(); runPendingTasks(); @@ -3873,8 +3847,7 @@ TEST_P(ParameterizedWebFrameTest, FindInPageMatchRects) EXPECT_TRUE(webMatchRects[17].y > webMatchRects[18].y); // Resizing should update the rects version. - webViewHelper.webView()->resize(WebSize(800, 600)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(800, 600)); runPendingTasks(); EXPECT_TRUE(mainFrame->findMatchMarkersVersion() != rectsVersion); } @@ -3886,8 +3859,7 @@ TEST_P(ParameterizedWebFrameTest, FindInPageSkipsHiddenFrames) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find_in_hidden_frame.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(640, 480)); runPendingTasks(); static const char* kFindString = "hello"; @@ -3917,8 +3889,7 @@ TEST_P(ParameterizedWebFrameTest, FindOnDetachedFrame) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(640, 480)); runPendingTasks(); static const char* kFindString = "result"; @@ -3956,8 +3927,7 @@ TEST_P(ParameterizedWebFrameTest, FindDetachFrameBeforeScopeStrings) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(640, 480)); runPendingTasks(); static const char* kFindString = "result"; @@ -3995,8 +3965,7 @@ TEST_P(ParameterizedWebFrameTest, FindDetachFrameWhileScopingStrings) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(640, 480)); runPendingTasks(); static const char* kFindString = "result"; @@ -4033,8 +4002,7 @@ TEST_P(ParameterizedWebFrameTest, ResetMatchCount) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find_in_generated_frame.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(640, 480)); runPendingTasks(); static const char* kFindString = "result"; @@ -4064,8 +4032,7 @@ TEST_P(ParameterizedWebFrameTest, SetTickmarks) FindUpdateWebFrameClient client; FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client); - webViewHelper.webView()->resize(WebSize(640, 480)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(640, 480)); runPendingTasks(); static const char* kFindString = "foo"; @@ -4594,7 +4561,7 @@ protected: m_webViewHelper.initialize(true, 0, &m_fakeSelectionWebViewClient); m_webViewHelper.webView()->settings()->setDefaultFontSize(12); m_webViewHelper.webView()->setDefaultPageScaleLimits(1, 1); - m_webViewHelper.webView()->resize(WebSize(640, 480)); + m_webViewHelper.resize(WebSize(640, 480)); } void runTest(const char* testFile) @@ -4707,7 +4674,7 @@ TEST_P(ParameterizedWebFrameTest, CompositedSelectionBoundsCleared) webViewHelper.initialize(true, 0, &fakeSelectionWebViewClient); webViewHelper.webView()->settings()->setDefaultFontSize(12); webViewHelper.webView()->setDefaultPageScaleLimits(1, 1); - webViewHelper.webView()->resize(WebSize(viewWidth, viewHeight)); + webViewHelper.resize(WebSize(viewWidth, viewHeight)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "select_range_basic.html"); // The frame starts with no selection. @@ -4786,8 +4753,7 @@ TEST_P(ParameterizedWebFrameTest, DisambiguationPopup) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); - webViewHelper.webView()->resize(WebSize(1000, 1000)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(1000, 1000)); client.resetTriggered(); webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); @@ -4840,8 +4806,7 @@ TEST_P(ParameterizedWebFrameTest, DisambiguationPopupNoContainer) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "disambiguation_popup_no_container.html", true, 0, &client); - webViewHelper.webView()->resize(WebSize(1000, 1000)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(1000, 1000)); client.resetTriggered(); webViewHelper.webView()->handleInputEvent(fatTap(50, 50)); @@ -4859,8 +4824,7 @@ TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(1000, 1000)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(1000, 1000)); client.resetTriggered(); webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); @@ -4894,8 +4858,7 @@ TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, enableViewportSettings); - webViewHelper.webView()->resize(WebSize(1000, 1000)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(1000, 1000)); client.resetTriggered(); webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); @@ -4933,7 +4896,7 @@ TEST_F(WebFrameTest, DisambiguationPopupVisualViewport) LocalFrame* frame = webViewImpl->mainFrameImpl()->frame(); ASSERT_TRUE(frame); - webViewHelper.webView()->resize(WebSize(100, 200)); + webViewHelper.resize(WebSize(100, 200)); // Scroll main frame to the bottom of the document webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 400)); @@ -4982,8 +4945,7 @@ TEST_P(ParameterizedWebFrameTest, DisambiguationPopupBlacklist) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); // Click somewhere where the popup shouldn't appear. client.resetTriggered(); @@ -5011,8 +4973,7 @@ TEST_P(ParameterizedWebFrameTest, DisambiguationPopupPageScale) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad(m_baseURL + "disambiguation_popup_page_scale.html", true, 0, &client); - webViewHelper.webView()->resize(WebSize(1000, 1000)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(1000, 1000)); client.resetTriggered(); webViewHelper.webView()->handleInputEvent(fatTap(80, 80)); @@ -5667,8 +5628,7 @@ TEST_P(ParameterizedWebFrameTest, CompositorScrollIsUserScrollLongPage) // only becomes available after the load begins. FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, &client); - webViewHelper.webView()->resize(WebSize(1000, 1000)); - webViewHelper.webView()->updateAllLifecyclePhases(); + webViewHelper.resize(WebSize(1000, 1000)); WebLocalFrameImpl* frameImpl = webViewHelper.webViewImpl()->mainFrameImpl(); DocumentLoader::InitialScrollState& initialScrollState = @@ -6265,7 +6225,7 @@ TEST_F(WebFrameTest, overflowHiddenRewrite) FrameTestHelpers::WebViewHelper webViewHelper; webViewHelper.initialize(true, 0, fakeCompositingWebViewClient.get(), &configueCompositingWebView); - webViewHelper.webView()->resize(WebSize(100, 100)); + webViewHelper.resize(WebSize(100, 100)); FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "non-scrollable.html"); PaintLayerCompositor* compositor = webViewHelper.webViewImpl()->compositor(); @@ -6345,7 +6305,7 @@ TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewport.html", true, 0, 0, enableViewportSettings); WebView* webView = webViewHelper.webView(); - webView->resize(WebSize(100, 100)); + webViewHelper.resize(WebSize(100, 100)); Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->document(); Element* bottomFixed = document->getElementById("bottom-fixed"); @@ -6354,12 +6314,12 @@ TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) Element* leftRightFixed = document->getElementById("left-right-fixed"); // The layout viewport will hit the min-scale limit of 0.25, so it'll be 400x800. - webView->resize(WebSize(100, 200)); + webViewHelper.resize(WebSize(100, 200)); EXPECT_EQ(800, bottomFixed->offsetTop() + bottomFixed->offsetHeight()); EXPECT_EQ(800, topBottomFixed->offsetHeight()); // Now the layout viewport hits the content width limit of 500px so it'll be 500x500. - webView->resize(WebSize(200, 200)); + webViewHelper.resize(WebSize(200, 200)); EXPECT_EQ(500, rightFixed->offsetLeft() + rightFixed->offsetWidth()); EXPECT_EQ(500, leftRightFixed->offsetWidth()); } @@ -6368,7 +6328,7 @@ TEST_P(ParameterizedWebFrameTest, FrameViewMoveWithSetFrameRect) { FrameTestHelpers::WebViewHelper webViewHelper(this); webViewHelper.initializeAndLoad("about:blank"); - webViewHelper.webViewImpl()->resize(WebSize(200, 200)); + webViewHelper.resize(WebSize(200, 200)); webViewHelper.webViewImpl()->updateAllLifecyclePhases(); FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); @@ -6389,7 +6349,7 @@ TEST_F(WebFrameTest, FrameViewScrollAccountsForTopControls) float topControlsHeight = 40; webView->setTopControlsHeight(topControlsHeight, false); - webView->resize(WebSize(100, 100)); + webViewHelper.resize(WebSize(100, 100)); webView->setPageScaleFactor(2.0f); webView->updateAllLifecyclePhases(); @@ -6415,7 +6375,7 @@ TEST_F(WebFrameTest, FrameViewScrollAccountsForTopControls) // the CC webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 30.0f / topControlsHeight); webView->setTopControlsHeight(40.0f, true); - webView->resize(WebSize(100, 60)); + webViewHelper.resize(WebSize(100, 60)); webView->updateAllLifecyclePhases(); EXPECT_POINT_EQ(IntPoint(0, 1940), frameView->maximumScrollPosition()); @@ -6426,7 +6386,7 @@ TEST_F(WebFrameTest, FrameViewScrollAccountsForTopControls) // Reset to original state: 100px widget height, top controls fully hidden. webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, -30.0f / topControlsHeight); webView->setTopControlsHeight(topControlsHeight, false); - webView->resize(WebSize(100, 100)); + webViewHelper.resize(WebSize(100, 100)); webView->updateAllLifecyclePhases(); EXPECT_POINT_EQ(IntPoint(0, 1900), frameView->maximumScrollPosition()); @@ -6456,7 +6416,7 @@ TEST_F(WebFrameTest, MaximumScrollPositionCanBeNegative) webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); webViewHelper.webView()->settings()->setLoadWithOverviewMode(true); webViewHelper.webView()->settings()->setUseWideViewport(true); - webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewHelper.webView()->updateAllLifecyclePhases(); FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); @@ -6473,7 +6433,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenLayerSize) client.m_screenInfo.rect.width = viewportWidth; client.m_screenInfo.rect.height = viewportHeight; WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "fullscreen_div.html", true, 0, &client, configureAndroid); - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); Document* document = toWebLocalFrameImpl(webViewImpl->mainFrame())->frame()->document(); @@ -6492,7 +6452,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenLayerSize) // Verify it's updated after a device rotation. client.m_screenInfo.rect.width = viewportHeight; client.m_screenInfo.rect.height = viewportWidth; - webViewImpl->resize(WebSize(viewportHeight, viewportWidth)); + webViewHelper.resize(WebSize(viewportHeight, viewportWidth)); webViewImpl->updateAllLifecyclePhases(); EXPECT_EQ(viewportHeight, fullscreenLayoutObject->logicalWidth().toInt()); EXPECT_EQ(viewportWidth, fullscreenLayoutObject->logicalHeight().toInt()); @@ -6506,7 +6466,7 @@ TEST_F(WebFrameTest, FullscreenLayerNonScrollable) int viewportWidth = 640; int viewportHeight = 480; WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "fullscreen_div.html", true, 0, &client, configureAndroid); - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); Document* document = toWebLocalFrameImpl(webViewImpl->mainFrame())->frame()->document(); @@ -6544,7 +6504,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenMainFrame) int viewportWidth = 640; int viewportHeight = 480; WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "fullscreen_div.html", true, 0, &client, configureAndroid); - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); Document* document = toWebLocalFrameImpl(webViewImpl->mainFrame())->frame()->document(); @@ -6561,7 +6521,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenMainFrame) ASSERT_TRUE(webScrollLayer->userScrollableVertical()); // Verify the main frame still behaves correctly after a resize. - webViewImpl->resize(WebSize(viewportHeight, viewportWidth)); + webViewHelper.resize(WebSize(viewportHeight, viewportWidth)); ASSERT_TRUE(webScrollLayer->scrollable()); ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); ASSERT_TRUE(webScrollLayer->userScrollableVertical()); @@ -6578,7 +6538,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenSubframe) int viewportHeight = 480; client.m_screenInfo.rect.width = viewportWidth; client.m_screenInfo.rect.height = viewportHeight; - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); Document* document = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()->firstChild())->frame()->document(); @@ -6596,7 +6556,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenSubframe) // Verify it's updated after a device rotation. client.m_screenInfo.rect.width = viewportHeight; client.m_screenInfo.rect.height = viewportWidth; - webViewImpl->resize(WebSize(viewportHeight, viewportWidth)); + webViewHelper.resize(WebSize(viewportHeight, viewportWidth)); webViewImpl->updateAllLifecyclePhases(); EXPECT_EQ(viewportHeight, fullscreenLayoutObject->logicalWidth().toInt()); EXPECT_EQ(viewportWidth, fullscreenLayoutObject->logicalHeight().toInt()); @@ -6612,7 +6572,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenWithTinyViewport) int viewportHeight = 640; client.m_screenInfo.rect.width = viewportWidth; client.m_screenInfo.rect.height = viewportHeight; - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); LayoutView* layoutView = webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutView(); @@ -6652,7 +6612,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenResizeWithTinyViewport) int viewportHeight = 640; client.m_screenInfo.rect.width = viewportWidth; client.m_screenInfo.rect.height = viewportHeight; - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); LayoutView* layoutView = webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutView(); @@ -6671,7 +6631,7 @@ TEST_P(ParameterizedWebFrameTest, FullscreenResizeWithTinyViewport) viewportHeight = 384; client.m_screenInfo.rect.width = viewportWidth; client.m_screenInfo.rect.height = viewportHeight; - webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); + webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); webViewImpl->updateAllLifecyclePhases(); EXPECT_EQ(640, layoutView->logicalWidth().floor()); EXPECT_EQ(384, layoutView->logicalHeight().floor()); @@ -6695,7 +6655,7 @@ TEST_P(ParameterizedWebFrameTest, LayoutBlockPercentHeightDescendants) webViewHelper.initializeAndLoad(m_baseURL + "percent-height-descendants.html"); WebView* webView = webViewHelper.webView(); - webView->resize(WebSize(800, 800)); + webViewHelper.resize(WebSize(800, 800)); webView->updateAllLifecyclePhases(); Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->document(); @@ -7748,7 +7708,6 @@ TEST_P(ParameterizedWebFrameTest, FrameWidgetTest) WebFrameWidget* widget = WebFrameWidget::create(&childViewClient, childFrame); view->resize(WebSize(1000, 1000)); - view->updateAllLifecyclePhases(); widget->handleInputEvent(fatTap(20, 20)); EXPECT_TRUE(childViewClient.didHandleGestureEvent()); @@ -7877,8 +7836,7 @@ protected: { m_client.m_screenInfo.rect = WebRect(0, 0, size.width, size.height); m_client.m_screenInfo.availableRect = m_client.m_screenInfo.rect; - m_webViewHelper.webView()->resize(size); - m_webViewHelper.webView()->updateAllLifecyclePhases(); + m_webViewHelper.resize(size); EXPECT_EQ(expectedSize, dumpSize("test")); } diff --git a/third_party/WebKit/public/web/WebWidgetClient.h b/third_party/WebKit/public/web/WebWidgetClient.h index fa5949d..eb6fe66 100644 --- a/third_party/WebKit/public/web/WebWidgetClient.h +++ b/third_party/WebKit/public/web/WebWidgetClient.h @@ -59,13 +59,6 @@ public: // Called when the Widget has changed size as a result of an auto-resize. virtual void didAutoResize(const WebSize& newSize) { } - // Called when the Widget has a new layout size. As a result of - // setting the new layout size, the frame for this widget has possibly - // been marked as needing layout. Widgets must mark their containers - // for layout when the plguin container controls widget layout, otherwise - // the frame layout will not occur. - virtual void didUpdateLayoutSize(const WebSize& newSize) { } - // Attempt to initialize compositing for this widget. If this is successful, // layerTreeView() will return a valid WebLayerTreeView. virtual void initializeLayerTreeView() { } |