Files
Attractor/App/Web Process Bundle Bridge/SBRProcessBundleBridge.h

53 lines
1.7 KiB
C
Raw Normal View History

//
// SBRProcessBundleBridge.h
// SBrowser
//
// Created by James Magahern on 7/22/20.
//
#import <Foundation/Foundation.h>
#import <WebKit/WebKit.h>
NS_ASSUME_NONNULL_BEGIN
@protocol SBRResourceOriginPolicyDataSource <NSObject>
/// Returns a list of origins (e.g., "buzzert.net") for which we are allowed to load script resources from
- (NSSet<NSString *> *)allowedOriginsForScriptResources;
2021-10-21 11:05:40 -07:00
/// Returns a mapping between origin and SBRScriptOriginPolicyType, encoded as an NSNumber.
- (NSDictionary<NSString *, NSNumber *> *)scriptPolicyTypeByOrigin;
@end
@class SBRProcessBundleBridge;
@protocol SBRProcessBundleBridgeDelegate <NSObject>
- (void)webProcess:(SBRProcessBundleBridge *)bridge didAllowScriptResourceFromOrigin:(NSString *)origin;
- (void)webProcess:(SBRProcessBundleBridge *)bridge didBlockScriptResourceFromOrigin:(NSString *)origin;
@end
2021-02-15 22:34:05 -08:00
NS_SWIFT_NAME(ProcessBundleBridge)
@interface SBRProcessBundleBridge : NSObject
@property (nonatomic, readonly) WKWebView *webView;
@property (nonatomic, weak) id<SBRProcessBundleBridgeDelegate> delegate;
@property (nonatomic, strong) id<SBRResourceOriginPolicyDataSource> policyDataSource;
@property (nonatomic, assign) BOOL allowAllScripts; // default is NO
2020-07-29 18:17:22 -07:00
@property (nonatomic, assign) BOOL darkModeEnabled;
@property (nonatomic, readonly) BOOL webContentProcessConnected;
2020-09-24 16:36:31 -07:00
- (instancetype)initWithWebViewConfiguration:(nullable WKWebViewConfiguration *)webViewConfiguration NS_DESIGNATED_INITIALIZER;
- (void)policyDataSourceDidChange;
- (void)tearDown;
2021-02-15 22:34:05 -08:00
- (void)parseDocumentForReaderMode:(void(^)(NSString *))completionBlock NS_SWIFT_NAME(parseDocumentForReaderMode(completion:));
2020-09-24 16:36:31 -07:00
- (instancetype)init NS_UNAVAILABLE;
@end
NS_ASSUME_NONNULL_END