Chromium Code Reviews| Index: components/guest_view/renderer/guest_view_container.cc |
| diff --git a/components/guest_view/renderer/guest_view_container.cc b/components/guest_view/renderer/guest_view_container.cc |
| index 1c13456b5d543b22120e10fc69812c9bc2898967..574870999eae7af492d705f6be77b5696f8f61e5 100644 |
| --- a/components/guest_view/renderer/guest_view_container.cc |
| +++ b/components/guest_view/renderer/guest_view_container.cc |
| @@ -49,7 +49,8 @@ void GuestViewContainer::RenderFrameLifetimeObserver::OnDestruct() { |
| GuestViewContainer::GuestViewContainer(content::RenderFrame* render_frame) |
| : element_instance_id_(guest_view::kInstanceIDNone), |
| render_frame_(render_frame), |
| - ready_(false) { |
| + ready_(false), |
| + in_destruction_(false) { |
| render_frame_lifetime_observer_.reset( |
| new RenderFrameLifetimeObserver(this, render_frame_)); |
| } |
| @@ -77,6 +78,15 @@ GuestViewContainer* GuestViewContainer::FromID(int element_instance_id) { |
| return it == guest_view_containers->end() ? nullptr : it->second; |
| } |
| +void GuestViewContainer::Destroy() { |
| + if (in_destruction_) |
| + return; |
| + |
|
Fady Samuel
2015/06/05 17:31:12
set in_destruction_ to true here.
lazyboy
2015/06/05 21:24:00
Incorrect patch, sorry about that.
Done.
|
| + OnDestroy(); |
| + |
| + delete this; |
| +} |
| + |
| void GuestViewContainer::RenderFrameDestroyed() { |
| OnRenderFrameDestroyed(); |
| render_frame_ = nullptr; |
| @@ -146,4 +156,8 @@ void GuestViewContainer::SetElementInstanceID(int element_instance_id) { |
| std::make_pair(element_instance_id, this)); |
| } |
| +void GuestViewContainer::WillDestroy() { |
| + OnDestroy(); |
| +} |
| + |
| } // namespace guest_view |