- Electron version: 1.2.0
- Operating system: OS X

``` js
electron.protocol.registerStandardSchemes(['foobar', 'http', 'https']);

app.on('ready', function() {
  electron.protocol.registerHttpProtocol('foobar', (request, callback) => {
    const redirectPath = `http://www.google.com`;
    callback({ method: request.method, referrer: request.referrer, url: redirectPath });
  }, e => { if (e) { console.log(e); } });
});
```

A webview somewhere gets its src set to "foobar://baz", however a blank window appears. The page is perpetually in a load state, as only the `did-start-loading` and `did-get-response-details` events get triggered on the webview.

If I redirect to `http://localhost:{port}/foobar`, my server does receive the request and responds properly. However, the webview in electron is still blank. Loading that address in a different browser works as expected.

What am I missing? Is there something more I need to do to get `registerHttpProtocol` working?

atom/browser/net/url_request_fetch_job.cc
net::URLRequest* request, net::NetworkDelegate* network_delegate)
    : JsAsker<net::URLRequestJob>(request, network_delegate),
      pending_buffer_size_(0) {
}
void URLRequestFetchJob::BeforeStartInUI(
    v8::Isolate* isolate, v8::Local<v8::Value> value) {
  mate::Dictionary options;
  if (!mate::ConvertFromV8(isolate, value, &options))
    return;
  
  
  v8::Local<v8::Value> session;
  if (options.Get("session", &session) && session->IsNull()) {
    
    url_request_context_getter_ = new brightray::URLRequestContextGetter(
        this, nullptr, nullptr, base::FilePath(), true,
        BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::IO),
        BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::FILE),
        nullptr, content::URLRequestInterceptorScopedVector());
  }
}
void URLRequestFetchJob::StartAsync(std::unique_ptr<base::Value> options) {