Chromium Code Reviews| Index: chrome/browser/media_galleries/fileapi/itunes_finder_mac.mm |
| diff --git a/chrome/browser/media_galleries/fileapi/itunes_finder_mac.mm b/chrome/browser/media_galleries/fileapi/itunes_finder_mac.mm |
| index 3780160263982a9f35de8a998d938ec81cf53bc4..ef125336e9fce0fe1d27476f99d8e1f51000ce90 100644 |
| --- a/chrome/browser/media_galleries/fileapi/itunes_finder_mac.mm |
| +++ b/chrome/browser/media_galleries/fileapi/itunes_finder_mac.mm |
| @@ -10,11 +10,31 @@ |
| #import "base/mac/scoped_nsobject.h" |
| #include "base/strings/sys_string_conversions.h" |
| #include "base/time/time.h" |
| +#include "chrome/browser/policy/preferences_mac.h" |
| #include "content/public/browser/browser_thread.h" |
| using base::mac::CFCast; |
| using base::mac::CFToNSCast; |
| +namespace { |
| + |
| +static MacPreferences* g_mac_preferences = NULL; |
| + |
| +NSArray* GetItunesRecentDatabasePaths() { |
| + scoped_ptr<MacPreferences> real_preferences; |
| + MacPreferences* prefs = g_mac_preferences; |
| + if (!prefs) { |
| + real_preferences.reset(new MacPreferences()); |
| + prefs = real_preferences.get(); |
| + } |
| + CFStringRef iapp_id = CFSTR("com.apple.iApps"); |
| + CFStringRef itunes_db_key = CFSTR("iTunesRecentDatabasePaths"); |
| + return CFToNSCast(CFCast<CFArrayRef>(prefs->CopyAppValue(itunes_db_key, |
| + iapp_id))); |
| +} |
| + |
| +} // namespace |
| + |
| namespace itunes { |
| ITunesFinderMac::ITunesFinderMac(const ITunesFinderCallback& callback) |
| @@ -23,13 +43,17 @@ ITunesFinderMac::ITunesFinderMac(const ITunesFinderCallback& callback) |
| ITunesFinderMac::~ITunesFinderMac() {} |
| +// static |
| +void ITunesFinderMac::SetMacPreferencesForTesting(MacPreferences* preferences) { |
| + if (g_mac_preferences) |
|
Lei Zhang
2013/08/13 20:02:34
delete does this check already.
|
| + delete g_mac_preferences; |
| + g_mac_preferences = preferences; |
| +} |
| + |
| void ITunesFinderMac::FindITunesLibraryOnFileThread() { |
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); |
| - CFStringRef iapp_id = CFSTR("com.apple.iApps"); |
| - CFStringRef itunes_db_key = CFSTR("iTunesRecentDatabasePaths"); |
| - base::scoped_nsobject<NSArray> plist(CFToNSCast( |
| - CFCast<CFArrayRef>(CFPreferencesCopyAppValue(itunes_db_key, iapp_id)))); |
| + base::scoped_nsobject<NSArray> plist(GetItunesRecentDatabasePaths()); |
| if (!plist) { |
| PostResultToUIThread(std::string()); |
| return; |