Clean up the associated widget when detaching a local root.
Subframes that were local roots had a corresponding RenderWidget
and WebFrameWidget created for layout/rendering purposes, but
this widget was leaked and never destroyed. This also caused
UaFs since stale pointers would be left around. This patch fixes
the renderer to actually destroy the widget associated with a
local root when it's no longer needed.
Since RenderWiget lifetime is already very complex, several
methods that were unnecessarily public have had their visibility
changed to protected:
▸ RenderWidget::Close
▸ RenderWidget::CreateWebFrameWidget
▸ RenderWidget::CreateWebWidget
BUG=419087
Review URL: https://codereview.chromium.org/1235503003
Cr-Commit-Position: refs/heads/master@{#339513}
3 files changed