Index: chrome/browser/media_galleries/media_galleries_permission_controller.cc |
diff --git a/chrome/browser/media_galleries/media_galleries_permission_controller.cc b/chrome/browser/media_galleries/media_galleries_permission_controller.cc |
index 77b1148ed0d933a1fd62fd64c1082db679d79adf..54f0a664cb6981a32a8df6e8083ee84e00c20353 100644 |
--- a/chrome/browser/media_galleries/media_galleries_permission_controller.cc |
+++ b/chrome/browser/media_galleries/media_galleries_permission_controller.cc |
@@ -287,10 +287,13 @@ void MediaGalleriesPermissionController::FileSelected( |
const base::FilePath& path, |
int /*index*/, |
void* /*params*/) { |
- extensions::file_system_api::SetLastChooseEntryDirectory( |
- extensions::ExtensionPrefs::Get(GetProfile()), |
- extension_->id(), |
- path); |
+ // |web_contents_| is NULL in tests. |
+ if (web_contents_) { |
vandebo (ex-Chrome)
2014/06/11 16:40:56
Is this needed? Why are the existing tests ok?
tommycli
2014/06/11 18:17:56
Test crashes when the controller calls GetProfile(
|
+ extensions::file_system_api::SetLastChooseEntryDirectory( |
+ extensions::ExtensionPrefs::Get(GetProfile()), |
+ extension_->id(), |
+ path); |
+ } |
// Try to find it in the prefs. |
MediaGalleryPrefInfo gallery; |
@@ -321,8 +324,9 @@ void MediaGalleriesPermissionController::FileSelected( |
} |
// Lastly, if not found, add a new gallery to |new_galleries_|. |
- DCHECK_EQ(kInvalidMediaGalleryPrefId, gallery.pref_id); |
- gallery.pref_id = GetDialogId(kInvalidMediaGalleryPrefId); |
+ // prefId == kInvalidMediaGalleryPrefId for completely new galleries. |
+ // The old prefId is retained for blacklisted galleries. |
+ gallery.pref_id = GetDialogId(gallery.pref_id); |
new_galleries_[gallery.pref_id] = Entry(gallery, true); |
dialog_->UpdateGalleries(); |
} |