| 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(
|
|
|