### 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
#include "electron/shell/common/api/api.mojom.h"
#include "gin/object_template_builder.h"
#include "shell/browser/api/message_port.h"
#include "shell/browser/browser.h"
#include "shell/browser/javascript_environment.h"
#include "shell/common/gin_converters/blink_converter.h"
#include "shell/common/gin_converters/frame_converter.h"
#include "shell/common/gin_converters/gurl_converter.h"
#include "shell/common/gin_converters/value_converter.h"
#include "shell/common/gin_helper/dictionary.h"
#include "shell/common/gin_helper/error_thrower.h"
#include "shell/common/gin_helper/object_template_builder.h"
#include "shell/common/gin_helper/promise.h"
#include "shell/common/node_includes.h"
#include "shell/common/v8_value_serializer.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
namespace electron {
namespace api {
typedef std::unordered_map<content::RenderFrameHost*, WebFrameMain*>
    RenderFrameMap;
base::LazyInstance<RenderFrameMap>::DestructorAtExit g_render_frame_map =
    LAZY_INSTANCE_INITIALIZER;
WebFrameMain* FromRenderFrameHost(content::RenderFrameHost* rfh) {
  auto frame_map = g_render_frame_map.Get();
  auto iter = frame_map.find(rfh);
  auto* web_frame = iter == frame_map.end() ? nullptr : iter->second;
  return web_frame;
}
gin::WrapperInfo WebFrameMain::kWrapperInfo = {gin::kEmbedderNativeGin};
WebFrameMain::WebFrameMain(content::RenderFrameHost* rfh) : render_frame_(rfh) {