diff options
-rw-r--r-- | base/file_util_proxy.cc | 57 | ||||
-rw-r--r-- | base/file_util_proxy.h | 13 | ||||
-rw-r--r-- | chrome/browser/file_system/file_system_dispatcher_host.cc | 6 | ||||
-rw-r--r-- | chrome/common/file_system/file_system_dispatcher.cc | 3 | ||||
-rw-r--r-- | chrome/common/file_system/webfilesystem_callback_dispatcher.cc | 37 | ||||
-rw-r--r-- | chrome/common/file_system/webfilesystem_callback_dispatcher.h | 1 | ||||
-rw-r--r-- | webkit/fileapi/file_system_callback_dispatcher.h | 3 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation.cc | 101 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation.h | 31 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation_unittest.cc | 58 | ||||
-rw-r--r-- | webkit/glue/plugins/pepper_file_system.cc | 8 | ||||
-rw-r--r-- | webkit/tools/test_shell/simple_file_system.cc | 2 |
12 files changed, 91 insertions, 229 deletions
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc index d71f374..7f7b03a 100644 --- a/base/file_util_proxy.cc +++ b/base/file_util_proxy.cc @@ -498,7 +498,7 @@ class RelayRead : public MessageLoopRelay { class RelayWrite : public MessageLoopRelay { public: RelayWrite(base::PlatformFile file, - int64 offset, + long long offset, const char* buffer, int bytes_to_write, base::FileUtilProxy::ReadWriteCallback* callback) @@ -582,57 +582,24 @@ class RelayTouchFilePath : public RelayWithStatusCallback { base::Time last_modified_time_; }; -class RelayTruncatePlatformFile : public RelayWithStatusCallback { - public: - RelayTruncatePlatformFile(base::PlatformFile file, - int64 length, - base::FileUtilProxy::StatusCallback* callback) - : RelayWithStatusCallback(callback), - file_(file), - length_(length) { - } - - protected: - virtual void RunWork() { - if (!base::TruncatePlatformFile(file_, length_)) - set_error_code(base::PLATFORM_FILE_ERROR_FAILED); - } - - private: - base::PlatformFile file_; - int64 length_; -}; - class RelayTruncate : public RelayWithStatusCallback { public: - RelayTruncate(const FilePath& path, + RelayTruncate(base::PlatformFile file, int64 length, base::FileUtilProxy::StatusCallback* callback) : RelayWithStatusCallback(callback), - path_(path), + file_(file), length_(length) { } protected: virtual void RunWork() { - base::PlatformFileError error_code(base::PLATFORM_FILE_ERROR_FAILED); - base::PlatformFile file = - base::CreatePlatformFile( - path_, - base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_WRITE, - NULL, - &error_code); - if (error_code != base::PLATFORM_FILE_OK) { - set_error_code(error_code); - return; - } - if (!base::TruncatePlatformFile(file, length_)) + if (!base::TruncatePlatformFile(file_, length_)) set_error_code(base::PLATFORM_FILE_ERROR_FAILED); - base::ClosePlatformFile(file); } private: - FilePath path_; + base::PlatformFile file_; int64 length_; }; @@ -815,20 +782,10 @@ bool FileUtilProxy::Touch( bool FileUtilProxy::Truncate( scoped_refptr<MessageLoopProxy> message_loop_proxy, PlatformFile file, - int64 length, - StatusCallback* callback) { - return Start(FROM_HERE, message_loop_proxy, - new RelayTruncatePlatformFile(file, length, callback)); -} - -// static -bool FileUtilProxy::Truncate( - scoped_refptr<MessageLoopProxy> message_loop_proxy, - const FilePath& path, - int64 length, + long long length, StatusCallback* callback) { return Start(FROM_HERE, message_loop_proxy, - new RelayTruncate(path, length, callback)); + new RelayTruncate(file, length, callback)); } // static diff --git a/base/file_util_proxy.h b/base/file_util_proxy.h index 32b78630..081c11b 100644 --- a/base/file_util_proxy.h +++ b/base/file_util_proxy.h @@ -138,7 +138,7 @@ class FileUtilProxy { // Writes to a file. If |offset| is greater than the length of the file, // |false| is returned. On success, the file pointer is moved to position - // |offset + bytes_to_write| in the file. The callback can be NULL. + // |offset + bytes_to_write| in the file. If The callback can be NULL. static bool Write( scoped_refptr<MessageLoopProxy> message_loop_proxy, base::PlatformFile file, @@ -169,16 +169,7 @@ class FileUtilProxy { static bool Truncate( scoped_refptr<MessageLoopProxy> message_loop_proxy, base::PlatformFile file, - int64 length, - StatusCallback* callback); - - // Truncates a file to the given length. If |length| is greater than the - // current length of the file, the file will be extended with zeroes. - // The callback can be NULL. - static bool Truncate( - scoped_refptr<MessageLoopProxy> message_loop_proxy, - const FilePath& path, - int64 length, + long long length, StatusCallback* callback); // Flushes a file. The callback can be NULL. diff --git a/chrome/browser/file_system/file_system_dispatcher_host.cc b/chrome/browser/file_system/file_system_dispatcher_host.cc index 6dd6072..18daec8 100644 --- a/chrome/browser/file_system/file_system_dispatcher_host.cc +++ b/chrome/browser/file_system/file_system_dispatcher_host.cc @@ -238,11 +238,9 @@ void FileSystemDispatcherHost::OnCancel( fileapi::FileSystemOperation* write = operations_.Lookup(request_id_to_cancel); if (write) { - // The cancel will eventually send both the write failure and the cancel - // success. - write->Cancel(GetNewOperation(request_id)); + write->Cancel(); + Send(new ViewMsg_FileSystem_DidSucceed(request_id)); } else { - // The write already finished; report that we failed to stop it. Send(new ViewMsg_FileSystem_DidFail( request_id, base::PLATFORM_FILE_ERROR_INVALID_OPERATION)); } diff --git a/chrome/common/file_system/file_system_dispatcher.cc b/chrome/common/file_system/file_system_dispatcher.cc index a8761a2..e9bc96e 100644 --- a/chrome/common/file_system/file_system_dispatcher.cc +++ b/chrome/common/file_system/file_system_dispatcher.cc @@ -215,7 +215,8 @@ void FileSystemDispatcher::DidWrite( fileapi::FileSystemCallbackDispatcher* dispatcher = dispatchers_.Lookup(request_id); DCHECK(dispatcher); - dispatcher->DidWrite(bytes, complete); + // TODO(ericu): Coming soon. + // dispatcher->DidWrite(bytes, complete); if (complete) dispatchers_.Remove(request_id); } diff --git a/chrome/common/file_system/webfilesystem_callback_dispatcher.cc b/chrome/common/file_system/webfilesystem_callback_dispatcher.cc index bf8d901..c68ff18 100644 --- a/chrome/common/file_system/webfilesystem_callback_dispatcher.cc +++ b/chrome/common/file_system/webfilesystem_callback_dispatcher.cc @@ -18,6 +18,30 @@ using WebKit::WebFileSystemEntry; using WebKit::WebString; using WebKit::WebVector; +namespace { + +WebKit::WebFileError PlatformFileErrorToWebFileError( + base::PlatformFileError error_code) { + switch (error_code) { + case base::PLATFORM_FILE_ERROR_NOT_FOUND: + return WebKit::WebFileErrorNotFound; + case base::PLATFORM_FILE_ERROR_INVALID_OPERATION: + case base::PLATFORM_FILE_ERROR_EXISTS: + case base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY: + return WebKit::WebFileErrorInvalidModification; + case base::PLATFORM_FILE_ERROR_ACCESS_DENIED: + return WebKit::WebFileErrorNoModificationAllowed; + case base::PLATFORM_FILE_ERROR_FAILED: + return WebKit::WebFileErrorInvalidState; + case base::PLATFORM_FILE_ERROR_ABORT: + return WebKit::WebFileErrorAbort; + default: + return WebKit::WebFileErrorInvalidModification; + } +} + +} + WebFileSystemCallbackDispatcher::WebFileSystemCallbackDispatcher( WebFileSystemCallbacks* callbacks) : callbacks_(callbacks) { @@ -32,11 +56,6 @@ void WebFileSystemCallbackDispatcher::DidReadMetadata( const base::PlatformFileInfo& file_info) { WebFileInfo web_file_info; web_file_info.modificationTime = file_info.last_modified.ToDoubleT(); - web_file_info.length = file_info.size; - if (file_info.is_directory) - web_file_info.type = WebFileInfo::TypeDirectory; - else - web_file_info.type = WebFileInfo::TypeFile; callbacks_->didReadMetadata(web_file_info); } @@ -59,11 +78,5 @@ void WebFileSystemCallbackDispatcher::DidOpenFileSystem( void WebFileSystemCallbackDispatcher::DidFail( base::PlatformFileError error_code) { - callbacks_->didFail( - webkit_glue::PlatformFileErrorToWebFileError(error_code)); + callbacks_->didFail(PlatformFileErrorToWebFileError(error_code)); } - -void WebFileSystemCallbackDispatcher::DidWrite(int64 bytes, bool complete) { - NOTREACHED(); -} - diff --git a/chrome/common/file_system/webfilesystem_callback_dispatcher.h b/chrome/common/file_system/webfilesystem_callback_dispatcher.h index 075d5bb..ade811b 100644 --- a/chrome/common/file_system/webfilesystem_callback_dispatcher.h +++ b/chrome/common/file_system/webfilesystem_callback_dispatcher.h @@ -34,7 +34,6 @@ class WebFileSystemCallbackDispatcher virtual void DidOpenFileSystem(const std::string&, const FilePath&); virtual void DidFail(base::PlatformFileError); - virtual void DidWrite(int64 bytes, bool complete); private: WebKit::WebFileSystemCallbacks* callbacks_; diff --git a/webkit/fileapi/file_system_callback_dispatcher.h b/webkit/fileapi/file_system_callback_dispatcher.h index e33dd69..c85c68a 100644 --- a/webkit/fileapi/file_system_callback_dispatcher.h +++ b/webkit/fileapi/file_system_callback_dispatcher.h @@ -41,9 +41,6 @@ class FileSystemCallbackDispatcher { // Called with an error code when a requested operation has failed. virtual void DidFail(base::PlatformFileError error_code) = 0; - - // Callback for FileWriter's write() call. - virtual void DidWrite(int64 bytes, bool complete) = 0; }; } // namespace fileapi diff --git a/webkit/fileapi/file_system_operation.cc b/webkit/fileapi/file_system_operation.cc index e636420..140ade4 100644 --- a/webkit/fileapi/file_system_operation.cc +++ b/webkit/fileapi/file_system_operation.cc @@ -15,11 +15,10 @@ FileSystemOperation::FileSystemOperation( scoped_refptr<base::MessageLoopProxy> proxy) : proxy_(proxy), dispatcher_(dispatcher), - callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), - cancel_operation_(NULL) { + callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { DCHECK(dispatcher); #ifndef NDEBUG - pending_operation_ = kOperationNone; + operation_pending_ = false; #endif } @@ -29,8 +28,8 @@ FileSystemOperation::~FileSystemOperation() { void FileSystemOperation::CreateFile(const FilePath& path, bool exclusive) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationCreateFile; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::CreateOrOpen( @@ -44,8 +43,8 @@ void FileSystemOperation::CreateDirectory(const FilePath& path, bool exclusive, bool recursive) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationCreateDirectory; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::CreateDirectory( @@ -56,8 +55,8 @@ void FileSystemOperation::CreateDirectory(const FilePath& path, void FileSystemOperation::Copy(const FilePath& src_path, const FilePath& dest_path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationCopy; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::Copy(proxy_, src_path, dest_path, @@ -68,8 +67,8 @@ void FileSystemOperation::Copy(const FilePath& src_path, void FileSystemOperation::Move(const FilePath& src_path, const FilePath& dest_path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationMove; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::Move(proxy_, src_path, dest_path, @@ -79,8 +78,8 @@ void FileSystemOperation::Move(const FilePath& src_path, void FileSystemOperation::DirectoryExists(const FilePath& path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationDirectoryExists; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::GetFileInfo(proxy_, path, callback_factory_.NewCallback( @@ -89,8 +88,8 @@ void FileSystemOperation::DirectoryExists(const FilePath& path) { void FileSystemOperation::FileExists(const FilePath& path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationFileExists; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::GetFileInfo(proxy_, path, callback_factory_.NewCallback( @@ -99,8 +98,8 @@ void FileSystemOperation::FileExists(const FilePath& path) { void FileSystemOperation::GetMetadata(const FilePath& path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationGetMetadata; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::GetFileInfo(proxy_, path, callback_factory_.NewCallback( @@ -109,8 +108,8 @@ void FileSystemOperation::GetMetadata(const FilePath& path) { void FileSystemOperation::ReadDirectory(const FilePath& path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationReadDirectory; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::ReadDirectory(proxy_, path, @@ -120,8 +119,8 @@ void FileSystemOperation::ReadDirectory(const FilePath& path) { void FileSystemOperation::Remove(const FilePath& path) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationRemove; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::Delete(proxy_, path, callback_factory_.NewCallback( @@ -129,32 +128,36 @@ void FileSystemOperation::Remove(const FilePath& path) { } void FileSystemOperation::Write( - const FilePath& path, - const GURL& blob_url, - int64 offset) { + const FilePath&, + const GURL&, + int64) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationWrite; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif NOTREACHED(); + // TODO(ericu): + // Set up a loop that, via multiple callback invocations, reads from a + // URLRequest wrapping blob_url, writes the bytes to the file, reports + // progress events no more frequently than some set rate, and periodically + // checks to see if it's been cancelled. } void FileSystemOperation::Truncate(const FilePath& path, int64 length) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationTruncate; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif - base::FileUtilProxy::Truncate(proxy_, path, length, - callback_factory_.NewCallback( - &FileSystemOperation::DidFinishFileOperation)); + // TODO(ericu): + NOTREACHED(); } void FileSystemOperation::TouchFile(const FilePath& path, const base::Time& last_access_time, const base::Time& last_modified_time) { #ifndef NDEBUG - DCHECK(kOperationNone == pending_operation_); - pending_operation_ = kOperationTouchFile; + DCHECK(!operation_pending_); + operation_pending_ = true; #endif base::FileUtilProxy::Touch( @@ -162,18 +165,15 @@ void FileSystemOperation::TouchFile(const FilePath& path, callback_factory_.NewCallback(&FileSystemOperation::DidTouchFile)); } -// We can only get here on a write or truncate that's not yet completed. -// We don't support cancelling any other operation at this time. -void FileSystemOperation::Cancel(FileSystemOperation* cancel_operation) { +void FileSystemOperation::Cancel() { #ifndef NDEBUG - DCHECK(kOperationTruncate == pending_operation_); - // FIXME(ericu): Cancelling for writes coming soon. + DCHECK(operation_pending_); #endif - // We're cancelling a truncate operation, but we can't actually stop it - // since it's been proxied to another thread. We need to save the - // cancel_operation so that when the truncate returns, it can see that it's - // been cancelled, report it, and report that the cancel has succeeded. - cancel_operation_ = cancel_operation; + NOTREACHED(); + // TODO(ericu): + // Make sure this was done on a FileSystemOperation used for a Write. + // Then set a flag that ensures that the Write loop will exit without + // reporting any more progress, with a failure notification. } void FileSystemOperation::DidCreateFileExclusive( @@ -197,19 +197,10 @@ void FileSystemOperation::DidCreateFileNonExclusive( void FileSystemOperation::DidFinishFileOperation( base::PlatformFileError rv) { - if (cancel_operation_) { -#ifndef NDEBUG - DCHECK(kOperationTruncate == pending_operation_); -#endif - FileSystemOperation *cancel_op = cancel_operation_; - // This call deletes us, so we have to extract cancel_op first. - dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_ABORT); - cancel_op->dispatcher_->DidSucceed(); - } else if (rv == base::PLATFORM_FILE_OK) { + if (rv == base::PLATFORM_FILE_OK) dispatcher_->DidSucceed(); - } else { + else dispatcher_->DidFail(rv); - } } void FileSystemOperation::DidDirectoryExists( @@ -259,7 +250,7 @@ void FileSystemOperation::DidWrite( int64 bytes, bool complete) { if (rv == base::PLATFORM_FILE_OK) - dispatcher_->DidWrite(bytes, complete); + /* dispatcher_->DidWrite(bytes, complete) TODO(ericu): Coming soon. */ {} else dispatcher_->DidFail(rv); } diff --git a/webkit/fileapi/file_system_operation.h b/webkit/fileapi/file_system_operation.h index ab6d56c..1107303 100644 --- a/webkit/fileapi/file_system_operation.h +++ b/webkit/fileapi/file_system_operation.h @@ -61,7 +61,8 @@ class FileSystemOperation { void Remove(const FilePath& path); - void Write(const FilePath& path, const GURL& blob_url, int64 offset); + void Write( + const FilePath& path, const GURL& blob_url, int64 offset); void Truncate(const FilePath& path, int64 length); @@ -69,10 +70,9 @@ class FileSystemOperation { const base::Time& last_access_time, const base::Time& last_modified_time); - // Try to cancel the current operation [we support cancelling write or - // truncate only]. Report failure for the current operation, then tell the - // passed-in operation to report success. - void Cancel(FileSystemOperation* cancel_operation); + // Used to attempt to cancel the current operation. This currently does + // nothing for any operation other than Write(). + void Cancel(); protected: // Proxy for calling file_util_proxy methods. @@ -114,28 +114,9 @@ class FileSystemOperation { base::ScopedCallbackFactory<FileSystemOperation> callback_factory_; - FileSystemOperation* cancel_operation_; - #ifndef NDEBUG - enum OperationType { - kOperationNone, - kOperationCreateFile, - kOperationCreateDirectory, - kOperationCopy, - kOperationMove, - kOperationDirectoryExists, - kOperationFileExists, - kOperationGetMetadata, - kOperationReadDirectory, - kOperationRemove, - kOperationWrite, - kOperationTruncate, - kOperationTouchFile, - kOperationCancel, - }; - // A flag to make sure we call operation only once per instance. - OperationType pending_operation_; + bool operation_pending_; #endif DISALLOW_COPY_AND_ASSIGN(FileSystemOperation); diff --git a/webkit/fileapi/file_system_operation_unittest.cc b/webkit/fileapi/file_system_operation_unittest.cc index 9148811..93680a0 100644 --- a/webkit/fileapi/file_system_operation_unittest.cc +++ b/webkit/fileapi/file_system_operation_unittest.cc @@ -52,10 +52,6 @@ class MockDispatcher : public fileapi::FileSystemCallbackDispatcher { NOTREACHED(); } - virtual void DidWrite(int64 bytes, bool complete) { - NOTREACHED(); - } - // Helpers for testing. int status() const { return status_; } int request_id() const { return request_id_; } @@ -557,57 +553,3 @@ TEST_F(FileSystemOperationTest, TestRemoveSuccess) { EXPECT_FALSE(file_util::DirectoryExists(empty_dir.path())); EXPECT_EQ(request_id_, mock_dispatcher_->request_id()); } - -TEST_F(FileSystemOperationTest, TestTruncate) { - ScopedTempDir dir; - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath file; - file_util::CreateTemporaryFileInDir(dir.path(), &file); - - char test_data[] = "test data"; - EXPECT_EQ(sizeof(test_data), - file_util::WriteFile(file, test_data, sizeof(test_data))); - - // Check that its length is the size of the data written. - operation()->GetMetadata(file); - MessageLoop::current()->RunAllPending(); - EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status()); - EXPECT_FALSE(mock_dispatcher_->info().is_directory); - EXPECT_EQ(sizeof(test_data), mock_dispatcher_->info().size); - EXPECT_EQ(request_id_, mock_dispatcher_->request_id()); - - // Extend the file by truncating it. - int length = 17; - operation()->Truncate(file, length); - MessageLoop::current()->RunAllPending(); - EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status()); - EXPECT_EQ(request_id_, mock_dispatcher_->request_id()); - - // Check that its length is now 17 and that it's all zeroes after the test - // data. - base::PlatformFileInfo info; - EXPECT_TRUE(file_util::GetFileInfo(file, &info)); - EXPECT_EQ(length, info.size); - char data[100]; - EXPECT_EQ(length, file_util::ReadFile(file, data, length)); - for (int i = 0; i < length; ++i) { - if (i < sizeof(test_data)) - EXPECT_EQ(test_data[i], data[i]); - else - EXPECT_EQ(0, data[i]); - } - - // Shorten the file by truncating it. - length = 3; - operation()->Truncate(file, length); - MessageLoop::current()->RunAllPending(); - EXPECT_EQ(kFileOperationSucceeded, mock_dispatcher_->status()); - EXPECT_EQ(request_id_, mock_dispatcher_->request_id()); - - // Check that its length is now 3 and that it contains only bits of test data. - EXPECT_TRUE(file_util::GetFileInfo(file, &info)); - EXPECT_EQ(length, info.size); - EXPECT_EQ(length, file_util::ReadFile(file, data, length)); - for (int i = 0; i < length; ++i) - EXPECT_EQ(test_data[i], data[i]); -} diff --git a/webkit/glue/plugins/pepper_file_system.cc b/webkit/glue/plugins/pepper_file_system.cc index 6068ca5..82a2fc8 100644 --- a/webkit/glue/plugins/pepper_file_system.cc +++ b/webkit/glue/plugins/pepper_file_system.cc @@ -54,10 +54,6 @@ class StatusCallback : public fileapi::FileSystemCallbackDispatcher { RunCallback(error_code); } - virtual void DidWrite(int64 bytes, bool complete) { - NOTREACHED(); - } - private: void RunCallback(base::PlatformFileError error_code) { if (!module_.get() || !callback_.func) @@ -109,10 +105,6 @@ class QueryInfoCallback : public fileapi::FileSystemCallbackDispatcher { RunCallback(error_code, base::PlatformFileInfo()); } - virtual void DidWrite(int64 bytes, bool complete) { - NOTREACHED(); - } - private: void RunCallback(base::PlatformFileError error_code, const base::PlatformFileInfo& file_info) { diff --git a/webkit/tools/test_shell/simple_file_system.cc b/webkit/tools/test_shell/simple_file_system.cc index 8e059ea..3739a62 100644 --- a/webkit/tools/test_shell/simple_file_system.cc +++ b/webkit/tools/test_shell/simple_file_system.cc @@ -92,7 +92,7 @@ class TestShellFileSystemCallbackDispatcher file_system_->RemoveCompletedOperation(request_id_); } - virtual void DidWrite(int64, bool) { + virtual void DidWrite(int64, bool, fileapi::FileSystemOperation*) { NOTREACHED(); } |