Thanks for Electron! Amazing project :)

* Electron version: 1.6.2
* Operating system: macOS Sierra (10.12.3)

It happens when `BrowserWindow` is opened with `sandbox: true`. It might be on purpose, but I couldn't find any Electron/Chromium documentation that explains why. So I'm suspecting it's a bug. I can submit a PR with a failing test to this repo if you agree that it's a bug.

### Expected behavior

`webContents`' `will-navigate` event should fire when user reloads page fx.

### Actual behavior

It does not fire.

### How to reproduce

package.json:

```json
{
  "name": "electron-sandbox-will-navigate-bug",
  "version": "0.0.0",
  "main": "main.js",
  "dependencies": {
    "electron": "^1.6.2"
  }
}
```

main.js:

```js
const {app, BrowserWindow} = require('electron')
const path = require('path')

app.on('ready', function() {
  const win = new BrowserWindow({
    webPreferences: {
      sandbox: true
    }
  })

  const {webContents} = win
  webContents.on('will-navigate', () => {
    console.log('will-navigate')
  })
  webContents.on('did-navigate', () => {
    console.log('did-navigate')
  })

  win.loadURL('file://' + path.join(__dirname, 'index.html'))
})
```

index.html:

```html
<!doctype html>
<html>
  <body>
    <button onclick="window.location.reload()">Reload</button>
  </body>
</html>
```

Perform these steps:

- Run `npm install`
- Run `./node_modules/.bin/electron .`
- Click the Reload button in the browser window
- Observe the Terminal output

Expected output:

```
did-navigate
will-navigate
did-navigate
```

Actual output:

```
did-navigate
did-navigate
```

(will-navigate is not fired).

If you outcomment the line `sandbox:true` in `main.js`, then it works as expected.
shell/renderer/electron_sandboxed_renderer_client.cc
NodeBindings::RegisterBuiltinModules();
  metrics_ = base::ProcessMetrics::CreateCurrentProcessMetrics();
}
ElectronSandboxedRendererClient::~ElectronSandboxedRendererClient() = default;
void ElectronSandboxedRendererClient::InitializeBindings(
    v8::Local<v8::Object> binding,
    v8::Local<v8::Context> context,
    bool is_main_frame) {
  auto* isolate = context->GetIsolate();
  gin_helper::Dictionary b(isolate, binding);
  b.SetMethod("get", GetBinding);
  b.SetMethod("createPreloadScript", CreatePreloadScript);
  gin_helper::Dictionary process = gin::Dictionary::CreateEmpty(isolate);
  b.Set("process", process);
  ElectronBindings::BindProcess(isolate, &process, metrics_.get());
  process.Set("argv", base::CommandLine::ForCurrentProcess()->argv());
  process.SetReadOnly("pid", base::GetCurrentProcId());
  process.SetReadOnly("sandboxed", true);
  process.SetReadOnly("type", "renderer");
  process.SetReadOnly("isMainFrame", is_main_frame);
}
void ElectronSandboxedRendererClient::RenderFrameCreated(
    content::RenderFrame* render_frame) {
  new ElectronRenderFrameObserver(render_frame, this);
  RendererClientBase::RenderFrameCreated(render_frame);
}
void ElectronSandboxedRendererClient::RenderViewCreated(