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

Unified Diff: chrome/browser/media_galleries/fileapi/safe_picasa_album_table_reader.cc

Issue 18986012: Media Galleries API Picasa: Make PicasaDataProvider handle async PMP and INI parsing robustly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@0039-picasa-import-sandbox-ini-parsing
Patch Set: Nevermind. Can't be done. Created 7 years, 4 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
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(

Powered by Google App Engine
This is Rietveld 408576698