Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5354)

Unified Diff: chrome/renderer/renderer_webkitclient_impl.cc

Issue 174232: Chromium side patch for DB support on Linux. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Final version, including changes to the DEPS file. Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/renderer_webkitclient_impl.h ('k') | third_party/sqlite/README.chromium » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « chrome/renderer/renderer_webkitclient_impl.h ('k') | third_party/sqlite/README.chromium » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698