<!--  As an open source project with a dedicated but small maintainer team, it can sometimes take a long time for issues to be addressed so please be patient and we will get back to you as soon as we can.
-->

### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [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 for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:** 
  * <!-- (output of `node_modules/.bin/electron --version`) e.g. 4.0.3 -->10.1.0
* **Operating System:** 
  * <!-- (Platform and Version) e.g. macOS 10.13.6 / Windows 10 (1803) / Ubuntu 18.04 x64 -->windows 10
* **Last Known Working Electron version:** 
  * <!-- (if applicable) e.g. 3.1.0 -->unknown

### Expected Behavior
<!-- A clear and concise description of what you expected to happen. -->

`setImmediate` works the same regardless of whether you have loaded a page for the first time, or after a reload.

### Actual Behavior
<!-- A clear and concise description of what actually happened. -->
`setImmediate` does execute on first page load, and does not after reloads.

### To Reproduce
<!--
Your best chance of getting this bug looked at quickly is to provide an example.
-->

I've created an [electron fiddle gist](https://gist.github.com/affedc59a009210f18d3d396bb9cc425) which shows the problem. The essence is that on first page load, setImmediate properly executes the given function, however, after reloading the page, with the same code, the invocation gets lost internally and never happens.

<!--
For bugs that can be encapsulated in a small experiment, you can use Electron Fiddle (https://github.com/electron/fiddle) to publish your example to a GitHub Gist and link it your bug report.
-->

<!--
If Fiddle is insufficient to produce an example, please provide an example REPOSITORY that can be cloned and run. You can fork electron-quick-start (https://github.com/electron/electron-quick-start) and include a link to the branch with your changes.
-->

<!--
If you provide a URL, please list the commands required to clone/setup/run your repo e.g.
```sh
$ git clone $YOUR_URL -b $BRANCH
$ npm install
$ npm start || electron .
```
-->

shell/renderer/electron_renderer_client.cc
#include "shell/renderer/electron_renderer_client.h"
#include <string>
#include <vector>
#include "base/command_line.h"
#include "content/public/renderer/render_frame.h"
#include "electron/buildflags/buildflags.h"
#include "shell/common/api/electron_bindings.h"
#include "shell/common/asar/asar_util.h"
#include "shell/common/gin_helper/dictionary.h"
#include "shell/common/gin_helper/event_emitter_caller.h"
#include "shell/common/node_bindings.h"
#include "shell/common/node_includes.h"
#include "shell/common/node_util.h"
#include "shell/common/options_switches.h"
#include "shell/renderer/electron_render_frame_observer.h"
#include "shell/renderer/web_worker_observer.h"
#include "third_party/blink/public/web/web_document.h"
#include "third_party/blink/public/web/web_local_frame.h"
namespace electron {
namespace {
bool IsDevToolsExtension(content::RenderFrame* render_frame) {