- Parse request headers and pass to the scheme handler.
- Fix memory leak in scheme handler implementation.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@38 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2009-08-21 14:21:15 +00:00
parent 087319efdb
commit b821811c08
4 changed files with 53 additions and 25 deletions

View File

@@ -229,28 +229,17 @@ class RequestProxy : public URLRequest::Delegate,
requestimpl->SetURL(UTF8ToWide(params->url.spec()));
requestimpl->SetMethod(UTF8ToWide(params->method));
// Transfer request headers
CefRequest::HeaderMap headerMap;
// Parse the request header values
std::string headerStr = "HTTP/1.1 200 OK\n";
headerStr += params->headers;
scoped_refptr<net::HttpResponseHeaders> headers =
new HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
headerStr.c_str(), headerStr.length()));
void* iter = NULL;
std::string name, value;
while(headers->EnumerateHeaderLines(&iter, &name, &value))
headerMap.insert(std::make_pair(UTF8ToWide(name), UTF8ToWide(value)));
CefRequestImpl::GetHeaderMap(params->headers, headerMap);
headerMap.insert(
std::make_pair(L"Referrer", UTF8ToWide(params->referrer.spec())));
requestimpl->SetHeaderMap(headerMap);
// Transfer post data, if any
scoped_refptr<net::UploadData> upload = params->upload;
CefRefPtr<CefPostData> postdata;
if(upload.get()) {
postdata = new CefPostDataImpl();
CefRefPtr<CefPostData> postdata(new CefPostDataImpl());
static_cast<CefPostDataImpl*>(postdata.get())->Set(*upload.get());
requestimpl->SetPostData(postdata);
}