- 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
const URLPatterns& patterns) {
  if (patterns.empty())
    return true;
  for (const auto& pattern : patterns) {
    if (pattern.MatchesURL(request->url()))
      return true;
  }
  return false;
}
void ToDictionary(base::DictionaryValue* details, net::URLRequest* request) {
  FillRequestDetails(details, request);
  details->SetInteger("id", request->identifier());
  details->SetDouble("timestamp", base::Time::Now().ToDoubleT() * 1000);
  auto info = content::ResourceRequestInfo::ForRequest(request);
  details->SetString("resourceType",
                     info ? ResourceTypeToString(info->GetResourceType())
                          : "other");
}
void ToDictionary(base::DictionaryValue* details,
                  const net::HttpRequestHeaders& headers) {
  std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
  net::HttpRequestHeaders::Iterator it(headers);
  while (it.GetNext())
    dict->SetString(it.name(), it.value());
  details->Set("requestHeaders", std::move(dict));
}
void ToDictionary(base::DictionaryValue* details,