Repro steps:
1. Build and install webrunner on fuchsia device
2. run -d tiles
3. tiles_ctl add https://google.com
4. tiles_ctl remove <tile_id>
5. Observe Context process crashing with the following stack:
0x4ff083e ui::Compositor::ReleaseAcceleratedWidget() at compositor.cc:?
0x4fee24a non-virtual thunk to aura::WindowTreeHostPlatform::OnAcceleratedWidgetDestroyed() at window_tree_host_platform.cc:?
0x22f87cd ui::ScenicWindow::~ScenicWindow() at scenic_window.cc:?
0x22f88d9 ui::ScenicWindow::~ScenicWindow() at scenic_window.cc:?
0x4fed938 aura::WindowTreeHostPlatform::~WindowTreeHostPlatform() at window_tree_host_platform.cc:?
0x4fed999 aura::WindowTreeHostPlatform::~WindowTreeHostPlatform() at window_tree_host_platform.cc:?
0x3e952bc webrunner::FrameImpl::~FrameImpl() at frame_impl.cc:?
The problem is that WindowTreeHostPlatform destroys compositor and then the PlatformWindow, but then assumes that the compositor still exists OnAcceleratedWidgetDestroyed().
It looks like most ozone platforms don't call OnAcceleratedWidgetDestroyed() and that's the reason it doesn't crash on other platforms. OnAcceleratedWidgetDestroyed() doesn't seem to be useful, so it looks like the right way to fix it is to remove OnAcceleratedWidgetDestroyed().
tiles_ctl remove closes the view.
Comment 1 by sergeyu@chromium.org
, Jul 24