Script origins control inline policy, all scripts allowed for tab
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user