mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-03 04:27:43 +01:00
Update to Chromium revision 173683.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@982 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
2acdc55727
commit
5061db7c1b
@ -17,5 +17,5 @@
|
||||
|
||||
{
|
||||
'chromium_url': 'http://src.chromium.org/svn/trunk/src',
|
||||
'chromium_revision': '170167',
|
||||
'chromium_revision': '173683',
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2008-2011 Marshall A. Greenblatt. Portions Copyright (c)
|
||||
// Copyright (c) 2008-2013 Marshall A. Greenblatt. Portions Copyright (c)
|
||||
// 2006-2009 Google Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
|
@ -759,7 +759,7 @@
|
||||
'<(DEPTH)/content/browser/geolocation/device_data_provider.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/empty_device_data_provider.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/geolocation_provider.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/location_arbitrator.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/location_arbitrator_impl.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/location_provider.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/network_location_provider.cc',
|
||||
'<(DEPTH)/content/browser/geolocation/network_location_request.cc',
|
||||
|
@ -453,10 +453,11 @@ class RequestProxy : public net::URLRequest::Delegate,
|
||||
|
||||
bool handled = false;
|
||||
|
||||
scoped_refptr<net::UploadData> upload_data;
|
||||
scoped_ptr<net::UploadDataStream> upload_data_stream;
|
||||
if (params->request_body) {
|
||||
upload_data = params->request_body->ResolveElementsAndCreateUploadData(
|
||||
_Context->request_context()->blob_storage_controller());
|
||||
upload_data_stream.reset(
|
||||
params->request_body->ResolveElementsAndCreateUploadDataStream(
|
||||
_Context->request_context()->blob_storage_controller()));
|
||||
}
|
||||
|
||||
if (browser_.get()) {
|
||||
@ -482,10 +483,10 @@ class RequestProxy : public net::URLRequest::Delegate,
|
||||
requestimpl->SetHeaderMap(headerMap);
|
||||
|
||||
// Transfer post data, if any
|
||||
if (upload_data.get()) {
|
||||
if (upload_data_stream) {
|
||||
CefRefPtr<CefPostData> postdata(new CefPostDataImpl());
|
||||
static_cast<CefPostDataImpl*>(postdata.get())->Set(
|
||||
*upload_data.get());
|
||||
*upload_data_stream.get());
|
||||
requestimpl->SetPostData(postdata);
|
||||
}
|
||||
|
||||
@ -526,8 +527,10 @@ class RequestProxy : public net::URLRequest::Delegate,
|
||||
// Observe post data from request.
|
||||
CefRefPtr<CefPostData> postData = request->GetPostData();
|
||||
if (postData.get()) {
|
||||
upload_data = new net::UploadData();
|
||||
static_cast<CefPostDataImpl*>(postData.get())->Get(*upload_data);
|
||||
upload_data_stream.reset(
|
||||
static_cast<CefPostDataImpl*>(postData.get())->Get());
|
||||
} else {
|
||||
upload_data_stream.reset(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -600,8 +603,8 @@ class RequestProxy : public net::URLRequest::Delegate,
|
||||
headers.AddHeadersFromString(params->headers);
|
||||
request_->SetExtraRequestHeaders(headers);
|
||||
request_->set_load_flags(params->load_flags);
|
||||
if (upload_data)
|
||||
request_->set_upload(upload_data);
|
||||
if (upload_data_stream)
|
||||
request_->set_upload(upload_data_stream.Pass());
|
||||
request_->SetUserData(kCefUserData,
|
||||
new ExtraRequestInfo(browser_.get(), params->request_type));
|
||||
BrowserAppCacheSystem::SetExtraRequestInfo(
|
||||
@ -1067,7 +1070,8 @@ class ResourceLoaderBridgeImpl : public ResourceLoaderBridge,
|
||||
if (proxy_) {
|
||||
proxy_->DropPeer();
|
||||
// Let the proxy die on the IO thread
|
||||
CefThread::ReleaseSoon(CefThread::IO, FROM_HERE, proxy_.release());
|
||||
proxy_->AddRef();
|
||||
CefThread::ReleaseSoon(CefThread::IO, FROM_HERE, proxy_.get());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,52 @@ using WebKit::WebString;
|
||||
using WebKit::WebURL;
|
||||
using WebKit::WebURLRequest;
|
||||
|
||||
namespace {
|
||||
|
||||
// A subclass of net::UploadBytesElementReader that keeps the associated
|
||||
// UploadElement alive until the request completes.
|
||||
class BytesElementReader : public net::UploadBytesElementReader {
|
||||
public:
|
||||
explicit BytesElementReader(scoped_ptr<net::UploadElement> element)
|
||||
: net::UploadBytesElementReader(element->bytes(),
|
||||
element->bytes_length()),
|
||||
element_(element.Pass()) {
|
||||
DCHECK_EQ(net::UploadElement::TYPE_BYTES, element_->type());
|
||||
}
|
||||
|
||||
virtual ~BytesElementReader() {}
|
||||
|
||||
private:
|
||||
scoped_ptr<net::UploadElement> element_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(BytesElementReader);
|
||||
};
|
||||
|
||||
// A subclass of net::UploadFileElementReader that keeps the associated
|
||||
// UploadElement alive until the request completes.
|
||||
class FileElementReader : public net::UploadFileElementReader {
|
||||
public:
|
||||
explicit FileElementReader(scoped_ptr<net::UploadElement> element)
|
||||
: net::UploadFileElementReader(
|
||||
element->file_path(),
|
||||
element->file_range_offset(),
|
||||
element->file_range_length(),
|
||||
element->expected_file_modification_time()),
|
||||
element_(element.Pass()) {
|
||||
DCHECK_EQ(net::UploadElement::TYPE_FILE, element_->type());
|
||||
}
|
||||
|
||||
virtual ~FileElementReader() {}
|
||||
|
||||
private:
|
||||
scoped_ptr<net::UploadElement> element_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(FileElementReader);
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
CefRefPtr<CefRequest> CefRequest::CreateRequest() {
|
||||
CefRefPtr<CefRequest> request(new CefRequestImpl());
|
||||
return request;
|
||||
@ -340,6 +386,19 @@ void CefPostDataImpl::Get(net::UploadData& data) {
|
||||
data.swap_elements(&data_elements);
|
||||
}
|
||||
|
||||
net::UploadDataStream* CefPostDataImpl::Get() {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
ScopedVector<net::UploadElementReader> element_readers;
|
||||
ElementVector::const_iterator it = elements_.begin();
|
||||
for (; it != elements_.end(); ++it) {
|
||||
element_readers.push_back(
|
||||
static_cast<CefPostDataElementImpl*>(it->get())->Get());
|
||||
}
|
||||
|
||||
return new net::UploadDataStream(&element_readers, 0);
|
||||
}
|
||||
|
||||
void CefPostDataImpl::Set(const WebKit::WebHTTPBody& data) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
@ -504,6 +563,25 @@ void CefPostDataElementImpl::Get(net::UploadElement& element) {
|
||||
}
|
||||
}
|
||||
|
||||
net::UploadElementReader* CefPostDataElementImpl::Get() {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
if (type_ == PDE_TYPE_BYTES) {
|
||||
net::UploadElement* element = new net::UploadElement();
|
||||
element->SetToBytes(static_cast<char*>(data_.bytes.bytes),
|
||||
data_.bytes.size);
|
||||
return new BytesElementReader(make_scoped_ptr(element));
|
||||
} else if (type_ == PDE_TYPE_FILE) {
|
||||
net::UploadElement* element = new net::UploadElement();
|
||||
FilePath path = FilePath(CefString(&data_.filename));
|
||||
element->SetToFilePath(path);
|
||||
return new FileElementReader(make_scoped_ptr(element));
|
||||
} else {
|
||||
NOTREACHED();
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void CefPostDataElementImpl::Set(const WebKit::WebHTTPBody::Element& element) {
|
||||
AutoLock lock_scope(this);
|
||||
|
||||
|
@ -85,6 +85,7 @@ class CefPostDataImpl : public CefPostData {
|
||||
void Set(const net::UploadData& data);
|
||||
void Set(const net::UploadDataStream& data_stream);
|
||||
void Get(net::UploadData& data);
|
||||
net::UploadDataStream* Get();
|
||||
void Set(const WebKit::WebHTTPBody& data);
|
||||
void Get(WebKit::WebHTTPBody& data);
|
||||
|
||||
@ -114,6 +115,7 @@ class CefPostDataElementImpl : public CefPostDataElement {
|
||||
void Set(const net::UploadElement& element);
|
||||
void Set(const net::UploadElementReader& element_reader);
|
||||
void Get(net::UploadElement& element);
|
||||
net::UploadElementReader* Get();
|
||||
void Set(const WebKit::WebHTTPBody::Element& element);
|
||||
void Get(WebKit::WebHTTPBody::Element& element);
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: page/FrameView.cpp
|
||||
===================================================================
|
||||
--- page/FrameView.cpp (revision 134630)
|
||||
--- page/FrameView.cpp (revision 137939)
|
||||
+++ page/FrameView.cpp (working copy)
|
||||
@@ -206,10 +206,12 @@
|
||||
@@ -209,10 +209,12 @@
|
||||
if (!page)
|
||||
return;
|
||||
|
||||
@ -17,7 +17,7 @@ Index: page/FrameView.cpp
|
||||
PassRefPtr<FrameView> FrameView::create(Frame* frame)
|
||||
Index: platform/mac/NSScrollerImpDetails.mm
|
||||
===================================================================
|
||||
--- platform/mac/NSScrollerImpDetails.mm (revision 134630)
|
||||
--- platform/mac/NSScrollerImpDetails.mm (revision 137939)
|
||||
+++ platform/mac/NSScrollerImpDetails.mm (working copy)
|
||||
@@ -34,6 +34,7 @@
|
||||
#if PLATFORM(CHROMIUM)
|
||||
|
@ -103,6 +103,11 @@ class TestSchemeHandler : public TestHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!test_results_->redirect_url.empty() &&
|
||||
newUrl == test_results_->redirect_url) {
|
||||
EXPECT_TRUE(isRedirect);
|
||||
}
|
||||
|
||||
if (isRedirect) {
|
||||
test_results_->got_redirect.yes();
|
||||
EXPECT_EQ(newUrl, test_results_->redirect_url);
|
||||
|
Loading…
x
Reference in New Issue
Block a user