1 // Copyright 2012 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/ios/ios_util.h" 6 7 #include "base/sys_info.h" 8 9 namespace { 10 // Return a 3 elements array containing the major, minor and bug fix version of 11 // the OS. 12 const int32* OSVersionAsArray() { 13 int32* digits = new int32[3]; 14 base::SysInfo::OperatingSystemVersionNumbers( 15 &digits[0], &digits[1], &digits[2]); 16 return digits; 17 } 18 } // namespace 19 20 namespace base { 21 namespace ios { 22 23 bool IsRunningOnIOS7OrLater() { 24 return IsRunningOnOrLater(7, 0, 0); 25 } 26 27 bool IsRunningOnIOS8OrLater() { 28 return IsRunningOnOrLater(8, 0, 0); 29 } 30 31 bool IsRunningOnOrLater(int32 major, int32 minor, int32 bug_fix) { 32 static const int32* current_version = OSVersionAsArray(); 33 int32 version[] = { major, minor, bug_fix }; 34 for (size_t i = 0; i < arraysize(version); i++) { 35 if (current_version[i] != version[i]) 36 return current_version[i] > version[i]; 37 } 38 return true; 39 } 40 41 } // namespace ios 42 } // namespace base 43