Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Unified Diff: components/guest_view/renderer/guest_view_container.cc

Issue 1162053003: Move BrowserPluginDelegate's lifetime mgmt out of content/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: make dtor protected Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698