From 67207e67fbdf7f4aaed6e31fa58b1884625e4ae9 Mon Sep 17 00:00:00 2001 From: ggaren Date: Wed, 30 Aug 2006 18:48:52 +0000 Subject: [PATCH] Reviewed by ggaren. - Verification of exceptions thrown in a plugin. Test for bug 10114. * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: * DumpRenderTree/ObjCPlugin.m: (+[ObjCPlugin isSelectorExcludedFromWebScript:]): (+[ObjCPlugin webScriptNameForSelector:]): (-[ObjCPlugin throwIfArgumentIsNotHello:]): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16118 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- WebKitTools/ChangeLog | 11 +++++++++++ .../DumpRenderTree.xcodeproj/project.pbxproj | 2 +- WebKitTools/DumpRenderTree/ObjCPlugin.m | 15 ++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog index 1ae53444cc15..6d582e1470a1 100644 --- a/WebKitTools/ChangeLog +++ b/WebKitTools/ChangeLog @@ -1,3 +1,14 @@ +2006-08-29 waylonis + + Reviewed by ggaren. + + - Verification of exceptions thrown in a plugin. Test for bug 10114. + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/ObjCPlugin.m: + (+[ObjCPlugin isSelectorExcludedFromWebScript:]): + (+[ObjCPlugin webScriptNameForSelector:]): + (-[ObjCPlugin throwIfArgumentIsNotHello:]): + 2006-08-30 Nikolas Zimmermann Reviewed by Tim H. diff --git a/WebKitTools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj b/WebKitTools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj index 44a37356c5fd..cce13b69e99c 100644 --- a/WebKitTools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj +++ b/WebKitTools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj @@ -104,7 +104,7 @@ 22181BD009DC8C4B008342E8 /* ObjCPluginFunction.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ObjCPluginFunction.m; sourceTree = ""; }; 32A70AAB03705E1F00C91783 /* DumpRenderTreePrefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DumpRenderTreePrefix.h; sourceTree = ""; }; 9335435F03D75502008635CE /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WebKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9340995408540CAF007F3BC8 /* DumpRenderTree */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = DumpRenderTree; sourceTree = BUILT_PRODUCTS_DIR; }; + 9340995408540CAF007F3BC8 /* DumpRenderTree */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = DumpRenderTree; sourceTree = BUILT_PRODUCTS_DIR; }; 93442CF408F8BA4900BFE8CA /* TextInputController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextInputController.h; sourceTree = ""; }; 93442CF508F8BA4900BFE8CA /* TextInputController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextInputController.m; sourceTree = ""; }; A803FCB709CAAAB0009B2A37 /* EventSendingController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EventSendingController.h; sourceTree = ""; }; diff --git a/WebKitTools/DumpRenderTree/ObjCPlugin.m b/WebKitTools/DumpRenderTree/ObjCPlugin.m index a68aa7ef2485..0f66aaaeca14 100644 --- a/WebKitTools/DumpRenderTree/ObjCPlugin.m +++ b/WebKitTools/DumpRenderTree/ObjCPlugin.m @@ -26,6 +26,7 @@ #import "ObjCPlugin.h" #import +#import // === NSObject category to expose almost everything to JavaScript === @@ -139,6 +140,9 @@ static BOOL _allowsScriptsFullAccess = NO; if (aSelector == @selector(echo:)) return NO; + if (aSelector == @selector(throwIfArgumentIsNotHello:)) + return NO; + return YES; } @@ -146,7 +150,10 @@ static BOOL _allowsScriptsFullAccess = NO; { if (aSelector == @selector(echo:)) return @"echo"; - + + if (aSelector == @selector(throwIfArgumentIsNotHello:)) + return @"throwIfArgumentIsNotHello"; + return nil; } @@ -166,4 +173,10 @@ static BOOL _allowsScriptsFullAccess = NO; return obj; } +- (void)throwIfArgumentIsNotHello:(NSString *)str +{ + if (![str isEqualToString:@"Hello"]) + [WebScriptObject throwException:[NSString stringWithFormat:@"%@ != Hello", str]]; +} + @end -- 2.36.0