summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm')
-rw-r--r--Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm21
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm b/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm
index 2d4a94400..8604de876 100644
--- a/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm
+++ b/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm
@@ -36,6 +36,7 @@
#import "WKURLCF.h"
#import "WKURLRequest.h"
#import "WKURLRequestNS.h"
+#import "WebContext.h"
#import <wtf/RetainPtr.h>
#import "WKBrowsingContextLoadDelegate.h"
@@ -103,6 +104,20 @@ static inline NSURL *autoreleased(WKURLRef url)
#pragma mark Loading
++ (void)registerSchemeForCustomProtocol:(NSString *)scheme
+{
+ NSString *lowercaseScheme = [scheme lowercaseString];
+ [[WKBrowsingContextController customSchemes] addObject:lowercaseScheme];
+ [[NSNotificationCenter defaultCenter] postNotificationName:WebKit::SchemeForCustomProtocolRegisteredNotificationName object:lowercaseScheme];
+}
+
++ (void)unregisterSchemeForCustomProtocol:(NSString *)scheme
+{
+ NSString *lowercaseScheme = [scheme lowercaseString];
+ [[WKBrowsingContextController customSchemes] removeObject:lowercaseScheme];
+ [[NSNotificationCenter defaultCenter] postNotificationName:WebKit::SchemeForCustomProtocolUnregisteredNotificationName object:lowercaseScheme];
+}
+
- (void)loadRequest:(NSURLRequest *)request
{
WKRetainPtr<WKURLRequestRef> wkRequest = adoptWK(WKURLRequestCreateWithNSURLRequest(request));
@@ -403,4 +418,10 @@ static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext,
return self;
}
++ (NSMutableSet *)customSchemes
+{
+ static NSMutableSet *customSchemes = [[NSMutableSet alloc] init];
+ return customSchemes;
+}
+
@end