luxlabs header browser preview


@class NSMutableDictionary, WKUserContentController, NSDictionary, WBProfile, NSMutableArray, NSString, NSSet, WKWebsiteDataStore, NSTimer, NSMutableSet, NSPointerArray, NSArray, WBSExtensionsAnalyticsEventCoalescer;
@protocol WBSExtensionsControllerDelegate;

@interface WBSExtensionsController : NSObject <WBSCloudExtensionStateProvider> {
    id _extensionMatchingContext;
    NSMutableDictionary *_extensionUniqueIdentifierToExtensionDataMap;
    NSMutableDictionary *_extensionIdentifierToStateMap;
    NSMutableDictionary *_extensionIdentifierToBaseURIMap;
    NSMutableDictionary *_baseURIHostToExtensionIdentifier;
    NSMutableSet *_enabledExtensions;
    NSMutableSet *_replacedExtensions;
    NSMutableSet *_blockedExtensions;
    NSTimer *_deleteStateForRemovedExtensionsTimer;
    NSPointerArray *_observers;
    BOOL _loadingDiscoveredExtensions;
    WKUserContentController *_userContentController;
    BOOL _forceExtensionLoadingAfterDiscovery;
}

@property (class, readonly) double temporarySiteAccessTimeInterval;

@property (readonly, nonatomic) BOOL hasPopulatedAllExtensionsFromExtensionDiscoveryAtLeastOnce;
@property (readonly, copy, nonatomic) NSArray *allProfileExtensionsControllers;
@property (weak, nonatomic) id<WBSExtensionsControllerDelegate> delegate;
@property (readonly, nonatomic) BOOL hasDiscoveredExtensions;
@property (readonly, copy, nonatomic) NSMutableArray *extensions;
@property (readonly, copy, nonatomic) NSArray *enabledExtensions;
@property (readonly, nonatomic) BOOL hasAnyEnabledExtensions;
@property (readonly, nonatomic) BOOL loadingEnabledExtensionsAtStartup;
@property (readonly, nonatomic) BOOL loadEnabledExtensionsWasCalled;
@property (readonly, copy, nonatomic) NSDictionary *extensionIdentifierToBaseURIMap;
@property (copy, nonatomic) NSString *profileServerID;
@property (readonly, nonatomic) WBProfile *profile;
@property (readonly, nonatomic) WKUserContentController *userContentController;
@property (readonly, copy, nonatomic) WKWebsiteDataStore *websiteDataStore;
@property (readonly, copy, nonatomic) NSArray *allDiscoveredExtensions;
@property (readonly, nonatomic) NSSet *extensionStateKeysToCopy;
@property (readonly, nonatomic) BOOL extensionsEnabled;
@property (readonly, nonatomic) WBSExtensionsAnalyticsEventCoalescer *analyticsEventCoalescer;
@property (readonly, nonatomic) NSArray *composedIdentifiersOfExtensionsWithAutomaticallyGrantedPermissions;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

+ (id)_skipLoadingEnabledExtensionsAtLaunchPreferenceKey;
+ (void)_didDiscoverExtensions:(BOOL)a0;
+ (Class)_extensionDataClass;
+ (id)extensionIdentifierToBaseURIMapBundleParameterKey;
+ (id)_extensionDefaults;
+ (BOOL)hasBlockedPromptAppearedForExtensionWithIdentifier:(id)a0;
+ (void)removeExtensionBundleIDFromArrayOfBlocklistedExtensions:(id)a0;
+ (id)_extensionPointIdentifier;
+ (id)_bundleIdentifierFromComposedIdentifier:(id)a0;
+ (id)_composedIdentifierForStateOfExtensionWithBundleIdentifier:(id)a0 developerIdentifier:(id)a1;
+ (id)_extensionFromComposedIdentifier:(id)a0;
+ (id)extensionURLScheme;
+ (id)extensionsCrashReporterMessageBundleParameterKey;

- (id)init;
- (void)dealloc;
- (void)removeObserver:(id)a0;
- (void)setExtensionWithComposedIdentifier:(id)a0 isEnabledInCloud:(BOOL)a1;
- (BOOL)extensionIsEnabled:(id)a0;
- (BOOL)hasExtensionWithComposedIdentifier:(id)a0;
- (void)setExtension:(id)a0 isEnabled:(BOOL)a1;
- (void)unloadAndDeleteStateForAllExtensions;
- (void)_beginExtensionDiscovery;
- (void).cxx_destruct;
- (BOOL)_supportsExtensionDiscovery;
- (void)addObserver:(id)a0;
- (id)profileServerIDForStateManager:(id)a0;
- (id)cloudExtensionStateForStateManager:(id)a0;
- (void)_endExtensionDiscovery;
- (id)_developerIdentifierForExtension:(id)a0 untrustedCodeSigningDictionary:(id)a1;
- (void)_disableAndBlockExtension:(id)a0;
- (id)_displayNameForExtension:(id)a0;
- (id)_extensionStateForExtension:(id)a0;
- (BOOL)_isExtensionBlockedByBlocklist:(id)a0 developerIdentifier:(id)a1;
- (void)_notifyObserversContentBlockerListDidChange;
- (void)_setExtensionState:(id)a0 forExtension:(id)a1;
- (id)composedIdentifierForExtensionStateForExtension:(id)a0;
- (id)extensionWithComposedIdentifier:(id)a0;
- (void)findExtensions;
- (id)initWithProfileServerID:(id)a0 userContentController:(id)a1 forceExtensionLoadingAfterDiscovery:(BOOL)a2;
- (id)readExtensionsStateFromStorage;
- (void)setExtension:(id)a0 isEnabled:(BOOL)a1 skipSavingToStorage:(BOOL)a2;
- (void)_showPromptForExtensionDisabledBecauseItHasRequestedAdditionalPermissions:(id)a0 extensionIdentifier:(id)a1;
- (void)didShowPerSiteAccessPermissionForExtension:(id)a0;
- (BOOL)hasShownPerSiteAccessPermissionForExtension:(id)a0;
- (id)initWithProfileServerID:(id)a0 userContentController:(id)a1;
- (void)reloadExtensionStateFromStorage;
- (void)_extensionsWereGloballyDisabled;
- (void)_addExtensionToBaseURIMap:(id)a0 withResourceURL:(id)a1;
- (void)_beginMatchingExtensionsWithAttributesCompletedWithMatchingExtensions:(id)a0;
- (void)_blockExtension:(id)a0;
- (id)_computeCodeSigningDictionaryOnDiskForExtension:(id)a0 attemptRetryOnFailure:(BOOL)a1;
- (void)_connectToExtensionForValidation:(id)a0 untrustedCodeSigningDictionary:(id)a1 attemptRetryOnFailure:(BOOL)a2;
- (void)_deleteStateForExtensionWithComposedIdentifier:(id)a0;
- (void)_deleteStateForRemovedExtensions;
- (void)_deleteStateForRemovedExtensionsAfterDelay:(double)a0;
- (void)_deleteStateForRemovedExtensionsSoon;
- (void)_deleteStateForRemovedExtensionsTimerFired:(id)a0;
- (void)_deleteStorageForExtensionWithComposedIdentifier:(id)a0;
- (id)_developerIdentifierForExtension:(id)a0;
- (id)_displayShortNameForExtension:(id)a0;
- (id)_displayVersionForExtension:(id)a0;
- (void)_enableExtension:(id)a0 completionHandler:(id /* block */)a1;
- (BOOL)_extensionShouldBeAutomaticallyEnabled:(id)a0;
- (BOOL)_extensionShouldBeEnabled:(id)a0;
- (id)_extensionsControllerForDefaultProfile;
- (void)_extensionsWereGloballyEnabled;
- (void)_finishedLoadingExtensions;
- (id)_generateBaseURIForExtension:(id)a0;
- (void)_grantRequestedPermissionsIfNecessaryForExtension:(id)a0;
- (void)_loadEnabledExtension:(id)a0;
- (void)_loadExtensions:(id)a0;
- (void)_populateAllExtensionsIfNecessaryUsingExtensionsControllerForDefaultProfile;
- (void)_postExtensionWasEnabledRemotelyNotificationIfNecessary:(id)a0;
- (void)_removeSafariExtensionDataForExtension:(id)a0;
- (void)_replaceExtensionsObsoletedByExtension:(id)a0 developerIdentifier:(id)a1;
- (void)_resetExtensionsState;
- (void)_setExtensionIdentifierToStateMap:(id)a0 forExtensionWithComposedIdentifier:(id)a1;
- (void)_setExtensionIdentifierToStateMap:(id)a0 forExtensionWithComposedIdentifier:(id)a1 completionHandler:(id /* block */)a2;
- (void)_setExtensionState:(id)a0 forExtension:(id)a1 completionHandler:(id /* block */)a2;
- (BOOL)_shouldDisableExtensionIfAdditionalPermissionsAreRequired:(id)a0 previousExtensionState:(id)a1;
- (void)_showNewExtensionBannerIfNecessaryForExtensions:(id)a0;
- (BOOL)_supportsCodeSigningChecks;
- (void)_unloadPreviouslyEnabledExtension:(id)a0;
- (void)_updateExtensionNewTabPageIfNecessary;
- (void)_updateExtensionStateAfterExtensionWasAddedWithComposedIdentifier:(id)a0;
- (void)_updateExtensionStateAfterExtensionWasRemovedWithComposedIdentifier:(id)a0;
- (void)_updateExtensionStateIfPermissionsIncreased:(id)a0;
- (void)_updateExtensionStateIfThisVersionOfSafariIsNotSupported:(id)a0;
- (void)_updateExtensionStateWithPrivacyPreservingProfileIdentifierIfNeeded:(id)a0;
- (void)_updateExtensionsCrashReporterMessage;
- (id)_updatedExtensionStateForCurrentPermissions:(id)a0 previousExtensionState:(id)a1;
- (id)_urlForExtensionSettings;
- (void)_validateAndLoadExtensionIfNecessary:(id)a0 attemptRetryOnFailure:(BOOL)a1 isExtensionNewlyInstalled:(BOOL *)a2;
- (void)_validateContainingAppOfExtensionIfNecessary:(id)a0 attemptRetryOnFailure:(BOOL)a1;
- (id)_versionNumberForExtension:(id)a0;
- (void)_writeExtensionsStateToStorage;
- (void)closeLocalExtensionContentInPrivateTabsForExtension:(id)a0;
- (void)copyEnabledExtensionStateFromExtensionsController:(id)a0;
- (void)disableUnsignedExtensionsIfNecessary;
- (id)extensionDataForExtension:(id)a0;
- (id)extensionWithBaseURIHost:(id)a0;
- (id)extensionWithBundleIdentifier:(id)a0;
- (id)extensionWithUUID:(id)a0;
- (BOOL)hasAnyEnabledExtensionsInStorage;
- (id)lastSeenBaseURIForExtension:(id)a0 updatingWithCurrentBaseURI:(id)a1;
- (void)loadEnabledExtensions;
- (void)loadSuitableDiscoveredExtensions;
- (void)moveLocalStorageForExtension:(id)a0 completionHandler:(id /* block */)a1;
- (void)remotelyEnabledExtensionBannerWasShownForComposedIdentifier:(id)a0;
- (void)resetExtensionsStateAndReloadExtensions;
- (void)setExtension:(id)a0 isEnabled:(BOOL)a1 dueToUserGesture:(BOOL)a2 skipSavingToStorage:(BOOL)a3;
- (void)test_enableExtension:(id)a0 withResourceURL:(id)a1;
- (void)unloadExtensionIfNecessary:(id)a0;
- (BOOL)validateAndReadResourceWithExtensionURL:(id)a0 inExtension:(id)a1 codeRef:(struct __SecCode { } *)a2 outResourceData:(id *)a3;
- (BOOL)validateAndReadResourceWithExtensionURL:(id)a0 inExtension:(id)a1 outResourceData:(id *)a2;
- (BOOL)validateAndReadResourceWithExtensionURL:(id)a0 outResourceData:(id *)a1;
- (void)writeExtensionsStateToStorageWithCompletionHandler:(id /* block */)a0;

@end