- Electron version:
  1.3.3
- Operating system:
  All

wsj.com uses a header called `Dylan2010.EntitlementToken` which is lost if you register an `onBeforeSenderHeaders` callback. This happens because `DictionaryValue::SetString` does automatic path expansion unless you explicitly call `DictionaryValue::SetStringWithoutPathExpansion'. Pr to follow 

atom/browser/net/atom_network_delegate.cc
uint64_t id, T out, std::unique_ptr<base::DictionaryValue> response) {
  
  if (!ContainsKey(callbacks_, id))
    return;
  ReadFromResponseObject(*response.get(), out);
  bool cancel = false;
  response->GetBoolean("cancel", &cancel);
  callbacks_[id].Run(cancel ? net::ERR_BLOCKED_BY_CLIENT : net::OK);
}
template<typename T>
void AtomNetworkDelegate::OnListenerResultInUI(
    uint64_t id, T out, const base::DictionaryValue& response) {
  std::unique_ptr<base::DictionaryValue> copy = response.CreateDeepCopy();
  BrowserThread::PostTask(
      BrowserThread::IO, FROM_HERE,
      base::Bind(&AtomNetworkDelegate::OnListenerResultInIO<T>,
                 base::Unretained(this),  id, out, base::Passed(&copy)));
}
}