OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/media_galleries/imported_media_gallery_registry.h" | 5 #include "chrome/browser/media_galleries/imported_media_gallery_registry.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "chrome/browser/media_galleries/fileapi/itunes_data_provider.h" | 9 #include "chrome/browser/media_galleries/fileapi/itunes_data_provider.h" |
10 #include "chrome/browser/media_galleries/fileapi/media_file_system_mount_point_p
rovider.h" | 10 #include "chrome/browser/media_galleries/fileapi/media_file_system_backend.h" |
11 #include "chrome/browser/media_galleries/fileapi/picasa/picasa_data_provider.h" | 11 #include "chrome/browser/media_galleries/fileapi/picasa/picasa_data_provider.h" |
12 #include "chrome/common/extensions/extension_constants.h" | 12 #include "chrome/common/extensions/extension_constants.h" |
13 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
14 #include "webkit/browser/fileapi/isolated_context.h" | 14 #include "webkit/browser/fileapi/isolated_context.h" |
15 | 15 |
16 using base::Bind; | 16 using base::Bind; |
17 using fileapi::IsolatedContext; | 17 using fileapi::IsolatedContext; |
18 | 18 |
19 namespace chrome { | 19 namespace chrome { |
20 | 20 |
(...skipping 21 matching lines...) Expand all Loading... |
42 fileapi::kFileSystemTypePicasa, | 42 fileapi::kFileSystemTypePicasa, |
43 extension_misc::kMediaFileSystemPathPart, | 43 extension_misc::kMediaFileSystemPathPart, |
44 base::FilePath()); | 44 base::FilePath()); |
45 | 45 |
46 if (fsid.empty()) | 46 if (fsid.empty()) |
47 return fsid; | 47 return fsid; |
48 | 48 |
49 picasa_fsids_.insert(fsid); | 49 picasa_fsids_.insert(fsid); |
50 | 50 |
51 if (picasa_fsids_.size() == 1) { | 51 if (picasa_fsids_.size() == 1) { |
52 MediaFileSystemMountPointProvider::MediaTaskRunner()->PostTask( | 52 MediaFileSystemBackend::MediaTaskRunner()->PostTask( |
53 FROM_HERE, | 53 FROM_HERE, |
54 Bind(&ImportedMediaGalleryRegistry::RegisterPicasaFileSystem, | 54 Bind(&ImportedMediaGalleryRegistry::RegisterPicasaFileSystem, |
55 base::Unretained(this), database_path)); | 55 base::Unretained(this), database_path)); |
56 #ifndef NDEBUG | 56 #ifndef NDEBUG |
57 picasa_database_path_ = database_path; | 57 picasa_database_path_ = database_path; |
58 } else { | 58 } else { |
59 DCHECK_EQ(picasa_database_path_.value(), database_path.value()); | 59 DCHECK_EQ(picasa_database_path_.value(), database_path.value()); |
60 #endif | 60 #endif |
61 } | 61 } |
62 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 62 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
(...skipping 13 matching lines...) Expand all Loading... |
76 fileapi::kFileSystemTypeItunes, | 76 fileapi::kFileSystemTypeItunes, |
77 extension_misc::kMediaFileSystemPathPart, | 77 extension_misc::kMediaFileSystemPathPart, |
78 base::FilePath()); | 78 base::FilePath()); |
79 | 79 |
80 if (fsid.empty()) | 80 if (fsid.empty()) |
81 return fsid; | 81 return fsid; |
82 | 82 |
83 itunes_fsids_.insert(fsid); | 83 itunes_fsids_.insert(fsid); |
84 | 84 |
85 if (itunes_fsids_.size() == 1) { | 85 if (itunes_fsids_.size() == 1) { |
86 MediaFileSystemMountPointProvider::MediaTaskRunner()->PostTask( | 86 MediaFileSystemBackend::MediaTaskRunner()->PostTask( |
87 FROM_HERE, | 87 FROM_HERE, |
88 Bind(&ImportedMediaGalleryRegistry::RegisterITunesFileSystem, | 88 Bind(&ImportedMediaGalleryRegistry::RegisterITunesFileSystem, |
89 base::Unretained(this), library_xml_path)); | 89 base::Unretained(this), library_xml_path)); |
90 #ifndef NDEBUG | 90 #ifndef NDEBUG |
91 itunes_xml_library_path_ = library_xml_path; | 91 itunes_xml_library_path_ = library_xml_path; |
92 } else { | 92 } else { |
93 DCHECK_EQ(itunes_xml_library_path_.value(), library_xml_path.value()); | 93 DCHECK_EQ(itunes_xml_library_path_.value(), library_xml_path.value()); |
94 #endif | 94 #endif |
95 } | 95 } |
96 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 96 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
97 | 97 |
98 return fsid; | 98 return fsid; |
99 } | 99 } |
100 | 100 |
101 bool ImportedMediaGalleryRegistry::RevokeImportedFilesystemOnUIThread( | 101 bool ImportedMediaGalleryRegistry::RevokeImportedFilesystemOnUIThread( |
102 const std::string& fsid) { | 102 const std::string& fsid) { |
103 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 103 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
104 | 104 |
105 #if defined(OS_WIN) || defined(OS_MACOSX) | 105 #if defined(OS_WIN) || defined(OS_MACOSX) |
106 if (picasa_fsids_.erase(fsid)) { | 106 if (picasa_fsids_.erase(fsid)) { |
107 if (picasa_fsids_.empty()) { | 107 if (picasa_fsids_.empty()) { |
108 MediaFileSystemMountPointProvider::MediaTaskRunner()->PostTask( | 108 MediaFileSystemBackend::MediaTaskRunner()->PostTask( |
109 FROM_HERE, | 109 FROM_HERE, |
110 Bind(&ImportedMediaGalleryRegistry::RevokePicasaFileSystem, | 110 Bind(&ImportedMediaGalleryRegistry::RevokePicasaFileSystem, |
111 base::Unretained(this))); | 111 base::Unretained(this))); |
112 } | 112 } |
113 return IsolatedContext::GetInstance()->RevokeFileSystem(fsid); | 113 return IsolatedContext::GetInstance()->RevokeFileSystem(fsid); |
114 } | 114 } |
115 | 115 |
116 if (itunes_fsids_.erase(fsid)) { | 116 if (itunes_fsids_.erase(fsid)) { |
117 if (itunes_fsids_.empty()) { | 117 if (itunes_fsids_.empty()) { |
118 MediaFileSystemMountPointProvider::MediaTaskRunner()->PostTask( | 118 MediaFileSystemBackend::MediaTaskRunner()->PostTask( |
119 FROM_HERE, | 119 FROM_HERE, |
120 Bind(&ImportedMediaGalleryRegistry::RevokeITunesFileSystem, | 120 Bind(&ImportedMediaGalleryRegistry::RevokeITunesFileSystem, |
121 base::Unretained(this))); | 121 base::Unretained(this))); |
122 } | 122 } |
123 return IsolatedContext::GetInstance()->RevokeFileSystem(fsid); | 123 return IsolatedContext::GetInstance()->RevokeFileSystem(fsid); |
124 } | 124 } |
125 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 125 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
126 | 126 |
127 return false; | 127 return false; |
128 } | 128 } |
129 | 129 |
130 #if defined(OS_WIN) || defined(OS_MACOSX) | 130 #if defined(OS_WIN) || defined(OS_MACOSX) |
131 // static | 131 // static |
132 picasa::PicasaDataProvider* | 132 picasa::PicasaDataProvider* |
133 ImportedMediaGalleryRegistry::PicasaDataProvider() { | 133 ImportedMediaGalleryRegistry::PicasaDataProvider() { |
134 DCHECK(MediaFileSystemMountPointProvider::CurrentlyOnMediaTaskRunnerThread()); | 134 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
135 DCHECK(GetInstance()->picasa_data_provider_); | 135 DCHECK(GetInstance()->picasa_data_provider_); |
136 return GetInstance()->picasa_data_provider_.get(); | 136 return GetInstance()->picasa_data_provider_.get(); |
137 } | 137 } |
138 | 138 |
139 // static | 139 // static |
140 itunes::ITunesDataProvider* | 140 itunes::ITunesDataProvider* |
141 ImportedMediaGalleryRegistry::ITunesDataProvider() { | 141 ImportedMediaGalleryRegistry::ITunesDataProvider() { |
142 DCHECK(MediaFileSystemMountPointProvider::CurrentlyOnMediaTaskRunnerThread()); | 142 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
143 DCHECK(GetInstance()->itunes_data_provider_); | 143 DCHECK(GetInstance()->itunes_data_provider_); |
144 return GetInstance()->itunes_data_provider_.get(); | 144 return GetInstance()->itunes_data_provider_.get(); |
145 } | 145 } |
146 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 146 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
147 | 147 |
148 ImportedMediaGalleryRegistry::ImportedMediaGalleryRegistry() {} | 148 ImportedMediaGalleryRegistry::ImportedMediaGalleryRegistry() {} |
149 | 149 |
150 ImportedMediaGalleryRegistry::~ImportedMediaGalleryRegistry() { | 150 ImportedMediaGalleryRegistry::~ImportedMediaGalleryRegistry() { |
151 #if defined(OS_WIN) || defined(OS_MACOSX) | 151 #if defined(OS_WIN) || defined(OS_MACOSX) |
152 DCHECK_EQ(0U, picasa_fsids_.size()); | 152 DCHECK_EQ(0U, picasa_fsids_.size()); |
153 DCHECK_EQ(0U, itunes_fsids_.size()); | 153 DCHECK_EQ(0U, itunes_fsids_.size()); |
154 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 154 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
155 } | 155 } |
156 | 156 |
157 #if defined(OS_WIN) || defined(OS_MACOSX) | 157 #if defined(OS_WIN) || defined(OS_MACOSX) |
158 void ImportedMediaGalleryRegistry::RegisterPicasaFileSystem( | 158 void ImportedMediaGalleryRegistry::RegisterPicasaFileSystem( |
159 const base::FilePath& database_path) { | 159 const base::FilePath& database_path) { |
160 DCHECK(MediaFileSystemMountPointProvider::CurrentlyOnMediaTaskRunnerThread()); | 160 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
161 DCHECK(!picasa_data_provider_); | 161 DCHECK(!picasa_data_provider_); |
162 picasa_data_provider_.reset(new picasa::PicasaDataProvider(database_path)); | 162 picasa_data_provider_.reset(new picasa::PicasaDataProvider(database_path)); |
163 } | 163 } |
164 | 164 |
165 void ImportedMediaGalleryRegistry::RevokePicasaFileSystem() { | 165 void ImportedMediaGalleryRegistry::RevokePicasaFileSystem() { |
166 DCHECK(MediaFileSystemMountPointProvider::CurrentlyOnMediaTaskRunnerThread()); | 166 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
167 DCHECK(picasa_data_provider_); | 167 DCHECK(picasa_data_provider_); |
168 picasa_data_provider_.reset(); | 168 picasa_data_provider_.reset(); |
169 } | 169 } |
170 | 170 |
171 void ImportedMediaGalleryRegistry::RegisterITunesFileSystem( | 171 void ImportedMediaGalleryRegistry::RegisterITunesFileSystem( |
172 const base::FilePath& xml_library_path) { | 172 const base::FilePath& xml_library_path) { |
173 DCHECK(MediaFileSystemMountPointProvider::CurrentlyOnMediaTaskRunnerThread()); | 173 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
174 DCHECK(!itunes_data_provider_); | 174 DCHECK(!itunes_data_provider_); |
175 itunes_data_provider_.reset(new itunes::ITunesDataProvider(xml_library_path)); | 175 itunes_data_provider_.reset(new itunes::ITunesDataProvider(xml_library_path)); |
176 } | 176 } |
177 | 177 |
178 void ImportedMediaGalleryRegistry::RevokeITunesFileSystem() { | 178 void ImportedMediaGalleryRegistry::RevokeITunesFileSystem() { |
179 DCHECK(MediaFileSystemMountPointProvider::CurrentlyOnMediaTaskRunnerThread()); | 179 DCHECK(MediaFileSystemBackend::CurrentlyOnMediaTaskRunnerThread()); |
180 DCHECK(itunes_data_provider_); | 180 DCHECK(itunes_data_provider_); |
181 itunes_data_provider_.reset(); | 181 itunes_data_provider_.reset(); |
182 } | 182 } |
183 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 183 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
184 | 184 |
185 } // namespace chrome | 185 } // namespace chrome |
OLD | NEW |