* Electron version: 1.7.4
* Operating system: macOS Sierra

### Expected behavior

Load the PDF file correctly.

### Actual behavior

When I try to load something like http://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1118&context=podimproveacad, the '&' symbol seems to interrupt the PDF Viewer to load the file.
![](http://i.imgur.com/RDSeY2u.png)

You can see that part of query string behind '&' get chopped, and I believe this is the reason why the PDF Viewer failed to load.

### How to reproduce

Clone the reproducible project at https://github.com/qazbnm456/electron-quick-start.
```
$ yarn # install packages
$ yarn run start # start the electron
```
atom/browser/atom_resource_dispatcher_host_delegate.cc
const GURL& url,
    content::ResourceRequestInfo* info) {
  BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
                          base::Bind(&HandleExternalProtocolInUI,
                                     url,
                                     info->GetWebContentsGetterForRequest(),
                                     info->HasUserGesture()));
  return true;
}
content::ResourceDispatcherHostLoginDelegate*
AtomResourceDispatcherHostDelegate::CreateLoginDelegate(
    net::AuthChallengeInfo* auth_info,
    net::URLRequest* request) {
  return new LoginHandler(auth_info, request);
}
std::unique_ptr<net::ClientCertStore>
AtomResourceDispatcherHostDelegate::CreateClientCertStore(
    content::ResourceContext* resource_context) {
  #if defined(USE_NSS_CERTS)
    return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreNSS(
        net::ClientCertStoreNSS::PasswordDelegateFactory()));
  #elif defined(OS_WIN)
    return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreWin());
  #elif defined(OS_MACOSX)
    return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreMac());
  #elif defined(USE_OPENSSL)
    return std::unique_ptr<net::ClientCertStore>();
  #endif
}
bool AtomResourceDispatcherHostDelegate::ShouldInterceptResourceAsStream(