NEFilterSourceSPI.h [plain text]
#define HAVE_MODERN_NE_FILTER_SOURCE (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) || PLATFORM(IOS)
#if USE(APPLE_INTERNAL_SDK)
#import <NetworkExtension/NEFilterSource.h>
#else
typedef NS_ENUM(NSInteger, NEFilterSourceStatus) {
NEFilterSourceStatusPass = 1,
NEFilterSourceStatusBlock = 2,
NEFilterSourceStatusNeedsMoreData = 3,
NEFilterSourceStatusError = 4,
NEFilterSourceStatusWhitelisted = 5,
NEFilterSourceStatusBlacklisted = 6,
};
typedef NS_ENUM(NSInteger, NEFilterSourceDirection) {
NEFilterSourceDirectionOutbound = 1,
NEFilterSourceDirectionInbound = 2,
};
@interface NEFilterSource : NSObject
@end
@interface NEFilterSource (WKLegacyDetails)
+ (BOOL)filterRequired;
- (id)initWithURL:(NSURL *)url direction:(NEFilterSourceDirection)direction socketIdentifier:(uint64_t)socketIdentifier;
- (void)addData:(NSData *)data withCompletionQueue:(dispatch_queue_t)queue completionHandler:(void (^)(NEFilterSourceStatus, NSData *))completionHandler;
- (void)dataCompleteWithCompletionQueue:(dispatch_queue_t)queue completionHandler:(void (^)(NEFilterSourceStatus, NSData *))completionHandler;
@property (readonly) NEFilterSourceStatus status;
@property (readonly) NSURL *url;
@property (readonly) NEFilterSourceDirection direction;
@property (readonly) uint64_t socketIdentifier;
@end
#if HAVE(MODERN_NE_FILTER_SOURCE)
#define NEFilterSourceOptionsPageData @"PageData"
typedef void (^NEFilterSourceDecisionHandler)(NEFilterSourceStatus, NSDictionary *);
@interface NEFilterSource (WKModernDetails)
- (id)initWithDecisionQueue:(dispatch_queue_t)queue;
- (void)willSendRequest:(NSURLRequest *)request decisionHandler:(NEFilterSourceDecisionHandler)decisionHandler;
- (void)receivedResponse:(NSURLResponse *)response decisionHandler:(NEFilterSourceDecisionHandler)decisionHandler;
- (void)receivedData:(NSData *)data decisionHandler:(NEFilterSourceDecisionHandler)decisionHandler;
- (void)finishedLoadingWithDecisionHandler:(NEFilterSourceDecisionHandler)decisionHandler;
- (void)remediateWithDecisionHandler:(NEFilterSourceDecisionHandler)decisionHandler;
@end
#endif
#endif // !USE(APPLE_INTERNAL_SDK)
#ifndef NEFilterSourceOptionsRedirectURL
#define NEFilterSourceOptionsRedirectURL @"RedirectURL"
#endif