• Joerg Bornemann's avatar
    Fix access to deleted memory on QWebEnginePage destruction · d5cde6f1
    Joerg Bornemann authored
    
    Suppose QWebEnginePage is destroyed while there's still a combobox popup
    open. We would crash with the following stack trace:
    
    1   QtWebEngineCore::RenderWidgetHostViewQt::dpiScale
    2   QtWebEngineCore::RenderWidgetHostViewQt::GetViewBounds
    3   content::RenderWidgetHostImpl::SendScreenRects
    4   content::RenderWidgetHostImpl::OnRenderViewReady
    ...
    16  base::MessageLoop::DoWork
    17  WebEngineContext::destroy
    18  `anonymous namespace'::destroyContext
    19  qt_call_post_routines
    20  QApplication::~QApplication
    
    RenderWidgetHostViewQt still holds a pointer to WebContentsAdapterClient.
    To fix this, expose the QObject owning the adapter client, and
    hide RenderWidgetHostViewQt when it is destroyed so it won't try to render.
    
    Change-Id: Ide5543197b35038a3e1c7491ceda3f5ad10f6f07
    Reviewed-by: default avatarAllan Sandfeld Jensen <allan.jensen@qt.io>
    d5cde6f1