- added DumpRenderTree support so editing delegate can be made to refuse edits
to enable tests for http://bugzilla.opendarwin.org/show_bug.cgi?id=10129
* DumpRenderTree/DumpRenderTree.m:
(+[LayoutTestController isSelectorExcludedFromWebScript:]): Add setAcceptsEditing:
to the list of methods.
(+[LayoutTestController webScriptNameForSelector:]): Use the name setAcceptsEditing,
without the colon, for the JavaScript name.
(-[LayoutTestController setAcceptsEditing:]): Added. Calls through to the editing
delegate.
(dumpRenderTree): Set the acceptsEditing flag to YES before each test.
* DumpRenderTree/EditingDelegate.h: Added an "acceptsEditing" flag and getter and
setter methods to the class.
* DumpRenderTree/EditingDelegate.m:
(-[EditingDelegate init]): Initialize acceptsEditing to YES.
(-[EditingDelegate webView:shouldBeginEditingInDOMRange:]): Instead of always returning YES,
return the value of acceptsEditing.
(-[EditingDelegate webView:shouldEndEditingInDOMRange:]): Ditto.
(-[EditingDelegate webView:shouldInsertNode:replacingDOMRange:givenAction:]): Ditto.
(-[EditingDelegate webView:shouldInsertText:replacingDOMRange:givenAction:]): Ditto.
(-[EditingDelegate webView:shouldDeleteDOMRange:]): Ditto.
(-[EditingDelegate webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
Ditto.
(-[EditingDelegate webView:shouldApplyStyle:toElementsInDOMRange:]): Ditto.
(-[EditingDelegate webView:shouldChangeTypingStyle:toStyle:]): Ditto.
(-[EditingDelegate setAcceptsEditing:]): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15904
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-08-15 Duncan Wilcox <duncan@mclink.it>
+
+ Reviewed and tweaked by Darin.
+
+ - added DumpRenderTree support so editing delegate can be made to refuse edits
+ to enable tests for http://bugzilla.opendarwin.org/show_bug.cgi?id=10129
+
+ * DumpRenderTree/DumpRenderTree.m:
+ (+[LayoutTestController isSelectorExcludedFromWebScript:]): Add setAcceptsEditing:
+ to the list of methods.
+ (+[LayoutTestController webScriptNameForSelector:]): Use the name setAcceptsEditing,
+ without the colon, for the JavaScript name.
+ (-[LayoutTestController setAcceptsEditing:]): Added. Calls through to the editing
+ delegate.
+ (dumpRenderTree): Set the acceptsEditing flag to YES before each test.
+
+ * DumpRenderTree/EditingDelegate.h: Added an "acceptsEditing" flag and getter and
+ setter methods to the class.
+ * DumpRenderTree/EditingDelegate.m:
+ (-[EditingDelegate init]): Initialize acceptsEditing to YES.
+ (-[EditingDelegate webView:shouldBeginEditingInDOMRange:]): Instead of always returning YES,
+ return the value of acceptsEditing.
+ (-[EditingDelegate webView:shouldEndEditingInDOMRange:]): Ditto.
+ (-[EditingDelegate webView:shouldInsertNode:replacingDOMRange:givenAction:]): Ditto.
+ (-[EditingDelegate webView:shouldInsertText:replacingDOMRange:givenAction:]): Ditto.
+ (-[EditingDelegate webView:shouldDeleteDOMRange:]): Ditto.
+ (-[EditingDelegate webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
+ Ditto.
+ (-[EditingDelegate webView:shouldApplyStyle:toElementsInDOMRange:]): Ditto.
+ (-[EditingDelegate webView:shouldChangeTypingStyle:toStyle:]): Ditto.
+ (-[EditingDelegate setAcceptsEditing:]): Added.
+
2006-08-03 Mark Rowe <opendarwin.org@bdash.net.nz>
Reviewed by Darin.
}
} else {
printSeparators = (optind < argc-1 || (dumpPixels && dumpTree));
- for (int i = optind; i != argc; ++i) {
+ for (int i = optind; i != argc; ++i)
dumpRenderTree(argv[i]);
- }
}
[webView setFrameLoadDelegate:nil];
|| aSelector == @selector(testRepaint)
|| aSelector == @selector(repaintSweepHorizontally)
|| aSelector == @selector(clearBackForwardList)
- || aSelector == @selector(keepWebHistory))
+ || aSelector == @selector(keepWebHistory)
+ || aSelector == @selector(setAcceptsEditing:))
return NO;
return YES;
}
return @"setWindowIsKey";
if (aSelector == @selector(setMainFrameIsFirstResponder:))
return @"setMainFrameIsFirstResponder";
+ if (aSelector == @selector(setAcceptsEditing:))
+ return @"setAcceptsEditing";
return nil;
}
return nil;
}
+- (void)setAcceptsEditing:(BOOL)newAcceptsEditing
+{
+ [(EditingDelegate *)[[frame webView] editingDelegate] setAcceptsEditing:newAcceptsEditing];
+}
+
@end
static void dumpRenderTree(const char *pathOrURL)
return;
}
+ [(EditingDelegate *)[[frame webView] editingDelegate] setAcceptsEditing:YES];
done = NO;
readyToDump = NO;
waitToDump = NO;
#import <Cocoa/Cocoa.h>
@interface EditingDelegate : NSObject
+{
+ BOOL acceptsEditing;
+}
+
+- (void)setAcceptsEditing:(BOOL)newAcceptsEditing;
+
@end
@implementation EditingDelegate
+- (id)init
+{
+ self = [super init];
+ if (!self)
+ return nil;
+ acceptsEditing = YES;
+ return self;
+}
+
- (BOOL)webView:(WebView *)webView shouldBeginEditingInDOMRange:(DOMRange *)range
{
printf("EDITING DELEGATE: shouldBeginEditingInDOMRange:%s\n", [[range dump] UTF8String]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldEndEditingInDOMRange:(DOMRange *)range
{
printf("EDITING DELEGATE: shouldEndEditingInDOMRange:%s\n", [[range dump] UTF8String]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldInsertNode:(DOMNode *)node replacingDOMRange:(DOMRange *)range givenAction:(WebViewInsertAction)action
};
printf("EDITING DELEGATE: shouldInsertNode:%s replacingDOMRange:%s givenAction:%s\n", [[node dumpPath] UTF8String], [[range dump] UTF8String], insertactionstring[action]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldInsertText:(NSString *)text replacingDOMRange:(DOMRange *)range givenAction:(WebViewInsertAction)action
};
printf("EDITING DELEGATE: shouldInsertText:%s replacingDOMRange:%s givenAction:%s\n", [[text description] UTF8String], [[range dump] UTF8String], insertactionstring[action]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldDeleteDOMRange:(DOMRange *)range
{
printf("EDITING DELEGATE: shouldDeleteDOMRange:%s\n", [[range dump] UTF8String]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag
};
printf("EDITING DELEGATE: shouldChangeSelectedDOMRange:%s toDOMRange:%s affinity:%s stillSelecting:%s\n", [[currentRange dump] UTF8String], [[proposedRange dump] UTF8String], affinitystring[selectionAffinity], boolstring[flag]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldApplyStyle:(DOMCSSStyleDeclaration *)style toElementsInDOMRange:(DOMRange *)range
{
printf("EDITING DELEGATE: shouldApplyStyle:%s toElementsInDOMRange:%s\n", [[style description] UTF8String], [[range dump] UTF8String]);
- return YES;
+ return acceptsEditing;
}
- (BOOL)webView:(WebView *)webView shouldChangeTypingStyle:(DOMCSSStyleDeclaration *)currentStyle toStyle:(DOMCSSStyleDeclaration *)proposedStyle
{
printf("EDITING DELEGATE: shouldChangeTypingStyle:%s toStyle:%s\n", [[currentStyle description] UTF8String], [[proposedStyle description] UTF8String]);
- return YES;
+ return acceptsEditing;
}
- (void)webViewDidBeginEditing:(NSNotification *)notification
printf("EDITING DELEGATE: webViewDidChangeSelection:%s\n", [[notification name] UTF8String]);
}
+- (void)setAcceptsEditing:(BOOL)newAcceptsEditing
+{
+ acceptsEditing = newAcceptsEditing;
+}
+
@end