Index: chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc |
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc |
index 2a9680964558c9cae040026b761e66c3bd32861c..bab6e106e6605d76251283949ed205d5b8eca5f9 100644 |
--- a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc |
+++ b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc |
@@ -142,6 +142,18 @@ void ChromeWebViewGuestDelegate::OnGuestReady() { |
zoom_controller->SetZoomMode(ZoomController::ZOOM_MODE_ISOLATED); |
} |
+void ChromeWebViewGuestDelegate::OnEmbedderWillBeDestroyed() { |
+ content::WebContents* embedder_web_contents = |
+ web_view_guest()->embedder_web_contents(); |
+ if (!embedder_web_contents) |
+ return; |
+ |
+ ZoomController* zoom_controller = |
+ ZoomController::FromWebContents(embedder_web_contents); |
+ if (zoom_controller) |
+ zoom_controller->RemoveObserver(this); |
+} |
+ |
void ChromeWebViewGuestDelegate::OnGuestDestroyed() { |
// Clean up custom context menu items for this guest. |
extensions::MenuManager* menu_manager = extensions::MenuManager::Get( |