diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2008-10-21 07:00:00 -0700 |
commit | 9364f22aed35e1a1e9d07c121510f80be3ab0502 (patch) | |
tree | d49911209b132da58d838efa852daf28d516df21 /WebCore/manual-tests | |
parent | 87eb0cb35bad8784770ebc807e6c982432e47107 (diff) | |
download | external_webkit-9364f22aed35e1a1e9d07c121510f80be3ab0502.zip external_webkit-9364f22aed35e1a1e9d07c121510f80be3ab0502.tar.gz external_webkit-9364f22aed35e1a1e9d07c121510f80be3ab0502.tar.bz2 |
Initial Contribution
Diffstat (limited to 'WebCore/manual-tests')
240 files changed, 11093 insertions, 0 deletions
diff --git a/WebCore/manual-tests/ATSU-bad-layout.html b/WebCore/manual-tests/ATSU-bad-layout.html new file mode 100644 index 0000000..ab725cb --- /dev/null +++ b/WebCore/manual-tests/ATSU-bad-layout.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9808">Bugzilla bug 9808</a> REGRESSION: Incorrect layout (and ERROR) when forcing ATSU For All Text</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Choose <i>Use ATSU For All Text</i> from Safari’s <i>Debug</i> menu and reload this page. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The text “Lorem ipsum” below will remain on one line. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +There will be a line break after “Lorem” (and at many other places on this page). +</p> + +<span>Lorem</span> ipsum + +</body> +</html> diff --git a/WebCore/manual-tests/DOMContextMenuEvent.html b/WebCore/manual-tests/DOMContextMenuEvent.html new file mode 100644 index 0000000..5c0fc33 --- /dev/null +++ b/WebCore/manual-tests/DOMContextMenuEvent.html @@ -0,0 +1,56 @@ +<html>
+<script type="text/javascript">
+
+function context_event(event)
+{
+ if (window.event)
+ {
+ event = window.event;
+ }
+ var swallow = document.getElementById("swallow_context").checked;
+
+ var str =
+ "EVENT PROPERTIES<br>" +
+ "cancelable = "+event.cancelable+"<br>" +
+ "ctrlKey = "+event.ctrlKey+"<br>" +
+ "metaKey = "+event.metaKey+"<br>" +
+ "shiftKey = "+event.shiftKey+"<br>" +
+ "<br>" +
+ "TEST PROPERTIES<br>" +
+ "prevent default = "+swallow+"<br>" +
+ "event time = "+new Date()+"<br>" +
+ "";
+ document.getElementById("event_info").innerHTML=str;
+
+ if (swallow)
+ {
+ if ((typeof event.cancelBubble) != "undefined")
+ event.cancelBubble=true;
+
+ if ((typeof event.preventDefault) != "undefined")
+ event.preventDefault();
+
+ if ((typeof event.returnValue) != "undefined")
+ event.returnValue = false;
+
+ if ((typeof event.stopPropagation) != "undefined")
+ event.stopPropagation();
+
+ return false;
+ }
+
+ return true;
+}
+
+</script>
+
+<body oncontextmenu="return context_event(event)">
+<div>To activate context menu, right-click or ctrl-click anywhere on the page.</div>
+<div> </div>
+<div><input type="checkbox" value="1" name="swallow_context" id="swallow_context"> Prevent default context menu</div>
+<div> </div>
+<tt id="event_info" style='background-color:#eeeeee'>
+ -- No event captured --
+</tt>
+</body>
+</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/Default-port-frame.html b/WebCore/manual-tests/Default-port-frame.html new file mode 100644 index 0000000..660947d --- /dev/null +++ b/WebCore/manual-tests/Default-port-frame.html @@ -0,0 +1,12 @@ +To run this test you will need to put this file and Default-port-frame-contents.html +on a webserver and then point your browser to http://localhost/Default-port-frame.html. +We cannot make this a LayoutTest because we don't want to mess with people's default ports. +<br> +<iframe src="http://localhost:80/resources/Default-port-frame-contents.html"> </iframe> +<script> + function test() { + var result = typeof frames[0].testData != 'undefined'; + alert(result ? 'Success' : 'Failed'); + } +</script> +<input type="button" onclick="test()" value="Click Me To Test" ></input>
\ No newline at end of file diff --git a/WebCore/manual-tests/JavaScript-bookmarklets.html b/WebCore/manual-tests/JavaScript-bookmarklets.html new file mode 100644 index 0000000..0b71f6f --- /dev/null +++ b/WebCore/manual-tests/JavaScript-bookmarklets.html @@ -0,0 +1,55 @@ +<script> +var arr = new Array("var%20x=' ';", // Space %20 + "var%20x='#';", // # %23 + "var%20x='$';", // $ %24 + "var%20x='%';", // % %25 + "var%20x='&';", // & %26 + "var%20x='/';", // / %2F + "var%20x=':';", // : %3A + "var%20x=';';", // ; %3B + "var%20x='<';", // < %3C + "var%20x='=';", // = %3D + "var%20x='>';", // > %3E + "var%20x='?';", // ? %3F + "var%20x='@';", // @ %40 + "var%20x='[';", // [ %5B + "var%20x='\\';", // \ %5C + "var%20x=']';", // ] %5D + "var%20x='^';", // ^ %5E + "var%20x='`';", // ' %60 + "var%20x='{';", // { %7B + "var%20x='|';", // | %7C + "var%20x='}';", // } %7D + "var%20x='~';"); // ~ %7E + + +function makeLinks() +{ + var str = "javascript:"; + var anchor, anchorText; + for (key in arr) + { + anchor = document.createElement("a"); + anchor.setAttribute("href", str+arr[key]); + anchorText = document.createTextNode(arr[key]); + anchor.appendChild(anchorText); + document.body.appendChild(anchor); + document.body.appendChild(document.createElement("br")); + } +} + +</script> +<body onload="makeLinks();"> +This test is for <a href="rdar://problem/5310312">rdar://problem/5310312</a> and can be run manually only.<br> +<a href="rdar://problem/5379908">rdar://problem/5379908</a> tracks the effort to enhance DRT to make this into a layout test.<br> +<br> +<b>Directions:</b> +<ol> +<li> drag each link below to the bookmarks bar to create bookmarks +<li> open the JavaScript console (in the debug menu) +<li> click on all the bookmarks you've just created +</ol> +<b>Expected results:</b> +no parse errors in the JavaScript console<br> +<br> +</body>
\ No newline at end of file diff --git a/WebCore/manual-tests/NPN_Invoke/English.lproj/Localized.r b/WebCore/manual-tests/NPN_Invoke/English.lproj/Localized.r new file mode 100644 index 0000000..f5c8373 --- /dev/null +++ b/WebCore/manual-tests/NPN_Invoke/English.lproj/Localized.r @@ -0,0 +1,17 @@ +#include <CoreServices/CoreServices.r> + +// Plugin info +resource 'STR#' (126) { { + "Tests NPN_Invoke()", + "NPN_Invoke Test Plug-In" +} }; + +// MIME Type descriptions +resource 'STR#' (127) { { + "NPN_Invoke test" +} }; + +// MIME Types +resource 'STR#' (128) { { + "test/npn-invoke" +} }; diff --git a/WebCore/manual-tests/NPN_Invoke/Info.plist b/WebCore/manual-tests/NPN_Invoke/Info.plist new file mode 100644 index 0000000..f7684e3 --- /dev/null +++ b/WebCore/manual-tests/NPN_Invoke/Info.plist @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>NPN_Invoke</string> + <key>CFBundleGetInfoString</key> + <string>420+, Copyright 2006 Apple Computer, Inc.</string> + <key>CFBundleIconFile</key> + <string></string> + <key>CFBundleIdentifier</key> + <string>com.apple.test.plugins.npn-invoke</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>BRPL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>CFPlugInDynamicRegisterFunction</key> + <string></string> + <key>CFPlugInDynamicRegistration</key> + <string>NO</string> +</dict> +</plist> diff --git a/WebCore/manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj b/WebCore/manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj new file mode 100644 index 0000000..be7bda7 --- /dev/null +++ b/WebCore/manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj @@ -0,0 +1,282 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 2220AF6109A447200030077C /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2220AF6009A447200030077C /* WebKit.framework */; }; + 2220B04709A459ED0030077C /* Localized.r in Rez */ = {isa = PBXBuildFile; fileRef = 2220B04609A459ED0030077C /* Localized.r */; }; + 84226A8E06823C4700780194 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84226A8D06823C4700780194 /* Carbon.framework */; }; + 8454AD210680F60300DFAEA4 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 8454AD200680F60300DFAEA4 /* main.c */; }; + 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXBuildStyle section */ + 014CEA3F0018CDD111CA2923 /* Development */ = { + isa = PBXBuildStyle; + buildSettings = { + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + ZERO_LINK = YES; + }; + name = Development; + }; + 014CEA400018CDD111CA2923 /* Deployment */ = { + isa = PBXBuildStyle; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + ZERO_LINK = NO; + }; + name = Deployment; + }; +/* End PBXBuildStyle section */ + +/* Begin PBXFileReference section */ + 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; + 2220AF6009A447200030077C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; }; + 2220B03809A459B20030077C /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; name = English; path = English.lproj/Localized.r; sourceTree = "<group>"; }; + 84226A8D06823C4700780194 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; + 8454AD200680F60300DFAEA4 /* main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; }; + 8D576316048677EA00EA77CD /* NPN_Invoke.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NPN_Invoke.plugin; sourceTree = BUILT_PRODUCTS_DIR; }; + 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D576313048677EA00EA77CD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 84226A8E06823C4700780194 /* Carbon.framework in Frameworks */, + 8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */, + 2220AF6109A447200030077C /* WebKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 089C166AFE841209C02AAC07 /* NetscapeMoviePlugIn */ = { + isa = PBXGroup; + children = ( + 08FB77AFFE84173DC02AAC07 /* Source */, + 089C167CFE841241C02AAC07 /* Resources */, + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, + 19C28FB6FE9D52B211CA2CBB /* Products */, + ); + name = NetscapeMoviePlugIn; + sourceTree = "<group>"; + }; + 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 2220AF6009A447200030077C /* WebKit.framework */, + 84226A8D06823C4700780194 /* Carbon.framework */, + 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = "<group>"; + }; + 089C167CFE841241C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 2220B04609A459ED0030077C /* Localized.r */, + 8D576317048677EA00EA77CD /* Info.plist */, + ); + name = Resources; + sourceTree = "<group>"; + }; + 08FB77AFFE84173DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 8454AD200680F60300DFAEA4 /* main.c */, + ); + name = Source; + sourceTree = "<group>"; + }; + 19C28FB6FE9D52B211CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D576316048677EA00EA77CD /* NPN_Invoke.plugin */, + ); + name = Products; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D57630D048677EA00EA77CD /* NPN_Invoke */ = { + isa = PBXNativeTarget; + buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NPN_Invoke" */; + buildPhases = ( + 8D576311048677EA00EA77CD /* Sources */, + 8333A742068B76EA00241F49 /* Rez */, + 8D57630F048677EA00EA77CD /* Resources */, + 8D576313048677EA00EA77CD /* Frameworks */, + ); + buildRules = ( + ); + buildSettings = { + GCC_DEBUGGING_SYMBOLS = full; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Library/Bundles"; + PRODUCT_NAME = NetscapeMoviePlugIn; + WRAPPER_EXTENSION = plugin; + }; + dependencies = ( + ); + name = NPN_Invoke; + productInstallPath = "$(HOME)/Library/Bundles"; + productName = NetscapeMoviePlugIn; + productReference = 8D576316048677EA00EA77CD /* NPN_Invoke.plugin */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 089C1669FE841209C02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NPN_Invoke" */; + buildSettings = { + }; + buildStyles = ( + 014CEA3F0018CDD111CA2923 /* Development */, + 014CEA400018CDD111CA2923 /* Deployment */, + ); + hasScannedForEncodings = 1; + mainGroup = 089C166AFE841209C02AAC07 /* NetscapeMoviePlugIn */; + projectDirPath = ""; + targets = ( + 8D57630D048677EA00EA77CD /* NPN_Invoke */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D57630F048677EA00EA77CD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 8333A742068B76EA00241F49 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + 2220B04709A459ED0030077C /* Localized.r in Rez */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D576311048677EA00EA77CD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8454AD210680F60300DFAEA4 /* main.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 2220B04609A459ED0030077C /* Localized.r */ = { + isa = PBXVariantGroup; + children = ( + 2220B03809A459B20030077C /* English */, + ); + name = Localized.r; + sourceTree = "<group>"; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 149C298408902C53008A9EFC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + FRAMEWORK_SEARCH_PATHS = "$(FRAMEWORK_SEARCH_PATHS)"; + GCC_DEBUGGING_SYMBOLS = full; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "/Library/Internet Plug-Ins"; + PRODUCT_NAME = NPN_Invoke; + WRAPPER_EXTENSION = plugin; + }; + name = Debug; + }; + 149C298508902C53008A9EFC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + FRAMEWORK_SEARCH_PATHS = "$(FRAMEWORK_SEARCH_PATHS)"; + GCC_DEBUGGING_SYMBOLS = full; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "/Library/Internet Plug-Ins"; + PRODUCT_NAME = NPN_Invoke; + WRAPPER_EXTENSION = plugin; + }; + name = Release; + }; + 149C298808902C53008A9EFC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Debug; + }; + 149C298908902C53008A9EFC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NPN_Invoke" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 149C298408902C53008A9EFC /* Debug */, + 149C298508902C53008A9EFC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NPN_Invoke" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 149C298808902C53008A9EFC /* Debug */, + 149C298908902C53008A9EFC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 089C1669FE841209C02AAC07 /* Project object */; +} diff --git a/WebCore/manual-tests/NPN_Invoke/main.c b/WebCore/manual-tests/NPN_Invoke/main.c new file mode 100644 index 0000000..f149f54 --- /dev/null +++ b/WebCore/manual-tests/NPN_Invoke/main.c @@ -0,0 +1,265 @@ +/* + IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in + consideration of your agreement to the following terms, and your use, installation, + modification or redistribution of this Apple software constitutes acceptance of these + terms. If you do not agree with these terms, please do not use, install, modify or + redistribute this Apple software. + + In consideration of your agreement to abide by the following terms, and subject to these + terms, Apple grants you a personal, non-exclusive license, under AppleÕs copyrights in + this original Apple software (the "Apple Software"), to use, reproduce, modify and + redistribute the Apple Software, with or without modifications, in source and/or binary + forms; provided that if you redistribute the Apple Software in its entirety and without + modifications, you must retain this notice and the following text and disclaimers in all + such redistributions of the Apple Software. Neither the name, trademarks, service marks + or logos of Apple Computer, Inc. may be used to endorse or promote products derived from + the Apple Software without specific prior written permission from Apple. Except as expressly + stated in this notice, no other rights or licenses, express or implied, are granted by Apple + herein, including but not limited to any patent rights that may be infringed by your + derivative works or by other works in which the Apple Software may be incorporated. + + The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, + EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS + USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + + IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, + REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND + WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR + OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import <WebKit/npapi.h> +#import <WebKit/npfunctions.h> +#import <WebKit/npruntime.h> + +NPNetscapeFuncs *browser; + +NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved); +NPError NPP_Destroy(NPP instance, NPSavedData** save); +NPError NPP_SetWindow(NPP instance, NPWindow* window); +NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype); +NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason); +int32 NPP_WriteReady(NPP instance, NPStream* stream); +int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer); +void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname); +void NPP_Print(NPP instance, NPPrint* platformPrint); +int16 NPP_HandleEvent(NPP instance, void* event); +void NPP_URLNotify(NPP instance, const char* URL, NPReason reason, void* notifyData); +NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value); +NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value); + +#pragma export on +// Mach-o entry points +NPError NP_Initialize(NPNetscapeFuncs *browserFuncs); +NPError NP_GetEntryPoints(NPPluginFuncs *pluginFuncs); +void NP_Shutdown(void); +// For compatibility with CFM browsers. +int main(NPNetscapeFuncs *browserFuncs, NPPluginFuncs *pluginFuncs, NPP_ShutdownProcPtr *shutdown); +#pragma export off + + +typedef void (* FunctionPointer) (void); +typedef void (* TransitionVector) (void); +static FunctionPointer functionPointerForTVector(TransitionVector); +static TransitionVector tVectorForFunctionPointer(FunctionPointer); + +// Mach-o entry points +NPError NP_Initialize(NPNetscapeFuncs* browserFuncs) +{ + browser = browserFuncs; + return NPERR_NO_ERROR; +} + +NPError NP_GetEntryPoints(NPPluginFuncs* pluginFuncs) +{ + pluginFuncs->version = 11; + pluginFuncs->size = sizeof(pluginFuncs); + pluginFuncs->newp = NPP_New; + pluginFuncs->destroy = NPP_Destroy; + pluginFuncs->setwindow = NPP_SetWindow; + pluginFuncs->newstream = NPP_NewStream; + pluginFuncs->destroystream = NPP_DestroyStream; + pluginFuncs->asfile = NPP_StreamAsFile; + pluginFuncs->writeready = NPP_WriteReady; + pluginFuncs->write = (NPP_WriteProcPtr)NPP_Write; + pluginFuncs->print = NPP_Print; + pluginFuncs->event = NPP_HandleEvent; + pluginFuncs->urlnotify = NPP_URLNotify; + pluginFuncs->getvalue = NPP_GetValue; + pluginFuncs->setvalue = NPP_SetValue; + + return NPERR_NO_ERROR; +} + +void NP_Shutdown(void) +{ + +} + +// For compatibility with CFM browsers. +int main(NPNetscapeFuncs *browserFuncs, NPPluginFuncs *pluginFuncs, NPP_ShutdownProcPtr *shutdown) +{ + browser = malloc(sizeof(NPNetscapeFuncs)); + bzero(browser, sizeof(NPNetscapeFuncs)); + + browser->size = browserFuncs->size; + browser->version = browserFuncs->version; + + // Since this is a mach-o plug-in and the browser is CFM because it is calling main, translate + // our function points into TVectors so the browser can call them. + browser->geturl = (NPN_GetURLProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->geturl); + browser->posturl = (NPN_PostURLProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->posturl); + browser->requestread = (NPN_RequestReadProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->requestread); + browser->newstream = (NPN_NewStreamProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->newstream); + browser->write = (NPN_WriteProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->write); + browser->destroystream = (NPN_DestroyStreamProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->destroystream); + browser->status = (NPN_StatusProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->status); + browser->uagent = (NPN_UserAgentProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->uagent); + browser->memalloc = (NPN_MemAllocProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->memalloc); + browser->memfree = (NPN_MemFreeProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->memfree); + browser->memflush = (NPN_MemFlushProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->memflush); + browser->reloadplugins = (NPN_ReloadPluginsProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->reloadplugins); + browser->geturlnotify = (NPN_GetURLNotifyProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->geturlnotify); + browser->posturlnotify = (NPN_PostURLNotifyProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->posturlnotify); + browser->getvalue = (NPN_GetValueProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->getvalue); + browser->setvalue = (NPN_SetValueProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->setvalue); + browser->invalidaterect = (NPN_InvalidateRectProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->invalidaterect); + browser->invalidateregion = (NPN_InvalidateRegionProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->invalidateregion); + browser->forceredraw = (NPN_ForceRedrawProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->forceredraw); + browser->getJavaEnv = (NPN_GetJavaEnvProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->getJavaEnv); + browser->getJavaPeer = (NPN_GetJavaPeerProcPtr)functionPointerForTVector((TransitionVector)browserFuncs->getJavaPeer); + + pluginFuncs->version = 11; + pluginFuncs->size = sizeof(pluginFuncs); + pluginFuncs->newp = (NPP_NewProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_New); + pluginFuncs->destroy = (NPP_DestroyProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_Destroy); + pluginFuncs->setwindow = (NPP_SetWindowProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_SetWindow); + pluginFuncs->newstream = (NPP_NewStreamProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_NewStream); + pluginFuncs->destroystream = (NPP_DestroyStreamProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_DestroyStream); + pluginFuncs->asfile = (NPP_StreamAsFileProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_StreamAsFile); + pluginFuncs->writeready = (NPP_WriteReadyProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_WriteReady); + pluginFuncs->write = (NPP_WriteProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_Write); + pluginFuncs->print = (NPP_PrintProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_Print); + pluginFuncs->event = (NPP_HandleEventProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_HandleEvent); + pluginFuncs->urlnotify = (NPP_URLNotifyProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_URLNotify); + pluginFuncs->getvalue = (NPP_GetValueProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_GetValue); + pluginFuncs->setvalue = (NPP_SetValueProcPtr)tVectorForFunctionPointer((FunctionPointer)NPP_SetValue); + + *shutdown = (NPP_ShutdownProcPtr)tVectorForFunctionPointer((FunctionPointer)NP_Shutdown); + + return NPERR_NO_ERROR; +} + +NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved) +{ + // Call window.alert("Success!") + NPError error; + NPObject *windowObject = NULL; + error = browser->getvalue(instance, NPNVWindowNPObject, &windowObject); + if (error == NPERR_NO_ERROR) { + NPVariant alertMessage; + STRINGZ_TO_NPVARIANT("Success!", alertMessage); + NPVariant result; + browser->invoke(instance, windowObject, browser->getstringidentifier("alert"), &alertMessage, 1, &result); + browser->releaseobject(windowObject); + } + + return NPERR_NO_ERROR; +} + +NPError NPP_Destroy(NPP instance, NPSavedData** save) +{ + return NPERR_NO_ERROR; +} + +NPError NPP_SetWindow(NPP instance, NPWindow* window) +{ + return NPERR_NO_ERROR; +} + +NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype) +{ + *stype = NP_ASFILEONLY; + return NPERR_NO_ERROR; +} + +NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPReason reason) +{ + return NPERR_NO_ERROR; +} + +int32 NPP_WriteReady(NPP instance, NPStream* stream) +{ + return 0; +} + +int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer) +{ + return 0; +} + +void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname) +{ +} + +void NPP_Print(NPP instance, NPPrint* platformPrint) +{ + +} + +int16 NPP_HandleEvent(NPP instance, void* event) +{ + return 1; +} + +void NPP_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData) +{ + +} + +NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) +{ + return NPERR_GENERIC_ERROR; +} + +NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) +{ + return NPERR_GENERIC_ERROR; +} + +// function pointer converters + +FunctionPointer functionPointerForTVector(TransitionVector tvp) +{ + const uint32 temp[6] = {0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420}; + uint32 *newGlue = NULL; + + if (tvp != NULL) { + newGlue = (uint32 *)malloc(sizeof(temp)); + if (newGlue != NULL) { + unsigned i; + for (i = 0; i < 6; i++) newGlue[i] = temp[i]; + newGlue[0] |= ((UInt32)tvp >> 16); + newGlue[1] |= ((UInt32)tvp & 0xFFFF); + MakeDataExecutable(newGlue, sizeof(temp)); + } + } + + return (FunctionPointer)newGlue; +} + +TransitionVector tVectorForFunctionPointer(FunctionPointer fp) +{ + FunctionPointer *newGlue = NULL; + if (fp != NULL) { + newGlue = (FunctionPointer *)malloc(2 * sizeof(FunctionPointer)); + if (newGlue != NULL) { + newGlue[0] = fp; + newGlue[1] = NULL; + } + } + return (TransitionVector)newGlue; +} diff --git a/WebCore/manual-tests/NPN_Invoke/test.html b/WebCore/manual-tests/NPN_Invoke/test.html new file mode 100644 index 0000000..5164701 --- /dev/null +++ b/WebCore/manual-tests/NPN_Invoke/test.html @@ -0,0 +1,29 @@ +<html> +<head> +<title>NPN_Invoke() test</title> +</head> +<body> + +<object width="0" height="0" type="test/npn-invoke"> + <!-- Fallback content to describe how to run the test -- /> + <p>You do not have the "NPN_Invoke" plugin installed. Before you run this test:</p> + <ol> + <li>Build the included Xcode project, "NPN_Invoke.xcodeproj".</li> + <li>Copy the built plugin (NPN_Invoke.plugin) to /Library/Internet Plug-Ins.</li> + <li>Restart Safari.</li> + </ol> +</object> + +<p>This tests NPN_Invoke(), part of the Netscape Plugin API scripting interface.</p> +<p>To verify, you must run this test with JavaScript enabled and then repeat the test with JavaScript disabled.</p> + +<h4>JavaScript enabled</h4> +<p style="color: green">Success: An alert dialog is shown with the message "Success!"</p> +<p style="color: red">Failure: No alert dialog is shown, or the message is not "Success!"</p> + +<h4>JavaScript disabled</h4> +<p style="color: green">Success: No alert dialog is shown, and Safari remains open (does not crash).</p> +<p style="color: red">Failure: An alert dialog is shown, or Safari crashes.</p> + +</body> +</html> diff --git a/WebCore/manual-tests/accidental-strict-mode.html b/WebCore/manual-tests/accidental-strict-mode.html new file mode 100644 index 0000000..45ff8b7 --- /dev/null +++ b/WebCore/manual-tests/accidental-strict-mode.html @@ -0,0 +1,13 @@ +<p>This tests for regression against <a href="http://bugs.webkit.org/show_bug.cgi?id=7102">REGRESSION: parse mode gets set to strict after going back from non-HTML content</a></p> + +<ol> +<li> Click on PDF link below. Wait for PDF to fully load. +<li> Click "Back" button once. +<li> Click the link again. +<li> Click "Back" button once. +</ol> + +<p>In the failing case, the thin line above the link will get much thicker. If it remains the same, this test has passed.</p> + +<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td bgcolor=#3366cc><img width=1 height=1 alt=""></td></tr></table> +<div><a href="http://www.irs.gov/pub/irs-pdf/fw4.pdf">http://www.irs.gov/pub/irs-pdf/fw4.pdf</a></div> diff --git a/WebCore/manual-tests/animation/animateColor-by.svg b/WebCore/manual-tests/animation/animateColor-by.svg new file mode 100644 index 0000000..d528865 --- /dev/null +++ b/WebCore/manual-tests/animation/animateColor-by.svg @@ -0,0 +1,6 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100' fill='black'> + <animateColor attributeName="fill" by='green' dur='3s' fill='freeze' /> + </rect> + <text x='10' y='120'>The rect should animate from black to green over 3 seconds</text> +</svg> diff --git a/WebCore/manual-tests/animation/animateColor-from-by.svg b/WebCore/manual-tests/animation/animateColor-from-by.svg new file mode 100644 index 0000000..5d0be05 --- /dev/null +++ b/WebCore/manual-tests/animation/animateColor-from-by.svg @@ -0,0 +1,6 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100'> + <animateColor attributeName="fill" from='#DD0000' by='#0000DD' dur='3s' fill='freeze' /> + </rect> + <text x='10' y='120'>The rect should animate from red to purple over 3 seconds</text> +</svg> diff --git a/WebCore/manual-tests/animation/animateColor-repeat-indefinite.svg b/WebCore/manual-tests/animation/animateColor-repeat-indefinite.svg new file mode 100644 index 0000000..c2339f6 --- /dev/null +++ b/WebCore/manual-tests/animation/animateColor-repeat-indefinite.svg @@ -0,0 +1,6 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100'> + <animateColor attributeName="fill" values='blue; green' dur='2s' repeatCount='indefinite' /> + </rect> + <text x='10' y='120'>The rect should animate from blue to green over 2 seconds, repeatedly.</text> +</svg> diff --git a/WebCore/manual-tests/animation/animateColor-to-from.svg b/WebCore/manual-tests/animation/animateColor-to-from.svg new file mode 100644 index 0000000..ecd4357 --- /dev/null +++ b/WebCore/manual-tests/animation/animateColor-to-from.svg @@ -0,0 +1,6 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100'> + <animateColor attributeName="fill" from='blue' to='green' dur='3s' fill='freeze' /> + </rect> + <text x='10' y='120'>The rect should animate from blue to green over 3 seconds</text> +</svg> diff --git a/WebCore/manual-tests/animation/animateColor-to.svg b/WebCore/manual-tests/animation/animateColor-to.svg new file mode 100644 index 0000000..4a276c6 --- /dev/null +++ b/WebCore/manual-tests/animation/animateColor-to.svg @@ -0,0 +1,6 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100' fill='blue'> + <animateColor attributeName="fill" to='green' dur='3s' fill='freeze' /> + </rect> + <text x='10' y='120'>The rect should animate from blue to green over 3 seconds</text> +</svg> diff --git a/WebCore/manual-tests/animation/animateColor-values-simple.svg b/WebCore/manual-tests/animation/animateColor-values-simple.svg new file mode 100644 index 0000000..b512651 --- /dev/null +++ b/WebCore/manual-tests/animation/animateColor-values-simple.svg @@ -0,0 +1,6 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100'> + <animateColor attributeName="fill" values='blue; green' dur='3s' fill='freeze' /> + </rect> + <text x='10' y='120'>The rect should animate from blue to green over 3 seconds</text> +</svg> diff --git a/WebCore/manual-tests/animation/animateMotion-to.svg b/WebCore/manual-tests/animation/animateMotion-to.svg new file mode 100644 index 0000000..17e2cdc --- /dev/null +++ b/WebCore/manual-tests/animation/animateMotion-to.svg @@ -0,0 +1,8 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100'> + <animateMotion to='100,0' dur='3s' /> + </rect> + <text x='10' y='120'> + The rect should from 0,0 to 100,0 over 3 seconds. + </text> +</svg> diff --git a/WebCore/manual-tests/animation/animateTransform-keyTimes.svg b/WebCore/manual-tests/animation/animateTransform-keyTimes.svg new file mode 100644 index 0000000..049a070 --- /dev/null +++ b/WebCore/manual-tests/animation/animateTransform-keyTimes.svg @@ -0,0 +1,11 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect fill='blue' width='100' height='100'> + <animateTransform attributeName="transform" type='translate' values='0,0; 10,0; 100,0' keyTimes='0; .6; 1' dur='3s' fill='freeze' /> + </rect> + <rect fill='none' stroke='orange' x='10' width='100' height='100' /> + <rect fill='none' stroke='green' x='100' width='100' height='100' /> + <text x='10' y='120'> + The rect should from 0,0 to 100,0 over 3 seconds. + <tspan dy='20' x='10'>It should be at the orange at 2 seconds and the green at 3 seconds.</tspan> + </text> +</svg> diff --git a/WebCore/manual-tests/animation/animateTransform-parser.svg b/WebCore/manual-tests/animation/animateTransform-parser.svg new file mode 100644 index 0000000..4e0dd72 --- /dev/null +++ b/WebCore/manual-tests/animation/animateTransform-parser.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + +animateTransform parsing code coverage for translate, rotate, skewX + +TODO: does not test e/E exponent notation + +--> +<svg xmlns="http://www.w3.org/2000/svg" width="800px" height="600px"> + <g transform="translate(-90, -90)"> + <circle fill="none" stroke="black" stroke-width="3" cx="200" cy="200" r="100" /> + <line x1="200" y1="200" x2="300" y2="200" stroke="red" stroke-width="30" stroke-linecap="round"> + <animateTransform attributeName="transform" type="rotate" from=" 0, 200, 200" to=" 360, 200, 200" + dur="5s" /> + </line> + <line x1="200" y1="200" x2="300" y2="200" stroke="green" stroke-width="20" stroke-linecap="round"> + <animateTransform attributeName="transform" type="rotate" from=" 0 200 200" to=" 360 200 200" + dur="5s" /> + </line> + <line x1="200" y1="200" x2="300" y2="200" stroke="blue" stroke-width="10" stroke-linecap="round"> + <animateTransform attributeName="transform" type="rotate" from=" 0,200,200" to=" 360,200,200" + dur="5s" /> + </line> + <line x1="200" y1="200" x2="300" y2="200" stroke="white" stroke-width="5" stroke-linecap="round"> + <animateTransform attributeName="transform" type="rotate" from=" 0,+200 +200" to=" 360 +200 +200" + dur="5s" /> + </line> + </g> + <g transform="translate(300, 10)"> + <rect fill="none" stroke="black" stroke-width="3" x="0" y="0" width="200" height="200" /> + <circle fill="red" cx="0" cy="0" r="30"> + <animateTransform attributeName="transform" type="translate" from="0, 0" to="200, 200" dur="5s" /> + </circle> + <circle fill="green" cx="0" cy="0" r="20"> + <animateTransform attributeName="transform" type="translate" from="0 0" to="200 200" dur="5s" /> + </circle> + <circle fill="blue" cx="0" cy="0" r="10"> + <animateTransform attributeName="transform" type="translate" from="0,0" to="200,200" dur="5s" /> + </circle> + <circle fill="yellow" cx="0" cy="0" r="5"> + <animateTransform attributeName="transform" type="translate" from=" +0,+0" to=" +200 +200" dur="5s" /> + </circle> + </g> + <g transform="translate(10, 300)"> + <rect fill="none" stroke="black" stroke-width="3" x="0" y="0" width="200" height="200" /> + <rect fill="red" x="0" y="0" width="40" height="100"> + <animateTransform attributeName="transform" type="scale" from="1,1" by="0,1" dur="5s" /> + </rect> + <rect fill="green" x="0" y="0" width="30" height="100"> + <animateTransform attributeName="transform" type="scale" from="1 1" by="0 1" dur="5s" /> + </rect> + <rect fill="blue" x="0" y="0" width="20" height="100"> + <animateTransform attributeName="transform" type="scale" from="1, 1" by="0, 1" dur="5s" /> + </rect> + <rect fill="yellow" x="0" y="0" width="10" height="100"> + <animateTransform attributeName="transform" type="scale" from="+1,+1" by=" +0, +1" dur="5s" /> + </rect> + + <rect fill="red" x="0" y="0" width="100" height="40"> + <animateTransform attributeName="transform" type="scale" from="1,1" by="1,0" dur="5s" /> + </rect> + <rect fill="green" x="0" y="0" width="100" height="30"> + <animateTransform attributeName="transform" type="scale" from="1 1" by="1 0" dur="5s" /> + </rect> + <rect fill="blue" x="0" y="0" width="100" height="20"> + <animateTransform attributeName="transform" type="scale" from="1, 1" by="1, 0" dur="5s" /> + </rect> + <rect fill="yellow" x="0" y="0" width="100" height="10"> + <animateTransform attributeName="transform" type="scale" from="+1,+1" by=" +1, +0" dur="5s" /> + </rect> + </g> + + <g transform="translate(300, 300)"> + <rect fill="none" stroke="black" stroke-width="3" x="0" y="0" width="200" height="200" /> + <rect fill="red" x="0" y="0" width="100" height="100"> + <animateTransform attributeName="transform" type="skewX" from="0" by="45" dur="5s" /> + </rect> + <rect fill="green" x="0" y="0" width="50" height="100"> + <animateTransform attributeName="transform" type="skewX" from="0" by=" 45" dur="5s" /> + </rect> + <rect fill="blue" x="0" y="0" width="25" height="100"> + <animateTransform attributeName="transform" type="skewX" from="0" by=" +45.0" dur="5s" /> + </rect> + </g> +</svg> + diff --git a/WebCore/manual-tests/animation/animateTransform-repeat-once.svg b/WebCore/manual-tests/animation/animateTransform-repeat-once.svg new file mode 100644 index 0000000..b1951ba --- /dev/null +++ b/WebCore/manual-tests/animation/animateTransform-repeat-once.svg @@ -0,0 +1,8 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect fill='blue' width='100' height='100'> + <animateTransform attributeName="transform" type='translate' from='0,0' to='100,0' dur='2s' repeatCount='2' fill='freeze' /> + </rect> + <text x='10' y='120'> + The rect should from 0,0 to 100,0 over 2 seconds, twice. + </text> +</svg> diff --git a/WebCore/manual-tests/animation/animateTransform-toanimation.svg b/WebCore/manual-tests/animation/animateTransform-toanimation.svg new file mode 100644 index 0000000..b15ffd3 --- /dev/null +++ b/WebCore/manual-tests/animation/animateTransform-toanimation.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="800px" height="600px"> + <g transform="translate(10, 300)"> + <rect fill="red" x="0" y="0" width="100" height="100"> + <animateTransform attributeName="transform" type="scale" to="5" dur="5s" /> + </rect> + </g> +</svg> + diff --git a/WebCore/manual-tests/animation/set-to.svg b/WebCore/manual-tests/animation/set-to.svg new file mode 100644 index 0000000..8b35459 --- /dev/null +++ b/WebCore/manual-tests/animation/set-to.svg @@ -0,0 +1,10 @@ +<svg xmlns='http://www.w3.org/2000/svg'> + <rect width='100' height='100' fill='red' /> + <rect x='-100' width='100' height='100' fill='red'> + <set attributeName='x' to='0' dur='3s' /> + <set attributeName='fill' to='green' dur='3s' /> + </rect> + <text x='10' y='120'> + There should be a 100x100 green rect at 0,0. + </text> +</svg> diff --git a/WebCore/manual-tests/applet-param-no-name.html b/WebCore/manual-tests/applet-param-no-name.html new file mode 100644 index 0000000..c6e8821 --- /dev/null +++ b/WebCore/manual-tests/applet-param-no-name.html @@ -0,0 +1,4 @@ +<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=8437">http://bugs.webkit.org/show_bug.cgi?id=8437</a></p> +<p>This tests an applet element with a param element inside it with no name. If Java is enabled and Safari did not crash, then the test passed.</p> +<applet code=""><param></applet> +<script>document.body.offsetTop;</script> diff --git a/WebCore/manual-tests/arrow-key-events.html b/WebCore/manual-tests/arrow-key-events.html new file mode 100644 index 0000000..81231f1 --- /dev/null +++ b/WebCore/manual-tests/arrow-key-events.html @@ -0,0 +1,93 @@ +<body> +<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=3387">bug 3387</a>: +Redundant keydown, keypress, keyup events sent for arrow keys.</p> + +<p>Try pressing arrow keys, PgUp/PgDown/Home/End, Esc, or function keys. +The test passes if the box below doesn't turn red.<p> + +<div id="result" style="width:100px; height:100px; background-color:blue;"></div> + +<script> + + var console_messages = document.createElement("ol"); + document.body.appendChild(console_messages); + + window.onkeydown = registerWindow; + window.onkeypress = registerWindow; + window.onkeyup = registerWindow; + + document.onkeydown = registerDocument; + document.onkeypress = registerDocument; + document.onkeyup = registerDocument; + + document.body.onkeydown = registerBody; + document.body.onkeypress = registerBody; + document.body.onkeyup = registerBody; + + document.documentElement.onkeydown = registerDocumentElement; + document.documentElement.onkeypress = registerDocumentElement; + document.documentElement.onkeyup = registerDocumentElement; + + var bodyKeyDownCount = 0; + var documentElementKeyDownCount = 0; + var windowKeyDownCount = 0; + var documentKeyDownCount = 0; + + function log(message) + { + var item = document.createElement("li"); + item.appendChild(document.createTextNode(message)); + item.style.fontSize = '8px'; + console_messages.appendChild(item); + } + + function registerBody(e) + { + if ((e.type == "keydown" && ++bodyKeyDownCount != 1) + || (e.type == "keyup" && --bodyKeyDownCount != 0)) + document.getElementById("result").style.backgroundColor = "red"; + + if (!e) + e = window.event; + log("body: " + e.type); + return true; + } + + function registerDocumentElement(e) + { + if ((e.type == "keydown" && ++documentElementKeyDownCount != 1) + || (e.type == "keyup" && --documentElementKeyDownCount != 0)) + document.getElementById("result").style.backgroundColor = "red"; + + if (!e) + e = window.event; + log(" documentElement: " + e.type); + return true; + } + + function registerDocument(e) + { + if ((e.type == "keydown" && ++documentKeyDownCount != 1) + || (e.type == "keyup" && --documentKeyDownCount != 0)) + document.getElementById("result").style.backgroundColor = "red"; + + if (!e) + e = window.event; + log("  document: " + e.type); + return true; + } + + function registerWindow(e) + { + if ((e.type == "keydown" && ++windowKeyDownCount != 1) + || (e.type == "keyup" && --windowKeyDownCount != 0)) + document.getElementById("result").style.backgroundColor = "red"; + + if (!e) + e = window.event; + log("   window: " + e.type); + return true; + } + +</script> +</body> diff --git a/WebCore/manual-tests/autoscroll-when-outside-window.html b/WebCore/manual-tests/autoscroll-when-outside-window.html new file mode 100644 index 0000000..91b4ecf --- /dev/null +++ b/WebCore/manual-tests/autoscroll-when-outside-window.html @@ -0,0 +1,7 @@ +<html> + <body> + <p>Click somewhere in this text, then quickly drag past the bottom of the window and hold still to allow auto-scrolling to happen.</p> + <div style="height:3000px"></div> + <p>If the bug occurs, then this text won't be selected until you move the mouse slightly. If the bug does not occur, this text should be selected.</p> + </body> +</html> diff --git a/WebCore/manual-tests/autoscroll.html b/WebCore/manual-tests/autoscroll.html new file mode 100644 index 0000000..10f3bc5 --- /dev/null +++ b/WebCore/manual-tests/autoscroll.html @@ -0,0 +1,28 @@ +<head> +<script> +function addFrameText() { + frameDoc = window.frames[0].document; + item = frameDoc.createElement("p"); + item.appendChild(frameDoc.createTextNode("Hello, world!")); + for (i = 0; i < 1000; ++i) { + frameDoc.body.appendChild(item.cloneNode(true)); + } +} +</script> +</head> + +<body onload="javascript:addFrameText()"> + +<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=11718">bug 11718</a>: +When I mouse up after dragging a selection outside of a iframe, the iframe continues to scroll automatically.</p> + +<p>Make the frame autoscroll by moving the mouse pointer outside of it while selecting. +Autoscrolling should stop when you release the mouse button outside the frame (in the main frame, +in another subframe, or just outside the window).</p> + +<IFRAME FRAMEBORDER=1></IFRAME> +<br> +<IFRAME FRAMEBORDER=1></IFRAME> + +</body> +</html> diff --git a/WebCore/manual-tests/back.html b/WebCore/manual-tests/back.html new file mode 100644 index 0000000..4eea5df --- /dev/null +++ b/WebCore/manual-tests/back.html @@ -0,0 +1 @@ +<input type="button" onclick="history.back()" value="Go Back">
\ No newline at end of file diff --git a/WebCore/manual-tests/background-image-change-in-page-cache.html b/WebCore/manual-tests/background-image-change-in-page-cache.html new file mode 100644 index 0000000..c6fb38e --- /dev/null +++ b/WebCore/manual-tests/background-image-change-in-page-cache.html @@ -0,0 +1,30 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=12773">12773</a> REGRESSION (r19490): Crash on ipx-server.de</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click the link below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +A SUCCESS message will appear at the bottom of the page and Safari will not crash. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Safari will crash or the SUCCESS message will not appear. +</p> + +<div style="background-image: url(resources/3dolph.gif); height: 2px; width: 2px;"> +</div> +<a href="?clicked">Click here</a> +<div id="result"></div> +<script> + if (location.href.match("clicked$")) + document.getElementById("result").innerText = "SUCCESS"; +</script> +</body> +</html> diff --git a/WebCore/manual-tests/bad-clearTimeout-crash.html b/WebCore/manual-tests/bad-clearTimeout-crash.html new file mode 100644 index 0000000..b7ee23c --- /dev/null +++ b/WebCore/manual-tests/bad-clearTimeout-crash.html @@ -0,0 +1,13 @@ +If the back/forward cache is enabled, this test will crash instead of going to the next page that says PASS. + +It cannot be automated because DumpRenderTree doesn't support the back/forward cache. + +<script> +if (window.layoutTestController) + layoutTestController.waitUntilDone(); + +setTimeout('',1000); +clearTimeout(0); +clearTimeout(0); +window.location = "data:text/html,This test shouldn't crash. PASS.<scr" + "ipt>if (window.layoutTestController) layoutTestController.notifyDone()</scr" + "ipt>"; +</script> diff --git a/WebCore/manual-tests/bidi-parens.html b/WebCore/manual-tests/bidi-parens.html new file mode 100644 index 0000000..cbbd854 --- /dev/null +++ b/WebCore/manual-tests/bidi-parens.html @@ -0,0 +1,18 @@ +<html> +<head> +<style> +.console { + font-family: Arial, Times New Roman +} +</style> +</head> +<body> +<p>This test checks for a regression against <a href="http://bugs.webkit.org/show_bug.cgi?id=3435">3435 Parentheses are backwards in Hebrew text (no bidi mirroring?)</a>.</p> +<p>Success: parentheses encapsulate word.</p> +<p>Failure: parentheses face away from word.</p> +<hr> +<p id="console" dir="rtl"> +(×œ×ž×“×™× ×•×ª) +</p> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/bidi-visible-control-characters.html b/WebCore/manual-tests/bidi-visible-control-characters.html new file mode 100644 index 0000000..7eeac06 --- /dev/null +++ b/WebCore/manual-tests/bidi-visible-control-characters.html @@ -0,0 +1,12 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-8"> +<title>Internal bidi control characters are visible</title> +</head> +<body> +<p>Since the current default font does not contain bidi control characters, this test needs to be manual. The following paragraph should contain only 3 hebrew characters (and no control characters).</p> +<p style="font-family:Arial;">גבא</p> +</body> +</html> diff --git a/WebCore/manual-tests/bugzilla-14899.html b/WebCore/manual-tests/bugzilla-14899.html new file mode 100644 index 0000000..1cee31a --- /dev/null +++ b/WebCore/manual-tests/bugzilla-14899.html @@ -0,0 +1,33 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> + <script> + function test() + { + document.getElementById("z").style.display='block'; + open("data:text/html,SUCCESS"); + } + </script> +</head> +<body> + <p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=14899">Bugzilla bug 14899</a> !d->m_view->needsLayout() in Frame::paint() (Causes assert)</p> + + <p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> + Make sure you are using a debug build of the Web Kit framework. Click the Test button below. + </p> + + <p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> + A new window will open. + </p> + + <p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> + An assertion failure will occur. + </p> + <button onclick="test()">Test</button> + <div id="z" style="display: none;"> + <object> + <embed width="40" src="resources/orange.mov" controller="false"> + </object> + </div> +</body> diff --git a/WebCore/manual-tests/bugzilla-3855.html b/WebCore/manual-tests/bugzilla-3855.html new file mode 100644 index 0000000..dd19104 --- /dev/null +++ b/WebCore/manual-tests/bugzilla-3855.html @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=3855">Bugzilla Bug 3855</a> Table with Form Field and Hidden DIV crashes Safari</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Type in the text field below.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Safari will not crash, text will show up in text field as expected. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Safari will crash. +</p> + +Type in the input field below: +<form> +<div style="display:none;"> +<table> + <tr> + <td>test</td> + </tr> + </table> +</div> + +<input type='text' value='' /> +</form> + +</body> +</html> diff --git a/WebCore/manual-tests/bugzilla-4840.html b/WebCore/manual-tests/bugzilla-4840.html new file mode 100644 index 0000000..6cf68bd --- /dev/null +++ b/WebCore/manual-tests/bugzilla-4840.html @@ -0,0 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=4840">Bugzilla bug 4840</a> Frames only resize wider, can't make them narrower</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Drag the vertical split bar below to the left and release it. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The frames will resize accordingly, with the split bar where you released it. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The split bar will not follow the mouse when dragged to the left. After releasing +the mouse button, the frames will not resize and the split bar will continue to +follow the mouse. +</p> + +<iframe style="width: 100%; height: 200px;" src="data:text/html,<frameset cols=%22*, *%22><frameset rows=%22*, *%22><frame src=%22about:blank%22><frame src=%22about:blank%22></frameset><frame src=%22about:blank%22></frameset>"></iframe> + +</body> +</html> diff --git a/WebCore/manual-tests/bugzilla-5768.html b/WebCore/manual-tests/bugzilla-5768.html new file mode 100644 index 0000000..4ead9f2 --- /dev/null +++ b/WebCore/manual-tests/bugzilla-5768.html @@ -0,0 +1,41 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" +"http://www.w3.org/TR/html4/frameset.dtd"> +<html> +<head> +<title>No relayout when all frames are fixed</title> +<script type="text/javascript"> +if (window.layoutTestController) + layoutTestController.waitUntilDone(); +var i = 0; +function test() +{ + i++; + var f = document.getElementById('f'); + switch(i) { + case 1: + window.setTimeout(test, 100); + break; + case 2: + f.src = "resources/frame2.html"; + break; + case 3: + window.setTimeout(test, 100); + break; + case 4: + f.src = "resources/frame1.html"; + break; + case 5: + window.setTimeout(test, 100); + break; + case 6: + if (window.layoutTestController) + layoutTestController.notifyDone(); + break; + } +} +</script> +</head> +<frameset> + <frame onload="test()" id="f" src="resources/frame1.html" noresize> +</frameset> +</html> diff --git a/WebCore/manual-tests/bugzilla-6821.html b/WebCore/manual-tests/bugzilla-6821.html new file mode 100644 index 0000000..a653945 --- /dev/null +++ b/WebCore/manual-tests/bugzilla-6821.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<style> + div { width: 60px; text-align: center; + position: relative; } + div#a { background: green; } + div#b { background: yellow; } + div#a:hover { background: red; } + div#b:hover { background: green; } + span#c:hover { color: red; } +</style> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=6821">Bugzilla bug 6821</a> Fix for 5983 will not always update hover correctly.</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Move the mouse over the text “Hover here” until it disappears and “Wait” appears, then DO NOT MOVE the mouse +until the end of the test. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +After a second, you should see “Only green now” over a green background. +No other colors should be visible. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +“Only green now” will appear over a yellow background with a red +rect at the top. If you move the mouse over the background, the colors will +change to green eventually. +</p> + +<hr> + +<script type="text/javascript"> +function hideC() +{ + c.style.display = 'none'; +} + +function hoveredC() +{ + window.setTimeout(hideC, 1000); +} + +</script> + +<div id="a"> +<div style="height: 20px;"></div> +<span id="c" onmouseover="hoveredC()">Hover here<br><span style="background: black;"> Wait </span></span> +</div> +<div id="b"> +Only green now +</div> +</body> +</html> diff --git a/WebCore/manual-tests/caret-image.html b/WebCore/manual-tests/caret-image.html new file mode 100644 index 0000000..a6dff5e --- /dev/null +++ b/WebCore/manual-tests/caret-image.html @@ -0,0 +1,9 @@ +<p> +Test to see if caret works correctly to the right of an image. +If the test is successful, the caret will look thin as usual. +If the test fails, the caret will be a big black box the size of the image. +</p> + +<div id="test" contenteditable="true">free<img src="resources/webkit-background.png">lunch</div> + +<script>window.getSelection().setPosition(document.getElementById("test"), 2);</script> diff --git a/WebCore/manual-tests/caretScrolling.html b/WebCore/manual-tests/caretScrolling.html new file mode 100644 index 0000000..6fb8044 --- /dev/null +++ b/WebCore/manual-tests/caretScrolling.html @@ -0,0 +1,18 @@ +<html> +<p>Manual test for fix for <a href="rdar://problem/3690705">rdar://problem/3690705</a> "caret does not move when scrolling overflow: auto editable area"</p> +<p> +Click inside the block below, a caret should appear. Grab the block's scroll handle and scroll down. The caret blinks, try to grab the scroll handle while the caret is visible. The caret should scroll and disappear when it reaches the block's border. +</p> + +<div contentEditable style="border: 1px solid blue; height: 100px; overflow:scroll;"> +one<br> +two<br> +three<br> +four<br> +five<br> +six<br> +seven<br> +eight<br> +</div> + +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/chrome-bidi-text.html b/WebCore/manual-tests/chrome-bidi-text.html new file mode 100644 index 0000000..99c0a7b --- /dev/null +++ b/WebCore/manual-tests/chrome-bidi-text.html @@ -0,0 +1,5 @@ +<p> + This tests drawing bidirectional text in Windows Safari chrome. Click the + Start button and follow the instructions. +</p> +<button onclick='open("resources/chrome-bidi-text-window.html", null, "toolbar=no")'>Start</button>
\ No newline at end of file diff --git a/WebCore/manual-tests/clear-input-file.html b/WebCore/manual-tests/clear-input-file.html new file mode 100644 index 0000000..f1ef360 --- /dev/null +++ b/WebCore/manual-tests/clear-input-file.html @@ -0,0 +1,27 @@ +<script> +function clearWithReset() +{ + document.getElementById("form").reset(); +} +function clearBySettingValue() +{ + document.getElementById("file").value = ""; +} +function clearBySettingValueToNull() +{ + document.getElementById("file").value = null; +} +function clearBySettingValueToX() +{ + document.getElementById("file").value = "x"; +} +</script> +<p>Use this to test the various ways you can clear an input type=file element.</p> +<form id="form"> +<p>Choose a file here: <input type="file" id="file"></input></p> +<p>Then press one of these buttons, that should clear the file: +<input type="button" value="clear with reset()" onclick="clearWithReset()"> +<input type="button" value="clear by setting value to ''" onclick="clearBySettingValue()"></p> +<p>Or press this button that should clear the file, but won't, due to <a href="http://bugs.webkit.org/show_bug.cgi?id=13448">bug 13448</a>: <input type="button" value="clear by setting value to null" onclick="clearBySettingValueToNull()"></p> +<p>Or press this button to verify we can't set to a non-empty value: <input type="button" value="clear by setting value to 'x'" onclick="clearBySettingValueToX()"></p> +</form> diff --git a/WebCore/manual-tests/close-on-closedWindow.html b/WebCore/manual-tests/close-on-closedWindow.html new file mode 100644 index 0000000..9e30715 --- /dev/null +++ b/WebCore/manual-tests/close-on-closedWindow.html @@ -0,0 +1,39 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4094363">rdar://problem/4094363</a> Can't re-open a window at capripalace.com website because "close" fails on already-closed window</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +<ol> + <li>Click the link below </li> + <li>Close the window that opens </li> + <li>Click the link again </li> +</ol> +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +If the bug is fixed, a window WILL OPEN after Step #3. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +If the bug is not fixed, a window WILL NOT OPEN after Step #3. +</p> + +<script language="JavaScript"> +win = null; +function win_open() { + + if (win != null) { + win.close(); + } + win = window.open('about:blank'); +} +</script> + + <a href="javascript:win_open();">Click this link</a> + +</body> +</html> diff --git a/WebCore/manual-tests/containing-block-position-change.html b/WebCore/manual-tests/containing-block-position-change.html new file mode 100644 index 0000000..adc2238 --- /dev/null +++ b/WebCore/manual-tests/containing-block-position-change.html @@ -0,0 +1,35 @@ +<html> +<head> + <title></title> + <style type="text/css"> + #t { position: absolute; width: 100px; height: 100px; background: green; left: -120px; } + </style> + <script type="text/javascript"> + function test() + { + var container = document.getElementById("rel"); + var target = document.getElementById("t"); + document.body.offsetTop; // force layout + container.style.position = "relative"; + document.body.offsetTop; // force layout + target.style.left = "0"; + } + </script> +</head> +<body onload="test()"> + <p> + This is a test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=9121">http://bugs.webkit.org/show_bug.cgi?id=9121</a> + REGRESSION: [Incremental Repaint] DHTML movement test failures</i>. + </p> + <p> + Do not resize the window. If you did, reload the test. + </p> + <p> + There should be a green square below, aligned with the left margin of the page. + </p> + <hr> + <div id="rel" style="position: static;"> + <span id="t"></span> + </div> +</body> +</html> diff --git a/WebCore/manual-tests/contenteditable-link.html b/WebCore/manual-tests/contenteditable-link.html new file mode 100644 index 0000000..9923aa9 --- /dev/null +++ b/WebCore/manual-tests/contenteditable-link.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML> +<HEAD> +<TITLE> Webkit bugzilla repro movie: #7156 </TITLE> +<META NAME="Author" CONTENT="Aldo Hoeben"> +<style type="text/css"> +#editable { + width: 40em; + height: 10em; + border: 1px solid black; +} +</STYLE> +</HEAD> + +<BODY> +<P>Repro movie for bug <a href="http://bugs.webkit.org/show_bug.cgi?id=7156">#7156</a></P> + +<div>The behaviour of editable links is controlled by the user default WebKitEditableLinkBehavior. This can be set via a private WebPreference. If the preference is OnlyLiveWithShiftKey, then the link will only be active when the shift key is pressed (WinIE/Firefox behaviour). If the preference is WebKitEditableLinkAlwaysLive or WebKitEditableLinkDefaultBehavior, then the link is always active (Safari 2.0 behaviour). Finally, if the preference is WebKitEditableLinkLiveWhenNotFocused, the link will only be live if the selection before clicking on the link is not in the same editable block as the link.</div> + +<div>Also, when a link is 'live' it can be dragged as a link, and when the link isn't 'live', dragging a link just performs a normal text selection. +</div> + +<div id="editable" contentEditable="true"> + <p>Test content</p> + <p><a href="about:blank">Test link</a></p> +</div> + +</BODY> +</HTML> diff --git a/WebCore/manual-tests/context-click-generated-content.html b/WebCore/manual-tests/context-click-generated-content.html new file mode 100644 index 0000000..3fcaf6d --- /dev/null +++ b/WebCore/manual-tests/context-click-generated-content.html @@ -0,0 +1,21 @@ +<style type="text/css"> +html:before, html:after { + content: ""; + width: 50px; + height: 50px; + position: fixed; +} +html:before { + border: solid red 5px; +} +html:after { + border: solid green 5px; + top: 60px; +} +</style> + +<p> +Test of crash when context-clicking on generated content. +Do a control-click or a right-click in one of these two +boxes, and make sure you don't see a crash. +</p> diff --git a/WebCore/manual-tests/context-click-unfocused-frame.html b/WebCore/manual-tests/context-click-unfocused-frame.html new file mode 100644 index 0000000..3e94e85 --- /dev/null +++ b/WebCore/manual-tests/context-click-unfocused-frame.html @@ -0,0 +1,17 @@ +<frameset cols="*"> + <frame src="data:text/html, + <script> + function contextMenu() + { + document.getElementById('result').appendChild(document.createTextNode('PASS')); + } + </script> + <body onmousedown='return false;' oncontextmenu='contextMenu(); return false;'> + <p> + Control-click (Mac) or right-click (Windows) below. The word + %26ldquo;PASS%26rdquo; should appear. A contextual menu should not open. + </p> + <p id='result'></p> + </body> + "> +</frameset> diff --git a/WebCore/manual-tests/css3-cursor-fallback-quirks.html b/WebCore/manual-tests/css3-cursor-fallback-quirks.html new file mode 100644 index 0000000..5cb7754 --- /dev/null +++ b/WebCore/manual-tests/css3-cursor-fallback-quirks.html @@ -0,0 +1,58 @@ +<html> +<head><title>Quirks custom cursor tests</title></head> +<body> +<p><a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug .991</a>: REGRESSION: missing or broken CSS custom cursors are displayed as a missing image icon.</p> +<p>Move the cursor over the blue box - it should not turn into a missing image icon, and should turn into an I-beam over text.</p> + +<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png), auto;"><span style="cursor:url(nonexistent.png), auto;">some text</span></div> +<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png);"></div> + +<hr> +<p><a href="http://bugs.webkit.org/show_bug.cgi?id=6001">Bug 6001</a>: WebKit does not handle fallback custom cursors</p> +<p><a href="http://bugs.webkit.org/show_bug.cgi?id=9013">Bug 9013</a>: Let correct CSS custom cursor declarations parse</p> +<p>In each of the blue boxes below, the cursor should become a help cursor (question mark).</p> +<table><tr> + <td><div style="width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;"></div></td> <!-- Valid, no fallback needed --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff);'></div></td> <!-- Invalid, but allowed by WinIE --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), help;'></div></td> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url(custom-cursors.html), url(unknown-scheme:custom-cursors.html), url(resources/helpCursor.tiff), text;'></div></td> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url("resources/helpCursor.tiff"), text;'></div></td> +</tr> +</table> +<p>In each of the blue boxes below, the cursor should remain the default cursor, since all cursor definitions are invalid in quirks mode.</p> +<table><tr> +<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 1 text;'></div></td> <!-- CSS3 hot spot - invalid, should have comma after hotspot coords --> +</tr> +</table> +<p>In each of the blue boxes below, the cursor should show the text cursor, since all hotspot definitions are ignored in quirks mode.</p> +<table><tr> +<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1, text;'></div></td> <!-- CSS3 hot spot - ignored in IE --> +<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2, text;'></div></td> <!-- CSS3 hot spot - ignored in IE --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2 3, text;'></div></td> <!-- CSS3 hot spot - ignored in IE --> +</tr> +</table> + +<p></p> +<p><span style='background-color:gray; cursor:url(nonexistent.png), url("resources/helpCursor.tiff");'>Should show an I-beam cursor.</span></p> <!-- An invalid declaration, even by WinIE standards --> +<p>The following testcases test inheritance of the cursor property. The first one should have the help cursor for both divs (normal inheritance). The second one should have help cursor for big div, text cursor for small div (inner div has cursor property, should not inherit). The next has invalid css syntax in the inner div, so it should inherit from the parent. The last two testcases have correct syntax and there is no inheritance in this case.</p> +<table> +<tr><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:text"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:foobar"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(resources/helpCursor.tiff) 1 2 3, text"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(nonexistant.png), text"></div></div> +</td></tr> +</table> +<p>In each of the blue boxes below, the hotspot is out-of-range. In quirks mode we do not support hotspots at all, so we show the fallback cursor(text).</p> +<table><tr> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) -1 -1, text;'></div></td> <!-- CSS3 hot spot out-of-range --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 100 100, text;'></div></td> <!-- CSS3 hot spot out-of-range --> +</tr> +</table> +</body> +</html> diff --git a/WebCore/manual-tests/css3-cursor-fallback-strict.html b/WebCore/manual-tests/css3-cursor-fallback-strict.html new file mode 100644 index 0000000..06624c4 --- /dev/null +++ b/WebCore/manual-tests/css3-cursor-fallback-strict.html @@ -0,0 +1,56 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head><title>Strict custom cursor tests</title></head> +<body> +<p><a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug .991</a>: REGRESSION: missing or broken CSS custom cursors are displayed as a missing image icon.</p> +<p>Move the cursor over the blue box - it should not turn into a missing image icon, and should turn into an I-beam over text.</p> + +<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png), auto;"><span style="cursor:url(nonexistent.png), auto;">some text</span></div> +<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png);"></div> + +<hr> +<p><a href="http://bugs.webkit.org/show_bug.cgi?id=6001">Bug 6001</a>: WebKit does not handle fallback custom cursors</p> +<p><a href="http://bugs.webkit.org/show_bug.cgi?id=9013">Bug 9013</a>: Let correct CSS custom cursor declarations parse</p> +<p>In each of the blue boxes below, the cursor should become a help cursor (question mark).</p> +<table><tr> + <td><div style="width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;"></div></td> <!-- Valid, no fallback needed --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), help;'></div></td> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url(custom-cursors.html), url(unknown-scheme:custom-cursors.html), url(resources/helpCursor.tiff), text;'></div></td> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url("resources/helpCursor.tiff"), text;'></div></td> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 1, text;'></div></td> <!-- CSS3 hot spot - valid, no fallback needed --> +</tr> +</table> +<p>In each of the blue boxes below, the cursor should remain the default cursor, since all cursor definitions are invalid in strict mode.</p> +<table><tr> +<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 1 text;'></div></td> <!-- CSS3 hot spot - invalid, should have comma after hotspot coords --> +<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1, text;'></div></td> <!-- CSS3 hot spot - invalid, should have two hotspot coords --> +<td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 1 2 3, text;'></div></td> <!-- CSS3 hot spot - invalid, should have two hotspot coords --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff);'></div></td> <!-- Invalid --> +</tr> +</table> + +<p></p> +<p><span style='background-color:gray; cursor:url(nonexistent.png), url("resources/helpCursor.tiff");'>Should show an I-beam cursor.</span></p> <!-- An invalid declaration, even by WinIE standards --> +<p>The following testcases test inheritance of the cursor property. The first one should have the help cursor for both divs (normal inheritance). The second one should have help cursor for big div, text cursor for small div (inner div has cursor property, should not inherit). The next two have invalid css syntax in the inner div, so they should inherit from parent. The rightmost testcase has a nonexistant url, but the syntax is correct, and there is no inheritance in this case.</p> +<table> +<tr><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:text"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:foobar"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(resources/helpCursor.tiff) 1 2 3, text"></div></div> +</td><td> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), text;'><div style="width:50px;height:50px;background-color:gray;cursor:url(nonexistant.png), text"></div></div> +</td></tr> +</table> +<p>In each of the blue boxes below, the hotspot is out-of-range. For now this means a failure to show the custom cursor(lower level problem?).</p> +<table><tr> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) -1 -1, help;'></div></td> <!-- CSS3 hot spot out-of-range --> + <td><div style='width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff) 100 100, help;'></div></td> <!-- CSS3 hot spot out-of-range --> +</tr> +</table> +</body> +</html> diff --git a/WebCore/manual-tests/cursor.html b/WebCore/manual-tests/cursor.html new file mode 100644 index 0000000..f4e0bc4 --- /dev/null +++ b/WebCore/manual-tests/cursor.html @@ -0,0 +1,34 @@ +<div>Mouse over the grey blocks to change the cursor.</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: auto">auto</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: default">default</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: hand">hand</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: pointer">pointer</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: text">text</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: help">help</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: crosshair">crosshair</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: move">move</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: w-resize">w</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: e-resize">e</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: n-resize">n</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: s-resize">s</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: nw-resize">nw</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: ne-resize">ne</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: sw-resize">sw</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: se-resize">se</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: ns-resize">ns</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: ew-resize">ew</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: nwse-resize">nwse</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: nesw-resize">nesw</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: col-resize">col</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: row-resize">row</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: all-scroll">allscroll</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: vertical-text">verticaltext</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: context-menu">contextmenu</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: no-drop">nodrop</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: not-allowed">notallowed</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: progress">progress</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: wait">wait</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: alias">alias</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: cell">cell</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: copy">copy</div> +<div style="width: 20px; height: 20px; margin: 10px; background: #ddd; cursor: none">none</div> diff --git a/WebCore/manual-tests/cursorfallback.xml b/WebCore/manual-tests/cursorfallback.xml new file mode 100644 index 0000000..a4fdf2f --- /dev/null +++ b/WebCore/manual-tests/cursorfallback.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>Strict mode + SVG cursor fallback test</title> +</head> +<body> +<p>Test svg cursor fallback, should show help cursor:</p> +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="300"> +<defs> + <cursor id="help" xlink:href="resources/helpcursor.tiff" x="10" y="11"/> +</defs> +<g cursor="url(nonexistent.png), url(custom-cursors.html), url(unknown-scheme:custom-cursors.html), url(#nonexistant), url(#help), text"> + <rect x="0" y="0" width="50" height="50" fill="blue" /> +</g> +<text y="62">Test svg cursor fallback with hotspot, should show help cursor:</text> +<g cursor="url(#help) 1 1, text"> + <rect x="0" y="70" width="50" height="50" fill="red" /> +</g> +<text y="132">Test svg cursor fallback with illegal hotspot, should show default cursor:</text> +<g cursor="url(#help) 1, text"> + <rect x="0" y="140" width="50" height="50" fill="red" /> +</g> +<text y="202">Test svg cursor fallback with illegal hotspot, should show default cursor:</text> +<g cursor="url(#help) 1 2 3, text"> + <rect x="0" y="210" width="50" height="50" fill="red" /> +</g> +</svg> +<p>Testing cursor fallback in strict mode, should show help cursor:</p> +<div style='width:100px;height:100px;background-color:lightblue; cursor:url(nonexistent.png), url("resources/helpcursor.tiff"), text;'></div> +</body> +</html> diff --git a/WebCore/manual-tests/custom-cursors.html b/WebCore/manual-tests/custom-cursors.html new file mode 100644 index 0000000..0620c47 --- /dev/null +++ b/WebCore/manual-tests/custom-cursors.html @@ -0,0 +1,10 @@ +<a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug 8991</a>: REGRESSION: missing or broken CSS custom cursors are displayed as a missing image icon.<p> +Move the cursor over the blue box - it should not turn into a missing image icon, and should turn into an I-beam over text. + +<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png), auto;"><span style="cursor:url(nonexistent.png), auto;">some text</span></div> +<div style="width:100px;height:50px;background-color:lightblue; cursor:url(nonexistent.png);"></div> + +<hr> +<a href="http://bugs.webkit.org/show_bug.cgi?id=8991">Bug 6001</a>: WebKit does not handle fallback custom cursors<p> +Move the cursor over the blue box - it should become a help cursor (question mark). +<div style="width:100px;height:100px;background-color:lightblue; cursor:url(resources/helpCursor.tiff), help;"></div> diff --git a/WebCore/manual-tests/database-threading-stress-test-2.html b/WebCore/manual-tests/database-threading-stress-test-2.html new file mode 100644 index 0000000..b99af3c --- /dev/null +++ b/WebCore/manual-tests/database-threading-stress-test-2.html @@ -0,0 +1,51 @@ +<!doctype html> +<html> +<head> +<script> +var db; + +try { + if (window.openDatabase) { + db = openDatabase("StressTest2", "1.0", "Database stress test", 200000); + if (!db) + alert("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota"); + } else + alert("Couldn't open the database. Please try with a WebKit nightly with this feature enabled"); +} catch(err) { } + +function loaded() +{ + db.transaction(function(tx) { + tx.executeSql("SELECT COUNT(*) FROM WebkitStickyNotes", [], function(result) { + loadNotes(); + }, function(tx, error) { + tx.executeSql("CREATE TABLE WebKitStickyNotes (id REAL UNIQUE, note TEXT)", [], function(result) { + tx.executeSql("INSERT INTO WebKitStickyNotes (id, note) VALUES (?, ?)", [1, 'Text'], function(result) { + tx.executeSql("INSERT INTO WebKitStickyNotes (id, note) VALUES (?, ?)", [2, 'More Text'], function(result) { + loadNotes(); + }); + }); + }); + }); + }); +} + +function loadNotes() +{ + db.transaction(function(tx) { + tx.executeSql("SELECT id, note FROM WebKitStickyNotes", [], function(tx, result) { + loadNotes(); + }, function(tx, error) { + alert('Failed to retrieve notes from database - ' + error.message); + return; + }); + }); +} + +addEventListener('load', loaded, false); +</script> +</head> +<body> +<p>This test needs to run without crashes and assertion failures for a while.<p> +</body> +</html> diff --git a/WebCore/manual-tests/database-threading-stress-test.html b/WebCore/manual-tests/database-threading-stress-test.html new file mode 100644 index 0000000..f22610c --- /dev/null +++ b/WebCore/manual-tests/database-threading-stress-test.html @@ -0,0 +1,84 @@ +<!doctype html> +<html> +<head> + +<style> +pre { padding: 5px; border: 1px solid black; } +</style> + +<script> +var db; + +try { + if (window.openDatabase) { + db = openDatabase("StressTest1", "1.0", "Database Stress Test", 200000); + if (!db) + alert("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota"); + } else + alert("Couldn't open the database."); +} catch(err) { } + +var highestId = 0; +var allData = new Array(); + +function newData() +{ + var id = ++highestId; + allData.push(id); + db.transaction(function (tx) + { + tx.executeSql("INSERT INTO FillerData (id, filler) VALUES (?, randomblob(1024))", [id]); + }); +} + +function testOpen() +{ + for (var i = 0; i < 4; i++) { + newData(); + } + + setTimeout("testClose();", 0); +} + +function testClose() +{ + db.transaction(function(tx) + { + for (var i = 0; i < allData.length; i++) + tx.executeSql("DELETE FROM FillerData WHERE id = ?", [allData[i]]); + + allData = new Array(); + }); + setTimeout("testOpen();", 0); +} + +function updateTransactionCount() +{ + document.getElementById("transactionCount").innerHTML = "Current Transaction Count: " + highestId; + setTimeout("updateTransactionCount();", 1000); +} + +function loaded() +{ + db.transaction(function(tx) { + tx.executeSql("SELECT COUNT(*) FROM FillerData", [], function(result) { }, function(tx, error) { + tx.executeSql("CREATE TABLE FillerData (id REAL UNIQUE, filler)", [], function(result) { + }); + }); + }); + + setTimeout("testOpen();", 0); + setTimeout("updateTransactionCount();", 1000); +} + +addEventListener('load', loaded, false); +</script> +</head> + +<body> +This test stresses the database threading code by constantly opening transactions to the test database at a fast rate.<br> +See radar 5729446 for more details.<br> +<pre id="transactionCount">Current Transaction Count: 0</pre> + +</body> +</html> diff --git a/WebCore/manual-tests/deleteToEndOfLine.html b/WebCore/manual-tests/deleteToEndOfLine.html new file mode 100644 index 0000000..fdbc24d --- /dev/null +++ b/WebCore/manual-tests/deleteToEndOfLine.html @@ -0,0 +1,20 @@ +<html> +<head> + +<style> +.editing { + border: 1px solid red; + padding: 12px; + font-size: 24px; +} +</style> + +<title>deleteToEndOfLine: test</title> +</head> +<body> +<p>First add the following line to your ~/Library/KeyBindings/DefaultKeyBinding.dict then relaunch Safari: "^k" = "deleteToEndOfLine:";</p> +<p>Place the cursor between the two 'o's in 'Foo' and hit ^k twice. The first should result in 'Fo\nbar' and the second should result in 'Fobar'.</p> +<div class="editing" contentEditable><div>Foo</div><div>bar</div></div> + +</body> +</html> diff --git a/WebCore/manual-tests/dictionary-scrolled-iframe.html b/WebCore/manual-tests/dictionary-scrolled-iframe.html new file mode 100644 index 0000000..d7cf23e --- /dev/null +++ b/WebCore/manual-tests/dictionary-scrolled-iframe.html @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8295">Bugzilla bug 8295</a> Dictionary pop-up panel targets the wrong word in a scrolled IFRAME</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br> +1. Click the inner frame’s down scroll arrow once.<br> +2. Move the mouse pointer +over “target”.<br> +3. Press Command-Control-D to invoke the Dictionary pop-up panel. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The Dictionary pop-up panel will appear over “target”, giving its definition. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The Dictionary pop-up panel will appear over “failure”, with the definition of failure. +</p> + +<iframe style="background: #ffd;" src="data:text/html,Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque. Quisque eu nulla non nisi molestie accumsan. Etiam tellus urna, <span style=%22color: green;%22>target</span> ac, laoreet non, suscipit sed, sapien. Phasellus vehicula, sem at posuere tel failure, augue nibh molestie nisl, nec ullamcorper lacus ante vulputate pede. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris viverra augue vitae purus. Morbi sed sem. Donec dui nisi, ultrices non, pretium quis, hendrerit non, est. Donec tellus. Donec eget dui id eros pharetra rutrum. Suspendisse sodales lectus sit amet nulla. Morbi tortor arcu, convallis blandit, elementum eu, aliquet a, tellus. +"></iframe> + +</body> +</html> diff --git a/WebCore/manual-tests/directory-drop-on-view.html b/WebCore/manual-tests/directory-drop-on-view.html new file mode 100644 index 0000000..b82cc45 --- /dev/null +++ b/WebCore/manual-tests/directory-drop-on-view.html @@ -0,0 +1,20 @@ +<html> + <head> + <title> + Manual drop test + </title> + </head> + <body> + This tests that unknown file types are handled correctly when dropped in the window + <ul> + <li> + Drag a file that WebKit doesn't recognise -- eg. a disk image, tarball, etc.<br /> + WebKit should cause a Finder window to open, with the dropped file selected. + </li> + <li> + Attempt to drop a directory onto the WebView.<br /> + The drag should not be accepted, and the drag cursor should be the standard disallowed drag cursor. + </li> + </ul> + </body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/disable-javascript-reload.html b/WebCore/manual-tests/disable-javascript-reload.html new file mode 100644 index 0000000..c7e2a91 --- /dev/null +++ b/WebCore/manual-tests/disable-javascript-reload.html @@ -0,0 +1,21 @@ +<html> +<head> +<script> +function test() +{ + document.getElementById("manualDirections").setAttribute("style","display:block;"); + document.getElementById("console").innerHTML = "FAIL - disabled javascript hasn't been applied to refreshed webpage"; +} + +</script> +</head> +<body onload="test();"> +<div id="manualDirections" style="display:none;"> +To run this test manually, disable javascript and reload the page. +<br><br> +</div> +<div id="console"> +PASS +</div> +</body +</html> diff --git a/WebCore/manual-tests/disabled-option-elements.html b/WebCore/manual-tests/disabled-option-elements.html new file mode 100644 index 0000000..4ff291f --- /dev/null +++ b/WebCore/manual-tests/disabled-option-elements.html @@ -0,0 +1,26 @@ +<body> +<p>This tests that disabled option elements shouldn't be selectable and that no elements in disabled optgroups are selectable.</p> +<form name="form"> +<select multiple="multiple"> +<option>my value 1</option> +<option value="2" disabled>you should not be able to select this</option> +<option>my value 3</option> +<optgroup label="disabled option group" disabled> + <option>this should be disabled</option> + <option>as well as this</option> +<optgroup> +</select> + +<select> +<option>my value 1</option> +<option value="2" disabled>you should not be able to select this</option> +<option>my value 3</option> +<optgroup label="disabled option group" disabled> + <option>this should be disabled</option> + <option>as well as this</option> +<optgroup> +</select> +</form> + +</body> +</html> diff --git a/WebCore/manual-tests/dom-manipulation-on-resize.html b/WebCore/manual-tests/dom-manipulation-on-resize.html new file mode 100644 index 0000000..81eaa5a --- /dev/null +++ b/WebCore/manual-tests/dom-manipulation-on-resize.html @@ -0,0 +1,28 @@ +<html> +<head><style> +body { overflow: hidden; } +</style> +<script> +window.onresize = function() { + var tbody = document.createElement("TBODY") + + var m = (document.getElementsByTagName("TABLE"))[0] + if(m.hasChildNodes()) m.removeChild(m.lastChild) + + var tr = tbody.appendChild(document.createElement("TR")) + + m.appendChild(tbody) +} +</script> +</head> +<body onload="setTimeout('window.resizeTo(500,500)', 0)"> +<table></table> +<p> +<b>BUG ID: <a href="http://bugs.webkit.org/show_bug.cgi?id=8739">Bugzilla bug 8739</a></b> +Crash in RenderTableSection::paint due to manipulating DOM on resize +</p> +<p id="success" style="background-color:palegreen; padding:3px;"> +><b>TEST PASS:</b> You got here without crashing, which means test PASS. It is normal for the +window to have resized. +</p> +</body></html> diff --git a/WebCore/manual-tests/drag-image-to-address-bar.html b/WebCore/manual-tests/drag-image-to-address-bar.html new file mode 100644 index 0000000..8a8c088 --- /dev/null +++ b/WebCore/manual-tests/drag-image-to-address-bar.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9952">Bugzilla bug 9952</a> REGRESSION: Repro crash when dragging an image from the window to the address bar</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Drag the image from below to the address bar, then click on the image. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +No crash. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Safari will crash when you drop the image onto the address bar or when you click it. +</p> + +<img src="resources/webkit-background.png"><br><iframe></iframe> + +</body> +</html> diff --git a/WebCore/manual-tests/drag-image.html b/WebCore/manual-tests/drag-image.html new file mode 100644 index 0000000..580d5e5 --- /dev/null +++ b/WebCore/manual-tests/drag-image.html @@ -0,0 +1,27 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<script> +function debug(str) { + var c = document.getElementById('console') + c.appendChild(document.createTextNode(str + '\n')); +} + +var i = new Image() +i.src ="resources/webkit-background.png"; + +function dragStartHandler() { + event.dataTransfer.setDragImage(i, 10, 10); +} + +</script> +</head> +<body onload="runTests();"> +<p>This tests that setting the drag image works. If this is successful, the drag icon when dragging the text below around should look like the image below.</p> +<img src="resources/webkit-background.png"> +<div ondragstart="dragStartHandler()" style="-khtml-user-select:none; -khtml-user-drag:element;">Try dragging me around!</div> +<pre id="console"> +</pre> +</body> +</html> diff --git a/WebCore/manual-tests/drag-move-in-search-field.html b/WebCore/manual-tests/drag-move-in-search-field.html new file mode 100644 index 0000000..4bb720a --- /dev/null +++ b/WebCore/manual-tests/drag-move-in-search-field.html @@ -0,0 +1,11 @@ +<p>Double-click the word "dolor" to select it, then drag the selection to +between "lorem" and "ipsum". There should be no assertion failure in a +debug build.</p> + +<input id="foo" type="search" value="lorem ipsum dolor"> +<script> +function test() +{ + +} +</script> diff --git a/WebCore/manual-tests/drag-out-of-background-window.html b/WebCore/manual-tests/drag-out-of-background-window.html new file mode 100644 index 0000000..05fa087 --- /dev/null +++ b/WebCore/manual-tests/drag-out-of-background-window.html @@ -0,0 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=15077">Bugzilla bug 15077</a> REGRESSION: Cannot drag selected text out of a background window</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +1. Select the first line of text in this window.<br> +2. Switch to another application.<br> +3. With this window in the background, click and hold inside the selected text, +then drag the text out of the window. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +This window will not come to the foreground when you click, and you will be able to +drag the selected text out. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +As soon as you click in the selected text, this window will come to the foreground +and you may not be able to drag the selected text. +</p> +</body> +</html> diff --git a/WebCore/manual-tests/drag_select_highlighting.html b/WebCore/manual-tests/drag_select_highlighting.html new file mode 100644 index 0000000..d6f4057 --- /dev/null +++ b/WebCore/manual-tests/drag_select_highlighting.html @@ -0,0 +1,14 @@ +<html> +<head> +<title>Highlight leaves trails</title> +</head> +<body> +<p>Drag across the following line from right to left and all the way back.</p> +<p style="font-family:'Lucida Grande'; font-size:12px;"> +Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque. +</p> +<p>Drag across the following line from left to right and all the way back.</p> +<p style="font-family:'Lucida Grande'; font-size:12px; text-align:left; direction:rtl; unicode-bidi:bidi-override;"> +Curabitur pretium, quam quis semper malesuada, est libero feugiat libero, vel fringilla orci nibh sed neque. +</p> +</body>
\ No newline at end of file diff --git a/WebCore/manual-tests/drag_with_opacity.html b/WebCore/manual-tests/drag_with_opacity.html new file mode 100644 index 0000000..0e4b69b --- /dev/null +++ b/WebCore/manual-tests/drag_with_opacity.html @@ -0,0 +1,33 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Untitled Document</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<style type="text/css"> +<!-- +.draggable { + -khtml-user-drag: element; + -apple-dashboard-region:dashboard-region(control rectangle); +} + +.draggable:hover { + background: #cccccc; +} + +.draggable:-khtml-drag { + opacity: 0.50; +} +--> +</style> +</head> +<body> + <p>This is the test case for crashing bug <rdar://problem/4234658><p> + <table width="100%" border="1" cellspacing="0" cellpadding="0"> + <tr> + <td> + <div class="draggable">Click to right of this text and drag</div> + </td> + </tr> + </table> +</body> +</html> diff --git a/WebCore/manual-tests/drop-text-acquires-style.html b/WebCore/manual-tests/drop-text-acquires-style.html new file mode 100644 index 0000000..602c760 --- /dev/null +++ b/WebCore/manual-tests/drop-text-acquires-style.html @@ -0,0 +1,11 @@ +<html> +<head> +<title>Dragging plain text into a styled region</title> +</head> +<body> +<p>This test ensures the plain text dropped into a styled text region will acquire the appropriate style</p> +<p>To run this test, drag the text in the input element below into the bold text region. The dropped text should be bold.</p> +<input id="dragme" value="Drag this text" ><br /> +<b contenteditable="true" id="target">Drag the text from the above input element into this bold text</b> +</body> +</html> diff --git a/WebCore/manual-tests/empty-link-target.html b/WebCore/manual-tests/empty-link-target.html new file mode 100644 index 0000000..06ccd0c --- /dev/null +++ b/WebCore/manual-tests/empty-link-target.html @@ -0,0 +1,28 @@ +<html> +<head><script> +function print(message) { + var paragraph = document.createElement("p"); + paragraph.appendChild(document.createTextNode(message)); + document.getElementById("console").appendChild(paragraph); +} + +function test() +{ + if (window.layoutTestController) + layoutTestController.dumpAsText(); + + var e = document.createEvent("MouseEvents"); + e.initEvent("click", true, false); + document.getElementById('a').dispatchEvent(e); + print("PASS"); +} +</script></head> + +<body onload="test()"> +<p>Bug: <a href="http://bugs.webkit.org/show_bug.cgi?id=6382">REGRESSION: Repro crash when clicking link with target="_blank"</a></p> +<p>If the test passes, you will see a PASS message below. (It's normal for a new window to open.)</p> +<hr> +<a id="a" href="resources/popup200x200.html" target="_blank"></a> +<div id='console'/> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/empty-script-crash.html b/WebCore/manual-tests/empty-script-crash.html new file mode 100644 index 0000000..5605ff9 --- /dev/null +++ b/WebCore/manual-tests/empty-script-crash.html @@ -0,0 +1,6 @@ +This document used to crash when loaded as the very first document in
+a Safari instance to use JavaScript. It can't be a meaningful layout
+test since it would get loaded after many other documents that ran
+scripts.
+<script>
+</script>
diff --git a/WebCore/manual-tests/empty-title-popup.html b/WebCore/manual-tests/empty-title-popup.html new file mode 100644 index 0000000..cb6ea8c --- /dev/null +++ b/WebCore/manual-tests/empty-title-popup.html @@ -0,0 +1,3 @@ +<p>This demonstrates <a href="http://bugs.webkit.org/show_bug.cgi?id=9833">bug 9833</a>.</p> +<p>Select the second item on the pop up. +<select><option></option><option>Pick me!</option></select></p> diff --git a/WebCore/manual-tests/first-line-style-crash.html b/WebCore/manual-tests/first-line-style-crash.html new file mode 100644 index 0000000..4758b1e --- /dev/null +++ b/WebCore/manual-tests/first-line-style-crash.html @@ -0,0 +1,23 @@ +<html> +<head> +<link rel="stylesheet" type="text/css" href="resources/aFileThatProbablyDoesNotExist.css"> +<style type="text/css"> + div:first-line { color: green; } +</style> +</head> +<body> + <p> + Regression test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=8760">http://bugs.webkit.org/show_bug.cgi?id=8760</a> + crash (hang?) on subtlegradient.com article page</i>. + </p> + <p> + No crash means test PASS. + </p> + <hr> + <div> + <span id="t">Lorem ipsum</span> + </div> + <script type="text/javascript"> + document.getElementById("t").offsetTop; + </script> +</body> diff --git a/WebCore/manual-tests/flash-unload-tab.html b/WebCore/manual-tests/flash-unload-tab.html new file mode 100644 index 0000000..0ba1cf1 --- /dev/null +++ b/WebCore/manual-tests/flash-unload-tab.html @@ -0,0 +1,39 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body onload="start()" onunload="test()"> + <p> + <p><b>Bug 14207 : </b> + <a href="http://bugs.webkit.org/show_bug.cgi?id=14207">REGRESSION: Crash after closing a tab with Google Maps Street View</a></p> + + <p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> + Open a new tab then close this tab. + </p> + + <p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> + Expected : The tab is closed. + </p> + + <p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> + If the test FAILS : The webkit crashes. + </p> + </p> + <embed id="target" src="resources/spinbox.swf"> + <script> + var embed; + + function start() + { + embed = document.getElementById("target"); + embed.bar; + } + + function test() + { + embed.foo; + } + </script> +</body> +</html> diff --git a/WebCore/manual-tests/flipped-text-rendering.html b/WebCore/manual-tests/flipped-text-rendering.html new file mode 100644 index 0000000..197e4b3 --- /dev/null +++ b/WebCore/manual-tests/flipped-text-rendering.html @@ -0,0 +1,14 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN"> +<html> +<head> +<title>Flipped text in link drag image</title> +</head> +<body> +<p>Try dragging each of the following links. In each case, the link text should appear correctly (not flipped) in the +drag image, above the URL.</p> +<p>There are three separate code paths, due to the canUseFastRenderer and shouldUseATSU functions.</p> +<p>WebKit renderer, using CG: <a href="/">Drag me to your leader</a></p> +<p>WebKit renderer, using ATSUI because of the अ: <a href="/">Drag me अ to your leader</a></p> +<p>Cocoa, because of the א: <a href="/">Drag me א to your leader</a></p> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/focus-select-when-clicked.html b/WebCore/manual-tests/focus-select-when-clicked.html new file mode 100644 index 0000000..3f1e798 --- /dev/null +++ b/WebCore/manual-tests/focus-select-when-clicked.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4011544">4011544</a> selecting an item from a select menu with the mouse doesn't place the focus on the menu</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +1. Click on the pop-up menu below titled "Click Here", and select OPTION 1 from the list. <br> +2. Verify that a blue focus ring is drawn around the pop-up menu. <br> +3. Press tab, and verify that focus moves to TEXT AREA 2 <br></p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Blue focus ring is drawn around the pop-up menu when clicked, then focus moves to TEXT AREA 2 after pressing tab.</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +No blue focus ring drawn around the pop-up menu when clicked, or after selecting OPTION 1 from the list. After selecting option 1 and pressing tab, focus will land on the first focusable element on the page. +</p> + +<input type="text" value="TEXT AREA 1"> +<select> + <option>Click Here</option> + <option>OPTION 1</option> +</select> +<input type="text" value="TEXT AREA 2"> + +</body> +</html> diff --git a/WebCore/manual-tests/form-control-madness.html b/WebCore/manual-tests/form-control-madness.html new file mode 100644 index 0000000..30dac2b --- /dev/null +++ b/WebCore/manual-tests/form-control-madness.html @@ -0,0 +1,46 @@ +<input name="b" type="button" onclick="location='back.html'" value="Click Here"> + +<br> +Only the radio buttons between X's should be checked after clicking the button and going back +<form> +<input type="radio" name="old_version" value="12"> +<input type="radio" name="version" value="12"> + +X<input type="radio" name="old_version" value="11" checked="checked"> X +<input type="radio" name="version" value="11"> + +<input type="radio" name="old_version" value="10"> +X<input type="radio" name="version" value="10" checked="checked">X + +<input type="radio" name="old_version" value="9"> +<input type="radio" name="version" value="9"> + +<input type="radio" name="old_version" value="8"> +<input type="radio" name="version" value="8"> + +<input type="radio" name="old_version" value="7"> +<input type="radio" name="version" value="7"> + +<input type="radio" name="old_version" value="6"> +<input type="radio" name="version" value="6"> + +<input type="radio" name="old_version" value="5"> +<input type="radio" name="version" value="5"> + +<input type="radio" name="old_version" value="4"> +<input type="radio" name="version" value="4"> + +<input type="radio" name="old_version" value="3"> +<input type="radio" name="version" value="3"> + +<input type="radio" name="old_version" value="2"> +<input type="radio" name="version" value="2"> + +<input type="radio" name="old_version" value="1"> +<input type="radio" name="version" value="1"> + +<input type="radio" name="old_version" value="0"> +<input type="radio" name="version" value="0"> +</form> +<br> +<iframe></iframe>
\ No newline at end of file diff --git a/WebCore/manual-tests/form-element-spelling.html b/WebCore/manual-tests/form-element-spelling.html new file mode 100644 index 0000000..805dddc --- /dev/null +++ b/WebCore/manual-tests/form-element-spelling.html @@ -0,0 +1,6 @@ +<html> +<body> + <textarea>Helo everibody</textarea><input type="text" value="Helo everibody"> + <p>Test that it's possible to do spell-checking in the two elements above. Choose "Check Spelling" or "Spelling..." from the contextual menu and verify that both work.</p> +</body> +</html> diff --git a/WebCore/manual-tests/form-value-restore.html b/WebCore/manual-tests/form-value-restore.html new file mode 100644 index 0000000..7b065af --- /dev/null +++ b/WebCore/manual-tests/form-value-restore.html @@ -0,0 +1,9 @@ +<p>This tests if form values get their values properly restored when you go back. +To test, use the Debug menu to turn off "Use Back/Forward Cache". +Then, type "a" into the first field below, type "b" into the second field, and select both "c" and "d" in the list box. +Then, click on <a href="about:blank">this link</a> to go to a blank page. +Then go back. +Check that the form elements have the values that selected.</p> +<div><input type="text" name="text-input"></div> +<div><textarea></textarea></div> +<div><select multiple size=5><option>a</option><option>b</option><option>c</option><option>d</option><option>e</option><option>f</option><option>g</option></select></div> diff --git a/WebCore/manual-tests/frame-hover.html b/WebCore/manual-tests/frame-hover.html new file mode 100644 index 0000000..c461295 --- /dev/null +++ b/WebCore/manual-tests/frame-hover.html @@ -0,0 +1,5 @@ +<body> +<p style="height: 50px;">Move the mouse pointer into the yellow box, then directly into the green box, then out of both boxes. No red or cyan should remain, only yellow and green.</p> +<iframe src="resources/hover-subframe-1.html" frameborder="0" height="300" scrolling="no" width="200"></iframe><iframe src="resources/hover-subframe-2.html" frameborder="0" height="300" scrolling="no" width="200"></iframe> +</body> +</html> diff --git a/WebCore/manual-tests/goBack-blank-tab-page.html b/WebCore/manual-tests/goBack-blank-tab-page.html new file mode 100644 index 0000000..7a6157e --- /dev/null +++ b/WebCore/manual-tests/goBack-blank-tab-page.html @@ -0,0 +1,19 @@ +<html> +<body> +<a href="resources/before-go-back.html" target="_blank"> +Link to open in a tab</a> +<br> +<br> +<u>Manual test :</u> +<br> +You need to open the above link in a new tab. In the opened page, just click on the link : if the webkit doesn't crash, the test has succeed. +<br> +<u>Details :</u> +<br> +This test checks if you can go back to a _blank-target previously tab-opened page. +<br> +If the webkit doesn't meet an assertion error : this test is Successfull. +<br> +When you click on the above link, one page (with _blank target) is loaded and this page will open a link and go back. +</body> +</html> diff --git a/WebCore/manual-tests/inline-input-marking.html b/WebCore/manual-tests/inline-input-marking.html new file mode 100644 index 0000000..4c62cd4 --- /dev/null +++ b/WebCore/manual-tests/inline-input-marking.html @@ -0,0 +1,38 @@ +<html> +<head> + +<style> +.editing { + border: 2px solid red; + padding: 12px; + font-size: 24px; +} +.inputtest { + font-family:'Hiragino Kaku Gothic Std'; + border: 2px solid green; +} +</style> + +<title>Inline Input Method Marking</title> +</head> +<body> +<p>This tests that the underlining of the inline input hole does not obscure the glyphs.</p> + +<ol> +<li>Switch to Hirigana input method</li> +<li>Type characters into each of the green blocks below</li> +<li>As you do so, check that glyphs in the inline hole are clearly readable</li> +</ol> +<div contenteditable id="root" class="editing" style="width:400px;"> +9px Hiragino Kaku Gothic Std<div class="inputtest" style="font-size: 9px;"><br></div> +<br>12px Hiragino Kaku Gothic Std<div class="inputtest" style="font-size: 12px;"><br></div> +<br>24px Hiragino Kaku Gothic Std<div class="inputtest" style="font-size: 24px;"><br></div> +</div> + +<script> +runEditingTest(); +</script> + +</body> +</html> + diff --git a/WebCore/manual-tests/input-empty-on-focus.html b/WebCore/manual-tests/input-empty-on-focus.html new file mode 100644 index 0000000..7cfc3ff --- /dev/null +++ b/WebCore/manual-tests/input-empty-on-focus.html @@ -0,0 +1,6 @@ +<div><img width="200" height="200" src="resources/200x200.png"></div> +<div><input onfocus="this.value = ''" value="drop image here go boom"></div> +<p>Drag the image above down into the text field. +If the test succeeds there will be no crash and you'll end up with an empty text field with a blinking caret. +It's arguably a bug that the text field accepts an image at all, so some day we might fix that and make this +test obsolete. Maybe we can find some other way to test the same code path.</p> diff --git a/WebCore/manual-tests/input-type-file-autocomplete-frame-1.html b/WebCore/manual-tests/input-type-file-autocomplete-frame-1.html new file mode 100644 index 0000000..6abc90c --- /dev/null +++ b/WebCore/manual-tests/input-type-file-autocomplete-frame-1.html @@ -0,0 +1,23 @@ +<html> +<body> +<p><b>BUG ID:</b> <a href="<rdar://problem/4532113> REGRESSION (NativeTextField): Crash occurs after modifying field then reloading page -[FormDelegate frameLayoutHasChanged:]">4532113</a> REGRESSION (NativeTextField): Crash occurs after modifying field then reloading page -[FormDelegate frameLayoutHasChanged:]</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +<ol> +<li> enable Safari's auto fill +<li> type something in the input field, and press enter to register it with autofill +<li> clear the field and type part of the same string you did previously +<li> without ever removing focus from the input field, select the suggestion autofill suggests +<li> refresh the page or go to a bookmark (don't remove focus from the input field) +</ol> +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +no crash. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Crash in -[FormDelegate frameLayoutHasChanged:] +</p> +</body> +</html> diff --git a/WebCore/manual-tests/input-type-file-autocomplete-frame-2.html b/WebCore/manual-tests/input-type-file-autocomplete-frame-2.html new file mode 100644 index 0000000..d3cd114 --- /dev/null +++ b/WebCore/manual-tests/input-type-file-autocomplete-frame-2.html @@ -0,0 +1,7 @@ +<html> +<body> +<table><tr><td> +<form><input size=55 value="type something in here"></form> +</td></tr></table> +</body> +</html> diff --git a/WebCore/manual-tests/input-type-file-autocomplete-refresh.html b/WebCore/manual-tests/input-type-file-autocomplete-refresh.html new file mode 100644 index 0000000..eea8dab --- /dev/null +++ b/WebCore/manual-tests/input-type-file-autocomplete-refresh.html @@ -0,0 +1,10 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> + +<frameset rows="50%,50%"> + <frame src="./input-type-file-autocomplete-frame-1.html"> + <frame src="./input-type-file-autocomplete-frame-2.html"> +</frameset> + +</html> diff --git a/WebCore/manual-tests/input-type-file-drag-drop.html b/WebCore/manual-tests/input-type-file-drag-drop.html new file mode 100644 index 0000000..eccc6e8 --- /dev/null +++ b/WebCore/manual-tests/input-type-file-drag-drop.html @@ -0,0 +1,18 @@ +<body> +<div style="background-color: black;" width="300"> +<input type=file> +</div> +<div style="background-color: blue;" width="300"> +<input type=file> +</div> +<input type=file> +<p> +<input type="file"> should be able to support drag and drop of files. Use the above controls to demonstrate: +</p> +<ol> +<li> Accepting normal file drags (indicating accpetance during hover). +<li> Rejecting diretory and non-normal file drags. +<li> Dropping a symlink'd file should accpect/show/upload the target, not the symlink itself. +<li> Rejecting of file-promise drags (this is probably a bug, not a feature). +</ol> +</body>
\ No newline at end of file diff --git a/WebCore/manual-tests/input-type-text-unconfirmed-inline-input.html b/WebCore/manual-tests/input-type-text-unconfirmed-inline-input.html new file mode 100644 index 0000000..857a63e --- /dev/null +++ b/WebCore/manual-tests/input-type-text-unconfirmed-inline-input.html @@ -0,0 +1,20 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head><title>Unconfirmed inline input in <input type=text></title></head> + +<script> + +function dump(s) { + if (s == "") + alert("Field appears empty"); + else + alert("Field contents: " + s); +} + +</script> + +<p>Enter some text using inline input (e.g. Kotoeri Hiragana) and click the button without closing the input area.</p> +<p><input type=text id=input value="" size=57><input type=button value="test" onClick="dump(document.getElementById('input').value)"></div> +<p>The alert should show the inline input text, but without the bug fix it shows empty text.</p> + +</body></html> diff --git a/WebCore/manual-tests/inspector-document-methods-override.html b/WebCore/manual-tests/inspector-document-methods-override.html new file mode 100644 index 0000000..ca53f25 --- /dev/null +++ b/WebCore/manual-tests/inspector-document-methods-override.html @@ -0,0 +1,14 @@ +<p>This page test that using the Web Inspector's search field on a page that +overrides <tt>Document.evaluate</tt> or <tt>Document.querySelectorAll</tt> +still works.<p> + +<p>To test, right-click on this page and select “Inspect Element”, +then type “p” in the search field (without the quotes). If the +search results list appears, then you have passed the test. If one or more +alert dialogs appear, you have failed the test.</p> + +<script> + function fail() { alert('FAIL') } + document.querySelectorAll = fail; + document.evaluate = fail; +</script> diff --git a/WebCore/manual-tests/invalid-mouse-event.html b/WebCore/manual-tests/invalid-mouse-event.html new file mode 100644 index 0000000..e76bbe5 --- /dev/null +++ b/WebCore/manual-tests/invalid-mouse-event.html @@ -0,0 +1,23 @@ +<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=8272">bug 8272</a>: +Use of window.open & window.close can cause crash.</p> +<ol> + <li>(Get a dual processor Mac.)</li> + <li>Disable popup blocking in Safari.</li> + <li>Click the Start button.</li> + <li>As the test runs, move the mouse around.</li> + <li>If Safari doesn't crash in a while, interrupt the test by pressing Cmd+W.</li> +</ol> + +<button onclick="window.open('invalid-mouse-event.html?2', '', '');">Start</button> + +<script> + +if (location.search) { + if (location.search == "?1") { + window.opener.location = window.opener.location; + window.close(); + } else { + window.open('invalid-mouse-event.html?1', '', ''); + } +} +</script> diff --git a/WebCore/manual-tests/item-background.html b/WebCore/manual-tests/item-background.html new file mode 100644 index 0000000..d9d3b07 --- /dev/null +++ b/WebCore/manual-tests/item-background.html @@ -0,0 +1,155 @@ +<style> + div.container { float: left; background-color: #eee; padding: 4px; margin: 4px; } + div.swatch { width: 14px; height: 14px; background-color: white; position: relative; } + div.swatch div { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + select { display: block; margin-left: 14px; margin-bottom: 1px; } + + div.container.white > select, + div.container.white > div.swatch > div + { background-color: white; } + + div.container.black > select, + div.container.black > div.swatch > div + { background-color: black; } + + div.container.initial > select, + div.container.initial > div.swatch > div + { background-color: initial; } + + div.container.semiblue > select, + div.container.semiblue > div.swatch > div + { background-color: rgba(0, 0, 255, 0.5); } + + .solid { background-color: red; } + .reddish { background-color: rgba(255, 0, 0, 0.75); } + .semigreen { background-color: rgba(0, 255, 0, 0.5); } + .darken { background-color: rgba(0, 0, 0, 0.67); } +</style> +<p> + <strong>This test is for Windows only.</strong> + When you pull down each menu, the items’ background colors should match up with the swatches on the left (except for the hovered item). +</p> +<div class="container white"> + Solid white menu: + <select> + <option>Default (transparent) option</option> + <option class="solid">Solid red option</option> + <option class="reddish">25% transparent red option</option> + <option class="semigreen">50% transparent green option</option> + <option class="darken">33% transparent black option</option> + </select> + <div class="swatch"></div> + <div class="swatch"> + <div> + <div class="solid"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="reddish"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="semigreen"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="darken"></div> + </div> + </div> +</div> +<div class="container black"> + Solid black menu: + <select> + <option>Default (transparent) option</option> + <option class="solid">Solid red option</option> + <option class="reddish">25% transparent red option</option> + <option class="semigreen">50% transparent green option</option> + <option class="darken">33% transparent black option</option> + </select> + <div class="swatch"></div> + <div class="swatch"> + <div> + <div class="solid"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="reddish"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="semigreen"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="darken"></div> + </div> + </div> +</div> +<div class="container initial"> + Transparent menu: + <select> + <option>Default (transparent) option</option> + <option class="solid">Solid red option</option> + <option class="reddish">25% transparent red option</option> + <option class="semigreen">50% transparent green option</option> + <option class="darken">33% transparent black option</option> + </select> + <div class="swatch"></div> + <div class="swatch"> + <div> + <div class="solid"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="reddish"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="semigreen"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="darken"></div> + </div> + </div> +</div> +<div class="container semiblue"> + 50% blue menu: + <select> + <option>Default (transparent) option</option> + <option class="solid">Solid red option</option> + <option class="reddish">25% transparent red option</option> + <option class="semigreen">50% transparent green option</option> + <option class="darken">33% transparent black option</option> + </select> + <div class="swatch"></div> + <div class="swatch"> + <div> + <div class="solid"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="reddish"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="semigreen"></div> + </div> + </div> + <div class="swatch"> + <div> + <div class="darken"></div> + </div> + </div> +</div> diff --git a/WebCore/manual-tests/java-string-object-type.html b/WebCore/manual-tests/java-string-object-type.html new file mode 100644 index 0000000..ef74626 --- /dev/null +++ b/WebCore/manual-tests/java-string-object-type.html @@ -0,0 +1,24 @@ +<html> +<body onload="test();"> +<script> +function test() +{ + document.getElementById("results").innerHTML = + "<p>Type of Java String object is: " + typeof(document.getElementById('applet').getString()); +} +</script> + +<p>This test verifies that Java String objects are of the correct type when returned to JavaScript.</p> + +<p>On success, the Java String object will be of type "object".<br/> +On failure, the type will be "function".<br/> +See Radar 4212626.</p> + +<div id="results"> +</div> + +<APPLET id="applet" code="StringTypeTest.class" codebase="resources" width="0" height="0"> +</APPLET> + +</body> +</html> diff --git a/WebCore/manual-tests/keep_spelling_markers.html b/WebCore/manual-tests/keep_spelling_markers.html new file mode 100644 index 0000000..7e1d964 --- /dev/null +++ b/WebCore/manual-tests/keep_spelling_markers.html @@ -0,0 +1,24 @@ +<html><body> +<h4>Test 1 - Check for hang (was bug #4836034)</h4> +<ol> +<li>open this in Blot or Safari</li> +<li>click before the word "One" in the editable text, below</li> +<li>repeatedly type cmd-; to advance to the next misspelling</li> +<li>confirm that you can wrap back to the first misspelling without hanging</li> +</ol> +<h4>Test 2 - Check that markings are retained (was bug #4204892)</h4> +<ol> +<li>turn on Check Spelling as You Type from Edit->Spelling menu</li> +<li>click on each of the misspelled words in the line at the bottom of this page</li> +<p> (result should be that each misspelled word now has a red squiggly line below it) +<li>control-click on “foor” in that sentence</li> +<li>select a corrected spelling from the popup, e.g.“four”</li> +<li>make sure that no other misspellings lost their red squiggly underline</li> +</ol> +<hr> +<div contenteditable> +One twwo three foor five siz seven +<div></br></div> +<div>eight nine ten</div> +</div> +</body></html> diff --git a/WebCore/manual-tests/korean-input-space.html b/WebCore/manual-tests/korean-input-space.html Binary files differnew file mode 100644 index 0000000..c8ccf39 --- /dev/null +++ b/WebCore/manual-tests/korean-input-space.html diff --git a/WebCore/manual-tests/left-overflow-repaint.html b/WebCore/manual-tests/left-overflow-repaint.html new file mode 100644 index 0000000..5616c4b --- /dev/null +++ b/WebCore/manual-tests/left-overflow-repaint.html @@ -0,0 +1,61 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7916">Bugzilla bug 7916</a> Box repaint rect does not include the left overflow</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Scroll and resize the window as necessary to bring the three test cases below into view. +Press each Test button once. Do not scroll, resize, or hide the window or switch to another +tab. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +In each test, “Lorem” will move down along with “ipsum”. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +“Lorem” will stay behind as “ipsum” moves down. +</p> + +<div style="height: 120px"> + <p> + <button onclick="document.getElementById('t').style.marginTop = '2em'"> + Test 1 + </button> + Move block with left overflow + </p> + <div id="t" style="text-indent: -50px; background: silver; margin-left: 50px;"> + Lorem ipsum + </div> +</div> +<hr> +<div style="height: 120px"> + <p> + <button onclick="document.getElementById('u').style.lineHeight = '3'"> + Test 2 + </button> + </p> + Move line with left overflow + <div style="text-indent: -50px; background: silver; margin-left: 50px;"> + Lorem <span id="u">ipsum</span> + </div> +</div> +<hr> +<div style="height: 120px"> + <p> + <button onclick="document.getElementById('v').style.height = '3em'"> + Test 3 + </button> + Change height of table cell with left overflow + </p> + <table style="margin-left: 50px;"><tr> + <td id="v" style="text-indent: -50px; background: silver;"> + Lorem ipsum + </td></tr></table> +</div> + +</body> +</html> diff --git a/WebCore/manual-tests/link-cursor-auto.html b/WebCore/manual-tests/link-cursor-auto.html new file mode 100644 index 0000000..b978b4b --- /dev/null +++ b/WebCore/manual-tests/link-cursor-auto.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/5551163">5551163</a> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Move the mouse over the link below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The mouse pointer will change to an index finger. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The mouse pointer will change to a wristwatch. +</p> + +<span style="cursor: wait;"><a href="#">This is the link</a></span> + +</body> +</html> diff --git a/WebCore/manual-tests/linkjump-1.html b/WebCore/manual-tests/linkjump-1.html new file mode 100644 index 0000000..0af0fe6 --- /dev/null +++ b/WebCore/manual-tests/linkjump-1.html @@ -0,0 +1,79 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4304213">4304213</a> sometimes have to click twice to jump to top, on href=""</p> +<b>As of 01-31-2006, this bug has NOT been fixed.</b> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click through the numbered links on this page. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Page will scroll to the top after clicking link #3. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Page will scroll to the top after clicking link #3. Clicking this link twice might take you to the top of the page (but that is the bug). + +</p> + +<div><a href="#foo">1. click here</a></div> + +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. +</p> + +<div id="foo"><a href="#foo2">2. click here</a></div> + +<p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P><p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P> + + +<div id="foo2"><a href="">3. click here (page should scroll to the top)</a></div> + + +<p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem.</P> + +</body> +</html> diff --git a/WebCore/manual-tests/linkjump-2.html b/WebCore/manual-tests/linkjump-2.html new file mode 100644 index 0000000..03eee77 --- /dev/null +++ b/WebCore/manual-tests/linkjump-2.html @@ -0,0 +1,37 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG IDs:</b></p> +<a href="rdar://4233844">4233844</a> in some cases, HTML href named anchors don't scroll to the right place<br> +<a href="rdar://problem/4246096">4246096</a> REGRESSION links to named anchors don't scroll to the right place (4825) + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Manually resize window to about 800 x 600. Click on the links below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Page will scroll as indicated. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Page will NOT scroll, or will not scroll to the position indicated. +</p> + +<a href="#0">1. Click here. Page should scroll to TARGET TEXT.</a> + +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. Donec pellentesque luctus nisl. Maecenas blandit lacus et lacus. +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. Donec pellentesque luctus nisl. Maecenas blandit lacus et lacus.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. Donec pellentesque luctus nisl. Maecenas blandit lacus et lacus. +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum consectetuer nulla a ligula. Vestibulum aliquet neque ac nunc. Sed ornare, ipsum sed blandit iaculis, nulla urna suscipit felis, id elementum dolor mi ac velit. Etiam quis velit vitae felis pretium venenatis. Donec lobortis, dui eget imperdiet tristique, velit pede rhoncus sapien, sed interdum quam felis mattis lectus. Sed quis sem. Curabitur pharetra felis eu eros suscipit egestas. Aenean tempus varius urna. Ut dolor. Fusce sem dolor, facilisis et, mollis ac, adipiscing ac, ipsum. Morbi fringilla, diam eget tincidunt consectetuer, mauris lectus vulputate quam, id ornare enim magna in pede. Vivamus commodo, sapien eget aliquam convallis, purus eros blandit libero, eget viverra diam nibh vel mi. Duis iaculis mollis ipsum. Duis accumsan posuere urna. Cras tempus. Pellentesque eu ante. Vestibulum nunc erat, tempus id, nonummy et, ullamcorper ac, odio. Aenean tincidunt enim sed ligula pellentesque lobortis. +<a name="0"> +</a> +TARGET TEXT +<p><a href="#anchor">2. Click here. Page should scroll just a little bit, to the top of the red box below.</a></p> +<a name="anchor"></a> +<div style="width:100%; border:1px red solid; height:1000px;"></div> + + +</body> +</html> diff --git a/WebCore/manual-tests/linkjump-3.html b/WebCore/manual-tests/linkjump-3.html new file mode 100644 index 0000000..64e46c0 --- /dev/null +++ b/WebCore/manual-tests/linkjump-3.html @@ -0,0 +1,125 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=6916">Bugzilla 6916</a> REGRESSION: URLs with named anchors in a page don't jump to proper location in document</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Manually resize window to about 800 x 600. Click the link below.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Page will scroll down to the dashed line. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Page will scroll to the bottom, or to some other unexpected area of the page. +</p> + +<div>Clicking <a href="#link">link</a> should move page down to the dashes, not to the end of the page.</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<font face="arial,sans-serif" size="2"><a name="link"></a> +<div>--------------</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> +<div>blah blah blah</div> + +</body> +</html> diff --git a/WebCore/manual-tests/linkjump-4.html b/WebCore/manual-tests/linkjump-4.html new file mode 100644 index 0000000..733277a --- /dev/null +++ b/WebCore/manual-tests/linkjump-4.html @@ -0,0 +1,132 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4247537">4247537</a> link jumping should scroll to tallest object on line, not first object on line</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Manually resize window to about 800 x 600. Click the links in this document.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +After clicking a link, the page should always scroll to the top of the green box. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +After clicking a link, page scrolls to some unexpected area. +</p> + +<div><a href="#foo">1. click to test</a></div> + +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. +</p> + +** The top of this box <img id="foo" style="height: 200px; width: 100px; background-color: green"> should be aligned to the top of the window ** + +<div><a href="#foo2">2. click to test</a></div> + + +<p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum.</p> + + +<span id="foo2">** The top of this box should be aligned <img style="height: 200px; width: 100px; background-color: green"> to the top of the window **</span> + +<div><a href="#foo3">3. click to test</a></div> + + +<p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.</p> + + + + +<img style="height: 200px; width: 100px; background-color: yellow"><img id="foo3" style="height: 100px; width: 100px; background-color: green">** The top of the GREEN box should be aligned to the top of the window ** + +<div><a href="#foo4">4. click to test</a></div> + + +<p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.</p> + + + +<a name="foo4"></a> +<img style="height: 100px; width: 100px; background-color: green">** The top of this box should be aligned to the top of the window ** + +<div><b>You're done!</b></div> + + +<p> +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor. + +Curabitur facilisis pede nec arcu. Proin ut turpis. Maecenas quam nulla, dapibus vel, accumsan non, volutpat quis, tellus. Suspendisse consectetuer augue in mauris. Duis consequat pede sit amet dolor. Nulla vestibulum enim auctor felis tincidunt sodales. Nullam lobortis massa eu magna. Ut nonummy leo porta quam. Proin dignissim, ante ut aliquet dignissim, est odio aliquet lacus, eu sodales quam arcu ornare urna. Fusce arcu erat, vulputate pulvinar, dapibus luctus, volutpat quis, metus. Mauris eu massa. Praesent eget tortor eget arcu fringilla feugiat. Mauris posuere, risus nec blandit ultrices, enim odio tincidunt tortor, non bibendum elit mi non justo. Fusce tristique lacinia est. Maecenas est sem, eleifend a, fermentum et, interdum non, elit. Etiam sem. Vestibulum ultricies velit. Vivamus a mauris eget arcu volutpat vestibulum. Duis sed dui sit amet libero tempus tempor. Nulla diam.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In ornare risus. Aliquam nonummy libero et risus. Vestibulum sit amet massa nec mauris interdum luctus. Nam ut dolor ut nunc malesuada varius. Duis risus. Mauris vel nulla ut odio porta vestibulum. Mauris ac sapien. In a dolor at urna malesuada suscipit. Aenean nisl erat, nonummy quis, blandit in, sagittis et, ligula. Maecenas consequat. Donec nonummy rutrum nibh. Praesent tincidunt cursus mi. Donec adipiscing. Nulla at ipsum. Aenean fermentum. + +Donec libero est, semper non, pretium vel, adipiscing dapibus, justo. Morbi viverra, odio at suscipit sollicitudin, risus felis convallis odio, sit amet mollis mauris nisl ac magna. Donec tincidunt ante non ante ultricies rutrum. Sed enim sem, pharetra faucibus, faucibus a, venenatis nec, sem. Fusce lacus. Vestibulum porta urna. Vivamus nonummy gravida nisl. In pharetra eros ac arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Nullam et lacus. Nunc metus nunc, iaculis eu, bibendum molestie, semper vitae, arcu. Nullam accumsan fringilla diam. Mauris odio risus, facilisis vitae, tincidunt eget, placerat nec, lacus. Mauris faucibus. Donec rutrum mauris non elit. Morbi dolor purus, auctor a, euismod at, vestibulum sed, massa. Suspendisse quis lorem. + +Donec blandit vestibulum mi. Donec turpis nisl, accumsan ut, vestibulum sed, mattis vel, turpis. Suspendisse placerat ultricies pede. Donec et diam vel libero volutpat vestibulum. Aenean luctus erat vitae urna. Etiam ac ligula. Praesent vestibulum urna vel lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque hendrerit porta lectus. Pellentesque sed velit sed massa malesuada egestas. Phasellus volutpat mauris vitae massa. Sed pretium est quis nulla. Quisque fringilla neque a nunc. Vivamus ligula risus, pharetra vitae, sodales ut, convallis et, quam. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed a purus at turpis pellentesque porttitor. + +Integer consequat justo. Duis cursus. Sed lorem ante, aliquam sed, mattis eu, luctus in, elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi sem. Nam id pede et lectus luctus molestie. Vestibulum vulputate accumsan lectus. Proin ipsum libero, sagittis at, facilisis vitae, condimentum eu, urna. Vestibulum turpis magna, euismod in, pretium quis, cursus ut, diam. Vivamus in felis eget leo ultricies eleifend. Suspendisse sit amet dolor. Nam diam eros, tempor ut, tristique ut, accumsan commodo, neque. Etiam a orci eu ante suscipit tempor.</p> +</body> +</html> diff --git a/WebCore/manual-tests/linkjump-5.html b/WebCore/manual-tests/linkjump-5.html new file mode 100644 index 0000000..7310eb8 --- /dev/null +++ b/WebCore/manual-tests/linkjump-5.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4256060">4256060</a> Link scrolling to last object on the page doesn't work if the link being scrolled to contains an empty inline</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Manually resize window to about 800 x 600. Click the link below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Page should scroll to the bottom.</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Page will not scroll to the bottom. +</p> + +<a href="#ccc">Click me</a> +<div style="border: 1px solid red; height: 800px"></div> +<a name="ccc"><b></b></a> +</body> +</html> diff --git a/WebCore/manual-tests/liveconnect-applet-array-parameters.html b/WebCore/manual-tests/liveconnect-applet-array-parameters.html new file mode 100644 index 0000000..8f685c9 --- /dev/null +++ b/WebCore/manual-tests/liveconnect-applet-array-parameters.html @@ -0,0 +1,32 @@ +<html> +<head> + <title>Array parameters Applet</title> +</head> +<body> +<h1>Calling Java Array Test page</h1> +This page calls a Java method which takes Arrays as parameters. On successful calling of the function, the passed in values are printed +to stdout from Java using System.out.println +Send object array should fail, but WebKit should not crash. +<form name="controls"> + <input type="button" name="string" value="Send String array" onClick="document.arraytestapplet.arrayFunction(['one', 'two', 'three'])"/><br> + <input type="button" name="boolean" value="Send boolean array" onClick="document.arraytestapplet.booleanFunction(['0', '1', '2'])"/><br> + <input type="button" name="byte" value="Send byte array" onClick="document.arraytestapplet.byteFunction(new Array(0, 1, 2))"/><br> + <input type="button" name="char" value="Send char array" onClick="document.arraytestapplet.charFunction(new Array('a', 'b', 'c'))"/><br> + <input type="button" name="short" value="Send short array" onClick="document.arraytestapplet.shortFunction(new Array(0, 1, 2))"/><br> + <input type="button" name="int" value="Send int array" onClick="document.arraytestapplet.intFunction(new Array(0, 1, 2))"/><br> + <input type="button" name="long" value="Send long array" onClick="document.arraytestapplet.longFunction(new Array(0, 1, 2))"/><br> + <input type="button" name="float" value="Send float array" onClick="document.arraytestapplet.floatFunction(new Array(0.0, 0.1, 0.2))"/><br> + <input type="button" name="double" value="Send double array" onClick="document.arraytestapplet.doubleFunction(new Array(0.1, 0.1, 0.2))"/><br> + <input type="button" name="object" value="Send object array" onClick="document.arraytestapplet.objectFunction(new Array(0.1, 0.1, 0.2))"/><br> +</form> +<applet name="arraytestapplet" code="ArrayParameterTestApplet.class" codebase="resources" width="0" height="0" mayscript="true"> +Unable to load applet. +</applet> +<!-- +<object id="helloapplet" codetype="application/java-archive" + classid="java:HelloApplet.class" archive="helloapplet.jar" + height="100" width="200"> +Unable to load applet. +</object> --> +</body> +</html> diff --git a/WebCore/manual-tests/liveconnect-applet-get-boolean.html b/WebCore/manual-tests/liveconnect-applet-get-boolean.html new file mode 100644 index 0000000..0c0eddf --- /dev/null +++ b/WebCore/manual-tests/liveconnect-applet-get-boolean.html @@ -0,0 +1,7 @@ +<html> +<body><applet code="CheckerApplet.class" name="Checker" codebase="resources"> +Unable to load applet.</applet> +This tests retrieving a boolean value from a Java class using javascript. It tests the return value. The return value should be true.<br> +<input type="button" name="test" value="Read applet" onClick="alert('return value: '+document.Checker.checkVersion())"/> +</body> +<html> diff --git a/WebCore/manual-tests/liveconnect-security-exception.html b/WebCore/manual-tests/liveconnect-security-exception.html new file mode 100644 index 0000000..8bce752 --- /dev/null +++ b/WebCore/manual-tests/liveconnect-security-exception.html @@ -0,0 +1,32 @@ +<html> +<head> +<!-- +Sorry for the hackery in this test. Currently, we have no elegant way to +catch Java errors and print out an intelligent response. +--> + +<script> +function loadApplet() { + // force Safari to load and cache the TestApplet class + document.getElementById('applet').method(); +} +</script> +</head> +<body onload="loadApplet();window.open('resources/liveconnect-security-exception-popup.html', 'w', 'height=300, width=300');"> +<p>This test checks for a regression against <i>rdar://problem/4151132 REGRESSION: Some applet liveconnect calls throws privilege exception.</i>.</p> +<p>To test:</p> +<ol> +<li>Disable popup blocking.</li> +<li>Select the window titled "popup window."</li> +<li>From the debug menu, select "Show JavaScript console." This will allow you to see errors thrown in the popup window by the Java Virtual Machine. If there are any, the test has failed.</li> +<li>If the text in the popup window does not match the text below, the test has failed:<br> +applet.field returned 1<br> +incremented applet.field by 1<br> +applet.field returned 2<br> +applet.method() returned 1<br> +</li> +<li>Otherwise, the test has passed.</li> +</ol> +<applet id='applet' code="TestApplet.class" codebase="resources"></applet> +</body> +</html> diff --git a/WebCore/manual-tests/location-host-canonicalization.html b/WebCore/manual-tests/location-host-canonicalization.html new file mode 100644 index 0000000..d13bd7d --- /dev/null +++ b/WebCore/manual-tests/location-host-canonicalization.html @@ -0,0 +1,15 @@ +<html> +<head> +<script> +function changeHost() { + window.location.host = "www.example.com:"; +} +</script> +</head> +<body> +<p>This will test the URL canonicalization by assigning a host with an empty port specifier to window.location.host</p> +<p>Clicking the following button should change the host in the current URL to "www.example.com:". It actually loading is not important - +if you see "www.example.com:0" the test has failed. You should see "www.example.com:"</p> +<input type="button" value="Click Here" onClick="changeHost();"> +</body> +</html> diff --git a/WebCore/manual-tests/log-keypress-events.html b/WebCore/manual-tests/log-keypress-events.html new file mode 100644 index 0000000..87e2288 --- /dev/null +++ b/WebCore/manual-tests/log-keypress-events.html @@ -0,0 +1,34 @@ +<html> +<body> +<p>This page is especially useful to test <a href="http://bugs.webkit.org/show_bug.cgi?id=5678">the shift-Tab issue</a>. Should see a code of 9.</p> +<form name="f"> +Type here: <input id="field" type="text" /> +</form> +<script language="javascript" type="text/javascript"> +<!-- +function logEvent(event) { + myDebugLog("--"); + if (event.charCode) + myDebugLog("event.charCode: " + event.charCode); + if (event.which) + myDebugLog("event.which: " + event.which); + if (event.keyCode) + myDebugLog("event.keyCode: " + event.keyCode); + myDebugLog("shiftKey: " + event.shiftKey); + return false; +} + +function myDebugLog(msg) { + var m = document.createElement("div"); + m.appendChild(document.createTextNode(msg)); + document.getElementById("debug-log").appendChild(m); +} +document.f.field.onkeypress = logEvent; +// --> +</script> + +<div id="debug-log"> +Key press values: +</div> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/mail-attachments.html b/WebCore/manual-tests/mail-attachments.html new file mode 100644 index 0000000..9d8d920 --- /dev/null +++ b/WebCore/manual-tests/mail-attachments.html @@ -0,0 +1,16 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4435416">4435416</a> Attachments in Mail compose windows always display the broken image icon</p> +<p>Steps:</p> +<ol> +<li>Launch Mail.app with built WebKit +<li>create a new email +<li>drag a file to the email (make sure to use a > 1 page file, otherwise Mail shows the contents inline) +</ol> +<p>Verify that the icon is what you see in Finder and has the file name and size beneath it</p> +</body> +</html> diff --git a/WebCore/manual-tests/memory/MessageUidsAlreadyDownloaded2 b/WebCore/manual-tests/memory/MessageUidsAlreadyDownloaded2 new file mode 100644 index 0000000..57269f6 --- /dev/null +++ b/WebCore/manual-tests/memory/MessageUidsAlreadyDownloaded2 @@ -0,0 +1,4296 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>1154111803.H358449P19268.mbox1.freenet.de,S=22050,L=363</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-28T19:13:46Z</date> + </dict> + <key>1154117771.H461347P398.mbox1.freenet.de,S=2443,L=89</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-28T20:22:43Z</date> + </dict> + <key>1154118461.H845954P11540.mbox1.freenet.de,S=2073,L=60</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-28T20:34:37Z</date> + </dict> + <key>1154119399.H723288P24749.mbox1.freenet.de,S=3784,L=75</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:48Z</date> + </dict> + <key>1154120527.H499834P7002.mbox1.freenet.de,S=2428,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:49Z</date> + </dict> + <key>1154136928.H711235P7432.mbox1.freenet.de,S=2267,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:55Z</date> + </dict> + <key>1154141115.H278014P21772.mbox1.freenet.de,S=2648,L=94</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:55Z</date> + </dict> + <key>1154142404.H444143P13254.mbox1.freenet.de,S=26736,L=481</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:55Z</date> + </dict> + <key>1154143048.H4813P29876.mbox1.freenet.de,S=2432,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:55Z</date> + </dict> + <key>1154146079.H240331P27863.mbox1.freenet.de,S=3336,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:58Z</date> + </dict> + <key>1154148315.H16116P16385.mbox1.freenet.de,S=1973,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:17:58Z</date> + </dict> + <key>1154155911.H447952P8367.mbox1.freenet.de,S=9377,L=175</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:58:04Z</date> + </dict> + <key>1154156262.H931482P16302.mbox1.freenet.de,S=1467,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T06:58:04Z</date> + </dict> + <key>1154157562.H280906P1236.mbox1.freenet.de,S=35699,L=546</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T08:17:58Z</date> + </dict> + <key>1154157648.H144803P2338.mbox1.freenet.de,S=22613,L=370</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T08:17:58Z</date> + </dict> + <key>1154160958.H795942P22086.mbox1.freenet.de,S=2829,L=101</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T08:17:58Z</date> + </dict> + <key>1154164698.H624491P18335.mbox1.freenet.de,S=43702,L=1023</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:14:45Z</date> + </dict> + <key>1154167515.H972702P5030.mbox1.freenet.de,S=22467,L=368</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:14:46Z</date> + </dict> + <key>1154174670.H224050P30725.mbox1.freenet.de,S=3308,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:14:47Z</date> + </dict> + <key>1154176114.H743456P22579.mbox1.freenet.de,S=2006,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:14:47Z</date> + </dict> + <key>1154184971.H479935P25330.mbox1.freenet.de,S=2635,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:14:47Z</date> + </dict> + <key>1154185677.H789066P3851.mbox1.freenet.de,S=1167,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:14:47Z</date> + </dict> + <key>1154190799.H30721P17126.mbox1.freenet.de,S=3783,L=75</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T16:35:31Z</date> + </dict> + <key>1154194034.H891700P4354.mbox1.freenet.de,S=2153,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T17:35:31Z</date> + </dict> + <key>1154198323.H243017P9092.mbox1.freenet.de,S=1500,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T18:56:10Z</date> + </dict> + <key>1154201448.H521281P30530.mbox1.freenet.de,S=3766,L=110</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T19:35:34Z</date> + </dict> + <key>1154201733.H742067P3354.mbox1.freenet.de,S=1374,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T19:35:34Z</date> + </dict> + <key>1154202656.H351645P17823.mbox1.freenet.de,S=22871,L=370</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T19:55:49Z</date> + </dict> + <key>1154206406.H789099P8315.mbox1.freenet.de,S=1975,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T21:11:07Z</date> + </dict> + <key>1154207701.H462086P24032.mbox1.freenet.de,S=2628,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-29T21:54:47Z</date> + </dict> + <key>1154211428.H139331P11450.mbox1.freenet.de,S=1978,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:37Z</date> + </dict> + <key>1154211730.H16038P14828.mbox1.freenet.de,S=7500,L=226</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:39Z</date> + </dict> + <key>1154221130.H326563P6974.mbox1.freenet.de,S=2771,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:39Z</date> + </dict> + <key>1154222657.H751377P30045.mbox1.freenet.de,S=2197,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:39Z</date> + </dict> + <key>1154226264.H252785P28758.mbox1.freenet.de,S=2933,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:39Z</date> + </dict> + <key>1154230453.H837438P7526.mbox1.freenet.de,S=3571,L=78</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:41Z</date> + </dict> + <key>1154236571.H729085P28582.mbox1.freenet.de,S=2807,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:41Z</date> + </dict> + <key>1154236783.H955292P30199.mbox1.freenet.de,S=2188,L=62</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:41Z</date> + </dict> + <key>1154242354.H170494P14687.mbox1.freenet.de,S=9625,L=63</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:41Z</date> + </dict> + <key>1154242855.H757856P18626.mbox1.freenet.de,S=2672,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:41Z</date> + </dict> + <key>1154244551.H920942P2192.mbox1.freenet.de,S=2207,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T07:32:41Z</date> + </dict> + <key>1154263532.H193325P22924.mbox1.freenet.de,S=2039,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T12:46:38Z</date> + </dict> + <key>1154265275.H367713P16996.mbox1.freenet.de,S=2198,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-07-30T13:16:47Z</date> + </dict> + <key>1154282347.H20977P3823.mbox1.freenet.de,S=9587,L=199</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:16Z</date> + </dict> + <key>1154288804.H803763P8206.mbox1.freenet.de,S=2058,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:17Z</date> + </dict> + <key>1154299820.H477576P18033.mbox1.freenet.de,S=2618,L=93</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:18Z</date> + </dict> + <key>1154310315.H820113P1827.mbox1.freenet.de,S=3799,L=110</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:19Z</date> + </dict> + <key>1154311499.H546032P13891.mbox1.freenet.de,S=2233,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:19Z</date> + </dict> + <key>1154318224.H536896P14968.mbox1.freenet.de,S=8805,L=157</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154319854.H210142P26288.mbox1.freenet.de,S=2446,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154321361.H711271P5428.mbox1.freenet.de,S=2036,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154322532.H550166P17256.mbox1.freenet.de,S=3144,L=110</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154325187.H294135P17861.mbox1.freenet.de,S=3459,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154330389.H180134P593.mbox1.freenet.de,S=2768,L=94</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154330589.H853877P3916.mbox1.freenet.de,S=2048,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154330917.H159606P9329.mbox1.freenet.de,S=28506,L=562</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154335492.H583581P30769.mbox1.freenet.de,S=3134,L=110</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154339191.H120444P8465.mbox1.freenet.de,S=3063,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154339572.H788076P15350.mbox1.freenet.de,S=1586,L=45</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:22Z</date> + </dict> + <key>1154341116.H784100P13474.mbox1.freenet.de,S=9493,L=69</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154350115.H216883P8871.mbox1.freenet.de,S=3376,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154352077.H598131P13951.mbox1.freenet.de,S=2053,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154357533.H427278P29986.mbox1.freenet.de,S=5214,L=126</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154368111.H681374P21908.mbox1.freenet.de,S=3384,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154372487.H589212P18160.mbox1.freenet.de,S=1805,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154373426.H113666P5693.mbox1.freenet.de,S=1955,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:23Z</date> + </dict> + <key>1154374064.H646622P19789.mbox1.freenet.de,S=16327,L=260</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154374390.H822597P26688.mbox1.freenet.de,S=29058,L=568</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154374877.H443661P8856.mbox1.freenet.de,S=7478,L=144</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154378335.H372820P17205.mbox1.freenet.de,S=29708,L=578</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154380198.H919219P16039.mbox1.freenet.de,S=1617,L=41</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154380266.H829510P17338.mbox1.freenet.de,S=3159,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154381245.H781041P971.mbox1.freenet.de,S=29486,L=573</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154383826.H581519P5619.mbox1.freenet.de,S=2491,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154383907.H914484P6602.mbox1.freenet.de,S=2579,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154389136.H486057P2884.mbox1.freenet.de,S=18921,L=508</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154406313.H251951P16905.mbox1.freenet.de,S=8234,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154406403.H74248P17793.mbox1.freenet.de,S=1468,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154406904.H284040P25564.mbox1.freenet.de,S=1328,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154410875.H702423P10666.mbox1.freenet.de,S=3436,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154411027.H712871P13320.mbox1.freenet.de,S=2299,L=45</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:27Z</date> + </dict> + <key>1154412960.H909004P13832.mbox1.freenet.de,S=3304,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154423513.H859512P10214.mbox1.freenet.de,S=2261,L=66</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154432726.H69271P12439.mbox1.freenet.de,S=1774,L=41</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154433859.H266614P4663.mbox1.freenet.de,S=61054,L=790</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154437434.H599023P17039.mbox1.freenet.de,S=3191,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154446410.H329415P18075.mbox1.freenet.de,S=1871,L=41</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154446719.H706064P27099.mbox1.freenet.de,S=1666,L=40</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154452994.H219957P9909.mbox1.freenet.de,S=3768,L=109</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154456797.H410486P5536.mbox1.freenet.de,S=3808,L=112</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:30Z</date> + </dict> + <key>1154458368.H152307P9225.mbox1.freenet.de,S=2298,L=46</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154459822.H574797P13606.mbox1.freenet.de,S=2294,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154462619.H765747P10024.mbox1.freenet.de,S=2075,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154464640.H274928P18932.mbox1.freenet.de,S=2051,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154467696.H267955P13501.mbox1.freenet.de,S=26182,L=563</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154467775.H548080P14727.mbox1.freenet.de,S=29184,L=578</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154470343.H767624P26215.mbox1.freenet.de,S=2613,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154479256.H884595P18388.mbox1.freenet.de,S=17010,L=293</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154479329.H790239P19426.mbox1.freenet.de,S=29841,L=576</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154482204.H318144P19613.mbox1.freenet.de,S=2919,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154492754.H490902P13765.mbox1.freenet.de,S=3224,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154496852.H422665P22937.mbox1.freenet.de,S=2168,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154500305.H761267P3003.mbox1.freenet.de,S=2055,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:34Z</date> + </dict> + <key>1154502841.H481665P7299.mbox1.freenet.de,S=9029,L=158</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154503390.H907552P21594.mbox1.freenet.de,S=1355,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154506274.H963865P12453.mbox1.freenet.de,S=1538,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154507112.H636295P4391.mbox1.freenet.de,S=1545,L=41</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154510432.H500772P6353.mbox1.freenet.de,S=8098,L=136</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154510812.H930961P17880.mbox1.freenet.de,S=3269,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154511935.H742983P21884.mbox1.freenet.de,S=4303,L=63</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154518569.H771158P3018.mbox1.freenet.de,S=3228,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154518727.H778942P8528.mbox1.freenet.de,S=7727,L=181</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154525091.H309996P14768.mbox1.freenet.de,S=1577,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154527275.H61884P18991.mbox1.freenet.de,S=1629,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154528083.H278774P12141.mbox1.freenet.de,S=3469,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154531670.H161741P576.mbox1.freenet.de,S=17904,L=307</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154540694.H424930P11508.mbox1.freenet.de,S=2100,L=46</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154541967.H480715P24795.mbox1.freenet.de,S=34667,L=1135</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154544700.H204133P16065.mbox1.freenet.de,S=7518,L=177</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154545974.H878571P10429.mbox1.freenet.de,S=17643,L=304</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154547134.H790776P6068.mbox1.freenet.de,S=2129,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154547134.H791582P6082.mbox1.freenet.de,S=2109,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154552079.H183013P26609.mbox1.freenet.de,S=1557,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:37Z</date> + </dict> + <key>1154558833.H680601P19873.mbox1.freenet.de,S=29014,L=565</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154559443.H629394P27069.mbox1.freenet.de,S=28201,L=565</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154559705.H963621P30624.mbox1.freenet.de,S=1658,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154559903.H128255P635.mbox1.freenet.de,S=4293,L=115</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154561841.H24917P22788.mbox1.freenet.de,S=1678,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154565078.H552095P24820.mbox1.freenet.de,S=1571,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154567656.H888068P19790.mbox1.freenet.de,S=28626,L=565</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154577271.H344493P18097.mbox1.freenet.de,S=2687,L=94</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154581483.H783928P29693.mbox1.freenet.de,S=1956,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154592204.H40007P17630.mbox1.freenet.de,S=1723,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154596091.H624074P1470.mbox1.freenet.de,S=1771,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154596322.H41452P6095.mbox1.freenet.de,S=3290,L=93</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154596653.H393287P14440.mbox1.freenet.de,S=1662,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154602697.H48510P21068.mbox1.freenet.de,S=3294,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154610123.H590789P10560.mbox1.freenet.de,S=5389,L=140</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154611988.H804047P20437.mbox1.freenet.de,S=15159,L=234</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154620474.H342588P28635.mbox1.freenet.de,S=8578,L=239</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154624033.H534525P3741.mbox1.freenet.de,S=3097,L=109</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154624721.H847487P16221.mbox1.freenet.de,S=1666,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154625169.H409170P24163.mbox1.freenet.de,S=1810,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:41Z</date> + </dict> + <key>1154630617.H489240P18189.mbox1.freenet.de,S=15420,L=449</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154630832.H617668P26506.mbox1.freenet.de,S=3275,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154632455.H73886P5468.mbox1.freenet.de,S=41479,L=739</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154636004.H213292P11542.mbox1.freenet.de,S=2073,L=43</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154648684.H553339P9249.mbox1.freenet.de,S=1283,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154654111.H342601P28367.mbox1.freenet.de,S=1749,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154654548.H92597P32115.mbox1.freenet.de,S=1582,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154663797.H236313P19106.mbox1.freenet.de,S=3212,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154666007.H220170P15121.mbox1.freenet.de,S=2399,L=60</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154674137.H953239P18937.mbox1.freenet.de,S=1780,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154674539.H433913P29115.mbox1.freenet.de,S=1726,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154678097.H775074P29674.mbox1.freenet.de,S=2118,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154681470.H721664P30619.mbox1.freenet.de,S=1653,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154681835.H440294P5887.mbox1.freenet.de,S=3303,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154683329.H499060P3008.mbox1.freenet.de,S=2973,L=107</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154683349.H475784P3421.mbox1.freenet.de,S=1635,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154684133.H456313P20424.mbox1.freenet.de,S=16757,L=398</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154686227.H264355P3267.mbox1.freenet.de,S=5053,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154693255.H104812P23648.mbox1.freenet.de,S=3269,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154701385.H313603P24878.mbox1.freenet.de,S=1747,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154706438.H888975P28377.mbox1.freenet.de,S=8804,L=156</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154709564.H133555P12044.mbox1.freenet.de,S=1687,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154711177.H804272P9516.mbox1.freenet.de,S=3008,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154711962.H906792P24181.mbox1.freenet.de,S=1714,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:45Z</date> + </dict> + <key>1154712249.H863087P31306.mbox1.freenet.de,S=1346,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154713540.H686084P26445.mbox1.freenet.de,S=1553,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154713751.H55777P30321.mbox1.freenet.de,S=1656,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154714170.H614557P4421.mbox1.freenet.de,S=3281,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154718674.H962131P20772.mbox1.freenet.de,S=2187,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154736338.H750416P22092.mbox1.freenet.de,S=1653,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154737824.H694419P4946.mbox1.freenet.de,S=3256,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154739519.H564665P7297.mbox1.freenet.de,S=1480,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154742580.H145981P16735.mbox1.freenet.de,S=3083,L=109</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154748952.H268713P25433.mbox1.freenet.de,S=1582,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154762163.H879963P5656.mbox1.freenet.de,S=1743,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154762709.H416283P12536.mbox1.freenet.de,S=36151,L=651</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154764703.H681259P13907.mbox1.freenet.de,S=5585,L=142</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154765905.H451651P2578.mbox1.freenet.de,S=1823,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154769448.H539772P24732.mbox1.freenet.de,S=30509,L=579</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154771241.H958339P23393.mbox1.freenet.de,S=2643,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154771454.H867661P26915.mbox1.freenet.de,S=3250,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154772483.H759921P10662.mbox1.freenet.de,S=31161,L=584</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154774590.H735607P14785.mbox1.freenet.de,S=1349,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154780998.H350794P2186.mbox1.freenet.de,S=1476,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154783729.H629301P24338.mbox1.freenet.de,S=1828,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154787802.H457991P5386.mbox1.freenet.de,S=1693,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:48Z</date> + </dict> + <key>1154793287.H907122P26499.mbox1.freenet.de,S=1979,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154796083.H582751P18038.mbox1.freenet.de,S=3393,L=94</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154800164.H457883P20118.mbox1.freenet.de,S=1586,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154802791.H175746P2813.mbox1.freenet.de,S=32753,L=593</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154807187.H620176P8421.mbox1.freenet.de,S=2249,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154808376.H73702P29758.mbox1.freenet.de,S=31175,L=583</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154815352.H547663P23781.mbox1.freenet.de,S=2226,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154815852.H497641P28672.mbox1.freenet.de,S=1640,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154819844.H89068P3941.mbox1.freenet.de,S=1629,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154824220.H394534P13505.mbox1.freenet.de,S=3228,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154825688.H313706P30527.mbox1.freenet.de,S=1339,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154833081.H437178P7263.mbox1.freenet.de,S=1671,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154834629.H62247P20542.mbox1.freenet.de,S=32275,L=589</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154834996.H616625P23803.mbox1.freenet.de,S=2314,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154835617.H514035P28790.mbox1.freenet.de,S=32395,L=590</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:51Z</date> + </dict> + <key>1154838795.H268666P26334.mbox1.freenet.de,S=3237,L=112</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154842431.H758835P9655.mbox1.freenet.de,S=1859,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154842671.H909620P13204.mbox1.freenet.de,S=1899,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154845999.H991416P17794.mbox1.freenet.de,S=1522,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154847930.H731674P21637.mbox1.freenet.de,S=1682,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154850230.H929566P13366.mbox1.freenet.de,S=2687,L=70</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154853778.H392687P27949.mbox1.freenet.de,S=1510,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154858210.H631452P8577.mbox1.freenet.de,S=1949,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154866627.H35308P2473.mbox1.freenet.de,S=2118,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154870895.H472229P15808.mbox1.freenet.de,S=1666,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154873038.H830117P19580.mbox1.freenet.de,S=1821,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T14:33:52Z</date> + </dict> + <key>1154874938.H570736P20318.mbox1.freenet.de,S=9402,L=195</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T17:16:29Z</date> + </dict> + <key>1154879259.H913434P702.mbox1.freenet.de,S=5899,L=123</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T17:16:29Z</date> + </dict> + <key>1154892728.H872013P14934.mbox1.freenet.de,S=8171,L=176</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T20:03:30Z</date> + </dict> + <key>1154893187.H782991P23768.mbox1.freenet.de,S=2273,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T20:03:33Z</date> + </dict> + <key>1154896088.H57751P7859.mbox1.freenet.de,S=1746,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-06T20:29:21Z</date> + </dict> + <key>1154897034.H715417P27754.mbox1.freenet.de,S=1355,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:32Z</date> + </dict> + <key>1154897842.H192629P9304.mbox1.freenet.de,S=1775,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:34Z</date> + </dict> + <key>1154908466.H256444P4309.mbox1.freenet.de,S=9612,L=202</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:34Z</date> + </dict> + <key>1154913087.H603613P15691.mbox1.freenet.de,S=3458,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:34Z</date> + </dict> + <key>1154921729.H699962P10129.mbox1.freenet.de,S=32365,L=590</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:36Z</date> + </dict> + <key>1154925637.H501014P19587.mbox1.freenet.de,S=2030,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:36Z</date> + </dict> + <key>1154926530.H205520P969.mbox1.freenet.de,S=1497,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:36Z</date> + </dict> + <key>1154928611.H397993P27462.mbox1.freenet.de,S=1781,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:36Z</date> + </dict> + <key>1154930612.H415665P22794.mbox1.freenet.de,S=1608,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:36Z</date> + </dict> + <key>1154931196.H488624P31905.mbox1.freenet.de,S=31260,L=582</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:15:36Z</date> + </dict> + <key>1154933559.H443205P4635.mbox1.freenet.de,S=6551340,L=85105</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T06:58:36Z</date> + </dict> + <key>1154938322.H156182P23187.mbox1.freenet.de,S=2208,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T10:43:42Z</date> + </dict> + <key>1154939863.H828842P20902.mbox1.freenet.de,S=1646,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T10:43:43Z</date> + </dict> + <key>1154944050.H239620P3977.mbox1.freenet.de,S=1614,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T10:43:43Z</date> + </dict> + <key>1154944762.H411027P17426.mbox1.freenet.de,S=3329,L=93</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T10:43:43Z</date> + </dict> + <key>1154946936.H546750P29015.mbox1.freenet.de,S=16127,L=450</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T10:43:43Z</date> + </dict> + <key>1154950715.H932658P9753.mbox1.freenet.de,S=3123,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T11:44:24Z</date> + </dict> + <key>1154955826.H244494P25346.mbox1.freenet.de,S=1815,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T13:33:31Z</date> + </dict> + <key>1154956871.H53807P29765.mbox1.freenet.de,S=1631,L=49</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T13:33:31Z</date> + </dict> + <key>1154961414.H983301P10603.mbox1.freenet.de,S=3053,L=86</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T14:39:43Z</date> + </dict> + <key>1154964711.H449025P23281.mbox1.freenet.de,S=5168,L=133</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T15:39:27Z</date> + </dict> + <key>1154969887.H902776P18126.mbox1.freenet.de,S=3227,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T18:29:33Z</date> + </dict> + <key>1154973242.H36323P30035.mbox1.freenet.de,S=1313,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T18:29:33Z</date> + </dict> + <key>1154978298.H254629P25143.mbox1.freenet.de,S=33034,L=597</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T19:42:39Z</date> + </dict> + <key>1154979552.H889611P20200.mbox1.freenet.de,S=2261,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T19:42:39Z</date> + </dict> + <key>1154980568.H271316P9540.mbox1.freenet.de,S=31898,L=588</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T20:17:30Z</date> + </dict> + <key>1154981484.H87054P30587.mbox1.freenet.de,S=1497,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T20:17:31Z</date> + </dict> + <key>1154981702.H412110P4514.mbox1.freenet.de,S=8573,L=154</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T20:17:31Z</date> + </dict> + <key>1154981870.H420131P9009.mbox1.freenet.de,S=1651,L=29</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T20:26:09Z</date> + </dict> + <key>1154982355.H370141P21708.mbox1.freenet.de,S=1428,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T20:26:09Z</date> + </dict> + <key>1154984295.H419999P24736.mbox1.freenet.de,S=1710,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-07T21:02:39Z</date> + </dict> + <key>1154986457.H837808P23722.mbox1.freenet.de,S=1762,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:56Z</date> + </dict> + <key>1154989237.H324641P29504.mbox1.freenet.de,S=1665,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1154995803.H199883P16986.mbox1.freenet.de,S=3240,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1155007768.H677900P17429.mbox1.freenet.de,S=3429,L=106</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1155012524.H237704P28385.mbox1.freenet.de,S=1690,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1155015722.H329094P31095.mbox1.freenet.de,S=1598,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1155017688.H202986P2108.mbox1.freenet.de,S=2416,L=64</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1155019544.H171597P31071.mbox1.freenet.de,S=14875,L=204</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T07:11:57Z</date> + </dict> + <key>1155021858.H445423P4116.mbox1.freenet.de,S=2196,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T08:06:11Z</date> + </dict> + <key>1155026416.H676559P25807.mbox1.freenet.de,S=4593,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T09:07:42Z</date> + </dict> + <key>1155026481.H855058P27126.mbox1.freenet.de,S=1880,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T09:07:42Z</date> + </dict> + <key>1155031071.H398485P26147.mbox1.freenet.de,S=14897,L=204</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T11:24:37Z</date> + </dict> + <key>1155034969.H2428P30391.mbox1.freenet.de,S=159386,L=2162</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T11:24:38Z</date> + </dict> + <key>1155038195.H291065P15043.mbox1.freenet.de,S=1987,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T12:28:23Z</date> + </dict> + <key>1155038654.H448775P28113.mbox1.freenet.de,S=1691,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T12:28:23Z</date> + </dict> + <key>1155039123.H590017P6572.mbox1.freenet.de,S=3229,L=90</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T12:28:23Z</date> + </dict> + <key>1155039545.H801292P14681.mbox1.freenet.de,S=1715,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T12:28:23Z</date> + </dict> + <key>1155041106.H6125P17272.mbox1.freenet.de,S=25559,L=395</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T13:41:32Z</date> + </dict> + <key>1155047666.H906085P12577.mbox1.freenet.de,S=2136,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T14:39:06Z</date> + </dict> + <key>1155050012.H159989P29286.mbox1.freenet.de,S=1652,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:30Z</date> + </dict> + <key>1155050208.H193791P1203.mbox1.freenet.de,S=1683,L=40</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:30Z</date> + </dict> + <key>1155050754.H895485P13244.mbox1.freenet.de,S=1761,L=41</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:30Z</date> + </dict> + <key>1155054454.H613144P13074.mbox1.freenet.de,S=14663,L=205</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:30Z</date> + </dict> + <key>1155056216.H853320P28840.mbox1.freenet.de,S=1562,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:31Z</date> + </dict> + <key>1155060313.H287349P23272.mbox1.freenet.de,S=14987,L=206</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:31Z</date> + </dict> + <key>1155066043.H154047P5837.mbox1.freenet.de,S=1627,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-08T19:47:31Z</date> + </dict> + <key>1155071351.H344743P26441.mbox1.freenet.de,S=3238,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T06:51:24Z</date> + </dict> + <key>1155075396.H2838P11152.mbox1.freenet.de,S=2242,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T06:51:24Z</date> + </dict> + <key>1155087979.H908982P472.mbox1.freenet.de,S=3206,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T06:51:24Z</date> + </dict> + <key>1155102590.H596945P18125.mbox1.freenet.de,S=1665,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T06:51:24Z</date> + </dict> + <key>1155105219.H245947P23254.mbox1.freenet.de,S=1691,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T06:51:24Z</date> + </dict> + <key>1155114184.H181845P9641.mbox1.freenet.de,S=1365,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:29:40Z</date> + </dict> + <key>1155116990.H948623P3005.mbox1.freenet.de,S=1483,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:29:46Z</date> + </dict> + <key>1155121665.H11872P25431.mbox1.freenet.de,S=2077,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:29:46Z</date> + </dict> + <key>1155121962.H936848P2813.mbox1.freenet.de,S=3159,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:29:46Z</date> + </dict> + <key>1155122252.H501745P12050.mbox1.freenet.de,S=21210,L=353</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:29:46Z</date> + </dict> + <key>1155125174.H102411P11794.mbox1.freenet.de,S=1882,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:29:46Z</date> + </dict> + <key>1155127037.H36718P9860.mbox1.freenet.de,S=5025,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T12:47:47Z</date> + </dict> + <key>1155129246.H357155P25173.mbox1.freenet.de,S=28808,L=427</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T13:17:20Z</date> + </dict> + <key>1155134270.H946819P22490.mbox1.freenet.de,S=3105,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T15:38:09Z</date> + </dict> + <key>1155137071.H215601P6019.mbox1.freenet.de,S=2153,L=69</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T15:38:10Z</date> + </dict> + <key>1155140096.H731141P5353.mbox1.freenet.de,S=27117,L=947</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T19:20:10Z</date> + </dict> + <key>1155147435.H883142P16666.mbox1.freenet.de,S=3254,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T19:20:17Z</date> + </dict> + <key>1155149346.H483480P3230.mbox1.freenet.de,S=1742,L=29</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T19:20:20Z</date> + </dict> + <key>1155152041.H89754P29468.mbox1.freenet.de,S=13453,L=186</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T20:08:49Z</date> + </dict> + <key>1155152549.H938827P6615.mbox1.freenet.de,S=1654,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T20:08:49Z</date> + </dict> + <key>1155155667.H706656P27859.mbox1.freenet.de,S=1670,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T21:04:16Z</date> + </dict> + <key>1155155721.H806685P29134.mbox1.freenet.de,S=1723,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T21:04:17Z</date> + </dict> + <key>1155155861.H55151P32242.mbox1.freenet.de,S=1457,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T21:04:17Z</date> + </dict> + <key>1155156698.H850532P19416.mbox1.freenet.de,S=13623,L=186</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-09T21:04:17Z</date> + </dict> + <key>1155159422.H265424P29763.mbox1.freenet.de,S=5487,L=143</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:11Z</date> + </dict> + <key>1155161221.H794333P25451.mbox1.freenet.de,S=3397,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155167903.H387503P8670.mbox1.freenet.de,S=5102,L=130</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155178649.H955288P12079.mbox1.freenet.de,S=3277,L=93</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155186315.H470476P5661.mbox1.freenet.de,S=3487,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155186658.H670900P15406.mbox1.freenet.de,S=1989,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155186997.H18542P21862.mbox1.freenet.de,S=2150,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155187306.H580672P27067.mbox1.freenet.de,S=2039,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T06:41:12Z</date> + </dict> + <key>1155199565.H850171P22348.mbox1.freenet.de,S=1390,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:28Z</date> + </dict> + <key>1155200503.H856923P16842.mbox1.freenet.de,S=1755,L=60</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:29Z</date> + </dict> + <key>1155205799.H539866P8747.mbox1.freenet.de,S=1448,L=32</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:29Z</date> + </dict> + <key>1155210205.H954514P4886.mbox1.freenet.de,S=5059,L=130</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:29Z</date> + </dict> + <key>1155211504.H549185P762.mbox1.freenet.de,S=3250,L=92</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:29Z</date> + </dict> + <key>1155219619.H759780P2552.mbox1.freenet.de,S=1373,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:29Z</date> + </dict> + <key>1155224527.H270710P25060.mbox1.freenet.de,S=7736,L=305</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:29Z</date> + </dict> + <key>1155226024.H400337P22956.mbox1.freenet.de,S=34091,L=713</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:30Z</date> + </dict> + <key>1155230782.H443448P26737.mbox1.freenet.de,S=13144,L=186</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-10T18:48:30Z</date> + </dict> + <key>1155243694.H163572P15822.mbox1.freenet.de,S=5506,L=143</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:06Z</date> + </dict> + <key>1155244054.H318166P26053.mbox1.freenet.de,S=1531,L=29</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155246379.H408080P2400.mbox1.freenet.de,S=2226,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155248794.H746051P3848.mbox1.freenet.de,S=2052,L=45</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155250978.H781606P2109.mbox1.freenet.de,S=1601,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155251595.H386382P13425.mbox1.freenet.de,S=1574,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155252375.H816725P24987.mbox1.freenet.de,S=1577,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155253496.H489745P3333.mbox1.freenet.de,S=3120,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155263997.H396439P1002.mbox1.freenet.de,S=1640,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155267607.H85281P31359.mbox1.freenet.de,S=13158,L=185</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155268846.H494747P10094.mbox1.freenet.de,S=1951,L=40</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155271169.H140042P28629.mbox1.freenet.de,S=2760,L=97</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155274958.H592129P2743.mbox1.freenet.de,S=16365,L=260</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155278275.H114040P11873.mbox1.freenet.de,S=1723,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T07:02:15Z</date> + </dict> + <key>1155288724.H433494P24215.mbox1.freenet.de,S=3220,L=91</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T10:26:06Z</date> + </dict> + <key>1155293569.H411195P21139.mbox1.freenet.de,S=2721,L=76</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T11:11:15Z</date> + </dict> + <key>1155295204.H811233P22677.mbox1.freenet.de,S=1621,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T11:21:09Z</date> + </dict> + <key>1155296029.H99298P8943.mbox1.freenet.de,S=5011,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T11:55:47Z</date> + </dict> + <key>1155297301.H522378P5338.mbox1.freenet.de,S=19298,L=303</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T11:55:47Z</date> + </dict> + <key>1155297492.H795867P9124.mbox1.freenet.de,S=1373,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T12:01:07Z</date> + </dict> + <key>1155300909.H622250P20310.mbox1.freenet.de,S=194228,L=2683</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T12:55:49Z</date> + </dict> + <key>1155308792.H250936P22936.mbox1.freenet.de,S=2028,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T15:10:52Z</date> + </dict> + <key>1155309026.H629799P28442.mbox1.freenet.de,S=1621,L=29</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T15:10:52Z</date> + </dict> + <key>1155312703.H180117P16780.mbox1.freenet.de,S=13163,L=186</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-11T17:01:07Z</date> + </dict> + <key>1155341164.H110377P27980.mbox1.freenet.de,S=1470,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:14Z</date> + </dict> + <key>1155341478.H462941P2015.mbox1.freenet.de,S=1599,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155342793.H314697P19120.mbox1.freenet.de,S=1724,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155343779.H48544P30268.mbox1.freenet.de,S=3201,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155344116.H268158P7799.mbox1.freenet.de,S=1411,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155354546.H561532P28675.mbox1.freenet.de,S=1371,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155356696.H995990P11509.mbox1.freenet.de,S=1764,L=40</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155358818.H814534P27494.mbox1.freenet.de,S=2888,L=98</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T05:57:17Z</date> + </dict> + <key>1155362721.H710518P1102.mbox1.freenet.de,S=2762,L=74</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T06:07:28Z</date> + </dict> + <key>1155365332.H325159P29525.mbox1.freenet.de,S=1739,L=62</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T06:54:55Z</date> + </dict> + <key>1155372108.H319445P16165.mbox1.freenet.de,S=2708,L=62</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T08:46:45Z</date> + </dict> + <key>1155375874.H230704P3857.mbox1.freenet.de,S=2622,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T09:46:48Z</date> + </dict> + <key>1155381212.H468458P6801.mbox1.freenet.de,S=1936,L=45</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T11:52:04Z</date> + </dict> + <key>1155381681.H552427P18977.mbox1.freenet.de,S=5186,L=133</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T11:52:06Z</date> + </dict> + <key>1155382498.H369535P6941.mbox1.freenet.de,S=26692,L=477</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T11:52:06Z</date> + </dict> + <key>1155383606.H437045P30481.mbox1.freenet.de,S=1413,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T12:52:04Z</date> + </dict> + <key>1155383682.H553821P32262.mbox1.freenet.de,S=1712,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T12:52:04Z</date> + </dict> + <key>1155387642.H378906P31137.mbox1.freenet.de,S=1697,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T13:01:56Z</date> + </dict> + <key>1155389142.H64410P23467.mbox1.freenet.de,S=2791,L=96</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T14:20:15Z</date> + </dict> + <key>1155392313.H278709P4708.mbox1.freenet.de,S=3907,L=106</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T14:20:15Z</date> + </dict> + <key>1155392617.H994844P9195.mbox1.freenet.de,S=253915,L=3335</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T14:26:49Z</date> + </dict> + <key>1155394744.H831207P10676.mbox1.freenet.de,S=2793,L=104</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:02:13Z</date> + </dict> + <key>1155395369.H420233P21087.mbox1.freenet.de,S=36481,L=508</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:11:38Z</date> + </dict> + <key>1155395795.H180618P28398.mbox1.freenet.de,S=2038,L=69</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:16:41Z</date> + </dict> + <key>1155396396.H370822P4949.mbox1.freenet.de,S=4288,L=118</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:39:54Z</date> + </dict> + <key>1155396467.H347908P6065.mbox1.freenet.de,S=1666,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:39:54Z</date> + </dict> + <key>1155397346.H746437P19876.mbox1.freenet.de,S=232524,L=3830</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:47:28Z</date> + </dict> + <key>1155397550.H814414P23509.mbox1.freenet.de,S=1954,L=45</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:47:28Z</date> + </dict> + <key>1155397892.H161483P29827.mbox1.freenet.de,S=2137,L=67</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T15:54:14Z</date> + </dict> + <key>1155398368.H272840P5908.mbox1.freenet.de,S=1658,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T16:00:17Z</date> + </dict> + <key>1155398680.H95312P14345.mbox1.freenet.de,S=5500,L=141</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T16:12:37Z</date> + </dict> + <key>1155398690.H251433P14586.mbox1.freenet.de,S=2025,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-12T16:12:37Z</date> + </dict> + <key>1155399622.H294694P31838.mbox1.freenet.de,S=1643,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:20Z</date> + </dict> + <key>1155401459.H913217P28572.mbox1.freenet.de,S=2554,L=94</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155404891.H231218P23227.mbox1.freenet.de,S=1675,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155408089.H425332P10206.mbox1.freenet.de,S=2251,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155412433.H747029P3760.mbox1.freenet.de,S=1912,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155414118.H534159P31022.mbox1.freenet.de,S=2836,L=97</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155425735.H926302P27336.mbox1.freenet.de,S=1580,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155429421.H583293P26482.mbox1.freenet.de,S=2703,L=96</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:24Z</date> + </dict> + <key>1155432697.H707953P20293.mbox1.freenet.de,S=3295,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:27Z</date> + </dict> + <key>1155442908.H622889P29028.mbox1.freenet.de,S=15653,L=212</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:27Z</date> + </dict> + <key>1155447888.H964302P4158.mbox1.freenet.de,S=1773,L=60</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:27Z</date> + </dict> + <key>1155449311.H702848P16196.mbox1.freenet.de,S=2806,L=97</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:27Z</date> + </dict> + <key>1155452938.H544521P27881.mbox1.freenet.de,S=1319,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:27Z</date> + </dict> + <key>1155459240.H508185P13192.mbox1.freenet.de,S=1695,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T09:07:27Z</date> + </dict> + <key>1155466103.H392282P30143.mbox1.freenet.de,S=2893,L=101</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T10:54:42Z</date> + </dict> + <key>1155467153.H142108P13986.mbox1.freenet.de,S=1748,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T11:07:41Z</date> + </dict> + <key>1155468819.H15840P9570.mbox1.freenet.de,S=5005,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T11:36:45Z</date> + </dict> + <key>1155479457.H723406P8075.mbox1.freenet.de,S=2847,L=101</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:22Z</date> + </dict> + <key>1155482043.H738903P18244.mbox1.freenet.de,S=15708,L=213</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155485750.H781909P19673.mbox1.freenet.de,S=5492,L=139</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155487081.H464166P18373.mbox1.freenet.de,S=1571,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155489196.H263823P4222.mbox1.freenet.de,S=2037,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155489237.H334522P5149.mbox1.freenet.de,S=1672,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155492259.H868827P2084.mbox1.freenet.de,S=2749,L=88</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155494078.H223060P6524.mbox1.freenet.de,S=2068,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155495377.H271409P8759.mbox1.freenet.de,S=2002,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155499124.H310745P21654.mbox1.freenet.de,S=13691,L=203</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-13T20:15:25Z</date> + </dict> + <key>1155502236.H453831P28981.mbox1.freenet.de,S=1974,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:16Z</date> + </dict> + <key>1155502536.H4863P7134.mbox1.freenet.de,S=3423,L=103</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:16Z</date> + </dict> + <key>1155504322.H792521P10662.mbox1.freenet.de,S=2113,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:16Z</date> + </dict> + <key>1155505529.H281536P26985.mbox1.freenet.de,S=2625,L=87</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:16Z</date> + </dict> + <key>1155506205.H322296P1896.mbox1.freenet.de,S=1785,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:16Z</date> + </dict> + <key>1155506625.H931796P6990.mbox1.freenet.de,S=1673,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155507649.H402055P18118.mbox1.freenet.de,S=2829,L=73</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155510882.H358588P21362.mbox1.freenet.de,S=15722,L=213</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155510919.H587150P21798.mbox1.freenet.de,S=1632,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155511387.H485218P26769.mbox1.freenet.de,S=2659,L=101</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155511644.H820998P29150.mbox1.freenet.de,S=31715,L=537</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155520110.H948986P24237.mbox1.freenet.de,S=3381,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155525640.H835576P13636.mbox1.freenet.de,S=1472,L=32</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155539870.H521633P14256.mbox1.freenet.de,S=3752,L=161</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:24:17Z</date> + </dict> + <key>1155540611.H107641P28092.mbox1.freenet.de,S=2791,L=90</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T07:53:33Z</date> + </dict> + <key>1155547625.H571328P4725.mbox1.freenet.de,S=6181,L=138</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T14:32:37Z</date> + </dict> + <key>1155548287.H367423P19149.mbox1.freenet.de,S=2137,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T14:32:43Z</date> + </dict> + <key>1155554846.H614484P3380.mbox1.freenet.de,S=2672,L=86</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T14:32:43Z</date> + </dict> + <key>1155555174.H616170P9716.mbox1.freenet.de,S=4045,L=114</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T14:32:43Z</date> + </dict> + <key>1155555283.H376477P12879.mbox1.freenet.de,S=5019,L=130</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T14:32:43Z</date> + </dict> + <key>1155562611.H618120P10679.mbox1.freenet.de,S=1601,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T14:32:43Z</date> + </dict> + <key>1155567178.H899466P23120.mbox1.freenet.de,S=2537,L=85</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T15:32:41Z</date> + </dict> + <key>1155571046.H656123P19290.mbox1.freenet.de,S=15656,L=214</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:24Z</date> + </dict> + <key>1155572350.H939519P19072.mbox1.freenet.de,S=3646,L=103</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:25Z</date> + </dict> + <key>1155573494.H112844P11809.mbox1.freenet.de,S=10648,L=184</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:25Z</date> + </dict> + <key>1155573879.H715341P19888.mbox1.freenet.de,S=18996,L=392</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:25Z</date> + </dict> + <key>1155574584.H945804P2119.mbox1.freenet.de,S=4504,L=121</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:25Z</date> + </dict> + <key>1155575961.H332723P1198.mbox1.freenet.de,S=1510,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:25Z</date> + </dict> + <key>1155576490.H541871P15183.mbox1.freenet.de,S=1606,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:25Z</date> + </dict> + <key>1155579837.H72419P26294.mbox1.freenet.de,S=2002,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:26Z</date> + </dict> + <key>1155583115.H958331P27966.mbox1.freenet.de,S=1784,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:26Z</date> + </dict> + <key>1155584199.H239307P14726.mbox1.freenet.de,S=3479,L=108</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T19:57:26Z</date> + </dict> + <key>1155586181.H922796P27202.mbox1.freenet.de,S=1683,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T20:25:36Z</date> + </dict> + <key>1155588441.H876897P8510.mbox1.freenet.de,S=3823,L=162</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T20:53:00Z</date> + </dict> + <key>1155591961.H958739P27676.mbox1.freenet.de,S=8528,L=244</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-14T21:46:26Z</date> + </dict> + <key>1155592810.H178870P7600.mbox1.freenet.de,S=2443,L=86</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:51Z</date> + </dict> + <key>1155594577.H226466P30501.mbox1.freenet.de,S=1377,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:52Z</date> + </dict> + <key>1155594767.H359327P502.mbox1.freenet.de,S=2044,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:52Z</date> + </dict> + <key>1155595308.H206945P9299.mbox1.freenet.de,S=1539,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:52Z</date> + </dict> + <key>1155595714.H968683P18026.mbox1.freenet.de,S=1371,L=26</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:52Z</date> + </dict> + <key>1155605575.H514963P11444.mbox1.freenet.de,S=1582,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:52Z</date> + </dict> + <key>1155609054.H722461P26093.mbox1.freenet.de,S=1342,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:53Z</date> + </dict> + <key>1155609241.H114172P28491.mbox1.freenet.de,S=2377,L=86</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:53Z</date> + </dict> + <key>1155612954.H927628P8467.mbox1.freenet.de,S=14415,L=202</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:53Z</date> + </dict> + <key>1155613298.H183926P12165.mbox1.freenet.de,S=1594,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:54Z</date> + </dict> + <key>1155623498.H162605P23815.mbox1.freenet.de,S=18287,L=285</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:16:54Z</date> + </dict> + <key>1155627002.H454741P12744.mbox1.freenet.de,S=1289,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:31:50Z</date> + </dict> + <key>1155627889.H742535P26819.mbox1.freenet.de,S=2535,L=87</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T07:57:39Z</date> + </dict> + <key>1155634162.H456816P23232.mbox1.freenet.de,S=1713,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T09:31:47Z</date> + </dict> + <key>1155639133.H569323P26340.mbox1.freenet.de,S=52499,L=954</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T13:39:24Z</date> + </dict> + <key>1155642027.H16248P21003.mbox1.freenet.de,S=2468,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T13:39:29Z</date> + </dict> + <key>1155646523.H196753P28653.mbox1.freenet.de,S=4907,L=129</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T13:39:29Z</date> + </dict> + <key>1155647354.H345973P19847.mbox1.freenet.de,S=4138,L=70</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T13:39:29Z</date> + </dict> + <key>1155649003.H40740P30415.mbox1.freenet.de,S=14780,L=202</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T13:39:29Z</date> + </dict> + <key>1155655360.H224743P23901.mbox1.freenet.de,S=1751,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T15:23:49Z</date> + </dict> + <key>1155656257.H442639P10814.mbox1.freenet.de,S=12463,L=189</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:43Z</date> + </dict> + <key>1155658727.H21998P28019.mbox1.freenet.de,S=2629,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155660222.H789857P31515.mbox1.freenet.de,S=1713,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155660373.H539501P4119.mbox1.freenet.de,S=3977,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155660849.H475683P18605.mbox1.freenet.de,S=1779,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155661050.H849347P23410.mbox1.freenet.de,S=1723,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155662519.H272115P25223.mbox1.freenet.de,S=4066,L=120</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155663279.H93787P15524.mbox1.freenet.de,S=3286,L=99</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:20:47Z</date> + </dict> + <key>1155666170.H581264P16357.mbox1.freenet.de,S=1964,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T18:25:38Z</date> + </dict> + <key>1155672629.H698046P26779.mbox1.freenet.de,S=14858,L=202</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T20:13:32Z</date> + </dict> + <key>1155675970.H481059P829.mbox1.freenet.de,S=30101,L=568</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T21:14:42Z</date> + </dict> + <key>1155676427.H227690P9433.mbox1.freenet.de,S=28530,L=547</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-15T21:14:42Z</date> + </dict> + <key>1155679020.H360235P24199.mbox1.freenet.de,S=5379,L=138</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:32:57Z</date> + </dict> + <key>1155679259.H975948P30996.mbox1.freenet.de,S=1665,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155679666.H222655P5397.mbox1.freenet.de,S=13472,L=194</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155682595.H840883P17634.mbox1.freenet.de,S=2482,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155683025.H4077P24194.mbox1.freenet.de,S=28912,L=550</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155698954.H56251P20772.mbox1.freenet.de,S=1610,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155699730.H136388P29061.mbox1.freenet.de,S=13510,L=194</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155708190.H419348P27568.mbox1.freenet.de,S=1639,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:01Z</date> + </dict> + <key>1155708619.H61568P4130.mbox1.freenet.de,S=4824,L=73</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:02Z</date> + </dict> + <key>1155708934.H719113P13560.mbox1.freenet.de,S=4427,L=69</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:02Z</date> + </dict> + <key>1155709249.H561354P21490.mbox1.freenet.de,S=4621,L=68</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:33:02Z</date> + </dict> + <key>1155710073.H447832P6614.mbox1.freenet.de,S=2523,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T06:37:10Z</date> + </dict> + <key>1155712109.H228570P13737.mbox1.freenet.de,S=3950,L=163</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T07:16:49Z</date> + </dict> + <key>1155715259.H942469P29561.mbox1.freenet.de,S=4777,L=70</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T08:08:37Z</date> + </dict> + <key>1155726497.H229006P18946.mbox1.freenet.de,S=5076,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T11:27:53Z</date> + </dict> + <key>1155726841.H315888P31526.mbox1.freenet.de,S=2505,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T11:27:53Z</date> + </dict> + <key>1155731830.H203362P7473.mbox1.freenet.de,S=31693,L=579</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T12:40:23Z</date> + </dict> + <key>1155733467.H948324P28575.mbox1.freenet.de,S=29670,L=568</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T13:12:49Z</date> + </dict> + <key>1155740627.H596547P27213.mbox1.freenet.de,S=5489,L=143</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T19:17:33Z</date> + </dict> + <key>1155744035.H967627P7422.mbox1.freenet.de,S=1296,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T19:17:35Z</date> + </dict> + <key>1155745060.H914526P32159.mbox1.freenet.de,S=2595,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T19:17:35Z</date> + </dict> + <key>1155753499.H839663P19946.mbox1.freenet.de,S=1682,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T19:17:35Z</date> + </dict> + <key>1155754705.H760692P11736.mbox1.freenet.de,S=9002,L=379</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-16T19:17:35Z</date> + </dict> + <key>1155757129.H73453P26817.mbox1.freenet.de,S=3900,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:37Z</date> + </dict> + <key>1155762271.H271538P26592.mbox1.freenet.de,S=9158,L=380</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:40Z</date> + </dict> + <key>1155762960.H196055P6057.mbox1.freenet.de,S=2775,L=97</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:40Z</date> + </dict> + <key>1155764084.H509441P23252.mbox1.freenet.de,S=1709,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:40Z</date> + </dict> + <key>1155764556.H644385P29660.mbox1.freenet.de,S=14251,L=199</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:40Z</date> + </dict> + <key>1155774936.H450120P5009.mbox1.freenet.de,S=2777,L=103</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:40Z</date> + </dict> + <key>1155780523.H871720P4329.mbox1.freenet.de,S=3183,L=99</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:41Z</date> + </dict> + <key>1155783955.H51113P13218.mbox1.freenet.de,S=1799,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:41Z</date> + </dict> + <key>1155784022.H990661P14043.mbox1.freenet.de,S=14539,L=199</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:41Z</date> + </dict> + <key>1155793718.H955690P17050.mbox1.freenet.de,S=34755,L=632</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T06:30:41Z</date> + </dict> + <key>1155801361.H759607P6409.mbox1.freenet.de,S=2647,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:37Z</date> + </dict> + <key>1155802366.H621150P28413.mbox1.freenet.de,S=2917,L=66</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:40Z</date> + </dict> + <key>1155802717.H226200P5106.mbox1.freenet.de,S=2787,L=66</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:40Z</date> + </dict> + <key>1155803161.H223217P17067.mbox1.freenet.de,S=1569,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:40Z</date> + </dict> + <key>1155807606.H620116P11099.mbox1.freenet.de,S=23684,L=829</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:40Z</date> + </dict> + <key>1155808943.H257985P8125.mbox1.freenet.de,S=1803,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:40Z</date> + </dict> + <key>1155810163.H393619P4857.mbox1.freenet.de,S=5100,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:18:40Z</date> + </dict> + <key>1155813863.H756962P28805.mbox1.freenet.de,S=1731,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:35:21Z</date> + </dict> + <key>1155815032.H298878P28376.mbox1.freenet.de,S=2763,L=82</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T11:53:34Z</date> + </dict> + <key>1155818963.H747901P22963.mbox1.freenet.de,S=34712,L=634</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:22Z</date> + </dict> + <key>1155818984.H739984P23410.mbox1.freenet.de,S=34308,L=633</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:23Z</date> + </dict> + <key>1155821900.H745528P30523.mbox1.freenet.de,S=14637,L=199</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155822043.H736444P1616.mbox1.freenet.de,S=5689,L=233</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155823988.H367897P19251.mbox1.freenet.de,S=3639,L=105</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155827411.H56325P7730.mbox1.freenet.de,S=4128,L=62</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155830753.H802421P22648.mbox1.freenet.de,S=2696,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155836839.H781658P6842.mbox1.freenet.de,S=3915,L=163</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155837795.H23180P1296.mbox1.freenet.de,S=1773,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:26Z</date> + </dict> + <key>1155840734.H800798P4865.mbox1.freenet.de,S=1689,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:27Z</date> + </dict> + <key>1155841425.H808648P21505.mbox1.freenet.de,S=34988,L=634</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:27Z</date> + </dict> + <key>1155844693.H738830P5437.mbox1.freenet.de,S=1424,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T20:32:27Z</date> + </dict> + <key>1155849030.H181753P18909.mbox1.freenet.de,S=2563,L=82</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T21:32:40Z</date> + </dict> + <key>1155850140.H201004P7026.mbox1.freenet.de,S=5513,L=141</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-17T21:32:40Z</date> + </dict> + <key>1155856569.H774450P31180.mbox1.freenet.de,S=14378,L=201</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:09Z</date> + </dict> + <key>1155858413.H985113P19952.mbox1.freenet.de,S=43251,L=733</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:10Z</date> + </dict> + <key>1155866739.H628872P13661.mbox1.freenet.de,S=14587,L=200</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:11Z</date> + </dict> + <key>1155867521.H542305P24567.mbox1.freenet.de,S=1470,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:11Z</date> + </dict> + <key>1155867939.H526630P498.mbox1.freenet.de,S=3322,L=101</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:11Z</date> + </dict> + <key>1155875999.H983999P3123.mbox1.freenet.de,S=7921,L=133</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:11Z</date> + </dict> + <key>1155876166.H404276P5169.mbox1.freenet.de,S=14596,L=201</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:11Z</date> + </dict> + <key>1155880133.H13635P26998.mbox1.freenet.de,S=1438,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:12Z</date> + </dict> + <key>1155881575.H161964P21959.mbox1.freenet.de,S=2546,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T06:27:12Z</date> + </dict> + <key>1155883400.H255525P17617.mbox1.freenet.de,S=7693,L=142</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T08:49:03Z</date> + </dict> + <key>1155884435.H930535P2478.mbox1.freenet.de,S=3339,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T08:49:04Z</date> + </dict> + <key>1155886199.H865896P10437.mbox1.freenet.de,S=40408,L=703</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T08:49:06Z</date> + </dict> + <key>1155886812.H222537P23034.mbox1.freenet.de,S=34692,L=632</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T08:49:06Z</date> + </dict> + <key>1155888897.H165107P3093.mbox1.freenet.de,S=1728,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T08:49:06Z</date> + </dict> + <key>1155894239.H249312P22078.mbox1.freenet.de,S=35341,L=635</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T10:27:53Z</date> + </dict> + <key>1155896408.H218608P8208.mbox1.freenet.de,S=36962,L=888</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T10:27:54Z</date> + </dict> + <key>1155899834.H107315P29722.mbox1.freenet.de,S=5051,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T13:42:12Z</date> + </dict> + <key>1155900128.H579880P5438.mbox1.freenet.de,S=1796,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T13:42:13Z</date> + </dict> + <key>1155908232.H143450P24816.mbox1.freenet.de,S=2679,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T13:42:13Z</date> + </dict> + <key>1155908730.H379921P3969.mbox1.freenet.de,S=1839,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T13:47:16Z</date> + </dict> + <key>1155909184.H50144P16561.mbox1.freenet.de,S=2705,L=96</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T17:40:33Z</date> + </dict> + <key>1155919201.H953928P10247.mbox1.freenet.de,S=14635,L=200</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T17:40:36Z</date> + </dict> + <key>1155919500.H299571P18227.mbox1.freenet.de,S=2781,L=83</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T17:40:36Z</date> + </dict> + <key>1155922317.H155721P10234.mbox1.freenet.de,S=3723,L=59</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T17:40:36Z</date> + </dict> + <key>1155926157.H516665P26689.mbox1.freenet.de,S=3872,L=162</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T18:45:07Z</date> + </dict> + <key>1155930117.H43110P409.mbox1.freenet.de,S=1657,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T19:42:59Z</date> + </dict> + <key>1155930487.H459342P6935.mbox1.freenet.de,S=1810,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T19:52:18Z</date> + </dict> + <key>1155931871.H711403P31320.mbox1.freenet.de,S=2754,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-18T20:13:08Z</date> + </dict> + <key>1155940967.H661079P21403.mbox1.freenet.de,S=3892,L=82</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155942954.H959054P13213.mbox1.freenet.de,S=2606,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155943594.H830163P21738.mbox1.freenet.de,S=14496,L=199</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155953941.H375532P22922.mbox1.freenet.de,S=37663,L=650</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155955639.H224625P4873.mbox1.freenet.de,S=2534,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155956770.H717876P16828.mbox1.freenet.de,S=1353,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155958211.H395151P1885.mbox1.freenet.de,S=1575,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:11Z</date> + </dict> + <key>1155959154.H720265P12713.mbox1.freenet.de,S=1645,L=29</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:12Z</date> + </dict> + <key>1155962213.H850812P15620.mbox1.freenet.de,S=3313,L=99</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:12Z</date> + </dict> + <key>1155964530.H674989P10524.mbox1.freenet.de,S=2473,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T06:32:12Z</date> + </dict> + <key>1155971182.H958306P25902.mbox1.freenet.de,S=1764,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T07:09:18Z</date> + </dict> + <key>1155975654.H360857P32746.mbox1.freenet.de,S=24281,L=380</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T08:21:55Z</date> + </dict> + <key>1155978606.H882247P21614.mbox1.freenet.de,S=4750,L=215</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T09:20:11Z</date> + </dict> + <key>1155978609.H91622P21762.mbox1.freenet.de,S=2843,L=83</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T09:20:12Z</date> + </dict> + <key>1155983252.H142286P31396.mbox1.freenet.de,S=1725,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T14:01:58Z</date> + </dict> + <key>1155990327.H250456P14330.mbox1.freenet.de,S=40658,L=710</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T14:01:59Z</date> + </dict> + <key>1155992006.H268992P14095.mbox1.freenet.de,S=5002,L=131</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T14:01:59Z</date> + </dict> + <key>1155993464.H775200P5734.mbox1.freenet.de,S=2750,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T14:01:59Z</date> + </dict> + <key>1155993923.H23966P13335.mbox1.freenet.de,S=1806,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T14:02:00Z</date> + </dict> + <key>1155998626.H531558P24470.mbox1.freenet.de,S=2782,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T15:17:45Z</date> + </dict> + <key>1156000731.H835960P7899.mbox1.freenet.de,S=13307,L=218</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T15:24:13Z</date> + </dict> + <key>1156001862.H12790P29824.mbox1.freenet.de,S=42175,L=796</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T15:47:46Z</date> + </dict> + <key>1156002114.H868256P2154.mbox1.freenet.de,S=2789,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T15:47:47Z</date> + </dict> + <key>1156002227.H64014P4163.mbox1.freenet.de,S=1648,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T15:47:47Z</date> + </dict> + <key>1156005285.H611697P29480.mbox1.freenet.de,S=3484,L=102</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T16:47:49Z</date> + </dict> + <key>1156005955.H380622P10683.mbox1.freenet.de,S=1664,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T16:47:50Z</date> + </dict> + <key>1156006709.H199343P23552.mbox1.freenet.de,S=3596,L=84</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T17:24:01Z</date> + </dict> + <key>1156008044.H808442P12305.mbox1.freenet.de,S=2899,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T17:24:01Z</date> + </dict> + <key>1156008369.H960103P17621.mbox1.freenet.de,S=2836,L=61</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T17:28:01Z</date> + </dict> + <key>1156008381.H841515P17850.mbox1.freenet.de,S=3458,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T17:28:01Z</date> + </dict> + <key>1156008500.H671840P19682.mbox1.freenet.de,S=4883,L=107</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T17:32:47Z</date> + </dict> + <key>1156008786.H901063P24353.mbox1.freenet.de,S=1410,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-19T18:26:38Z</date> + </dict> + <key>1156014162.H151759P29462.mbox1.freenet.de,S=8207,L=211</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:30Z</date> + </dict> + <key>1156014181.H164973P29778.mbox1.freenet.de,S=2801,L=83</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:33Z</date> + </dict> + <key>1156014251.H352625P31015.mbox1.freenet.de,S=4357,L=103</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156014340.H455048P320.mbox1.freenet.de,S=6468,L=159</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156014743.H629783P6625.mbox1.freenet.de,S=53033,L=881</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156018123.H961397P5943.mbox1.freenet.de,S=3905,L=163</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156028379.H828505P27266.mbox1.freenet.de,S=2767,L=82</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156028508.H894P29445.mbox1.freenet.de,S=1839,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156030327.H474473P18724.mbox1.freenet.de,S=1649,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156030963.H627766P28091.mbox1.freenet.de,S=2522,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156031101.H865938P30784.mbox1.freenet.de,S=1884,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156035905.H438180P20429.mbox1.freenet.de,S=16274,L=222</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156038032.H113870P16352.mbox1.freenet.de,S=7836,L=156</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:35Z</date> + </dict> + <key>1156044240.H86659P12513.mbox1.freenet.de,S=1682,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:36Z</date> + </dict> + <key>1156051753.H810260P18368.mbox1.freenet.de,S=1558,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:36Z</date> + </dict> + <key>1156052106.H745766P25697.mbox1.freenet.de,S=1661,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:36Z</date> + </dict> + <key>1156052701.H989197P4642.mbox1.freenet.de,S=3779,L=57</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:36Z</date> + </dict> + <key>1156054400.H787458P23430.mbox1.freenet.de,S=1741,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:36Z</date> + </dict> + <key>1156058019.H137367P3773.mbox1.freenet.de,S=39348,L=700</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:36Z</date> + </dict> + <key>1156058731.H311112P14455.mbox1.freenet.de,S=39941,L=706</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:37Z</date> + </dict> + <key>1156060483.H441837P7720.mbox1.freenet.de,S=2072,L=46</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:37Z</date> + </dict> + <key>1156061154.H29866P20249.mbox1.freenet.de,S=3251,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:37Z</date> + </dict> + <key>1156061500.H245944P30226.mbox1.freenet.de,S=1849,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T09:54:37Z</date> + </dict> + <key>1156068184.H339810P27736.mbox1.freenet.de,S=2760,L=103</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T10:42:01Z</date> + </dict> + <key>1156069993.H861771P26685.mbox1.freenet.de,S=1731,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T10:42:02Z</date> + </dict> + <key>1156072809.H896197P13488.mbox1.freenet.de,S=2683,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T11:26:58Z</date> + </dict> + <key>1156073950.H741083P2725.mbox1.freenet.de,S=2736,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T13:46:06Z</date> + </dict> + <key>1156074277.H297055P12345.mbox1.freenet.de,S=4930,L=216</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T13:46:07Z</date> + </dict> + <key>1156074822.H289674P486.mbox1.freenet.de,S=1674,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T13:46:07Z</date> + </dict> + <key>1156076589.H226383P3006.mbox1.freenet.de,S=13122,L=182</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T13:46:07Z</date> + </dict> + <key>1156082622.H613666P8035.mbox1.freenet.de,S=1490,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T14:05:51Z</date> + </dict> + <key>1156084473.H524332P15040.mbox1.freenet.de,S=1386,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T14:36:01Z</date> + </dict> + <key>1156090742.H552842P4682.mbox1.freenet.de,S=1724,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T16:26:17Z</date> + </dict> + <key>1156090980.H629428P10269.mbox1.freenet.de,S=40061,L=704</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T16:26:18Z</date> + </dict> + <key>1156093399.H69021P27455.mbox1.freenet.de,S=2605,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T20:32:26Z</date> + </dict> + <key>1156093776.H964394P3345.mbox1.freenet.de,S=1648,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T20:32:28Z</date> + </dict> + <key>1156100633.H224315P22071.mbox1.freenet.de,S=6550,L=176</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T20:32:28Z</date> + </dict> + <key>1156100691.H592228P23082.mbox1.freenet.de,S=8705,L=235</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T20:32:28Z</date> + </dict> + <key>1156104739.H462735P1094.mbox1.freenet.de,S=2602,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-20T20:32:28Z</date> + </dict> + <key>1156109830.H17914P19227.mbox1.freenet.de,S=2492,L=78</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:49Z</date> + </dict> + <key>1156112101.H795367P17167.mbox1.freenet.de,S=2647,L=101</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156113315.H343544P762.mbox1.freenet.de,S=1658,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156114091.H694234P11549.mbox1.freenet.de,S=1772,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156115165.H762268P24644.mbox1.freenet.de,S=14527,L=200</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156116327.H660320P9489.mbox1.freenet.de,S=1460,L=38</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156116534.H55291P13612.mbox1.freenet.de,S=1449,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156119986.H882019P25652.mbox1.freenet.de,S=2823,L=104</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:50Z</date> + </dict> + <key>1156122853.H28178P27742.mbox1.freenet.de,S=2002,L=45</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:51Z</date> + </dict> + <key>1156131466.H176825P3041.mbox1.freenet.de,S=1708,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:51Z</date> + </dict> + <key>1156133130.H663462P20675.mbox1.freenet.de,S=2592,L=78</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:51Z</date> + </dict> + <key>1156133473.H468753P24781.mbox1.freenet.de,S=1739,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:51Z</date> + </dict> + <key>1156141359.H46959P9189.mbox1.freenet.de,S=1998,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:51Z</date> + </dict> + <key>1156141630.H425226P15434.mbox1.freenet.de,S=40631,L=707</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T06:48:52Z</date> + </dict> + <key>1156143777.H401918P28037.mbox1.freenet.de,S=37278,L=697</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T07:11:22Z</date> + </dict> + <key>1156145388.H594392P28582.mbox1.freenet.de,S=2833,L=97</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T07:47:00Z</date> + </dict> + <key>1156151885.H882182P30496.mbox1.freenet.de,S=1743,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T12:46:55Z</date> + </dict> + <key>1156153111.H998990P24464.mbox1.freenet.de,S=4674,L=114</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T12:46:56Z</date> + </dict> + <key>1156154981.H430092P31085.mbox1.freenet.de,S=2626,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T12:46:56Z</date> + </dict> + <key>1156155567.H266846P10396.mbox1.freenet.de,S=37062,L=649</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T12:46:57Z</date> + </dict> + <key>1156156653.H123786P1237.mbox1.freenet.de,S=1770,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T12:46:57Z</date> + </dict> + <key>1156170396.H551730P19808.mbox1.freenet.de,S=41193,L=711</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T15:18:19Z</date> + </dict> + <key>1156170466.H740758P21835.mbox1.freenet.de,S=51711,L=869</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T15:18:20Z</date> + </dict> + <key>1156171031.H926392P4585.mbox1.freenet.de,S=2822,L=82</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T15:18:20Z</date> + </dict> + <key>1156172230.H512316P6915.mbox1.freenet.de,S=24759,L=720</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T15:18:21Z</date> + </dict> + <key>1156172650.H717242P18326.mbox1.freenet.de,S=36601,L=652</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T15:18:21Z</date> + </dict> + <key>1156173039.H615099P28777.mbox1.freenet.de,S=1559,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T15:18:22Z</date> + </dict> + <key>1156177594.H375484P16541.mbox1.freenet.de,S=1656,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T17:44:50Z</date> + </dict> + <key>1156179152.H152794P24323.mbox1.freenet.de,S=4969,L=131</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T17:44:50Z</date> + </dict> + <key>1156179647.H207059P6245.mbox1.freenet.de,S=16092,L=443</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T17:44:51Z</date> + </dict> + <key>1156179723.H67824P7891.mbox1.freenet.de,S=15277,L=348</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T17:44:51Z</date> + </dict> + <key>1156180060.H346675P15430.mbox1.freenet.de,S=1685,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T17:44:51Z</date> + </dict> + <key>1156184445.H418632P10236.mbox1.freenet.de,S=4378,L=89</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T19:14:56Z</date> + </dict> + <key>1156186699.H700456P19447.mbox1.freenet.de,S=1233,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T19:14:56Z</date> + </dict> + <key>1156187075.H773717P27146.mbox1.freenet.de,S=6439,L=168</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T19:14:56Z</date> + </dict> + <key>1156187142.H119915P28764.mbox1.freenet.de,S=24952,L=729</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T19:14:57Z</date> + </dict> + <key>1156188434.H624660P25438.mbox1.freenet.de,S=1233,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T19:28:29Z</date> + </dict> + <key>1156190016.H585491P4204.mbox1.freenet.de,S=1233,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T20:10:45Z</date> + </dict> + <key>1156190229.H892273P10385.mbox1.freenet.de,S=31774,L=502</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T20:10:46Z</date> + </dict> + <key>1156191121.H58939P1014.mbox1.freenet.de,S=8464,L=170</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T20:15:48Z</date> + </dict> + <key>1156192210.H445719P28360.mbox1.freenet.de,S=3627,L=103</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T20:33:16Z</date> + </dict> + <key>1156193539.H965586P24560.mbox1.freenet.de,S=1691,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-21T20:53:33Z</date> + </dict> + <key>1156194052.H843898P1112.mbox1.freenet.de,S=1967,L=44</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:22Z</date> + </dict> + <key>1156196073.H946686P6609.mbox1.freenet.de,S=2988,L=69</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:24Z</date> + </dict> + <key>1156196215.H436396P8975.mbox1.freenet.de,S=7371,L=200</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:24Z</date> + </dict> + <key>1156196403.H875793P12311.mbox1.freenet.de,S=2590,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:24Z</date> + </dict> + <key>1156197011.H296928P21563.mbox1.freenet.de,S=3738,L=86</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:24Z</date> + </dict> + <key>1156200476.H48277P29045.mbox1.freenet.de,S=1986,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:25Z</date> + </dict> + <key>1156201055.H431831P10859.mbox1.freenet.de,S=1968,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:25Z</date> + </dict> + <key>1156203189.H194716P13945.mbox1.freenet.de,S=2412,L=64</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:25Z</date> + </dict> + <key>1156204076.H822392P25643.mbox1.freenet.de,S=1589,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:25Z</date> + </dict> + <key>1156204147.H248290P26727.mbox1.freenet.de,S=2650,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:25Z</date> + </dict> + <key>1156207011.H734989P30440.mbox1.freenet.de,S=30056,L=489</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:28Z</date> + </dict> + <key>1156210710.H728400P8151.mbox1.freenet.de,S=2498,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:28Z</date> + </dict> + <key>1156213391.H964402P5554.mbox1.freenet.de,S=5473,L=143</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:28Z</date> + </dict> + <key>1156215292.H927815P28287.mbox1.freenet.de,S=1586,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:28Z</date> + </dict> + <key>1156217397.H976068P19638.mbox1.freenet.de,S=1479,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T06:40:28Z</date> + </dict> + <key>1156229965.H933681P25828.mbox1.freenet.de,S=2421,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T07:14:03Z</date> + </dict> + <key>1156234060.H167927P7982.mbox1.freenet.de,S=3144,L=98</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T10:09:21Z</date> + </dict> + <key>1156240198.H552010P24198.mbox1.freenet.de,S=38144,L=593</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T10:09:21Z</date> + </dict> + <key>1156240239.H444189P25491.mbox1.freenet.de,S=38042,L=599</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T10:09:21Z</date> + </dict> + <key>1156243974.H843643P20009.mbox1.freenet.de,S=1676,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T13:10:59Z</date> + </dict> + <key>1156247073.H368328P32534.mbox1.freenet.de,S=36249,L=569</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T13:11:02Z</date> + </dict> + <key>1156247921.H894091P26986.mbox1.freenet.de,S=2596,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T13:11:03Z</date> + </dict> + <key>1156248662.H609680P13224.mbox1.freenet.de,S=37647,L=593</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T13:11:03Z</date> + </dict> + <key>1156254708.H669035P13799.mbox1.freenet.de,S=1542,L=27</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T13:56:52Z</date> + </dict> + <key>1156256353.H821648P30051.mbox1.freenet.de,S=3774,L=98</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T14:20:54Z</date> + </dict> + <key>1156256369.H12830P30457.mbox1.freenet.de,S=17408,L=480</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T14:20:55Z</date> + </dict> + <key>1156256982.H147690P13434.mbox1.freenet.de,S=1567,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T14:31:14Z</date> + </dict> + <key>1156260058.H608282P25599.mbox1.freenet.de,S=2984,L=66</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:04Z</date> + </dict> + <key>1156260534.H14160P5828.mbox1.freenet.de,S=3533,L=104</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:08Z</date> + </dict> + <key>1156265731.H362387P27705.mbox1.freenet.de,S=2127,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:08Z</date> + </dict> + <key>1156265942.H904452P1499.mbox1.freenet.de,S=2295,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:08Z</date> + </dict> + <key>1156273508.H146082P6958.mbox1.freenet.de,S=23332,L=624</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:08Z</date> + </dict> + <key>1156274107.H293316P22750.mbox1.freenet.de,S=5610,L=144</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:11Z</date> + </dict> + <key>1156275874.H463874P31726.mbox1.freenet.de,S=2711,L=81</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T19:53:11Z</date> + </dict> + <key>1156277419.H710606P2701.mbox1.freenet.de,S=2563,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-22T20:24:08Z</date> + </dict> + <key>1156285689.H685812P12554.mbox1.freenet.de,S=5035,L=121</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:04Z</date> + </dict> + <key>1156286221.H591132P20728.mbox1.freenet.de,S=1667,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:05Z</date> + </dict> + <key>1156286563.H445822P29014.mbox1.freenet.de,S=1444,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:05Z</date> + </dict> + <key>1156289183.H89604P29422.mbox1.freenet.de,S=1575,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156289963.H647307P6913.mbox1.freenet.de,S=3304,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156290394.H586113P16128.mbox1.freenet.de,S=5022,L=128</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156293727.H129171P20060.mbox1.freenet.de,S=1420,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156297635.H278548P20388.mbox1.freenet.de,S=1679,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156300709.H183097P594.mbox1.freenet.de,S=2569,L=78</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156305288.H901531P8596.mbox1.freenet.de,S=2933,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156310085.H727481P21928.mbox1.freenet.de,S=1594,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:06Z</date> + </dict> + <key>1156311497.H823295P7719.mbox1.freenet.de,S=17437,L=292</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:07Z</date> + </dict> + <key>1156311960.H256277P16603.mbox1.freenet.de,S=1878,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:41:07Z</date> + </dict> + <key>1156315347.H730367P1334.mbox1.freenet.de,S=2576,L=79</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:48:34Z</date> + </dict> + <key>1156315856.H546199P10284.mbox1.freenet.de,S=5053,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:58:08Z</date> + </dict> + <key>1156316015.H836293P15059.mbox1.freenet.de,S=2637,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T06:58:08Z</date> + </dict> + <key>1156317490.H316128P12220.mbox1.freenet.de,S=1609,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T07:53:19Z</date> + </dict> + <key>1156323069.H397905P7644.mbox1.freenet.de,S=1731,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:31Z</date> + </dict> + <key>1156328305.H107557P11033.mbox1.freenet.de,S=2684,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:31Z</date> + </dict> + <key>1156328610.H899510P21236.mbox1.freenet.de,S=20398,L=332</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:32Z</date> + </dict> + <key>1156329141.H976121P6861.mbox1.freenet.de,S=22614,L=364</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:34Z</date> + </dict> + <key>1156329381.H661923P16478.mbox1.freenet.de,S=3571,L=102</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:34Z</date> + </dict> + <key>1156331767.H169951P4175.mbox1.freenet.de,S=19386,L=321</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:34Z</date> + </dict> + <key>1156333292.H687377P23174.mbox1.freenet.de,S=19034,L=316</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:01:35Z</date> + </dict> + <key>1156335065.H813527P25388.mbox1.freenet.de,S=1855,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:20:52Z</date> + </dict> + <key>1156335128.H506627P27897.mbox1.freenet.de,S=34219,L=596</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T12:20:52Z</date> + </dict> + <key>1156337693.H916709P26274.mbox1.freenet.de,S=1488,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T14:33:15Z</date> + </dict> + <key>1156339969.H201016P29226.mbox1.freenet.de,S=2729,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T14:33:16Z</date> + </dict> + <key>1156340983.H489572P1578.mbox1.freenet.de,S=5353,L=138</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T14:33:18Z</date> + </dict> + <key>1156343905.H613262P29822.mbox1.freenet.de,S=18033,L=871</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T14:42:42Z</date> + </dict> + <key>1156347308.H585921P10247.mbox1.freenet.de,S=2509,L=78</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:03:36Z</date> + </dict> + <key>1156348235.H605443P5820.mbox1.freenet.de,S=24063,L=831</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:03:37Z</date> + </dict> + <key>1156349535.H189526P13945.mbox1.freenet.de,S=2784,L=82</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:03:37Z</date> + </dict> + <key>1156349791.H518401P22732.mbox1.freenet.de,S=7069,L=186</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:03:38Z</date> + </dict> + <key>1156352330.H449068P8873.mbox1.freenet.de,S=6059,L=155</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:03:38Z</date> + </dict> + <key>1156352921.H600969P29626.mbox1.freenet.de,S=25063,L=716</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:18:15Z</date> + </dict> + <key>1156353931.H733759P28776.mbox1.freenet.de,S=9424,L=258</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:38:06Z</date> + </dict> + <key>1156354448.H385753P11448.mbox1.freenet.de,S=1666,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T17:38:06Z</date> + </dict> + <key>1156355946.H172785P26542.mbox1.freenet.de,S=3133,L=98</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T18:02:28Z</date> + </dict> + <key>1156356879.H751770P17495.mbox1.freenet.de,S=64948,L=1457</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T19:11:41Z</date> + </dict> + <key>1156357949.H742519P7828.mbox1.freenet.de,S=1742,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T19:11:41Z</date> + </dict> + <key>1156359742.H927083P11243.mbox1.freenet.de,S=8924,L=302</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T19:11:41Z</date> + </dict> + <key>1156359904.H859310P14363.mbox1.freenet.de,S=6729,L=173</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T19:11:41Z</date> + </dict> + <key>1156360217.H1360P19796.mbox1.freenet.de,S=1649,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T19:11:42Z</date> + </dict> + <key>1156360946.H982607P633.mbox1.freenet.de,S=39555,L=717</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T21:19:56Z</date> + </dict> + <key>1156363621.H577806P17175.mbox1.freenet.de,S=1587,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T21:20:00Z</date> + </dict> + <key>1156364087.H814559P31535.mbox1.freenet.de,S=1532,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T21:20:00Z</date> + </dict> + <key>1156364446.H917308P8932.mbox1.freenet.de,S=1621,L=32</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T21:20:00Z</date> + </dict> + <key>1156366127.H829818P8733.mbox1.freenet.de,S=1353,L=31</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-23T21:20:00Z</date> + </dict> + <key>1156369166.H442716P21101.mbox1.freenet.de,S=2562,L=70</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:44Z</date> + </dict> + <key>1156370291.H719P6952.mbox1.freenet.de,S=1616,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:45Z</date> + </dict> + <key>1156371667.H788296P29922.mbox1.freenet.de,S=4999,L=132</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:45Z</date> + </dict> + <key>1156375748.H902317P11345.mbox1.freenet.de,S=2497,L=77</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:45Z</date> + </dict> + <key>1156384457.H617314P16691.mbox1.freenet.de,S=1584,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:46Z</date> + </dict> + <key>1156389145.H523602P9740.mbox1.freenet.de,S=2575,L=80</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:46Z</date> + </dict> + <key>1156390322.H953020P24591.mbox1.freenet.de,S=2138,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:46Z</date> + </dict> + <key>1156391277.H842866P5178.mbox1.freenet.de,S=1573,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:46Z</date> + </dict> + <key>1156392812.H490436P26555.mbox1.freenet.de,S=1943,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T05:58:46Z</date> + </dict> + <key>1156409023.H275252P19047.mbox1.freenet.de,S=16951,L=282</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T10:16:05Z</date> + </dict> + <key>1156409406.H140046P26739.mbox1.freenet.de,S=1689,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T10:16:05Z</date> + </dict> + <key>1156415085.H201171P20387.mbox1.freenet.de,S=1814,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T10:25:52Z</date> + </dict> + <key>1156416657.H807142P26711.mbox1.freenet.de,S=312347,L=4119</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T10:56:18Z</date> + </dict> + <key>1156423141.H738283P9595.mbox1.freenet.de,S=8204,L=155</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T13:14:17Z</date> + </dict> + <key>1156423586.H986469P18910.mbox1.freenet.de,S=24526,L=378</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T13:14:19Z</date> + </dict> + <key>1156423766.H305574P22337.mbox1.freenet.de,S=1757,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T13:14:19Z</date> + </dict> + <key>1156426034.H411561P11292.mbox1.freenet.de,S=1751,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T14:53:56Z</date> + </dict> + <key>1156426257.H814508P17034.mbox1.freenet.de,S=2142,L=50</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T14:53:57Z</date> + </dict> + <key>1156432315.H944338P11912.mbox1.freenet.de,S=1689,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T15:40:00Z</date> + </dict> + <key>1156437064.H929760P27072.mbox1.freenet.de,S=1396,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T16:34:59Z</date> + </dict> + <key>1156437552.H24990P7839.mbox1.freenet.de,S=1772,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T18:00:14Z</date> + </dict> + <key>1156437671.H85068P11659.mbox1.freenet.de,S=1684,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T18:00:15Z</date> + </dict> + <key>1156441998.H409093P17815.mbox1.freenet.de,S=5785,L=139</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T18:00:15Z</date> + </dict> + <key>1156446198.H125878P7360.mbox1.freenet.de,S=8722,L=270</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T19:26:26Z</date> + </dict> + <key>1156446298.H279321P9602.mbox1.freenet.de,S=7215,L=203</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T19:26:26Z</date> + </dict> + <key>1156446397.H304492P11756.mbox1.freenet.de,S=20240,L=558</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T19:26:27Z</date> + </dict> + <key>1156450351.H298345P26939.mbox1.freenet.de,S=4133,L=115</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T21:15:59Z</date> + </dict> + <key>1156453995.H371780P29628.mbox1.freenet.de,S=1580,L=28</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-24T21:16:00Z</date> + </dict> + <key>1156460441.H902493P17252.mbox1.freenet.de,S=1585,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T06:39:53Z</date> + </dict> + <key>1156460928.H250512P22577.mbox1.freenet.de,S=2571,L=78</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T06:40:10Z</date> + </dict> + <key>1156468449.H428556P31977.mbox1.freenet.de,S=1758,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T06:40:10Z</date> + </dict> + <key>1156468701.H640830P2031.mbox1.freenet.de,S=2381,L=76</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T06:40:10Z</date> + </dict> + <key>1156471052.H538705P24970.mbox1.freenet.de,S=3245,L=90</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T06:40:10Z</date> + </dict> + <key>1156472233.H352865P4623.mbox1.freenet.de,S=542213,L=7800</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T06:40:13Z</date> + </dict> + <key>1156490541.H545396P8320.mbox1.freenet.de,S=96654,L=1346</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T07:25:02Z</date> + </dict> + <key>1156492596.H148223P20881.mbox1.freenet.de,S=1999,L=34</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T09:31:31Z</date> + </dict> + <key>1156493168.H185516P7060.mbox1.freenet.de,S=1816,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T09:31:31Z</date> + </dict> + <key>1156502823.H884919P26106.mbox1.freenet.de,S=1691,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T11:31:46Z</date> + </dict> + <key>1156507113.H321643P19255.mbox1.freenet.de,S=5378,L=140</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T12:35:04Z</date> + </dict> + <key>1156507414.H963810P28046.mbox1.freenet.de,S=2857,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T12:35:04Z</date> + </dict> + <key>1156513457.H597038P18199.mbox1.freenet.de,S=1486,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:22Z</date> + </dict> + <key>1156516574.H33272P14791.mbox1.freenet.de,S=6938,L=118</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:23Z</date> + </dict> + <key>1156517309.H650800P29358.mbox1.freenet.de,S=2982,L=75</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:23Z</date> + </dict> + <key>1156522127.H373876P2643.mbox1.freenet.de,S=1587,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:23Z</date> + </dict> + <key>1156522766.H246625P20682.mbox1.freenet.de,S=3333,L=100</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:23Z</date> + </dict> + <key>1156529537.H136065P26779.mbox1.freenet.de,S=3780,L=116</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:24Z</date> + </dict> + <key>1156530524.H954463P14172.mbox1.freenet.de,S=3712,L=115</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T18:39:24Z</date> + </dict> + <key>1156532587.H787648P19469.mbox1.freenet.de,S=16095,L=437</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T19:22:38Z</date> + </dict> + <key>1156532679.H554445P21183.mbox1.freenet.de,S=5584,L=162</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T19:22:38Z</date> + </dict> + <key>1156532748.H638119P22590.mbox1.freenet.de,S=9089,L=198</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T19:22:38Z</date> + </dict> + <key>1156534574.H270836P24004.mbox1.freenet.de,S=21643,L=350</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T21:09:33Z</date> + </dict> + <key>1156536377.H578706P25236.mbox1.freenet.de,S=8217,L=176</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T21:09:36Z</date> + </dict> + <key>1156538955.H25329P11731.mbox1.freenet.de,S=1765,L=55</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T21:09:36Z</date> + </dict> + <key>1156541102.H692666P12671.mbox1.freenet.de,S=1506,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-25T21:38:36Z</date> + </dict> + <key>1156544069.H856248P27072.mbox1.freenet.de,S=1562,L=29</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:58Z</date> + </dict> + <key>1156549318.H314695P5966.mbox1.freenet.de,S=1594,L=51</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:58Z</date> + </dict> + <key>1156552574.H442749P8681.mbox1.freenet.de,S=28405,L=522</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:58Z</date> + </dict> + <key>1156553161.H622189P14963.mbox1.freenet.de,S=23163,L=374</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:59Z</date> + </dict> + <key>1156561537.H227330P14836.mbox1.freenet.de,S=3759,L=116</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:59Z</date> + </dict> + <key>1156564400.H36368P11833.mbox1.freenet.de,S=3864,L=118</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:59Z</date> + </dict> + <key>1156574920.H627211P18312.mbox1.freenet.de,S=3010,L=86</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:15:59Z</date> + </dict> + <key>1156576237.H864144P3629.mbox1.freenet.de,S=3196,L=109</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:16:00Z</date> + </dict> + <key>1156576267.H974879P4022.mbox1.freenet.de,S=3065,L=107</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T07:16:00Z</date> + </dict> + <key>1156579309.H517997P12771.mbox1.freenet.de,S=1724,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T09:38:43Z</date> + </dict> + <key>1156580704.H8509P31929.mbox1.freenet.de,S=1648,L=54</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T09:38:43Z</date> + </dict> + <key>1156581378.H425638P8539.mbox1.freenet.de,S=3939,L=119</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T09:38:44Z</date> + </dict> + <key>1156581789.H721913P14216.mbox1.freenet.de,S=7053,L=123</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T09:38:44Z</date> + </dict> + <key>1156590749.H170677P27688.mbox1.freenet.de,S=3377,L=112</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T11:43:22Z</date> + </dict> + <key>1156590890.H501398P30491.mbox1.freenet.de,S=1507,L=36</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T11:43:23Z</date> + </dict> + <key>1156594169.H314422P20793.mbox1.freenet.de,S=3866,L=117</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T12:59:47Z</date> + </dict> + <key>1156598595.H104465P28754.mbox1.freenet.de,S=1695,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T13:59:46Z</date> + </dict> + <key>1156602381.H87196P22354.mbox1.freenet.de,S=1632,L=52</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T14:59:32Z</date> + </dict> + <key>1156607782.H396993P12508.mbox1.freenet.de,S=5154,L=133</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T16:23:15Z</date> + </dict> + <key>1156608275.H103212P28930.mbox1.freenet.de,S=1350,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T16:23:16Z</date> + </dict> + <key>1156610616.H638298P7490.mbox1.freenet.de,S=4018,L=111</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T17:05:52Z</date> + </dict> + <key>1156610763.H278725P10198.mbox1.freenet.de,S=3691,L=58</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T17:05:53Z</date> + </dict> + <key>1156617667.H152062P26956.mbox1.freenet.de,S=4704,L=89</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T19:30:56Z</date> + </dict> + <key>1156618965.H215788P16362.mbox1.freenet.de,S=24100,L=687</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T19:30:57Z</date> + </dict> + <key>1156619069.H69198P18118.mbox1.freenet.de,S=8816,L=240</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T19:30:57Z</date> + </dict> + <key>1156619142.H495546P19352.mbox1.freenet.de,S=5115,L=134</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T19:30:57Z</date> + </dict> + <key>1156622683.H623990P9695.mbox1.freenet.de,S=4462,L=119</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-26T20:55:10Z</date> + </dict> + <key>1156627302.H474172P6812.mbox1.freenet.de,S=1705,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:46Z</date> + </dict> + <key>1156629242.H605644P32006.mbox1.freenet.de,S=1683,L=43</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:47Z</date> + </dict> + <key>1156633050.H581303P13138.mbox1.freenet.de,S=1524,L=30</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:47Z</date> + </dict> + <key>1156633485.H534083P21169.mbox1.freenet.de,S=3805,L=116</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:47Z</date> + </dict> + <key>1156643912.H983156P23127.mbox1.freenet.de,S=3786,L=116</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:47Z</date> + </dict> + <key>1156645412.H702961P12524.mbox1.freenet.de,S=1590,L=37</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:47Z</date> + </dict> + <key>1156646412.H830885P22234.mbox1.freenet.de,S=3555,L=104</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:47Z</date> + </dict> + <key>1156648116.H733591P6025.mbox1.freenet.de,S=23089,L=370</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:48Z</date> + </dict> + <key>1156650850.H755558P2627.mbox1.freenet.de,S=1560,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:48Z</date> + </dict> + <key>1156657047.H587784P18251.mbox1.freenet.de,S=1699,L=56</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:48Z</date> + </dict> + <key>1156659804.H361202P11295.mbox1.freenet.de,S=4485,L=118</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T09:32:48Z</date> + </dict> + <key>1156677067.H165927P23712.mbox1.freenet.de,S=3816,L=116</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T11:22:35Z</date> + </dict> + <key>1156677789.H338206P3684.mbox1.freenet.de,S=3917,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T11:23:38Z</date> + </dict> + <key>1156678063.H539715P10854.mbox1.freenet.de,S=2414,L=48</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T11:33:05Z</date> + </dict> + <key>1156678360.H217893P18381.mbox1.freenet.de,S=1977,L=35</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T11:33:05Z</date> + </dict> + <key>1156679377.H960667P9014.mbox1.freenet.de,S=1780,L=33</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T11:59:11Z</date> + </dict> + <key>1156681141.H749219P15470.mbox1.freenet.de,S=1742,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T12:38:44Z</date> + </dict> + <key>1156682243.H802388P2173.mbox1.freenet.de,S=4615,L=120</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T12:38:44Z</date> + </dict> + <key>1156685948.H91108P27966.mbox1.freenet.de,S=1478,L=39</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T13:45:01Z</date> + </dict> + <key>1156686125.H586308P31263.mbox1.freenet.de,S=6825,L=95</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T13:45:02Z</date> + </dict> + <key>1156687202.H377173P17632.mbox1.freenet.de,S=1644,L=53</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T14:20:35Z</date> + </dict> + <key>1156690381.H436758P11593.mbox1.freenet.de,S=5589,L=144</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:01Z</date> + </dict> + <key>1156691746.H108969P4127.mbox1.freenet.de,S=20903,L=341</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:04Z</date> + </dict> + <key>1156692551.H254066P19430.mbox1.freenet.de,S=3873,L=117</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:04Z</date> + </dict> + <key>1156694718.H545079P28530.mbox1.freenet.de,S=21022,L=344</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:04Z</date> + </dict> + <key>1156696327.H98631P26821.mbox1.freenet.de,S=9038,L=120</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:04Z</date> + </dict> + <key>1156696693.H413970P1627.mbox1.freenet.de,S=2048,L=47</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:04Z</date> + </dict> + <key>1156697667.H784900P20074.mbox1.freenet.de,S=1723,L=42</key> + <dict> + <key>DateDownloaded</key> + <date>2006-08-27T17:50:04Z</date> + </dict> +</dict> +</plist> diff --git a/WebCore/manual-tests/memory/string-growth.html b/WebCore/manual-tests/memory/string-growth.html new file mode 100644 index 0000000..2f921d0 --- /dev/null +++ b/WebCore/manual-tests/memory/string-growth.html @@ -0,0 +1,16 @@ +<script> +var x = "x"; + +for (var i = 1; i < 23; ++i) { + x = x + x; +} + +// x should now be a 2^23 character string, which is 16M in size. + +var y; + +// now append to it repeatedly in a way that prevents buffer sharing +for (var i = 0; i < 1000; ++i) { + y = x + i; +} +</script> diff --git a/WebCore/manual-tests/memory/xhr-multiple-requests-responseText.html b/WebCore/manual-tests/memory/xhr-multiple-requests-responseText.html new file mode 100644 index 0000000..463be57 --- /dev/null +++ b/WebCore/manual-tests/memory/xhr-multiple-requests-responseText.html @@ -0,0 +1,57 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title>TestWidget 1.3</title> + <script type="text/javascript"> + var mainDiv; + var widgetID = "12345678"; + + function init() { + mainDiv = document.getElementById( "main" ); + + if ( window.widget ) { + widget.setCloseBoxOffset( 304, 16 ); + window.resizeTo( 640, 480 ); + //widgetID = widget.identifier; + } + } + + function getLocalMailIDList() { + var storedLocalMailIDList = new Array(); + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false); + xmlHttp.send(null); + + if (xmlHttp.readyState == 4) { + xmlHttp.responseText; + } + } + + function getLocalMailIDList2() { + var storedLocalMailIDList = new Array(); + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false); + xmlHttp.send(null); + + + if (xmlHttp.readyState == 4) { + xmlHttp.responseText; + } + } + + function clear() { + mainDiv.innerText = "C:\\>"; + } + + function fillMyRam() { + getLocalMailIDList2(); + setTimeout( "fillMyRam();", 500 ); + } + </script> + </head> + + <body onLoad="init();"> + <div><a href="javascript:fillMyRam();">fillMyRam</a></div> + </body> +</html> diff --git a/WebCore/manual-tests/memory/xhr-multiple-requests-responseXML.html b/WebCore/manual-tests/memory/xhr-multiple-requests-responseXML.html new file mode 100644 index 0000000..939302a --- /dev/null +++ b/WebCore/manual-tests/memory/xhr-multiple-requests-responseXML.html @@ -0,0 +1,117 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title>TestWidget 1.3</title> + <script type="text/javascript"> + var mainDiv; + var widgetID = "12345678"; + + function init() { + mainDiv = document.getElementById( "main" ); + + if ( window.widget ) { + widget.setCloseBoxOffset( 304, 16 ); + window.resizeTo( 640, 480 ); + //widgetID = widget.identifier; + } + } + + function getLocalMailIDList() { + var storedLocalMailIDList = new Array(); + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false); + xmlHttp.send(null); + + if (xmlHttp.readyState == 4) { + var items = xmlHttp.responseXML; + var counter = 0; + + for ( var i = 0; i < items.childNodes.length; i++ ) { + counter++; + + if ( items.childNodes[i].nodeName == "plist" ) { + counter++; + //alert( items.childNodes[i].nodeName ); + + for ( var j = 0; j < items.childNodes[i].childNodes.length; j++) { + counter++; + + if ( items.childNodes[i].childNodes[j].nodeName == "dict" ) { + counter++; + //alert( items.childNodes[i].childNodes[j].nodeName ); + + for ( var k = 0; k < items.childNodes[i].childNodes[j].childNodes.length; k++) { + counter++; + + if ( items.childNodes[i].childNodes[j].childNodes[k].nodeName == "key" ) { + counter++; + //alert( items.childNodes[i].childNodes[j].childNodes[k].nodeName ); + //alert( items.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue ); + storedLocalMailIDList.push( items.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue ); + } + } + } + } + } + } + + /* + for ( var i = 0; i < storedLocalMailIDList.length; i++ ) { + counter++; + mainDiv.innerText = storedLocalMailIDList[i]; + } + */ + //alert(storedLocalMailIDList.length); + + + //storedLocalMailIDList.sort(); + + alert(counter); + } + } + + function getLocalMailIDList2() { + var storedLocalMailIDList = new Array(); + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false); + xmlHttp.send(null); + + + if (xmlHttp.readyState == 4) { + var items = xmlHttp.responseXML; //.getElementsByTagName("key"); + + /* + //alert(items.length); + + for ( var i = 0; i < items.length; i+= 2 ) { + //alert( items[i].firstChild.nodeValue ); + //storedLocalMailIDList.push( items[i].firstChild.nodeValue ); + } + + //for ( var i = 0; i < storedLocalMailIDList.length; i++ ) { + // mainDiv.innerText = storedLocalMailIDList[i]; + //} + + //alert(storedLocalMailIDList.length); + + //storedLocalMailIDList.sort(); + */ + } + } + + function clear() { + mainDiv.innerText = "C:\\>"; + } + + function fillMyRam() { + getLocalMailIDList2(); + setTimeout( "fillMyRam();", 500 ); + } + </script> + </head> + + <body onLoad="init();"> + <div><a href="javascript:fillMyRam();">fillMyRam</a></div> + </body> +</html> diff --git a/WebCore/manual-tests/memory/xhr-multiple-requests.html b/WebCore/manual-tests/memory/xhr-multiple-requests.html new file mode 100644 index 0000000..17518b9 --- /dev/null +++ b/WebCore/manual-tests/memory/xhr-multiple-requests.html @@ -0,0 +1,55 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title>TestWidget 1.3</title> + <script type="text/javascript"> + var mainDiv; + var widgetID = "12345678"; + + function init() { + mainDiv = document.getElementById( "main" ); + + if ( window.widget ) { + widget.setCloseBoxOffset( 304, 16 ); + window.resizeTo( 640, 480 ); + //widgetID = widget.identifier; + } + } + + function getLocalMailIDList() { + var storedLocalMailIDList = new Array(); + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false); + xmlHttp.send(null); + + if (xmlHttp.readyState == 4) { + } + } + + function getLocalMailIDList2() { + var storedLocalMailIDList = new Array(); + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false); + xmlHttp.send(null); + + + if (xmlHttp.readyState == 4) { + } + } + + function clear() { + mainDiv.innerText = "C:\\>"; + } + + function fillMyRam() { + getLocalMailIDList2(); + setTimeout( "fillMyRam();", 500 ); + } + </script> + </head> + + <body onLoad="init();"> + <div><a href="javascript:fillMyRam();">fillMyRam</a></div> + </body> +</html> diff --git a/WebCore/manual-tests/memory/xhr-repeated-string-access.xml b/WebCore/manual-tests/memory/xhr-repeated-string-access.xml new file mode 100644 index 0000000..efb8e35 --- /dev/null +++ b/WebCore/manual-tests/memory/xhr-repeated-string-access.xml @@ -0,0 +1,43 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <title>Massive Memory Leak</title> + <script> + <![CDATA[ + + function loadVideo (videoURI) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', videoURI, true); + xhr.onreadystatechange = function (xhrEvent) { + if (xhr.readyState == 3) { + var currentLength = xhr.responseText.length; + var totalLength = parseInt(xhr.getResponseHeader('Content-Length'), 10); + print((Math.round((currentLength / totalLength) * 10000) / 100) + '%'); + } + else if (xhr.readyState == 4) { + if (xhr.status == 200) { + alert('done loading'); + alert(xhr.responseText.length); + } + else { + alert('NOK'); + } + } + }; + xhr.send(null); + } + + function print (message) { + document.getElementById('outlet').textContent = message; + } + + ]]> + </script> + </head> + + <body> + <a onclick="loadVideo('http://streamos.atlrec.com/download/atlantic/bjork/video/bjork_itunes1.m4v');">do it!</a> + <p id="outlet" /> + </body> + +</html> diff --git a/WebCore/manual-tests/modal-dialog-arguments.html b/WebCore/manual-tests/modal-dialog-arguments.html new file mode 100644 index 0000000..9916137 --- /dev/null +++ b/WebCore/manual-tests/modal-dialog-arguments.html @@ -0,0 +1,19 @@ +<html> +<script> +function runTest() { + var o = { }; + showModalDialog("data:text/html,<scr" + "ipt>dialogArguments['result'] = 'PASS'; window.close() </scr" + "ipt>", o); + + if (o.result == 'PASS') + document.getElementById('result').innerHTML = 'SUCCESS'; +} + +</script> +<body> +<div> +This tests that modal dialog arguments get passed around correctly. Click the button below to test. The text "SUCCESS" will be shown below if the test was successful. +</div> +<button onclick="runTest()">Click Me!</button> +<div id="result"> +</div> +</html> diff --git a/WebCore/manual-tests/modal-dialog.html b/WebCore/manual-tests/modal-dialog.html new file mode 100644 index 0000000..fe8f128 --- /dev/null +++ b/WebCore/manual-tests/modal-dialog.html @@ -0,0 +1,27 @@ +<head> +<script> +function timerFired() +{ + document.getElementById("timerResult").firstChild.data = "Timer fired!"; +} + +function closeModal() { + window.returnValue = document.form.toWindow.value; + window.close(); +} + +function init() +{ + document.form.fromWindow.value = window.dialogArguments; +} +</script> +</head> +<body onload="init()"> +<form name="form"> +<p>Here is the text from the main window: <input name="fromWindow"></p> +<p>Type text here to be sent back to the main window: <input name="toWindow" value="from modal window"></p> +<p>Then, push this button: <input type="button" value="Close" onClick="closeModal()"></p> +<p>Push this button to test timer: <input type="button" value="Test Timer" onClick="setTimeout(timerFired, 0)"></p> +<p id="timerResult">Timer did not fire yet.</p> +</form> +</body> diff --git a/WebCore/manual-tests/mouseevent-on-closeddoc.html b/WebCore/manual-tests/mouseevent-on-closeddoc.html new file mode 100644 index 0000000..2da76bd --- /dev/null +++ b/WebCore/manual-tests/mouseevent-on-closeddoc.html @@ -0,0 +1,22 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4229177"> 4229177</a> REGRESSION (Denver): crash dispatching mouse events (4608)</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click on the link below, and move your mouse cursor over the blank page that is loaded.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +No crash after moving the mouse over the blank page that is loaded. Nothing happens. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Crash after moving the mouse over the blank page that opens. +</p> + +<a href="resources/mouseevent-on-closeddoc.html">Click this link</a> +</body> +</html> diff --git a/WebCore/manual-tests/mouseevents-on-textnodes.html b/WebCore/manual-tests/mouseevents-on-textnodes.html new file mode 100644 index 0000000..2d1c226 --- /dev/null +++ b/WebCore/manual-tests/mouseevents-on-textnodes.html @@ -0,0 +1,43 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<script type="text/javascript" language="javascript" charset="utf-8"> + + document.onmousedown = doIt; + + function doIt(evt) { + var elem = evt.target; + var anAttr = null; + alert (elem); + } + +</script> + +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4196646">4196646</a> target returns text node when it should return the parent node</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click where indicated below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +After clicking, see alert dialogs as described below. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +After clicking, see alert dialogs other than what is described below. +Specifically, tests #1 and #3 below will alert "[object TEXT]" +</p> + +<p>1. click on this text - you should see an alert that says "[object P]"</p> + +<div style="border: 1px dotted red; width: 500px; ">2. click on white space next to this text --> <br>you should see an alert that says "[object DIV]" --> </div><br> + +3. click on this text - you should see an alert that says "[object BODY]"<br><br> + +4. click on empty whitespace on this page, below this text - you should see an alert that says "[object HTML]" + +</body> +</html> diff --git a/WebCore/manual-tests/named-window-blank-target.html b/WebCore/manual-tests/named-window-blank-target.html new file mode 100644 index 0000000..33e8822 --- /dev/null +++ b/WebCore/manual-tests/named-window-blank-target.html @@ -0,0 +1,19 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<script type="text/javascript"> + window.name = "foo"; // any non-empty name will do here +</script> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +STEP 1: Close all other Safari windows and tabs.<br> +STEP 2: Open <a href="resources/named-window-blank-target-step2.html">this link</a> in a new window in front of this window and follow the instructions in it. +</p> + + +</body> +</html> diff --git a/WebCore/manual-tests/nested-plug-ins.html b/WebCore/manual-tests/nested-plug-ins.html new file mode 100644 index 0000000..20a11fa --- /dev/null +++ b/WebCore/manual-tests/nested-plug-ins.html @@ -0,0 +1,45 @@ +<script> + function toggleDisplay(element, button) + { + if (element.style.display == "none") + element.style.display = ""; + else + element.style.display = "none"; + } + + function toggleVisibility(element, button) + { + if (element.style.visibility == "hidden") + element.style.visibility = ""; + else + element.style.visibility = "hidden"; + } + +</script> +<p> + Play with the display and visibility toggles. Make sure that turning an inner element visible does not show it if it has a hidden or + non-displaying ancestor, and that making an ancestor visible and displaying shows only its descendants the are visible and displaying. +</p> +<table> + <tr> + <td> + <input type="checkbox" checked="true" onclick="toggleDisplay(document.getElementById('middle'))"> Outer frame display + </td> + <td> + <input type="checkbox" checked="true" onclick="toggleDisplay(document.getElementById('middle').contentDocument.getElementById('inner'))"> Inner frame display + </td> + </tr> + <tr> + <td> + <input type="checkbox" checked="true" onclick="toggleVisibility(document.getElementById('middle'))"> Outer frame visibility + </td> + <td> + <input type="checkbox" checked="true" onclick="toggleVisibility(document.getElementById('middle').contentDocument.getElementById('inner'))"> Inner frame visibility + </td> + <td> + <input type="checkbox" checked="true" onclick="toggleVisibility(document.getElementById('middle').contentDocument.getElementById('inner').contentDocument.getElementById('plugin'))"> Inner plug-in visibility + </td> + </tr> +</table> + +<iframe id="middle" style="height: 400px; width: 400px;" src="resources/nested-plug-ins-outer-frame.html"></iframe> diff --git a/WebCore/manual-tests/new-window-subresource-crash.html b/WebCore/manual-tests/new-window-subresource-crash.html new file mode 100644 index 0000000..b287d90 --- /dev/null +++ b/WebCore/manual-tests/new-window-subresource-crash.html @@ -0,0 +1,20 @@ +<body onload="test()"> +<script> + function test() + { + var win = window.open(""); + var doc = win.document; + var text = "<html><body><sc" + "ript src='data:text/javascript,'></scr" + "ipt></body></html>"; + doc.write(text); + } +</script> + +<p>This test verifies that document.writing into a newly-opened empty +window does not cause crashes or assertion failures, even if it +triggers subresource loads. If you have popup blocking enabled you can +click the button below to test. The test only works in Safari, because +it depends on behavior with resource identifiers, which are provided +by the app.</p> + +<button onclick="test()">Crash</button> +</body> diff --git a/WebCore/manual-tests/onbeforeunload-close_with_javascript.html b/WebCore/manual-tests/onbeforeunload-close_with_javascript.html new file mode 100644 index 0000000..525f8f1 --- /dev/null +++ b/WebCore/manual-tests/onbeforeunload-close_with_javascript.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<script language="JavaScript"> +function openWindow() { + window.open("./onbeforeunload-close_with_javascript.html","name","width=700px,height=500px"); +} +</script> +</head> +<BODY onbeforeunload="return 'onBeforeUnloadHandler return string is displayed here.';"> +<p><b>BUG ID:</b> <a href="rdar://problem/4394910">4394910</a> calling Javascript window.close() does not trigger onbeforeunload event</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> + <ol> + <li>Click the "Open" button below. + <li>In the window that opens, click the "Close" button. + </ol> +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +After the close button is clicked, you should see a dialog that reads:</p> +<pre>Are you sure you want to navigate away from this page? + +onBeforeUnloadHandler return string is displayed here. + +Press OK to continue or Cancel to stay on the current page.</pre> +<p id="success" style="background-color:palegreen; padding:3px;">You should see the same dialog if you click the "Close" button in the main window. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +No dialog (as described above) after clicking the "Close" button in the newly opened window, or in the main window. +</p> + +<BODY onbeforeunload="return 'onBeforeUnloadHandler return string is displayed here.';"> +<input type=button value="Open Window" onclick="openWindow()"><br> +<input type=button value="Close Window" onclick="window.close();"><br> +<p>Click the Open Window button. Once the new window is opened, close the new window by clicking the Close Window button (not the browser's close window icon).</p> +</body> +</html> diff --git a/WebCore/manual-tests/onblur-remove.html b/WebCore/manual-tests/onblur-remove.html new file mode 100644 index 0000000..7348e16 --- /dev/null +++ b/WebCore/manual-tests/onblur-remove.html @@ -0,0 +1,31 @@ +<html> + <head> + <script> + var numBlurs = 0; + + function debug(str) { + var c = document.getElementById('console') + c.innerHTML += str + "<br>" + + } + + function finish() { + var f = document.getElementById('f') + + f.innerHTML = ''; + + if (numBlurs) + debug('FAILURE: Onblur handler called!') + else + debug('SUCCESS!') + } + </script> + </head> +<body> + <p>This tests that elements shouldn't emit any onblur events when they are being removed from the document. To test this, click inside the input field. If If this test is successful, "SUCCESS" should be shown below, otherwise "FAILURE" is shown.</p> + <form id='f'> + <input onblur="numBlurs++" onfocus="setTimeout('finish()', 0)"> + </form> + <pre id="console"></pre> + </body> +</html> diff --git a/WebCore/manual-tests/onclick_in_noncontent.html b/WebCore/manual-tests/onclick_in_noncontent.html new file mode 100644 index 0000000..9c14674 --- /dev/null +++ b/WebCore/manual-tests/onclick_in_noncontent.html @@ -0,0 +1,19 @@ +<html> +<head> +<script> +function displayAlert(element) +{ + alert('You clicked '+element.nodeName); +} +</script> +</head> +<body> + <table style="width:100px;height:100px;border:inset"> + <tr> + <td onclick="displayAlert(this)">Content.</td> + </tr> + </table> + <p>Click anywhere inside the table element and you should get an alert telling you so.</p> + <p>Bugzilla 3662 was that clicking in non-content did not fire onclick handler.</p> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/onsearch-enter.html b/WebCore/manual-tests/onsearch-enter.html new file mode 100644 index 0000000..e6e15fe --- /dev/null +++ b/WebCore/manual-tests/onsearch-enter.html @@ -0,0 +1,7 @@ +<html> +<body> + <input type="search" value="test" onsearch="document.getElementById('result').innerHTML='SUCCESS'"> + <p>This tests that onsearch handlers for search fields are invoked correctly when pressing enter. To test this in Safari, focus the search field and press enter. The text below should change to SUCCESS.</p> + <div id="result">FAILURE</div> +</body> +</html> diff --git a/WebCore/manual-tests/onunload-form-submit-crash.html b/WebCore/manual-tests/onunload-form-submit-crash.html new file mode 100644 index 0000000..1813e3f --- /dev/null +++ b/WebCore/manual-tests/onunload-form-submit-crash.html @@ -0,0 +1,9 @@ +<html> +<body onUnload="document.myForm.submit()"> +<a href="" onClick="location.href=location.href; return false;">Click here and see if Safari crashes.</a> +<p>Still with me? Now close the window and see if Safari crashes.</p> +<form name="myForm"> +</form> +</body> +<html> + diff --git a/WebCore/manual-tests/open-after-close.html b/WebCore/manual-tests/open-after-close.html new file mode 100644 index 0000000..4fcf5d2 --- /dev/null +++ b/WebCore/manual-tests/open-after-close.html @@ -0,0 +1,16 @@ +<html> +<script> + var url = "resources/open-after-close-popup.html"; + + function test() { + var w = window.open(url, 'popup', "height=200, width=200, top=100, left=100"); + w.close(); + window.open(url, 'popup', "height=200, width=200, top=100, left=100"); + } +</script> +<body onload="test()"> +<p>This test checks for a regression against rdar://problem/3572585: window.open fails if name param = the name of a window just closed in same function.</p> +<p>If the test passes, you will see a "PASS" message open in a new window.</p> +<hr> +</body> +</html> diff --git a/WebCore/manual-tests/open-close-tokenizer-crash.html b/WebCore/manual-tests/open-close-tokenizer-crash.html new file mode 100644 index 0000000..d108cf8 --- /dev/null +++ b/WebCore/manual-tests/open-close-tokenizer-crash.html @@ -0,0 +1,6 @@ +<html> + <body> + <input type="button" value="Click Here" onclick="window.open('resources/open-close-tokenizer-crash.html', 'foo');"> + Click the button above. Another browser window should open and then immediately close without crashing. + </body> +</html> diff --git a/WebCore/manual-tests/open-url-undefined.html b/WebCore/manual-tests/open-url-undefined.html new file mode 100644 index 0000000..2f725d5 --- /dev/null +++ b/WebCore/manual-tests/open-url-undefined.html @@ -0,0 +1,11 @@ +<body> + <p> + Tests that <code>window.open()</code> does not interpret the missing URL + argument as the literal string “undefined”. + </p> + <p> + Click the Test button. A new window should open. To pass the test, the address + bar of the new window should be empty. If it contains a URL (ending with “undefined”), WebKit failed the test. + </p> + <button onclick="window.open()">Test</button> +</body> diff --git a/WebCore/manual-tests/overlappingTableSpans.html b/WebCore/manual-tests/overlappingTableSpans.html new file mode 100644 index 0000000..861606a --- /dev/null +++ b/WebCore/manual-tests/overlappingTableSpans.html @@ -0,0 +1,27 @@ +<html> + <body> + <table> + <tr> + <td width='1'></td> + </tr> + <tr> + <td colspan='2' rowspan='2'></td> + </tr> + <tr> + <td rowspan='2'></td> + </tr> + <tr> + <td colspan='2'> + <table> + <tr> + <td></td> + <td> + <input type='text' /> + </td> + </tr> + </table> + </td> + </tr> + </table> + </body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/paint-during-plugin-attach.html b/WebCore/manual-tests/paint-during-plugin-attach.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/WebCore/manual-tests/paint-during-plugin-attach.html diff --git a/WebCore/manual-tests/password-caps-lock.html b/WebCore/manual-tests/password-caps-lock.html new file mode 100644 index 0000000..d63e433 --- /dev/null +++ b/WebCore/manual-tests/password-caps-lock.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body onload="document.getElementById('tf').focus()"> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=10577">10577</a> Caps lock icon should show in password fields</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Press the caps lock key. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Verify that the caps lock indicator icon is drawn in the password field. Verify that when you open a new window, the password field in the background window no longer has an indicator. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +If there is no caps lock indicator, or if the indicator remains when the window is inactive, the test has failed. +</p> + +<input type="password" id="tf"> + +</body> +</html> diff --git a/WebCore/manual-tests/password-ctrl-click-lose-focus.html b/WebCore/manual-tests/password-ctrl-click-lose-focus.html new file mode 100644 index 0000000..26cfbc4 --- /dev/null +++ b/WebCore/manual-tests/password-ctrl-click-lose-focus.html @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4604703">4604703</a> REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +<br>1) Make a selection in the password field +<br>2) Ctrl-click in the text field</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +After ctrl-clicking in the text field, the password field should lose focus, and its selection should be cleared. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +After ctrl-clicking in the text field, if the password field still has a selection, the test has failed. +</p> +<br><input type="text" value="Ctrl-Click in this field. Test passes if the password field no longer has a selection." size=100></input> +<br><input type="password" id="pass" value="12345"></input> +</body> +</html> diff --git a/WebCore/manual-tests/paste-crash.html b/WebCore/manual-tests/paste-crash.html new file mode 100644 index 0000000..b88af1d --- /dev/null +++ b/WebCore/manual-tests/paste-crash.html @@ -0,0 +1,26 @@ +<HTML><BODY> + <p>This test checks for a regression against.</p> + <p>To run the test:</p> + <ol> + <li>Select All + <li>Copy + <li>Paste into Blot + </ol> + <p>If you don't crash, you pass.</p> + <hr> + <iframe style="color: red"></iframe> + <iframe src=""></iframe> +</BODY></HTML> +<HTML><BODY> + <p>This test checks for a regression against.</p> + <p>To run the test:</p> + <ol> + <li>Select All + <li>Copy + <li>Paste into Blot + </ol> + <p>If you don't crash, you pass.</p> + <hr> + <iframe style="color: red"></iframe> + <iframe src=""></iframe> +</BODY></HTML> diff --git a/WebCore/manual-tests/plain-text-paste.html b/WebCore/manual-tests/plain-text-paste.html new file mode 100644 index 0000000..89ef451 --- /dev/null +++ b/WebCore/manual-tests/plain-text-paste.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8276">Bugzilla bug 8276</a> REGRESSION (NativeTextField): Pasting a Finder item into a text field results in a file: URL being pasted instead of just the file name +<br><i>and</i><br> <b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8283">Bugzilla bug 8283</a> REGRESSION: File's path doesn't appear after dragging file into input field</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br> +1. Double-click <a href="resources/plain-text-paste.dmg">this disk image</a> in the Finder.<br> +2. Drag each item from the Finder window into the corresponding field below.<br> +3. Select item 5 in the Finder window and choose Copy “5” from the Finder’s Edit menu.<br> +4. Back in Safari, click inside the “Paste item 5 here” field and choose Paste from the Edit menu.<br> +5. Eject the disk image. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The fields’ contents will match the Expected Contents. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The fields’ contents will NOT match the Expected Contents. +</p> +Plain text clipping +<table cellspacing="0" cellpadding="5"> + <col><col style="background: #ffc;"> + <tr> + <td></td> + <td><b>Expected Contents</b></td> + </tr> + <tr> + <td>Drag item 1 here: <input></td> + <td>Plain text clipping</td> + </tr> + <tr> + <td>Drag item 2 here: <input></td> + <td>Styled text clipping</td> + </tr> + <tr> + <td>Drag item 3 here: <input></td> + <td><i>full path to 3.gif, starting with a / character</i></td> + </tr> + <tr> + <td>Drag item 4 here: <input></td> + <td><i>full path to 4.txt, starting with a / character</i></td> + </tr> + <tr> + <td>Drag item 5 here: <input></td> + <td>http://www.ibm.com/</td> + </tr> + <tr> + <td>Paste item 5 here: <input></td> + <td>5</td> + </tr> +</body> +</html> diff --git a/WebCore/manual-tests/plugin-controller-datasource.html b/WebCore/manual-tests/plugin-controller-datasource.html new file mode 100644 index 0000000..6a70bf7 --- /dev/null +++ b/WebCore/manual-tests/plugin-controller-datasource.html @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8658">Bugzilla bug 8658</a> Assertion failure in -[WebPluginContainerCheck _isForbiddenFileLoad] (bridge is null) when clicking QuickTime object with href</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click the small orange square below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +QuickTime Player will open <i>orange.mov</i>. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Nothing will happen in response to clicking the orange square. +</p> + +<EMBED id="e" src="resources/orange.mov" width="15" height="15" controller="false" href="#" target="QuickTimePlayer"></EMBED> +</body> +</html> diff --git a/WebCore/manual-tests/pre-tab-selection-rect.html b/WebCore/manual-tests/pre-tab-selection-rect.html new file mode 100644 index 0000000..d9a9801 --- /dev/null +++ b/WebCore/manual-tests/pre-tab-selection-rect.html @@ -0,0 +1,66 @@ +<html> +<head> +<title>Highlighting preformatted text after tab</title> +<style type="text/css"> +#t4 { font-size: 36px; } +#t4:first-line { font-size:16px; } +</style> +<script type="text/javascript"> +function test1() +{ + var t = document.getElementById('t1').childNodes[1]; + window.getSelection().setBaseAndExtent(t, 1, t, 13); +} + +function test2() +{ + var t = document.getElementById('t2').childNodes[0]; + window.getSelection().setBaseAndExtent(t, 5, t, 23); +} + +function test3() +{ + var t = document.getElementById('t3').childNodes[0]; + window.getSelection().setBaseAndExtent(t, 5, t, 23); +} + +function test4() +{ + var t = document.getElementById('t4').childNodes[0]; + window.getSelection().setBaseAndExtent(t, 11, t, 29); +} +</script> +</head> +<body> +<p> +This is a test for <i>http://bugs.webkit.org/show_bug.cgi?id=6043 +Incorrect selection highlighting in pre-formatted text with tabs</i>. +</p> +<hr> +<p> +Instructions: +</p> +<p> +1. Click <a href="#" onclick="window.setTimeout(test1,1);">test 1</a>. +The entire word “highlighting” below should be highlighted. +</p> +<pre id="t1"><span>Buggy</span> highlighting</pre> +<p> +2. Click <a href="#" onclick="window.setTimeout(test2,1);">test 2</a>. +The words “buggy highlighting” below should be fully highlighted. +</p> +<pre id="t2" style="padding-left: 10px;">Very buggy highlighting</pre> +<p> +3. Click <a href="#" onclick="window.setTimeout(test3,1);">test 3</a>. +The words “buggy highlighting” below should be fully highlighted. +</p> +<pre id="t3" style="margin-left: 10px;">Very buggy highlighting</pre> +<p> +4. Click <a href="#" onclick="window.setTimeout(test4,1);">test 4</a>. +The words “buggy highlighting” below should be fully highlighted. +</p> +<p id="t4"> +Even more buggy highlighting. +</p> +</body> +</html> diff --git a/WebCore/manual-tests/property-map-save-crash.html b/WebCore/manual-tests/property-map-save-crash.html new file mode 100644 index 0000000..c4dce1a --- /dev/null +++ b/WebCore/manual-tests/property-map-save-crash.html @@ -0,0 +1,49 @@ +<html> + <head> + <script> + function test() + { + if (window.layoutTestController) { + layoutTestController.dumpAsText(); + layoutTestController.waitUntilDone(); + } + + window.crash = "crash"; + delete window.crash; + + if (window.navigationController) + navigationController.evalAfterBackForwardNavigation("continueTestAfterNavigation()"); + } + + function continueTestAfterNavigation() + { + print("PASS: You didn't crash"); + + if (window.layoutTestController) + layoutTestController.notifyDone(); + } + + function print(message) { + var paragraph = document.createElement("p"); + paragraph.appendChild(document.createTextNode(message)); + document.getElementById("console").appendChild(paragraph); + } + </script> + </head> + + <body onload="test()"> + <p>Bug: rdar://problem/4465598 REGRESSION (TOT): Crash occurs at http://maps.google.com/?output=html ( KJS::Identifier::add(KJS::UString::Rep*)</p> + <p>This cause for this bug was that the code to save the window object's property map tried to use + the deleted property sentinel key as a normal pointer.</p> + <p>To run this test in Safari:</p> + <ol> + <li><a href="resources/go-back.html">Click here to do a back/forward navigation.</a></li> + <li>You should not crash.</li> + </ol> + <p>When the automated version of this test passes, you'll see a PASS message below. + (The automated version is currently disabled because DumpRenderTree doesn't work + with the back/forward cache enabled.)</p> + <hr> + <div id="console"></div> + </body> +</html> diff --git a/WebCore/manual-tests/redirect.html b/WebCore/manual-tests/redirect.html new file mode 100644 index 0000000..f02a707 --- /dev/null +++ b/WebCore/manual-tests/redirect.html @@ -0,0 +1,2 @@ +<meta http-equiv="refresh" content="0;url=redirection-target.html"> +<p>See redirection-target.html for details of what this tests.</p> diff --git a/WebCore/manual-tests/redirectHistory/redir-1.html b/WebCore/manual-tests/redirectHistory/redir-1.html new file mode 100644 index 0000000..1cdab45 --- /dev/null +++ b/WebCore/manual-tests/redirectHistory/redir-1.html @@ -0,0 +1,10 @@ +<html> +<head> +<meta http-equiv="refresh" content="3;url=redir-2.html"/> +<title>Redirect 1</title> +</head> +<body> +<p>This test checks that a "quick" redirect does not create an extra entry in the back/forward list. See Radar 4351664.</p> +<p>Wait a few seconds for the redirect to occur. If you return to this page after the redirect, then the test passed. If you end up at redir-2.html, then the test failed.</p> +</body> +</html> diff --git a/WebCore/manual-tests/redirectHistory/redir-2.html b/WebCore/manual-tests/redirectHistory/redir-2.html new file mode 100644 index 0000000..fe9e6ba --- /dev/null +++ b/WebCore/manual-tests/redirectHistory/redir-2.html @@ -0,0 +1,9 @@ +<html> +<head> +<meta http-equiv="refresh" content="0;url=redir-3.html"/> +<title>Redirect 2</title> +</head> +<body> +<p>Test failed</p> +</body> +</html> diff --git a/WebCore/manual-tests/redirectHistory/redir-3.html b/WebCore/manual-tests/redirectHistory/redir-3.html new file mode 100644 index 0000000..a525851 --- /dev/null +++ b/WebCore/manual-tests/redirectHistory/redir-3.html @@ -0,0 +1,11 @@ +<html> +<head> +<title>Redirect 3</title> +<script> +window.setTimeout("window.history.back()", 1000); +</script> +</head> +<body> +<p>Going back...</p> +</body> +</html> diff --git a/WebCore/manual-tests/redirection-target.html b/WebCore/manual-tests/redirection-target.html new file mode 100644 index 0000000..365681a --- /dev/null +++ b/WebCore/manual-tests/redirection-target.html @@ -0,0 +1,6 @@ +<p> +This test checks that redirection does not leave Safari thinking it's still loading. +Check that the title bar does not say "Loading" any more. +The bug was <a href="rdar://problem/4432562">4432562</a> in Radar and +<a href="http://bugs.webkit.org/show_bug.cgi?id=7058">7058</a> in Bugzilla. +</p> diff --git a/WebCore/manual-tests/redraw-page-cache-visited-links.html b/WebCore/manual-tests/redraw-page-cache-visited-links.html new file mode 100644 index 0000000..d13019b --- /dev/null +++ b/WebCore/manual-tests/redraw-page-cache-visited-links.html @@ -0,0 +1,34 @@ +<html> +<head> +<script> +// Uncomment to make this an automated test +//if (window.layoutTestController) { +// layoutTestController.waitUntilDone(); +// layoutTestController.keepWebHistory(); +//} +function runTest() { +// Uncomment to make this an automated test +// // Uses window.history hack; see http://bugs.webkit.org/show_bug.cgi?id=7135 +// if (!window.history[99999]) { +// var element = document.getElementById("mylink"); +// var event = document.createEvent("MouseEvent"); +// event.initEvent("click", true, true); +// element.dispatchEvent(event); +// } +// else { +// if (window.layoutTestController) { +// layoutTestController.notifyDone(); +// } +// } +} +</script> +</head> +<body onload="runTest();"> +<div><a href="http://bugs.webkit.org/show_bug.cgi?id=8079">Bug 8079 REGRESSION: Redraw from page cache does not show visited links</a></div> +<ol> +<li>The link in Step 2 should be rendered in an unvisited link color first. +<li><a id="mylink" href="./resources/redraw-page-cache-visited-links-2.html">Click This Link Once</a><br><br> +<li value="4">The test passes if the link in Step 2 is rendered in a visited link color after the click. +</ol> +</body> +</html> diff --git a/WebCore/manual-tests/remove-form-node-with-radio-buttons-crash.html b/WebCore/manual-tests/remove-form-node-with-radio-buttons-crash.html new file mode 100644 index 0000000..298da5a --- /dev/null +++ b/WebCore/manual-tests/remove-form-node-with-radio-buttons-crash.html @@ -0,0 +1,33 @@ +<html>
+<script type="text/javascript">
+
+function load1() {
+ var doc = document.getElementById("container");
+ doc.innerHTML = "<form name=\"gaga\"><input type=\"radio\" name=\"asdf\" id=\"chk\" value=\"A\"> Checkbox 1" +
+ "<input type=\"radio\" name=\"asdf\" value=\"B\"> Checkbox 2";
+ document.getElementById("chk").checked = true;
+}
+
+function load2() {
+ var doc = document.getElementById("container");
+ doc.innerHTML = "hello, world";
+}
+
+var ctr = 0;
+
+function runTest() {
+ if (ctr % 2 == 0) {
+ load1();
+ } else {
+ load2();
+ }
+ ctr++;
+ setTimeout("runTest()", 10);
+}
+</script>
+<body>
+<div>This is a test for http://bugs.webkit.org/show_bug.cgi?id=12938 - to test this, press the "Run Test" button and wait for a couple of minutes - the browser should not crash.</div>
+<input type="button" onclick="runTest()" value="Run Test">
+<div id="container"/>
+
+</body></html>
diff --git a/WebCore/manual-tests/remove-input-file-onchange.html b/WebCore/manual-tests/remove-input-file-onchange.html new file mode 100644 index 0000000..80368e3 --- /dev/null +++ b/WebCore/manual-tests/remove-input-file-onchange.html @@ -0,0 +1,42 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<script> +function removeDiv() +{ + var parent = document.getElementById("parent"); + var child = document.getElementById("child"); + parent.removeChild(child); +} +</script> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4621649">4621649</a> repro crash: Upload link causes crash on pages.google.com in Frame::nodeForWidget</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +<ol> +<li> To test this bug, just choose any file +</ol> +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Should see the file chooser disappear and the word "Success" will appear +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Safari will crash in WebCore::Frame::nodeForWidget. +</p> + +<div id="parent"> +<div id="child"> +<form> +<input id="theFile" type="file" onchange="removeDiv();"> +</form> +</div> +</div> + + + +</body> +</html> diff --git a/WebCore/manual-tests/remove-select-onchange.html b/WebCore/manual-tests/remove-select-onchange.html new file mode 100644 index 0000000..51004b5 --- /dev/null +++ b/WebCore/manual-tests/remove-select-onchange.html @@ -0,0 +1,9 @@ +<p>This test shouldn't crash when you pick something from select, even though it removes itself. +</p> +<select id="foo" onchange='sel.parentNode.removeChild(sel)'> +<option>Boom</option> +<option>Shouldn't crash when you pick this.</option> +</select> +<script> +var sel = document.getElementById("foo"); +</script>
\ No newline at end of file diff --git a/WebCore/manual-tests/reset-initiatedDrag.html b/WebCore/manual-tests/reset-initiatedDrag.html new file mode 100644 index 0000000..a1c0770 --- /dev/null +++ b/WebCore/manual-tests/reset-initiatedDrag.html @@ -0,0 +1,27 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9466">Bugzilla bug 9466</a> Assertion failure when dragging an image from the document into Safari's address bar</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br> +1. Drag the apple image into this window’s address bar.<br> +2. Choose History > Back to go back to this page.<br> +3. Drag a URL from a TextEdit document into this window. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +In step 3, this window will accept the dragged URL. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +In step 1, Safari will quit unexpectedly due to an assertion failure. Alternatively, +in step 3, this window will not accept the dragged URL. +</p> + +<img src="resources/apple.jpg"> + +</body> +</html> diff --git a/WebCore/manual-tests/resources/200x100.png b/WebCore/manual-tests/resources/200x100.png Binary files differnew file mode 100644 index 0000000..f7cf784 --- /dev/null +++ b/WebCore/manual-tests/resources/200x100.png diff --git a/WebCore/manual-tests/resources/200x200.png b/WebCore/manual-tests/resources/200x200.png Binary files differnew file mode 100644 index 0000000..35414cd --- /dev/null +++ b/WebCore/manual-tests/resources/200x200.png diff --git a/WebCore/manual-tests/resources/3dolph.gif b/WebCore/manual-tests/resources/3dolph.gif Binary files differnew file mode 100644 index 0000000..2a1801f --- /dev/null +++ b/WebCore/manual-tests/resources/3dolph.gif diff --git a/WebCore/manual-tests/resources/ArrayParameterTestApplet.class b/WebCore/manual-tests/resources/ArrayParameterTestApplet.class Binary files differnew file mode 100644 index 0000000..0435db6 --- /dev/null +++ b/WebCore/manual-tests/resources/ArrayParameterTestApplet.class diff --git a/WebCore/manual-tests/resources/ArrayParameterTestApplet.java b/WebCore/manual-tests/resources/ArrayParameterTestApplet.java new file mode 100644 index 0000000..d145844 --- /dev/null +++ b/WebCore/manual-tests/resources/ArrayParameterTestApplet.java @@ -0,0 +1,89 @@ +import java.applet.Applet; +import java.awt.*; +import java.awt.event.*; + + +public class ArrayParameterTestApplet + extends Applet +{ + public void init() + { + setLayout(new BorderLayout()); + } + + + public void start() + { + } + + + public void stop() + { + } + + + public void destroy() + { + } + + + public void arrayFunction(String [] array) { + System.out.println("arrayFunction called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void booleanFunction(boolean[] array) { + System.out.println("booleanArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void byteFunction(byte[] array) { + System.out.println("byteArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void charFunction(char[] array) { + System.out.println("charArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void shortFunction(short[] array) { + System.out.println("shortArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void intFunction(int[] array) { + System.out.println("intArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void longFunction(long[] array) { + System.out.println("longArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void floatFunction(float[] array) { + System.out.println("floatArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void doubleFunction(double[] array) { + System.out.println("doubleArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } + + public void objectFunction(Applet[] array) { + System.out.println("objectArray called"); + for (int i = 0; i < array.length; i++) + System.out.println(array[i]); + } +} diff --git a/WebCore/manual-tests/resources/CheckerApplet.class b/WebCore/manual-tests/resources/CheckerApplet.class Binary files differnew file mode 100644 index 0000000..684aa81 --- /dev/null +++ b/WebCore/manual-tests/resources/CheckerApplet.class diff --git a/WebCore/manual-tests/resources/CheckerApplet.java b/WebCore/manual-tests/resources/CheckerApplet.java new file mode 100644 index 0000000..895e33c --- /dev/null +++ b/WebCore/manual-tests/resources/CheckerApplet.java @@ -0,0 +1,21 @@ +import java.applet.Applet; +import java.awt.Color; +import java.awt.Component; + +public class CheckerApplet extends Applet +{ + + public boolean checkVersion() + { + return true; + } + + public void start() + { + setBackground(new Color(255, 255, 255)); + } + + public CheckerApplet() + { + } +} diff --git a/WebCore/manual-tests/resources/Default-port-frame-contents.html b/WebCore/manual-tests/resources/Default-port-frame-contents.html new file mode 100644 index 0000000..3565b28 --- /dev/null +++ b/WebCore/manual-tests/resources/Default-port-frame-contents.html @@ -0,0 +1,4 @@ +My URL is: <script>document.write(document.URL);</script> +<script> + window.testData = "Sam is SOOOOOO hot!"; +</script>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/StringTypeTest.class b/WebCore/manual-tests/resources/StringTypeTest.class Binary files differnew file mode 100644 index 0000000..3a81287 --- /dev/null +++ b/WebCore/manual-tests/resources/StringTypeTest.class diff --git a/WebCore/manual-tests/resources/StringTypeTest.java b/WebCore/manual-tests/resources/StringTypeTest.java new file mode 100644 index 0000000..9b8dd78 --- /dev/null +++ b/WebCore/manual-tests/resources/StringTypeTest.java @@ -0,0 +1,7 @@ +import java.applet.*; + +public class StringTypeTest extends Applet { + public String getString() { + return new String("hello"); + } +}
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/TestApplet.class b/WebCore/manual-tests/resources/TestApplet.class Binary files differnew file mode 100644 index 0000000..05fabdd --- /dev/null +++ b/WebCore/manual-tests/resources/TestApplet.class diff --git a/WebCore/manual-tests/resources/TestApplet.java b/WebCore/manual-tests/resources/TestApplet.java new file mode 100644 index 0000000..e4758a3 --- /dev/null +++ b/WebCore/manual-tests/resources/TestApplet.java @@ -0,0 +1,16 @@ +import java.applet.Applet; + +public class TestApplet extends Applet { + public static int MAGIC_NUMBER = 1; + public int field; + + public void init() + { + field = MAGIC_NUMBER; + } + + public int method() + { + return MAGIC_NUMBER; + } +}
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/apple.jpg b/WebCore/manual-tests/resources/apple.jpg Binary files differnew file mode 100644 index 0000000..bce4c38 --- /dev/null +++ b/WebCore/manual-tests/resources/apple.jpg diff --git a/WebCore/manual-tests/resources/before-go-back.html b/WebCore/manual-tests/resources/before-go-back.html new file mode 100644 index 0000000..10d8dbe --- /dev/null +++ b/WebCore/manual-tests/resources/before-go-back.html @@ -0,0 +1,17 @@ +<html> +<body> +<a href="will-go-back.html"> +Click this link</a> +<br> +<br> +<u>Manual test :</u> +Just click on the link : if the webkit doesn't crash, the test has succeed. +<br> +<u>Details:</u> +This test checks if you can go back to a _blank previously tab-opened page. +<br> +When you click on the above link, one page is loaded and tries to go back. +<br> +If the webkit doesn't meet an assertion failure : this test is successfull. +</body> +</html> diff --git a/WebCore/manual-tests/resources/chrome-bidi-text-window.html b/WebCore/manual-tests/resources/chrome-bidi-text-window.html new file mode 100644 index 0000000..a2333b7 --- /dev/null +++ b/WebCore/manual-tests/resources/chrome-bidi-text-window.html @@ -0,0 +1,61 @@ +<head> + <meta name="content-type" content="text/html; charset=UTF-8"> + <style> + body { margin-top: 0; } + select { display: block; font-size: 13px; } + div#reference { font: 13px 'Lucida Grande'; text-align: center; height: 24px; } + </style> + <script> + function setTitle(text) + { + document.title = text; + document.getElementById("reference").innerHTML = text; + } + </script> +</head> +<body> +<div id="reference"></div> +<p> + This tests drawing bidirectional text in Windows Safari chrome. +</p> +<p> + Select each item from the list and verify that the window title is + rendered exactly like the selected item. + Pay attention to the ordering of + the characters, the direction of parentheses, diacritics and combining marks, + and shaping of Arabic letters. You can ignore small differences in the overall width + of the text. + For your convenience, the + text to match will be displayed at the top of the window. +</p> +<select onchange="setTitle(item(selectedIndex).innerText)" size="9"> + <option> + First ×©× ×™×” (03) רביעית fifth + </option> + <option> + ‫First ×©× ×™×” (03) רביעית fifth‬ + </option> + <option> + ‭First ×©× ×™×” (03) רביעית fifth‬ + </option> + <option> + ‮First ×©× ×™×” (03) רביעית fifth‬ + </option> + <option> + משהו ×¢× × Ö´×§Ö¼×•Ö¼×“ + </option> + <option> + اللغة العربية + </option> + <option> + Et volià: ATSUI! + </option> + <option> + Directional ‮overrides‬ are confusing. + </option> + <option> + She said “‫יש TNT במזוודה!‬” and ran off + </option> +</select> +</body> +</html> diff --git a/WebCore/manual-tests/resources/empty-file.js b/WebCore/manual-tests/resources/empty-file.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/WebCore/manual-tests/resources/empty-file.js diff --git a/WebCore/manual-tests/resources/frame1.html b/WebCore/manual-tests/resources/frame1.html new file mode 100644 index 0000000..50f3b98 --- /dev/null +++ b/WebCore/manual-tests/resources/frame1.html @@ -0,0 +1,8 @@ +<html> +<head> +<title>frame1</title> +</head> +<body> +Frame 1 +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/frame2.html b/WebCore/manual-tests/resources/frame2.html new file mode 100644 index 0000000..d74db38 --- /dev/null +++ b/WebCore/manual-tests/resources/frame2.html @@ -0,0 +1,8 @@ +<html> +<head> +<title>frame2</title> +</head> +<body> +Frame 2 +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/helpCursor.tiff b/WebCore/manual-tests/resources/helpCursor.tiff Binary files differnew file mode 100644 index 0000000..20b56b9 --- /dev/null +++ b/WebCore/manual-tests/resources/helpCursor.tiff diff --git a/WebCore/manual-tests/resources/hover-subframe-1.html b/WebCore/manual-tests/resources/hover-subframe-1.html new file mode 100644 index 0000000..181956b --- /dev/null +++ b/WebCore/manual-tests/resources/hover-subframe-1.html @@ -0,0 +1,29 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> +<style> +body { margin: 0px; } +.outer { + margin: -100px; + width: 400px; + height: 500px; + background-color: yellow; +} +.outer:hover { + background-color: red; +} +.inner { + visibility: hidden; + width: 100%; + height: 50%; + background-color: cyan; +} +</style> +</head> + +<body> +<div class="outer" + onmouseover="firstChild.style.visibility='visible'" + onmouseout="firstChild.style.visibility='hidden'"><div class="inner"></div></div> +</body> +</html> diff --git a/WebCore/manual-tests/resources/hover-subframe-2.html b/WebCore/manual-tests/resources/hover-subframe-2.html new file mode 100644 index 0000000..ca4ca40 --- /dev/null +++ b/WebCore/manual-tests/resources/hover-subframe-2.html @@ -0,0 +1,29 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> +<style> +body { margin: 0px; } +.outer { + margin: -100px; + width: 400px; + height: 500px; + background-color: green; +} +.outer:hover { + background-color: red; +} +.inner { + visibility: hidden; + width: 100%; + height: 50%; + background-color: cyan; +} +</style> +</head> + +<body> +<div class="outer" + onmouseover="firstChild.style.visibility='visible'" + onmouseout="firstChild.style.visibility='hidden'"><div class="inner"></div></div> +</body> +</html> diff --git a/WebCore/manual-tests/resources/liveconnect-security-exception-popup.html b/WebCore/manual-tests/resources/liveconnect-security-exception-popup.html new file mode 100644 index 0000000..cea621b --- /dev/null +++ b/WebCore/manual-tests/resources/liveconnect-security-exception-popup.html @@ -0,0 +1,47 @@ +<html> +<head> +<!-- +Sorry for the hackery in this test. Currently, we have no elegant way to +catch Java errors and print out an intelligent response. +--> + +<title>popup window</title> +<script> +function print(message) { + var paragraph = document.createElement("p"); + paragraph.appendChild(document.createTextNode(message)); + document.getElementById("console").appendChild(paragraph); +} + +function test() { + if (window.layoutTestController) { + layoutTestController.dumpAsText(); + } + + print( + "applet.field returned " + + document.getElementById('applet').field + ); + + document.getElementById('applet').field += 1; + print( + "incremented applet.field by 1" + ); + + print( + "applet.field returned " + + document.getElementById('applet').field + ); + + print( + "applet.method() returned " + + document.getElementById('applet').method() + ); +} +</script> +</head> +<body onload="test();"> +<applet id='applet' code="TestApplet.class" codebase="."></applet> +<div id='console'/> +</body> +</html> diff --git a/WebCore/manual-tests/resources/lorem-text.html b/WebCore/manual-tests/resources/lorem-text.html new file mode 100644 index 0000000..12a42a6 --- /dev/null +++ b/WebCore/manual-tests/resources/lorem-text.html @@ -0,0 +1,34 @@ +<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=UTF-8"></HEAD><BODY><P>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam + nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, + sed diam voluptua. At vero eos et accusam et justo duo dolores et ea + rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem + ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing + elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna + aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo + dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus + est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur + sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et + dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam + et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea + takimata sanctus est Lorem ipsum dolor sit amet. + </P> + <P> Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse + molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero + eros et accumsan et iusto odio dignissim qui blandit praesent luptatum + zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum + dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh + euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + </P> + <P> Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper + suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem + vel eum iriure dolor in hendrerit in vulputate velit esse molestie + consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et + accumsan et iusto odio dignissim qui blandit praesent luptatum zzril + delenit augue duis dolore te feugait nulla facilisi. + </P> + <P> Nam liber tempor cum soluta nobis eleifend option congue nihil + imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum + dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh + euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut + wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper + suscipit lobortis nisl ut aliquip ex ea commodo consequat.</P></BODY></HTML>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/mouseevent-on-closeddoc.html b/WebCore/manual-tests/resources/mouseevent-on-closeddoc.html new file mode 100644 index 0000000..569616a --- /dev/null +++ b/WebCore/manual-tests/resources/mouseevent-on-closeddoc.html @@ -0,0 +1 @@ +<body onload="document.open();document.close();document.open();"></body> diff --git a/WebCore/manual-tests/resources/named-window-blank-target-step2.html b/WebCore/manual-tests/resources/named-window-blank-target-step2.html new file mode 100644 index 0000000..0275603 --- /dev/null +++ b/WebCore/manual-tests/resources/named-window-blank-target-step2.html @@ -0,0 +1,19 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST (continued):</b> <br> +STEP 3: Click <a target="foo" href="named-window-blank-target-step3.html">this link</a>. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +If this window is frontmost after STEP 4, then the test FAILED. +</p> + + +</body> +</html> diff --git a/WebCore/manual-tests/resources/named-window-blank-target-step3.html b/WebCore/manual-tests/resources/named-window-blank-target-step3.html new file mode 100644 index 0000000..c510522 --- /dev/null +++ b/WebCore/manual-tests/resources/named-window-blank-target-step3.html @@ -0,0 +1,14 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +STEP 4: Click <a href="named-window-blank-target-step4.html">this link</a>. +</p> + +</body> +</html> diff --git a/WebCore/manual-tests/resources/named-window-blank-target-step4.html b/WebCore/manual-tests/resources/named-window-blank-target-step4.html new file mode 100644 index 0000000..ee07450 --- /dev/null +++ b/WebCore/manual-tests/resources/named-window-blank-target-step4.html @@ -0,0 +1,14 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=7747">Bugzilla bug 7747</a> REGRESSION: Background tab/window auto-refresh in GMail will take focus.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +If this window is frontmost after STEP 4, the test PASSED. +</p> + +</body> +</html> diff --git a/WebCore/manual-tests/resources/nested-plug-ins-inner-frame.html b/WebCore/manual-tests/resources/nested-plug-ins-inner-frame.html new file mode 100644 index 0000000..193bbe9 --- /dev/null +++ b/WebCore/manual-tests/resources/nested-plug-ins-inner-frame.html @@ -0,0 +1 @@ +<embed id="plugin" width='100' height='100' src='spinbox.swf' wmode='window'> diff --git a/WebCore/manual-tests/resources/nested-plug-ins-outer-frame.html b/WebCore/manual-tests/resources/nested-plug-ins-outer-frame.html new file mode 100644 index 0000000..c447d16 --- /dev/null +++ b/WebCore/manual-tests/resources/nested-plug-ins-outer-frame.html @@ -0,0 +1,3 @@ +<embed id="plugin" width='100' height='100' src='spinbox.swf' wmode='window'> +<br> +<iframe style="height: 200px; width: 200px;" id='inner' src='nested-plug-ins-inner-frame.html'></iframe> diff --git a/WebCore/manual-tests/resources/nestedframesets.html b/WebCore/manual-tests/resources/nestedframesets.html new file mode 100644 index 0000000..3202fc0 --- /dev/null +++ b/WebCore/manual-tests/resources/nestedframesets.html @@ -0,0 +1,4 @@ +<frameset cols="300,300" rows="*"> + <frame src="testframeset.html" > + <frame src="lorem-text.html"> +</frameset>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/open-after-close-popup.html b/WebCore/manual-tests/resources/open-after-close-popup.html new file mode 100644 index 0000000..4f443d0 --- /dev/null +++ b/WebCore/manual-tests/resources/open-after-close-popup.html @@ -0,0 +1,5 @@ +<html> + <body> + PASS: window.open succeeded after window.close using same name. + </body> +</html> diff --git a/WebCore/manual-tests/resources/open-close-tokenizer-crash.html b/WebCore/manual-tests/resources/open-close-tokenizer-crash.html new file mode 100644 index 0000000..b45110a --- /dev/null +++ b/WebCore/manual-tests/resources/open-close-tokenizer-crash.html @@ -0,0 +1,8 @@ +<html> +<head> +<script Language="javaScript"> +self.close(); +</script> +<script language="javascript" src="empty-file.js"></script> +</head> +</html> diff --git a/WebCore/manual-tests/resources/orange.mov b/WebCore/manual-tests/resources/orange.mov Binary files differnew file mode 100644 index 0000000..a17e81b --- /dev/null +++ b/WebCore/manual-tests/resources/orange.mov diff --git a/WebCore/manual-tests/resources/plain-text-paste.dmg b/WebCore/manual-tests/resources/plain-text-paste.dmg Binary files differnew file mode 100644 index 0000000..f22188d --- /dev/null +++ b/WebCore/manual-tests/resources/plain-text-paste.dmg diff --git a/WebCore/manual-tests/resources/popup200x100.html b/WebCore/manual-tests/resources/popup200x100.html new file mode 100644 index 0000000..7e649c0 --- /dev/null +++ b/WebCore/manual-tests/resources/popup200x100.html @@ -0,0 +1,8 @@ +<html> +<head> +<title>Popup 200x100</title> +</head> +<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0"> +<img src="200x100.png" width="200" height="100"> +</body> +</html> diff --git a/WebCore/manual-tests/resources/popup200x200.html b/WebCore/manual-tests/resources/popup200x200.html new file mode 100644 index 0000000..c569c0c --- /dev/null +++ b/WebCore/manual-tests/resources/popup200x200.html @@ -0,0 +1,8 @@ +<html> +<head> +<title>Popup 100x100</title> +</head> +<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0"> +<img src="200x200.png" width="200" height="200"> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/print-subframe.html b/WebCore/manual-tests/resources/print-subframe.html new file mode 100755 index 0000000..272b684 --- /dev/null +++ b/WebCore/manual-tests/resources/print-subframe.html @@ -0,0 +1 @@ +<p>This text in the subframe should be printed.</p> diff --git a/WebCore/manual-tests/resources/redraw-page-cache-visited-links-2.html b/WebCore/manual-tests/resources/redraw-page-cache-visited-links-2.html new file mode 100644 index 0000000..c6568dc --- /dev/null +++ b/WebCore/manual-tests/resources/redraw-page-cache-visited-links-2.html @@ -0,0 +1,19 @@ +<html> +<head> +<script> +function runTest() { +// Uncomment to make this an automated test +// // Uses window.history hack; see http://bugs.webkit.org/show_bug.cgi?id=7135 +// window.history[99999] = 1; +// window.history.back(); +} +</script> +</head> +<body onload="runTest();"> +<div><a href="http://bugs.webkit.org/show_bug.cgi?id=8079">Bug 8079 REGRESSION: Redraw from page cache does not show visited links</a></div> +<div><br><br></div> +<ol> +<li value="3">Click the "Back" button on the browser. +</ol> +</body> +</html> diff --git a/WebCore/manual-tests/resources/spinbox.swf b/WebCore/manual-tests/resources/spinbox.swf Binary files differnew file mode 100644 index 0000000..220d00a --- /dev/null +++ b/WebCore/manual-tests/resources/spinbox.swf diff --git a/WebCore/manual-tests/resources/testframe-link_text.html b/WebCore/manual-tests/resources/testframe-link_text.html new file mode 100644 index 0000000..24c862d --- /dev/null +++ b/WebCore/manual-tests/resources/testframe-link_text.html @@ -0,0 +1,5 @@ +<p title="Can you see this title?" style="margin-left: -10px; margin-top: -15px;"><a href="http://www.google.com">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur dui nunc, tristique a, varius commodo, pellentesque in, augue. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur vehicula ante et nisl. Sed vitae sapien. Quisque turpis. Nullam libero urna, semper quis, tincidunt a, aliquam eget, nulla. Proin sollicitudin, purus ut aliquet imperdiet, eros tortor vehicula ante, id rutrum erat sapien ut sem. Mauris urna velit, scelerisque vitae, aliquam non, venenatis vitae, nibh. In nunc massa, commodo in, imperdiet vitae, tempor ut, neque. Suspendisse pharetra, mauris in scelerisque iaculis, tellus magna tempus elit, eget ultricies libero magna eget tortor. Suspendisse nibh quam, commodo sit amet, bibendum dapibus, sollicitudin eu, nisi. Vestibulum ipsum. Sed eget odio at ante iaculis fermentum. Quisque sed velit. Cras adipiscing, felis sed sodales dictum, felis neque dictum ante, ac dignissim leo nibh id erat. Sed consectetuer, ligula quis faucibus tincidunt, mauris lorem tempor justo, et ultricies nisi enim sit amet eros. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam dictum posuere augue. Sed fringilla. Nunc nunc. + +Suspendisse fringilla dui quis libero. Vestibulum ipsum erat, dictum eu, sodales et, pharetra nec, nibh. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec ac turpis eget dolor facilisis commodo. Nunc augue. Quisque in mauris ac nunc mollis dictum. In hac habitasse platea dictumst. Cras sed nisl at purus mattis suscipit. Suspendisse potenti. Maecenas vel dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Sed pede nisl, tristique ac, convallis vitae, mattis et, ante. Maecenas tortor. Suspendisse pulvinar ullamcorper pede. Praesent ac lacus. Integer sapien massa, tempus at, interdum ut, fermentum vitae, mi. Nullam pulvinar eros id purus. Duis velit quam, dictum ac, gravida ut, luctus id, dui. Nam id neque. + +Aliquam vitae tortor sed massa aliquam pellentesque. Aliquam erat volutpat. Donec sem. Duis lacus. Mauris magna velit, feugiat vel, interdum sit amet, viverra vitae, leo. Fusce lectus arcu, lacinia tempor, sodales vitae, mollis nec, turpis. Donec et elit consequat ligula egestas aliquam. Aliquam a turpis. Phasellus quis magna. Pellentesque vehicula, ligula ac tristique sodales, odio arcu mollis lorem, a vestibulum quam ipsum ut orci. In accumsan malesuada nibh. Quisque accumsan, augue non egestas egestas, nibh arcu varius nunc, at ornare ipsum libero et eros.</a></p>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/testframeset.html b/WebCore/manual-tests/resources/testframeset.html new file mode 100644 index 0000000..4d907e4 --- /dev/null +++ b/WebCore/manual-tests/resources/testframeset.html @@ -0,0 +1,4 @@ +<frameset rows="244,516" cols="*"> + <frame src="testframe-link_text.html" > + <frame src="http://www.google.com"> +</frameset>
\ No newline at end of file diff --git a/WebCore/manual-tests/resources/touch-poster.png b/WebCore/manual-tests/resources/touch-poster.png Binary files differnew file mode 100644 index 0000000..781c85a --- /dev/null +++ b/WebCore/manual-tests/resources/touch-poster.png diff --git a/WebCore/manual-tests/resources/webkit-background.png b/WebCore/manual-tests/resources/webkit-background.png Binary files differnew file mode 100644 index 0000000..6213bf5 --- /dev/null +++ b/WebCore/manual-tests/resources/webkit-background.png diff --git a/WebCore/manual-tests/resources/will-go-back.html b/WebCore/manual-tests/resources/will-go-back.html new file mode 100644 index 0000000..5d09ba3 --- /dev/null +++ b/WebCore/manual-tests/resources/will-go-back.html @@ -0,0 +1,11 @@ +<html> +<script> +function goBack() { + history.back(); +} +</script> + +<body onload="if (!window.layoutTestController) goBack();"> +If you can go back using the history : test has succeed. +</body> +</html> diff --git a/WebCore/manual-tests/resources/window-close-during-parsing-popup1.html b/WebCore/manual-tests/resources/window-close-during-parsing-popup1.html new file mode 100644 index 0000000..249cea8 --- /dev/null +++ b/WebCore/manual-tests/resources/window-close-during-parsing-popup1.html @@ -0,0 +1,11 @@ +<html> +<body onload="alert('FAIL: onload fired')" onunload="alert('FAIL: onunload fired')"> +<script> +window.close(); +alert('PASS: same script tag after close'); +</script> +<script> +alert('FAIL: different script tag after close'); +</script> +</body> +</html> diff --git a/WebCore/manual-tests/resources/window-close-during-parsing-popup2.html b/WebCore/manual-tests/resources/window-close-during-parsing-popup2.html new file mode 100644 index 0000000..9d0e682 --- /dev/null +++ b/WebCore/manual-tests/resources/window-close-during-parsing-popup2.html @@ -0,0 +1,7 @@ +<html> +<body onload="window.print()"> +<script> +window.close() +</script> +</body> +</html> diff --git a/WebCore/manual-tests/resources/write-after-open-popup.html b/WebCore/manual-tests/resources/write-after-open-popup.html new file mode 100644 index 0000000..ca73200 --- /dev/null +++ b/WebCore/manual-tests/resources/write-after-open-popup.html @@ -0,0 +1,5 @@ +<html> + <body> + FAIL: document.write should clear this text. + </body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/scrollIntoView-horizontal.html b/WebCore/manual-tests/scrollIntoView-horizontal.html new file mode 100644 index 0000000..1cb909c --- /dev/null +++ b/WebCore/manual-tests/scrollIntoView-horizontal.html @@ -0,0 +1,33 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID</b> <a href="rdar://problem/3471901">3471901</a> support scrollIntoView method for DOM elements (3474)</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Following the numbered steps on each button, click each button to scroll the next button into view.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Next button scrolls into view as specified.</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Next button does not scroll into view, or the button is scrolled to the wrong positon (top, bottom). +</p> + + +<input id="topleft" type="button" value="STEP 1: click to horizontally scroll STEP 2 into view" onclick="document.getElementById('topright').scrollIntoView(false);"> + +<input id="topright" type="button" value="STEP 2: click to scroll STEP 3 to BOTTOM of view" style="position: absolute; left: 1200px;" onclick="document.getElementById('bottomleft').scrollIntoView(false);"> + +<div style="height: 500px; width: 1200px; border: 1px solid;">here is a big empty div</div> + +<input id="bottomleft" type="button" value="STEP 3: click to scroll STEP 4 to TOP of view" style="position: absolute; top: 1200px;" onclick="document.getElementById('bottomright').scrollIntoView(true);"> + +<input id="bottomright" type="button" value="STEP 4: click to scroll STEP 1 to TOP of view (then you're done)" style="position: absolute; top: 1200px; left: 1200px;" onclick="document.getElementById('topleft').scrollIntoView();"> + +<div style="height: 500px; width: 1200px; border: 1px solid; position: absolute; top: 1300px;">here is a big empty div</div> + +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/scrollIntoView-vertical.html b/WebCore/manual-tests/scrollIntoView-vertical.html new file mode 100644 index 0000000..0d8525a --- /dev/null +++ b/WebCore/manual-tests/scrollIntoView-vertical.html @@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID</b> <a href="rdar://problem/3471901">3471901</a> support scrollIntoView method for DOM elements (3474)</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Following the numbered steps, click each button to scroll the specified colored box into view.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +A colored box should scroll into view after clicking each button. The text on the button specifies the expected position (top, bottom) of the box scrolled into view.</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Colored box does not scroll into view, or the box is scrolled to the wrong positon (top, bottom). +</p> + +<div id="purplebox" style="background-color:purple; width: 300px; height: 100px;"> + <input type="button" value="STEP 1: click to scroll yellow box to BOTTOM of view" onclick="document.getElementById('yellowbox').scrollIntoView(false);"> + <input type="button" value="STEP 4: click to scroll orange box to TOP of view" onclick="document.getElementById('orangebox').scrollIntoView(true);"> +</div> + +<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div> + +<div id="greenbox" style="background-color:green; width: 300px; height: 100px;"> + <input type="button" value="STEP 3: click to scroll purple box to TOP of view" onclick="document.getElementById('purplebox').scrollIntoView();"> +</div> + +<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div> + +<div id="yellowbox" style="background-color:yellow; width: 300px; height: 100px;"> + <input type="button" value="STEP 2: click to scroll green box to TOP of view" onclick="document.getElementById('greenbox').scrollIntoView(true);"> +</div> + +<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div> + +<div id="orangebox" style="background-color:orange; width: 300px; height: 100px;"> + Test Complete +</div> + +<div style="height: 500px; width: 500px; border: 1px solid;">here is a big empty div</div> + +</body> +</html> diff --git a/WebCore/manual-tests/scrollbar-hittest.html b/WebCore/manual-tests/scrollbar-hittest.html new file mode 100644 index 0000000..5ddef70 --- /dev/null +++ b/WebCore/manual-tests/scrollbar-hittest.html @@ -0,0 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=5829">http://bugs.webkit.org/show_bug.cgi?id=5829</a> REGRESSION: cursor tracking and hit testing in scrollable block don't take borders into account</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +1. Scroll down by clicking in the empty space below the scroll thumb. <br> +2. Scroll up by clicking in the empty space above the scroll thumb.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Scroll thumb will move back up to the top. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Scroll thumb will NOT move back up to the top. +</p> + + <div style="overflow: auto; height:300px; width:50px; border-bottom: solid red 50px; border-top: solid green 20px;"> + <div style="height:400px;"></div> + </div> + +</body> +</html> diff --git a/WebCore/manual-tests/scrollbar-hittest2.html b/WebCore/manual-tests/scrollbar-hittest2.html new file mode 100644 index 0000000..b44a762 --- /dev/null +++ b/WebCore/manual-tests/scrollbar-hittest2.html @@ -0,0 +1,21 @@ +<html> +<head> +<title></title> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=6149">http://bugs.webkit.org/show_bug.cgi?id=6149</a> REGRESSION (WebCore-417.5): horizontal scrollbar in overflow with top border doesn't receive mouse events</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>TO TEST:</b> <br> +Scroll right by clicking in the empty space to the right of the scroll thumb.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Scroll thumb will move to the right. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Scroll thumb will NOT move at all. +<div id="target" style="width: 400px; overflow: auto; border-top: 20px solid grey; border-bottom: 10px solid blue;"> + <div style="width: 600px; height: 20px; background: green;"></div> +</div> +</body> +</html> diff --git a/WebCore/manual-tests/scrolling-nestedframesets.html b/WebCore/manual-tests/scrolling-nestedframesets.html new file mode 100644 index 0000000..d5f0509 --- /dev/null +++ b/WebCore/manual-tests/scrolling-nestedframesets.html @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4361048">4361048</a> Glendale Regression: Seed: scrolling with scrollwheel, trackpad doesn't work for nested framesets at gmail.com</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +<ol> + <li>Place your mouse cursor over the leftmost frame below.</li> + <li>Try to scroll the contents of the frame up and down my using your mouse's scrollwheel.</li> + <li>Repeat for the other two frames.</li> +</ol> + +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The contents of the frame each frame should scroll.</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The contents of each frame do NOT scroll. +</p> + +<iframe width="800" height="500" src="resources/nestedframesets.html"> + +</body> +</html> diff --git a/WebCore/manual-tests/secure-keyboard-enabled-after-submit.html b/WebCore/manual-tests/secure-keyboard-enabled-after-submit.html new file mode 100644 index 0000000..c0cd5f9 --- /dev/null +++ b/WebCore/manual-tests/secure-keyboard-enabled-after-submit.html @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=13471">Bugzilla bug 13471</a> REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +1) Use System Preferences > International > Input Menu to enable a non-Roman +input source, e.g. Arabic.<br> +2) Click in the password field below.<br> +3) Check that non-Roman input sources are disabled in the Input menu (the flag +on the right side of the menu bar).<br> +4) Press Return to submit the form.<br> +5) Click in the text field.<br> +6) Check that non-Roman input sources are enabled and selectable in the Input +menu. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Non-Roman input sources will be disabled in step 3 but will be enabled again in step 6. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Non-Roman input sources will be disabled in step 6. +</p> + +<form method="post" action="data:text/html,Can you enter non-Roman characters in this field now? %3cinput%3e"> + Focus this password field and press Return: <input type="password"> +</form> + +</body> +</html> diff --git a/WebCore/manual-tests/select-element-type-select.html b/WebCore/manual-tests/select-element-type-select.html new file mode 100644 index 0000000..0a414f8 --- /dev/null +++ b/WebCore/manual-tests/select-element-type-select.html @@ -0,0 +1,33 @@ +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> + + <title>select test</title> +</head> + +<body> +Typing c should select c for you here:<br/> +<select> +<option value="1">aaaaa</option> +<option value="2">bbbbb</option> +<option value="3">ccccc</option> +<option value="4">ddddd</option> +<option value="5">eeeee</option> +<option value="6">fffff</option> +<option value="7">ggggg</option> +</select> +<br/><br/> +And should here too:<br/> +<select multiple size="3"> +<option value="1">aaaaa</option> +<option value="2">bbbbb</option> +<option value="3">cccc</option> +<option value="4">ddddd</option> +<option value="5">ßcccc</option> +<option value="6">eeeee</option> +<option value="7">fffff</option> +<option value="8">zgggg</option> +</select> +</body> + +</html> diff --git a/WebCore/manual-tests/select-onchange-after-js.html b/WebCore/manual-tests/select-onchange-after-js.html new file mode 100644 index 0000000..4cdea0a --- /dev/null +++ b/WebCore/manual-tests/select-onchange-after-js.html @@ -0,0 +1,47 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<body> + <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=11402">bug 11402</a> and + <a href="http://bugs.webkit.org/show_bug.cgi?id=12701">bug 12701</a>: + An onChange event should fire when the first item is not the default, and + after changing the value via JavaScript.</p> + <p>After following the steps below, both selects should display "SUCCESS".</p> + + <form action="" method="post" name="areaform" id="areaform"> + <select name="selectitem" onChange="onChange1(this)"> + <option value="1">Please change this to another value</option> + <option value="2">(to this one)</option> + </select> + </form> + <form action="" method="post" name="areaform2" id="areaform2"> + <select name="selectitem2" onChange="onChange2(this)"> + <option value="1">(to this one)</option> + <option value="2" selected>Please change this to another value</option> + </select> + </form> + + <script> + function onChange1(sel) { + if (sel.secondTry) { + sel.options[1].text='SUCCESS'; + } else { + sel.options[0].text='Please change this to another value once again'; + sel.value = '1'; + sel.secondTry = 1; + } + } + + function onChange2(sel) { + if (sel.secondTry) { + sel.options[0].text='SUCCESS'; + } else { + sel.options[1].text='Please change this to another value once again'; + document.forms.areaform2.selectitem2.options[1].selected = true; + sel.secondTry = 1; + } + } + </script> + +</body> +</html> diff --git a/WebCore/manual-tests/select_hr.html b/WebCore/manual-tests/select_hr.html new file mode 100644 index 0000000..957a995 --- /dev/null +++ b/WebCore/manual-tests/select_hr.html @@ -0,0 +1,234 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<script> + function getSelectInfo(myselect, mydiv) { + var s = document.getElementById(myselect); + var selectLength = s.length; + var optionCollectionLength = s.options.length; + var selectedInd = s.selectedIndex; + var opt = s.options[selectedInd]; + var optText = ""; + + if (opt) { + optText = opt.innerHTML; + } + + document.getElementById(mydiv).innerHTML = "Select length: " + selectLength + "<br>Option collection length: " + optionCollectionLength + "<br>Selected index: " + selectedInd + "<br>Selected option: " + optText; + } + + function getAllInfo(x) { + for (i = 1; i < x; i++) { + var s = "s" + i; + var d = "d" + i; + + getSelectInfo(s, d); + } + } +</script> + + +</head> +<body onload="getAllInfo(12)"> +<p><b>BUG ID:</b> <a href="rdar://problem/4229189">4229189</a> add a way to get a separator into a select element</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Please describe the steps required to test this bug here. +</p> + + +These tests make sure that adding an hr element in a select works properly. + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b>This should be a disabled popup menu, since the hr is not selectable. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> </p> +<select id = "s1"> +<hr> +</select> +<div id="d1"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: separator, option, separator +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s2"> +<hr> +<option>opt 1</option> +<hr> +</select> +<div id="d2"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: option, separator, option +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s3"> +<option>opt 1</option> +<hr> +<option>opt 2</option> +</select> +<div id="d3"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: option, four separators, two options, separator, option. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s4"> +<option>opt 1</option> +<hr> +<hr> +<hr> +<hr> +<option>opt 2</option> +<option>opt 3</option> +<hr> +<option>opt 4</option> +</select> +<div id="d4"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: group label, option, separator (incl. in group). +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s5"> +<optgroup label="Group 1"> +<option>opt 1</option> +<hr> +</optgroup> +</select> +<div id="d5"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: separator, group label, option. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s6"> +<hr> +<optgroup label="Group 1"> +<option>opt 1</option> +</optgroup> +</select> +<div id="d6"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: group label, option, separator, option, separator, option, two separators, (end of group), one option. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s7"> +<optgroup label="Group 1"> +<option>opt 1</option> +<hr> +<option>opt 2</option> +<hr> +<option>opt 3</option> +<hr> +<hr> +</optgroup> +<option>opt 4</option> +</select> +<div id="d7"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a popup menu with the following items: group label, one option two separators, (end of group), separator, group label, separator, two options, separator, (end of group), option. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s8"> +<optgroup label="Group 1"> +<option>opt 1</option> +<hr> +<hr> +</optgroup> +<hr> +<optgroup label="Group 2"> +<hr> +<option>opt 2</option> +<option>opt 3</option> +<hr> +</optgroup> +<option>opt 4</option> +</select> +<div id="d8"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +A disabled popup menu - since the optgroup and the hr are not selectable. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +</p> +<select id = "s9"> +<optgroup label="Group 1"> +<hr> +</optgroup> +</select> +<div id="d9"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a list box with the following items: 4 options. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +You should not see any separators in the list box.</p> +<br><select id = "s10" multiple> +<option value="test">opt 1</option> +<hr> +<hr> +<hr> +<hr> +<option>opt 2</option> +<option>opt 3</option> +<hr> +<option>opt 4</option> +</select> +<div id="d10"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see a list box with the following items: one option, group label, 3 options. +</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +You should not see any separators in the list box.</p> +<select id = "s11" multiple> +<option value="test">opt 1</option> +<hr> +<hr> +<optgroup label="Group 1"> +<hr> +<hr> +<option>opt 2</option> +<option>opt 3</option> +<hr> +<option>opt 4</option> +</optgroup> +</select> +<div id="d11"></div> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +For each of these list boxes, when you change the selection in JavaScript to index 1, the second option should get highlighted</p> +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +"opt 2" does not get highlighted after clicking the button.</p> + +<select id="s12" multiple> +<option id="o3">opt 1</option> +<hr> +<option id="o4">opt 2</option> +</select> +<input type="button" value="Change selection to 'opt 2'" onclick="document.getElementById('s12').selectedIndex = 1;"></input> + +<br><select id="s13" multiple> +<option id="o5">opt 1</option> +<hr> +<optgroup label="group"> +<option id="o6">opt 2</option> +</optgroup> +</select> +<input type="button" value="Change selection to 'opt 2'" onclick="document.getElementById('s13').selectedIndex = 1;"></input> + +<body> +</html> + diff --git a/WebCore/manual-tests/show-hide-object.html b/WebCore/manual-tests/show-hide-object.html new file mode 100644 index 0000000..88bfbc8 --- /dev/null +++ b/WebCore/manual-tests/show-hide-object.html @@ -0,0 +1,64 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/3572507">3572507</a> Flash in div with display:none style will not redraw when style changed to display:block (3479)</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +1. Verify that there is a Flash animation playing below.<br> +2. Click "Hide Flash".<br> +3. Click "Show Flash".<br> +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The Flash movie hides when "Hide Flash" is clicked, and shows again when "Show Flash" is clicked. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The Flash movie hides when "Hide Flash" is clicked, but does not show again when "Show Flash" is clicked. Clicking on "Hide Flash" and then "Show Flash" again will show the movie. +</p> + +<script language="JavaScript"> + + // 2 html tabs for multiple flash/java + var selected = "tab1"; + + function tabClick(whichTab) { + selected = whichTab; + + if (whichTab == "tab1") { + document.getElementById('tab1').style.display = "block"; + document.getElementById('tab2').style.display = "none"; + } + else if (whichTab == "tab2") { + document.getElementById('tab2').style.display = "block"; + document.getElementById('tab1').style.display = "none"; + } + } +</script> + +<div> + + <input type=button value="Hide Flash" onClick="tabClick('tab2')"><input type=button value="Show Flash" onClick="tabClick('tab1')"> + + + <div id="tab2" style="display: none"> + Flash hidden. + </div> + + <div id="tab1"> + <object id="scopeFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="200" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"> + <param name="movie" value="resources/spinbox.swf"> + <param name="quality" value="high"> + <comment> + <embed src="resources/spinbox.swf" width="300" height="200" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"> + </embed> + </comment> + </object> + </div> +</div> + +</body> +</html> diff --git a/WebCore/manual-tests/show-modal-dialog-test.html b/WebCore/manual-tests/show-modal-dialog-test.html new file mode 100644 index 0000000..ec39ee4 --- /dev/null +++ b/WebCore/manual-tests/show-modal-dialog-test.html @@ -0,0 +1,15 @@ +<script> +function showModal() { + document.form.fromModal.value = + showModalDialog("modal-dialog.html", + document.form.toModal.value, + "dialogHeight:280px,dialogWidth:400px"); +} +</script> +<form name="form"> +<p>Type text here to be sent to the modal window and press the button: +<input name="toModal" value="from main window"> +<input type="button" value="Show Modal" onClick="showModal()"></p> +<hy> +<p>Text will appear here from the modal window: <input name="fromModal"> +</form> diff --git a/WebCore/manual-tests/slider-thumb-tracking.html b/WebCore/manual-tests/slider-thumb-tracking.html new file mode 100644 index 0000000..5a852c8 --- /dev/null +++ b/WebCore/manual-tests/slider-thumb-tracking.html @@ -0,0 +1,28 @@ +<html> +<head> + <title></title> + <script type="text/javascript"> + function test() + { + var slider = document.getElementById("slider"); + var x = slider.offsetWidth * 3 / 4; + var y = slider.offsetHeight / 2; + + var event = document.createEvent("MouseEvent"); + event.initMouseEvent("mousedown", true, true, document.defaultView, 1, 0, 0, x, y, false, false, false, false, 0, document); + slider.dispatchEvent(event); + } + </script> +</head> +<body onload="test()"> + <p> + Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=11621">http://bugs.webkit.org/show_bug.cgi?id=11621</a> + REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range</i>. + </p> + <p> + The slider thumbs should be at the same horizontal position. + </p> + <input type="range" id="slider" value="30"> + <br> + <input type="range" value="70"> +</body> diff --git a/WebCore/manual-tests/stale-currentEvent.html b/WebCore/manual-tests/stale-currentEvent.html new file mode 100644 index 0000000..e9dfcfc --- /dev/null +++ b/WebCore/manual-tests/stale-currentEvent.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> + <script type="text/javascript"> + var inner_win; + + function open_inner() + { + var src = 'data:text/html,<title>Pop up</title><input type="button" value="Close" onclick="opener.closeChild()">'; + var tp = document.getElementById("theparent"); + inner_win = window.open(src, 'inner', 'width=200, height=200, left=' + (screenLeft + tp.offsetLeft) + ', top=' + (screenTop + outerHeight - innerHeight + tp.offsetTop)); + } + + function removeHoverNode() + { + var tp = document.getElementById("theparent"); + tp.parentNode.removeChild(tp); + setTimeout(reportSuccess, 500); + } + + function reportSuccess() + { + document.body.appendChild(document.createTextNode("SUCCESS")); + } + + function closeChild() + { + inner_win.close(); + document.body.offsetTop; + setTimeout(removeHoverNode, 100); + } + </script> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/5095977">5095997</a> (<a href="http://bugs.webkit.org/show_bug.cgi?id=13218">13218</a>) Reproducible crash after call to window.close()</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b><br> + 1. Click the Open button below. A pop up window will open.<br> + 2. In the pop up window, click the Close button, being careful not to + move the mouse during and shortly after clicking. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> + The black square will be replaced by the word “SUCCESS” and Safari will not crash. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> + Safari will crash (the word “SUCCESS” may appear before the crash). +</p> + <div id='theparent'> + <input type="button" value="Open" onclick="open_inner()"> + <div style="background: black; width: 200px; height:200px"> + </div> + </div> +</body> +</html> diff --git a/WebCore/manual-tests/stale-scrollbar-client-crash.html b/WebCore/manual-tests/stale-scrollbar-client-crash.html new file mode 100644 index 0000000..037b21c --- /dev/null +++ b/WebCore/manual-tests/stale-scrollbar-client-crash.html @@ -0,0 +1,54 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/5523503">rdar://problem/5523503</a> Safari crashes clicking scroll bar in FaceBook 'Trips'</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Drag the scroll thumb in each of the vertical scrollbars below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Each scrollbar will disappear when clicked, along with the box containing it, but the browser will not crash as you continue to drag. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The scrollbar will disappear and Safari will crash as you continue dragging. +</p> + +<div style="height: 120px;"> + <div id="overflow" style="overflow: auto; height: 100px; width: 100px; background-color: lightblue;"> + <div style="height: 200px;"></div> + </div> +</div> +<div> + <select multiple="true" id="listbox" style="height: 100px; width: 100px;"> + <option>One</option> + <option>Two</option> + <option>Three</option> + <option>Four</option> + <option>Five</option> + <option>Six</option> + <option>Seven</option> + <option>Eight</option> + <option>Nine</option> + <option>Ten</option> + </select> +</div> +<script> + var overflow = document.getElementById("overflow"); + var listbox = document.getElementById("listbox"); + + function mousedown(event) + { + if (event.target.id) + setTimeout(event.target.id + '.style.display = "none"', 0); + } + + overflow.addEventListener("mousedown", mousedown, false); + listbox.addEventListener("mousedown", mousedown, false); +</script> +</body> +</html> diff --git a/WebCore/manual-tests/submit-form-with-target-twice.html b/WebCore/manual-tests/submit-form-with-target-twice.html new file mode 100644 index 0000000..9b10410 --- /dev/null +++ b/WebCore/manual-tests/submit-form-with-target-twice.html @@ -0,0 +1,15 @@ +<html> +<script> +function runTest() { + var form = document.getElementById('f'); + + form.submit(); + form.submit(); +} +</script> +<form id="f" target="foo"><input></form> +<p>This tests that calling form.submit() twice in a row from JavaScript, on a form with a custom target and with at least one text field does not cause an assertion in a debug build of Safari. +</p> +<p>To test this, click the button below. A new window should open up and Safari should not assert.</p> +<button onclick="runTest()">Click Here</button> +</html> diff --git a/WebCore/manual-tests/subview-click-assertion.html b/WebCore/manual-tests/subview-click-assertion.html new file mode 100644 index 0000000..121ee2f --- /dev/null +++ b/WebCore/manual-tests/subview-click-assertion.html @@ -0,0 +1,32 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=9984">Bugzilla bug 9984</a> ASSERTION FAILURE: _private->mouseDownEvent != nil (WebKit/WebView/WebHTMLView.m:4863 -[WebHTMLView(WebInternal) _delegateDragSourceActionMask])</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Open this test in a new Safari window. In the new window, click once on the text “Click me”. Do not click +anywhere else in the window before clicking the text. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The text will be deselected. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +An assertion failure will occur. +</p> + +<iframe id="frame"></iframe> +<script> + var win = window['frame']; + var doc = win.document; + doc.write("<p id='target'>Click me</p>"); + var target = doc.getElementById('target'); + win.getSelection().setBaseAndExtent(target, 0, target, 1); +</script> + +</body> +</html> diff --git a/WebCore/manual-tests/svg-animated-gifs.svg b/WebCore/manual-tests/svg-animated-gifs.svg new file mode 100644 index 0000000..c661d41 --- /dev/null +++ b/WebCore/manual-tests/svg-animated-gifs.svg @@ -0,0 +1,17 @@ +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + + <text x="0" y="15">There should be only one animated image here, rotated, and not clipped:</text> + <g transform="rotate(45,100,250)" > + <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" /> + <foreignObject x="70" y="70" width="150" height="150" > + <xhtml:img src="resources/3dolph.gif" width="150" height="150" /> + </foreignObject> + </g> + <text x="0" y="400">The animated image below should look like the one above:</text> + <g transform="translate(0, 400) rotate(45,100,250)" > + <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" /> + <image xlink:href="resources/3dolph.gif" x="60" y="60" width="170" height="170" /> + </g> +</svg> diff --git a/WebCore/manual-tests/svg-animation-parseValues.svg b/WebCore/manual-tests/svg-animation-parseValues.svg new file mode 100644 index 0000000..391916c --- /dev/null +++ b/WebCore/manual-tests/svg-animation-parseValues.svg @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> + +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"> + <text text-anchor="middle" x="240" y="15" font-size="16">Test for WebKit bug 12565</text> + <text text-anchor="middle" x="240" y="35" font-size="16">(parsing of animateTransform values).</text> + <text text-anchor="middle" x="240" y="55" font-size="16">You should see a green square and no red.</text> + <g transform="translate(60,90)"> + <rect fill="red" x="-19" y="-19" width="38" height="38"/> + <g fill="green"> + <animateTransform attributeName="transform" type="rotate" values="450;450;" dur="1s"/> + <rect x="-20" y="-20" width="40" height="40"/> + </g> + </g> +</svg> diff --git a/WebCore/manual-tests/svg-link-hover-use.svg b/WebCore/manual-tests/svg-link-hover-use.svg new file mode 100644 index 0000000..c39974d --- /dev/null +++ b/WebCore/manual-tests/svg-link-hover-use.svg @@ -0,0 +1,9 @@ +<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> + <defs> + <rect id='rect' width='100' height="100" fill='blue' /> + </defs> + <a xlink:href="http://www.webkit.org" > + <use xlink:href="rect" onmouseover="alert('foo')" /> + </a> + <text y='120' x='10'>The above blue square is a link, the cursor should be a hand above it.</text> +</svg> diff --git a/WebCore/manual-tests/svg-links.svg b/WebCore/manual-tests/svg-links.svg new file mode 100644 index 0000000..5d0ff0d --- /dev/null +++ b/WebCore/manual-tests/svg-links.svg @@ -0,0 +1,12 @@ +<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> + <a xlink:href='http://www.apple.com' xlink:title='SUCCESS you got a tooltip'> + <rect width='100' height='100' /> + </a> + <text x='10' y='120'> + Try the following with the link above: + <tspan x='10' dy='20'>1. Hover and notice the status text change</tspan> + <tspan x='10' dy='20'>2. Hover and notice the cursor change to a hand</tspan> + <tspan x='10' dy='20'>3. Hover and notice a tooltip appear</tspan> + <tspan x='10' dy='20'>4. Drag the link and notice a bubble appear with the correct URL</tspan> + </text> +</svg> diff --git a/WebCore/manual-tests/svg-repaint-foreignObject.svg b/WebCore/manual-tests/svg-repaint-foreignObject.svg new file mode 100644 index 0000000..5c5cad9 --- /dev/null +++ b/WebCore/manual-tests/svg-repaint-foreignObject.svg @@ -0,0 +1,81 @@ +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + +<script> +<![CDATA[ +var stateIndex = 0; +var currentTarget = 0; + +function stateA() +{ + document.getElementById("A").textContent = '|A|'; + document.getElementById("B").textContent = 'B'; + + currentTarget = 0; + startAnimation(); +} + +function stateB() +{ + document.getElementById("A").textContent = 'A'; + document.getElementById("B").textContent = '|B|'; + currentTarget = 1; + startAnimation(); +} + +var intervalId = null; + +function startAnimation() { + if (intervalId == null) { + intervalId = setInterval(animationStep, 20); + } +} + +function animationStep() { + if (Math.abs(stateIndex - currentTarget) < .001) { + clearInterval(intervalId); + intervalId = null; + return; + } + + if (stateIndex < currentTarget) { + stateIndex += 1 / 128; + } else { + stateIndex -= 1 / 128; + } + + var elt = document.getElementById("targetGroup"); + + var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ; + var opacity = 1 - .75 * stateIndex; + + elt.setAttribute("opacity", opacity); + elt.setAttribute("transform", transform); +} + + +]]> +</script> + + <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text> + <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text> + <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text> + <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text> + + <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" /> + + <g> + <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" /> + + <foreignObject id="targetGroup" x="60" y="60" width="170" height="170" > + <xhtml:xhtml> + <xhtml:img src="http://www.citilink.com/~grizzly/anigifs/3dolph.gif" width="170" height="170" /><br /> + </xhtml:xhtml> + </foreignObject> + </g> + + +</svg> + + diff --git a/WebCore/manual-tests/svg-repaint-group.svg b/WebCore/manual-tests/svg-repaint-group.svg new file mode 100644 index 0000000..7f0972e --- /dev/null +++ b/WebCore/manual-tests/svg-repaint-group.svg @@ -0,0 +1,81 @@ +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + +<script> +<![CDATA[ +var stateIndex = 0; +var currentTarget = 0; + +function stateA() +{ + document.getElementById("A").textContent = '|A|'; + document.getElementById("B").textContent = 'B'; + + currentTarget = 0; + startAnimation(); +} + +function stateB() +{ + document.getElementById("A").textContent = 'A'; + document.getElementById("B").textContent = '|B|'; + currentTarget = 1; + startAnimation(); +} + +var intervalId = null; + +function startAnimation() { + if (intervalId == null) { + intervalId = setInterval(animationStep, 20); + } +} + +function animationStep() { + if (Math.abs(stateIndex - currentTarget) < .001) { + clearInterval(intervalId); + intervalId = null; + return; + } + + if (stateIndex < currentTarget) { + stateIndex += 1 / 128; + } else { + stateIndex -= 1 / 128; + } + + var elt = document.getElementById("targetGroup"); + + var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ; + var opacity = 1 - .75 * stateIndex; + + elt.setAttribute("opacity", opacity); + elt.setAttribute("transform", transform); +} + + +]]> +</script> + + <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text> + <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text> + <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text> + <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text> + + <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" /> + + <g id="targetGroup"> + <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" /> + + <foreignObject x="60" y="60" width="170" height="170" > + <xhtml:xhtml> + <xhtml:img src="http://www.citilink.com/~grizzly/anigifs/3dolph.gif" width="170" height="170" /><br /> + </xhtml:xhtml> + </foreignObject> + </g> + + +</svg> + + diff --git a/WebCore/manual-tests/svg-repaint-image.svg b/WebCore/manual-tests/svg-repaint-image.svg new file mode 100644 index 0000000..018a6a0 --- /dev/null +++ b/WebCore/manual-tests/svg-repaint-image.svg @@ -0,0 +1,77 @@ +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + +<script> +<![CDATA[ +var stateIndex = 0; +var currentTarget = 0; + +function stateA() +{ + document.getElementById("A").textContent = '|A|'; + document.getElementById("B").textContent = 'B'; + + currentTarget = 0; + startAnimation(); +} + +function stateB() +{ + document.getElementById("A").textContent = 'A'; + document.getElementById("B").textContent = '|B|'; + currentTarget = 1; + startAnimation(); +} + +var intervalId = null; + +function startAnimation() { + if (intervalId == null) { + intervalId = setInterval(animationStep, 20); + } +} + +function animationStep() { + if (Math.abs(stateIndex - currentTarget) < .001) { + clearInterval(intervalId); + intervalId = null; + return; + } + + if (stateIndex < currentTarget) { + stateIndex += 1 / 128; + } else { + stateIndex -= 1 / 128; + } + + var elt = document.getElementById("targetGroup"); + + var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ; + var opacity = 1 - .75 * stateIndex; + + elt.setAttribute("opacity", opacity); + elt.setAttribute("transform", transform); +} + + +]]> +</script> + + <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text> + <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text> + <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text> + <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text> + + <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" /> + + <g> + <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" /> + + <image id="targetGroup" x="60" y="60" width="170" height="170" xlink:href="resources/3dolph.gif" /> + </g> + + +</svg> + + diff --git a/WebCore/manual-tests/svg-repaint-path.svg b/WebCore/manual-tests/svg-repaint-path.svg new file mode 100644 index 0000000..144e8ae --- /dev/null +++ b/WebCore/manual-tests/svg-repaint-path.svg @@ -0,0 +1,77 @@ +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + +<script> +<![CDATA[ +var stateIndex = 0; +var currentTarget = 0; + +function stateA() +{ + document.getElementById("A").textContent = '|A|'; + document.getElementById("B").textContent = 'B'; + + currentTarget = 0; + startAnimation(); +} + +function stateB() +{ + document.getElementById("A").textContent = 'A'; + document.getElementById("B").textContent = '|B|'; + currentTarget = 1; + startAnimation(); +} + +var intervalId = null; + +function startAnimation() { + if (intervalId == null) { + intervalId = setInterval(animationStep, 20); + } +} + +function animationStep() { + if (Math.abs(stateIndex - currentTarget) < .001) { + clearInterval(intervalId); + intervalId = null; + return; + } + + if (stateIndex < currentTarget) { + stateIndex += 1 / 128; + } else { + stateIndex -= 1 / 128; + } + + var elt = document.getElementById("targetGroup"); + + var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 + stateIndex) + ")" ; + var opacity = 1 - .75 * stateIndex; + + elt.setAttribute("opacity", opacity); + elt.setAttribute("transform", transform); +} + + +]]> +</script> + + <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text> + <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text> + <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text> + <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text> + + <circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" /> + + <g> + <rect id="targetGroup" fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" /> + + <image x="60" y="60" width="170" height="170" xlink:href="resources/3dolph.gif" /> + </g> + + +</svg> + + diff --git a/WebCore/manual-tests/svg-text-selection.svg b/WebCore/manual-tests/svg-text-selection.svg new file mode 100644 index 0000000..4c34d24 --- /dev/null +++ b/WebCore/manual-tests/svg-text-selection.svg @@ -0,0 +1,9 @@ +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + <text x="0" y="100" fill="black" font-size="32">Selection will be constrained to this line.</text> + <text x="0" y="200" fill="black" font-size="32">You should be able + <tspan x="0" y="235">to select multiline here</tspan> + <tspan x="0" y="270">See bug 12334</tspan> + </text> +</svg> diff --git a/WebCore/manual-tests/tabbing-input-google.html b/WebCore/manual-tests/tabbing-input-google.html new file mode 100644 index 0000000..6770c11 --- /dev/null +++ b/WebCore/manual-tests/tabbing-input-google.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8181">8181</a> REGRESSION: After tabbing in page's field, attempting to tab from Google toolbar search to page fails on first try</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> <br> +1) Place the cursor in the Google search field.<br> +2) Hit tab until focus cycles through the text fields in the page, and comes back to the Google field.<br> +3) Hit tab once. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The first text field in the page should have focus. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The first text field in the page does not have focus. +</p> +<input type="text" value="1"><input type="text" value="2"><input type="text" value="3"> +</body> +</html> diff --git a/WebCore/manual-tests/target-test.html b/WebCore/manual-tests/target-test.html new file mode 100644 index 0000000..86f6000 --- /dev/null +++ b/WebCore/manual-tests/target-test.html @@ -0,0 +1 @@ +<a href="targeted.html" target="test">Click this link.</a> diff --git a/WebCore/manual-tests/target_new-1.html b/WebCore/manual-tests/target_new-1.html new file mode 100644 index 0000000..66e16c4 --- /dev/null +++ b/WebCore/manual-tests/target_new-1.html @@ -0,0 +1,11 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"><head> +<body> +<p>Reference the opener, its properties and functions via the links below.</p> +<ol> + +<li>Clicking <a href="#" onclick="alert(window.opener)">here</a> should alert "[object Window]"</li> +<li>Clicking <a href="#" onclick="alert(window.opener.aVar)">here</a> should alert "some value"</li> +<li>Clicking <a href="#" onclick="window.opener.externallyCalled()">here</a> should alert "hello from opener"</li> +</ol> +</body></html>
\ No newline at end of file diff --git a/WebCore/manual-tests/target_new.html b/WebCore/manual-tests/target_new.html new file mode 100644 index 0000000..d7d75b4 --- /dev/null +++ b/WebCore/manual-tests/target_new.html @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<script type="text/javascript" language="javascript" charset="utf-8"> + var aVar = "some value"; + function externallyCalled() { + alert("hello from opener"); + } +</script> +</head> +<body> +<p><b>BUG ID:</b> <a href="rdar://problem/4172380">4172380</a> [GENENTECH] window.opener not available when child opened via target="_new"</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click link below, then click links in the window that opens.</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Links in the new window that opens will alert "[object Window]", "some value", and "hello from opener". +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +First link in the new window that opens will alert "null", and the other two links will not work at all. +</p> + +<a href="target_new-1.html" target="_new">Click this link to begin test</a> +</body> +</html> diff --git a/WebCore/manual-tests/targeted.html b/WebCore/manual-tests/targeted.html new file mode 100644 index 0000000..16cb18d --- /dev/null +++ b/WebCore/manual-tests/targeted.html @@ -0,0 +1 @@ +This should open in a new window. diff --git a/WebCore/manual-tests/template.html b/WebCore/manual-tests/template.html new file mode 100644 index 0000000..e858392 --- /dev/null +++ b/WebCore/manual-tests/template.html @@ -0,0 +1,24 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="Bug URL Here">Bug ID Number Here</a> Bug Title Here</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Please describe the steps required to test this bug here. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +Expected results if the test PASSES here. Please describe the results the tester would see if the bug in question is FIXED. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +Expected results if the test FAILS here. Please describe the results the tester would see if the bug in question is NOT FIXED. In many cases, this is just a description of the original bug. +</p> + +Your test code goes here. + +</body> +</html> diff --git a/WebCore/manual-tests/test-iframes-loading-the-same-resource.html b/WebCore/manual-tests/test-iframes-loading-the-same-resource.html new file mode 100644 index 0000000..462db02 --- /dev/null +++ b/WebCore/manual-tests/test-iframes-loading-the-same-resource.html @@ -0,0 +1,19 @@ +<html> +<head> +<script> + setTimeout('document.getElementById("frame2").src = "resources/test-frame.html";', 100); + loadCount = 0 + function frame2Loaded() { + if (loadCount < 40) { + setTimeout('document.getElementById("frame2").src = "resources/test-frame.html?'+loadCount+'";', 100); + loadCount++; + } + } +</script> +</head> +<body> + To perform this test attempt to drag one of the apple images in the left frame while the right frame is doing loads. This test is not entirely deterministic so it should be attempted a number of times. <br /> +<iframe id="frame1" src="resources/test-frame.html"></iframe> +<iframe id="frame2" onload="frame2Loaded();"></iframe> +</body> +</html> diff --git a/WebCore/manual-tests/text-field-autoscroll.html b/WebCore/manual-tests/text-field-autoscroll.html new file mode 100644 index 0000000..c7848ec --- /dev/null +++ b/WebCore/manual-tests/text-field-autoscroll.html @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8496">Bugzilla #8496</a> REGRESSION: Dragging to select text around a text field causes the text field to scroll</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Start dragging in the text above the text field. Stop where it says "HERE".</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The text field should not autoscroll its text during this drag. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +If the text field scrolls, the test has failed. +</p> +Start dragging here....<br> +<input id="tf" value="12345678910 abcdefghijkl 0000000000"><br> +End dragging ............................HERE........watch the text field scroll. +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/textarea-after-stylesheet-link.html b/WebCore/manual-tests/textarea-after-stylesheet-link.html new file mode 100644 index 0000000..1b88626 --- /dev/null +++ b/WebCore/manual-tests/textarea-after-stylesheet-link.html @@ -0,0 +1,18 @@ +<html> +<head> +<script> +if (window.layoutTestController) { + window.layoutTestController.dumpAsText(); +} +</script> +<link rel="stylesheet" /> +</head> +<body> +<p>Tests: whether <link rel="stylesheet"/> disturbs the display of text in textareas</p> +<p>Related bug: <a href = "http://bugs.webkit.org/show_bug.cgi?id=3751">3751: REGRESSION: affects Blogger, GMail & Wikipedia: empty textarea's which should have content</a></p> +<p>Success: You will see "passed" inside the texarea below</p> +<hr> +<textarea>passed</textarea> +</form> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/textarea-focus.html b/WebCore/manual-tests/textarea-focus.html new file mode 100644 index 0000000..53afe9e --- /dev/null +++ b/WebCore/manual-tests/textarea-focus.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +<style type="text/css"> + textarea { background: red; } + textarea:focus { background: green; } +</style> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=8324">Bugzilla bug 8324</a> REGRESSION: textarea :focus not applied immediately</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +Click in the red text area below. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The text area’s background will change from red to green. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The text area will not change to green. Only switching to another window and back to this window +will change it to green. +</p> + +<textarea rows="8" cols="40"></textarea> + +</body> +</html> diff --git a/WebCore/manual-tests/textarea-iframe-navigation.html b/WebCore/manual-tests/textarea-iframe-navigation.html new file mode 100644 index 0000000..98d0748 --- /dev/null +++ b/WebCore/manual-tests/textarea-iframe-navigation.html @@ -0,0 +1,17 @@ +<html> +<head> +</head> +<body> +<p>Textarea inside iframe -- Navigation</p> + <ol> + <li>In the Debug menu, click "Go to about:blank soon"</li> + <li>Select a few lines in the textarea, keeping the mouse cursor down inside the area</li> + <li>Wait for the navigation to happen</li> + <li>Release the mouse</li> + </ol> +<p>You should not crash.</p> +<hr> +<iframe style="border: 2px solid black" width="100%" src="textarea-iframe-navigation2.html"> +</iframe> +</body> +</html> diff --git a/WebCore/manual-tests/textarea-iframe-navigation2.html b/WebCore/manual-tests/textarea-iframe-navigation2.html new file mode 100644 index 0000000..74b4964 --- /dev/null +++ b/WebCore/manual-tests/textarea-iframe-navigation2.html @@ -0,0 +1,12 @@ +<html> +<head> +</head> + +<body> +<textarea rows="3"> +a +b +c +</textarea> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/textarea-onpaste.html b/WebCore/manual-tests/textarea-onpaste.html new file mode 100644 index 0000000..04d98b1 --- /dev/null +++ b/WebCore/manual-tests/textarea-onpaste.html @@ -0,0 +1,9 @@ +<html> + <head> + </head> + <body> + <textarea onpaste="document.getElementById('result').innerHTML='SUCCESS'">Paste here</textarea> + This tests that onpaste handlers are called. To test this, paste some text in the textarea below. The result below should change from FAILURE to SUCCESS. + <div id="result">FAILURE</div> + </body> +</html> diff --git a/WebCore/manual-tests/textfield-onblur.html b/WebCore/manual-tests/textfield-onblur.html new file mode 100644 index 0000000..8f9d7ec --- /dev/null +++ b/WebCore/manual-tests/textfield-onblur.html @@ -0,0 +1,37 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> + <script> + function init () { + document.getElementById("test").focus(); + } + + function foo () { + document.open(); + document.write('Test has passed.'); + document.close(); + } + </script> +</head> +<body onload="init();"> +<p><b>BUG ID:</b> <a href="rdar://problem/4181058">4181058</a> 8C45: Safari repro crash with document.write (WebCore::Node::dispatchEvent)</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +<ul> +<li> Press the Tab key. This will remove focus from the text field, and should call document.write without crashing. +</ul> +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +You should see text that says "Test has passed". +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +If the test fails, the browser will crash. +</p> + +<input type="text" id="test" onblur="foo();" /> + +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/title-internal-whitespace.html b/WebCore/manual-tests/title-internal-whitespace.html new file mode 100644 index 0000000..b2cb89e --- /dev/null +++ b/WebCore/manual-tests/title-internal-whitespace.html @@ -0,0 +1,12 @@ +<html> +<head> + <title> + Lorem + Ipsum + Dolor + </title> +</head> +<body> + Title should render as "Lorem Ipsum Dolor" not "Lorem Ipsum Dolor". +</body> +</html> diff --git a/WebCore/manual-tests/update-empty-popup.html b/WebCore/manual-tests/update-empty-popup.html new file mode 100644 index 0000000..03462f2 --- /dev/null +++ b/WebCore/manual-tests/update-empty-popup.html @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<html lang="en"> +<head> +</head> +<body> +<p><b>BUG ID:</b> <a href="http://bugs.webkit.org/show_bug.cgi?id=13379">Bugzilla bug 13379</a> REGRESSION: Cannot add an option to a selected popup</p> + +<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> +1. Click on the empty popup button.<br> +2. Click on the Test button. +</p> + +<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> +The popup button will change to display the word SUCCESS. +</p> + +<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b> +The popup button will become wider but will not display any text. Clicking the popup +once will not bring up the menu. +</p> + +<select id="select"></select> +<br> +<input type="button" onclick='document.getElementById("select").add(new Option("SUCCESS"))' value="Test"> + +</body> +</html> diff --git a/WebCore/manual-tests/video-player.html b/WebCore/manual-tests/video-player.html new file mode 100644 index 0000000..2bced51 --- /dev/null +++ b/WebCore/manual-tests/video-player.html @@ -0,0 +1,110 @@ +<style> +#videoelem { width: 100%; height: 100%; position: absolute; } +#videocontainer { position: relative; width: 400px; height:230px;-webkit-user-select:none; -webkit-transition-duration:0.2s} +.videobutton { + line-height: 40pt; + border: 3px solid white; + -webkit-border-radius: 20px; + opacity: 0.5; + position: absolute; + font-size: 40pt; + color: white; + background-color: gray; + cursor: pointer; + text-align: center; + z-index: 1; +} +.videozoombutton { bottom:10px;right:10px;width:1.1em;height:1.1em;font-size:15pt; line-height: 15pt; border:2px solid white; -webkit-border-radius: 8px;} +.videoloading { top: 0; bottom: 0; margin:auto; left:0; right:0; width: 7em; height: 1.2em; cursor:default;} +.videofadeout { -webkit-transition: 1.5s; opacity:0; } +#videocontainer:hover .videofadeout { opacity: 0.5; } +.videoplay { top: 0; bottom: 0; margin:auto; left:0; right:0; width: 1.2em; height: 1.2em;} +</style> +<script> +var videoElem; +var playButton; +var showProgress = true; +var videoLargeSize = false; +function startedPlaying() { + showProgress = false; + playButton.innerHTML = "||" + playButton.className = "videobutton videoplay videofadeout"; +} +function stoppedPlaying() { + playButton.innerHTML = ">" + playButton.className = "videobutton videoplay"; +} +function updateProgress(ev) { + if (!showProgress) + return; + if (ev.total) + playButton.innerHTML = "Loading " + (100*ev.loaded/ev.total).toFixed(0) + "%"; + else + playButton.innerHTML = "Loading..."; + playButton.className = "videobutton videoloading"; +} +function initVideo() { + videoElem = document.getElementById("videoelem"); + playButton = document.getElementById("videoplaybutton"); + videoZoomButton = document.getElementById("videozoombutton"); + if (!videoElem.play) { + playButton.style.display = "none"; + videoZoomButton.style.display = "none"; + return; + } + videoElem.addEventListener("play", startedPlaying); + videoElem.addEventListener("pause", stoppedPlaying); + videoElem.addEventListener("ended", function () { + if (!videoElem.paused) + videoElem.pause(); + stoppedPlaying(); + }); + videoElem.addEventListener("progress", updateProgress); + videoElem.addEventListener("begin", updateProgress); + videoElem.addEventListener("canplaythrough", function () { + videoElem.play(); + }); + videoElem.addEventListener("error", function() { + playButton.innerHTML = "Load failed"; + }); + videoElem.addEventListener("dataunavailable", function () { + if (!showProgress) { + showProgress = true; + playButton.innerHTML = "Loading..."; + playButton.className = "videobutton videoloading"; + } + }); + videoZoomButton.addEventListener("click", function () { + var container = document.getElementById("videocontainer"); + videoLargeSize = !videoLargeSize; + if (videoLargeSize) { + container.style.width = "640px"; + container.style.height = "360px"; + videoZoomButton.innerHTML = "-"; + } else { + container.style.width = "400px"; + container.style.height = "225px"; + videoZoomButton.innerHTML = "+"; + } + }); + playButton.addEventListener("click", function () { + if (videoElem.paused) { + if (!videoElem.src) + //videoElem.src = "sample.mov"; + videoElem.src = "http://movies.apple.com/movies/us/apple/ipoditunes/2007/touch/ads/apple_ipodtouch_touch_r640-9cie.mov"; + if (videoElem.readyState == HTMLMediaElement.DATA_UNAVAILABLE) + videoElem.load(); + if (videoElem.readyState == HTMLMediaElement.CAN_PLAY_THROUGH) + videoElem.play(); + } else + videoElem.pause(); + } ); +} +</script> +<div id=videocontainer> +<video id=videoelem poster="resources/touch-poster.png"> +<b style="font-size:15pt">This is fallback content. If you had video support you would see some here!</b></video> +<div class="videobutton videoplay" id=videoplaybutton>></div> +<div id=videozoombutton class="videobutton videozoombutton videofadeout">+</div> +</div> +<script>initVideo();</script> diff --git a/WebCore/manual-tests/whitespace-pre-affinity.html b/WebCore/manual-tests/whitespace-pre-affinity.html new file mode 100644 index 0000000..eac9040 --- /dev/null +++ b/WebCore/manual-tests/whitespace-pre-affinity.html @@ -0,0 +1,16 @@ +<html> +<body> +<p>This test checks for a regression against http://bugs.webkit.org/show_bug.cgi?id=3739.</p> +NOTES:<ol> +<li>this MUST be checked in a build because the symptom is an assert</li> +<li>double-click a few times on the blanks lines below</li> +<li>if you hit the isEqualIgnoringAffinity() assert, the bug is back</li> +</ol> +<hr> +<pre>One + +Two + +Three</pre> +</body> +</html> diff --git a/WebCore/manual-tests/window-close-during-parsing.html b/WebCore/manual-tests/window-close-during-parsing.html new file mode 100644 index 0000000..70dfef4 --- /dev/null +++ b/WebCore/manual-tests/window-close-during-parsing.html @@ -0,0 +1,18 @@ +<html> +<body> +<p>This test checks a window.close called in the midst of parsing a page. + Click the buttons below to load the test pages. +</p> +<hr> +<input type=button value="Run Test 1" onclick='window.open("resources/window-close-during-parsing-popup1.html")'> +<p>If this test passes, you should see 'PASS: same script tag after close,' + but nothing else. In particular, you should not see onload or onunload + fire. +</p> +<hr> +<input type=button value="Run Test 2" onclick='window.open("resources/window-close-during-parsing-popup2.html")'> +<p>If this test passes, you should see a window open and then close. + If it fails, Safari will crash. +</p> +</body> +</html> diff --git a/WebCore/manual-tests/window-open-features-parsing.html b/WebCore/manual-tests/window-open-features-parsing.html new file mode 100644 index 0000000..50dc5e8 --- /dev/null +++ b/WebCore/manual-tests/window-open-features-parsing.html @@ -0,0 +1,38 @@ +<html><head><script> +function test() { + /* The lowdown on this feature string: + - ,=\twidth: reads as key:width value:0200px|0, which, after strtol/toInt, gives you 200 + - =height: reads as key:height value:"", which means yes, which means 1, but the minimum size is 100, so 100 + - 1width: reads as key:1width, an invalid key, so it doesn't override the previous width + - left: reads as key:left value:no, which means 0, which means aligned to the left side of the screen + - \ntoolBAR: reads as key:toolbar value:yes + - \rstatus: reads as key:status value:"", which means yes + - the trailing comma catches a previous mistake i made reading past the end of the string + */ + var sFeatures = " ,=\twidth == = = 0200px|0=height 400,1width=400,left=nO \ntoolBAR=yeS,resizable=yess, \rstatus= ,"; + var w = window.open("resources/popup200x100.html", undefined, sFeatures); + w.focus(); +} +</script></head> +<body> +<p>This test checks whether parsing of the 'features' argument to window.open matches +Win IE's behavior, except in the case of "resizable," which should always be true.</p> +<p>The link below should open a window with the following attributes:</p> +<ul> +<li> A WebView exactly 200x100, such that you can see a red 1 pixel border along each edge of the WebView. +<li> A window aligned to the left hand side of the screen. +<li> Toolbar visible. +<li> Statusbar visible. +<li> Resizable. +</ul> +<a href="" onclick="test(); return false;">Click to test</a> +<hr> +<p>The link below should open a window with the following attributes:</p> +<ul> +<li>A window whose size matches what you would get from file->New Window.</li> +<li>A window whose positioning matches what you would get from file->New Window.</li> +<li>Statusbar visible.</li> +<li>Resizable.</li> +</ul> +<a href="" onclick='window.open("", "", "status,resizable");'>Click to test</a> +</body></html> diff --git a/WebCore/manual-tests/window-print-subframe.html b/WebCore/manual-tests/window-print-subframe.html new file mode 100755 index 0000000..39047b3 --- /dev/null +++ b/WebCore/manual-tests/window-print-subframe.html @@ -0,0 +1,5 @@ +<script> + window.onload = function() { frames[0].print(); } +</script> +<p>This text in the main frame should not be printed.</p> +<iframe src="resources/print-subframe.html"> diff --git a/WebCore/manual-tests/window-sizing.html b/WebCore/manual-tests/window-sizing.html new file mode 100644 index 0000000..572998b --- /dev/null +++ b/WebCore/manual-tests/window-sizing.html @@ -0,0 +1,126 @@ +<html> +<head> +<script> +var w; +function Open(sFeatures) +{ + if (w && !w.closed) + w.close(); + + w = window.open("resources/popup200x200.html", "popup", sFeatures); + +} + +function test1() +{ + Open("width=200, height=200, left = 0, top = 0, scrollbars, resizable"); + + setConsole(document.getElementById('console1')); + clearConsole(); + shouldBe("w.innerHeight", 200); + shouldBe("w.innerWidth", 200); + shouldBe("w.outerWidth", 200); + shouldBe("w.screenLeft", 0); + shouldBe("w.screenTop", 22); // empirical result of low dpi testing + shouldBe("w.outerHeight", 223); // empirical result of low dpi testing +} + +function test2() +{ + console = document.getElementById('console2'); + Open("width=200, height=200, left = 0, top = 0, scrollbars, menubar, status, toolbar, resizable"); + + setConsole(document.getElementById('console2')); + clearConsole(); + shouldBe("w.innerHeight", 200); + shouldBe("w.innerWidth", 200); + shouldBe("w.outerWidth", 200); + shouldBe("w.screenLeft", 0); + shouldBe("w.screenTop", 22); // empirical result of low dpi testing + shouldBe("w.outerHeight", 313); // empirical result of low dpi testing +} + +function test3() +{ + Open("width=200,height=200,left=" + (screen.width - 200) + ",screenY=0, resizable"); + w.moveBy(0, screen.height - w.screenTop - w.outerHeight); + + // should be no-ops + w.moveTo(w.screenLeft - 100, w.screenTop + 100); + w.moveBy(100, -100); + w.resizeTo(w.outerWidth - 100 , w.outerHeight - 100); + w.resizeBy(100, 100); + + setConsole(document.getElementById('console3')); + clearConsole(); + shouldBe("w.innerHeight", 200); + shouldBe("w.innerWidth", 200); + shouldBe("w.outerWidth", 200); + shouldBe("w.screenLeft", screen.width - 200); + shouldBe("w.screenTop", screen.height - w.outerHeight); + shouldBe("w.outerHeight", 223); // empirical result of low dpi testing +} + +var console; +function print(message, color) +{ + var paragraph = document.createElement("div"); + paragraph.appendChild(document.createTextNode(message)); + paragraph.style.fontFamily = "monospace"; + if (color) + paragraph.style.color = color; + console.appendChild(paragraph); +} + +function clearConsole() +{ + console.innerHTML = ""; +} + +function setConsole(c) +{ + console = c; +} + +function shouldBe(a, b) +{ + var evalA = eval(a); + if (evalA == b) + print("PASS: " + a + " should be " + b + " and is.", "green"); + else + print("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".", "red"); +} +</script> +</head> +<body> + +<p>This test checks our support for window sizing and positioning.</p> +<p>To test: Click each button below. Check to make sure that the window it opens has the specified attributes. + Also check for a series of 'PASS' messages below the button.</p> +<p style="color:red">NOTE: Make sure to test at magnified resolutions.</p> +<p>To test @ 2X resolution:</p> +<ol> +<li>Open Quartz Debug (/Developer/Applications/Performance Tools).</li> +<li>Select Tools -> Show User Interface Resolution.</li> +<li>Set the resolution to 2.0.</li> +<li>Restart Safari.</li> +</ol> +<hr> + +<p>Window size (no toolbars): You should see a red 1 pixel border along every edge of this page, and no scrollbars.</p> +<input type="button" value="open it!" onclick="test1()"> +<div id='console1'></div> +<hr> + +<p>Window size (all toolbars): You should see a red 1 pixel border along every edge of this page, and no scrollbars.</p> +<input type="button" value="open it!" onclick="test2()"> +<div id='console2'></div> +<hr> + +<p>Window positioning: This window should be aligned exactly to the bottom right corner of the screen.</p> +<input type="button" value="open it!" onclick="test3()"> +<div id='console3'></div> +<hr> + +</body> +</html> diff --git a/WebCore/manual-tests/word-spacing-highlight.html b/WebCore/manual-tests/word-spacing-highlight.html new file mode 100644 index 0000000..01b69f9 --- /dev/null +++ b/WebCore/manual-tests/word-spacing-highlight.html @@ -0,0 +1,15 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>Highlighting with word spacing</title> +</head> +<body> +<p style="word-spacing:5em;"> +M xylophone +</p> +<p style="margin-left:1em;"> +↑ click there and drag to the right +</p> +</body> +</html>
\ No newline at end of file diff --git a/WebCore/manual-tests/wordXML-selectall.xml b/WebCore/manual-tests/wordXML-selectall.xml new file mode 100644 index 0000000..900311b --- /dev/null +++ b/WebCore/manual-tests/wordXML-selectall.xml @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?mso-application progid="Word.Document"?> +<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/2/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:SL="http://schemas.microsoft.com/schemaLibrary/2003/2/core" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/2/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xml:space="preserve"><o:DocumentProperties></o:DocumentProperties><w:fonts><w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman"/></w:fonts><w:docPr></w:docPr><w:body><wx:sect><w:p><w:pPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Helvetica" w:h-ansi="Helvetica" w:cs="Helvetica"/><wx:font wx:val="Helvetica"/><w:sz w:val="24"/><w:sz-cs w:val="24"/></w:rPr><w:t>Simply open this document and "Select all" (cmd-a). That was enough to crash. See <rdar://problem/4214259>.</w:t></w:r></w:p><w:sectPr><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/></w:sectPr></wx:sect></w:body></w:wordDocument>
\ No newline at end of file diff --git a/WebCore/manual-tests/write-after-open.html b/WebCore/manual-tests/write-after-open.html new file mode 100644 index 0000000..e4c2f4b --- /dev/null +++ b/WebCore/manual-tests/write-after-open.html @@ -0,0 +1,42 @@ +<html> +<body> +<script> +i = 0; +windowArgs = "top=100, left=100, height=200, width=200"; +windowName = ""; + +w = window.open("", windowName + i++, windowArgs); +w.document.write("PASS: document.write after window.open(\"\", ...) worked."); +w.document.close(); + +w = window.open("", windowName + i++, windowArgs); +w.document.open(); +w.document.write("PASS: document.write after window.open(\"\", ...) worked."); +w.document.close(); + + +w = window.open("about:blank", windowName + i++, windowArgs); +w.document.write("PASS: document.write after window.open(\"about:blank\", ...) worked."); +w.document.close(); + +w = window.open("about:blank", windowName + i++, windowArgs); +w.document.open(); +w.document.write("PASS: document.write after window.open(\"about:blank\", ...) worked."); +w.document.close(); + + +w = window.open("resources/write-after-open-popup.html", windowName + i++, windowArgs); +w.document.write("PASS: document.write after window.open(\"resources/write-after-open-popup.html\", ...) worked."); +w.document.close(); + +w = window.open("resources/write-after-open-popup.html", windowName + i++, windowArgs); +w.document.open(); +w.document.write("PASS: document.write after window.open(\"resources/write-after-open-popup.html\", ...) worked."); +w.document.close(); +</script> + +<p>This test checks for regression against: <rdar://problem/3461547> can't use document.writeln() on windows opened via window.open("about:blank") in same function. </p> + +<p>On success, 6 windows will open, one on top of the other, each containing a PASS message.</p> +</body> +</html> |