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

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

Issue 332003002: Enable gallery watches on Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 if (!GetGalleryFilePathAndId(pref_id, 187 if (!GetGalleryFilePathAndId(pref_id,
188 GetProfile(), 188 GetProfile(),
189 GetExtension(), 189 GetExtension(),
190 &gallery_file_path, 190 &gallery_file_path,
191 &gallery_pref_id)) { 191 &gallery_pref_id)) {
192 error_ = kInvalidGalleryIDError; 192 error_ = kInvalidGalleryIDError;
193 HandleResponse(gallery_pref_id, false); 193 HandleResponse(gallery_pref_id, false);
194 return; 194 return;
195 } 195 }
196 196
197 #if defined(OS_WIN) || defined(OS_LINUX)
198 MediaGalleriesPrivateEventRouter* router = 197 MediaGalleriesPrivateEventRouter* router =
199 MediaGalleriesPrivateAPI::Get(GetProfile())->GetEventRouter(); 198 MediaGalleriesPrivateAPI::Get(GetProfile())->GetEventRouter();
200 DCHECK(router); 199 DCHECK(router);
201 content::BrowserThread::PostTaskAndReplyWithResult( 200 content::BrowserThread::PostTaskAndReplyWithResult(
202 content::BrowserThread::FILE, 201 content::BrowserThread::FILE,
203 FROM_HERE, 202 FROM_HERE,
204 base::Bind(&GalleryWatchManager::SetupGalleryWatch, 203 base::Bind(&GalleryWatchManager::SetupGalleryWatch,
205 GetProfile(), 204 GetProfile(),
206 gallery_pref_id, 205 gallery_pref_id,
207 gallery_file_path, 206 gallery_file_path,
208 extension_id(), 207 extension_id(),
209 router->AsWeakPtr()), 208 router->AsWeakPtr()),
210 base::Bind(&MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse, 209 base::Bind(&MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse,
211 this, 210 this,
212 gallery_pref_id)); 211 gallery_pref_id));
213 #else
214 // Recursive gallery watch operation is not currently supported on Mac:
215 // crbug.com/144491
216 HandleResponse(gallery_pref_id, false);
217 #endif
218 } 212 }
219 213
220 void MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse( 214 void MediaGalleriesPrivateAddGalleryWatchFunction::HandleResponse(
221 MediaGalleryPrefId gallery_id, 215 MediaGalleryPrefId gallery_id,
222 bool success) { 216 bool success) {
223 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 217 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
224 media_galleries_private::AddGalleryWatchResult result; 218 media_galleries_private::AddGalleryWatchResult result;
225 result.gallery_id = base::Uint64ToString(gallery_id); 219 result.gallery_id = base::Uint64ToString(gallery_id);
226 result.success = success; 220 result.success = success;
227 SetResult(result.ToValue().release()); 221 SetResult(result.ToValue().release());
(...skipping 15 matching lines...) Expand all
243 237
244 MediaGalleriesPrivateRemoveGalleryWatchFunction:: 238 MediaGalleriesPrivateRemoveGalleryWatchFunction::
245 ~MediaGalleriesPrivateRemoveGalleryWatchFunction() { 239 ~MediaGalleriesPrivateRemoveGalleryWatchFunction() {
246 } 240 }
247 241
248 bool MediaGalleriesPrivateRemoveGalleryWatchFunction::RunAsync() { 242 bool MediaGalleriesPrivateRemoveGalleryWatchFunction::RunAsync() {
249 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 243 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
250 if (!render_view_host() || !render_view_host()->GetProcess()) 244 if (!render_view_host() || !render_view_host()->GetProcess())
251 return false; 245 return false;
252 246
253 // Remove gallery watch operation is currently supported on Mac:
254 // crbug.com/144491
255 scoped_ptr<RemoveGalleryWatch::Params> params( 247 scoped_ptr<RemoveGalleryWatch::Params> params(
256 RemoveGalleryWatch::Params::Create(*args_)); 248 RemoveGalleryWatch::Params::Create(*args_));
257 EXTENSION_FUNCTION_VALIDATE(params.get()); 249 EXTENSION_FUNCTION_VALIDATE(params.get());
258 250
259 MediaGalleriesPreferences* preferences = 251 MediaGalleriesPreferences* preferences =
260 g_browser_process->media_file_system_registry()->GetPreferences( 252 g_browser_process->media_file_system_registry()->GetPreferences(
261 GetProfile()); 253 GetProfile());
262 preferences->EnsureInitialized(base::Bind( 254 preferences->EnsureInitialized(base::Bind(
263 &MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit, 255 &MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit,
264 this, 256 this,
265 params->gallery_id)); 257 params->gallery_id));
266 return true; 258 return true;
267 } 259 }
268 260
269 void MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit( 261 void MediaGalleriesPrivateRemoveGalleryWatchFunction::OnPreferencesInit(
270 const std::string& pref_id) { 262 const std::string& pref_id) {
271 #if defined(OS_WIN) || defined(OS_LINUX)
272 base::FilePath gallery_file_path; 263 base::FilePath gallery_file_path;
273 MediaGalleryPrefId gallery_pref_id = 0; 264 MediaGalleryPrefId gallery_pref_id = 0;
274 if (!GetGalleryFilePathAndId(pref_id, 265 if (!GetGalleryFilePathAndId(pref_id,
275 GetProfile(), 266 GetProfile(),
276 GetExtension(), 267 GetExtension(),
277 &gallery_file_path, 268 &gallery_file_path,
278 &gallery_pref_id)) { 269 &gallery_pref_id)) {
279 error_ = kInvalidGalleryIDError; 270 error_ = kInvalidGalleryIDError;
280 SendResponse(false); 271 SendResponse(false);
281 return; 272 return;
282 } 273 }
283 274
284 content::BrowserThread::PostTask( 275 content::BrowserThread::PostTask(
285 content::BrowserThread::FILE, 276 content::BrowserThread::FILE,
286 FROM_HERE, 277 FROM_HERE,
287 base::Bind(&GalleryWatchManager::RemoveGalleryWatch, 278 base::Bind(&GalleryWatchManager::RemoveGalleryWatch,
288 GetProfile(), 279 GetProfile(),
289 gallery_file_path, 280 gallery_file_path,
290 extension_id())); 281 extension_id()));
291 282
292 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get( 283 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get(
293 GetProfile())->GetGalleryWatchStateTracker(); 284 GetProfile())->GetGalleryWatchStateTracker();
294 state_tracker->OnGalleryWatchRemoved(extension_id(), gallery_pref_id); 285 state_tracker->OnGalleryWatchRemoved(extension_id(), gallery_pref_id);
295 #endif
296 SendResponse(true); 286 SendResponse(true);
297 } 287 }
298 288
299 /////////////////////////////////////////////////////////////////////////////// 289 ///////////////////////////////////////////////////////////////////////////////
300 // MediaGalleriesPrivateGetAllGalleryWatchFunction // 290 // MediaGalleriesPrivateGetAllGalleryWatchFunction //
301 /////////////////////////////////////////////////////////////////////////////// 291 ///////////////////////////////////////////////////////////////////////////////
302 292
303 MediaGalleriesPrivateGetAllGalleryWatchFunction:: 293 MediaGalleriesPrivateGetAllGalleryWatchFunction::
304 ~MediaGalleriesPrivateGetAllGalleryWatchFunction() { 294 ~MediaGalleriesPrivateGetAllGalleryWatchFunction() {
305 } 295 }
306 296
307 bool MediaGalleriesPrivateGetAllGalleryWatchFunction::RunAsync() { 297 bool MediaGalleriesPrivateGetAllGalleryWatchFunction::RunAsync() {
308 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 298 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
309 if (!render_view_host() || !render_view_host()->GetProcess()) 299 if (!render_view_host() || !render_view_host()->GetProcess())
310 return false; 300 return false;
311 301
312 MediaGalleriesPreferences* preferences = 302 MediaGalleriesPreferences* preferences =
313 g_browser_process->media_file_system_registry()->GetPreferences( 303 g_browser_process->media_file_system_registry()->GetPreferences(
314 GetProfile()); 304 GetProfile());
315 preferences->EnsureInitialized(base::Bind( 305 preferences->EnsureInitialized(base::Bind(
316 &MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit, 306 &MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit,
317 this)); 307 this));
318 return true; 308 return true;
319 } 309 }
320 310
321 void MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit() { 311 void MediaGalleriesPrivateGetAllGalleryWatchFunction::OnPreferencesInit() {
322 std::vector<std::string> result; 312 std::vector<std::string> result;
323 #if defined(OS_WIN) || defined(OS_LINUX)
324 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get( 313 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get(
325 GetProfile())->GetGalleryWatchStateTracker(); 314 GetProfile())->GetGalleryWatchStateTracker();
326 MediaGalleryPrefIdSet gallery_ids = 315 MediaGalleryPrefIdSet gallery_ids =
327 state_tracker->GetAllWatchedGalleryIDsForExtension(extension_id()); 316 state_tracker->GetAllWatchedGalleryIDsForExtension(extension_id());
328 for (MediaGalleryPrefIdSet::const_iterator iter = gallery_ids.begin(); 317 for (MediaGalleryPrefIdSet::const_iterator iter = gallery_ids.begin();
329 iter != gallery_ids.end(); ++iter) { 318 iter != gallery_ids.end(); ++iter) {
330 result.push_back(base::Uint64ToString(*iter)); 319 result.push_back(base::Uint64ToString(*iter));
331 } 320 }
332 #endif
333 results_ = GetAllGalleryWatch::Results::Create(result); 321 results_ = GetAllGalleryWatch::Results::Create(result);
334 SendResponse(true); 322 SendResponse(true);
335 } 323 }
336 324
337 /////////////////////////////////////////////////////////////////////////////// 325 ///////////////////////////////////////////////////////////////////////////////
338 // MediaGalleriesPrivateRemoveAllGalleryWatchFunction // 326 // MediaGalleriesPrivateRemoveAllGalleryWatchFunction //
339 /////////////////////////////////////////////////////////////////////////////// 327 ///////////////////////////////////////////////////////////////////////////////
340 328
341 MediaGalleriesPrivateRemoveAllGalleryWatchFunction:: 329 MediaGalleriesPrivateRemoveAllGalleryWatchFunction::
342 ~MediaGalleriesPrivateRemoveAllGalleryWatchFunction() { 330 ~MediaGalleriesPrivateRemoveAllGalleryWatchFunction() {
343 } 331 }
344 332
345 bool MediaGalleriesPrivateRemoveAllGalleryWatchFunction::RunAsync() { 333 bool MediaGalleriesPrivateRemoveAllGalleryWatchFunction::RunAsync() {
346 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 334 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
347 if (!render_view_host() || !render_view_host()->GetProcess()) 335 if (!render_view_host() || !render_view_host()->GetProcess())
348 return false; 336 return false;
349 337
350 MediaGalleriesPreferences* preferences = 338 MediaGalleriesPreferences* preferences =
351 g_browser_process->media_file_system_registry()->GetPreferences( 339 g_browser_process->media_file_system_registry()->GetPreferences(
352 GetProfile()); 340 GetProfile());
353 preferences->EnsureInitialized(base::Bind( 341 preferences->EnsureInitialized(base::Bind(
354 &MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit, 342 &MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit,
355 this)); 343 this));
356 return true; 344 return true;
357 } 345 }
358 346
359 void MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit() { 347 void MediaGalleriesPrivateRemoveAllGalleryWatchFunction::OnPreferencesInit() {
360 #if defined(OS_WIN) || defined(OS_LINUX)
361 MediaGalleriesPreferences* preferences = 348 MediaGalleriesPreferences* preferences =
362 g_browser_process->media_file_system_registry()->GetPreferences( 349 g_browser_process->media_file_system_registry()->GetPreferences(
363 GetProfile()); 350 GetProfile());
364 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get( 351 GalleryWatchStateTracker* state_tracker = MediaGalleriesPrivateAPI::Get(
365 GetProfile())->GetGalleryWatchStateTracker(); 352 GetProfile())->GetGalleryWatchStateTracker();
366 state_tracker->RemoveAllGalleryWatchersForExtension( 353 state_tracker->RemoveAllGalleryWatchersForExtension(
367 extension_id(), preferences); 354 extension_id(), preferences);
368 #endif
369 SendResponse(true); 355 SendResponse(true);
370 } 356 }
371 357
372 /////////////////////////////////////////////////////////////////////////////// 358 ///////////////////////////////////////////////////////////////////////////////
373 // MediaGalleriesPrivateGetHandlersFunction // 359 // MediaGalleriesPrivateGetHandlersFunction //
374 /////////////////////////////////////////////////////////////////////////////// 360 ///////////////////////////////////////////////////////////////////////////////
375 361
376 MediaGalleriesPrivateGetHandlersFunction:: 362 MediaGalleriesPrivateGetHandlersFunction::
377 ~MediaGalleriesPrivateGetHandlersFunction() { 363 ~MediaGalleriesPrivateGetHandlersFunction() {
378 } 364 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 } 399 }
414 } 400 }
415 401
416 SetResult(result_list); 402 SetResult(result_list);
417 SendResponse(true); 403 SendResponse(true);
418 404
419 return true; 405 return true;
420 } 406 }
421 407
422 } // namespace extensions 408 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698