@class WBSFaviconProviderPersistenceController, NSArray, NSString, NSURL, NSMutableDictionary, NSCalendar, NSObject, NSCache; @protocol OS_dispatch_queue, WBSSiteMetadataProviderDelegate; @interface WBSFaviconProvider : NSObject <WBSWebViewMetadataFetchOperationDelegate, WBSSiteMetadataProvider> { NSMutableDictionary *_hostsToRequestsMap; NSCache *_responseCache; NSObject<OS_dispatch_queue> *_internalQueue; NSObject<OS_dispatch_queue> *_internalSavingQueue; NSMutableDictionary *_urlsToFaviconRecordsSavedDuringMigration; WBSFaviconProviderPersistenceController *_persistenceController; NSCalendar *_calendar; double _expirationInterval; long long _providerState; unsigned long long _privateDataRetentionCount; struct CGSize { double width; double height; } _scaledPreferredIconSize; id /* block */ _shouldCheckIntegrityWhenOpeningDatabaseBlock; } @property (class, readonly, nonatomic) struct CGSize { double x0; double x1; } defaultFaviconSize; @property (readonly, nonatomic) NSURL *baseURL; @property (readonly, nonatomic) struct CGSize { double width; double height; } preferredIconSize; @property (readonly, nonatomic) double preferredIconScale; @property (readonly, copy, nonatomic) NSArray *allIconScales; @property (readonly, nonatomic) BOOL isReadOnly; @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)init; - (void)dealloc; - (id)persistenceController; - (BOOL)canHandleRequest:(id)a0; - (void).cxx_destruct; - (void)savePendingChangesBeforeTermination; - (void)_registerRequest:(id)a0; - (id)fallbackIconForRequest:(id)a0; - (id)initWithPersistenceBaseURL:(id)a0 persistenceName:(id)a1 preferredIconSize:(struct CGSize { double x0; double x1; })a2 atScale:(double)a3 allScales:(id)a4 isReadOnly:(BOOL)a5 shouldCheckIntegrityWhenOpeningDatabaseBlock:(id /* block */)a6; - (void)setUpWithCompletionHandler:(id /* block */)a0; - (void)stopWatchingUpdatesForRequest:(id)a0; - (void)_addCachedResponse:(id)a0 forRequest:(id)a1; - (void)_atomicallyLinkPageURLs:(id)a0 toIconWithInfo:(id)a1 isPrivate:(BOOL)a2; - (void)_atomicallySaveImageData:(id)a0 iconURL:(id)a1 pageURL:(id)a2 originalPageURL:(id)a3 size:(struct CGSize { double x0; double x1; })a4 isPrivate:(BOOL)a5 completionHandler:(id /* block */)a6; - (id /* block */)_blockOperationForRequest:(id)a0; - (id)_cachedResponseForRequest:(id)a0; - (void)_confirmImageDataShouldBeSaved:(id)a0 size:(struct CGSize { double x0; double x1; })a1 pageURL:(id)a2 iconURL:(id)a3 includingPrivateData:(BOOL)a4 completionHandler:(id /* block */)a5; - (void)_getIconForRequest:(id)a0 withCompletionHandler:(id /* block */)a1; - (id)_hostFromRequest:(id)a0; - (id)_hostFromURL:(id)a0; - (BOOL)_isIconDateExpired:(id)a0; - (void)_linkPageURL:(id)a0 toIconWithInfo:(id)a1 isPrivate:(BOOL)a2 completionHandler:(id /* block */)a3; - (void)_prepareAndSendResponseForRequests:(id)a0 forceDidReceiveNewData:(BOOL)a1; - (void)_removeCachedResponsesForRequest:(id)a0; - (void)_removeCachedResponsesForURL:(id)a0; - (id)_requestsForHost:(id)a0; - (id)_responseCacheKeyForRequest:(id)a0; - (id)_responseDictionaryKeyForRequest:(id)a0; - (void)_saveImageData:(id)a0 iconURL:(id)a1 pageURL:(id)a2 originalPageURL:(id)a3 size:(struct CGSize { double x0; double x1; })a4 isPrivate:(BOOL)a5 completionHandler:(id /* block */)a6; - (void)_updateOutstandingRequestsAfterSuccessfulSetup; - (void)_updateOutstandingRequestsForPageURL:(id)a0 forceDidReceiveNewData:(BOOL)a1; - (id)builtInIconForRequest:(id)a0; - (void)cleanUpAfterPersistenceSetUpDidSucceed:(BOOL)a0 completionHandler:(id /* block */)a1; - (void)emptyCaches; - (void)flushPrivateDataFromMemoryWithCompletionHandler:(id /* block */)a0; - (void)imageForRequestDuringPersistenceSetUp:(id)a0 completionHandler:(id /* block */)a1; - (id)initWithPersistenceBaseURL:(id)a0 persistenceName:(id)a1 preferredIconSize:(struct CGSize { double x0; double x1; })a2 atScale:(double)a3 allScales:(id)a4 shouldCheckIntegrityWhenOpeningDatabaseBlock:(id /* block */)a5; - (void)linkIconFromPageURL:(id)a0 toCurrentPageURL:(id)a1 isPrivate:(BOOL)a2 completionHandler:(id /* block */)a3; - (void)prepareResponseForRequest:(id)a0 allowDelayedResponse:(BOOL)a1; - (long long)providerState; - (void)releasePrivateData; - (void)removeAllIconsForURLStringsNotIn:(id)a0 completionHandler:(id /* block */)a1; - (void)removeIconForURLString:(id)a0 completionHandler:(id /* block */)a1; - (id)responseForRequest:(id)a0 willProvideUpdates:(BOOL *)a1; - (void)retainPrivateData; - (void)saveFaviconImageData:(id)a0 iconURL:(id)a1 pageURL:(id)a2 originalPageURL:(id)a3 size:(struct CGSize { double x0; double x1; })a4 isPrivate:(BOOL)a5 completionHandler:(id /* block */)a6; - (void)setUpPersistenceAtPath:(id)a0 completionHandler:(id /* block */)a1; - (void)shouldIconDataBeSavedForIconWithPageURL:(id)a0 originalPageURL:(id)a1 iconURL:(id)a2 size:(struct CGSize { double x0; double x1; })a3 isPrivate:(BOOL)a4 completionHandler:(id /* block */)a5; - (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