@class UIImage, NSURL, NSMutableDictionary, NSDictionary, NSObject, NSMutableArray, WBSSiteMetadataImageCache, WBSTemplateIconMonogramConfiguration, UIColor, NSString, NSMutableSet, WBSTouchIconCacheSettingsSQLiteStore, NSCache; @protocol OS_dispatch_queue, WBSSiteMetadataProviderDelegate; @interface WBSTouchIconCache : NSObject <WBSSiteMetadataImageCacheDelegate, WBSWebViewMetadataFetchOperationDelegate, WBSSiteMetadataProvider> { NSObject<OS_dispatch_queue> *_internalQueue; struct atomic<bool> { struct __cxx_atomic_impl<bool, std::__cxx_atomic_base_impl<bool>> { _Atomic BOOL __a_value; } __a_; } _didLoadSettings; WBSSiteMetadataImageCache *_imageCache; NSMutableDictionary *_hostsToRequestSets; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _touchIconsDataForHostsAccessLock; NSMutableDictionary *_touchIconsDataForHosts; NSCache *_requestsToResponses; NSMutableDictionary *_requestsToDelayedResponses; NSMutableArray *_pendingSaveTouchIconToDiskBlocks; NSMutableSet *_pendingTouchIconRequestHosts; WBSTouchIconCacheSettingsSQLiteStore *_cacheSettingsStore; } @property (class, readonly, nonatomic) UIColor *defaultBackgroundColor; @property (class, readonly, nonatomic) UIColor *defaultGlyphColor; @property (class, readonly, nonatomic) UIImage *_generateDefaultFavoritesIcon; @property (class, readonly, nonatomic) WBSTemplateIconMonogramConfiguration *_monogramConfiguration; @property (readonly, nonatomic) NSURL *imageDirectoryURL; @property (readonly, nonatomic) NSURL *cacheDirectoryURL; @property (readonly, nonatomic, getter=isReadOnly) BOOL readOnly; @property (readonly, nonatomic) long long protectionType; @property (readonly, nonatomic) long long fileMappingStyle; @property (readonly, nonatomic) BOOL allowFetchingOverCellularNetwork; @property (readonly, copy, nonatomic) NSDictionary *uuidStringToHost; @property (readonly, nonatomic) BOOL canFetchOutsideOfUserLoadedWebpage; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (weak) id<WBSSiteMetadataProviderDelegate> providerDelegate; @property (readonly, nonatomic) BOOL providesFavicons; + (id)_generateFavoritesIconForRequest:(id)a0 withBackgroundColor:(id)a1; + (id)generateFavoritesIconForTitle:(id)a0 url:(id)a1 backgroundColor:(id)a2; + (id)generateFavoritesIconForTitle:(id)a0 url:(id)a1 backgroundColor:(id)a2 shouldRemoveGrammaticalArticles:(BOOL)a3; + (id)generateFavoritesIconForTitle:(id)a0 url:(id)a1 backgroundColor:(id)a2 shouldRemoveGrammaticalArticles:(BOOL)a3 fontWeight:(long long)a4 fontDesign:(long long)a5 fontSize:(double)a6; - (id)init; - (void)dealloc; - (id).cxx_construct; - (BOOL)canHandleRequest:(id)a0; - (void).cxx_destruct; - (void)savePendingChangesBeforeTermination; - (void)_didLoadTouchIcon:(id)a0 withCacheSettingsEntry:(id)a1; - (id)_operationWithRequest:(id)a0 completionHandler:(id /* block */)a1; - (id)initWithCacheDirectoryURL:(id)a0 isReadOnly:(BOOL)a1; - (id)initWithCacheDirectoryURL:(id)a0 isReadOnly:(BOOL)a1 protectionType:(long long)a2 allowFetchingOverCellularNetwork:(BOOL)a3 fileMappingStyle:(long long)a4 canFetchOutsideOfUserLoadedWebpage:(BOOL)a5; - (void)saveTouchIconSettings:(id)a0 touchIcon:(id)a1; - (void)stopWatchingUpdatesForRequest:(id)a0; - (id)_touchIconForURL:(id)a0 getImageState:(long long *)a1; - (id /* block */)_blockOperationForRequest:(id)a0 knownImageState:(long long)a1; - (BOOL)_canFetchTouchIconForURL:(id)a0 inUserLoadedWebpage:(BOOL)a1; - (id)_didGenerateResponse:(id)a0 forRequest:(id)a1; - (void)_ensureCacheDirectory; - (void)_enumerateRequestsForHost:(id)a0 usingBlock:(id /* block */)a1; - (id)_imageCacheSettingsDatabaseURL; - (double)_maximumScreenScale; - (void)_notifyImageWasLoaded:(id)a0 forHost:(id)a1; - (void)_openCacheSettingsDatabaseIfNeeded; - (void)_removeTouchIconsDataForHost:(id)a0; - (void)_removeTouchIconsDataForHost:(id)a0 ifIconIsInCache:(BOOL)a1; - (id)_resizedImage:(id)a0 forHost:(id)a1; - (id)_responseForRequest:(id)a0 withTouchIcon:(id)a1; - (id)_responseForTouchIconRequestWithNoHost:(id)a0; - (void)_saveTouchIconToDisk:(id)a0 forHost:(id)a1 requestDidSucceed:(BOOL)a2 statusCode:(long long)a3 isUserLoadedWebpageRequest:(BOOL)a4 higherPriorityIconDownloadFailedDueToNetworkError:(BOOL)a5; - (void)_saveTouchIconToDiskWithResult:(id)a0 forRequest:(id)a1 knownImageState:(long long)a2; - (void)_setUpAndReturnDelayedResponseForRequest:(id)a0; - (void)_setUpAndReturnPreparedResponseForRequest:(id)a0 withImage:(id)a1 imageState:(long long)a2 didReceiveNewData:(BOOL)a3; - (void)_setUpImageCacheSettingsSQLiteStore; - (BOOL)_shouldGenerateTouchIconFromTouchIcon:(id)a0 forRequest:(id)a1; - (BOOL)_shouldRequestTouchIconForURL:(id)a0 inUserLoadedWebpage:(BOOL)a1 initiatedFromBookmarkInteraction:(BOOL)a2; - (BOOL)_shouldRequestTouchIconForURL:(id)a0 inUserLoadedWebpage:(BOOL)a1 initiatedFromBookmarkInteraction:(BOOL)a2 knownImageState:(long long)a3; - (BOOL)_shouldRequestTouchIconForURL:(id)a0 inUserLoadedWebpage:(BOOL)a1 initiatedFromBookmarkInteraction:(BOOL)a2 shouldCheckImageState:(BOOL *)a3; - (BOOL)_shouldRequestTouchIconWithTimeoutForURL:(id)a0 inUserLoadedWebpage:(BOOL)a1 initiatedFromBookmarkInteraction:(BOOL)a2; - (long long)_transparencyAnalysisResultForImage:(id)a0; - (void)_updateTouchIconsDataForHost:(id)a0 image:(id)a1 requestDidSucceed:(BOOL)a2 statusCode:(long long)a3 isUserLoadedWebpageRequest:(BOOL)a4 higherPriorityIconDownloadFailedDueToNetworkError:(BOOL)a5 UUIDString:(id)a6; - (void)_willSaveTouchIcon:(id)a0 withCacheSettingsEntry:(id)a1; - (void)cacheFirstAvailableTouchIcon:(id)a0 forURL:(id)a1; - (void)emptyCaches; - (BOOL)hasDeterminedIconAvailabilityForURL:(id)a0; - (id)initWithCacheDirectoryURL:(id)a0; - (void)prepareResponseForRequest:(id)a0 allowDelayedResponse:(BOOL)a1; - (void)purgeUnneededCacheEntries; - (void)releaseTouchIconForHost:(id)a0; - (void)releaseTouchIconForURLString:(id)a0; - (void)releaseTouchIconsForHosts:(id)a0; - (void)removeTouchIconMetadataForHosts:(id)a0 completionHandler:(id /* block */)a1; - (id)responseForRequest:(id)a0 willProvideUpdates:(BOOL *)a1; - (void)retainTouchIconForHost:(id)a0; - (void)retainTouchIconForURLString:(id)a0; - (void)retainTouchIconsForHosts:(id)a0; - (BOOL)shouldRequestTouchIconForURL:(id)a0 inUserLoadedWebpage:(BOOL)a1; - (BOOL)shouldRequestTouchIconForWebPageNavigationFromBookmarkInteractionForURL:(id)a0; - (id)siteMetadataImageCache:(id)a0 customFileNameForKeyString:(id)a1; - (void)siteMetadataImageCache:(id)a0 didFinishLoadingImage:(id)a1 forKeyString:(id)a2; - (void)siteMetadataImageCache:(id)a0 didRemoveImageFromCacheForKeyString:(id)a1; - (void)siteMetadataImageCacheDidEmptyCache:(id)a0; - (void)siteMetadataImageCacheDidFinishLoadingSettings:(id)a0; - (void)webViewMetadataFetchOperation:(id)a0 didFinishUsingWebView:(id)a1; - (void)webViewMetadataFetchOperation:(id)a0 getWebViewOfSize:(struct CGSize { double x0; double x1; })a1 withConfiguration:(id)a2 completionHandler:(id /* block */)a3; @end