Script origins control inline policy, all scripts allowed for tab

This commit is contained in:
James Magahern
2020-07-29 17:46:53 -07:00
parent f330293606
commit 32cdcf71f7
14 changed files with 301 additions and 57 deletions

View File

@@ -19,8 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
@class SBRProcessBundleBridge;
@protocol SBRProcessBundleBridgeDelegate <NSObject>
- (void)webProcess:(SBRProcessBundleBridge *)bridge didAllowScriptResourceFromOrigin:(NSString *)origin;
- (void)webProcess:(SBRProcessBundleBridge *)bridge didBlockScriptResourceFromOrigin:(NSString *)origin;
@end
@interface SBRProcessBundleBridge : NSObject
@@ -28,7 +28,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) WKWebView *webView;
@property (nonatomic, weak) id<SBRProcessBundleBridgeDelegate> delegate;
@property (nonatomic, weak) id<SBRResourceOriginPolicyDataSource> policyDataSource;
@property (nonatomic, strong) id<SBRResourceOriginPolicyDataSource> policyDataSource;
@property (nonatomic, assign) BOOL allowAllScripts; // default is NO
- (void)policyDataSourceDidChange;

View File

@@ -37,6 +37,12 @@
// Set up process pool
WKProcessPool *processPool = [[WKProcessPool alloc] _initWithConfiguration:poolConfiguration];
// Initialize allowed origins now
NSArray<NSString *> *allowedOrigins = [[_policyDataSource allowedOriginsForScriptResources] allObjects];
[processPool _setObject:allowedOrigins forBundleParameter:SBRGetAllowedOriginsKey()];
[processPool _setObject:@(_allowAllScripts) forBundleParameter:SBRGetAllScriptsAllowedKey()];
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.processPool = processPool;
@@ -79,4 +85,9 @@
[_webProcessProxy syncAllowedResourceOrigins:allowedOrigins];
}
- (void)setAllowAllScripts:(BOOL)allowAllScripts
{
[_webProcessProxy setAllScriptsAllowed:allowAllScripts];
}
@end