diff --git a/appshell/cefclient.cpp b/appshell/cefclient.cpp index e96faddf5..21e1667bd 100644 --- a/appshell/cefclient.cpp +++ b/appshell/cefclient.cpp @@ -60,6 +60,7 @@ void AppGetSettings(CefSettings& settings, CefRefPtr app) { g_command_line->HasSwitch(cefclient::kMultiThreadedMessageLoop); #endif + settings.persist_session_cookies = true; CefString(&settings.cache_path) = g_command_line->GetSwitchValue(cefclient::kCachePath); CefString(&settings.log_file) = diff --git a/appshell/client_handler.cpp b/appshell/client_handler.cpp index b97a8309a..c552d3880 100644 --- a/appshell/client_handler.cpp +++ b/appshell/client_handler.cpp @@ -35,6 +35,16 @@ ClientHandler::ClientHandler() callbackId = 0; CreateProcessMessageDelegates(process_message_delegates_); CreateRequestDelegates(request_delegates_); + + // Default schemes that support cookies. + cookieable_schemes_.push_back("http"); + cookieable_schemes_.push_back("https"); + cookieable_schemes_.push_back("file"); + + // Register cookieable schemes with the global cookie manager. + CefRefPtr manager = CefCookieManager::GetGlobalManager(); + ASSERT(manager.get()); + manager->SetSupportedSchemes(cookieable_schemes_); } ClientHandler::~ClientHandler() { diff --git a/appshell/client_handler.h b/appshell/client_handler.h index e3ab256c3..292420be0 100644 --- a/appshell/client_handler.h +++ b/appshell/client_handler.h @@ -277,6 +277,9 @@ class ClientHandler : public CefClient, IMPLEMENT_REFCOUNTING(ClientHandler); // Include the default locking implementation. IMPLEMENT_LOCKING(ClientHandler); + + // Schemes that will be registered with the global cookie manager. + std::vector cookieable_schemes_; }; #endif // CEF_TESTS_CEFCLIENT_CLIENT_HANDLER_H_