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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system.cc

Issue 10815058: gdata: Check entry_proto.get() before calling has_file_specific_info() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 8 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" 5 #include "chrome/browser/chromeos/gdata/gdata_file_system.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1887 matching lines...) Expand 10 before | Expand all | Expand 10 after
1898 } 1898 }
1899 1899
1900 void GDataFileSystem::GetResolvedFileByPath( 1900 void GDataFileSystem::GetResolvedFileByPath(
1901 const FilePath& file_path, 1901 const FilePath& file_path,
1902 const GetFileCallback& get_file_callback, 1902 const GetFileCallback& get_file_callback,
1903 const GetDownloadDataCallback& get_download_data_callback, 1903 const GetDownloadDataCallback& get_download_data_callback,
1904 GDataFileError error, 1904 GDataFileError error,
1905 const GDataEntryProto* entry_proto) { 1905 const GDataEntryProto* entry_proto) {
1906 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1906 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1907 1907
1908 if (!entry_proto->has_file_specific_info()) 1908 if (entry_proto && !entry_proto->has_file_specific_info())
1909 error = GDATA_FILE_ERROR_NOT_FOUND; 1909 error = GDATA_FILE_ERROR_NOT_FOUND;
1910 1910
1911 if (error != GDATA_FILE_OK) { 1911 if (error != GDATA_FILE_OK) {
1912 if (!get_file_callback.is_null()) { 1912 if (!get_file_callback.is_null()) {
1913 MessageLoop::current()->PostTask( 1913 MessageLoop::current()->PostTask(
1914 FROM_HERE, 1914 FROM_HERE,
1915 base::Bind(get_file_callback, 1915 base::Bind(get_file_callback,
1916 GDATA_FILE_ERROR_NOT_FOUND, 1916 GDATA_FILE_ERROR_NOT_FOUND,
1917 FilePath(), 1917 FilePath(),
1918 std::string(), 1918 std::string(),
(...skipping 1867 matching lines...) Expand 10 before | Expand all | Expand 10 after
3786 callback))); 3786 callback)));
3787 } 3787 }
3788 3788
3789 void GDataFileSystem::OnGetEntryInfoCompleteForOpenFile( 3789 void GDataFileSystem::OnGetEntryInfoCompleteForOpenFile(
3790 const FilePath& file_path, 3790 const FilePath& file_path,
3791 const OpenFileCallback& callback, 3791 const OpenFileCallback& callback,
3792 GDataFileError error, 3792 GDataFileError error,
3793 scoped_ptr<GDataEntryProto> entry_proto) { 3793 scoped_ptr<GDataEntryProto> entry_proto) {
3794 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 3794 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
3795 3795
3796 if (!entry_proto->has_file_specific_info()) 3796 if (entry_proto.get() && !entry_proto->has_file_specific_info())
3797 error = GDATA_FILE_ERROR_NOT_FOUND; 3797 error = GDATA_FILE_ERROR_NOT_FOUND;
3798 3798
3799 if (error == GDATA_FILE_OK) { 3799 if (error == GDATA_FILE_OK) {
3800 if (entry_proto->file_specific_info().file_md5().empty() || 3800 if (entry_proto->file_specific_info().file_md5().empty() ||
3801 entry_proto->file_specific_info().is_hosted_document()) { 3801 entry_proto->file_specific_info().is_hosted_document()) {
3802 // No support for opening a directory or hosted document. 3802 // No support for opening a directory or hosted document.
3803 error = GDATA_FILE_ERROR_INVALID_OPERATION; 3803 error = GDATA_FILE_ERROR_INVALID_OPERATION;
3804 } 3804 }
3805 } 3805 }
3806 3806
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
3911 ui_weak_ptr_, 3911 ui_weak_ptr_,
3912 file_path, 3912 file_path,
3913 callback))); 3913 callback)));
3914 } 3914 }
3915 3915
3916 void GDataFileSystem::OnGetEntryInfoCompleteForCloseFile( 3916 void GDataFileSystem::OnGetEntryInfoCompleteForCloseFile(
3917 const FilePath& file_path, 3917 const FilePath& file_path,
3918 const FileOperationCallback& callback, 3918 const FileOperationCallback& callback,
3919 GDataFileError error, 3919 GDataFileError error,
3920 scoped_ptr<GDataEntryProto> entry_proto) { 3920 scoped_ptr<GDataEntryProto> entry_proto) {
3921 if (!entry_proto->has_file_specific_info()) 3921 if (entry_proto.get() && !entry_proto->has_file_specific_info())
3922 error = GDATA_FILE_ERROR_NOT_FOUND; 3922 error = GDATA_FILE_ERROR_NOT_FOUND;
3923 3923
3924 if (error != GDATA_FILE_OK) { 3924 if (error != GDATA_FILE_OK) {
3925 if (!callback.is_null()) 3925 if (!callback.is_null())
3926 callback.Run(error); 3926 callback.Run(error);
3927 return; 3927 return;
3928 } 3928 }
3929 3929
3930 // Step 2 of CloseFile: Get the local path of the cache. Since CloseFile must 3930 // Step 2 of CloseFile: Get the local path of the cache. Since CloseFile must
3931 // always be called on paths opened by OpenFile, the file must be cached, 3931 // always be called on paths opened by OpenFile, the file must be cached,
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
4063 // must go through here. Removes the |file_path| from the remembered set so 4063 // must go through here. Removes the |file_path| from the remembered set so
4064 // that subsequent operations can open the file again. 4064 // that subsequent operations can open the file again.
4065 open_files_.erase(file_path); 4065 open_files_.erase(file_path);
4066 4066
4067 // Then invokes the user-supplied callback function. 4067 // Then invokes the user-supplied callback function.
4068 if (!callback.is_null()) 4068 if (!callback.is_null())
4069 callback.Run(result); 4069 callback.Run(result);
4070 } 4070 }
4071 4071
4072 } // namespace gdata 4072 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/gdata/drive_task_executor.cc ('k') | chrome/browser/chromeos/gdata/gdata_protocol_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698