@class NSMutableDictionary, WKUserContentController, NSDictionary, WBProfile, NSMutableArray, NSString, NSSet, WKWebsiteDataStore, NSTimer, NSMutableSet, NSPointerArray, NSArray, WBSExtensionsAnalyticsEventCoalescer; @protocol WBSExtensionsControllerDelegate; @interface WBSExtensionsController : NSObject { 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 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