file_version_info_mac.mm revision dc0f95d653279beabeb9817299e2902918ba123e
1// Copyright (c) 2010 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 "base/file_version_info_mac.h" 6 7#import <Foundation/Foundation.h> 8 9#include "base/file_path.h" 10#include "base/logging.h" 11#include "base/mac/mac_util.h" 12#include "base/sys_string_conversions.h" 13 14FileVersionInfoMac::FileVersionInfoMac(NSBundle *bundle) : bundle_(bundle) { 15} 16 17FileVersionInfoMac::~FileVersionInfoMac() {} 18 19// static 20FileVersionInfo* FileVersionInfo::CreateFileVersionInfoForCurrentModule() { 21 return CreateFileVersionInfo(base::mac::MainAppBundlePath()); 22} 23 24// static 25FileVersionInfo* FileVersionInfo::CreateFileVersionInfo( 26 const FilePath& file_path) { 27 NSString* path = base::SysUTF8ToNSString(file_path.value()); 28 NSBundle* bundle = [NSBundle bundleWithPath:path]; 29 return new FileVersionInfoMac(bundle); 30} 31 32string16 FileVersionInfoMac::company_name() { 33 return string16(); 34} 35 36string16 FileVersionInfoMac::company_short_name() { 37 return string16(); 38} 39 40string16 FileVersionInfoMac::internal_name() { 41 return string16(); 42} 43 44string16 FileVersionInfoMac::product_name() { 45 return GetString16Value(kCFBundleNameKey); 46} 47 48string16 FileVersionInfoMac::product_short_name() { 49 return GetString16Value(kCFBundleNameKey); 50} 51 52string16 FileVersionInfoMac::comments() { 53 return string16(); 54} 55 56string16 FileVersionInfoMac::legal_copyright() { 57 return GetString16Value(CFSTR("CFBundleGetInfoString")); 58} 59 60string16 FileVersionInfoMac::product_version() { 61 return GetString16Value(CFSTR("CFBundleShortVersionString")); 62} 63 64string16 FileVersionInfoMac::file_description() { 65 return string16(); 66} 67 68string16 FileVersionInfoMac::legal_trademarks() { 69 return string16(); 70} 71 72string16 FileVersionInfoMac::private_build() { 73 return string16(); 74} 75 76string16 FileVersionInfoMac::file_version() { 77 return product_version(); 78} 79 80string16 FileVersionInfoMac::original_filename() { 81 return GetString16Value(kCFBundleNameKey); 82} 83 84string16 FileVersionInfoMac::special_build() { 85 return string16(); 86} 87 88string16 FileVersionInfoMac::last_change() { 89 return GetString16Value(CFSTR("SVNRevision")); 90} 91 92bool FileVersionInfoMac::is_official_build() { 93#if defined (GOOGLE_CHROME_BUILD) 94 return true; 95#else 96 return false; 97#endif 98} 99 100string16 FileVersionInfoMac::GetString16Value(CFStringRef name) { 101 if (bundle_) { 102 NSString *ns_name = base::mac::CFToNSCast(name); 103 NSString* value = [bundle_ objectForInfoDictionaryKey:ns_name]; 104 if (value) { 105 return base::SysNSStringToUTF16(value); 106 } 107 } 108 return string16(); 109} 110