diff --git a/ios/web_view/internal/cwv_web_view.mm b/ios/web_view/internal/cwv_web_view.mm index 0000000000..1111111111 100644 --- a/ios/web_view/internal/cwv_web_view.mm +++ b/ios/web_view/internal/cwv_web_view.mm @@ -506,6 +506,9 @@ static NSDictionary* gCustomHeaders = nil; } - (void)dealloc { + // CWVBackForwardList may outlive |self|; clear its raw pointer into + // |_webState| before ARC destroys the unique_ptr. Mirrors -shutDown. + _backForwardList.navigationManager = nil; if (_webState) { if (_webStateObserver) { _webState->RemoveObserver(_webStateObserver.get());