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 b9c613ee0b6c6a411842ea481647d7b798df62b3..805e58a2c7c7b286e61cb61b70cf91678a445134 100644 |
--- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp |
+++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp |
@@ -2994,249 +2994,6 @@ TEST_F(WebViewTest, ShowUnhandledTapUIIfNeededWithPreventDefault) |
m_webViewHelper.reset(); // Remove dependency on locally scoped client. |
} |
-// Test 3 frames, all on the same layer (i.e. [1 2 3]) |
-TEST_F(WebViewTest, TestPushFrameTimingRequestRectsToGraphicsLayer1) |
-{ |
- std::string url = m_baseURL + "frame_timing_inner.html?100px:100px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?200px:200px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?300px:300px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_1.html"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_1.html"); |
- |
- WebView* webView = m_webViewHelper.initialize(true); |
- loadFrame(webView->mainFrame(), url); |
- |
- webView->resize(WebSize(800, 600)); |
- webView->updateAllLifecyclePhases(); |
- |
- WebViewImpl* webViewImpl = toWebViewImpl(webView); |
- |
- Frame* frame = webViewImpl->page()->mainFrame(); |
- int64_t id = frame->frameID(); |
- |
- EXPECT_EQ(3u, frame->tree().childCount()); |
- |
- WebVector<std::pair<int64_t, WebRect>> frameTimingRequests = |
- toLocalFrame(frame)->document() |
- ->layoutView()->enclosingLayer() |
- ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries() |
- ->graphicsLayerBacking()->platformLayer()->frameTimingRequests(); |
- |
- EXPECT_EQ(4u, frameTimingRequests.size()); |
- EXPECT_EQ(id + 0, frameTimingRequests[0].first); |
- EXPECT_EQ(WebRect(0, 0, 800, 600), frameTimingRequests[0].second); |
- EXPECT_EQ(id + 1, frameTimingRequests[1].first); |
- EXPECT_EQ(WebRect(2, 2, 100, 100), frameTimingRequests[1].second); |
- EXPECT_EQ(id + 2, frameTimingRequests[2].first); |
- EXPECT_EQ(WebRect(106, 2, 200, 200), frameTimingRequests[2].second); |
- EXPECT_EQ(id + 3, frameTimingRequests[3].first); |
- EXPECT_EQ(WebRect(310, 2, 300, 300), frameTimingRequests[3].second); |
-} |
- |
-// Test 3 frames, where frame 2 is on a different GraphicsLayer (i.e. [1 2' 3]) |
-TEST_F(WebViewTest, TestPushFrameTimingRequestRectsToGraphicsLayer2) |
-{ |
- std::string url = m_baseURL + "frame_timing_inner.html?100px:100px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?200px:200px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?300px:300px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_2.html"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_2.html"); |
- |
- WebView* webView = m_webViewHelper.initialize(true); |
- loadFrame(webView->mainFrame(), url); |
- |
- webView->resize(WebSize(800, 600)); |
- webView->updateAllLifecyclePhases(); |
- |
- WebViewImpl* webViewImpl = toWebViewImpl(webView); |
- |
- Frame* frame = webViewImpl->page()->mainFrame(); |
- int64_t id = frame->frameID(); |
- |
- EXPECT_EQ(3u, frame->tree().childCount()); |
- |
- const WebLayer* graphicsLayer1 = |
- toLocalFrame(webViewImpl->page()->mainFrame())->document() |
- ->layoutView()->enclosingLayer() |
- ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries() |
- ->graphicsLayerBacking()->platformLayer(); |
- WebVector<std::pair<int64_t, WebRect>> frameTimingRequests1 = |
- graphicsLayer1->frameTimingRequests(); |
- |
- EXPECT_EQ(3u, frameTimingRequests1.size()); |
- EXPECT_EQ(id + 0, frameTimingRequests1[0].first); |
- EXPECT_EQ(WebRect(0, 0, 800, 600), frameTimingRequests1[0].second); |
- EXPECT_EQ(id + 1, frameTimingRequests1[1].first); |
- EXPECT_EQ(WebRect(2, 2, 100, 100), frameTimingRequests1[1].second); |
- EXPECT_EQ(id + 3, frameTimingRequests1[2].first); |
- EXPECT_EQ(WebRect(310, 2, 300, 300), frameTimingRequests1[2].second); |
- |
- const WebLayer* graphicsLayer2 = nullptr; |
- for (Frame* frame = webViewImpl->page()->mainFrame(); frame; |
- frame = frame->tree().traverseNext()) { |
- graphicsLayer2 = toLocalFrame(frame)->document()->layoutView() |
- ->enclosingLayer() |
- ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries() |
- ->graphicsLayerBacking()->platformLayer(); |
- if (graphicsLayer2 != graphicsLayer1) |
- break; |
- } |
- WebVector<std::pair<int64_t, WebRect>> frameTimingRequests2 = |
- graphicsLayer2->frameTimingRequests(); |
- EXPECT_EQ(1u, frameTimingRequests2.size()); |
- EXPECT_EQ(id + 2, frameTimingRequests2[0].first); |
- EXPECT_EQ(WebRect(2, 2, 200, 200), frameTimingRequests2[0].second); |
-} |
- |
- |
-// Test nested frames (i.e. [1 2'[4 5'] 3]) |
-TEST_F(WebViewTest, TestPushFrameTimingRequestRectsToGraphicsLayer3) |
-{ |
- std::string url = m_baseURL + "frame_timing_inner.html?100px:100px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?200px:200px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?300px:300px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_b.html"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_b.html"); |
- url = m_baseURL + "frame_timing_3.html"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_3.html"); |
- |
- WebView* webView = m_webViewHelper.initialize(true); |
- loadFrame(webView->mainFrame(), url); |
- |
- webView->resize(WebSize(800, 600)); |
- webView->updateAllLifecyclePhases(); |
- |
- WebViewImpl* webViewImpl = toWebViewImpl(webView); |
- |
- Frame* frame = webViewImpl->page()->mainFrame(); |
- int64_t id = frame->frameID(); |
- |
- EXPECT_EQ(3u, frame->tree().childCount()); |
- |
- const WebLayer* graphicsLayer1 = |
- toLocalFrame(webViewImpl->page()->mainFrame())->document() |
- ->layoutView()->enclosingLayer() |
- ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries() |
- ->graphicsLayerBacking()->platformLayer(); |
- WebVector<std::pair<int64_t, WebRect>> frameTimingRequests1 = |
- graphicsLayer1->frameTimingRequests(); |
- |
- EXPECT_EQ(3u, frameTimingRequests1.size()); |
- EXPECT_EQ(id + 0, frameTimingRequests1[0].first); |
- EXPECT_EQ(WebRect(0, 0, 800, 600), frameTimingRequests1[0].second); |
- EXPECT_EQ(WebRect(2, 2, 100, 100), frameTimingRequests1[1].second); |
- EXPECT_EQ(WebRect(410, 2, 200, 200), frameTimingRequests1[2].second); |
- |
- const WebLayer* graphicsLayer2 = nullptr; |
- for (Frame* frame = webViewImpl->page()->mainFrame(); frame; |
- frame = frame->tree().traverseNext()) { |
- graphicsLayer2 = toLocalFrame(frame)->document()->layoutView() |
- ->enclosingLayer() |
- ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries() |
- ->graphicsLayerBacking()->platformLayer(); |
- if (graphicsLayer2 != graphicsLayer1) |
- break; |
- } |
- WebVector<std::pair<int64_t, WebRect>> frameTimingRequests2 = |
- graphicsLayer2->frameTimingRequests(); |
- EXPECT_EQ(2u, frameTimingRequests2.size()); |
- EXPECT_EQ(WebRect(0, 0, 300, 300), frameTimingRequests2[0].second); |
- EXPECT_EQ(WebRect(2, 2, 100, 100), frameTimingRequests2[1].second); |
- |
- const WebLayer* graphicsLayer3 = nullptr; |
- for (Frame* frame = webViewImpl->page()->mainFrame(); frame; |
- frame = frame->tree().traverseNext()) { |
- graphicsLayer3 = toLocalFrame(frame)->document()->layoutView() |
- ->enclosingLayer() |
- ->enclosingLayerForPaintInvalidationCrossingFrameBoundaries() |
- ->graphicsLayerBacking()->platformLayer(); |
- if (graphicsLayer3 != graphicsLayer1 && graphicsLayer3 != graphicsLayer2) |
- break; |
- } |
- WebVector<std::pair<int64_t, WebRect>> frameTimingRequests3 = |
- graphicsLayer3->frameTimingRequests(); |
- EXPECT_EQ(1u, frameTimingRequests3.size()); |
- EXPECT_EQ(WebRect(2, 2, 100, 100), frameTimingRequests3[0].second); |
-} |
- |
-// Test 3 frames, all on the same layer (i.e. [1 2 3]) |
-// Fails on android, see crbug.com/488381. |
-#if OS(ANDROID) |
-TEST_F(WebViewTest, DISABLED_TestRecordFrameTimingEvents) |
-#else |
-TEST_F(WebViewTest, TestRecordFrameTimingEvents) |
-#endif |
-{ |
- std::string url = m_baseURL + "frame_timing_inner.html?100px:100px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?200px:200px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_inner.html?300px:300px"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_inner.html"); |
- url = m_baseURL + "frame_timing_1.html"; |
- registerMockedURLLoad(toKURL(url), "frame_timing_1.html"); |
- |
- WebView* webView = m_webViewHelper.initialize(true); |
- loadFrame(webView->mainFrame(), url); |
- |
- webView->resize(WebSize(800, 600)); |
- webView->updateAllLifecyclePhases(); |
- |
- WebViewImpl* webViewImpl = toWebViewImpl(webView); |
- |
- Frame* frame = webViewImpl->page()->mainFrame(); |
- int64_t id = frame->frameID(); |
- |
- Vector<WebFrameTimingEvent> compositePairs; |
- compositePairs.append(WebFrameTimingEvent(1, 2.0)); |
- compositePairs.append(WebFrameTimingEvent(2, 3.0)); |
- compositePairs.append(WebFrameTimingEvent(3, 4.0)); |
- WebVector<WebFrameTimingEvent> compositeEvents(compositePairs); |
- webViewImpl->recordFrameTimingEvent(WebView::CompositeEvent, id, compositeEvents); |
- PerformanceEntryVector composites = DOMWindowPerformance::performance(*frame->domWindow())->getEntriesByType("composite"); |
- PerformanceEntryVector renders = DOMWindowPerformance::performance(*frame->domWindow())->getEntriesByType("render"); |
- ASSERT_EQ(3ul, composites.size()); |
- ASSERT_EQ(0ul, renders.size()); |
- for (size_t i = 0; i < composites.size(); ++i) { |
- double docTime = frame->domWindow()->document()->loader()->timing().monotonicTimeToZeroBasedDocumentTime(compositePairs[i].startTime) * 1000.0; |
- ASSERT_EQ(docTime, composites[i]->startTime()); |
- } |
- |
- // Skip ahead to subframe 2. |
- frame = frame->tree().traverseNext(); |
- frame = frame->tree().traverseNext(); |
- id += 2; |
- |
- Vector<WebFrameTimingEvent> renderPairs; |
- renderPairs.append(WebFrameTimingEvent(4, 5.0, 6.0)); |
- renderPairs.append(WebFrameTimingEvent(5, 6.0, 7.0)); |
- renderPairs.append(WebFrameTimingEvent(6, 7.0, 8.0)); |
- renderPairs.append(WebFrameTimingEvent(7, 8.0, 9.0)); |
- WebVector<WebFrameTimingEvent> renderEvents(renderPairs); |
- webViewImpl->recordFrameTimingEvent(WebView::RenderEvent, id, renderEvents); |
- composites = DOMWindowPerformance::performance(*frame->domWindow())->getEntriesByType("composite"); |
- renders = DOMWindowPerformance::performance(*frame->domWindow())->getEntriesByType("render"); |
- ASSERT_EQ(0ul, composites.size()); |
- ASSERT_EQ(4ul, renders.size()); |
- for (size_t i = 0; i < renders.size(); ++i) { |
- double docStartTime = frame->domWindow()->document()->loader()->timing().monotonicTimeToZeroBasedDocumentTime(renderPairs[i].startTime) * 1000.0; |
- ASSERT_DOUBLE_EQ(docStartTime, renders[i]->startTime()); |
- double docFinishTime = frame->domWindow()->document()->loader()->timing().monotonicTimeToZeroBasedDocumentTime(renderPairs[i].finishTime) * 1000.0; |
- double docDuration = docFinishTime - docStartTime; |
- ASSERT_DOUBLE_EQ(docDuration, renders[i]->duration()); |
- } |
-} |
- |
- |
TEST_F(WebViewTest, StopLoadingIfJavaScriptURLReturnsNoStringResult) |
{ |
ViewCreatingWebViewClient client; |