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 3 // found in the LICENSE file. 4 5 #include "chrome/browser/media_galleries/fileapi/iapps_finder_impl.h" 6 7 #include "base/bind.h" 8 #include "base/logging.h" 9 #include "content/public/browser/browser_thread.h" 10 11 namespace iapps { 12 13 namespace { 14 15 void PostResultToUIThread(StorageInfo::Type type, 16 const IAppsFinderCallback& callback, 17 const std::string& unique_id) { 18 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); 19 20 std::string device_id; 21 if (!unique_id.empty()) 22 device_id = StorageInfo::MakeDeviceId(type, unique_id); 23 24 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, 25 base::Bind(callback, device_id)); 26 } 27 28 } // namespace 29 30 void FindIAppsOnFileThread(StorageInfo::Type type, const IAppsFinderTask& task, 31 const IAppsFinderCallback& callback) { 32 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 33 DCHECK(!task.is_null()); 34 DCHECK(!callback.is_null()); 35 36 content::BrowserThread::PostTask( 37 content::BrowserThread::FILE, 38 FROM_HERE, 39 base::Bind(task, base::Bind(PostResultToUIThread, type, callback))); 40 } 41 42 // iPhoto is only supported on OSX. 43 #if !defined(OS_MACOSX) 44 void FindIPhotoLibrary(const IAppsFinderCallback& callback) { 45 callback.Run(std::string()); 46 } 47 #endif // !defined(OS_MACOSX) 48 49 // iTunes is only support on OSX and Windows. 50 #if !defined(OS_MACOSX) && !defined(OS_WIN) 51 void FindITunesLibrary(const IAppsFinderCallback& callback) { 52 callback.Run(std::string()); 53 } 54 #endif 55 56 } // namespace iapps 57