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 2476df9a48ce9597031faffb19aea688af30d713..0dfe3b7dbf10dc3647c14a92e310e64dbf629688 100644 |
--- a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc |
+++ b/chrome/browser/media_galleries/media_galleries_dialog_controller.cc |
@@ -98,10 +98,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)); |