Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.cc

Issue 340543002: Enable gallery watches on Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/api/media_galleries_private/media_galleries_ private_api.h" 5 #include "chrome/browser/extensions/api/media_galleries_private/media_galleries_ private_api.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 if (!GetGalleryFilePathAndId(pref_id, 185 if (!GetGalleryFilePathAndId(pref_id,
186 GetProfile(), 186 GetProfile(),
187 GetExtension(), 187 GetExtension(),
188 &gallery_file_path, 188 &gallery_file_path,
189 &gallery_pref_id)) { 189 &gallery_pref_id)) {
190 error_ = kInvalidGalleryIDError; 190 error_ = kInvalidGalleryIDError;
191 HandleResponse(gallery_pref_id, false); 191 HandleResponse(gallery_pref_id, false);
192 return; 192 return;
193 } 193 }
194 194
195 #if defined(OS_WIN) || defined(OS_LINUX)
196 MediaGalleriesPrivateEventRouter* router = 195 MediaGalleriesPrivateEventRouter* router =
197 MediaGalleriesPrivateAPI::Get(GetProfile())->GetEventRouter(); 196 MediaGalleriesPrivateAPI::Get(GetProfile())->GetEventRouter();
198 DCHECK(router); 197 DCHECK(router);
199 content::BrowserThread::PostTaskAndReplyWithResult( 198 content::BrowserThread::PostTaskAndReplyWithResult(
200 content::BrowserThread::FILE, 199 content::BrowserThread::FILE,
201 FROM_HERE, 200 FROM_HERE,
202 base::Bind(&GalleryWatchManager::SetupGalleryWatch, 201 base::Bind(&GalleryWatchManager::SetupGalleryWatch,
203 GetProfile(), 202 GetProfile(),
204 gallery_pref_id, 203 gallery_pref_id,
205 gallery_file_path, 204 gallery_file_path,
206 extension_id(), 205 extension_id(),
207 router->AsWeakPtr()), 206 router->AsWeakPtr()),
208 base::Bind(&MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse, 207 base::Bind(&MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse,
209 this, 208 this,
210 gallery_pref_id)); 209 gallery_pref_id));
211 #else
212 // Recursive gallery watch operation is not currently supported on Mac:
213 // crbug.com/144491
214 HandleResponse(gallery_pref_id, false);
215 #endif
216 } 210 }
217 211
218 void MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse( 212 void MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse(
219 MediaGalleryPrefId gallery_id, 213 MediaGalleryPrefId gallery_id,
220 bool success) { 214 bool success) {
221 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 215 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
222 media_galleries_private::AddGalleryWatchResult result; 216 media_galleries_private::AddGalleryWatchResult result;
223 result.gallery_id = base::Uint64ToString(gallery_id); 217 result.gallery_id = base::Uint64ToString(gallery_id);
224 result.success = success; 218 result.success = success;
225 SetResult(result.ToValue().release()); 219 SetResult(result.ToValue().release());
(...skipping 15 matching lines...) Expand all
241 235
242 MediaGalleriesPrivateRemoveGalleryWatchFunction:: 236 MediaGalleriesPrivateRemoveGalleryWatchFunction::
243 ~MediaGalleriesPrivateRemoveGalleryWatchFunction() { 237 ~MediaGalleriesPrivateRemoveGalleryWatchFunction() {
244 } 238 }
245 239
246 bool MediaGalleriesPrivateRemoveGalleryWatchFunction::RunAsync() { 240 bool MediaGalleriesPrivateRemoveGalleryWatchFunction::RunAsync() {
247 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 241 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
248 if (!render_view_host() || !render_view_host()->GetProcess()) 242 if (!render_view_host() || !render_view_host()->GetProcess())
249 return false; 243 return false;
250 244
251 // Remove gallery watch operation is currently supported on Mac:
252 // crbug.com/144491
253 scoped_ptr<RemoveGalleryWatch::Params> params( 245 scoped_ptr<RemoveGalleryWatch::Params> params(
254 RemoveGalleryWatch::Params::Create(*args_)); 246 RemoveGalleryWatch::Params::Create(*args_));
255 EXTENSION_FUNCTION_VALIDATE(params.get()); 247 EXTENSION_FUNCTION_VALIDATE(params.get());
256 248
257 MediaGalleriesPreferences* preferences = 249 MediaGalleriesPreferences* preferences =
258 g_browser_process->media_file_system_registry()->GetPreferences( 250 g_browser_process->media_file_system_registry()->GetPreferences(
259 GetProfile()); 251 GetProfile());
260 preferences->EnsureInitialized(base::Bind( 252 preferences->EnsureInitialized(base::Bind(
261 &MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit, 253 &MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit,
262 this, 254 this,
263 params->gallery_id)); 255 params->gallery_id));
264 return true; 256 return true;
265 } 257 }
266 258
267 void MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit( 259 void MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit(
268 const std::string& pref_id) { 260 const std::string& pref_id) {
269 #if defined(OS_WIN) || defined(OS_LINUX)
270 base::FilePath gallery_file_path; 261 base::FilePath gallery_file_path;
271 MediaGalleryPrefId gallery_pref_id = 0; 262 MediaGalleryPrefId gallery_pref_id = 0;
272 if (!GetGalleryFilePathAndId(pref_id, 263 if (!GetGalleryFilePathAndId(pref_id,
273 GetProfile(), 264 GetProfile(),
274 GetExtension(), 265 GetExtension(),
275 &gallery_file_path, 266 &gallery_file_path,
276 &gallery_pref_id)) { 267 &gallery_pref_id)) {
277 error_ = kInvalidGalleryIDError; 268 error_ = kInvalidGalleryIDError;
278 SendResponse(false); 269 SendResponse(false);
279 return; 270 return;
280 } 271 }
281 272
282 content::BrowserThread::PostTask( 273 content::BrowserThread::PostTask(
283 content::BrowserThread::FILE, 274 content::BrowserThread::FILE,
284 FROM_HERE, 275 FROM_HERE,
285 base::Bind(&GalleryWatchManager::RemoveGalleryWatch, 276 base::Bind(&GalleryWatchManager::RemoveGalleryWatch,
286 GetProfile(), 277 GetProfile(),
287 gallery_file_path, 278 gallery_file_path,
288 extension_id())); 279 extension_id()));
289 280
290 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get( 281 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get(
291 GetProfile())->GetGalleryWatchStateTracker(); 282 GetProfile())->GetGalleryWatchStateTracker();
292 state_tracker->OnGalleryWatchRemoved(extension_id(), gallery_pref_id); 283 state_tracker->OnGalleryWatchRemoved(extension_id(), gallery_pref_id);
293 #endif
294 SendResponse(true); 284 SendResponse(true);
295 } 285 }
296 286
297 /////////////////////////////////////////////////////////////////////////////// 287 ///////////////////////////////////////////////////////////////////////////////
298 // MediaGalleriesPrivateGetAllGalleryWatchFunction // 288 // MediaGalleriesPrivateGetAllGalleryWatchFunction //
299 /////////////////////////////////////////////////////////////////////////////// 289 ///////////////////////////////////////////////////////////////////////////////
300 290
301 MediaGalleriesPrivateGetAllGalleryWatchFunction:: 291 MediaGalleriesPrivateGetAllGalleryWatchFunction::
302 ~MediaGalleriesPrivateGetAllGalleryWatchFunction() { 292 ~MediaGalleriesPrivateGetAllGalleryWatchFunction() {
303 } 293 }
304 294
305 bool MediaGalleriesPrivateGetAllGalleryWatchFunction::RunAsync() { 295 bool MediaGalleriesPrivateGetAllGalleryWatchFunction::RunAsync() {
306 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 296 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
307 if (!render_view_host() || !render_view_host()->GetProcess()) 297 if (!render_view_host() || !render_view_host()->GetProcess())
308 return false; 298 return false;
309 299
310 MediaGalleriesPreferences* preferences = 300 MediaGalleriesPreferences* preferences =
311 g_browser_process->media_file_system_registry()->GetPreferences( 301 g_browser_process->media_file_system_registry()->GetPreferences(
312 GetProfile()); 302 GetProfile());
313 preferences->EnsureInitialized(base::Bind( 303 preferences->EnsureInitialized(base::Bind(
314 &MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit, 304 &MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit,
315 this)); 305 this));
316 return true; 306 return true;
317 } 307 }
318 308
319 void MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit() { 309 void MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit() {
320 std::vector<std::string> result; 310 std::vector<std::string> result;
321 #if defined(OS_WIN) || defined(OS_LINUX)
322 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get( 311 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get(
323 GetProfile())->GetGalleryWatchStateTracker(); 312 GetProfile())->GetGalleryWatchStateTracker();
324 MediaGalleryPrefIdSet gallery_ids = 313 MediaGalleryPrefIdSet gallery_ids =
325 state_tracker->GetAllWatchedGalleryIDsForExtension(extension_id()); 314 state_tracker->GetAllWatchedGalleryIDsForExtension(extension_id());
326 for (MediaGalleryPrefIdSet::const_iterator iter = gallery_ids.begin(); 315 for (MediaGalleryPrefIdSet::const_iterator iter = gallery_ids.begin();
327 iter != gallery_ids.end(); ++iter) { 316 iter != gallery_ids.end(); ++iter) {
328 result.push_back(base::Uint64ToString(*iter)); 317 result.push_back(base::Uint64ToString(*iter));
329 } 318 }
330 #endif
331 results_ = GetAllGalleryWatch::Results::Create(result); 319 results_ = GetAllGalleryWatch::Results::Create(result);
332 SendResponse(true); 320 SendResponse(true);
333 } 321 }
334 322
335 /////////////////////////////////////////////////////////////////////////////// 323 ///////////////////////////////////////////////////////////////////////////////
336 // MediaGalleriesPrivateRemoveAllGalleryWatchFunction // 324 // MediaGalleriesPrivateRemoveAllGalleryWatchFunction //
337 /////////////////////////////////////////////////////////////////////////////// 325 ///////////////////////////////////////////////////////////////////////////////
338 326
339 MediaGalleriesPrivateRemoveAllGalleryWatchFunction:: 327 MediaGalleriesPrivateRemoveAllGalleryWatchFunction::
340 ~MediaGalleriesPrivateRemoveAllGalleryWatchFunction() { 328 ~MediaGalleriesPrivateRemoveAllGalleryWatchFunction() {
341 } 329 }
342 330
343 bool MediaGalleriesPrivateRemoveAllGalleryWatchFunction::RunAsync() { 331 bool MediaGalleriesPrivateRemoveAllGalleryWatchFunction::RunAsync() {
344 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 332 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
345 if (!render_view_host() || !render_view_host()->GetProcess()) 333 if (!render_view_host() || !render_view_host()->GetProcess())
346 return false; 334 return false;
347 335
348 MediaGalleriesPreferences* preferences = 336 MediaGalleriesPreferences* preferences =
349 g_browser_process->media_file_system_registry()->GetPreferences( 337 g_browser_process->media_file_system_registry()->GetPreferences(
350 GetProfile()); 338 GetProfile());
351 preferences->EnsureInitialized(base::Bind( 339 preferences->EnsureInitialized(base::Bind(
352 &MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit, 340 &MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit,
353 this)); 341 this));
354 return true; 342 return true;
355 } 343 }
356 344
357 void MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit() { 345 void MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit() {
358 #if defined(OS_WIN) || defined(OS_LINUX)
359 MediaGalleriesPreferences* preferences = 346 MediaGalleriesPreferences* preferences =
360 g_browser_process->media_file_system_registry()->GetPreferences( 347 g_browser_process->media_file_system_registry()->GetPreferences(
361 GetProfile()); 348 GetProfile());
362 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get( 349 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get(
363 GetProfile())->GetGalleryWatchStateTracker(); 350 GetProfile())->GetGalleryWatchStateTracker();
364 state_tracker->RemoveAllGalleryWatchersForExtension( 351 state_tracker->RemoveAllGalleryWatchersForExtension(
365 extension_id(), preferences); 352 extension_id(), preferences);
366 #endif
367 SendResponse(true); 353 SendResponse(true);
368 } 354 }
369 355
370 } // namespace extensions 356 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698