blob: 9893ad5b172e87a1739f9bc1986711ef612ee93a [file] [log] [blame] [edit]
//
// DefaultPolicyDelegate.m
// DumpRenderTree
//
// Created by Anders Carlsson on 7/9/13.
//
//
#import "config.h"
#import "DefaultPolicyDelegate.h"
#import "DumpRenderTree.h"
#import "TestRunner.h"
#import <WebKit/WebPolicyDelegatePrivate.h>
#import <WebKit/WebViewPrivate.h>
#import <wtf/EnumTraits.h>
@implementation DefaultPolicyDelegate
- (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id <WebPolicyDecisionListener>)listener
{
if ([WebView _canHandleRequest:request]) {
if (![frame frameElement])
gTestRunner->willNavigate();
[listener use];
return;
}
WebNavigationType navType = (WebNavigationType)[[actionInformation objectForKey:WebActionNavigationTypeKey] intValue];
if (enumToUnderlyingType(navType) == enumToUnderlyingType(WebNavigationTypePlugInRequest)) {
if (![frame frameElement])
gTestRunner->willNavigate();
[listener use];
return;
}
// The default WebKit policy delegate passes the URL along to -[NSWorkspace openURL:] here,
// but we don't want to do that so we just ignore the navigation completely.
[listener ignore];
}
@end