mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
- Add CefURLRequest support (issue #517).
- Add CefBrowserProcessHandler interface (issue #650). - Internally re-register supported schemes with CefCookieManager after changing the storage path (issue #651). - Add CefResourceHandler callbacks for blocking cookie loading and saving (issue #652). - Allow custom scheme handlers for requests that do not originate from browser content (issue #653). - Use 'int' instead of 'RequestFlags' for CefRequest::GetFlags and SetFlags (issue #654). - Rename cef_request.h CreateObject methods to Create (issue #655). - Add #ifdef guards to cef_tuple.h to allow the use of both cef_runnable.h and base/bind.h in the same unit test source file. - Retrieve cookieable schemes as part of ClientApp::RegisterCustomSchemes and register with the global cookie manager. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@697 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -169,14 +169,18 @@ net::URLRequestContext* CefURLRequestContextGetter::GetURLRequestContext() {
|
||||
|
||||
CefRefPtr<CefApp> app = _Context->application();
|
||||
if (app.get()) {
|
||||
CefRefPtr<CefProxyHandler> handler = app->GetProxyHandler();
|
||||
if (handler) {
|
||||
// The client will provide proxy resolution.
|
||||
CreateProxyConfigService();
|
||||
storage_->set_proxy_service(
|
||||
new net::ProxyService(proxy_config_service_.release(),
|
||||
new CefProxyResolver(handler), NULL));
|
||||
proxy_service_set = true;
|
||||
CefRefPtr<CefBrowserProcessHandler> handler =
|
||||
app->GetBrowserProcessHandler();
|
||||
if (handler.get()) {
|
||||
CefRefPtr<CefProxyHandler> proxy_handler = handler->GetProxyHandler();
|
||||
if (proxy_handler.get()) {
|
||||
// The client will provide proxy resolution.
|
||||
CreateProxyConfigService();
|
||||
storage_->set_proxy_service(
|
||||
new net::ProxyService(proxy_config_service_.release(),
|
||||
new CefProxyResolver(proxy_handler), NULL));
|
||||
proxy_service_set = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -315,6 +319,37 @@ void CefURLRequestContextGetter::SetCookieStoragePath(const FilePath& path) {
|
||||
storage_->set_cookie_store(
|
||||
new net::CookieMonster(persistent_store.get(), NULL));
|
||||
cookie_store_path_ = path;
|
||||
|
||||
// Restore the previously supported schemes.
|
||||
SetCookieSupportedSchemes(cookie_supported_schemes_);
|
||||
}
|
||||
|
||||
void CefURLRequestContextGetter::SetCookieSupportedSchemes(
|
||||
const std::vector<std::string>& schemes) {
|
||||
CEF_REQUIRE_IOT();
|
||||
|
||||
cookie_supported_schemes_ = schemes;
|
||||
|
||||
if (cookie_supported_schemes_.empty()) {
|
||||
cookie_supported_schemes_.push_back("http");
|
||||
cookie_supported_schemes_.push_back("https");
|
||||
}
|
||||
|
||||
std::set<std::string> scheme_set;
|
||||
std::vector<std::string>::const_iterator it =
|
||||
cookie_supported_schemes_.begin();
|
||||
for (; it != cookie_supported_schemes_.end(); ++it)
|
||||
scheme_set.insert(*it);
|
||||
|
||||
const char** arr = new const char*[scheme_set.size()];
|
||||
std::set<std::string>::const_iterator it2 = scheme_set.begin();
|
||||
for (int i = 0; it2 != scheme_set.end(); ++it2, ++i)
|
||||
arr[i] = it2->c_str();
|
||||
|
||||
url_request_context_->cookie_store()->GetCookieMonster()->
|
||||
SetCookieableSchemes(arr, scheme_set.size());
|
||||
|
||||
delete [] arr;
|
||||
}
|
||||
|
||||
void CefURLRequestContextGetter::CreateProxyConfigService() {
|
||||
|
Reference in New Issue
Block a user