// Copyright (c) 2011 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. #ifndef CHROME_BROWSER_MAC_KEYSTONE_REGISTRATION_H_ #define CHROME_BROWSER_MAC_KEYSTONE_REGISTRATION_H_ #import #include // Declarations of the Keystone registration bits needed here. From // KSRegistration.h. namespace keystone_registration { typedef enum { kKSPathExistenceChecker, } KSExistenceCheckerType; typedef enum { kKSRegistrationUserTicket, kKSRegistrationSystemTicket, kKSRegistrationDontKnowWhatKindOfTicket, } KSRegistrationTicketType; extern NSString* KSRegistrationVersionKey; extern NSString* KSRegistrationExistenceCheckerTypeKey; extern NSString* KSRegistrationExistenceCheckerStringKey; extern NSString* KSRegistrationServerURLStringKey; extern NSString* KSRegistrationPreserveTrustedTesterTokenKey; extern NSString* KSRegistrationTagKey; extern NSString* KSRegistrationTagPathKey; extern NSString* KSRegistrationTagKeyKey; extern NSString* KSRegistrationBrandPathKey; extern NSString* KSRegistrationBrandKeyKey; extern NSString* KSRegistrationVersionPathKey; extern NSString* KSRegistrationVersionKeyKey; extern NSString* KSRegistrationDidCompleteNotification; extern NSString* KSRegistrationPromotionDidCompleteNotification; extern NSString* KSRegistrationCheckForUpdateNotification; extern NSString* KSRegistrationStatusKey; extern NSString* KSRegistrationUpdateCheckErrorKey; extern NSString* KSRegistrationStartUpdateNotification; extern NSString* KSUpdateCheckSuccessfulKey; extern NSString* KSUpdateCheckSuccessfullyInstalledKey; extern NSString* KSRegistrationRemoveExistingTag; extern NSString* KSReportingAttributeValueKey; extern NSString* KSReportingAttributeExpirationDateKey; extern NSString* KSReportingAttributeAggregationTypeKey; #define KSRegistrationPreserveExistingTag nil } // namespace keystone_registration typedef enum { kKSReportingAggregationSum = 0, // Adds attribute value across user accounts kKSReportingAggregationDefault = kKSReportingAggregationSum, } KSReportingAggregationType; @interface KSRegistration : NSObject + (id)registrationWithProductID:(NSString*)productID; - (BOOL)registerWithParameters:(NSDictionary*)args; - (BOOL)promoteWithParameters:(NSDictionary*)args authorization:(AuthorizationRef)authorization; - (BOOL)setActive; - (BOOL)setActiveWithReportingAttributes:(NSArray*)reportingAttributes error:(NSError**)error; - (void)checkForUpdateWasUserInitiated:(BOOL)userInitiated; - (void)startUpdate; - (keystone_registration::KSRegistrationTicketType)ticketType; @end // @interface KSRegistration // Declarations of the Keystone attribute reporting bits needed here. // Full definition is at: // //depot/googlemac/opensource/update-engine/Common/KSReportingAttribute.h @interface KSReportingAttribute : NSObject @end // @interface KSReportingAttribute @interface KSUnsignedReportingAttribute : KSReportingAttribute + (KSUnsignedReportingAttribute *)reportingAttributeWithValue:(uint32_t)value name:(NSString *)name aggregationType:(KSReportingAggregationType)aggregationType error:(NSError **)error; @end // @interface KSUnsignedReportingAttribute #endif // CHROME_BROWSER_MAC_KEYSTONE_REGISTRATION_H_