Index: chrome/browser/media_gallery/media_galleries_dialog_controller.cc |
diff --git a/chrome/browser/media_gallery/media_galleries_dialog_controller.cc b/chrome/browser/media_gallery/media_galleries_dialog_controller.cc |
index 29a61fa4940ec4fcb15b234fd60af7e0639e49f4..f259ca14a192a8667ba0fdff85bbe8e3e87e0232 100644 |
--- a/chrome/browser/media_gallery/media_galleries_dialog_controller.cc |
+++ b/chrome/browser/media_gallery/media_galleries_dialog_controller.cc |
@@ -25,30 +25,36 @@ MediaGalleriesDialogController::MediaGalleriesDialogController( |
const Extension& extension, |
const base::Callback<void(void)>& on_finish) |
: tab_contents_(tab_contents), |
- extension_(extension), |
+ extension_(&extension), |
on_finish_(on_finish), |
preferences_(MediaGalleriesPreferencesFactory::GetForProfile( |
- tab_contents_->profile())) { |
+ tab_contents_->profile())) { |
LookUpPermissions(); |
dialog_.reset(MediaGalleriesDialog::Create(this)); |
} |
+MediaGalleriesDialogController::MediaGalleriesDialogController() |
+ : tab_contents_(NULL), |
+ extension_(NULL), |
+ preferences_(NULL) {} |
+ |
MediaGalleriesDialogController::~MediaGalleriesDialogController() { |
if (select_folder_dialog_.get()) |
select_folder_dialog_->ListenerDestroyed(); |
} |
string16 MediaGalleriesDialogController::GetHeader() { |
+ std::string extension_name(extension_ ? extension_->name() : ""); |
return l10n_util::GetStringFUTF16(IDS_MEDIA_GALLERIES_DIALOG_HEADER, |
- UTF8ToUTF16(extension_.name())); |
+ UTF8ToUTF16(extension_name)); |
} |
string16 MediaGalleriesDialogController::GetSubtext() { |
- if (extension_.HasAPIPermission( |
+ if (extension_ && extension_->HasAPIPermission( |
extensions::APIPermission::kMediaGalleriesRead)) { |
return l10n_util::GetStringFUTF16(IDS_MEDIA_GALLERIES_DIALOG_READ_SUBTEXT, |
- UTF8ToUTF16(extension_.name())); |
+ UTF8ToUTF16(extension_->name())); |
} |
// TODO(estade): handle write et al. |
return string16(); |
@@ -149,7 +155,7 @@ void MediaGalleriesDialogController::LookUpPermissions() { |
} |
MediaGalleryPrefIdSet permitted = |
- preferences_->GalleriesForExtension(extension_); |
+ preferences_->GalleriesForExtension(*extension_); |
for (MediaGalleryPrefIdSet::iterator iter = permitted.begin(); |
iter != permitted.end(); ++iter) { |
@@ -161,7 +167,7 @@ void MediaGalleriesDialogController::SavePermissions() { |
for (KnownGalleryPermissions::iterator iter = known_galleries_.begin(); |
iter != known_galleries_.end(); ++iter) { |
preferences_->SetGalleryPermissionForExtension( |
- extension_, iter->first, iter->second.allowed); |
+ *extension_, iter->first, iter->second.allowed); |
} |
for (NewGalleryPermissions::iterator iter = new_galleries_.begin(); |
@@ -174,7 +180,7 @@ void MediaGalleriesDialogController::SavePermissions() { |
MediaGalleryPrefId id = preferences_->AddGallery( |
gallery.device_id, gallery.display_name, gallery.path, true); |
preferences_->SetGalleryPermissionForExtension( |
- extension_, id, true); |
+ *extension_, id, true); |
} |
} |