1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_UPDATER_MAC_SETUP_KS_TICKETS_H_
#define CHROME_UPDATER_MAC_SETUP_KS_TICKETS_H_
#import <Foundation/Foundation.h>
extern NSString* _Nonnull const kCRUTicketBrandKey;
extern NSString* _Nonnull const kCRUTicketTagKey;
namespace base {
class FilePath;
}
@interface KSPathExistenceChecker : NSObject <NSSecureCoding>
@property(nonnull, readonly) NSString* path;
- (nullable instancetype)initWithFilePath:(const base::FilePath&)filePath;
@end
@interface KSTicket : NSObject <NSSecureCoding> {
NSString* __strong productID_;
NSString* __strong version_;
NSString* __strong brandCode_;
KSPathExistenceChecker* __strong existenceChecker_;
NSURL* __strong serverURL_;
NSString* __strong serverType_;
NSDate* __strong creationDate_;
NSString* __strong tag_;
NSString* __strong tagPath_;
NSString* __strong tagKey_;
NSString* __strong brandPath_;
NSString* __strong brandKey_;
NSString* __strong versionPath_;
NSString* __strong versionKey_;
NSString* __strong cohort_;
NSString* __strong cohortHint_;
NSString* __strong cohortName_;
int32_t ticketVersion_;
}
@property(nonnull, nonatomic, readonly) NSString* productID;
@property(nullable, nonatomic, readonly)
KSPathExistenceChecker* existenceChecker;
@property(nullable, nonatomic, readonly) NSURL* serverURL;
@property(nonnull, nonatomic, readonly) NSDate* creationDate;
@property(nullable, nonatomic, readonly) NSString* serverType;
@property(nullable, nonatomic, readonly) NSString* tag;
@property(nullable, nonatomic, readonly) NSString* tagPath;
@property(nullable, nonatomic, readonly) NSString* tagKey;
@property(nullable, nonatomic, readonly) NSString* brandPath;
@property(nullable, nonatomic, readonly) NSString* brandKey;
@property(nullable, nonatomic, readonly) NSString* version;
@property(nullable, nonatomic, readonly) NSString* versionPath;
@property(nullable, nonatomic, readonly) NSString* versionKey;
@property(nullable, nonatomic, readonly) NSString* cohort;
@property(nullable, nonatomic, readonly) NSString* cohortHint;
@property(nullable, nonatomic, readonly) NSString* cohortName;
@property int32_t ticketVersion;
// Values that are sent as the attributes in the update check request.
- (nullable NSString*)determineTag; // ap
- (nullable NSString*)determineBrand; // brand
- (nullable NSString*)determineVersion; // version
- (nonnull instancetype)initWithAppId:(nonnull NSString*)appId
version:(nullable const NSString*)version
ecp:(const base::FilePath&)ecp
tag:(nullable NSString*)tag
brandCode:(nullable NSString*)brandCode
brandPath:(const base::FilePath&)brandPath;
@end
// KSTicketStore holds a class method for reading an NSDictionary of NSString
// to KSTickets.
@interface KSTicketStore : NSObject
+ (nullable NSDictionary<NSString*, KSTicket*>*)readStoreWithPath:
(nonnull NSString*)path;
@end
#endif // CHROME_UPDATER_MAC_SETUP_KS_TICKETS_H_
|