This is leading to some flake in browser_tests. I have found a test that can 100% repro it. I was able to get it to hit by running AutoplayExtensionBrowserTest.AutoplayAllowedInIframe a bunch of times.
Here's the stack:
#0 0x7f632ee0c75c base::debug::StackTrace::StackTrace()
#1 0x7f632ed3f85b logging::LogMessage::~LogMessage()
#2 0x7f6328da8383 ui::Layer::SetFallbackSurfaceId()
#3 0x7f6328e3a6fd aura::ClientSurfaceEmbedder::SetFallbackSurfaceInfo()
#4 0x7f6327c6be14 viz::mojom::FrameSinkManagerClientStubDispatch::Accept()
#5 0x7f632bfba216 mojo::InterfaceEndpointClient::HandleValidatedMessage()
#6 0x7f632bfb9b46 mojo::FilterChain::Accept()
#7 0x7f632bfbb5a5 mojo::InterfaceEndpointClient::HandleIncomingMessage()
#8 0x7f632bfc1bfc mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#9 0x7f632bfc1000 mojo::internal::MultiplexRouter::Accept()
#10 0x7f632bfb9b46 mojo::FilterChain::Accept()
#11 0x7f632bfb4e23 mojo::Connector::ReadSingleMessage()
#12 0x7f632bfb5871 mojo::Connector::ReadAllAvailableMessages()
#13 0x7f632bfb5719 mojo::Connector::OnHandleReadyInternal()
#14 0x7f632bfb5f67 mojo::SimpleWatcher::DiscardReadyState()
#15 0x7f632f083714 mojo::SimpleWatcher::OnHandleReady()
#16 0x7f632f083c21 _ZN4base8internal7InvokerINS0_9BindStateIMN4mojo13SimpleWatcherEFvijRKNS3_18HandleSignalsStateEEJNS_7WeakPtrIS4_EEijS5_EEEFvvEE7RunImplIRKS9_RKN\
St3__15tupleIJSB_ijS5_EEEJLm0ELm1ELm2ELm3EEEEvOT_OT0_NSI_16integer_sequenceImJXspT1_EEEE
#17 0x7f632ed22ab5 base::debug::TaskAnnotator::RunTask()
#18 0x7f632ed4f9ea base::MessageLoop::RunTask()
#19 0x7f632ed4fd7a base::MessageLoop::DeferOrRunPendingTask()
#20 0x7f632ed50077 base::MessageLoop::DoWork()
#21 0x7f632ee2c7b9 base::MessagePumpLibevent::Run()
#22 0x7f632ed4f414 base::MessageLoop::Run()
#23 0x7f632ed813d9 base::RunLoop::Run()
#24 0x7f632b1083f2 content::UtilityMain()
#25 0x7f632b111df1 content::ContentMainRunnerImpl::Run()
#26 0x7f6328b7fbc5 service_manager::Main()
#27 0x7f632b110274 content::ContentMain()
#28 0x000002ecc47e content::LaunchTests()
#29 0x000002903343 LaunchChromeTests()
#30 0x000002902e1e main
#31 0x7f632068b2b1 __libc_start_main
#32 0x00000083505a _start
After talking with Samans the expectation is that SetShowPrimarySurface() *must* be called before SetFallbackSurfaceId.
Comment 1 by bugdroid1@chromium.org
, Jul 13