Index: chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.cc |
diff --git a/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.cc b/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.cc |
index 0485116072eb6d9fbed0afeffddd5b5f0d7ba05f..5101e1e45bae04124f54fe5fd6b61097109e98ee 100644 |
--- a/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.cc |
+++ b/chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.h" |
+#include "base/logging.h" |
#include "chrome/browser/media_galleries/fileapi/media_file_system_backend.h" |
#include "chrome/common/chrome_utility_messages.h" |
#include "content/public/browser/browser_thread.h" |
@@ -28,6 +29,25 @@ SafePicasaAlbumTableReader::SafePicasaAlbumTableReader( |
void SafePicasaAlbumTableReader::Start() { |
DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
+ |
+ // Don't bother spawning process if any of the files are invalid. |
+ if (album_table_files_.indicator_file == base::kInvalidPlatformFileValue || |
+ album_table_files_.category_file == base::kInvalidPlatformFileValue || |
+ album_table_files_.date_file == base::kInvalidPlatformFileValue || |
+ album_table_files_.filename_file == base::kInvalidPlatformFileValue || |
+ album_table_files_.name_file == base::kInvalidPlatformFileValue || |
+ album_table_files_.token_file == base::kInvalidPlatformFileValue || |
+ album_table_files_.uid_file == base::kInvalidPlatformFileValue) { |
+ MediaFileSystemBackend::MediaTaskRunner()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback_, |
+ make_scoped_refptr(this), |
+ false /* parse_success */, |
+ std::vector<AlbumInfo>(), |
+ std::vector<AlbumInfo>())); |
+ return; |
+ } |
+ |
BrowserThread::PostTask( |
BrowserThread::IO, |
FROM_HERE, |
@@ -103,13 +123,15 @@ void SafePicasaAlbumTableReader::OnParsePicasaPMPDatabaseFinished( |
MediaFileSystemBackend::MediaTaskRunner()->PostTask( |
FROM_HERE, |
- base::Bind(callback_, parse_success, albums, folders)); |
+ base::Bind( |
+ callback_, make_scoped_refptr(this), parse_success, albums, folders)); |
parser_state_ = FINISHED_PARSING_STATE; |
} |
void SafePicasaAlbumTableReader::OnProcessCrashed(int exit_code) { |
- OnParsePicasaPMPDatabaseFinished(false, std::vector<AlbumInfo>(), |
- std::vector<AlbumInfo>()); |
+ DLOG(INFO) << "SafePicasaAlbumTableReader::OnProcessCrashed()"; |
+ OnParsePicasaPMPDatabaseFinished( |
+ false, std::vector<AlbumInfo>(), std::vector<AlbumInfo>()); |
} |
bool SafePicasaAlbumTableReader::OnMessageReceived( |