| 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;
|
|
|