| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/loader/ThreadableLoader.h" | 5 #include "core/loader/ThreadableLoader.h" |
| 6 | 6 |
| 7 #include "core/dom/CrossThreadTask.h" | 7 #include "core/dom/CrossThreadTask.h" |
| 8 #include "core/fetch/MemoryCache.h" | 8 #include "core/fetch/MemoryCache.h" |
| 9 #include "core/fetch/ResourceLoaderOptions.h" | 9 #include "core/fetch/ResourceLoaderOptions.h" |
| 10 #include "core/loader/DocumentThreadableLoader.h" | 10 #include "core/loader/DocumentThreadableLoader.h" |
| (...skipping 835 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 callCheckpoint(1); | 846 callCheckpoint(1); |
| 847 | 847 |
| 848 EXPECT_CALL(checkpoint(), Call(2)); | 848 EXPECT_CALL(checkpoint(), Call(2)); |
| 849 EXPECT_CALL(*client(), didFailRedirectCheck()).WillOnce(InvokeWithoutArgs(th
is, &ThreadableLoaderTest::clearLoader)); | 849 EXPECT_CALL(*client(), didFailRedirectCheck()).WillOnce(InvokeWithoutArgs(th
is, &ThreadableLoaderTest::clearLoader)); |
| 850 | 850 |
| 851 startLoader(redirectLoopURL()); | 851 startLoader(redirectLoopURL()); |
| 852 callCheckpoint(2); | 852 callCheckpoint(2); |
| 853 serveRequests(); | 853 serveRequests(); |
| 854 } | 854 } |
| 855 | 855 |
| 856 // This test case checks blink doesn't crash even when the response arrives |
| 857 // synchronously. |
| 858 TEST_P(ThreadableLoaderTest, GetResponseSynchronously) |
| 859 { |
| 860 InSequence s; |
| 861 EXPECT_CALL(checkpoint(), Call(1)); |
| 862 createLoader(UseAccessControl); |
| 863 callCheckpoint(1); |
| 864 |
| 865 EXPECT_CALL(*client(), didFailAccessControlCheck(_)); |
| 866 EXPECT_CALL(checkpoint(), Call(2)); |
| 867 |
| 868 // Currently didFailAccessControlCheck is dispatched synchronously. This |
| 869 // test is not saying that didFailAccessControlCheck should be dispatched |
| 870 // synchronously, but is saying that even when a response is served |
| 871 // synchronously it should not lead to a crash. |
| 872 startLoader(KURL(KURL(), "about:blank")); |
| 873 callCheckpoint(2); |
| 874 } |
| 875 |
| 856 } // namespace | 876 } // namespace |
| 857 | 877 |
| 858 } // namespace blink | 878 } // namespace blink |
| OLD | NEW |