| Index: chrome/renderer/renderer_webkitclient_impl.cc
|
| ===================================================================
|
| --- chrome/renderer/renderer_webkitclient_impl.cc (revision 24791)
|
| +++ chrome/renderer/renderer_webkitclient_impl.cc (working copy)
|
| @@ -4,6 +4,12 @@
|
|
|
| #include "chrome/renderer/renderer_webkitclient_impl.h"
|
|
|
| +#if defined(USE_SYSTEM_SQLITE)
|
| +#include <sqlite3.h>
|
| +#else
|
| +#include "third_party/sqlite/preprocessed/sqlite3.h"
|
| +#endif
|
| +
|
| #include "base/command_line.h"
|
| #include "base/file_path.h"
|
| #include "base/platform_file.h"
|
| @@ -27,6 +33,10 @@
|
| #include "chrome/renderer/renderer_sandbox_support_linux.h"
|
| #endif
|
|
|
| +#if defined(OS_POSIX)
|
| +#include "base/file_descriptor_posix.h"
|
| +#endif
|
| +
|
| using WebKit::WebApplicationCacheHost;
|
| using WebKit::WebApplicationCacheHostClient;
|
| using WebKit::WebStorageArea;
|
| @@ -226,24 +236,48 @@
|
| //------------------------------------------------------------------------------
|
|
|
| base::PlatformFile RendererWebKitClientImpl::databaseOpenFile(
|
| - const WebString& file_name, int desired_flags) {
|
| + const WebString& file_name, int desired_flags,
|
| + base::PlatformFile* dir_handle) {
|
| DBMessageFilter* db_message_filter = DBMessageFilter::GetInstance();
|
| int message_id = db_message_filter->GetUniqueID();
|
| - return db_message_filter->SendAndWait(
|
| - new ViewHostMsg_DatabaseOpenFile(
|
| - FilePath(webkit_glue::WebStringToFilePathString(file_name)),
|
| - desired_flags, message_id),
|
| - message_id, base::kInvalidPlatformFileValue);
|
| +
|
| + ViewMsg_DatabaseOpenFileResponse_Params default_response =
|
| +#if defined(OS_WIN)
|
| + { base::kInvalidPlatformFileValue };
|
| +#elif defined(OS_POSIX)
|
| + { base::FileDescriptor(base::kInvalidPlatformFileValue, true),
|
| + base::FileDescriptor(base::kInvalidPlatformFileValue, true) };
|
| +#endif
|
| +
|
| + ViewMsg_DatabaseOpenFileResponse_Params result =
|
| + db_message_filter->SendAndWait(
|
| + new ViewHostMsg_DatabaseOpenFile(
|
| + FilePath(webkit_glue::WebStringToFilePathString(file_name)),
|
| + desired_flags, message_id),
|
| + message_id, default_response);
|
| +
|
| +#if defined(OS_WIN)
|
| + if (dir_handle) {
|
| + *dir_handle = base::kInvalidPlatformFileValue;
|
| + }
|
| + return result.file_handle;
|
| +#elif defined(OS_POSIX)
|
| + if (dir_handle) {
|
| + *dir_handle = result.dir_handle.fd;
|
| + }
|
| + return result.file_handle.fd;
|
| +#endif
|
| }
|
|
|
| -bool RendererWebKitClientImpl::databaseDeleteFile(const WebString& file_name) {
|
| +int RendererWebKitClientImpl::databaseDeleteFile(
|
| + const WebString& file_name, bool sync_dir) {
|
| DBMessageFilter* db_message_filter = DBMessageFilter::GetInstance();
|
| int message_id = db_message_filter->GetUniqueID();
|
| return db_message_filter->SendAndWait(
|
| new ViewHostMsg_DatabaseDeleteFile(
|
| - FilePath(webkit_glue::WebStringToFilePathString(file_name)),
|
| + FilePath(webkit_glue::WebStringToFilePathString(file_name)), sync_dir,
|
| message_id),
|
| - message_id, false);
|
| + message_id, SQLITE_IOERR_DELETE);
|
| }
|
|
|
| long RendererWebKitClientImpl::databaseGetFileAttributes(
|
|
|