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

Unified Diff: content/browser/renderer_host/database_message_filter.cc

Issue 207123002: Remove PlatformFile from database/vfs_backend (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | « no previous file | webkit/browser/database/vfs_backend.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/database_message_filter.cc
diff --git a/content/browser/renderer_host/database_message_filter.cc b/content/browser/renderer_host/database_message_filter.cc
index e2660593c0f47d5444e74a6601f119e192e630fc..66e14e09ec2435530d144825e1b4ff23415ccda0 100644
--- a/content/browser/renderer_host/database_message_filter.cc
+++ b/content/browser/renderer_host/database_message_filter.cc
@@ -119,6 +119,7 @@ void DatabaseMessageFilter::OnDatabaseOpenFile(
int desired_flags,
IPC::Message* reply_msg) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
+ base::File file;
base::PlatformFile file_handle = base::kInvalidPlatformFileValue;
std::string origin_identifier;
base::string16 database_name;
@@ -129,8 +130,8 @@ void DatabaseMessageFilter::OnDatabaseOpenFile(
// open handles to them in the database tracker to make sure they're
// around for as long as needed.
if (vfs_file_name.empty()) {
- VfsBackend::OpenTempFileInDirectory(db_tracker_->DatabaseDirectory(),
- desired_flags, &file_handle);
+ file = VfsBackend::OpenTempFileInDirectory(db_tracker_->DatabaseDirectory(),
+ desired_flags);
} else if (DatabaseUtil::CrackVfsFileName(vfs_file_name, &origin_identifier,
&database_name, NULL) &&
!db_tracker_->IsDatabaseScheduledForDeletion(origin_identifier,
@@ -138,27 +139,33 @@ void DatabaseMessageFilter::OnDatabaseOpenFile(
base::FilePath db_file = DatabaseUtil::GetFullFilePathForVfsFile(
db_tracker_.get(), vfs_file_name);
if (!db_file.empty()) {
- if (db_tracker_->IsIncognitoProfile()) {
- db_tracker_->GetIncognitoFileHandle(vfs_file_name, &file_handle);
- if (file_handle == base::kInvalidPlatformFileValue) {
- VfsBackend::OpenFile(db_file,
- desired_flags | SQLITE_OPEN_DELETEONCLOSE,
- &file_handle);
- if (!(desired_flags & SQLITE_OPEN_DELETEONCLOSE))
- db_tracker_->SaveIncognitoFileHandle(vfs_file_name, file_handle);
+ if (db_tracker_->IsIncognitoProfile()) {
+ db_tracker_->GetIncognitoFileHandle(vfs_file_name, &file_handle);
+ if (file_handle == base::kInvalidPlatformFileValue) {
+ file =
+ VfsBackend::OpenFile(db_file,
+ desired_flags | SQLITE_OPEN_DELETEONCLOSE);
+ if (!(desired_flags & SQLITE_OPEN_DELETEONCLOSE)) {
+ file_handle = file.TakePlatformFile();
+ db_tracker_->SaveIncognitoFileHandle(vfs_file_name, file_handle);
}
- } else {
- VfsBackend::OpenFile(db_file, desired_flags, &file_handle);
}
+ } else {
+ file = VfsBackend::OpenFile(db_file, desired_flags);
}
+ }
}
// Then we duplicate the file handle to make it useable in the renderer
// process. The original handle is closed, unless we saved it in the
// database tracker.
- bool auto_close = !db_tracker_->HasSavedIncognitoFileHandle(vfs_file_name);
- IPC::PlatformFileForTransit target_handle =
- IPC::GetFileHandleForProcess(file_handle, PeerHandle(), auto_close);
+ IPC::PlatformFileForTransit target_handle;
+ if (file.IsValid()) {
+ target_handle = IPC::TakeFileHandleForProcess(file.Pass(), PeerHandle());
michaeln 2014/03/24 18:57:20 What about the earlier calls to file.TakePlatformF
michaeln 2014/03/24 22:59:08 oh, i see the else clause dups file_handle directl
rvargas (doing something else) 2014/03/25 00:51:14 Pass() comes from MOVE_ONLY_TYPE_FOR_CPP_03 at the
michaeln 2014/03/25 01:21:12 duh, thnx
+ } else {
+ target_handle = IPC::GetFileHandleForProcess(file_handle, PeerHandle(),
+ false);
+ }
DatabaseHostMsg_OpenFile::WriteReplyParams(reply_msg, target_handle);
Send(reply_msg);
« no previous file with comments | « no previous file | webkit/browser/database/vfs_backend.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698