libcef: Update due to underlying chromium changes & bug fixes.

- Add v8_snapshot_cc project dependency (Issue # 11, fix by: vridosh)
- Fix possible crash on exit in browser_resource_loader_bridge.cc (Issue # 12, fix by: vridosh).
- localized_strings project renamed to webkit_strings.
- GetBitmapResource() in browser_webkit_glue.cc now returns GlueBitmap* instead of GlueBitmap.
- GetLocalizedString() in browser_webkit_glue_win.cc now returns string16 instead of std::wstring.
- Add BrowserWebViewDelegate::SetStatusbarText() method.
- Move BrowserWebViewDelegate::DidMove() from browser_webview_delegate.cc to browser_webview_delegate_win.cc.
- Move FromWindow() predefine in webwidget_host out of the header file.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@15 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2009-02-12 16:25:52 +00:00
parent 577b8387cf
commit e75e27e32c
10 changed files with 198 additions and 165 deletions

View File

@@ -195,78 +195,80 @@ class RequestProxy : public URLRequest::Delegate,
void AsyncStart(RequestParams* params) {
bool handled = false;
CefRefPtr<CefHandler> handler = browser_->GetHandler();
if(handler.get())
{
// Build the request object for passing to the handler
CefRefPtr<CefRequest> request(new CefRequestImpl());
CefRequestImpl* requestimpl = static_cast<CefRequestImpl*>(request.get());
if (browser_) {
CefRefPtr<CefHandler> handler = browser_->GetHandler();
if(handler.get())
{
// Build the request object for passing to the handler
CefRefPtr<CefRequest> request(new CefRequestImpl());
CefRequestImpl* requestimpl = static_cast<CefRequestImpl*>(request.get());
requestimpl->SetURL(UTF8ToWide(params->url.spec()));
requestimpl->SetMethod(UTF8ToWide(params->method));
// TODO(cef): Parse the extra header values from params->headers and
// add to the header map.
CefRequest::HeaderMap headerMap;
headerMap.insert(
std::make_pair(L"Referrer", UTF8ToWide(params->referrer.spec())));
requestimpl->SetURL(UTF8ToWide(params->url.spec()));
requestimpl->SetMethod(UTF8ToWide(params->method));
// TODO(cef): Parse the extra header values from params->headers and
// add to the header map.
CefRequest::HeaderMap headerMap;
headerMap.insert(
std::make_pair(L"Referrer", UTF8ToWide(params->referrer.spec())));
requestimpl->SetHeaderMap(headerMap);
requestimpl->SetHeaderMap(headerMap);
scoped_refptr<net::UploadData> upload = params->upload;
CefRefPtr<CefPostData> postdata;
if(upload.get()) {
postdata = new CefPostDataImpl();
static_cast<CefPostDataImpl*>(postdata.get())->Set(*upload.get());
requestimpl->SetPostData(postdata);
}
scoped_refptr<net::UploadData> upload = params->upload;
CefRefPtr<CefPostData> postdata;
if(upload.get()) {
postdata = new CefPostDataImpl();
static_cast<CefPostDataImpl*>(postdata.get())->Set(*upload.get());
requestimpl->SetPostData(postdata);
}
int loadFlags = params->load_flags;
int loadFlags = params->load_flags;
// Handler output will be returned in these variables
std::wstring redirectUrl;
CefRefPtr<CefStreamReader> resourceStream;
std::wstring mimeType;
CefHandler::RetVal rv = handler->HandleBeforeResourceLoad(
browser_, request, redirectUrl, resourceStream, mimeType, loadFlags);
if(rv == CefHandler::RV_HANDLED) {
// cancel the resource load
handled = true;
OnCompletedRequest(URLRequestStatus(URLRequestStatus::CANCELED, 0));
} else if(!redirectUrl.empty()) {
// redirect to the specified URL
params->url = GURL(WideToUTF8(redirectUrl));
OnReceivedRedirect(params->url);
} else if(resourceStream.get()) {
// load from the provided resource stream
handled = true;
// Handler output will be returned in these variables
std::wstring redirectUrl;
CefRefPtr<CefStreamReader> resourceStream;
std::wstring mimeType;
CefHandler::RetVal rv = handler->HandleBeforeResourceLoad(
browser_, request, redirectUrl, resourceStream, mimeType, loadFlags);
if(rv == CefHandler::RV_HANDLED) {
// cancel the resource load
handled = true;
OnCompletedRequest(URLRequestStatus(URLRequestStatus::CANCELED, 0));
} else if(!redirectUrl.empty()) {
// redirect to the specified URL
params->url = GURL(WideToUTF8(redirectUrl));
OnReceivedRedirect(params->url);
} else if(resourceStream.get()) {
// load from the provided resource stream
handled = true;
long offset = resourceStream->Seek(0, SEEK_END);
resourceStream->Seek(0, SEEK_SET);
long offset = resourceStream->Seek(0, SEEK_END);
resourceStream->Seek(0, SEEK_SET);
resource_stream_ = resourceStream;
resource_stream_ = resourceStream;
ResourceLoaderBridge::ResponseInfo info;
info.content_length = static_cast<int64>(offset);
if(!mimeType.empty())
info.mime_type = WideToUTF8(mimeType);
OnReceivedResponse(info, false);
AsyncReadData();
ResourceLoaderBridge::ResponseInfo info;
info.content_length = static_cast<int64>(offset);
if(!mimeType.empty())
info.mime_type = WideToUTF8(mimeType);
OnReceivedResponse(info, false);
AsyncReadData();
}
}
if(!handled)
{
request_.reset(new URLRequest(params->url, this));
request_->set_method(params->method);
request_->set_policy_url(params->policy_url);
request_->set_referrer(params->referrer.spec());
request_->SetExtraRequestHeaders(params->headers);
request_->set_load_flags(params->load_flags);
request_->set_upload(params->upload.get());
request_->set_context(request_context);
request_->Start();
}
}
if(!handled)
{
request_.reset(new URLRequest(params->url, this));
request_->set_method(params->method);
request_->set_policy_url(params->policy_url);
request_->set_referrer(params->referrer.spec());
request_->SetExtraRequestHeaders(params->headers);
request_->set_load_flags(params->load_flags);
request_->set_upload(params->upload.get());
request_->set_context(request_context);
request_->Start();
}
delete params;