chromiumembedded / cef

Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
https://bitbucket.org/chromiumembedded/cef/
Other
3.37k stars 467 forks source link

tests: Fix flaky OSRTest.Popup* #3832

Open magreenblatt opened 4 days ago

magreenblatt commented 4 days ago

To Reproduce Steps to reproduce the behavior:

  1. Run ceftests --gtest_filter=OSRTest.Popup*

Expected behavior Tests should succeed. Instead, tests fail. Example failures on MacOS:

[ RUN      ] OSRTest.PopupPaint
../../cef/tests/ceftests/os_rendering_unittest.cc:847: Failure
Expected equality of these values:
  expanded_select_rect.height
    Which is: 334
  height
    Which is: 408

[14426:25091:1113/171527.878882:FATAL:ukm_manager.cc(221)] Check failed: !dispatch_timestamp.is_null(). 
0   Chromium Embedded Framework         0x00000003cbdf535c base::debug::CollectStackTrace(base::span<void const*, 18446744073709551615ul, void const**>) + 84
1   Chromium Embedded Framework         0x00000003cbdc476c base::debug::StackTrace::StackTrace(unsigned long) + 156
2   Chromium Embedded Framework         0x00000003cbdc4814 base::debug::StackTrace::StackTrace(unsigned long) + 36
3   Chromium Embedded Framework         0x00000003cbdc47e0 base::debug::StackTrace::StackTrace() + 40
4   Chromium Embedded Framework         0x00000003cbb08814 logging::LogMessage::Flush() + 196
5   Chromium Embedded Framework         0x00000003cbb08734 logging::LogMessage::~LogMessage() + 44
6   Chromium Embedded Framework         0x00000003cbac7b5c logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() + 72
7   Chromium Embedded Framework         0x00000003cbac7ad4 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() + 28
8   Chromium Embedded Framework         0x00000003cbac7b00 logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() + 28
9   Chromium Embedded Framework         0x00000003cbac7f0c std::__Cr::default_delete<logging::LogMessage>::operator()(logging::LogMessage*) const + 52
10  Chromium Embedded Framework         0x00000003cbac7184 std::__Cr::unique_ptr<logging::LogMessage, std::__Cr::default_delete<logging::LogMessage>>::reset(logging::LogMessage*) + 68
11  Chromium Embedded Framework         0x00000003cbac7100 logging::CheckError::~CheckError() + 60
12  Chromium Embedded Framework         0x00000003cbac71dc logging::CheckError::~CheckError() + 28
13  Chromium Embedded Framework         0x00000003cf900418 cc::UkmManager::RecordEventLatencyUKM(std::__Cr::vector<std::__Cr::unique_ptr<cc::EventMetrics, std::__Cr::default_delete<cc::EventMetrics>>, std::__Cr::allocator<std::__Cr::unique_ptr<cc::EventMetrics, std::__Cr::default_delete<cc::EventMetrics>>>> const&, std::__Cr::vector<cc::CompositorFrameReporter::StageData, std::__Cr::allocator<cc::CompositorFrameReporter::StageData>> const&, cc::CompositorFrameReporter::ProcessedBlinkBreakdown const&, cc::CompositorFrameReporter::ProcessedVizBreakdown const&) const + 624
14  Chromium Embedded Framework         0x00000003cf9020a0 cc::LatencyUkmReporter::ReportEventLatencyUkm(std::__Cr::vector<std::__Cr::unique_ptr<cc::EventMetrics, std::__Cr::default_delete<cc::EventMetrics>>, std::__Cr::allocator<std::__Cr::unique_ptr<cc::EventMetrics, std::__Cr::default_delete<cc::EventMetrics>>>> const&, std::__Cr::vector<cc::CompositorFrameReporter::StageData, std::__Cr::allocator<cc::CompositorFrameReporter::StageData>> const&, cc::CompositorFrameReporter::ProcessedBlinkBreakdown const&, cc::CompositorFrameReporter::ProcessedVizBreakdown const&) + 104
15  Chromium Embedded Framework         0x00000003cf9102cc cc::CompositorFrameReporter::ReportEventLatencyMetrics() const + 308
16  Chromium Embedded Framework         0x00000003cf90ba54 cc::CompositorFrameReporter::TerminateReporter() + 1244
17  Chromium Embedded Framework         0x00000003cf90b4d8 cc::CompositorFrameReporter::~CompositorFrameReporter() + 28
18  Chromium Embedded Framework         0x00000003cf90bc80 cc::CompositorFrameReporter::~CompositorFrameReporter() + 28
19  Chromium Embedded Framework         0x00000003cf920ac4 std::__Cr::default_delete<cc::CompositorFrameReporter>::operator()(cc::CompositorFrameReporter*) const + 44
20  Chromium Embedded Framework         0x00000003cf920a88 std::__Cr::unique_ptr<cc::CompositorFrameReporter, std::__Cr::default_delete<cc::CompositorFrameReporter>>::reset(cc::CompositorFrameReporter*) + 68
21  Chromium Embedded Framework         0x00000003cf920a34 std::__Cr::unique_ptr<cc::CompositorFrameReporter, std::__Cr::default_delete<cc::CompositorFrameReporter>>::~unique_ptr() + 32
22  Chromium Embedded Framework         0x00000003cf90b4ac std::__Cr::unique_ptr<cc::CompositorFrameReporter, std::__Cr::default_delete<cc::CompositorFrameReporter>>::~unique_ptr() + 28
23  Chromium Embedded Framework         0x00000003cf9e57a4 cc::CompositorFrameReportingController::SubmittedCompositorFrame::~SubmittedCompositorFrame() + 32
24  Chromium Embedded Framework         0x00000003cf9e57d0 cc::CompositorFrameReportingController::SubmittedCompositorFrame::~SubmittedCompositorFrame() + 28
25  Chromium Embedded Framework         0x00000003cf9ec9b4 base::internal::VectorBuffer<cc::CompositorFrameReportingController::SubmittedCompositorFrame>::DestructRange(base::span<cc::CompositorFrameReportingController::SubmittedCompositorFrame, 18446744073709551615ul, cc::CompositorFrameReportingController::SubmittedCompositorFrame*>) + 176
26  Chromium Embedded Framework         0x00000003cf9ec87c base::circular_deque<cc::CompositorFrameReportingController::SubmittedCompositorFrame>::DestructRange(unsigned long, unsigned long) + 120
27  Chromium Embedded Framework         0x00000003cf9e9740 base::circular_deque<cc::CompositorFrameReportingController::SubmittedCompositorFrame>::pop_front() + 168
28  Chromium Embedded Framework         0x00000003cf9e93b4 cc::CompositorFrameReportingController::DidPresentCompositorFrame(unsigned int, viz::FrameTimingDetails const&) + 1444
29  Chromium Embedded Framework         0x00000003cfb74420 cc::Scheduler::DidPresentCompositorFrame(unsigned int, viz::FrameTimingDetails const&) + 56
30  Chromium Embedded Framework         0x00000003cfb89a80 cc::ProxyImpl::DidPresentCompositorFrameOnImplThread(unsigned int, cc::PresentationTimeCallbackBuffer::PendingCallbacks, viz::FrameTimingDetails const&) + 304
31  Chromium Embedded Framework         0x00000003cfa64b38 cc::LayerTreeHostImpl::DidPresentCompositorFrame(unsigned int, viz::FrameTimingDetails const&) + 208
32  Chromium Embedded Framework         0x00000003d3acb000 cc::mojo_embedder::AsyncLayerTreeFrameSink::OnBeginFrame(viz::BeginFrameArgs const&, base::flat_map<unsigned int, viz::FrameTimingDetails, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<unsigned int, viz::FrameTimingDetails>, std::__Cr::allocator<std::__Cr::pair<unsigned int, viz::FrameTimingDetails>>>> const&, bool, std::__Cr::vector<viz::ReturnedResource, std::__Cr::allocator<viz::ReturnedResource>>) + 484
33  Chromium Embedded Framework         0x00000003be9952d0 viz::mojom::CompositorFrameSinkClientStubDispatch::Accept(viz::mojom::CompositorFrameSinkClient*, mojo::Message*) + 1324
34  Chromium Embedded Framework         0x00000003d3ad2010 viz::mojom::CompositorFrameSinkClientStub<mojo::RawPtrImplRefTraits<viz::mojom::CompositorFrameSinkClient>>::Accept(mojo::Message*) + 84

Versions (please complete the following information):

magreenblatt commented 4 days ago

Considered flaky because running cefclient --off-screen-rendering-enabled --url=https://tests/osr_test and clicking in the select list manually does not crash.