Index: chrome/browser/media_galleries/media_galleries_dialog_controller.cc |
diff --git a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc b/chrome/browser/media_galleries/media_galleries_dialog_controller.cc |
index 913d8dcdf816e7db48fd5693c080cbe08b808056..8326d3d9e306896d93ad850c23fa5b24a1b354ab 100644 |
--- a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc |
+++ b/chrome/browser/media_galleries/media_galleries_dialog_controller.cc |
@@ -99,10 +99,19 @@ MediaGalleriesDialogController::MediaGalleriesDialogController( |
: web_contents_(web_contents), |
extension_(&extension), |
on_finish_(on_finish) { |
+ // Passing unretained pointer is safe, since the dialog controller |
+ // is self-deleting, and so won't be deleted until it can be shown |
+ // and then closed. |
+ StorageMonitor::GetInstance()->Initialize(base::Bind( |
+ &MediaGalleriesDialogController::OnStorageMonitorInitialized, |
+ base::Unretained(this))); |
+} |
+ |
+void MediaGalleriesDialogController::OnStorageMonitorInitialized() { |
MediaFileSystemRegistry* registry = |
g_browser_process->media_file_system_registry(); |
preferences_ = registry->GetPreferences( |
- Profile::FromBrowserContext(web_contents->GetBrowserContext())); |
+ Profile::FromBrowserContext(web_contents_->GetBrowserContext())); |
InitializePermissions(); |
dialog_.reset(MediaGalleriesDialog::Create(this)); |