1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- // This file contains forward declarations for items in later SDKs than the
- // default one with which Chromium is built.
- #ifndef BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
- #define BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
- #include <AvailabilityMacros.h>
- #include <AvailabilityVersions.h>
- #include <os/availability.h>
- // NOTE: If an #import is needed only for a newer SDK, it might be found below.
- #include "base/base_export.h"
- // ----------------------------------------------------------------------------
- // Definitions from SDKs newer than the one that Chromium compiles against.
- //
- // HOW TO DO THIS:
- //
- // 1. In this file:
- // a. Use an #if !defined() guard
- // b. Include all API_AVAILABLE/NS_CLASS_AVAILABLE_MAC annotations
- // c. Optionally import frameworks
- // 2. In your source file:
- // a. Correctly annotate availability with @available/__builtin_available/
- // API_AVAILABLE
- //
- // This way, when the SDK is rolled, the section full of definitions
- // corresponding to it can be easily deleted.
- //
- // EXAMPLES OF HOW TO DO THIS:
- //
- // Suppose there's a simple extension of NSApplication in macOS 10.25. Then:
- //
- // #if !defined(MAC_OS_X_VERSION_10_25) || \
- // MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_25
- //
- // @interface NSApplication (MacOSHouseCatSDK)
- // @property(readonly) CGFloat purrRate API_AVAILABLE(macos(10.25));
- // @end
- //
- // #endif // MAC_OS_X_VERSION_10_25
- //
- //
- // Suppose the CoreShoelace framework is introduced in macOS 10.77. Then:
- //
- // #if !defined(MAC_OS_X_VERSION_10_77) || \
- // MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_77
- //
- // API_AVAILABLE(macos(10.77))
- // @interface NSCoreShoelace : NSObject
- // @property (readonly) NSUInteger stringLength;
- // @end
- //
- // #else
- //
- // #import <CoreShoelace/CoreShoelace.h>
- //
- // #endif // MAC_OS_X_VERSION_10_77
- //
- // ----------------------------------------------------------------------------
- #if !defined(MAC_OS_VERSION_11_0)
- #include <CoreMedia/CoreMedia.h>
- enum : CMVideoCodecType { kCMVideoCodecType_VP9 = 'vp09' };
- extern "C" {
- void VTRegisterSupplementalVideoDecoderIfAvailable(CMVideoCodecType codecType);
- }
- #endif // MAC_OS_VERSION_11_0
- #endif // BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
|