mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Fix BrowserFileSystem context creation race condition between UI and IO threads (issue #442).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@404 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
|
||||
#include "browser_file_system.h"
|
||||
#include "browser_file_writer.h"
|
||||
#include "cef_thread.h"
|
||||
|
||||
#include "base/file_path.h"
|
||||
#include "base/memory/scoped_callback_factory.h"
|
||||
@ -122,10 +123,19 @@ class BrowserFileSystemCallbackDispatcher
|
||||
} // namespace
|
||||
|
||||
BrowserFileSystem::BrowserFileSystem() {
|
||||
}
|
||||
|
||||
BrowserFileSystem::~BrowserFileSystem() {
|
||||
}
|
||||
|
||||
void BrowserFileSystem::CreateContext() {
|
||||
if (file_system_context_.get())
|
||||
return;
|
||||
|
||||
if (file_system_dir_.CreateUniqueTempDir()) {
|
||||
file_system_context_ = new FileSystemContext(
|
||||
base::MessageLoopProxy::current(),
|
||||
base::MessageLoopProxy::current(),
|
||||
CefThread::GetMessageLoopProxyForThread(CefThread::FILE),
|
||||
CefThread::GetMessageLoopProxyForThread(CefThread::IO),
|
||||
NULL /* special storage policy */,
|
||||
NULL /* quota manager */,
|
||||
file_system_dir_.path(),
|
||||
@ -138,9 +148,6 @@ BrowserFileSystem::BrowserFileSystem() {
|
||||
}
|
||||
}
|
||||
|
||||
BrowserFileSystem::~BrowserFileSystem() {
|
||||
}
|
||||
|
||||
void BrowserFileSystem::OpenFileSystem(
|
||||
WebFrame* frame, WebFileSystem::Type web_filesystem_type,
|
||||
long long, bool create,
|
||||
|
Reference in New Issue
Block a user