Chromium Code Reviews| Index: third_party/WebKit/Source/web/tests/WebViewTest.cpp |
| diff --git a/third_party/WebKit/Source/web/tests/WebViewTest.cpp b/third_party/WebKit/Source/web/tests/WebViewTest.cpp |
| index 6437329f7f06772f2324d1d93a137b3d4f4bc0bf..ed6a2eae15a0e18c8c0eba543e8a27344813f747 100644 |
| --- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp |
| +++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp |
| @@ -50,6 +50,7 @@ |
| #include "core/loader/DocumentLoader.h" |
| #include "core/loader/FrameLoadRequest.h" |
| #include "core/page/Page.h" |
| +#include "core/page/ScopedPageLoadDeferrer.h" |
| #include "core/paint/PaintLayer.h" |
| #include "core/paint/PaintLayerPainter.h" |
| #include "core/timing/DOMWindowPerformance.h" |
| @@ -3216,4 +3217,42 @@ TEST_F(WebViewTest, PasswordFieldEditingIsUserGesture) |
| frame->setAutofillClient(0); |
| } |
| +// Verify that a WebView created with a ScopedPageLoadDeferrer already on the |
| +// stack defers its loads. |
| +TEST_F(WebViewTest, CreatedDuringLoadDeferral) |
| +{ |
| + { |
| + WebViewImpl* webView = m_webViewHelper.initialize(); |
| + EXPECT_FALSE(webView->page()->defersLoading()); |
| + } |
| + |
| + { |
| + ScopedPageLoadDeferrer deferrer; |
| + WebViewImpl* webView = m_webViewHelper.initialize(); |
| + EXPECT_TRUE(webView->page()->defersLoading()); |
| + } |
| +} |
| + |
| +// Verify that page loads are deferred until all ScopedPageLoadDeferrers are |
| +// destroyed. |
| +TEST_F(WebViewTest, NestedLoadDeferrals) |
|
dcheng
2016/07/25 06:48:18
I haven't figured out why, but this test (unexpect
|
| +{ |
| + WebViewImpl* webView = m_webViewHelper.initialize(); |
| + EXPECT_FALSE(webView->page()->defersLoading()); |
| + |
| + { |
| + ScopedPageLoadDeferrer deferrer; |
| + EXPECT_TRUE(webView->page()->defersLoading()); |
| + |
| + { |
| + ScopedPageLoadDeferrer deferrer2; |
| + EXPECT_TRUE(webView->page()->defersLoading()); |
| + } |
| + |
| + EXPECT_TRUE(webView->page()->defersLoading()); |
| + } |
| + |
| + EXPECT_FALSE(webView->page()->defersLoading()); |
| +} |
| + |
| } // namespace blink |