mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Merge revision 542 changes:
- Add CefCookieManager interface and CefRequestHandler::GetCookieManager for custom cookie handling (issue #542). - Support getting and setting cookies with custom scheme handlers (issue #555). - Support calling CefFrame::GetIdentifier and CefFrame::GetURL on any thread (issue #556). git-svn-id: https://chromiumembedded.googlecode.com/svn/branches/963@544 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@ -2,73 +2,67 @@
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
|
||||
#include "request_impl.h"
|
||||
#include "browser_webkit_glue.h"
|
||||
#include "libcef/request_impl.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "libcef/http_header_utils.h"
|
||||
|
||||
#include "base/logging.h"
|
||||
#include "net/url_request/url_request.h"
|
||||
#include "http_header_utils.h"
|
||||
|
||||
using WebKit::WebHTTPBody;
|
||||
using WebKit::WebString;
|
||||
using WebKit::WebURL;
|
||||
using WebKit::WebURLRequest;
|
||||
|
||||
CefRefPtr<CefRequest> CefRequest::CreateRequest()
|
||||
{
|
||||
CefRefPtr<CefRequest> CefRequest::CreateRequest() {
|
||||
CefRefPtr<CefRequest> request(new CefRequestImpl());
|
||||
return request;
|
||||
}
|
||||
|
||||
CefRequestImpl::CefRequestImpl()
|
||||
: method_("GET"), flags_(WUR_FLAG_NONE)
|
||||
{
|
||||
: method_("GET"),
|
||||
flags_(WUR_FLAG_NONE) {
|
||||
}
|
||||
|
||||
CefString CefRequestImpl::GetURL()
|
||||
{
|
||||
CefString CefRequestImpl::GetURL() {
|
||||
AutoLock lock_scope(this);
|
||||
return url_;
|
||||
}
|
||||
|
||||
void CefRequestImpl::SetURL(const CefString& url)
|
||||
{
|
||||
void CefRequestImpl::SetURL(const CefString& url) {
|
||||
AutoLock lock_scope(this);
|
||||
url_ = url;
|
||||
}
|
||||
|
||||
CefString CefRequestImpl::GetMethod()
|
||||
{
|
||||
CefString CefRequestImpl::GetMethod() {
|
||||
AutoLock lock_scope(this);
|
||||
return method_;
|
||||
}
|
||||
|
||||
void CefRequestImpl::SetMethod(const CefString& method)
|
||||
{
|
||||
void CefRequestImpl::SetMethod(const CefString& method) {
|
||||
AutoLock lock_scope(this);
|
||||
method_ = method;
|
||||
}
|
||||
|
||||
CefRefPtr<CefPostData> CefRequestImpl::GetPostData()
|
||||
{
|
||||
CefRefPtr<CefPostData> CefRequestImpl::GetPostData() {
|
||||
AutoLock lock_scope(this);
|
||||
return postdata_;
|
||||
}
|
||||
|
||||
void CefRequestImpl::SetPostData(CefRefPtr<CefPostData> postData)
|
||||
{
|
||||
void CefRequestImpl::SetPostData(CefRefPtr<CefPostData> postData) {
|
||||
AutoLock lock_scope(this);
|
||||
postdata_ = postData;
|
||||
}
|
||||
|
||||
void CefRequestImpl::GetHeaderMap(HeaderMap& headerMap)
|
||||
{
|
||||
void CefRequestImpl::GetHeaderMap(HeaderMap& headerMap) {
|
||||
AutoLock lock_scope(this);
|
||||
headerMap = headermap_;
|
||||
}
|
||||
|
||||
void CefRequestImpl::SetHeaderMap(const HeaderMap& headerMap)
|
||||
{
|
||||
void CefRequestImpl::SetHeaderMap(const HeaderMap& headerMap) {
|
||||
AutoLock lock_scope(this);
|
||||
headermap_ = headerMap;
|
||||
}
|
||||
@ -76,8 +70,7 @@ void CefRequestImpl::SetHeaderMap(const HeaderMap& headerMap)
|
||||
void CefRequestImpl::Set(const CefString& url,
|
||||
const CefString& method,
|
||||
CefRefPtr<CefPostData> postData,
|
||||
const HeaderMap& headerMap)
|
||||
{
|
||||
const HeaderMap& headerMap) {
|
||||
AutoLock lock_scope(this);
|
||||
url_ = url;
|
||||
method_ = method;
|
||||
@ -85,17 +78,30 @@ void CefRequestImpl::Set(const CefString& url,
|
||||
headermap_ = headerMap;
|
||||
}
|
||||
|
||||
void CefRequestImpl::Set(net::URLRequest* request)
|
||||
{
|
||||
void CefRequestImpl::Set(net::URLRequest* request) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
url_ = request->url().spec();
|
||||
method_ = request->method();
|
||||
|
||||
net::HttpRequestHeaders headers = request->extra_request_headers();
|
||||
|
||||
// Ensure that we do not send username and password fields in the referrer.
|
||||
GURL referrer(request->GetSanitizedReferrer());
|
||||
|
||||
// Strip Referer from request_info_.extra_headers to prevent, e.g., plugins
|
||||
// from overriding headers that are controlled using other means. Otherwise a
|
||||
// plugin could set a referrer although sending the referrer is inhibited.
|
||||
headers.RemoveHeader(net::HttpRequestHeaders::kReferer);
|
||||
|
||||
// Our consumer should have made sure that this is a safe referrer. See for
|
||||
// instance WebCore::FrameLoader::HideReferrer.
|
||||
if (referrer.is_valid())
|
||||
headers.SetHeader(net::HttpRequestHeaders::kReferer, referrer.spec());
|
||||
|
||||
// Transfer request headers
|
||||
GetHeaderMap(request->extra_request_headers(), headermap_);
|
||||
headermap_.insert(std::make_pair(L"Referrer", request->referrer()));
|
||||
|
||||
GetHeaderMap(headers, headermap_);
|
||||
|
||||
// Transfer post data, if any
|
||||
net::UploadData* data = request->get_upload();
|
||||
if (data) {
|
||||
@ -104,8 +110,7 @@ void CefRequestImpl::Set(net::URLRequest* request)
|
||||
}
|
||||
}
|
||||
|
||||
void CefRequestImpl::Set(const WebKit::WebURLRequest& request)
|
||||
{
|
||||
void CefRequestImpl::Set(const WebKit::WebURLRequest& request) {
|
||||
DCHECK(!request.isNull());
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
@ -116,7 +121,7 @@ void CefRequestImpl::Set(const WebKit::WebURLRequest& request)
|
||||
if (!body.isNull()) {
|
||||
postdata_ = new CefPostDataImpl();
|
||||
static_cast<CefPostDataImpl*>(postdata_.get())->Set(body);
|
||||
} else if(postdata_.get()) {
|
||||
} else if (postdata_.get()) {
|
||||
postdata_ = NULL;
|
||||
}
|
||||
|
||||
@ -144,8 +149,7 @@ void CefRequestImpl::Set(const WebKit::WebURLRequest& request)
|
||||
#define SETBOOLFLAG(obj, flags, method, FLAG) \
|
||||
obj.method((flags & (FLAG)) == (FLAG))
|
||||
|
||||
void CefRequestImpl::Get(WebKit::WebURLRequest& request)
|
||||
{
|
||||
void CefRequestImpl::Get(WebKit::WebURLRequest& request) {
|
||||
request.initialize();
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
@ -170,13 +174,13 @@ void CefRequestImpl::Get(WebKit::WebURLRequest& request)
|
||||
WebURLRequest::ReloadIgnoringCacheData :
|
||||
WebURLRequest::UseProtocolCachePolicy);
|
||||
|
||||
SETBOOLFLAG(request, flags_, setAllowStoredCredentials,
|
||||
SETBOOLFLAG(request, flags_, setAllowStoredCredentials,
|
||||
WUR_FLAG_ALLOW_CACHED_CREDENTIALS);
|
||||
SETBOOLFLAG(request, flags_, setAllowCookies,
|
||||
SETBOOLFLAG(request, flags_, setAllowCookies,
|
||||
WUR_FLAG_ALLOW_COOKIES);
|
||||
SETBOOLFLAG(request, flags_, setReportUploadProgress,
|
||||
SETBOOLFLAG(request, flags_, setReportUploadProgress,
|
||||
WUR_FLAG_REPORT_UPLOAD_PROGRESS);
|
||||
SETBOOLFLAG(request, flags_, setReportLoadTiming,
|
||||
SETBOOLFLAG(request, flags_, setReportLoadTiming,
|
||||
WUR_FLAG_REPORT_LOAD_TIMING);
|
||||
SETBOOLFLAG(request, flags_, setReportRawHeaders,
|
||||
WUR_FLAG_REPORT_RAW_HEADERS);
|
||||
@ -188,32 +192,27 @@ void CefRequestImpl::Get(WebKit::WebURLRequest& request)
|
||||
}
|
||||
}
|
||||
|
||||
CefRequest::RequestFlags CefRequestImpl::GetFlags()
|
||||
{
|
||||
CefRequest::RequestFlags CefRequestImpl::GetFlags() {
|
||||
AutoLock lock_scope(this);
|
||||
return flags_;
|
||||
}
|
||||
void CefRequestImpl::SetFlags(RequestFlags flags)
|
||||
{
|
||||
void CefRequestImpl::SetFlags(RequestFlags flags) {
|
||||
AutoLock lock_scope(this);
|
||||
flags_ = flags;
|
||||
}
|
||||
|
||||
CefString CefRequestImpl::GetFirstPartyForCookies()
|
||||
{
|
||||
CefString CefRequestImpl::GetFirstPartyForCookies() {
|
||||
AutoLock lock_scope(this);
|
||||
return first_party_for_cookies_;
|
||||
}
|
||||
void CefRequestImpl::SetFirstPartyForCookies(const CefString& url)
|
||||
{
|
||||
void CefRequestImpl::SetFirstPartyForCookies(const CefString& url) {
|
||||
AutoLock lock_scope(this);
|
||||
first_party_for_cookies_ = url;
|
||||
}
|
||||
|
||||
// static
|
||||
void CefRequestImpl::GetHeaderMap(const net::HttpRequestHeaders& headers,
|
||||
HeaderMap& map)
|
||||
{
|
||||
void CefRequestImpl::GetHeaderMap(const net::HttpRequestHeaders& headers,
|
||||
HeaderMap& map) {
|
||||
net::HttpRequestHeaders::Iterator it(headers);
|
||||
do {
|
||||
map.insert(std::make_pair(it.name(), it.value()));
|
||||
@ -222,50 +221,43 @@ void CefRequestImpl::GetHeaderMap(const net::HttpRequestHeaders& headers,
|
||||
|
||||
// static
|
||||
void CefRequestImpl::GetHeaderMap(const WebKit::WebURLRequest& request,
|
||||
HeaderMap& map)
|
||||
{
|
||||
HeaderMap& map) {
|
||||
HttpHeaderUtils::HeaderVisitor visitor(&map);
|
||||
request.visitHTTPHeaderFields(&visitor);
|
||||
}
|
||||
|
||||
// static
|
||||
void CefRequestImpl::SetHeaderMap(const HeaderMap& map,
|
||||
WebKit::WebURLRequest& request)
|
||||
{
|
||||
WebKit::WebURLRequest& request) {
|
||||
HeaderMap::const_iterator it = map.begin();
|
||||
for(; it != map.end(); ++it)
|
||||
for (; it != map.end(); ++it)
|
||||
request.setHTTPHeaderField(string16(it->first), string16(it->second));
|
||||
}
|
||||
|
||||
CefRefPtr<CefPostData> CefPostData::CreatePostData()
|
||||
{
|
||||
CefRefPtr<CefPostData> CefPostData::CreatePostData() {
|
||||
CefRefPtr<CefPostData> postdata(new CefPostDataImpl());
|
||||
return postdata;
|
||||
}
|
||||
|
||||
CefPostDataImpl::CefPostDataImpl()
|
||||
{
|
||||
CefPostDataImpl::CefPostDataImpl() {
|
||||
}
|
||||
|
||||
size_t CefPostDataImpl::GetElementCount()
|
||||
{
|
||||
size_t CefPostDataImpl::GetElementCount() {
|
||||
AutoLock lock_scope(this);
|
||||
return elements_.size();
|
||||
}
|
||||
|
||||
void CefPostDataImpl::GetElements(ElementVector& elements)
|
||||
{
|
||||
void CefPostDataImpl::GetElements(ElementVector& elements) {
|
||||
AutoLock lock_scope(this);
|
||||
elements = elements_;
|
||||
}
|
||||
|
||||
bool CefPostDataImpl::RemoveElement(CefRefPtr<CefPostDataElement> element)
|
||||
{
|
||||
bool CefPostDataImpl::RemoveElement(CefRefPtr<CefPostDataElement> element) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
ElementVector::iterator it = elements_.begin();
|
||||
for(; it != elements_.end(); ++it) {
|
||||
if(it->get() == element.get()) {
|
||||
for (; it != elements_.end(); ++it) {
|
||||
if (it->get() == element.get()) {
|
||||
elements_.erase(it);
|
||||
return true;
|
||||
}
|
||||
@ -274,35 +266,32 @@ bool CefPostDataImpl::RemoveElement(CefRefPtr<CefPostDataElement> element)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CefPostDataImpl::AddElement(CefRefPtr<CefPostDataElement> element)
|
||||
{
|
||||
bool CefPostDataImpl::AddElement(CefRefPtr<CefPostDataElement> element) {
|
||||
bool found = false;
|
||||
|
||||
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
|
||||
// check that the element isn't already in the list before adding
|
||||
ElementVector::const_iterator it = elements_.begin();
|
||||
for(; it != elements_.end(); ++it) {
|
||||
if(it->get() == element.get()) {
|
||||
for (; it != elements_.end(); ++it) {
|
||||
if (it->get() == element.get()) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!found)
|
||||
if (!found)
|
||||
elements_.push_back(element);
|
||||
|
||||
|
||||
return !found;
|
||||
}
|
||||
|
||||
void CefPostDataImpl::RemoveElements()
|
||||
{
|
||||
void CefPostDataImpl::RemoveElements() {
|
||||
AutoLock lock_scope(this);
|
||||
elements_.clear();
|
||||
}
|
||||
|
||||
void CefPostDataImpl::Set(net::UploadData& data)
|
||||
{
|
||||
void CefPostDataImpl::Set(net::UploadData& data) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
CefRefPtr<CefPostDataElement> postelem;
|
||||
@ -316,22 +305,20 @@ void CefPostDataImpl::Set(net::UploadData& data)
|
||||
}
|
||||
}
|
||||
|
||||
void CefPostDataImpl::Get(net::UploadData& data)
|
||||
{
|
||||
void CefPostDataImpl::Get(net::UploadData& data) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
net::UploadData::Element element;
|
||||
std::vector<net::UploadData::Element> data_elements;
|
||||
ElementVector::iterator it = elements_.begin();
|
||||
for(; it != elements_.end(); ++it) {
|
||||
for (; it != elements_.end(); ++it) {
|
||||
static_cast<CefPostDataElementImpl*>(it->get())->Get(element);
|
||||
data_elements.push_back(element);
|
||||
}
|
||||
data.SetElements(data_elements);
|
||||
}
|
||||
|
||||
void CefPostDataImpl::Set(const WebKit::WebHTTPBody& data)
|
||||
{
|
||||
void CefPostDataImpl::Set(const WebKit::WebHTTPBody& data) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
CefRefPtr<CefPostDataElement> postelem;
|
||||
@ -346,17 +333,16 @@ void CefPostDataImpl::Set(const WebKit::WebHTTPBody& data)
|
||||
}
|
||||
}
|
||||
|
||||
void CefPostDataImpl::Get(WebKit::WebHTTPBody& data)
|
||||
{
|
||||
void CefPostDataImpl::Get(WebKit::WebHTTPBody& data) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
WebKit::WebHTTPBody::Element element;
|
||||
ElementVector::iterator it = elements_.begin();
|
||||
for(; it != elements_.end(); ++it) {
|
||||
for (; it != elements_.end(); ++it) {
|
||||
static_cast<CefPostDataElementImpl*>(it->get())->Get(element);
|
||||
if(element.type == WebKit::WebHTTPBody::Element::TypeData) {
|
||||
if (element.type == WebKit::WebHTTPBody::Element::TypeData) {
|
||||
data.appendData(element.data);
|
||||
} else if(element.type == WebKit::WebHTTPBody::Element::TypeFile) {
|
||||
} else if (element.type == WebKit::WebHTTPBody::Element::TypeFile) {
|
||||
data.appendFile(element.filePath);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
@ -364,36 +350,31 @@ void CefPostDataImpl::Get(WebKit::WebHTTPBody& data)
|
||||
}
|
||||
}
|
||||
|
||||
CefRefPtr<CefPostDataElement> CefPostDataElement::CreatePostDataElement()
|
||||
{
|
||||
CefRefPtr<CefPostDataElement> CefPostDataElement::CreatePostDataElement() {
|
||||
CefRefPtr<CefPostDataElement> element(new CefPostDataElementImpl());
|
||||
return element;
|
||||
}
|
||||
|
||||
CefPostDataElementImpl::CefPostDataElementImpl()
|
||||
{
|
||||
CefPostDataElementImpl::CefPostDataElementImpl() {
|
||||
type_ = PDE_TYPE_EMPTY;
|
||||
memset(&data_, 0, sizeof(data_));
|
||||
}
|
||||
|
||||
CefPostDataElementImpl::~CefPostDataElementImpl()
|
||||
{
|
||||
CefPostDataElementImpl::~CefPostDataElementImpl() {
|
||||
SetToEmpty();
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::SetToEmpty()
|
||||
{
|
||||
void CefPostDataElementImpl::SetToEmpty() {
|
||||
AutoLock lock_scope(this);
|
||||
if(type_ == PDE_TYPE_BYTES)
|
||||
if (type_ == PDE_TYPE_BYTES)
|
||||
free(data_.bytes.bytes);
|
||||
else if(type_ == PDE_TYPE_FILE)
|
||||
else if (type_ == PDE_TYPE_FILE)
|
||||
cef_string_clear(&data_.filename);
|
||||
type_ = PDE_TYPE_EMPTY;
|
||||
memset(&data_, 0, sizeof(data_));
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::SetToFile(const CefString& fileName)
|
||||
{
|
||||
void CefPostDataElementImpl::SetToFile(const CefString& fileName) {
|
||||
AutoLock lock_scope(this);
|
||||
// Clear any data currently in the element
|
||||
SetToEmpty();
|
||||
@ -403,8 +384,7 @@ void CefPostDataElementImpl::SetToFile(const CefString& fileName)
|
||||
cef_string_copy(fileName.c_str(), fileName.length(), &data_.filename);
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::SetToBytes(size_t size, const void* bytes)
|
||||
{
|
||||
void CefPostDataElementImpl::SetToBytes(size_t size, const void* bytes) {
|
||||
AutoLock lock_scope(this);
|
||||
// Clear any data currently in the element
|
||||
SetToEmpty();
|
||||
@ -412,56 +392,51 @@ void CefPostDataElementImpl::SetToBytes(size_t size, const void* bytes)
|
||||
// Assign the new data
|
||||
void* data = malloc(size);
|
||||
DCHECK(data != NULL);
|
||||
if(data == NULL)
|
||||
if (data == NULL)
|
||||
return;
|
||||
|
||||
memcpy(data, bytes, size);
|
||||
|
||||
|
||||
type_ = PDE_TYPE_BYTES;
|
||||
data_.bytes.bytes = data;
|
||||
data_.bytes.size = size;
|
||||
}
|
||||
|
||||
CefPostDataElement::Type CefPostDataElementImpl::GetType()
|
||||
{
|
||||
CefPostDataElement::Type CefPostDataElementImpl::GetType() {
|
||||
AutoLock lock_scope(this);
|
||||
return type_;
|
||||
}
|
||||
|
||||
CefString CefPostDataElementImpl::GetFile()
|
||||
{
|
||||
CefString CefPostDataElementImpl::GetFile() {
|
||||
AutoLock lock_scope(this);
|
||||
DCHECK(type_ == PDE_TYPE_FILE);
|
||||
CefString filename;
|
||||
if(type_ == PDE_TYPE_FILE)
|
||||
if (type_ == PDE_TYPE_FILE)
|
||||
filename.FromString(data_.filename.str, data_.filename.length, false);
|
||||
return filename;
|
||||
}
|
||||
|
||||
size_t CefPostDataElementImpl::GetBytesCount()
|
||||
{
|
||||
size_t CefPostDataElementImpl::GetBytesCount() {
|
||||
AutoLock lock_scope(this);
|
||||
DCHECK(type_ == PDE_TYPE_BYTES);
|
||||
size_t size = 0;
|
||||
if(type_ == PDE_TYPE_BYTES)
|
||||
if (type_ == PDE_TYPE_BYTES)
|
||||
size = data_.bytes.size;
|
||||
return size;
|
||||
}
|
||||
|
||||
size_t CefPostDataElementImpl::GetBytes(size_t size, void* bytes)
|
||||
{
|
||||
size_t CefPostDataElementImpl::GetBytes(size_t size, void* bytes) {
|
||||
AutoLock lock_scope(this);
|
||||
DCHECK(type_ == PDE_TYPE_BYTES);
|
||||
size_t rv = 0;
|
||||
if(type_ == PDE_TYPE_BYTES) {
|
||||
if (type_ == PDE_TYPE_BYTES) {
|
||||
rv = (size < data_.bytes.size ? size : data_.bytes.size);
|
||||
memcpy(bytes, data_.bytes.bytes, rv);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::Set(const net::UploadData::Element& element)
|
||||
{
|
||||
void CefPostDataElementImpl::Set(const net::UploadData::Element& element) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
if (element.type() == net::UploadData::TYPE_BYTES) {
|
||||
@ -476,13 +451,12 @@ void CefPostDataElementImpl::Set(const net::UploadData::Element& element)
|
||||
}
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::Get(net::UploadData::Element& element)
|
||||
{
|
||||
void CefPostDataElementImpl::Get(net::UploadData::Element& element) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
if(type_ == PDE_TYPE_BYTES) {
|
||||
if (type_ == PDE_TYPE_BYTES) {
|
||||
element.SetToBytes(static_cast<char*>(data_.bytes.bytes), data_.bytes.size);
|
||||
} else if(type_ == PDE_TYPE_FILE) {
|
||||
} else if (type_ == PDE_TYPE_FILE) {
|
||||
FilePath path = FilePath(CefString(&data_.filename));
|
||||
element.SetToFilePath(path);
|
||||
} else {
|
||||
@ -490,29 +464,27 @@ void CefPostDataElementImpl::Get(net::UploadData::Element& element)
|
||||
}
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::Set(const WebKit::WebHTTPBody::Element& element)
|
||||
{
|
||||
void CefPostDataElementImpl::Set(const WebKit::WebHTTPBody::Element& element) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
if(element.type == WebKit::WebHTTPBody::Element::TypeData) {
|
||||
if (element.type == WebKit::WebHTTPBody::Element::TypeData) {
|
||||
SetToBytes(element.data.size(),
|
||||
static_cast<const void*>(element.data.data()));
|
||||
} else if(element.type == WebKit::WebHTTPBody::Element::TypeFile) {
|
||||
} else if (element.type == WebKit::WebHTTPBody::Element::TypeFile) {
|
||||
SetToFile(string16(element.filePath));
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::Get(WebKit::WebHTTPBody::Element& element)
|
||||
{
|
||||
void CefPostDataElementImpl::Get(WebKit::WebHTTPBody::Element& element) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
if(type_ == PDE_TYPE_BYTES) {
|
||||
if (type_ == PDE_TYPE_BYTES) {
|
||||
element.type = WebKit::WebHTTPBody::Element::TypeData;
|
||||
element.data.assign(
|
||||
static_cast<char*>(data_.bytes.bytes), data_.bytes.size);
|
||||
} else if(type_ == PDE_TYPE_FILE) {
|
||||
} else if (type_ == PDE_TYPE_FILE) {
|
||||
element.type = WebKit::WebHTTPBody::Element::TypeFile;
|
||||
element.filePath.assign(string16(CefString(&data_.filename)));
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user