### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.

### Electron Version

12.0.1

### What operating system are you using?

macOS

### Operating System Version

11.2

### What arch are you using?

x64

### Last Known Working Electron version

11.x

### Expected Behavior

The app should not crash, and the new-window event should be fired

### Actual Behavior

The app crashes 

### Testcase Gist URL

https://gist.github.com/ae7fdfd99a5d755a5ae4323c46a4e833


shell/browser/web_view_guest_delegate.cc
ResetZoomController();
}
content::WebContents* WebViewGuestDelegate::GetOwnerWebContents() {
  return embedder_web_contents_;
}
void WebViewGuestDelegate::OnZoomLevelChanged(
    content::WebContents* web_contents,
    double level,
    bool is_temporary) {
  if (web_contents == GetOwnerWebContents()) {
    if (is_temporary) {
      api_web_contents_->GetZoomController()->SetTemporaryZoomLevel(level);
    } else {
      api_web_contents_->GetZoomController()->SetZoomLevel(level);
    }
    
    double zoom_factor = blink::PageZoomFactorToZoomLevel(level);
    api_web_contents_->GetZoomController()->SetDefaultZoomFactor(zoom_factor);
  }
}
void WebViewGuestDelegate::OnZoomControllerWebContentsDestroyed() {