From 0a325fcf92a54e243130ee9b569584366587ae08 Mon Sep 17 00:00:00 2001 From: darin Date: Wed, 16 Aug 2006 03:53:29 +0000 Subject: [PATCH] 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. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15904 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- WebKitTools/ChangeLog | 32 ++++++++++++++++++++ WebKitTools/DumpRenderTree/DumpRenderTree.m | 14 +++++++-- WebKitTools/DumpRenderTree/EditingDelegate.h | 6 ++++ WebKitTools/DumpRenderTree/EditingDelegate.m | 30 +++++++++++++----- 4 files changed, 71 insertions(+), 11 deletions(-) diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog index 65d05eb375df..7cd8ab1adcfd 100644 --- a/WebKitTools/ChangeLog +++ b/WebKitTools/ChangeLog @@ -1,3 +1,35 @@ +2006-08-15 Duncan Wilcox + + 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 Reviewed by Darin. diff --git a/WebKitTools/DumpRenderTree/DumpRenderTree.m b/WebKitTools/DumpRenderTree/DumpRenderTree.m index 40528586bf98..114aa33ab3b5 100644 --- a/WebKitTools/DumpRenderTree/DumpRenderTree.m +++ b/WebKitTools/DumpRenderTree/DumpRenderTree.m @@ -328,9 +328,8 @@ int main(int argc, const char *argv[]) } } 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]; @@ -607,7 +606,8 @@ static void dump(void) || aSelector == @selector(testRepaint) || aSelector == @selector(repaintSweepHorizontally) || aSelector == @selector(clearBackForwardList) - || aSelector == @selector(keepWebHistory)) + || aSelector == @selector(keepWebHistory) + || aSelector == @selector(setAcceptsEditing:)) return NO; return YES; } @@ -618,6 +618,8 @@ static void dump(void) return @"setWindowIsKey"; if (aSelector == @selector(setMainFrameIsFirstResponder:)) return @"setMainFrameIsFirstResponder"; + if (aSelector == @selector(setAcceptsEditing:)) + return @"setAcceptsEditing"; return nil; } @@ -717,6 +719,11 @@ static void dump(void) return nil; } +- (void)setAcceptsEditing:(BOOL)newAcceptsEditing +{ + [(EditingDelegate *)[[frame webView] editingDelegate] setAcceptsEditing:newAcceptsEditing]; +} + @end static void dumpRenderTree(const char *pathOrURL) @@ -739,6 +746,7 @@ static void dumpRenderTree(const char *pathOrURL) return; } + [(EditingDelegate *)[[frame webView] editingDelegate] setAcceptsEditing:YES]; done = NO; readyToDump = NO; waitToDump = NO; diff --git a/WebKitTools/DumpRenderTree/EditingDelegate.h b/WebKitTools/DumpRenderTree/EditingDelegate.h index 709c7f5166cc..b5563c887b81 100644 --- a/WebKitTools/DumpRenderTree/EditingDelegate.h +++ b/WebKitTools/DumpRenderTree/EditingDelegate.h @@ -29,4 +29,10 @@ #import @interface EditingDelegate : NSObject +{ + BOOL acceptsEditing; +} + +- (void)setAcceptsEditing:(BOOL)newAcceptsEditing; + @end diff --git a/WebKitTools/DumpRenderTree/EditingDelegate.m b/WebKitTools/DumpRenderTree/EditingDelegate.m index 3a20fec954aa..e69ffe85e89e 100644 --- a/WebKitTools/DumpRenderTree/EditingDelegate.m +++ b/WebKitTools/DumpRenderTree/EditingDelegate.m @@ -61,16 +61,25 @@ @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 @@ -82,7 +91,7 @@ }; 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 @@ -94,13 +103,13 @@ }; 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 @@ -115,19 +124,19 @@ }; 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 @@ -156,4 +165,9 @@ printf("EDITING DELEGATE: webViewDidChangeSelection:%s\n", [[notification name] UTF8String]); } +- (void)setAcceptsEditing:(BOOL)newAcceptsEditing +{ + acceptsEditing = newAcceptsEditing; +} + @end -- 2.36.0