OLD | NEW |
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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 #include "core/layout/HitTestResult.h" | 67 #include "core/layout/HitTestResult.h" |
68 #include "core/layout/LayoutFullScreen.h" | 68 #include "core/layout/LayoutFullScreen.h" |
69 #include "core/layout/api/LayoutViewItem.h" | 69 #include "core/layout/api/LayoutViewItem.h" |
70 #include "core/layout/compositing/PaintLayerCompositor.h" | 70 #include "core/layout/compositing/PaintLayerCompositor.h" |
71 #include "core/loader/DocumentLoader.h" | 71 #include "core/loader/DocumentLoader.h" |
72 #include "core/loader/DocumentThreadableLoader.h" | 72 #include "core/loader/DocumentThreadableLoader.h" |
73 #include "core/loader/DocumentThreadableLoaderClient.h" | 73 #include "core/loader/DocumentThreadableLoaderClient.h" |
74 #include "core/loader/FrameLoadRequest.h" | 74 #include "core/loader/FrameLoadRequest.h" |
75 #include "core/loader/ThreadableLoader.h" | 75 #include "core/loader/ThreadableLoader.h" |
76 #include "core/page/Page.h" | 76 #include "core/page/Page.h" |
77 #include "core/page/ScopedPageLoadDeferrer.h" | 77 #include "core/page/ScopedPageSuspender.h" |
78 #include "core/paint/PaintLayer.h" | 78 #include "core/paint/PaintLayer.h" |
79 #include "core/testing/NullExecutionContext.h" | 79 #include "core/testing/NullExecutionContext.h" |
80 #include "modules/mediastream/MediaStream.h" | 80 #include "modules/mediastream/MediaStream.h" |
81 #include "modules/mediastream/MediaStreamRegistry.h" | 81 #include "modules/mediastream/MediaStreamRegistry.h" |
82 #include "platform/Cursor.h" | 82 #include "platform/Cursor.h" |
83 #include "platform/DragImage.h" | 83 #include "platform/DragImage.h" |
84 #include "platform/PlatformMouseEvent.h" | 84 #include "platform/PlatformMouseEvent.h" |
85 #include "platform/PlatformResourceLoader.h" | 85 #include "platform/PlatformResourceLoader.h" |
86 #include "platform/RuntimeEnabledFeatures.h" | 86 #include "platform/RuntimeEnabledFeatures.h" |
87 #include "platform/UserGestureIndicator.h" | 87 #include "platform/UserGestureIndicator.h" |
(...skipping 9359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9447 // Load a page with a child frame in the new root to make sure this doesn't | 9447 // Load a page with a child frame in the new root to make sure this doesn't |
9448 // crash when the child frame invokes setCoreFrame. | 9448 // crash when the child frame invokes setCoreFrame. |
9449 registerMockedHttpURLLoad("single_iframe.html"); | 9449 registerMockedHttpURLLoad("single_iframe.html"); |
9450 registerMockedHttpURLLoad("visible_iframe.html"); | 9450 registerMockedHttpURLLoad("visible_iframe.html"); |
9451 FrameTestHelpers::loadFrame(localRoot, m_baseURL + "single_iframe.html"); | 9451 FrameTestHelpers::loadFrame(localRoot, m_baseURL + "single_iframe.html"); |
9452 | 9452 |
9453 view->close(); | 9453 view->close(); |
9454 } | 9454 } |
9455 | 9455 |
9456 // See https://crbug.com/628942. | 9456 // See https://crbug.com/628942. |
9457 TEST_P(ParameterizedWebFrameTest, DeferredPageLoadWithRemoteMainFrame) { | 9457 TEST_P(ParameterizedWebFrameTest, SuspendedPageLoadWithRemoteMainFrame) { |
9458 // Prepare a page with a remote main frame. | 9458 // Prepare a page with a remote main frame. |
9459 FrameTestHelpers::TestWebViewClient viewClient; | 9459 FrameTestHelpers::TestWebViewClient viewClient; |
9460 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 9460 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
9461 WebView* view = WebView::create(&viewClient, WebPageVisibilityStateVisible); | 9461 WebView* view = WebView::create(&viewClient, WebPageVisibilityStateVisible); |
9462 view->setMainFrame(remoteClient.frame()); | 9462 view->setMainFrame(remoteClient.frame()); |
9463 WebRemoteFrame* remoteRoot = view->mainFrame()->toWebRemoteFrame(); | 9463 WebRemoteFrame* remoteRoot = view->mainFrame()->toWebRemoteFrame(); |
9464 remoteRoot->setReplicatedOrigin(SecurityOrigin::createUnique()); | 9464 remoteRoot->setReplicatedOrigin(SecurityOrigin::createUnique()); |
9465 | 9465 |
9466 // Check that ScopedPageLoadDeferrer properly triggers deferred loading for | 9466 // Check that ScopedPageSuspender properly triggers deferred loading for |
9467 // the current Page. | 9467 // the current Page. |
9468 Page* page = remoteRoot->toImplBase()->frame()->page(); | 9468 Page* page = remoteRoot->toImplBase()->frame()->page(); |
9469 EXPECT_FALSE(page->defersLoading()); | 9469 EXPECT_FALSE(page->suspended()); |
9470 { | 9470 { |
9471 ScopedPageLoadDeferrer deferrer; | 9471 ScopedPageSuspender suspender; |
9472 EXPECT_TRUE(page->defersLoading()); | 9472 EXPECT_TRUE(page->suspended()); |
9473 } | 9473 } |
9474 EXPECT_FALSE(page->defersLoading()); | 9474 EXPECT_FALSE(page->suspended()); |
9475 | 9475 |
9476 // Repeat this for a page with a local child frame, and ensure that the | 9476 // Repeat this for a page with a local child frame, and ensure that the |
9477 // child frame's loads are also deferred. | 9477 // child frame's loads are also suspended. |
9478 WebLocalFrame* webLocalChild = FrameTestHelpers::createLocalChild(remoteRoot); | 9478 WebLocalFrame* webLocalChild = FrameTestHelpers::createLocalChild(remoteRoot); |
9479 registerMockedHttpURLLoad("foo.html"); | 9479 registerMockedHttpURLLoad("foo.html"); |
9480 FrameTestHelpers::loadFrame(webLocalChild, m_baseURL + "foo.html"); | 9480 FrameTestHelpers::loadFrame(webLocalChild, m_baseURL + "foo.html"); |
9481 LocalFrame* localChild = toWebLocalFrameImpl(webLocalChild)->frame(); | 9481 LocalFrame* localChild = toWebLocalFrameImpl(webLocalChild)->frame(); |
9482 EXPECT_FALSE(page->defersLoading()); | 9482 EXPECT_FALSE(page->suspended()); |
9483 EXPECT_FALSE(localChild->document()->fetcher()->defersLoading()); | 9483 EXPECT_FALSE(localChild->document()->fetcher()->defersLoading()); |
9484 { | 9484 { |
9485 ScopedPageLoadDeferrer deferrer; | 9485 ScopedPageSuspender suspender; |
9486 EXPECT_TRUE(page->defersLoading()); | 9486 EXPECT_TRUE(page->suspended()); |
9487 EXPECT_TRUE(localChild->document()->fetcher()->defersLoading()); | 9487 EXPECT_TRUE(localChild->document()->fetcher()->defersLoading()); |
9488 } | 9488 } |
9489 EXPECT_FALSE(page->defersLoading()); | 9489 EXPECT_FALSE(page->suspended()); |
9490 EXPECT_FALSE(localChild->document()->fetcher()->defersLoading()); | 9490 EXPECT_FALSE(localChild->document()->fetcher()->defersLoading()); |
9491 | 9491 |
9492 view->close(); | 9492 view->close(); |
9493 } | 9493 } |
9494 | 9494 |
9495 class OverscrollWebViewClient : public FrameTestHelpers::TestWebViewClient { | 9495 class OverscrollWebViewClient : public FrameTestHelpers::TestWebViewClient { |
9496 public: | 9496 public: |
9497 MOCK_METHOD4(didOverscroll, | 9497 MOCK_METHOD4(didOverscroll, |
9498 void(const WebFloatSize&, | 9498 void(const WebFloatSize&, |
9499 const WebFloatSize&, | 9499 const WebFloatSize&, |
(...skipping 1296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10796 | 10796 |
10797 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); | 10797 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); |
10798 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); | 10798 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); |
10799 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); | 10799 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); |
10800 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); | 10800 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); |
10801 | 10801 |
10802 webViewHelper.reset(); | 10802 webViewHelper.reset(); |
10803 } | 10803 } |
10804 | 10804 |
10805 } // namespace blink | 10805 } // namespace blink |
OLD | NEW |