| Index: third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp | 
| diff --git a/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp b/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp | 
| index be024f2fb523cc413acef8c9122b23f618c4e551..cb0621674e7d6b4c98fc7bdbd6109de2aae0f925 100644 | 
| --- a/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp | 
| +++ b/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp | 
| @@ -9,6 +9,7 @@ | 
| #include "public/web/WebScriptExecutionCallback.h" | 
| #include "public/web/WebScriptSource.h" | 
| #include "public/web/WebView.h" | 
| +#include "web/tests/sim/SimRequest.h" | 
| #include "web/tests/sim/SimTest.h" | 
|  | 
| namespace blink { | 
| @@ -86,7 +87,7 @@ TEST_F(VirtualTimeTest, SetInterval) | 
| TEST_F(VirtualTimeTest, AllowVirtualTimeToAdvance) | 
| { | 
| webView().scheduler()->enableVirtualTime(); | 
| -    webView().scheduler()->setAllowVirtualTimeToAdvance(false); | 
| +    webView().scheduler()->setVirtualTimePolicy(WebViewScheduler::VirtualTimePolicy::PAUSE); | 
|  | 
| ExecuteJavaScript( | 
| "var run_order = [];" | 
| @@ -99,10 +100,51 @@ TEST_F(VirtualTimeTest, AllowVirtualTimeToAdvance) | 
|  | 
| EXPECT_EQ("", ExecuteJavaScript("run_order.join(', ')")); | 
|  | 
| -    webView().scheduler()->setAllowVirtualTimeToAdvance(true); | 
| +    webView().scheduler()->setVirtualTimePolicy(WebViewScheduler::VirtualTimePolicy::ADVANCE); | 
| testing::runPendingTasks(); | 
|  | 
| EXPECT_EQ("c, b, a", ExecuteJavaScript("run_order.join(', ')")); | 
| } | 
|  | 
| +TEST_F(VirtualTimeTest, VirtualTimeNotAllowedToAdvanceWhileResourcesLoading) | 
| +{ | 
| +    webView().scheduler()->enableVirtualTime(); | 
| +    webView().scheduler()->setVirtualTimePolicy(WebViewScheduler::VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING); | 
| + | 
| +    EXPECT_TRUE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    SimRequest mainResource("https://example.com/test.html", "text/html"); | 
| +    SimRequest cssResource("https://example.com/test.css", "text/css"); | 
| + | 
| +    // Not loading, virtual time should be able to advance. | 
| +    EXPECT_TRUE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    // Loading, virtual time should not advance. | 
| +    loadURL("https://example.com/test.html"); | 
| +    EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    mainResource.start(); | 
| + | 
| +    // Still Loading, virtual time should not advance. | 
| +    mainResource.write("<!DOCTYPE html><link rel=stylesheet href=test.css>"); | 
| +    EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    // Still Loading, virtual time should not advance. | 
| +    cssResource.start(); | 
| +    cssResource.write("a { color: red; }"); | 
| +    EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    // Still Loading, virtual time should not advance. | 
| +    cssResource.finish(); | 
| +    EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    // Still Loading, virtual time should not advance. | 
| +    mainResource.write("<body>"); | 
| +    EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| + | 
| +    // Finished loading, virtual time should be able to advance. | 
| +    mainResource.finish(); | 
| +    EXPECT_TRUE(webView().scheduler()->virtualTimeAllowedToAdvance()); | 
| +} | 
| + | 
| } // namespace blink | 
|  |