### Issue Details

* **Electron Version:**
  * 13.0.0-nightly.20201203
* **Operating System:**
  * macOS
* **Last Known Working Electron version:**
  * N/A

### Expected Behavior
`WebFrameMain.frames` should never contain undefined

### Actual Behavior
```
Uncaught Exception:
TypeError: Cannot read property 'processId' of undefined
    at id (/private/var/folders/_7/jm5cr84j7jd4v7btf2d3bqwm0000gn/T/tmp-59557-p4DTr3KWOsNk/main.js:4:38)
    at pft (/private/var/folders/_7/jm5cr84j7jd4v7btf2d3bqwm0000gn/T/tmp-59557-p4DTr3KWOsNk/main.js:6:36)
    at Timeout._onTimeout (/private/var/folders/_7/jm5cr84j7jd4v7btf2d3bqwm0000gn/T/tmp-59557-p4DTr3KWOsNk/main.js:27:5)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
```

### To Reproduce
Run https://gist.github.com/f46823470955034b4a456b6275862bfb for a short while and you'll observe the above error.

cc @samuelmaddock 

shell/browser/api/electron_api_web_frame_main.cc
return;
  mojo::AssociatedRemote<mojom::ElectronRenderer> electron_renderer;
  render_frame_->GetRemoteAssociatedInterfaces()->GetInterface(
      &electron_renderer);
  electron_renderer->ReceivePostMessage(channel,
                                        std::move(transferable_message));
}
int WebFrameMain::FrameTreeNodeID() const {
  if (!CheckRenderFrame())
    return -1;
  return render_frame_->GetFrameTreeNodeId();
}
std::string WebFrameMain::Name() const {
  if (!CheckRenderFrame())
    return std::string();
  return render_frame_->GetFrameName();
}
base::ProcessId WebFrameMain::OSProcessID() const {
  if (!CheckRenderFrame())
    return -1;
  base::ProcessHandle process_handle =
      render_frame_->GetProcess()->GetProcess().Handle();
  return base::GetProcId(process_handle);
}
int WebFrameMain::ProcessID() const {
  if (!CheckRenderFrame())
    return -1;
  return render_frame_->GetProcess()->GetID();
}
int WebFrameMain::RoutingID() const {