Reset bindings in DidDetachFrameView
We're already doing cleanup in this function, and with this change
we do our other cleanup here, too.
(cherry picked from commit 07fc424a8cb44bc98d27e52dc460fc861b290d7e)
Bug: 970252
Change-Id: I44748e1bef4941219d447ce22228816bf79dd963
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645129
Commit-Queue: Ian Vollick <vollick@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#666713}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1653230
Reviewed-by: Ian Vollick <vollick@chromium.org>
Cr-Commit-Position: refs/branch-heads/3809@{#229}
Cr-Branched-From: d82dec1a818f378c464ba307ddd9c92133eac355-refs/heads/master@{#665002}
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
index bcab966..0f8ae209 100644
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -307,8 +307,6 @@
if (validation_message_client_)
validation_message_client_->DocumentDetached(*document);
hosts_using_features_.DocumentDetached(*document);
- if (spatial_navigation_controller_ && document->GetFrame()->IsMainFrame())
- spatial_navigation_controller_->ResetMojoBindings();
}
bool Page::OpenedByDOM() const {
diff --git a/third_party/blink/renderer/core/page/spatial_navigation_controller.cc b/third_party/blink/renderer/core/page/spatial_navigation_controller.cc
index e398bd1..02d9677a 100644
--- a/third_party/blink/renderer/core/page/spatial_navigation_controller.cc
+++ b/third_party/blink/renderer/core/page/spatial_navigation_controller.cc
@@ -213,6 +213,8 @@
// etc.) then reset navigation.
if (interest_element_ && !interest_element_->GetDocument().View())
interest_element_ = nullptr;
+ // TODO(crbug.com/956209): should be checked via an integration test.
+ ResetMojoBindings();
}
void SpatialNavigationController::Trace(blink::Visitor* visitor) {
diff --git a/third_party/blink/renderer/core/page/spatial_navigation_controller.h b/third_party/blink/renderer/core/page/spatial_navigation_controller.h
index 05ee39d..12d6555 100644
--- a/third_party/blink/renderer/core/page/spatial_navigation_controller.h
+++ b/third_party/blink/renderer/core/page/spatial_navigation_controller.h
@@ -40,8 +40,6 @@
void OnSpatialNavigationSettingChanged();
void FocusedNodeChanged(Document*);
- void ResetMojoBindings();
-
void Trace(blink::Visitor*);
private:
@@ -100,6 +98,7 @@
bool UpdateHasDefaultVideoControls(Element* element);
const mojom::blink::SpatialNavigationHostPtr& GetSpatialNavigationHost();
+ void ResetMojoBindings();
// The currently indicated element or nullptr if no node is indicated by
// spatial navigation.