42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
//
|
|
// 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>
|
|
|
|
@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 (static_cast<unsigned>(navType) == static_cast<unsigned>(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
|